{"format": 1, "from_release": {"date": "2013-09-09", "build": "9.3.0", "major": "9.3", "minor": 0, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.0", "eol_date": "2018-11-08", "date_text": "2013-09-09", "supported": false, "manual_url": "/docs/9.3/release-9-3.html", "source_url": "/docs/release/9.3.0/", "entry_count": 177, "placeholder": false, "content_hash": "95b6206e2ff7fcc6ba007e3dffb15f8a3ac1044b457ef040226059e35e28d59b", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 167, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于希望从任何早期版本迁移数据的用户，需要使用<a href=\"/docs/9.3/app-pg-dumpall.html\" title=\"pg_dumpall\"><span>pg_dumpall</span></a>进行转储/恢复，或者使用<a href=\"/docs/9.3/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>。</p>\n<p>版本 9.3 包含许多可能影响与以前版本兼容性的变更。请注意以下不兼容之处：</p>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>", "compatibility_count": 10, "label": "9.3", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4769, "support_days": -2883}, "to_release": {"date": "2018-11-08", "build": "9.3.25", "major": "9.3", "minor": 25, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.25", "eol_date": "2018-11-08", "date_text": "2018-11-08", "supported": false, "manual_url": "/docs/9.3/release-9-3-25.html", "source_url": "/docs/release/9.3.25/", "entry_count": 35, "placeholder": false, "content_hash": "4357908b38abec2d505c98e0e00b2c9967a97dd7c95e01df6864806f67e37b35", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 35, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>    对于运行 9.3.X 的用户，不需要进行转储/恢复。</p><p>    不过，如果你是从早于 9.3.23 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-23.html\" title=\"E.3. 版本 9.3.23\">第 E.3 节</a>。</p>", "compatibility_count": 0, "label": "9.3.25", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 2883, "support_days": -2883}, "groups": [{"date": "2018-11-08", "build": "9.3.25", "major": "9.3", "minor": 25, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.25", "eol_date": "2018-11-08", "date_text": "2018-11-08", "supported": false, "manual_url": "/docs/9.3/release-9-3-25.html", "source_url": "/docs/release/9.3.25/", "entry_count": 35, "placeholder": false, "content_hash": "4357908b38abec2d505c98e0e00b2c9967a97dd7c95e01df6864806f67e37b35", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 35, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>    对于运行 9.3.X 的用户，不需要进行转储/恢复。</p><p>    不过，如果你是从早于 9.3.23 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-23.html\" title=\"E.3. 版本 9.3.23\">第 E.3 节</a>。</p>", "compatibility_count": 0, "label": "9.3.25", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 2883, "support_days": -2883, "entries": [{"id": "9.3.25-e78b5ffb8ddfac61", "cves": [], "html": "<p>      修复 <code>has_<em><code>foo</code></em>_privilege()</code>\n      函数族的边界失败（Tom Lane）\n     </p><p>      提供无效对象 OID 时返回 NULL 而不是抛出错误。其中一些函数本来就做对了，但并非全部。<code>has_column_privilege()</code> 在某些平台上还可能崩溃。\n     </p>", "text": "修复 has_foo_privilege() 函数族的边界失败（Tom Lane） 提供无效对象 OID 时返回 NULL 而不是抛出错误。其中一些函数本来就做对了，但并非全部。has_column_privilege() 在某些平台上还可能崩溃。", "title": "修复 has_foo_privilege() 函数族的边界失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "3fb7a178d7638f3231e0ec389969ff4d4df120c12e38b44f968c8ba99770baf0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix corner-case failures in has_foo_privilege() family of functions (Tom Lane) Return NULL rather than throwing an error when an invalid object OID is provided. Some of these functions got that right already, but not all. has_column_privilege() was additionally capable of crashing on some platforms.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/001", "db_id": "96af06e3870344955bb0fd7885148278", "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803", "relations": [{"rule": 2, "type": "equivalent", "target": "1c7d1094b3823c84cbc602a18abdac46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}}, {"rule": 2, "type": "equivalent", "target": "6cece4c576a523c7173476b0e107e332", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}}, {"rule": 2, "type": "equivalent", "target": "97090aaaef1aa21198fa7fe47f3961e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}}, {"rule": 2, "type": "equivalent", "target": "c20cf7d99d1186481d20e4a797919476", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "97090aaaef1aa21198fa7fe47f3961e9", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 has_foo_privilege() 系列函数在边界情况下的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}, "url": "/docs/compare/?release=10.6#10.6-fa50edbbb431b2a6", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "1c7d1094b3823c84cbc602a18abdac46", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复 has_foo_privilege() 函数族的边界失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}, "url": "/docs/compare/?release=9.6.11#9.6.11-e78b5ffb8ddfac61", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "6cece4c576a523c7173476b0e107e332", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 has_foo_privilege() 函数族的边界失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}, "url": "/docs/compare/?release=9.5.15#9.5.15-e78b5ffb8ddfac61", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "c20cf7d99d1186481d20e4a797919476", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 has_foo_privilege() 函数族的边界失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}, "url": "/docs/compare/?release=9.4.20#9.4.20-e78b5ffb8ddfac61", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-b352697ceefbf923", "cves": [], "html": "<p>      避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速（Andrew Gierth）\n     </p>", "text": "避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速（Andrew Gierth）", "title": "避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "6915bfa3ad6b16467e6def2a33ea20875270005cb5941ecc7bb807975e1880e2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid O(N^2) slowdown in regular expression match/split functions on long strings (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/002", "db_id": "7556ffafb7d571ed0a550a4cacec85bd", "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d", "relations": [{"rule": 2, "type": "equivalent", "target": "2d8e20ffd2a0f3ef7214458b985b5b67", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}}, {"rule": 2, "type": "equivalent", "target": "83e2181e0e546997cabaa698d868c21a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}}, {"rule": 2, "type": "equivalent", "target": "b1619bb42c237c4b31c8be8324f42261", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}}, {"rule": 2, "type": "equivalent", "target": "c4bca64fb5f68ada6b7fc67b3e745773", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2d8e20ffd2a0f3ef7214458b985b5b67", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "避免正则表达式匹配/分割函数在处理长字符串时出现 O(N^2) 性能下降", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}, "url": "/docs/compare/?release=10.6#10.6-dedaea3c22ecb555", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "83e2181e0e546997cabaa698d868c21a", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}, "url": "/docs/compare/?release=9.6.11#9.6.11-b352697ceefbf923", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "c4bca64fb5f68ada6b7fc67b3e745773", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}, "url": "/docs/compare/?release=9.5.15#9.5.15-b352697ceefbf923", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "b1619bb42c237c4b31c8be8324f42261", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "避免正则表达式匹配/分割函数在长字符串上的 O(N^2) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}, "url": "/docs/compare/?release=9.4.20#9.4.20-4efc4c96d516c209", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-f985972cba8e294c", "cves": [], "html": "<p>      避免词法分析器对长串 <code>+</code> 或 <code>-</code> 字符的 O(N^3) 减速（Andrew Gierth）\n     </p>", "text": "避免词法分析器对长串 + 或 - 字符的 O(N^3) 减速（Andrew Gierth）", "title": "避免词法分析器对长串 + 或 - 字符的 O(N^3) 减速", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "0c8b0c42454f776be280d204187597cc7719c3a2fb2479b5c125ac3e1abb1969", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid O(N^3) slowdown in lexer for long strings of + or - characters (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/003", "db_id": "a1f72805bb86509ffb2f872952f21cfd", "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790", "relations": [{"rule": 2, "type": "equivalent", "target": "226aea47f8112ce926f307dd99216b28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}}, {"rule": 2, "type": "equivalent", "target": "2c554df258bdc8377d8bbc785e5d5d9f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}}, {"rule": 2, "type": "equivalent", "target": "2fffc85446327d0d67db0de00b81f3ae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}}, {"rule": 2, "type": "equivalent", "target": "3ea1ad5e1e8b0c97d19b6f7e0ebf40f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2c554df258bdc8377d8bbc785e5d5d9f", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "避免词法分析器处理由 + 或 - 字符组成的长字符串时出现 O(N^3) 性能下降", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}, "url": "/docs/compare/?release=10.6#10.6-1d60394aa88e02ca", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "2fffc85446327d0d67db0de00b81f3ae", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "避免词法分析器对长串 + 或 - 字符的 O(N^3) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}, "url": "/docs/compare/?release=9.6.11#9.6.11-f985972cba8e294c", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "3ea1ad5e1e8b0c97d19b6f7e0ebf40f7", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "避免词法分析器对长串 + 或 - 字符的 O(N^3) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}, "url": "/docs/compare/?release=9.5.15#9.5.15-f985972cba8e294c", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "226aea47f8112ce926f307dd99216b28", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "避免词法分析器在长+或-字符字符串上的 O(N^3) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}, "url": "/docs/compare/?release=9.4.20#9.4.20-bbaabd9772e26381", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-11663612e169f52d", "cves": [], "html": "<p>      修复外层查询被反向扫描时 SubPlan 的错误执行（Andrew Gierth）\n     </p>", "text": "修复外层查询被反向扫描时 SubPlan 的错误执行（Andrew Gierth）", "title": "修复外层查询被反向扫描时 SubPlan 的错误执行", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "21c8756ab2d50f155049ca03042f9e3c50c5c0e96e4f579268beefd5df0252a1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix mis-execution of SubPlans when the outer query is being scanned backwards (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/004", "db_id": "841da23ed5759bf95580883781464850", "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1", "relations": [{"rule": 2, "type": "equivalent", "target": "22a5e153958bb020b46a98e742603a0b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}}, {"rule": 2, "type": "equivalent", "target": "2d6b367ebcd684a522541fc8e74b0c84", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}}, {"rule": 2, "type": "equivalent", "target": "abd82ba9e0388c32ad9ea1611cdbe3b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}}, {"rule": 2, "type": "equivalent", "target": "dcd9813510d56f5391eaf1bcb59c04fa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "abd82ba9e0388c32ad9ea1611cdbe3b5", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复反向扫描外层查询时 SubPlan 执行不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}, "url": "/docs/compare/?release=10.6#10.6-8f88131dc050c635", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "22a5e153958bb020b46a98e742603a0b", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复外层查询被反向扫描时 SubPlan 的错误执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}, "url": "/docs/compare/?release=9.6.11#9.6.11-11663612e169f52d", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "2d6b367ebcd684a522541fc8e74b0c84", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复外层查询被反向扫描时 SubPlan 的错误执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}, "url": "/docs/compare/?release=9.5.15#9.5.15-11663612e169f52d", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "dcd9813510d56f5391eaf1bcb59c04fa", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复外层查询反向扫描时 SubPlan 被错误执行的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}, "url": "/docs/compare/?release=9.4.20#9.4.20-2049893541afc10e", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-cab07d819471643d", "cves": [], "html": "<p>      修复回卷所引用游标后 <code>UPDATE/DELETE ... WHERE CURRENT OF\n      ...</code> 的失败（Tom Lane）\n     </p><p>      扫描多个关系（特别是继承树）的游标如果被回卷到较早的关系，可能产生错误行为。\n     </p>", "text": "修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败（Tom Lane） 扫描多个关系（特别是继承树）的游标如果被回卷到较早的关系，可能产生错误行为。", "title": "修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "e7dc8640bb4cae888d7bb328c9188488f8459261727b6bd7570078028de2e5cd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure of UPDATE/DELETE ... WHERE CURRENT OF ... after rewinding the referenced cursor (Tom Lane) A cursor that scans multiple relations (particularly an inheritance tree) could produce wrong behavior if rewound to an earlier relation.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/005", "db_id": "4bbd929ffe042cca6bb5214bcb9d0d8d", "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8", "relations": [{"rule": 2, "type": "equivalent", "target": "695ae6ed34779d61bf85465915f83708", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}}, {"rule": 2, "type": "equivalent", "target": "7774665d3d540dff9f533392cf41364b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}}, {"rule": 2, "type": "equivalent", "target": "b02323187c02b1b18500db0838a9338a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}}, {"rule": 2, "type": "equivalent", "target": "d52d30924584e7029ad77bdbdcabb0bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7774665d3d540dff9f533392cf41364b", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复将引用的游标回退后，UPDATE/DELETE ... WHERE CURRENT OF ... 发生的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}, "url": "/docs/compare/?release=10.6#10.6-4c38402f8ea098d3", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "b02323187c02b1b18500db0838a9338a", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}, "url": "/docs/compare/?release=9.6.11#9.6.11-cab07d819471643d", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "d52d30924584e7029ad77bdbdcabb0bf", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}, "url": "/docs/compare/?release=9.5.15#9.5.15-cab07d819471643d", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "695ae6ed34779d61bf85465915f83708", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}, "url": "/docs/compare/?release=9.4.20#9.4.20-cab07d819471643d", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-651b9852143ce292", "cves": [], "html": "<p>      修复 <code>EvalPlanQual</code> 正确处理条件执行的 InitPlan（Andrew Gierth、Tom Lane）\n     </p><p>      如果并发更新包含诸如 <code>CASE</code> 构造内的不相关子\n      <code>SELECT</code> 之类的代码，这会导致难以重现的崩溃或错误答案。\n     </p>", "text": "修复 EvalPlanQual 正确处理条件执行的 InitPlan（Andrew Gierth、Tom Lane） 如果并发更新包含诸如 CASE 构造内的不相关子 SELECT 之类的代码，这会导致难以重现的崩溃或错误答案。", "title": "修复 EvalPlanQual 正确处理条件执行的 InitPlan", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "7874cb77ba84bb6288735c6da5cf0af1b7d943dcf2f83cde6683c3ffe1af84f7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix EvalPlanQual to handle conditionally-executed InitPlans properly (Andrew Gierth, Tom Lane) This resulted in hard-to-reproduce crashes or wrong answers in concurrent updates, if they contained code such as an uncorrelated sub-SELECT inside a CASE construct.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/006", "db_id": "6cb6bf95285b4e0346c3310a8ed84fcd", "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27", "relations": [{"rule": 2, "type": "equivalent", "target": "0aac8174b3f81abd9629ebd2715eb170", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}}, {"rule": 2, "type": "equivalent", "target": "27d67e082ad5215229610a3302655a92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}}, {"rule": 2, "type": "equivalent", "target": "4b48cb645fd752e0d8ab07bdb5def241", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}}, {"rule": 2, "type": "equivalent", "target": "738e1481a5390ca38f5fa6fe6ea8d549", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "738e1481a5390ca38f5fa6fe6ea8d549", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 EvalPlanQual，使其正确处理有条件执行的 InitPlan", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}, "url": "/docs/compare/?release=10.6#10.6-42d47624ec2f05ae", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "0aac8174b3f81abd9629ebd2715eb170", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复 EvalPlanQual 正确处理条件执行的 InitPlan", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}, "url": "/docs/compare/?release=9.6.11#9.6.11-651b9852143ce292", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "4b48cb645fd752e0d8ab07bdb5def241", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 EvalPlanQual 正确处理条件执行的 InitPlan", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}, "url": "/docs/compare/?release=9.5.15#9.5.15-651b9852143ce292", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "27d67e082ad5215229610a3302655a92", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 EvalPlanQual 正确处理条件执行的 InitPlan", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}, "url": "/docs/compare/?release=9.4.20#9.4.20-651b9852143ce292", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-ded82ea69402a5be", "cves": [], "html": "<p>      修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败（Tom Lane、Kenji Uno）\n     </p><p>      此 bug 影响全文搜索操作以及 <code>contrib/ltree</code> 和\n      <code>contrib/pg_trgm</code>。\n     </p>", "text": "修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败（Tom Lane、Kenji Uno） 此 bug 影响全文搜索操作以及 contrib/ltree 和 contrib/pg_trgm。", "title": "修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "ec20ff606c0138c87c7c44f116a7079e92deb06f1a0c0a7f2590c1f131f577fd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix character-class checks to not fail on Windows for Unicode characters above U+FFFF (Tom Lane, Kenji Uno) This bug affected full-text-search operations, as well as contrib/ltree and contrib/pg_trgm.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/007", "db_id": "ac497120f0805b17c85a3c027b169e05", "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f", "relations": [{"rule": 2, "type": "equivalent", "target": "07ac0e68d39e5eb1d01772c622ef886b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}}, {"rule": 2, "type": "equivalent", "target": "3b1425c29091cb957c19ef962eedcc91", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}}, {"rule": 2, "type": "equivalent", "target": "4c4389058c6ec15d24710974ee433b72", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}}, {"rule": 2, "type": "equivalent", "target": "71a0050bfe91eb9a80a48cf58fa38867", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}}, {"rule": 2, "type": "equivalent", "target": "e8bab94529b5c87f952ec89057ca34bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "07ac0e68d39e5eb1d01772c622ef886b", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "修复字符类检查，使其在 Windows 上不会因高于 U+FFFF 的 Unicode 字符而失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}, "url": "/docs/compare/?release=11.1#11.1-b0b9b655780b1845", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "3b1425c29091cb957c19ef962eedcc91", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复字符类检查，使其在 Windows 上不会因高于 U+FFFF 的 Unicode 字符而失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}, "url": "/docs/compare/?release=10.6#10.6-b0b9b655780b1845", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "4c4389058c6ec15d24710974ee433b72", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}, "url": "/docs/compare/?release=9.6.11#9.6.11-ded82ea69402a5be", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "71a0050bfe91eb9a80a48cf58fa38867", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}, "url": "/docs/compare/?release=9.5.15#9.5.15-ded82ea69402a5be", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "e8bab94529b5c87f952ec89057ca34bc", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}, "url": "/docs/compare/?release=9.4.20#9.4.20-ded82ea69402a5be", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-ce4ecb04b29ae2d6", "cves": [], "html": "<p>      确保外部表拥有的序列由该表上的 <code>ALTER OWNER</code> 处理（Peter Eisentraut）\n     </p><p>      所有权更改应当也传播到这种序列，但外部表的情况被遗漏了。\n     </p>", "text": "确保外部表拥有的序列由该表上的 ALTER OWNER 处理（Peter Eisentraut） 所有权更改应当也传播到这种序列，但外部表的情况被遗漏了。", "title": "确保外部表拥有的序列由该表上的 ALTER OWNER 处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "f755ab79570b1442a38abfd9836c94a1cd4d5a2aa0c155d3132e34fe9c55ca8a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that sequences owned by a foreign table are processed by ALTER OWNER on the table (Peter Eisentraut) The ownership change should propagate to such sequences as well, but this was missed for foreign tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/008", "db_id": "6618083c70ed8a7017bc1d41d078147a", "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93", "relations": [{"rule": 2, "type": "equivalent", "target": "80b4f6db51589edd819c5252ae52065c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}}, {"rule": 2, "type": "equivalent", "target": "94a2d612e8de966c46ad462e2fb4de7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}}, {"rule": 2, "type": "equivalent", "target": "b42dca4d55aadf5b6b8c659f0ba6037a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}}, {"rule": 2, "type": "equivalent", "target": "f92b74a6fa58624ac4d59f53d74cfe7e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b42dca4d55aadf5b6b8c659f0ba6037a", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "确保对外部表执行 ALTER OWNER 时，也处理该表拥有的序列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}, "url": "/docs/compare/?release=10.6#10.6-8f724748c2d9bb0a", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "94a2d612e8de966c46ad462e2fb4de7b", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "确保外部表拥有的序列由该表上的 ALTER OWNER 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}, "url": "/docs/compare/?release=9.6.11#9.6.11-ce4ecb04b29ae2d6", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "f92b74a6fa58624ac4d59f53d74cfe7e", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "确保外部表拥有的序列由该表上的 ALTER OWNER 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}, "url": "/docs/compare/?release=9.5.15#9.5.15-ce4ecb04b29ae2d6", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "80b4f6db51589edd819c5252ae52065c", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "确保外部表拥有的序列由该表上的 ALTER OWNER 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}, "url": "/docs/compare/?release=9.4.20#9.4.20-ce4ecb04b29ae2d6", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-fba3c6af39aefdac", "cves": [], "html": "<p>      修复 <code>array_out()</code> 结果字符串的空间过度分配（Keiichi Hirobe）\n     </p>", "text": "修复 array_out() 结果字符串的空间过度分配（Keiichi Hirobe）", "title": "修复 array_out() 结果字符串的空间过度分配", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "ca29e615662840946f33dbbaa8e958fbe1ba0c173c7447a6be9a5c442dc14d73", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix over-allocation of space for array_out()'s result string (Keiichi Hirobe)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/009", "db_id": "531b63df57908783b1db890f56d326da", "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747", "relations": [{"rule": 2, "type": "equivalent", "target": "0a02cace4d48586a7ffb8b266ffe15e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}}, {"rule": 2, "type": "equivalent", "target": "bd1224e746a05c5e11e82237dd07d216", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}}, {"rule": 2, "type": "equivalent", "target": "bd91fae05bc943d159f59f99f943ff12", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}}, {"rule": 2, "type": "equivalent", "target": "d34b459322afd467d1c81419002ba57b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bd91fae05bc943d159f59f99f943ff12", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复为 array_out() 的结果字符串分配过多空间的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}, "url": "/docs/compare/?release=10.6#10.6-3f7e0d70828bc51f", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "0a02cace4d48586a7ffb8b266ffe15e7", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复 array_out() 结果字符串的空间过度分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}, "url": "/docs/compare/?release=9.6.11#9.6.11-fba3c6af39aefdac", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "bd1224e746a05c5e11e82237dd07d216", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 array_out() 结果字符串的空间过度分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}, "url": "/docs/compare/?release=9.5.15#9.5.15-fba3c6af39aefdac", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "d34b459322afd467d1c81419002ba57b", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复array_out()结果字符串空间过度分配的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}, "url": "/docs/compare/?release=9.4.20#9.4.20-3de009b88f27d82a", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-b5fe498b8a00261e", "cves": [], "html": "<p>      修复重复 SP-GiST 索引扫描中的内存泄漏（Tom Lane）\n     </p><p>      目前已知只有当使用 SP-GiST 的排他约束在单条命令中接收许多新索引条目时，这才会达到显著程度。\n     </p>", "text": "修复重复 SP-GiST 索引扫描中的内存泄漏（Tom Lane） 目前已知只有当使用 SP-GiST 的排他约束在单条命令中接收许多新索引条目时，这才会达到显著程度。", "title": "修复重复 SP-GiST 索引扫描中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "f103ec6d281454e860cff24223696a98a654d65722f34f62d30e1293a51935bb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak in repeated SP-GiST index scans (Tom Lane) This is only known to amount to anything significant in cases where an exclusion constraint using SP-GiST receives many new index entries in a single command.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/010", "db_id": "461f8794e1c01e2cc3f5c331235d7da1", "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b", "relations": [{"rule": 2, "type": "equivalent", "target": "7d01879c253fb3fe4968c53cd6bb9c5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}}, {"rule": 2, "type": "equivalent", "target": "97251aceae3237fca5cfc03ab2772ed8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}}, {"rule": 2, "type": "equivalent", "target": "a7f4ceb548ef27e44454af0fb4f0ea7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}}, {"rule": 2, "type": "equivalent", "target": "b55562a2b724286d5206d8ef8095da34", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}}, {"rule": 2, "type": "equivalent", "target": "d36720e5fa0884f4bf6165c602c3ab83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b55562a2b724286d5206d8ef8095da34", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "修复重复扫描 SP-GiST 索引时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}, "url": "/docs/compare/?release=11.1#11.1-68991a6abf9bcfaa", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "97251aceae3237fca5cfc03ab2772ed8", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复重复扫描 SP-GiST 索引时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}, "url": "/docs/compare/?release=10.6#10.6-68991a6abf9bcfaa", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "d36720e5fa0884f4bf6165c602c3ab83", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复重复 SP-GiST 索引扫描中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}, "url": "/docs/compare/?release=9.6.11#9.6.11-b5fe498b8a00261e", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "a7f4ceb548ef27e44454af0fb4f0ea7b", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复重复 SP-GiST 索引扫描中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}, "url": "/docs/compare/?release=9.5.15#9.5.15-b5fe498b8a00261e", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "7d01879c253fb3fe4968c53cd6bb9c5a", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复重复 SP-GiST 索引扫描中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}, "url": "/docs/compare/?release=9.4.20#9.4.20-b5fe498b8a00261e", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-3444b7d3b47b4b5f", "cves": [], "html": "<p>      避免实用命令导致无限递归时崩溃（Tom Lane）\n     </p>", "text": "避免实用命令导致无限递归时崩溃（Tom Lane）", "title": "避免实用命令导致无限递归时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "d3ed6755af22b59c91d9e925e4dc6a3c6632b527518878571eb8c9eb2c2bc810", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid crash if a utility command causes infinite recursion (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/011", "db_id": "0922a2fee22e9e74564a9e57f2fefe76", "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7", "relations": [{"rule": 2, "type": "equivalent", "target": "26157e0a7b24fed80c69e307b7c1dc20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}}, {"rule": 2, "type": "equivalent", "target": "7f3d086367127345d795fd398adbc742", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}}, {"rule": 2, "type": "equivalent", "target": "86b8922d65a199a14ae7e9e533885def", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}}, {"rule": 2, "type": "equivalent", "target": "e6d72def7c2efcdd6b37a79b99f8a873", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e6d72def7c2efcdd6b37a79b99f8a873", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "避免实用命令导致无限递归时发生崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}, "url": "/docs/compare/?release=10.6#10.6-f8a763ae53f71dd1", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "26157e0a7b24fed80c69e307b7c1dc20", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "避免实用命令导致无限递归时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}, "url": "/docs/compare/?release=9.6.11#9.6.11-3444b7d3b47b4b5f", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "7f3d086367127345d795fd398adbc742", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "避免实用命令导致无限递归时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}, "url": "/docs/compare/?release=9.5.15#9.5.15-3444b7d3b47b4b5f", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "86b8922d65a199a14ae7e9e533885def", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "避免工具命令导致无限递归时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}, "url": "/docs/compare/?release=9.4.20#9.4.20-8e095a7def4d42b9", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-5d50159cb0258ae6", "cves": [], "html": "<p>      初始化热备时，应对由主库两阶段事务引起的重复 XID（Michael Paquier、Konstantin Knizhnik）\n     </p>", "text": "初始化热备时，应对由主库两阶段事务引起的重复 XID（Michael Paquier、Konstantin Knizhnik）", "title": "初始化热备时，应对由主库两阶段事务引起的重复 XID", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "b1a31be70aec034dd3a0262f6755f313f6ed5eeee412042629ae00a20d84c005", "section_path": ["变更"], "commit_groups": [], "identity_text": "When initializing a hot standby, cope with duplicate XIDs caused by two-phase transactions on the master (Michael Paquier, Konstantin Knizhnik)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/012", "db_id": "adfd95c326479ba642ebf44be985ac57", "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd", "relations": [{"rule": 2, "type": "equivalent", "target": "068314b3c9b56d151488a0724a785189", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}}, {"rule": 2, "type": "equivalent", "target": "19f4c5edafeb14aecb7991b1586b4242", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}}, {"rule": 2, "type": "equivalent", "target": "2fa0d2e388ba883d25aa11057b954833", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}}, {"rule": 2, "type": "equivalent", "target": "d4dec718d026b8c6b28e4c18fe14386c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2fa0d2e388ba883d25aa11057b954833", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "初始化热备时，处理主库上的两阶段事务导致的重复 XID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}, "url": "/docs/compare/?release=10.6#10.6-ca43724675917190", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "d4dec718d026b8c6b28e4c18fe14386c", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "初始化热备时，应对由主库两阶段事务引起的重复 XID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}, "url": "/docs/compare/?release=9.6.11#9.6.11-5d50159cb0258ae6", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "19f4c5edafeb14aecb7991b1586b4242", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "初始化热备时，应对由主库两阶段事务引起的重复 XID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}, "url": "/docs/compare/?release=9.5.15#9.5.15-5d50159cb0258ae6", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "068314b3c9b56d151488a0724a785189", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "初始化热备时，处理主库两阶段事务造成的重复 XID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}, "url": "/docs/compare/?release=9.4.20#9.4.20-8573ae5456462b8f", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-10017cf57740d87a", "cves": [], "html": "<p>      在 bootstrap 和独立后端以及 <span>initdb</span> 中随机化\n      <code>random()</code> 的种子（Noah Misch）\n     </p><p>      这一更改的主要实际效果是避免一种场景：<span>initdb</span>\n      因总是使用相同的随机种子导致的名称冲突，而错误地断定 POSIX 共享内存不可用。\n     </p>", "text": "在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子（Noah Misch） 这一更改的主要实际效果是避免一种场景：initdb 因总是使用相同的随机种子导致的名称冲突，而错误地断定 POSIX 共享内存不可用。", "title": "在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "b2fe54cc87ed0314e6d2a8102dd45f3807e885b38dcb792c7997f17ee92f4b6c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Randomize the random() seed in bootstrap and standalone backends, and in initdb (Noah Misch) The main practical effect of this change is that it avoids a scenario where initdb might mistakenly conclude that POSIX shared memory is not available, due to name collisions caused by always using the same random seed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/013", "db_id": "7633568a3bcbc81a4e542fd3de4aacbc", "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e", "relations": [{"rule": 2, "type": "equivalent", "target": "0e1848449b7c3f2c62d9e7768f3a6d84", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}}, {"rule": 2, "type": "equivalent", "target": "151494e6041910be9a773fcd8b482eff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}}, {"rule": 2, "type": "equivalent", "target": "5122d60d513bc096134038086beee128", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}}, {"rule": 2, "type": "equivalent", "target": "e70ffe71839c7058f003b8ee9ce29f57", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e1848449b7c3f2c62d9e7768f3a6d84", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "在自举和独立后端，以及 initdb 中随机化 random() 的种子", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}, "url": "/docs/compare/?release=10.6#10.6-dd4cc94a0d5ae273", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "e70ffe71839c7058f003b8ee9ce29f57", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}, "url": "/docs/compare/?release=9.6.11#9.6.11-10017cf57740d87a", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "5122d60d513bc096134038086beee128", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}, "url": "/docs/compare/?release=9.5.15#9.5.15-10017cf57740d87a", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "151494e6041910be9a773fcd8b482eff", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}, "url": "/docs/compare/?release=9.4.20#9.4.20-10017cf57740d87a", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-e288723a8d74085a", "cves": [], "html": "<p>      确保热备进程使用正确的 WAL 一致点（Alexander Kukushkin、Michael Paquier）\n     </p><p>      这防止备库服务器在 WAL 重放期间刚达到一致数据库状态之后可能的行为异常。\n     </p>", "text": "确保热备进程使用正确的 WAL 一致点（Alexander Kukushkin、Michael Paquier） 这防止备库服务器在 WAL 重放期间刚达到一致数据库状态之后可能的行为异常。", "title": "确保热备进程使用正确的 WAL 一致点", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "9220cd42ae7b200da5a407bd9d9cfed14c91a4f30c94389872a455ef80fd8f04", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that hot standby processes use the correct WAL consistency point (Alexander Kukushkin, Michael Paquier) This prevents possible misbehavior just after a standby server has reached a consistent database state during WAL replay.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/014", "db_id": "6e5a8b2385ffc85472f850e2a9a453ca", "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb", "relations": [{"rule": 2, "type": "equivalent", "target": "3265d556689b305ffdbec7eb6212cd8e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}}, {"rule": 2, "type": "equivalent", "target": "6cb83c44aa7bc50dfa45b2ec55b84b29", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}}, {"rule": 2, "type": "equivalent", "target": "bae5cdeeffb91cfbe1d61aefa80e34d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}}, {"rule": 2, "type": "equivalent", "target": "e00eb0750ea51e88383b886502eb06ba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3265d556689b305ffdbec7eb6212cd8e", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "确保热备进程使用正确的 WAL 一致性点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}, "url": "/docs/compare/?release=10.6#10.6-2a26e691178ff6df", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "6cb83c44aa7bc50dfa45b2ec55b84b29", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "确保热备进程使用正确的 WAL 一致点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}, "url": "/docs/compare/?release=9.6.11#9.6.11-e288723a8d74085a", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "e00eb0750ea51e88383b886502eb06ba", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "确保热备进程使用正确的 WAL 一致点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}, "url": "/docs/compare/?release=9.5.15#9.5.15-e288723a8d74085a", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "bae5cdeeffb91cfbe1d61aefa80e34d3", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "确保热备进程使用正确的 WAL 一致点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}, "url": "/docs/compare/?release=9.4.20#9.4.20-e288723a8d74085a", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-8df94db4159fdd39", "cves": [], "html": "<p>      服务 <code>SIGQUIT</code> 时不运行 atexit 回调（Heikki Linnakangas）\n     </p>", "text": "服务 SIGQUIT 时不运行 atexit 回调（Heikki Linnakangas）", "title": "服务 SIGQUIT 时不运行 atexit 回调", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "a5d20ba09f7d487422af5065c8db248f4b59addd0bd5fa3963ab955ebdb42660", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't run atexit callbacks when servicing SIGQUIT (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/015", "db_id": "39ba0855ac1febbcd96e1e427c4f3b8e", "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f", "relations": [{"rule": 2, "type": "equivalent", "target": "4630313f4b54193dd105008e73044d6c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}}, {"rule": 2, "type": "equivalent", "target": "78401332222d5de0483d29e05d5ad598", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}}, {"rule": 2, "type": "equivalent", "target": "c734cd34b8cc8154b188afcd0d0a2405", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}}, {"rule": 2, "type": "equivalent", "target": "e3dcf8197b67f15dc52b672919b7bd07", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "78401332222d5de0483d29e05d5ad598", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "处理 SIGQUIT 时不运行 atexit 回调", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}, "url": "/docs/compare/?release=10.6#10.6-9e1339fa1d28f993", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "e3dcf8197b67f15dc52b672919b7bd07", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "服务 SIGQUIT 时不运行 atexit 回调", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}, "url": "/docs/compare/?release=9.6.11#9.6.11-8df94db4159fdd39", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "c734cd34b8cc8154b188afcd0d0a2405", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "服务 SIGQUIT 时不运行 atexit 回调", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}, "url": "/docs/compare/?release=9.5.15#9.5.15-8df94db4159fdd39", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "4630313f4b54193dd105008e73044d6c", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "处理SIGQUIT时不运行 atexit 回调", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}, "url": "/docs/compare/?release=9.4.20#9.4.20-adab1a6e0fced93c", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-a666130b005b9214", "cves": [], "html": "<p>      不要把外部服务器用户映射记录为扩展的成员（Tom Lane）\n     </p><p>      如果在扩展脚本中执行 <code>CREATE USER MAPPING</code>，会为用户映射创建扩展依赖，这是意料之外的。角色不能是扩展成员，因此用户映射也不应该是。\n     </p>", "text": "不要把外部服务器用户映射记录为扩展的成员（Tom Lane） 如果在扩展脚本中执行 CREATE USER MAPPING，会为用户映射创建扩展依赖，这是意料之外的。角色不能是扩展成员，因此用户映射也不应该是。", "title": "不要把外部服务器用户映射记录为扩展的成员", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "34e2f07bc450aa3440e0e1481ca0926e9ffe23bb03889f5efc8e5f054b4f3038", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't record foreign-server user mappings as members of extensions (Tom Lane) If CREATE USER MAPPING is executed in an extension script, an extension dependency was created for the user mapping, which is unexpected. Roles can't be extension members, so user mappings shouldn't be either.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/016", "db_id": "0a3857effe95c5d3d77c35d3b30fd6eb", "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a", "relations": [{"rule": 2, "type": "equivalent", "target": "410ecd8d3182ca670115f4bb27a910de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}}, {"rule": 2, "type": "equivalent", "target": "6e629ddb94a5fc275b9280f02474d3a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}}, {"rule": 2, "type": "equivalent", "target": "dca69a390ea0f6cc18e87d764a97bb6a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}}, {"rule": 2, "type": "equivalent", "target": "e0f5a0165792bc1302f1deab6215536c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dca69a390ea0f6cc18e87d764a97bb6a", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "不将外部服务器用户映射记录为扩展成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}, "url": "/docs/compare/?release=10.6#10.6-3085b500609dfcf9", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "e0f5a0165792bc1302f1deab6215536c", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "不要把外部服务器用户映射记录为扩展的成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}, "url": "/docs/compare/?release=9.6.11#9.6.11-a666130b005b9214", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "410ecd8d3182ca670115f4bb27a910de", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "不要把外部服务器用户映射记录为扩展的成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}, "url": "/docs/compare/?release=9.5.15#9.5.15-a666130b005b9214", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "6e629ddb94a5fc275b9280f02474d3a4", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "不要把外部服务器用户映射记录为扩展的成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}, "url": "/docs/compare/?release=9.4.20#9.4.20-a666130b005b9214", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-fb1570d534e1ba9d", "cves": [], "html": "<p>      让 syslogger 更能抵御打开 CSV 日志文件的失败（Tom Lane）\n     </p>", "text": "让 syslogger 更能抵御打开 CSV 日志文件的失败（Tom Lane）", "title": "让 syslogger 更能抵御打开 CSV 日志文件的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "965fd073e9531b465d43a8e43045922740146d155681c66b68829cecb1db1793", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make syslogger more robust against failures in opening CSV log files (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/017", "db_id": "3d6b47685453c435876633d227d33ca0", "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa", "relations": [{"rule": 2, "type": "equivalent", "target": "363c9e22fdd6dbbd49dec53c3c1140e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}}, {"rule": 2, "type": "equivalent", "target": "747979b17c9e1c6042d5a3efb0a164b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}}, {"rule": 2, "type": "equivalent", "target": "c10163f9b63b5ddf4811ed4378a5f684", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}}, {"rule": 2, "type": "equivalent", "target": "f5f12e816c7a9dedc6b16769755ed2aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "747979b17c9e1c6042d5a3efb0a164b3", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "使 syslogger 更稳健地处理打开 CSV 日志文件失败的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}, "url": "/docs/compare/?release=10.6#10.6-b74cb3daa0e05278", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "f5f12e816c7a9dedc6b16769755ed2aa", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "让 syslogger 更能抵御打开 CSV 日志文件的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}, "url": "/docs/compare/?release=9.6.11#9.6.11-fb1570d534e1ba9d", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "c10163f9b63b5ddf4811ed4378a5f684", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "让 syslogger 更能抵御打开 CSV 日志文件的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}, "url": "/docs/compare/?release=9.5.15#9.5.15-fb1570d534e1ba9d", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "363c9e22fdd6dbbd49dec53c3c1140e4", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "使 syslogger 在打开 CSV 日志文件失败时更加健壮", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}, "url": "/docs/compare/?release=9.4.20#9.4.20-47c59362e1bdeb56", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-b0690b59faa27b68", "cves": [], "html": "<p>      修复 <span>pg_dump</span> 对不相似对象名排序可能的不一致（Jacob Champion）\n     </p>", "text": "修复 pg_dump 对不相似对象名排序可能的不一致（Jacob Champion）", "title": "修复 pg_dump 对不相似对象名排序可能的不一致", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "3e114286dbaec5a0dfbef310dcac1fda7427a52564a87c52a73625fa7451516a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible inconsistency in pg_dump's sorting of dissimilar object names (Jacob Champion)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/018", "db_id": "5071c9718530c3936f2f5a39c8b5a381", "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c", "relations": [{"rule": 2, "type": "equivalent", "target": "0e95c2d00e13033a1c3b37100ea8cbc3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}}, {"rule": 2, "type": "equivalent", "target": "879dd6c80f10d3518fc44e1e5abeee26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}}, {"rule": 2, "type": "equivalent", "target": "912356dbe78b587a2b8d1b0dbc6c652b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}}, {"rule": 2, "type": "equivalent", "target": "e8a7350145703801676066c25c27bc0b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "879dd6c80f10d3518fc44e1e5abeee26", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 pg_dump 对不同对象名称进行排序时可能出现的不一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}, "url": "/docs/compare/?release=10.6#10.6-327748fa243f5fa7", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "912356dbe78b587a2b8d1b0dbc6c652b", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复 pg_dump 对不相似对象名排序可能的不一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}, "url": "/docs/compare/?release=9.6.11#9.6.11-b0690b59faa27b68", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "0e95c2d00e13033a1c3b37100ea8cbc3", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 pg_dump 对不相似对象名排序可能的不一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}, "url": "/docs/compare/?release=9.5.15#9.5.15-b0690b59faa27b68", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "e8a7350145703801676066c25c27bc0b", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复pg_dump对不同对象名排序时可能不一致的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}, "url": "/docs/compare/?release=9.4.20#9.4.20-0b4c347eda93659e", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-93e8d87595b44a34", "cves": [], "html": "<p>      确保 <span>pg_restore</span> 发出\n      <code>DISABLE</code>/<code>ENABLE TRIGGER</code> 命令时对表名进行模式限定（Tom Lane）\n     </p><p>      这避免了以受限搜索路径运行恢复的新策略导致的失败。\n     </p>", "text": "确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定（Tom Lane） 这避免了以受限搜索路径运行恢复的新策略导致的失败。", "title": "确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "aabffdb62616f6208d77549da839a5715c5aad1396ba744fc111512a64af8461", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that pg_restore will schema-qualify the table name when emitting DISABLE/ENABLE TRIGGER commands (Tom Lane) This avoids failures due to the new policy of running restores with restrictive search path.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/019", "db_id": "1f5b9ce06a10d71020f5d675c0a7681d", "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4", "relations": [{"rule": 2, "type": "equivalent", "target": "235a3de186833f10d1941ae31e8b56d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}}, {"rule": 2, "type": "equivalent", "target": "262023a4f2bb0ae0b0839cd5d6791508", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}}, {"rule": 2, "type": "equivalent", "target": "7cfc9a9469f5e268abca807d030d5b75", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}}, {"rule": 2, "type": "equivalent", "target": "ef2584cb0a85c4f148c73d6aec18467a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "262023a4f2bb0ae0b0839cd5d6791508", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "确保 pg_restore 输出 DISABLE/ENABLE TRIGGER 命令时，为表名添加模式限定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}, "url": "/docs/compare/?release=10.6#10.6-4f69d270cafd8434", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "7cfc9a9469f5e268abca807d030d5b75", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}, "url": "/docs/compare/?release=9.6.11#9.6.11-93e8d87595b44a34", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "235a3de186833f10d1941ae31e8b56d3", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}, "url": "/docs/compare/?release=9.5.15#9.5.15-93e8d87595b44a34", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "ef2584cb0a85c4f148c73d6aec18467a", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}, "url": "/docs/compare/?release=9.4.20#9.4.20-93e8d87595b44a34", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-3acbb4d1f6a6575e", "cves": [], "html": "<p>      修复 <span>pg_upgrade</span> 正确处理扩展中的事件触发器（Haribabu Kommi）\n     </p><p> <span>pg_upgrade</span> 未能保留事件触发器的扩展成员身份。\n     </p>", "text": "修复 pg_upgrade 正确处理扩展中的事件触发器（Haribabu Kommi） pg_upgrade 未能保留事件触发器的扩展成员身份。", "title": "修复 pg_upgrade 正确处理扩展中的事件触发器", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "f6ff61bde22c9503f4a1011982c64a6461dc0b8cc09eeca49fa218e651121f80", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade to handle event triggers in extensions correctly (Haribabu Kommi) pg_upgrade failed to preserve an event trigger's extension-membership status.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/020", "db_id": "9918149f9df7155fb91615361e6189b2", "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346", "relations": [{"rule": 2, "type": "equivalent", "target": "4b260e91e97270d0acd4dca22b40ca64", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}}, {"rule": 2, "type": "equivalent", "target": "8b475ad0f04656171eb5572be6ee777a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}}, {"rule": 2, "type": "equivalent", "target": "aa84cdfbdeba1986ccf38b23ba363ce2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}}, {"rule": 2, "type": "equivalent", "target": "c1ecce3dec5d63c01a303d5e19b94583", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c1ecce3dec5d63c01a303d5e19b94583", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 pg_upgrade，使其正确处理扩展中的事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}, "url": "/docs/compare/?release=10.6#10.6-ff7866c083640635", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "aa84cdfbdeba1986ccf38b23ba363ce2", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复 pg_upgrade 正确处理扩展中的事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}, "url": "/docs/compare/?release=9.6.11#9.6.11-3acbb4d1f6a6575e", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "4b260e91e97270d0acd4dca22b40ca64", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 pg_upgrade 正确处理扩展中的事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}, "url": "/docs/compare/?release=9.5.15#9.5.15-3acbb4d1f6a6575e", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "8b475ad0f04656171eb5572be6ee777a", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 pg_upgrade 正确处理扩展中的事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}, "url": "/docs/compare/?release=9.4.20#9.4.20-3acbb4d1f6a6575e", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-c2b9190b9399ea25", "cves": [], "html": "<p>      修复 <span>pg_upgrade</span> 的集簇状态检查在备库服务器上正确工作（Bruce Momjian）\n     </p>", "text": "修复 pg_upgrade 的集簇状态检查在备库服务器上正确工作（Bruce Momjian）", "title": "修复 pg_upgrade 的集簇状态检查在备库服务器上正确工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "e7dc2ae4f3414538232aa623e0107d29c2d4a4532f46d3981bccd33fb07fbb9c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade's cluster state check to work correctly on a standby server (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/021", "db_id": "7ad4a1520e809c327a364617cb38dff0", "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282", "relations": [{"rule": 2, "type": "equivalent", "target": "102f9f0d3ac227da29208aa63f623f90", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}}, {"rule": 2, "type": "equivalent", "target": "7dc0c49afd06be82c01c02ba94b8fbf4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}}, {"rule": 2, "type": "equivalent", "target": "93a73ab31b1b96f9798383f39ab6f725", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}}, {"rule": 2, "type": "equivalent", "target": "b8e5436d8e30dd670bdaf685dc54708f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "93a73ab31b1b96f9798383f39ab6f725", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 pg_upgrade 的集群状态检查，使其在备库上正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}, "url": "/docs/compare/?release=10.6#10.6-526f17cbf7e0ee56", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "102f9f0d3ac227da29208aa63f623f90", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复 pg_upgrade 的集簇状态检查在备库服务器上正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}, "url": "/docs/compare/?release=9.6.11#9.6.11-c2b9190b9399ea25", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "b8e5436d8e30dd670bdaf685dc54708f", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 pg_upgrade 的集簇状态检查在备库服务器上正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}, "url": "/docs/compare/?release=9.5.15#9.5.15-c2b9190b9399ea25", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "7dc0c49afd06be82c01c02ba94b8fbf4", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复pg_upgrade的集簇状态检查在备库服务器上正确工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}, "url": "/docs/compare/?release=9.4.20#9.4.20-eb6d8df9306b3cf3", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-62cceefc1dc8ef2c", "cves": [], "html": "<p>      在所有 <code>contrib/cube</code> 函数中强制执行 <code>cube</code>\n      类型的维度限制（Andrey Borodin）\n     </p><p>      此前某些与 cube 相关的函数可以构造出会被 <code>cube_in()</code>\n      拒绝的值，导致转储/恢复失败。\n     </p>", "text": "在所有 contrib/cube 函数中强制执行 cube 类型的维度限制（Andrey Borodin） 此前某些与 cube 相关的函数可以构造出会被 cube_in() 拒绝的值，导致转储/恢复失败。", "title": "在所有 contrib/cube 函数中强制执行 cube 类型的维度限制", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "5d5d08c674b7582b0b46dc8a1306744c0fdc0ffcbdf6d9767a14bf859da79d3b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Enforce type cube's dimension limit in all contrib/cube functions (Andrey Borodin) Previously, some cube-related functions could construct values that would be rejected by cube_in(), leading to dump/reload failures.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/022", "db_id": "c5b69e51d985ff7f3a84a9be25ab26c8", "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b", "relations": [{"rule": 2, "type": "equivalent", "target": "200958a165dd7cd2ed556c74745858d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}}, {"rule": 2, "type": "equivalent", "target": "4571b8460d4de77f9acd69341a8d55b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}}, {"rule": 2, "type": "equivalent", "target": "5e9e7a0241c6f49c5495141891498081", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}}, {"rule": 2, "type": "equivalent", "target": "841f7f248a9fc509a7b5f8f60d2875a8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e9e7a0241c6f49c5495141891498081", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "在所有 contrib/cube 函数中强制实施 cube 类型的维数限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}, "url": "/docs/compare/?release=10.6#10.6-87982b7c1a553dcc", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "841f7f248a9fc509a7b5f8f60d2875a8", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "在所有 contrib/cube 函数中强制执行 cube 类型的维度限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}, "url": "/docs/compare/?release=9.6.11#9.6.11-62cceefc1dc8ef2c", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "200958a165dd7cd2ed556c74745858d4", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "在所有 contrib/cube 函数中强制执行 cube 类型的维度限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}, "url": "/docs/compare/?release=9.5.15#9.5.15-62cceefc1dc8ef2c", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "4571b8460d4de77f9acd69341a8d55b4", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "在所有 contrib/cube 函数中强制执行 cube 类型的维度限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}, "url": "/docs/compare/?release=9.4.20#9.4.20-62cceefc1dc8ef2c", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-dfc122f711954da6", "cves": [], "html": "<p>      修复 <code>contrib/unaccent</code> 的 <code>unaccent()</code>\n      函数使用与该函数同模式中的 <code>unaccent</code> 文本搜索词典（Tom Lane）\n     </p><p>      此前它尝试用搜索路径查找词典，如果搜索路径是受限值就可能失败。\n     </p>", "text": "修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典（Tom Lane） 此前它尝试用搜索路径查找词典，如果搜索路径是受限值就可能失败。", "title": "修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "6b5d9335930b6fbfa69c99dca76680f0600a504b2b52c1ddfa8a21dd142de4b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/unaccent's unaccent() function to use the unaccent text search dictionary that is in the same schema as the function (Tom Lane) Previously it tried to look up the dictionary using the search path, which could fail if the search path has a restrictive value.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/023", "db_id": "734bd1ee833334ec4ec28af4b8a2c087", "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f", "relations": [{"rule": 2, "type": "equivalent", "target": "2167de29b2e546d25afba3817c99ba7c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}}, {"rule": 2, "type": "equivalent", "target": "26547d4c4d38c37a756c4e20bd9a40f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}}, {"rule": 2, "type": "equivalent", "target": "a255fad78513abd146b092551281953f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}}, {"rule": 2, "type": "equivalent", "target": "bb8e1f2c7908abbc6f7d664082da3828", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2167de29b2e546d25afba3817c99ba7c", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 contrib/unaccent 的 unaccent() 函数，使其使用与函数位于同一模式中的 unaccent 文本检索词典", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}, "url": "/docs/compare/?release=10.6#10.6-8f03011d13bd632f", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "26547d4c4d38c37a756c4e20bd9a40f7", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}, "url": "/docs/compare/?release=9.6.11#9.6.11-dfc122f711954da6", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "a255fad78513abd146b092551281953f", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}, "url": "/docs/compare/?release=9.5.15#9.5.15-dfc122f711954da6", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "bb8e1f2c7908abbc6f7d664082da3828", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}, "url": "/docs/compare/?release=9.4.20#9.4.20-dfc122f711954da6", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-9a46ff8655386392", "cves": [], "html": "<p>      修复 macOS 10.14（Mojave）上的构建问题（Tom Lane）\n     </p><p>      调整 <span>configure</span> 向 <code>CPPFLAGS</code>\n      添加 <code>-isysroot</code> 开关；没有它，PL/Perl 和 PL/Tcl 在\n      macOS 10.14 上无法配置或构建。所用的具体 sysroot 可以在配置或构建时通过在 <span>configure</span> 或 <span>make</span>\n      的参数中设置 <code>PG_SYSROOT</code> 变量来覆盖。\n     </p><p>      现在建议与 Perl 相关的扩展在其编译器标志中写\n      <code>$(perl_includespec)</code> 而不是\n      <code>-I$(perl_archlibexp)/CORE</code>。后者在大多数平台上继续有效，但在最近的 macOS 上不行。\n     </p><p>      此外，在最近的 macOS 版本上构建 PL/Tcl 应该不再需要手动指定\n      <code>--with-tclconfig</code>。\n     </p>", "text": "修复 macOS 10.14（Mojave）上的构建问题（Tom Lane） 调整 configure 向 CPPFLAGS 添加 -isysroot 开关；没有它，PL/Perl 和 PL/Tcl 在 macOS 10.14 上无法配置或构建。所用的具体 sysroot 可以在配置或构建时通过在 configure 或 make 的参数中设置 PG_SYSROOT 变量来覆盖。 现在建议与 Perl 相关的扩展在其编译器标志中写 $(perl_includespec) 而不是 -I$(perl_archlibexp)/CORE。后者在大多数平台上继续有效，但在最近的 macOS 上不行。 此外，在最近的 macOS 版本上构建 PL/Tcl 应该不再需要手动指定 --with-tclconfig。", "title": "修复 macOS 10.14（Mojave）上的构建问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "74591258530831103aa452f55ae58ef83668ecc9410f46bc66a748cd18f0cf44", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix build problems on macOS 10.14 (Mojave) (Tom Lane) Adjust configure to add an -isysroot switch to CPPFLAGS; without this, PL/Perl and PL/Tcl fail to configure or build on macOS 10.14. The specific sysroot used can be overridden at configure time or build time by setting the PG_SYSROOT variable in the arguments of configure or make. It is now recommended that Perl-related extensions write $(perl_includespec) rather than -I$(perl_archlibexp)/CORE in their compiler flags. The latter continues to work on most platforms, but not recent macOS. Also, it should no longer be necessary to specify --with-tclconfig manually to get PL/Tcl to build on recent macOS releases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/024", "db_id": "0d12180e1c657bd3248e00988558c8b6", "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8", "relations": [{"rule": 2, "type": "equivalent", "target": "0573685aa14d64178784109e5f3f2399", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}}, {"rule": 2, "type": "equivalent", "target": "4d61afdda860b057b6269de4cc193262", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}}, {"rule": 2, "type": "equivalent", "target": "5c29e1d1317aab57179d5a6f6bad58dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}}, {"rule": 2, "type": "equivalent", "target": "fe2bae05be5fd6088874d68a76b1f3ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}}, {"rule": 2, "type": "equivalent", "target": "fe85548f1db806d6dc35aa43c9c75091", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fe2bae05be5fd6088874d68a76b1f3ff", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "修复 macOS 10.14（Mojave）上的构建问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}, "url": "/docs/compare/?release=11.1#11.1-9a46ff8655386392", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "5c29e1d1317aab57179d5a6f6bad58dd", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 macOS 10.14（Mojave）上的构建问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}, "url": "/docs/compare/?release=10.6#10.6-9a46ff8655386392", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "fe85548f1db806d6dc35aa43c9c75091", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复 macOS 10.14（Mojave）上的构建问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}, "url": "/docs/compare/?release=9.6.11#9.6.11-9a46ff8655386392", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "4d61afdda860b057b6269de4cc193262", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 macOS 10.14（Mojave）上的构建问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}, "url": "/docs/compare/?release=9.5.15#9.5.15-9a46ff8655386392", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "0573685aa14d64178784109e5f3f2399", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 macOS 10.14（Mojave）上的构建问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}, "url": "/docs/compare/?release=9.4.20#9.4.20-9a46ff8655386392", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-f991ee36ce29595f", "cves": [], "html": "<p>      修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作（Andrew Dunstan）\n     </p><p>      Perl 不再默认在搜索路径中包含当前目录；绕过这一点。\n     </p>", "text": "修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作（Andrew Dunstan） Perl 不再默认在搜索路径中包含当前目录；绕过这一点。", "title": "修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "01fa67eb9b49452b9044353880a70bd1b6e38a7b3abe0dbf354b98e27377ee46", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix MSVC build and regression-test scripts to work on recent Perl versions (Andrew Dunstan) Perl no longer includes the current directory in its search path by default; work around that.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/025", "db_id": "8a1cc7acdfb09c199a9f3ca1cd405980", "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8", "relations": [{"rule": 2, "type": "equivalent", "target": "330db97de242d00c963b07fc3c46b0e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}}, {"rule": 2, "type": "equivalent", "target": "38726384cd10e441aa4dcced098d61b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}}, {"rule": 2, "type": "equivalent", "target": "7c21077c9eb4a826e9bed8b137d5f770", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}}, {"rule": 2, "type": "equivalent", "target": "c05a64c813d21edd23ba0418b3a7b77e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}}, {"rule": 2, "type": "equivalent", "target": "e3ec0a53c68d18896cdc4e43a13db606", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "38726384cd10e441aa4dcced098d61b8", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "修复 MSVC 构建和回归测试脚本，使其适用于近期 Perl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}, "url": "/docs/compare/?release=11.1#11.1-4ce896e4612f55d4", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "7c21077c9eb4a826e9bed8b137d5f770", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 MSVC 构建和回归测试脚本，使其适用于近期 Perl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}, "url": "/docs/compare/?release=10.6#10.6-4ce896e4612f55d4", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "330db97de242d00c963b07fc3c46b0e2", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}, "url": "/docs/compare/?release=9.6.11#9.6.11-f991ee36ce29595f", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "c05a64c813d21edd23ba0418b3a7b77e", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}, "url": "/docs/compare/?release=9.5.15#9.5.15-f991ee36ce29595f", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "e3ec0a53c68d18896cdc4e43a13db606", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}, "url": "/docs/compare/?release=9.4.20#9.4.20-f991ee36ce29595f", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-bd8383fb4e410c01", "cves": [], "html": "<p>      支持在 Windows 上使用 Visual Studio 2015 或 Visual Studio 2017\n      构建（Michael Paquier、Haribabu Kommi）\n     </p>", "text": "支持在 Windows 上使用 Visual Studio 2015 或 Visual Studio 2017 构建（Michael Paquier、Haribabu Kommi）", "title": "支持在 Windows 上使用 Visual Studio 2015 或 Visual Studio 2017 构建", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "782918a73ec236b6f25166193ce8f5c95e063f787be69fd13f06c80c2ab866c8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Support building on Windows with Visual Studio 2015 or Visual Studio 2017 (Michael Paquier, Haribabu Kommi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/026", "db_id": "1b4c2163d90718ecfac6f26e660a19f1", "patch_ids": [], "statement_hash": "e55a765eb41f908d915c320c312da66f3da05b39835e3c6127a55271cd35dca7", "relations": [{"rule": 2, "type": "equivalent", "target": "8dd044ba8a74bb345a3c3d63c73d908e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e55a765eb41f908d915c320c312da66f3da05b39835e3c6127a55271cd35dca7"}}, {"rule": 2, "type": "equivalent", "target": "c88a02147d421e2b816334a99973133d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e55a765eb41f908d915c320c312da66f3da05b39835e3c6127a55271cd35dca7"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c88a02147d421e2b816334a99973133d", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "支持在 Windows 上使用 Visual Studio 2015 或 Visual Studio 2017 构建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e55a765eb41f908d915c320c312da66f3da05b39835e3c6127a55271cd35dca7"}, "url": "/docs/compare/?release=9.5.15#9.5.15-bd8383fb4e410c01", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "8dd044ba8a74bb345a3c3d63c73d908e", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "支持在 Windows 上使用 Visual Studio 2015 或 Visual Studio 2017 构建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e55a765eb41f908d915c320c312da66f3da05b39835e3c6127a55271cd35dca7"}, "url": "/docs/compare/?release=9.4.20#9.4.20-bd8383fb4e410c01", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-92d935d7fb61d806", "cves": [], "html": "<p>      允许 btree 比较函数返回 <code>INT_MIN</code>（Tom Lane）\n     </p><p>      到目前为止，我们禁止数据类型相关的比较函数返回 <code>INT_MIN</code>，这允许调用者只需对比较结果取反即可颠倒排序顺序。然而，对于直接返回\n      <code>memcmp()</code>、<code>strcmp()</code> 等结果的比较函数，这从来都不安全，因为 POSIX 没有对这些函数施加任何此类限制。至少某些最近版本的 <code>memcmp()</code> 可以返回\n      <code>INT_MIN</code>，导致错误的排序。因此我们移除了这一限制。调用者现在如果想颠倒排序顺序，必须使用\n      <code>INVERT_COMPARE_RESULT()</code> 宏。\n     </p>", "text": "允许 btree 比较函数返回 INT_MIN（Tom Lane） 到目前为止，我们禁止数据类型相关的比较函数返回 INT_MIN，这允许调用者只需对比较结果取反即可颠倒排序顺序。然而，对于直接返回 memcmp()、strcmp() 等结果的比较函数，这从来都不安全，因为 POSIX 没有对这些函数施加任何此类限制。至少某些最近版本的 memcmp() 可以返回 INT_MIN，导致错误的排序。因此我们移除了这一限制。调用者现在如果想颠倒排序顺序，必须使用 INVERT_COMPARE_RESULT() 宏。", "title": "允许 btree 比较函数返回 INT_MIN", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "b96876486555c6c740aff7a2197d357bbc271047064aa25adcb5f953d97e7d90", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow btree comparison functions to return INT_MIN (Tom Lane) Up to now, we've forbidden datatype-specific comparison functions from returning INT_MIN, which allows callers to invert the sort order just by negating the comparison result. However, this was never safe for comparison functions that directly return the result of memcmp(), strcmp(), etc, as POSIX doesn't place any such restriction on those functions. At least some recent versions of memcmp() can return INT_MIN, causing incorrect sort ordering. Hence, we've removed this restriction. Callers must now use the INVERT_COMPARE_RESULT() macro if they wish to invert the sort order.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/027", "db_id": "af27fe31790f8098ce6152f510209814", "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047", "relations": [{"rule": 2, "type": "equivalent", "target": "7fb5f95175c5f3c90f759c5f47055843", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}}, {"rule": 2, "type": "equivalent", "target": "8eff83b2f1566b57a1f73234e9b78fff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}}, {"rule": 2, "type": "equivalent", "target": "e4e3b3ff86bf6f48da4cc33e6399237d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}}, {"rule": 2, "type": "equivalent", "target": "e721b85fd3ec3e8c96c71419d349a7b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4e3b3ff86bf6f48da4cc33e6399237d", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "允许 B-树比较函数返回 INT_MIN", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}, "url": "/docs/compare/?release=10.6#10.6-24230b1996c307f4", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "e721b85fd3ec3e8c96c71419d349a7b1", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "允许 btree 比较函数返回 INT_MIN", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}, "url": "/docs/compare/?release=9.6.11#9.6.11-92d935d7fb61d806", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "8eff83b2f1566b57a1f73234e9b78fff", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "允许 btree 比较函数返回 INT_MIN", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}, "url": "/docs/compare/?release=9.5.15#9.5.15-92d935d7fb61d806", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "7fb5f95175c5f3c90f759c5f47055843", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "允许 btree 比较函数返回 INT_MIN", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}, "url": "/docs/compare/?release=9.4.20#9.4.20-92d935d7fb61d806", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-6086643a55b60868", "cves": [], "html": "<p>      修复共享失效消息处理中的递归风险（Tom Lane）\n     </p><p>      这个错误可能导致例如无法访问刚被 <code>VACUUM FULL</code> 处理过的系统目录或索引。\n     </p><p>      这一更改给 <code>LockAcquire</code> 添加了新的结果码，可能影响该函数的外部调用者，尽管只有非常不寻常的使用模式才会有问题。<code>LockAcquireExtended</code> 的 API 也有更改。\n     </p>", "text": "修复共享失效消息处理中的递归风险（Tom Lane） 这个错误可能导致例如无法访问刚被 VACUUM FULL 处理过的系统目录或索引。 这一更改给 LockAcquire 添加了新的结果码，可能影响该函数的外部调用者，尽管只有非常不寻常的使用模式才会有问题。LockAcquireExtended 的 API 也有更改。", "title": "修复共享失效消息处理中的递归风险", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "72b3a3a6c52c804e148baaf7ba174e0296ef3af0999c5a5c469c5264f6b5dd5f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix recursion hazard in shared-invalidation message processing (Tom Lane) This error could, for example, result in failure to access a system catalog or index that had just been processed by VACUUM FULL. This change adds a new result code for LockAcquire, which might possibly affect external callers of that function, though only very unusual usage patterns would have an issue with it. The API of LockAcquireExtended is also changed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/028", "db_id": "ce3eb3e3cbe6875d7704c40beff1a59f", "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc", "relations": [{"rule": 2, "type": "equivalent", "target": "41c6eb8ed920731a7a9225bd6e22a295", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}}, {"rule": 2, "type": "equivalent", "target": "c56133fc78fb58df573c8cd0c7540419", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}}, {"rule": 2, "type": "equivalent", "target": "c9b74c79b02bbc97804b967a225065ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}}, {"rule": 2, "type": "equivalent", "target": "fef0759f9da7dfa44516c0244bf37682", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "41c6eb8ed920731a7a9225bd6e22a295", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复共享失效消息处理中的递归隐患", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}, "url": "/docs/compare/?release=10.6#10.6-726bba65cae50d8c", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "c56133fc78fb58df573c8cd0c7540419", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复共享失效消息处理中的递归风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}, "url": "/docs/compare/?release=9.6.11#9.6.11-6086643a55b60868", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "c9b74c79b02bbc97804b967a225065ec", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复共享失效消息处理中的递归风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}, "url": "/docs/compare/?release=9.5.15#9.5.15-6086643a55b60868", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "fef0759f9da7dfa44516c0244bf37682", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复共享失效消息处理中的递归风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}, "url": "/docs/compare/?release=9.4.20#9.4.20-6086643a55b60868", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-13412180186cf72c", "cves": [], "html": "<p>      在 <code>SPI_connect()</code> 和 <code>SPI_finish()</code>\n      期间保存和恢复 SPI 的全局变量（Chapman Flack、Tom Lane）\n     </p><p>      这防止一个使用 SPI 的函数调用另一个时可能的干扰。\n     </p>", "text": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量（Chapman Flack、Tom Lane） 这防止一个使用 SPI 的函数调用另一个时可能的干扰。", "title": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "90a25299483bba4b048db0c8e397c5d3499ce6803578ea4d8557cbb747a8b418", "section_path": ["变更"], "commit_groups": [], "identity_text": "Save and restore SPI's global variables during SPI_connect() and SPI_finish() (Chapman Flack, Tom Lane) This prevents possible interference when one SPI-using function calls another.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/029", "db_id": "32ca1d4c3097b428c8a26a7f96da295f", "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49", "relations": [{"rule": 2, "type": "equivalent", "target": "1741421ad76033b83a8df2f6db4fc831", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}}, {"rule": 2, "type": "equivalent", "target": "4404e6d7bf83c17a753ed53c0c66d9df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}}, {"rule": 2, "type": "equivalent", "target": "909a9b96fdef44d7708bdc6ed43afdcd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}}, {"rule": 2, "type": "equivalent", "target": "b15507bdf7f083dfffd2c8a24393e9e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4404e6d7bf83c17a753ed53c0c66d9df", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}, "url": "/docs/compare/?release=10.6#10.6-13412180186cf72c", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "b15507bdf7f083dfffd2c8a24393e9e2", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}, "url": "/docs/compare/?release=9.6.11#9.6.11-13412180186cf72c", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "1741421ad76033b83a8df2f6db4fc831", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}, "url": "/docs/compare/?release=9.5.15#9.5.15-13412180186cf72c", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "909a9b96fdef44d7708bdc6ed43afdcd", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}, "url": "/docs/compare/?release=9.4.20#9.4.20-13412180186cf72c", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-2cfbc7e9f9de8816", "cves": [], "html": "<p>      在向后分支中提供 <code>ALLOCSET_DEFAULT_SIZES</code> 及同级宏（Tom Lane）\n     </p><p>      这些宏自 9.6 起就已存在，但有请求把它们添加到较旧的分支，以便扩展无需针对分支编写特定代码即可依赖它们。\n     </p>", "text": "在向后分支中提供 ALLOCSET_DEFAULT_SIZES 及同级宏（Tom Lane） 这些宏自 9.6 起就已存在，但有请求把它们添加到较旧的分支，以便扩展无需针对分支编写特定代码即可依赖它们。", "title": "在向后分支中提供 ALLOCSET_DEFAULT_SIZES 及同级宏", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "23d64adecfc7ae2d2c9a511df17ff73456508ce36a069abdb97660600d6dbc75", "section_path": ["变更"], "commit_groups": [], "identity_text": "Provide ALLOCSET_DEFAULT_SIZES and sibling macros in back branches (Tom Lane) These macros have existed since 9.6, but there were requests to add them to older branches to allow extensions to rely on them without branch-specific coding.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/030", "db_id": "c2e0f02fe02be8415439909b8fc43568", "patch_ids": [], "statement_hash": "cbba6b0873f570350ceb346ee113144c76e0871416861a91966dda2222d72cbc", "relations": [{"rule": 2, "type": "equivalent", "target": "2e7869a3d4cf69dfe2b106fd9fa0c9b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbba6b0873f570350ceb346ee113144c76e0871416861a91966dda2222d72cbc"}}, {"rule": 2, "type": "equivalent", "target": "e533271b46b97c96d49794dfad066293", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbba6b0873f570350ceb346ee113144c76e0871416861a91966dda2222d72cbc"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e7869a3d4cf69dfe2b106fd9fa0c9b0", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "在向后分支中提供 ALLOCSET_DEFAULT_SIZES 及同级宏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbba6b0873f570350ceb346ee113144c76e0871416861a91966dda2222d72cbc"}, "url": "/docs/compare/?release=9.5.15#9.5.15-2cfbc7e9f9de8816", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "e533271b46b97c96d49794dfad066293", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "在向后分支中提供 ALLOCSET_DEFAULT_SIZES 及同级宏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbba6b0873f570350ceb346ee113144c76e0871416861a91966dda2222d72cbc"}, "url": "/docs/compare/?release=9.4.20#9.4.20-2cfbc7e9f9de8816", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-e16422eda84d9d88", "cves": [], "html": "<p>      避免使用可能未充分对齐的页缓冲区（Tom Lane）\n     </p><p>      发明了新的联合类型 <code>PGAlignedBlock</code> 和\n      <code>PGAlignedXLogBlock</code>，并用它们代替普通的 char 数组，确保编译器不能把缓冲区放在未对齐的起始地址。这修复了对齐挑剔平台上可能的核心转储，并且即使在允许未对齐的平台上也可能改进性能。\n     </p>", "text": "避免使用可能未充分对齐的页缓冲区（Tom Lane） 发明了新的联合类型 PGAlignedBlock 和 PGAlignedXLogBlock，并用它们代替普通的 char 数组，确保编译器不能把缓冲区放在未对齐的起始地址。这修复了对齐挑剔平台上可能的核心转储，并且即使在允许未对齐的平台上也可能改进性能。", "title": "避免使用可能未充分对齐的页缓冲区", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "45fb626eb726831282fd02d546cce71a668b7bfef1d92bf1ee2d7eb8deb3edfd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid using potentially-under-aligned page buffers (Tom Lane) Invent new union types PGAlignedBlock and PGAlignedXLogBlock, and use these in place of plain char arrays, ensuring that the compiler can't place the buffer at a misaligned start address. This fixes potential core dumps on alignment-picky platforms, and may improve performance even on platforms that allow misalignment.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/031", "db_id": "d006649219f6714d586475b794d5cb33", "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9", "relations": [{"rule": 2, "type": "equivalent", "target": "3af5adb01d53d9e106a766350c8e3b71", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}}, {"rule": 2, "type": "equivalent", "target": "4fb9688d5b35426bd83acc468411cf3f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}}, {"rule": 2, "type": "equivalent", "target": "50bc1232e116a6b0fcdee1ac73bab4d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}}, {"rule": 2, "type": "equivalent", "target": "856b0933fee42ec1ad1ab1bb62427378", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4fb9688d5b35426bd83acc468411cf3f", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "避免使用可能未充分对齐的页面缓冲区", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}, "url": "/docs/compare/?release=10.6#10.6-a8fa54445f3fa41a", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "3af5adb01d53d9e106a766350c8e3b71", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "避免使用可能未充分对齐的页缓冲区", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}, "url": "/docs/compare/?release=9.6.11#9.6.11-e16422eda84d9d88", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "856b0933fee42ec1ad1ab1bb62427378", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "避免使用可能未充分对齐的页缓冲区", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}, "url": "/docs/compare/?release=9.5.15#9.5.15-e16422eda84d9d88", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "50bc1232e116a6b0fcdee1ac73bab4d0", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "避免使用可能未充分对齐的页缓冲区", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}, "url": "/docs/compare/?release=9.4.20#9.4.20-e16422eda84d9d88", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-11de5dcb09ad3c38", "cves": [], "html": "<p>      使 <code>src/port/snprintf.c</code> 遵循 C99 标准对\n      <code>snprintf()</code> 结果值的定义（Tom Lane）\n     </p><p>      在使用此代码的平台（主要是 Windows）上，其前 C99 行为可能导致无法检测缓冲区越界（如果调用代码假定 C99 语义）。\n     </p>", "text": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义（Tom Lane） 在使用此代码的平台（主要是 Windows）上，其前 C99 行为可能导致无法检测缓冲区越界（如果调用代码假定 C99 语义）。", "title": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "3a03db4ffb378df38113fdbce58559878683ef9baff8ab3cb19b8e7d151a915b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make src/port/snprintf.c follow the C99 standard's definition of snprintf()'s result value (Tom Lane) On platforms where this code is used (mostly Windows), its pre-C99 behavior could lead to failure to detect buffer overrun, if the calling code assumed C99 semantics.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/032", "db_id": "ee1aa267d75e8a262348cb5183b47807", "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75", "relations": [{"rule": 2, "type": "equivalent", "target": "4d3a572ba7186e94819188bc83fb5aef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}}, {"rule": 2, "type": "equivalent", "target": "8c0fc4495c1ea6bcfe1bb933159edeb0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}}, {"rule": 2, "type": "equivalent", "target": "ce14f0187d2f92cc92f103d99e198a93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}}, {"rule": 2, "type": "equivalent", "target": "fcc28d666da43138e72f845ef3bc85a2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4d3a572ba7186e94819188bc83fb5aef", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 返回值的定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}, "url": "/docs/compare/?release=10.6#10.6-0573fb238cc58680", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "ce14f0187d2f92cc92f103d99e198a93", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}, "url": "/docs/compare/?release=9.6.11#9.6.11-11de5dcb09ad3c38", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "8c0fc4495c1ea6bcfe1bb933159edeb0", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}, "url": "/docs/compare/?release=9.5.15#9.5.15-11de5dcb09ad3c38", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "fcc28d666da43138e72f845ef3bc85a2", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}, "url": "/docs/compare/?release=9.4.20#9.4.20-11de5dcb09ad3c38", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-0513b03bb8364885", "cves": [], "html": "<p>      在 i386 上用 <span>clang</span> 编译器构建时，要求使用\n      <code>-msse2</code>（Andres Freund）\n     </p><p>      这避免了浮点溢出检查遗漏的问题。\n     </p>", "text": "在 i386 上用 clang 编译器构建时，要求使用 -msse2（Andres Freund） 这避免了浮点溢出检查遗漏的问题。", "title": "在 i386 上用 clang 编译器构建时，要求使用 -msse2", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "372b73872babf349d9e46467b30961c42d4342c5dda20be66df66b59b493520f", "section_path": ["变更"], "commit_groups": [], "identity_text": "When building on i386 with the clang compiler, require -msse2 to be used (Andres Freund) This avoids problems with missed floating point overflow checks.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/033", "db_id": "223d34ed4f94b576c70ad07a0b9cd632", "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e", "relations": [{"rule": 2, "type": "equivalent", "target": "07cc8f1b692b4d797a56a75add6067d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}}, {"rule": 2, "type": "equivalent", "target": "825126e8f9c72dc4d669fd0e90f9b04c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}}, {"rule": 2, "type": "equivalent", "target": "a4ee1656f5876a96ab0e22565283cb31", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}}, {"rule": 2, "type": "equivalent", "target": "e43ea8133103c7861ef5d5e20c4c4227", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "07cc8f1b692b4d797a56a75add6067d1", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "在 i386 上使用 clang 编译器构建时，要求使用 -msse2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}, "url": "/docs/compare/?release=10.6#10.6-603ec55b3c77392f", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "a4ee1656f5876a96ab0e22565283cb31", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "在 i386 上用 clang 编译器构建时，要求使用 -msse2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}, "url": "/docs/compare/?release=9.6.11#9.6.11-0513b03bb8364885", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "825126e8f9c72dc4d669fd0e90f9b04c", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "在 i386 上用 clang 编译器构建时，要求使用 -msse2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}, "url": "/docs/compare/?release=9.5.15#9.5.15-0513b03bb8364885", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "e43ea8133103c7861ef5d5e20c4c4227", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "在 i386 上用 clang 编译器构建时，要求使用 -msse2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}, "url": "/docs/compare/?release=9.4.20#9.4.20-0513b03bb8364885", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-170f645ba2d1d98b", "cves": [], "html": "<p>      修复 <span>configure</span> 对\n      <code>strerror_r()</code> 结果类型的检测（Tom Lane）\n     </p><p>      原来的编码在 Linux 上用 <span>icc</span> 构建时（或许其他情况下）得到错误答案，导致 <span>libpq</span> 不能为系统报告的错误返回有用的错误消息。\n     </p>", "text": "修复 configure 对 strerror_r() 结果类型的检测（Tom Lane） 原来的编码在 Linux 上用 icc 构建时（或许其他情况下）得到错误答案，导致 libpq 不能为系统报告的错误返回有用的错误消息。", "title": "修复 configure 对 strerror_r() 结果类型的检测", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "9ef3ff0fbea4bdbea1603e382c0f1f37f029d2e6901fcc8fd50b4ef2fe4871dd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix configure's detection of the result type of strerror_r() (Tom Lane) The previous coding got the wrong answer when building with icc on Linux (and perhaps in other cases), leading to libpq not returning useful error messages for system-reported errors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/034", "db_id": "e209fa8bb23bf519ca9757776263796c", "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455", "relations": [{"rule": 2, "type": "equivalent", "target": "2b823af4119ebd4505e430c5e0256e21", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}}, {"rule": 2, "type": "equivalent", "target": "a46737c0a40549278dd0b372abd19182", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}}, {"rule": 2, "type": "equivalent", "target": "b3dd06f7a91fe0e83411979e94cfcba9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}}, {"rule": 2, "type": "equivalent", "target": "e90051308cbdd93126518f06f9ce7362", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}}], "version": "9.3.25", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a46737c0a40549278dd0b372abd19182", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 configure 对 strerror_r() 返回类型的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}, "url": "/docs/compare/?release=10.6#10.6-abeda0f420daf58f", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "2b823af4119ebd4505e430c5e0256e21", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "修复 configure 对 strerror_r() 结果类型的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}, "url": "/docs/compare/?release=9.6.11#9.6.11-170f645ba2d1d98b", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "e90051308cbdd93126518f06f9ce7362", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 configure 对 strerror_r() 结果类型的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}, "url": "/docs/compare/?release=9.5.15#9.5.15-170f645ba2d1d98b", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "b3dd06f7a91fe0e83411979e94cfcba9", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 configure 对 strerror_r() 结果类型的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}, "url": "/docs/compare/?release=9.4.20#9.4.20-170f645ba2d1d98b", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.3.25-4239e7a753d90202", "cves": [], "html": "<p>      更新时区数据文件到 <span>tzdata</span> 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。\n     </p>", "text": "更新时区数据文件到 tzdata 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。", "title": "更新时区数据文件到 tzdata 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6", "source_hash": "efb4746232164fd50623648f29d489c41591b2aba28ebb175eeca37539fd2620", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia (Volgograd), plus historical corrections for China, Hawaii, Japan, Macau, and North Korea.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.25/changes/035", "db_id": "75ae186c775b3d34ee7e5623ad582135", "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f", "relations": [{"rule": 2, "type": "equivalent", "target": "3a47d92908a2a93e22bf9701d1a2d0fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}}, {"rule": 2, "type": "equivalent", "target": "46b29725b96825b29e06a3f184f945fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}}, {"rule": 2, "type": "equivalent", "target": "a9dda89f62e87a28c9cc3df0363e971d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}}, {"rule": 2, "type": "equivalent", "target": "bd23f638637439f7790fcb58590eeb8e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}}, {"rule": 2, "type": "equivalent", "target": "ec1af20fff76afd67ff7d1ea4783a255", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}}], "version": "9.3.25", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec1af20fff76afd67ff7d1ea4783a255", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "将时区数据文件更新到 tzdata 2018g 版，以反映智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，并修正中国、夏威夷、日本、澳门和朝鲜的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}, "url": "/docs/compare/?release=11.1#11.1-a976c1cc861f3265", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "a9dda89f62e87a28c9cc3df0363e971d", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "将时区数据文件更新到 tzdata 2018g 版，以反映智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，并修正中国、夏威夷、日本、澳门和朝鲜的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}, "url": "/docs/compare/?release=10.6#10.6-a976c1cc861f3265", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "bd23f638637439f7790fcb58590eeb8e", "kind": "equivalent", "version": "9.6.11", "label": "9.6.11", "title": "更新时区数据文件到 tzdata 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}, "url": "/docs/compare/?release=9.6.11#9.6.11-4239e7a753d90202", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5"}, {"db_id": "3a47d92908a2a93e22bf9701d1a2d0fb", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "更新时区数据文件到 tzdata 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}, "url": "/docs/compare/?release=9.5.15#9.5.15-4239e7a753d90202", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "46b29725b96825b29e06a3f184f945fc", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "更新时区数据文件到 tzdata 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}, "url": "/docs/compare/?release=9.4.20#9.4.20-4239e7a753d90202", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}]}, {"date": "2018-08-09", "build": "9.3.24", "major": "9.3", "minor": 24, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.24", "eol_date": "2018-11-08", "date_text": "2018-08-09", "supported": false, "manual_url": "/docs/9.3/release-9-3-24.html", "source_url": "/docs/release/9.3.24/", "entry_count": 21, "placeholder": false, "content_hash": "6c5891aac37e5f764b7dbc261e10c0d23f794ceb74dcdcbf1c6b86443f10e77c", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 21, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.3.23 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-23.html\" title=\"E.3. 版本 9.3.23\">第 E.3 节</a>。</p>", "compatibility_count": 0, "label": "9.3.24", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 2974, "support_days": -2883, "entries": [{"id": "9.3.24-b50ee2ad35972b64", "cves": ["CVE-2018-10915"], "html": "<p>修复连接尝试之间未能完全重置 <span>libpq</span> 状态的问题（Tom Lane）</p>\n<p><code>dblink</code> 或 <code>postgres_fdw</code> 的无权限用户可以绕过旨在防止使用服务器端凭据（如运行服务器的操作系统用户拥有的 <code>~/.pgpass</code> 文件）的检查。允许本地连接上对等认证的服务器尤其容易受影响。其他攻击（如向 <code>postgres_fdw</code> 会话注入 SQL）也是可能的。以这种方式攻击 <code>postgres_fdw</code> 需要能够创建带选定连接参数的外部服务器对象，但任何能访问 <code>dblink</code> 的用户都可以利用该问题。一般而言，能够为使用 <span>libpq</span> 的应用选择连接参数的攻击者都可能作恶，尽管其他合理的攻击场景更难想到。感谢 Andrew Krasichkov 报告此问题。（CVE-2018-10915）</p>", "text": "修复连接尝试之间未能完全重置 libpq 状态的问题（Tom Lane） dblink 或 postgres_fdw 的无权限用户可以绕过旨在防止使用服务器端凭据（如运行服务器的操作系统用户拥有的 ~/.pgpass 文件）的检查。允许本地连接上对等认证的服务器尤其容易受影响。其他攻击（如向 postgres_fdw 会话注入 SQL）也是可能的。以这种方式攻击 postgres_fdw 需要能够创建带选定连接参数的外部服务器对象，但任何能访问 dblink 的用户都可以利用该问题。一般而言，能够为使用 libpq 的应用选择连接参数的攻击者都可能作恶，尽管其他合理的攻击场景更难想到。感谢 Andrew Krasichkov 报告此问题。（CVE-2018-10915）", "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "f00fc376623ceedaac2518766e6f1b8a4be248cb6b2a63918246864740d3dd3b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure to reset libpq's state fully between connection attempts (Tom Lane) An unprivileged user of dblink or postgres_fdw could bypass the checks intended to prevent use of server-side credentials, such as a ~/.pgpass file owned by the operating-system user running the server. Servers allowing peer authentication on local connections are particularly vulnerable. Other attacks such as SQL injection into a postgres_fdw session are also possible. Attacking postgres_fdw in this way requires the ability to create a foreign server object with selected connection parameters, but any user with access to dblink could exploit the problem. In general, an attacker with the ability to select the connection parameters for a libpq-using application could cause mischief, though other plausible attack scenarios are harder to think of. Our thanks to Andrew Krasichkov for reporting this issue. (CVE-2018-10915)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/001", "db_id": "1ee0462b731478038defdba984f32dd4", "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894", "relations": [{"rule": 2, "type": "equivalent", "target": "0d5cfb16f95275171c5876d4383372b2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}}, {"rule": 2, "type": "equivalent", "target": "29607663b820c5b5fee53b7793232307", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}}, {"rule": 2, "type": "equivalent", "target": "395fdb31804f461219c28a26580310df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}}, {"rule": 2, "type": "equivalent", "target": "4484dc480da4deefaaf0cb9f04a8477c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}}], "version": "9.3.24", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "4484dc480da4deefaaf0cb9f04a8477c", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}, "url": "/docs/compare/?release=10.5#10.5-b50ee2ad35972b64", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "0d5cfb16f95275171c5876d4383372b2", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}, "url": "/docs/compare/?release=9.6.10#9.6.10-b50ee2ad35972b64", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "29607663b820c5b5fee53b7793232307", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}, "url": "/docs/compare/?release=9.5.14#9.5.14-b50ee2ad35972b64", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "395fdb31804f461219c28a26580310df", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}, "url": "/docs/compare/?release=9.4.19#9.4.19-b50ee2ad35972b64", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-69a31af726a81fe1", "cves": [], "html": "<p>确保对<span>“<span>钉住</span>”</span>的系统目录的 <code>relfrozenxid</code> 和 <code>relminmxid</code> 值的更新被及时处理（Andres Freund）</p>\n<p>过于乐观的缓存规则可能阻止其他会话看到这些更新，导致虚假错误和/或数据损坏。对于 <code>pg_authid</code> 等共享目录，问题明显更严重，因为过期的缓存数据不仅存在于现有会话，还会持续到新会话中。</p>", "text": "确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理（Andres Freund） 过于乐观的缓存规则可能阻止其他会话看到这些更新，导致虚假错误和/或数据损坏。对于 pg_authid 等共享目录，问题明显更严重，因为过期的缓存数据不仅存在于现有会话，还会持续到新会话中。", "title": "确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "5df22cebe93f8adb0804d594314a5fc8e1a7916714b60eea5dcc86a2abe7e9a4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that updates to the relfrozenxid and relminmxid values for nailed system catalogs are processed in a timely fashion (Andres Freund) Overoptimistic caching rules could prevent these updates from being seen by other sessions, leading to spurious errors and/or data corruption. The problem was significantly worse for shared catalogs, such as pg_authid, because the stale cache data could persist into new sessions as well as existing ones.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/002", "db_id": "6b1508337c26fcb930a902e99a3573cf", "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d", "relations": [{"rule": 2, "type": "equivalent", "target": "32daf880b018ef0efc03b63f5bfad99d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}}, {"rule": 2, "type": "equivalent", "target": "9ed27a4374d255ff38dff43efcbf92e6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}}, {"rule": 2, "type": "equivalent", "target": "d2ddc8d0e0d59d6e8ddf83d17dabea01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}}, {"rule": 2, "type": "equivalent", "target": "fe02cfd82dcb3eb66cd294a2d93301ba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}}], "version": "9.3.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ed27a4374d255ff38dff43efcbf92e6", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "确保及时处理对“固定”系统目录的 relfrozenxid 和 relminmxid 值的更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}, "url": "/docs/compare/?release=10.5#10.5-a02370a85c2d7333", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "fe02cfd82dcb3eb66cd294a2d93301ba", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}, "url": "/docs/compare/?release=9.6.10#9.6.10-69a31af726a81fe1", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "d2ddc8d0e0d59d6e8ddf83d17dabea01", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}, "url": "/docs/compare/?release=9.5.14#9.5.14-69a31af726a81fe1", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "32daf880b018ef0efc03b63f5bfad99d", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}, "url": "/docs/compare/?release=9.4.19#9.4.19-69a31af726a81fe1", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-22efc1b502a443bd", "cves": [], "html": "<p>修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况（Michael Paquier、Kyotaro Horiguchi、Pavan Deolasee、Álvaro Herrera）</p>\n<p>这导致服务器在后续 WAL 重放期间认为自己没有达到一致的数据库状态，无法重启。</p>", "text": "修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况（Michael Paquier、Kyotaro Horiguchi、Pavan Deolasee、Álvaro Herrera） 这导致服务器在后续 WAL 重放期间认为自己没有达到一致的数据库状态，无法重启。", "title": "修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "fa7e8f5cc32174e46d7732bce494795003f464d53fc5b58fa5ba8db86d943b04", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix case where a freshly-promoted standby crashes before having completed its first post-recovery checkpoint (Michael Paquier, Kyotaro Horiguchi, Pavan Deolasee, Álvaro Herrera) This led to a situation where the server did not think it had reached a consistent database state during subsequent WAL replay, preventing restart.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/003", "db_id": "e9197d5b5d6664ac74d0054e089d2a74", "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f", "relations": [{"rule": 2, "type": "equivalent", "target": "2f3cc96e9aaf64a7e90d7c9fdd39164e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}}, {"rule": 2, "type": "equivalent", "target": "7895599dd794125ea13a3eeb6c7a5ff6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}}, {"rule": 2, "type": "equivalent", "target": "8562f359facbd2be633dfe6e52bbd296", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}}, {"rule": 2, "type": "equivalent", "target": "acd9e84bf9a88ffb7b980a511398871b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}}], "version": "9.3.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2f3cc96e9aaf64a7e90d7c9fdd39164e", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复刚提升的备库在完成恢复后的第一个检查点之前崩溃的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}, "url": "/docs/compare/?release=10.5#10.5-a40b6028bb7c0cbe", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "7895599dd794125ea13a3eeb6c7a5ff6", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}, "url": "/docs/compare/?release=9.6.10#9.6.10-22efc1b502a443bd", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "acd9e84bf9a88ffb7b980a511398871b", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}, "url": "/docs/compare/?release=9.5.14#9.5.14-22efc1b502a443bd", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "8562f359facbd2be633dfe6e52bbd296", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}, "url": "/docs/compare/?release=9.4.19#9.4.19-22efc1b502a443bd", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-40ea06cea1d40f1e", "cves": [], "html": "<p>避免回收全零 btree 页时发出虚假 WAL 记录（Amit Kapila）</p>\n<p>这个错误曾被观察到导致断言失败，并且可能让热备服务器上发生不必要的查询取消。</p>", "text": "避免回收全零 btree 页时发出虚假 WAL 记录（Amit Kapila） 这个错误曾被观察到导致断言失败，并且可能让热备服务器上发生不必要的查询取消。", "title": "避免回收全零 btree 页时发出虚假 WAL 记录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "1f261ca5298c0d468e5f8e100685ee862f4ef6c3d4616b53a22ea2d517e40f7c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid emitting a bogus WAL record when recycling an all-zero btree page (Amit Kapila) This mistake has been seen to cause assertion failures, and potentially it could result in unnecessary query cancellations on hot standby servers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/004", "db_id": "2dd037d083b0c3bfe29f7cfbbd4c5611", "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f", "relations": [{"rule": 2, "type": "equivalent", "target": "03132998b632c02d15256b84330ab60a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}}, {"rule": 2, "type": "equivalent", "target": "67b50d90cd1cc74144791acbcf155f1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}}, {"rule": 2, "type": "equivalent", "target": "a74fce06026a164587c89b59b42606e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}}, {"rule": 2, "type": "equivalent", "target": "cf21645a6589d145ccf19e984286e3f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}}], "version": "9.3.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "67b50d90cd1cc74144791acbcf155f1c", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "避免回收全零 B-树页面时生成错误的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}, "url": "/docs/compare/?release=10.5#10.5-62a34b74aef33d5f", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "03132998b632c02d15256b84330ab60a", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "避免回收全零 btree 页时发出虚假 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}, "url": "/docs/compare/?release=9.6.10#9.6.10-40ea06cea1d40f1e", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "cf21645a6589d145ccf19e984286e3f7", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "避免回收全零 btree 页时发出虚假 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}, "url": "/docs/compare/?release=9.5.14#9.5.14-40ea06cea1d40f1e", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "a74fce06026a164587c89b59b42606e8", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "避免回收全零 btree 页时发出虚假 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}, "url": "/docs/compare/?release=9.4.19#9.4.19-40ea06cea1d40f1e", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-6d677cacf09bcdc6", "cves": [], "html": "<p>改进删除许多关系的事务的 WAL 重放性能（Fujii Masao）</p>\n<p>这一更改减少了共享缓冲区被扫描的次数，因此在该设置较大时收益最大。</p>", "text": "改进删除许多关系的事务的 WAL 重放性能（Fujii Masao） 这一更改减少了共享缓冲区被扫描的次数，因此在该设置较大时收益最大。", "title": "改进删除许多关系的事务的 WAL 重放性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "7cc920f9076e43b10d60cc01c4b21850edbb0ed4aeb95ff3f54a6585449d78b1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve performance of WAL replay for transactions that drop many relations (Fujii Masao) This change reduces the number of times that shared buffers are scanned, so that it is of most benefit when that setting is large.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/005", "db_id": "53d49ed990ec4935f62ad367fb4e998e", "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381", "relations": [{"rule": 2, "type": "equivalent", "target": "0a7c3a5fd7a055838a2d503121a355db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}}, {"rule": 2, "type": "equivalent", "target": "152828386a677615583bbe556b597df0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}}, {"rule": 2, "type": "equivalent", "target": "442bd49ac88e1927ac19e63a17c88a11", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}}, {"rule": 2, "type": "equivalent", "target": "87e029f82b47117920a10995449b3418", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}}], "version": "9.3.24", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "442bd49ac88e1927ac19e63a17c88a11", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "提高删除大量关系的事务的 WAL 重放性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}, "url": "/docs/compare/?release=10.5#10.5-13ef945b2e108a26", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "0a7c3a5fd7a055838a2d503121a355db", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "改进删除许多关系的事务的 WAL 重放性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}, "url": "/docs/compare/?release=9.6.10#9.6.10-6d677cacf09bcdc6", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "87e029f82b47117920a10995449b3418", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "改进删除许多关系的事务的 WAL 重放性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}, "url": "/docs/compare/?release=9.5.14#9.5.14-6d677cacf09bcdc6", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "152828386a677615583bbe556b597df0", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "改进删除许多关系的事务的 WAL 重放性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}, "url": "/docs/compare/?release=9.4.19#9.4.19-6d677cacf09bcdc6", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-650266e24d800bcc", "cves": [], "html": "<p>改进备库服务器 WAL 重放中锁释放的性能（Thomas Munro）</p>", "text": "改进备库服务器 WAL 重放中锁释放的性能（Thomas Munro）", "title": "改进备库服务器 WAL 重放中锁释放的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "2f9e243751b8ba8068004f0c0889fb83235c64bec6a25f3891a4f1ca722a18d0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve performance of lock releasing in standby server WAL replay (Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/006", "db_id": "b632ab0b0a3e766425ff17921f9d6048", "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1", "relations": [{"rule": 2, "type": "equivalent", "target": "10e8bd8bbcb3a0dc654368a93dc0266c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}}, {"rule": 2, "type": "equivalent", "target": "198f89cf0c74e8275f1b5659a253422e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}}, {"rule": 2, "type": "equivalent", "target": "7331471ab70e53cf23524471f59d35f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}}, {"rule": 2, "type": "equivalent", "target": "8ba3323e8cfbe4ae8c3cf944b89bd142", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}}], "version": "9.3.24", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7331471ab70e53cf23524471f59d35f3", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "提高备库 WAL 重放中释放锁的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}, "url": "/docs/compare/?release=10.5#10.5-1c055dee978bcef7", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "198f89cf0c74e8275f1b5659a253422e", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "改进备库服务器 WAL 重放中锁释放的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}, "url": "/docs/compare/?release=9.6.10#9.6.10-650266e24d800bcc", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "8ba3323e8cfbe4ae8c3cf944b89bd142", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "改进备库服务器 WAL 重放中锁释放的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}, "url": "/docs/compare/?release=9.5.14#9.5.14-650266e24d800bcc", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "10e8bd8bbcb3a0dc654368a93dc0266c", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "改进备库 WAL 重放中锁释放的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}, "url": "/docs/compare/?release=9.4.19#9.4.19-fb93b33ad1f882d2", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-779e6d81d6e547c8", "cves": [], "html": "<p>确保索引创建中途失败后正确重建表的缓存索引列表（Peter Geoghegan）</p>\n<p>此前失败索引的 OID 可能留在列表中，在同一会话中之后引起问题。</p>", "text": "确保索引创建中途失败后正确重建表的缓存索引列表（Peter Geoghegan） 此前失败索引的 OID 可能留在列表中，在同一会话中之后引起问题。", "title": "确保索引创建中途失败后正确重建表的缓存索引列表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "51ef6609147a62c994f70e0a2c09017f69a5d6edafc2269070a47932b4e0f11c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure a table's cached index list is correctly rebuilt after an index creation fails partway through (Peter Geoghegan) Previously, the failed index's OID could remain in the list, causing problems later in the same session.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/007", "db_id": "323782b89f6740151049a909f0559a13", "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800", "relations": [{"rule": 2, "type": "equivalent", "target": "186e31d2cfd35855b738f0e59e37bc8a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}}, {"rule": 2, "type": "equivalent", "target": "26e04fcb7e6cede2081c220dd2bec55f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}}, {"rule": 2, "type": "equivalent", "target": "58f069360214dd9f86e14701bbefcbb5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}}, {"rule": 2, "type": "equivalent", "target": "9816837056d8933773918134c3de8eba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}}], "version": "9.3.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "58f069360214dd9f86e14701bbefcbb5", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "确保索引创建中途失败后，正确重建表的缓存索引列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}, "url": "/docs/compare/?release=10.5#10.5-f07313845b5285b2", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "186e31d2cfd35855b738f0e59e37bc8a", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "确保索引创建中途失败后正确重建表的缓存索引列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}, "url": "/docs/compare/?release=9.6.10#9.6.10-779e6d81d6e547c8", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "26e04fcb7e6cede2081c220dd2bec55f", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "确保索引创建中途失败后正确重建表的缓存索引列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}, "url": "/docs/compare/?release=9.5.14#9.5.14-779e6d81d6e547c8", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "9816837056d8933773918134c3de8eba", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "确保索引创建中途失败后正确重建表的缓存索引列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}, "url": "/docs/compare/?release=9.4.19#9.4.19-779e6d81d6e547c8", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-cf3ce0b44d07413b", "cves": [], "html": "<p>修复涉及复合类型列的等价类的错误优化（Tom Lane）</p>\n<p>这导致未能识别复合列上的索引可以为该列上的归并连接提供所需的排序顺序。</p>", "text": "修复涉及复合类型列的等价类的错误优化（Tom Lane） 这导致未能识别复合列上的索引可以为该列上的归并连接提供所需的排序顺序。", "title": "修复涉及复合类型列的等价类的错误优化", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "5f34ec56743e8e34e885397e92591b5f7abcf68d61c46db0ac49623f23afa9a4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misoptimization of equivalence classes involving composite-type columns (Tom Lane) This resulted in failure to recognize that an index on a composite column could provide the sort order needed for a mergejoin on that column.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/008", "db_id": "182bf1369f6e672ae01de81e926e566b", "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb", "relations": [{"rule": 2, "type": "equivalent", "target": "1a738a8866da02b729b2a8833232d01b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}}, {"rule": 2, "type": "equivalent", "target": "4c8532a87fe864b0d7dd80115d45ded5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}}, {"rule": 2, "type": "equivalent", "target": "52cef43a8c73048f335ccbec3a8eaa20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}}, {"rule": 2, "type": "equivalent", "target": "a9b35e1d8e5e3420204fe78b358c9962", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}}], "version": "9.3.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4c8532a87fe864b0d7dd80115d45ded5", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复涉及复合类型列的等价类的不正确优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}, "url": "/docs/compare/?release=10.5#10.5-b23536709041574c", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "52cef43a8c73048f335ccbec3a8eaa20", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "修复涉及复合类型列的等价类的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}, "url": "/docs/compare/?release=9.6.10#9.6.10-cf3ce0b44d07413b", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "a9b35e1d8e5e3420204fe78b358c9962", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复涉及复合类型列的等价类的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}, "url": "/docs/compare/?release=9.5.14#9.5.14-cf3ce0b44d07413b", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "1a738a8866da02b729b2a8833232d01b", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复涉及复合类型列的等价类的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}, "url": "/docs/compare/?release=9.4.19#9.4.19-cf3ce0b44d07413b", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-4fc173c77f38c086", "cves": [], "html": "<p>修复 SQL 标准 <code>FETCH FIRST</code> 语法允许参数（<code>$<em><code>n</code></em></code>），正如标准所期望的（Andrew Gierth）</p>", "text": "修复 SQL 标准 FETCH FIRST 语法允许参数（$n），正如标准所期望的（Andrew Gierth）", "title": "修复 SQL 标准 FETCH FIRST 语法允许参数（$n），正如标准所期望的", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "d3b59d512ff8582c1f5997fe231357932b873177fe9f6f4d1d353476849c4043", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix SQL-standard FETCH FIRST syntax to allow parameters ($n), as the standard expects (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/009", "db_id": "490c01ca4c089acfc35b01915796225c", "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649", "relations": [{"rule": 2, "type": "equivalent", "target": "1968060fb84d59b197c126ae941b4b3b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}}, {"rule": 2, "type": "equivalent", "target": "23762746b800611931fc7c4cd4b33449", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}}, {"rule": 2, "type": "equivalent", "target": "24bdb88062ca581f68e29dbcbd38c755", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}}, {"rule": 2, "type": "equivalent", "target": "ffee22d09074ad0235653a33dd93df64", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}}], "version": "9.3.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ffee22d09074ad0235653a33dd93df64", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复 SQL 标准的 FETCH FIRST 语法，使其按照标准预期允许参数（$n）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}, "url": "/docs/compare/?release=10.5#10.5-3c42f8df248c938e", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "1968060fb84d59b197c126ae941b4b3b", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "修复 SQL 标准 FETCH FIRST 语法允许参数（$n），正如标准所期望的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}, "url": "/docs/compare/?release=9.6.10#9.6.10-4fc173c77f38c086", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "23762746b800611931fc7c4cd4b33449", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复 SQL 标准 FETCH FIRST 语法允许参数（$n），正如标准所期望的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}, "url": "/docs/compare/?release=9.5.14#9.5.14-4fc173c77f38c086", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "24bdb88062ca581f68e29dbcbd38c755", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复 SQL 标准FETCH FIRST语法，按标准预期允许参数（$n）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}, "url": "/docs/compare/?release=9.4.19#9.4.19-a8aaf744484cbc12", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-bdea22fc5d2a1f59", "cves": [], "html": "<p>修复 <code>getObjectDescription</code> 输出中某些对象名未做模式限定的问题（Kyotaro Horiguchi、Tom Lane）</p>\n<p>排序规则、转换和文本搜索对象的名称在应当模式限定时没有限定。</p>", "text": "修复 getObjectDescription 输出中某些对象名未做模式限定的问题（Kyotaro Horiguchi、Tom Lane） 排序规则、转换和文本搜索对象的名称在应当模式限定时没有限定。", "title": "修复 getObjectDescription 输出中某些对象名未做模式限定的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "b9911075355dcd2ffdea6e474ee372351f1ba42d3a512a98d395bb314b5925ee", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure to schema-qualify some object names in getObjectDescription output (Kyotaro Horiguchi, Tom Lane) Names of collations, conversions, and text search objects were not schema-qualified when they should be.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/010", "db_id": "5e644a697564bfbaaa39703930a024bc", "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff", "relations": [{"rule": 2, "type": "equivalent", "target": "27658c43fd30fb6c922c98c6baaaac7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}}, {"rule": 2, "type": "equivalent", "target": "2b4777993e8637549d65833b7c3007bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}}, {"rule": 2, "type": "equivalent", "target": "963261e14d052337e5dc2b4e88cbc5e0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}}], "version": "9.3.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "963261e14d052337e5dc2b4e88cbc5e0", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "修复 getObjectDescription 输出中某些对象名未做模式限定的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}, "url": "/docs/compare/?release=9.6.10#9.6.10-bdea22fc5d2a1f59", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "27658c43fd30fb6c922c98c6baaaac7b", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复 getObjectDescription 输出中某些对象名未做模式限定的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}, "url": "/docs/compare/?release=9.5.14#9.5.14-bdea22fc5d2a1f59", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "2b4777993e8637549d65833b7c3007bc", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复 getObjectDescription 输出中某些对象名未做模式限定的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}, "url": "/docs/compare/?release=9.4.19#9.4.19-bdea22fc5d2a1f59", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-320884ea8c60e438", "cves": [], "html": "<p>把 <code>COPY FROM</code> 的当前行号计数器从 32 位加宽到 64 位（David Rowley）</p>\n<p>这避免了超过 4G 行输入的两个问题：<code>COPY FROM WITH HEADER</code> 会每 4G 行丢弃一行而不只是第一行；错误报告可能显示错误的行号。</p>", "text": "把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位（David Rowley） 这避免了超过 4G 行输入的两个问题：COPY FROM WITH HEADER 会每 4G 行丢弃一行而不只是第一行；错误报告可能显示错误的行号。", "title": "把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "ff4f6b93a6c284927d35c020079c03d7ad8b1580ee6a26d94a7832aaa396766b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Widen COPY FROM's current-line-number counter from 32 to 64 bits (David Rowley) This avoids two problems with input exceeding 4G lines: COPY FROM WITH HEADER would drop a line every 4G lines, not only the first line, and error reports could show a wrong line number.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/011", "db_id": "4f3380485fe76c091f58f1ddcd87dfde", "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3", "relations": [{"rule": 2, "type": "equivalent", "target": "400870fbe55df9359ede788c742a20f4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}}, {"rule": 2, "type": "equivalent", "target": "6a29568a274d6d7c0272352ceaa8bff2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}}, {"rule": 2, "type": "equivalent", "target": "97fc4eb2cf786b0b5d7e4acc0dfdfdc3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}}, {"rule": 2, "type": "equivalent", "target": "b2cd9cf689a963719a5775af84071246", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}}], "version": "9.3.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2cd9cf689a963719a5775af84071246", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "将 COPY FROM 的当前行号计数器从 32 位扩为 64 位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}, "url": "/docs/compare/?release=10.5#10.5-bc005ea158a544ad", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "400870fbe55df9359ede788c742a20f4", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}, "url": "/docs/compare/?release=9.6.10#9.6.10-320884ea8c60e438", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "6a29568a274d6d7c0272352ceaa8bff2", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}, "url": "/docs/compare/?release=9.5.14#9.5.14-320884ea8c60e438", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "97fc4eb2cf786b0b5d7e4acc0dfdfdc3", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}, "url": "/docs/compare/?release=9.4.19#9.4.19-320884ea8c60e438", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-52df9474d43758a2", "cves": [], "html": "<p>向 <span>ecpg</span> 的 <code>pgtypes</code> 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题（Takayuki Tsunakawa）</p>\n<p>在 Windows 上，如果给定内存块的 <code>free</code> 调用不是来自 <code>malloc</code> 该内存的同一 DLL，就会发生崩溃。<code>pgtypes</code> 库有时返回期望调用者释放的字符串，使得无法遵循这一规则。添加了仅包装 <code>free</code> 的 <code>PGTYPESchar_free()</code> 函数，允许应用遵循规则。</p>", "text": "向 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题（Takayuki Tsunakawa） 在 Windows 上，如果给定内存块的 free 调用不是来自 malloc 该内存的同一 DLL，就会发生崩溃。pgtypes 库有时返回期望调用者释放的字符串，使得无法遵循这一规则。添加了仅包装 free 的 PGTYPESchar_free() 函数，允许应用遵循规则。", "title": "向 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "4f3b7c88335b8869f8f8f96ea5c22ab520adaaa102f2af0566e72a66cedeabe9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add a string freeing function to ecpg's pgtypes library, so that cross-module memory management problems can be avoided on Windows (Takayuki Tsunakawa) On Windows, crashes can ensue if the free call for a given chunk of memory is not made from the same DLL that malloc'ed the memory. The pgtypes library sometimes returns strings that it expects the caller to free, making it impossible to follow this rule. Add a PGTYPESchar_free() function that just wraps free, allowing applications to follow this rule.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/012", "db_id": "0b91ed0ea692c7622473081c3cee603e", "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1", "relations": [{"rule": 2, "type": "equivalent", "target": "0946cb89007c74396f2e5853cc40c2dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}}, {"rule": 2, "type": "equivalent", "target": "41f554276a4627478e8a48afd1c9655e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}}, {"rule": 2, "type": "equivalent", "target": "8c9a67f692106da0e5f9c5949aa377bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}}, {"rule": 2, "type": "equivalent", "target": "eb1d28d406157fb5bbad175fbbb79b13", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}}], "version": "9.3.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "41f554276a4627478e8a48afd1c9655e", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "为 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上跨模块内存管理的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}, "url": "/docs/compare/?release=10.5#10.5-87992818e1200b8e", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "eb1d28d406157fb5bbad175fbbb79b13", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "向 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}, "url": "/docs/compare/?release=9.6.10#9.6.10-52df9474d43758a2", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "8c9a67f692106da0e5f9c5949aa377bf", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "向 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}, "url": "/docs/compare/?release=9.5.14#9.5.14-52df9474d43758a2", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "0946cb89007c74396f2e5853cc40c2dd", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "向 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}, "url": "/docs/compare/?release=9.4.19#9.4.19-52df9474d43758a2", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-67eb3d7560ffa91c", "cves": [], "html": "<p>修复 <span>ecpg</span> 在 Windows 以及其他非标准声明 <code>strtoll</code>/<code>strtoull</code> 或根本不声明的平台上对 <code>long long</code> 变量的支持（Dang Minh Huong、Tom Lane）</p>", "text": "修复 ecpg 在 Windows 以及其他非标准声明 strtoll/strtoull 或根本不声明的平台上对 long long 变量的支持（Dang Minh Huong、Tom Lane）", "title": "修复 ecpg 在 Windows 以及其他非标准声明 strtoll/strtoull 或根本不声明的平台上对 long long 变量的支持", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "1ccb6175cd65aa6972cdd7728b481bf64650615df0eb2ff8f58a5b6cb11c9818", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg's support for long long variables on Windows, as well as other platforms that declare strtoll/strtoull nonstandardly or not at all (Dang Minh Huong, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/013", "db_id": "318c71edee40025f50d789b0a24c41af", "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256", "relations": [{"rule": 2, "type": "equivalent", "target": "29b9d2586a64e3779f17fbed067c9f5e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}}, {"rule": 2, "type": "equivalent", "target": "82491916a79200c133a3da7416449cf8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}}, {"rule": 2, "type": "equivalent", "target": "9edbfa560d7bc4f98cbfe7246f929813", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}}, {"rule": 2, "type": "equivalent", "target": "c379d6a95fbe876d03da7fe73d83b725", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}}], "version": "9.3.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "29b9d2586a64e3779f17fbed067c9f5e", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复 ecpg 在 Windows 以及其他对 strtoll/strtoull 使用非标准声明或完全不声明的平台上对 long long 变量的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}, "url": "/docs/compare/?release=10.5#10.5-3d40105a0648a12b", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "9edbfa560d7bc4f98cbfe7246f929813", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "修复 ecpg 在 Windows 以及其他非标准声明 strtoll/strtoull 或根本不声明的平台上对 long long 变量的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}, "url": "/docs/compare/?release=9.6.10#9.6.10-67eb3d7560ffa91c", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "82491916a79200c133a3da7416449cf8", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复 ecpg 在 Windows 以及其他非标准声明 strtoll/strtoull 或根本不声明的平台上对 long long 变量的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}, "url": "/docs/compare/?release=9.5.14#9.5.14-67eb3d7560ffa91c", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "c379d6a95fbe876d03da7fe73d83b725", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复ecpg在 Windows 上对long long变量的支持，以及其他以非标准方式声明或不声明strtoll/strtoull的平台上的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}, "url": "/docs/compare/?release=9.4.19#9.4.19-1b86ad0653d1fd97", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-3e36bf92386b3cd1", "cves": [], "html": "<p>修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别（Tom Lane）</p>\n<p>这个错误导致断言失败，或者罕见情况下未能按预期执行 <code>INTO STRICT</code> 选项。</p>", "text": "修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别（Tom Lane） 这个错误导致断言失败，或者罕见情况下未能按预期执行 INTO STRICT 选项。", "title": "修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "1e05635e8dadd50d3601d6b1c0fb54771e91e605e001f4a7268fc8e6626dc374", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misidentification of SQL statement type in PL/pgSQL, when a rule change causes a change in the semantics of a statement intra-session (Tom Lane) This error led to assertion failures, or in rare cases, failure to enforce the INTO STRICT option as expected.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/014", "db_id": "d3b640bbeb4bf56c38af211f2774639b", "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338", "relations": [{"rule": 2, "type": "equivalent", "target": "283e4e2066e3fae941f41b07645cf98d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}}, {"rule": 2, "type": "equivalent", "target": "5eb19d3945e05d6a36e3cba773c73980", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}}, {"rule": 2, "type": "equivalent", "target": "66127d75d1aa478ae66eca83dcad5294", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}}, {"rule": 2, "type": "equivalent", "target": "bb99b4ea43117011f5f0360b2036a7c1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}}], "version": "9.3.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5eb19d3945e05d6a36e3cba773c73980", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复规则变更导致会话内语句语义变化时，PL/pgSQL 对 SQL 语句类型的错误识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}, "url": "/docs/compare/?release=10.5#10.5-67cece77cbc771a0", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "283e4e2066e3fae941f41b07645cf98d", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}, "url": "/docs/compare/?release=9.6.10#9.6.10-3e36bf92386b3cd1", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "66127d75d1aa478ae66eca83dcad5294", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}, "url": "/docs/compare/?release=9.5.14#9.5.14-3e36bf92386b3cd1", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "bb99b4ea43117011f5f0360b2036a7c1", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}, "url": "/docs/compare/?release=9.4.19#9.4.19-3e36bf92386b3cd1", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-db89b4647f22b7d9", "cves": [], "html": "<p>修复客户端程序中的密码提示，使 Windows 上 <code>stdin</code> 不是终端时正确关闭回显（Matthew Stickney）</p>", "text": "修复客户端程序中的密码提示，使 Windows 上 stdin 不是终端时正确关闭回显（Matthew Stickney）", "title": "修复客户端程序中的密码提示，使 Windows 上 stdin 不是终端时正确关闭回显", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "add8dfb215d3abae72372460090ee1bb5a763e1611cae6cdb9305a0cca9bee24", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix password prompting in client programs so that echo is properly disabled on Windows when stdin is not the terminal (Matthew Stickney)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/015", "db_id": "660d6473a675ba3f8e3878a90ddfb31f", "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f", "relations": [{"rule": 2, "type": "equivalent", "target": "1df1135d0a7cbdfe3a31f75380bcfdf2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}}, {"rule": 2, "type": "equivalent", "target": "216ec588ac11dcb3f585ce754a697f06", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}}, {"rule": 2, "type": "equivalent", "target": "74bb3ebc08ac88a7b5271ea572b2ed76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}}, {"rule": 2, "type": "equivalent", "target": "84b9f4946c2f108d70eef0e833d17e8f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}}], "version": "9.3.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1df1135d0a7cbdfe3a31f75380bcfdf2", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复客户端程序的密码提示，使 Windows 上的 stdin 不是终端时也能正确禁用回显", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}, "url": "/docs/compare/?release=10.5#10.5-7af307ab6ef3a309", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "84b9f4946c2f108d70eef0e833d17e8f", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "修复客户端程序中的密码提示，使 Windows 上 stdin 不是终端时正确关闭回显", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}, "url": "/docs/compare/?release=9.6.10#9.6.10-db89b4647f22b7d9", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "74bb3ebc08ac88a7b5271ea572b2ed76", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复客户端程序中的密码提示，使 Windows 上 stdin 不是终端时正确关闭回显", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}, "url": "/docs/compare/?release=9.5.14#9.5.14-db89b4647f22b7d9", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "216ec588ac11dcb3f585ce754a697f06", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复客户端程序的密码提示，使 Windows 上stdin不是终端时正确关闭回显", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}, "url": "/docs/compare/?release=9.4.19#9.4.19-d282a4116b92d51a", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-86ff6e7fd5dd3050", "cves": [], "html": "<p>进一步修复转储中列表值 GUC 变量值的错误引号（Tom Lane）</p>\n<p>此前对 <span>pg_dump</span> 输出中 <code>search_path</code> 及其他列表值变量加引号的修复，对空字符串列表元素行为不当，并且有截断长文件路径的风险。</p>", "text": "进一步修复转储中列表值 GUC 变量值的错误引号（Tom Lane） 此前对 pg_dump 输出中 search_path 及其他列表值变量加引号的修复，对空字符串列表元素行为不当，并且有截断长文件路径的风险。", "title": "进一步修复转储中列表值 GUC 变量值的错误引号", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "2d6bc0c8d432fc7d1ec6dadfb71d3d34e7396b21eb7d729a4d2b8e25ad88d21d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Further fix mis-quoting of values for list-valued GUC variables in dumps (Tom Lane) The previous fix for quoting of search_path and other list-valued variables in pg_dump output turned out to misbehave for empty-string list elements, and it risked truncation of long file paths.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/016", "db_id": "c2e4c85fba0591e0216d81c8a295851f", "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241", "relations": [{"rule": 2, "type": "equivalent", "target": "18842e4d5965cc8aea228715c6a1442c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}}, {"rule": 2, "type": "equivalent", "target": "3d2f303084793f85b50b53f7aa4e4ae1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}}, {"rule": 2, "type": "equivalent", "target": "9b63dbd8f3ae2ab3289281d518d2a173", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}}, {"rule": 2, "type": "equivalent", "target": "d26ab5999bb6fb3eee4efa3b34edada0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}}], "version": "9.3.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3d2f303084793f85b50b53f7aa4e4ae1", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "进一步修复转储中列表值 GUC 变量的值的引号处理错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}, "url": "/docs/compare/?release=10.5#10.5-8d7088781aea00b6", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "18842e4d5965cc8aea228715c6a1442c", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "进一步修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}, "url": "/docs/compare/?release=9.6.10#9.6.10-86ff6e7fd5dd3050", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "9b63dbd8f3ae2ab3289281d518d2a173", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "进一步修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}, "url": "/docs/compare/?release=9.5.14#9.5.14-86ff6e7fd5dd3050", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "d26ab5999bb6fb3eee4efa3b34edada0", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "进一步修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}, "url": "/docs/compare/?release=9.4.19#9.4.19-86ff6e7fd5dd3050", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-cbcd7c3d8a8e4117", "cves": [], "html": "<p>让 <span>pg_upgrade</span> 检查旧服务器是否被干净地关闭（Bruce Momjian）</p>\n<p>原来的检查可能被立即模式关闭欺骗。</p>", "text": "让 pg_upgrade 检查旧服务器是否被干净地关闭（Bruce Momjian） 原来的检查可能被立即模式关闭欺骗。", "title": "让 pg_upgrade 检查旧服务器是否被干净地关闭", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "71bc1a7bd9f2a132a3385bd940a9ea8de31b186e2b97f1c8abf9cd2f795db5d7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_upgrade check that the old server was shut down cleanly (Bruce Momjian) The previous check could be fooled by an immediate-mode shutdown.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/017", "db_id": "1954689a48854915e718dbce8ff7ab6b", "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743", "relations": [{"rule": 2, "type": "equivalent", "target": "4d1283c51899e26f1867c2769f6a309c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}}, {"rule": 2, "type": "equivalent", "target": "739f9fce188dadad715b9a79b61ba59a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}}, {"rule": 2, "type": "equivalent", "target": "c1499885d0749c110343bddd70ca1309", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}}, {"rule": 2, "type": "equivalent", "target": "eb47de5066dfd069f8ee0aa9c0944fff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}}], "version": "9.3.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "eb47de5066dfd069f8ee0aa9c0944fff", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "使 pg_upgrade 检查旧服务器是否正常关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}, "url": "/docs/compare/?release=10.5#10.5-fe23c400c0cfd077", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "4d1283c51899e26f1867c2769f6a309c", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "让 pg_upgrade 检查旧服务器是否被干净地关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}, "url": "/docs/compare/?release=9.6.10#9.6.10-cbcd7c3d8a8e4117", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "c1499885d0749c110343bddd70ca1309", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "让 pg_upgrade 检查旧服务器是否被干净地关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}, "url": "/docs/compare/?release=9.5.14#9.5.14-cbcd7c3d8a8e4117", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "739f9fce188dadad715b9a79b61ba59a", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "让 pg_upgrade 检查旧服务器是否被干净地关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}, "url": "/docs/compare/?release=9.4.19#9.4.19-cbcd7c3d8a8e4117", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-14000aea2f0f6924", "cves": [], "html": "<p>修复 <code>contrib/ltree</code> 的 <code>lca()</code> 函数在输入数组为空时崩溃的问题（Pierre Ducroquet）</p>", "text": "修复 contrib/ltree 的 lca() 函数在输入数组为空时崩溃的问题（Pierre Ducroquet）", "title": "修复 contrib/ltree 的 lca() 函数在输入数组为空时崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "c8d4df2ff12a3f523d0b5069f7350e395c014e96299085be149f58ec9ec17281", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash in contrib/ltree's lca() function when the input array is empty (Pierre Ducroquet)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/018", "db_id": "8f29616271ac721629aaa9067f4cf731", "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384", "relations": [{"rule": 2, "type": "equivalent", "target": "6e4b995caabcd4a7d43881109ed241b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}}, {"rule": 2, "type": "equivalent", "target": "acb1331ecaacd3afa267795660e83095", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}}, {"rule": 2, "type": "equivalent", "target": "ce3c9aafa78c8bc47f09c8ca12bc608d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}}, {"rule": 2, "type": "equivalent", "target": "f195adf248f9833c303c916f0bbac701", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}}], "version": "9.3.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6e4b995caabcd4a7d43881109ed241b5", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复输入数组为空时 contrib/ltree 的 lca() 函数发生的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}, "url": "/docs/compare/?release=10.5#10.5-5d1fa14a4e14c6a7", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "ce3c9aafa78c8bc47f09c8ca12bc608d", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "修复 contrib/ltree 的 lca() 函数在输入数组为空时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}, "url": "/docs/compare/?release=9.6.10#9.6.10-14000aea2f0f6924", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "acb1331ecaacd3afa267795660e83095", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复 contrib/ltree 的 lca() 函数在输入数组为空时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}, "url": "/docs/compare/?release=9.5.14#9.5.14-14000aea2f0f6924", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "f195adf248f9833c303c916f0bbac701", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复contrib/ltree的lca()函数在输入数组为空时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}, "url": "/docs/compare/?release=9.4.19#9.4.19-650262016eb5a041", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-9385f6c3af4d237f", "cves": [], "html": "<p>修复若干可能报告错误错误码的错误处理代码路径（Michael Paquier、Tom Lane、Magnus Hagander）</p>", "text": "修复若干可能报告错误错误码的错误处理代码路径（Michael Paquier、Tom Lane、Magnus Hagander）", "title": "修复若干可能报告错误错误码的错误处理代码路径", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "eb226d88cc2818a05e33386ec1a8f54af921d72d612fc646511afb752428f2b2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix various error-handling code paths in which an incorrect error code might be reported (Michael Paquier, Tom Lane, Magnus Hagander)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/019", "db_id": "dd5ba05fde3e4dbb1c77961c638213f0", "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8", "relations": [{"rule": 2, "type": "equivalent", "target": "44343b5147cbbb9d79bd4862e5dc7084", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}}, {"rule": 2, "type": "equivalent", "target": "6bc786b07ebdffc9fa3a314516e966a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}}, {"rule": 2, "type": "equivalent", "target": "abc61176748d713bf18596dfa5958398", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}}, {"rule": 2, "type": "equivalent", "target": "ed7faf376a1da5be2a371fed15a0acba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}}], "version": "9.3.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed7faf376a1da5be2a371fed15a0acba", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复可能报告不正确错误码的各种错误处理代码路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}, "url": "/docs/compare/?release=10.5#10.5-23012dc05c2623c5", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "abc61176748d713bf18596dfa5958398", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "修复若干可能报告错误错误码的错误处理代码路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}, "url": "/docs/compare/?release=9.6.10#9.6.10-9385f6c3af4d237f", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "6bc786b07ebdffc9fa3a314516e966a4", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复若干可能报告错误错误码的错误处理代码路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}, "url": "/docs/compare/?release=9.5.14#9.5.14-9385f6c3af4d237f", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "44343b5147cbbb9d79bd4862e5dc7084", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复若干可能报告错误错误码的错误处理代码路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}, "url": "/docs/compare/?release=9.4.19#9.4.19-9385f6c3af4d237f", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-05d287de5d87d704", "cves": [], "html": "<p>重排 makefile，确保程序链接到新构建的库（如 <code>libpq.so</code>）而不是系统库目录中可能存在的（Tom Lane）</p>\n<p>这避免了在提供旧版 <span>PostgreSQL</span> 库副本的平台上构建时的问题。</p>", "text": "重排 makefile，确保程序链接到新构建的库（如 libpq.so）而不是系统库目录中可能存在的（Tom Lane） 这避免了在提供旧版 PostgreSQL 库副本的平台上构建时的问题。", "title": "重排 makefile，确保程序链接到新构建的库（如 libpq.so）而不是系统库目录中可能存在的", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "9fe1fb5035dc0b05720452fac376d32ae797010741c48dc3df2de54e396a9eac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Rearrange makefiles to ensure that programs link to freshly-built libraries (such as libpq.so) rather than ones that might exist in the system library directories (Tom Lane) This avoids problems when building on platforms that supply old copies of PostgreSQL libraries.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/020", "db_id": "e0fe94c2f5bcc8d0829a3e2e0f1f5567", "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f", "relations": [{"rule": 2, "type": "equivalent", "target": "092ac1884398bcbc8a003e01acd466cc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}}, {"rule": 2, "type": "equivalent", "target": "2add6f424e337938f103c3b77f8214ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}}, {"rule": 2, "type": "equivalent", "target": "d056736e371dede2d98e0596877e08b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}}, {"rule": 2, "type": "equivalent", "target": "fb9cfc50eee8d8b0e1ae293bbf759a17", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}}], "version": "9.3.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "092ac1884398bcbc8a003e01acd466cc", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "重新安排 makefile，确保程序链接到刚构建的库（如 libpq.so），而非可能存在于系统库目录中的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}, "url": "/docs/compare/?release=10.5#10.5-5b0266319b857177", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "d056736e371dede2d98e0596877e08b6", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "重排 makefile，确保程序链接到新构建的库（如 libpq.so）而不是系统库目录中可能存在的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}, "url": "/docs/compare/?release=9.6.10#9.6.10-05d287de5d87d704", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "2add6f424e337938f103c3b77f8214ff", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "重排 makefile，确保程序链接到新构建的库（如 libpq.so）而不是系统库目录中可能存在的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}, "url": "/docs/compare/?release=9.5.14#9.5.14-05d287de5d87d704", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "fb9cfc50eee8d8b0e1ae293bbf759a17", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "重排 makefile，确保程序链接到新构建的库（如 libpq.so）而不是系统库目录中可能存在的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}, "url": "/docs/compare/?release=9.4.19#9.4.19-05d287de5d87d704", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.3.24-f91b05fd75538bcc", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。</p>\n<p>此更新包括对爱尔兰以及纳米比亚和捷克斯洛伐克某些过去年份<span>“<span>夏令时</span>”</span>的重新定义。在这些司法管辖区，法律上夏季实行标准时间、冬季实行夏令时，因此夏令时偏移比标准时间晚一小时而不是早一小时。这不影响实际 UTC 偏移或所用的时区缩写；唯一已知的效果是这些情况下 <code>pg_timezone_names</code> 视图的 <code>is_dst</code> 列现在冬季为真、夏季为假。</p>", "text": "更新时区数据文件到 tzdata 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。 此更新包括对爱尔兰以及纳米比亚和捷克斯洛伐克某些过去年份“夏令时”的重新定义。在这些司法管辖区，法律上夏季实行标准时间、冬季实行夏令时，因此夏令时偏移比标准时间晚一小时而不是早一小时。这不影响实际 UTC 偏移或所用的时区缩写；唯一已知的效果是这些情况下 pg_timezone_names 视图的 is_dst 列现在冬季为真、夏季为假。", "title": "更新时区数据文件到 tzdata 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6", "source_hash": "9f37319456282bec8598cba6308a808640b0982827c1d7cd6fca8042f555e880", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2018e for DST law changes in North Korea, plus historical corrections for Czechoslovakia. This update includes a redefinition of daylight savings in Ireland, as well as for some past years in Namibia and Czechoslovakia. In those jurisdictions, legally standard time is observed in summer, and daylight savings time in winter, so that the daylight savings offset is one hour behind standard time not one hour ahead. This does not affect either the actual UTC offset or the timezone abbreviations in use; the only known effect is that the is_dst column in the pg_timezone_names view will now be true in winter and false in summer in these cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.24/changes/021", "db_id": "5e2e95399fa99faba1ec919a703975de", "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c", "relations": [{"rule": 2, "type": "equivalent", "target": "4665643582ca528c025ca51ef876640b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}}, {"rule": 2, "type": "equivalent", "target": "e66a4e42e0632f51b3db77194fc6ea05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}}, {"rule": 2, "type": "equivalent", "target": "eab8b499ede5f2e4cd22b4228850bace", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}}, {"rule": 2, "type": "equivalent", "target": "eae244a6dda158da8e88045e274b818f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}}], "version": "9.3.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e66a4e42e0632f51b3db77194fc6ea05", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "将时区数据文件更新到 tzdata 2018e 版，以反映朝鲜的夏令时法规变更，并修正捷克斯洛伐克的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}, "url": "/docs/compare/?release=10.5#10.5-0cd7c764f1682723", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "eae244a6dda158da8e88045e274b818f", "kind": "equivalent", "version": "9.6.10", "label": "9.6.10", "title": "更新时区数据文件到 tzdata 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}, "url": "/docs/compare/?release=9.6.10#9.6.10-f91b05fd75538bcc", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5"}, {"db_id": "4665643582ca528c025ca51ef876640b", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "更新时区数据文件到 tzdata 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}, "url": "/docs/compare/?release=9.5.14#9.5.14-f91b05fd75538bcc", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "eab8b499ede5f2e4cd22b4228850bace", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "更新时区数据文件到 tzdata 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}, "url": "/docs/compare/?release=9.4.19#9.4.19-f91b05fd75538bcc", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}]}, {"date": "2018-05-10", "build": "9.3.23", "major": "9.3", "minor": 23, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.23", "eol_date": "2018-11-08", "date_text": "2018-05-10", "supported": false, "manual_url": "/docs/9.3/release-9-3-23.html", "source_url": "/docs/release/9.3.23/", "entry_count": 27, "placeholder": false, "content_hash": "00b2ed95fdacd9fca0cd8f6322af1ead38d0929d1bc2ea33d58244d8a1871ef4", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 27, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果下面第一条变更日志条目中提到的函数标记错误影响到你，你可能需要采取措施更正数据库系统目录。</p>\n<p>不过，如果你是从早于 9.3.22 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-22.html\" title=\"E.4. 版本 9.3.22\">第 E.4 节</a>。</p>", "compatibility_count": 0, "label": "9.3.23", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3065, "support_days": -2883, "entries": [{"id": "9.3.23-6a75d650dd5360e4", "cves": [], "html": "<p>修复少数内建函数上不正确的易变性标记（Thomas Munro、Tom Lane）</p>\n<p>函数 <code>query_to_xml</code>、<code>cursor_to_xml</code>、<code>cursor_to_xmlschema</code>、<code>query_to_xmlschema</code> 和 <code>query_to_xml_and_xmlschema</code> 应标记为 volatile，因为它们执行可能包含易变操作的用户提供的查询。它们没有被这样标记，导致错误查询优化的风险。新安装已通过更正初始目录数据修复，但现有安装将继续包含错误标记。实际使用这些函数似乎危害不大，但如遇到麻烦，可以手动更新这些函数的 <code>pg_proc</code> 条目来修复，例如 <code>ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE</code>。（注意安装中的每个数据库都需要这样做。）另一个选择是把数据库 <span>pg_upgrade</span> 到包含更正后初始数据的版本。</p>", "text": "修复少数内建函数上不正确的易变性标记（Thomas Munro、Tom Lane） 函数 query_to_xml、cursor_to_xml、cursor_to_xmlschema、query_to_xmlschema 和 query_to_xml_and_xmlschema 应标记为 volatile，因为它们执行可能包含易变操作的用户提供的查询。它们没有被这样标记，导致错误查询优化的风险。新安装已通过更正初始目录数据修复，但现有安装将继续包含错误标记。实际使用这些函数似乎危害不大，但如遇到麻烦，可以手动更新这些函数的 pg_proc 条目来修复，例如 ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE。（注意安装中的每个数据库都需要这样做。）另一个选择是把数据库 pg_upgrade 到包含更正后初始数据的版本。", "title": "修复少数内建函数上不正确的易变性标记", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "ad86abde4eeaf014eb2069ca872f1e8ba47d53f11b664b9a0f5933deef574e61", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect volatility markings on a few built-in functions (Thomas Munro, Tom Lane) The functions query_to_xml, cursor_to_xml, cursor_to_xmlschema, query_to_xmlschema, and query_to_xml_and_xmlschema should be marked volatile because they execute user-supplied queries that might contain volatile operations. They were not, leading to a risk of incorrect query optimization. This has been repaired for new installations by correcting the initial catalog data, but existing installations will continue to contain the incorrect markings. Practical use of these functions seems to pose little hazard, but in case of trouble, it can be fixed by manually updating these functions' pg_proc entries, for example ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE. (Note that that will need to be done in each database of the installation.) Another option is to pg_upgrade the database to a version containing the corrected initial data.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/001", "db_id": "090b34a702ec6a2ca8c64febbfa28ccf", "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f", "relations": [{"rule": 2, "type": "equivalent", "target": "4dbf8dadd96c167df439302bf984d30d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f", "ambiguous_patch_ids": ["803b6d012c731531667f61834b5cd4e4"]}}, {"rule": 2, "type": "equivalent", "target": "4e64c4d279195ebda2ab22e8ffc64993", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}}, {"rule": 2, "type": "equivalent", "target": "5b3b555d5cbf741c78a2ffd945e5a415", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}}, {"rule": 2, "type": "equivalent", "target": "a6ba23544bda9d746f0fa25a72cecaf6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4dbf8dadd96c167df439302bf984d30d", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复若干内置函数不正确的易变性标记", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f", "ambiguous_patch_ids": ["803b6d012c731531667f61834b5cd4e4"]}, "url": "/docs/compare/?release=10.4#10.4-d2ec23ec103b9769", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "a6ba23544bda9d746f0fa25a72cecaf6", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复少数内建函数上不正确的易变性标记", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}, "url": "/docs/compare/?release=9.6.9#9.6.9-6a75d650dd5360e4", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "5b3b555d5cbf741c78a2ffd945e5a415", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复少数内建函数上不正确的易变性标记", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}, "url": "/docs/compare/?release=9.5.13#9.5.13-6a75d650dd5360e4", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "4e64c4d279195ebda2ab22e8ffc64993", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复少数内建函数上不正确的易变性标记", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}, "url": "/docs/compare/?release=9.4.18#9.4.18-6a75d650dd5360e4", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-0b36128b9f1d5314", "cves": [], "html": "<p>避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID（Pavan Deolasee）</p>\n<p>一旦 OID 计数器回卷，就可能分配一个 OID 与同一 TOAST 表中先前删除的条目匹配的 TOAST 值。如果该条目尚未被清理，就会导致 <span>“<span>unexpected chunk number 0 (expected 1) for toast value <em><code>nnnnn</code></em></span>”</span> 错误，并持续到 <code>VACUUM</code> 移除死条目为止。修复方法是创建新 TOAST 条目时不选择这种 OID。</p>", "text": "避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID（Pavan Deolasee） 一旦 OID 计数器回卷，就可能分配一个 OID 与同一 TOAST 表中先前删除的条目匹配的 TOAST 值。如果该条目尚未被清理，就会导致 “unexpected chunk number 0 (expected 1) for toast value nnnnn” 错误，并持续到 VACUUM 移除死条目为止。修复方法是创建新 TOAST 条目时不选择这种 OID。", "title": "避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "d05641636bce96e46895a854d51f8c25480af75082a92ce242f2d1f0a39e7801", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed TOAST entries (Pavan Deolasee) Once the OID counter has wrapped around, it's possible to assign a TOAST value whose OID matches a previously deleted entry in the same TOAST table. If that entry were not yet vacuumed away, this resulted in unexpected chunk number 0 (expected 1) for toast value nnnnn errors, which would persist until the dead entry was removed by VACUUM. Fix by not selecting such OIDs when creating a new TOAST entry.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/002", "db_id": "862469b6786f98380f5d936984d0d58d", "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380", "relations": [{"rule": 2, "type": "equivalent", "target": "4035d185e648f4a1a98665cfb8f9342c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}}, {"rule": 2, "type": "equivalent", "target": "6880622ffcd47407c39b65ab10c581e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}}, {"rule": 2, "type": "equivalent", "target": "87f78c7f9303d4e8f2177bdb76e23f66", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}}, {"rule": 2, "type": "equivalent", "target": "e392178093fe6d0921ffb62054aa789b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e392178093fe6d0921ffb62054aa789b", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "避免复用与已死亡但尚未清理的 TOAST 条目匹配的 TOAST 值 OID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}, "url": "/docs/compare/?release=10.4#10.4-742655577058431a", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "4035d185e648f4a1a98665cfb8f9342c", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}, "url": "/docs/compare/?release=9.6.9#9.6.9-0b36128b9f1d5314", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "6880622ffcd47407c39b65ab10c581e1", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}, "url": "/docs/compare/?release=9.5.13#9.5.13-0b36128b9f1d5314", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "87f78c7f9303d4e8f2177bdb76e23f66", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}, "url": "/docs/compare/?release=9.4.18#9.4.18-0b36128b9f1d5314", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-3a127c2a06a6d238", "cves": [], "html": "<p>更改 <code>ANALYZE</code> 更新 <code>pg_class</code>.<code>reltuples</code> 的算法（David Gould）</p>\n<p>此前，<code>ANALYZE</code> 未实际扫描的页被假定保留其旧的元组密度。在 <code>ANALYZE</code> 只采样很少一部分页的大表中，这意味着总体元组密度估计不会有太大变化，因此无论表中实际发生什么，<code>reltuples</code> 都几乎与表物理大小（<code>relpages</code>）的变化成比例地变化。据观察，这会导致 <code>reltuples</code> 远大于实际值，以致实际上关闭了自动清理。为修复，假定 <code>ANALYZE</code> 的样本是表的无偏统计样本（本应如此），直接把这些页中观察到的密度外推到整表。</p>", "text": "更改 ANALYZE 更新 pg_class.reltuples 的算法（David Gould） 此前，ANALYZE 未实际扫描的页被假定保留其旧的元组密度。在 ANALYZE 只采样很少一部分页的大表中，这意味着总体元组密度估计不会有太大变化，因此无论表中实际发生什么，reltuples 都几乎与表物理大小（relpages）的变化成比例地变化。据观察，这会导致 reltuples 远大于实际值，以致实际上关闭了自动清理。为修复，假定 ANALYZE 的样本是表的无偏统计样本（本应如此），直接把这些页中观察到的密度外推到整表。", "title": "更改 ANALYZE 更新 pg_class.reltuples 的算法", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "17141ed953dc3156ee460c4a49239020017883c218f472673493d5aff17814dc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Change ANALYZE's algorithm for updating pg_class.reltuples (David Gould) Previously, pages not actually scanned by ANALYZE were assumed to retain their old tuple density. In a large table where ANALYZE samples only a small fraction of the pages, this meant that the overall tuple density estimate could not change very much, so that reltuples would change nearly proportionally to changes in the table's physical size (relpages) regardless of what was actually happening in the table. This has been observed to result in reltuples becoming so much larger than reality as to effectively shut off autovacuuming. To fix, assume that ANALYZE's sample is a statistically unbiased sample of the table (as it should be), and just extrapolate the density observed within those pages to the whole table.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/003", "db_id": "3e963cf0d2e3a8f46e9b73a2a5a181bd", "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca", "relations": [{"rule": 2, "type": "equivalent", "target": "0d77dfa076b199c528dac488a698de1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}}, {"rule": 2, "type": "equivalent", "target": "1e07897a13bb0d50127fcd293b5bc360", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}}, {"rule": 2, "type": "equivalent", "target": "49169d0a2a7bf9f563f7cc87052ed66c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}}, {"rule": 2, "type": "equivalent", "target": "4a1631e90e65b4c3703e7b1179d0803e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "49169d0a2a7bf9f563f7cc87052ed66c", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "更改 ANALYZE 更新 pg_class.reltuples 的算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}, "url": "/docs/compare/?release=10.4#10.4-3a127c2a06a6d238", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "0d77dfa076b199c528dac488a698de1c", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "更改 ANALYZE 更新 pg_class.reltuples 的算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}, "url": "/docs/compare/?release=9.6.9#9.6.9-3a127c2a06a6d238", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "4a1631e90e65b4c3703e7b1179d0803e", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "更改 ANALYZE 更新 pg_class.reltuples 的算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}, "url": "/docs/compare/?release=9.5.13#9.5.13-3a127c2a06a6d238", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "1e07897a13bb0d50127fcd293b5bc360", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "更改 ANALYZE 更新 pg_class.reltuples 的算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}, "url": "/docs/compare/?release=9.4.18#9.4.18-3a127c2a06a6d238", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-c5317df56ae6d1b1", "cves": [], "html": "<p>修复 <code>UPDATE/DELETE ... WHERE CURRENT OF</code> 在所引用游标使用仅索引扫描计划时不失败（Yugo Nagata、Tom Lane）</p>", "text": "修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败（Yugo Nagata、Tom Lane）", "title": "修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "586de06166d4716d9097fd4a785fe070debb0dba597bf3cf2eec41738f1492b2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix UPDATE/DELETE ... WHERE CURRENT OF to not fail when the referenced cursor uses an index-only-scan plan (Yugo Nagata, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/004", "db_id": "2a0ab3053bfdfc51b055b43959af1610", "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356", "relations": [{"rule": 2, "type": "equivalent", "target": "276437aae600160130d6f092ec25aebd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}}, {"rule": 2, "type": "equivalent", "target": "4740d9f31fd4c12b6d5a04c40c8195be", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}}, {"rule": 2, "type": "equivalent", "target": "97bb10cc9f08896474b1fbb4124b5dea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}}, {"rule": 2, "type": "equivalent", "target": "a676ae183019c3faf5d5c6e70ec82251", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "276437aae600160130d6f092ec25aebd", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 UPDATE/DELETE ... WHERE CURRENT OF，使其在所引用游标使用仅索引扫描计划时不会失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}, "url": "/docs/compare/?release=10.4#10.4-ecf79f0d3bec4228", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "a676ae183019c3faf5d5c6e70ec82251", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}, "url": "/docs/compare/?release=9.6.9#9.6.9-c5317df56ae6d1b1", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "4740d9f31fd4c12b6d5a04c40c8195be", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}, "url": "/docs/compare/?release=9.5.13#9.5.13-c5317df56ae6d1b1", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "97bb10cc9f08896474b1fbb4124b5dea", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}, "url": "/docs/compare/?release=9.4.18#9.4.18-c5317df56ae6d1b1", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-7699b7c857aee911", "cves": [], "html": "<p>修复下推到参数化路径的连接子句的错误规划（Andrew Gierth、Tom Lane）</p>\n<p>这个错误可能把本应是普通<span>“<span>过滤</span>”</span>条件的条件错误分类为外连接的<span>“<span>连接过滤</span>”</span>，导致错误的连接输出。</p>", "text": "修复下推到参数化路径的连接子句的错误规划（Andrew Gierth、Tom Lane） 这个错误可能把本应是普通“过滤”条件的条件错误分类为外连接的“连接过滤”，导致错误的连接输出。", "title": "修复下推到参数化路径的连接子句的错误规划", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "87e0b0ae361cf53f172c3b9b124ad77fa1e53c83e2d783dcce6e84531a208b3c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect planning of join clauses pushed into parameterized paths (Andrew Gierth, Tom Lane) This error could result in misclassifying a condition as a join filter for an outer join when it should be a plain filter condition, leading to incorrect join output.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/005", "db_id": "09ec2b803f67c9b215ef0d191cc745b9", "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e", "relations": [{"rule": 2, "type": "equivalent", "target": "06975570bb43368f9da3f3e6e63f9b5b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}}, {"rule": 2, "type": "equivalent", "target": "385cc7ec3e8ca84a5532528a2053d355", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}}, {"rule": 2, "type": "equivalent", "target": "c3f441037d6fc540343df997ba5757c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}}, {"rule": 2, "type": "equivalent", "target": "f76c4e3fcb04e1fb3730b3de25bf89fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "06975570bb43368f9da3f3e6e63f9b5b", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复对下推到参数化路径的连接子句的不正确规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}, "url": "/docs/compare/?release=10.4#10.4-d414e65c7514963d", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "385cc7ec3e8ca84a5532528a2053d355", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复下推到参数化路径的连接子句的错误规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}, "url": "/docs/compare/?release=9.6.9#9.6.9-7699b7c857aee911", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "f76c4e3fcb04e1fb3730b3de25bf89fd", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复下推到参数化路径的连接子句的错误规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}, "url": "/docs/compare/?release=9.5.13#9.5.13-7699b7c857aee911", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "c3f441037d6fc540343df997ba5757c6", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复下推到参数化路径的连接子句的错误规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}, "url": "/docs/compare/?release=9.4.18#9.4.18-7699b7c857aee911", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-861e51c1f3a53a2d", "cves": [], "html": "<p>修复对顶层 <code>AND</code>/<code>OR</code> 条件带有可证明为 NULL 子子句的 <code>CHECK</code> 约束的错误优化（Tom Lane、Dean Rasheed）</p>\n<p>这可能导致例如约束排除错误地排除不应从查询中排除的子表。</p>", "text": "修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化（Tom Lane、Dean Rasheed） 这可能导致例如约束排除错误地排除不应从查询中排除的子表。", "title": "修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "50f0be4304da0b31f34c993a22f3d1677106423136b709feacf037899b3f76fd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misoptimization of CHECK constraints having provably-NULL subclauses of top-level AND/OR conditions (Tom Lane, Dean Rasheed) This could, for example, allow constraint exclusion to exclude a child table that should not be excluded from a query.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/006", "db_id": "882de0e68f70dccc590c805899ce41b4", "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8", "relations": [{"rule": 2, "type": "equivalent", "target": "751864888c8d30783ddb1f606d0926b7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}}, {"rule": 2, "type": "equivalent", "target": "93aed99951085f5f712fdcc5e8e7b204", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}}, {"rule": 2, "type": "equivalent", "target": "e895843a75a8dc275aec770e0af95c62", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}}, {"rule": 2, "type": "equivalent", "target": "f3056884eb9a381bf3016240f199c28f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "93aed99951085f5f712fdcc5e8e7b204", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复对 CHECK 约束的不正确优化，此类约束的顶层 AND/OR 条件包含可证明为 NULL 的子句", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}, "url": "/docs/compare/?release=10.4#10.4-10267cbcef4716ea", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "f3056884eb9a381bf3016240f199c28f", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}, "url": "/docs/compare/?release=9.6.9#9.6.9-861e51c1f3a53a2d", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "751864888c8d30783ddb1f606d0926b7", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}, "url": "/docs/compare/?release=9.5.13#9.5.13-861e51c1f3a53a2d", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "e895843a75a8dc275aec770e0af95c62", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}, "url": "/docs/compare/?release=9.4.18#9.4.18-861e51c1f3a53a2d", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-ebc0e8f0d2aa1fb7", "cves": [], "html": "<p>避免提交预备事务时发生查询取消或会话终止中断时失败（Stas Kelvich）</p>", "text": "避免提交预备事务时发生查询取消或会话终止中断时失败（Stas Kelvich）", "title": "避免提交预备事务时发生查询取消或会话终止中断时失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "d5b6f0c2dc367fa71aa56f8a0cbe8f8453008239d60c1d745a00c072acb6bc11", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid failure if a query-cancel or session-termination interrupt occurs while committing a prepared transaction (Stas Kelvich)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/007", "db_id": "5628c69795113451c28bba4883f0f9de", "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6", "relations": [{"rule": 2, "type": "equivalent", "target": "012d886d228aff5bad6e972250232db0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}}, {"rule": 2, "type": "equivalent", "target": "ca27f93498d8f85bc983e8f7cce04b4e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}}, {"rule": 2, "type": "equivalent", "target": "cff7a0484624c247e29a0c6b706c2f13", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}}, {"rule": 2, "type": "equivalent", "target": "d849870dcc8a1165e36e3e5ce10a3b6d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ca27f93498d8f85bc983e8f7cce04b4e", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "避免提交预备事务时出现查询取消或会话终止中断而发生失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}, "url": "/docs/compare/?release=10.4#10.4-0dd380e6c0f6895d", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "d849870dcc8a1165e36e3e5ce10a3b6d", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "避免提交预备事务时发生查询取消或会话终止中断时失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}, "url": "/docs/compare/?release=9.6.9#9.6.9-ebc0e8f0d2aa1fb7", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "012d886d228aff5bad6e972250232db0", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "避免提交预备事务时发生查询取消或会话终止中断时失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}, "url": "/docs/compare/?release=9.5.13#9.5.13-ebc0e8f0d2aa1fb7", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "cff7a0484624c247e29a0c6b706c2f13", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "避免提交预备事务时发生查询取消或会话终止中断时失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}, "url": "/docs/compare/?release=9.4.18#9.4.18-ebc0e8f0d2aa1fb7", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-b95c0f061da572ed", "cves": [], "html": "<p>修复重复执行的哈希连接中的查询生命周期内存泄漏（Tom Lane）</p>", "text": "修复重复执行的哈希连接中的查询生命周期内存泄漏（Tom Lane）", "title": "修复重复执行的哈希连接中的查询生命周期内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "077671b017442221d10e9b2ee7c3c59e67714aa7a4c07472b767eee385477ec3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix query-lifespan memory leakage in repeatedly executed hash joins (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/008", "db_id": "9e4930edcd94bb3585db04e3f475fb38", "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647", "relations": [{"rule": 2, "type": "equivalent", "target": "0df67385cc5c95a9daf22ff35d53e649", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}}, {"rule": 2, "type": "equivalent", "target": "37e110dbf8a28646a158b4bd829b0115", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}}, {"rule": 2, "type": "equivalent", "target": "4f09861cbb7f6d11a0d870c50652e1a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}}, {"rule": 2, "type": "equivalent", "target": "71c7a2b03e210421a27cd8b7e75a48fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "37e110dbf8a28646a158b4bd829b0115", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复重复执行的哈希连接中持续整个查询生命周期的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}, "url": "/docs/compare/?release=10.4#10.4-690ae29023177979", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "71c7a2b03e210421a27cd8b7e75a48fc", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复重复执行的哈希连接中的查询生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}, "url": "/docs/compare/?release=9.6.9#9.6.9-b95c0f061da572ed", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "0df67385cc5c95a9daf22ff35d53e649", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复重复执行的哈希连接中的查询生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}, "url": "/docs/compare/?release=9.5.13#9.5.13-b95c0f061da572ed", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "4f09861cbb7f6d11a0d870c50652e1a6", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复重复执行的哈希连接中的查询生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}, "url": "/docs/compare/?release=9.4.18#9.4.18-b95c0f061da572ed", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-01e022d21e09f7b1", "cves": [], "html": "<p>修复 <code>heap_prepare_freeze_tuple</code> 中过于严格的健全性检查（Álvaro Herrera）</p>\n<p>在从 9.2 或更早版本 <span>pg_upgrade</span> 过来的数据库中，这可能导致错误的 <span>“<span>cannot freeze committed xmax</span>”</span> 失败。</p>", "text": "修复 heap_prepare_freeze_tuple 中过于严格的健全性检查（Álvaro Herrera） 在从 9.2 或更早版本 pg_upgrade 过来的数据库中，这可能导致错误的 “cannot freeze committed xmax” 失败。", "title": "修复 heap_prepare_freeze_tuple 中过于严格的健全性检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "dd39f2dacfaa0a6e05261be919f31cf6f3ae2939030ce5fbb89aa21fb9d34078", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix overly strict sanity check in heap_prepare_freeze_tuple (Álvaro Herrera) This could result in incorrect cannot freeze committed xmax failures in databases that have been pg_upgrade'd from 9.2 or earlier.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/009", "db_id": "eb8fd9fe9ea505f2e72c7ec81b50306c", "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc", "relations": [{"rule": 2, "type": "equivalent", "target": "2abcc7387b054f346a1363b3f6a58d27", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}}, {"rule": 2, "type": "equivalent", "target": "398a20d1a113f4524097788e53a7290d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}}, {"rule": 2, "type": "equivalent", "target": "79e214f56277346dcf9d8f861f30a6de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}}, {"rule": 2, "type": "equivalent", "target": "f6753ab33de390a304692dce8a7a98aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "398a20d1a113f4524097788e53a7290d", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 heap_prepare_freeze_tuple 中过于严格的合理性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}, "url": "/docs/compare/?release=10.4#10.4-562b21be795965b3", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "79e214f56277346dcf9d8f861f30a6de", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复 heap_prepare_freeze_tuple 中过于严格的健全性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}, "url": "/docs/compare/?release=9.6.9#9.6.9-01e022d21e09f7b1", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "f6753ab33de390a304692dce8a7a98aa", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 heap_prepare_freeze_tuple 中过于严格的健全性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}, "url": "/docs/compare/?release=9.5.13#9.5.13-01e022d21e09f7b1", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "2abcc7387b054f346a1363b3f6a58d27", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 heap_prepare_freeze_tuple 中过于严格的健全性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}, "url": "/docs/compare/?release=9.4.18#9.4.18-01e022d21e09f7b1", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-7ab83d10d1038ffa", "cves": [], "html": "<p>防止 C 编写的 before-update 行触发器返回<span>“<span>旧</span>”</span>元组时的悬空指针解引用（Rushabh Lathia）</p>", "text": "防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用（Rushabh Lathia）", "title": "防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "61d5b9d49b7c20289669c7a3b0bf01502ff1d1d9e82e56526fca99880235d8f0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent dangling-pointer dereference when a C-coded before-update row trigger returns the old tuple (Rushabh Lathia)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/010", "db_id": "c6793ae4b983258e6c3bf3db3f4a11c5", "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5", "relations": [{"rule": 2, "type": "equivalent", "target": "42acf6090644d3f87227ffaf6b8764ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}}, {"rule": 2, "type": "equivalent", "target": "682362add12a729c5489dda7142bb171", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}}, {"rule": 2, "type": "equivalent", "target": "88113e2fb8b0f955ded947c1de92d902", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}}, {"rule": 2, "type": "equivalent", "target": "e75cd9e0f10d48299c3554b88d509da4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "682362add12a729c5489dda7142bb171", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "防止用 C 编写的更新前行触发器返回“旧”元组时解引用悬空指针", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}, "url": "/docs/compare/?release=10.4#10.4-c5987c818497c034", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "e75cd9e0f10d48299c3554b88d509da4", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}, "url": "/docs/compare/?release=9.6.9#9.6.9-7ab83d10d1038ffa", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "42acf6090644d3f87227ffaf6b8764ed", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}, "url": "/docs/compare/?release=9.5.13#9.5.13-7ab83d10d1038ffa", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "88113e2fb8b0f955ded947c1de92d902", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}, "url": "/docs/compare/?release=9.4.18#9.4.18-7ab83d10d1038ffa", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-c5a47f74f99569cd", "cves": [], "html": "<p>减少自动清理工作者调度期间的锁定（Jeff Janes）</p>\n<p>原来的行为导致有许多表的数据库中潜在工作者并发性的急剧丧失。</p>", "text": "减少自动清理工作者调度期间的锁定（Jeff Janes） 原来的行为导致有许多表的数据库中潜在工作者并发性的急剧丧失。", "title": "减少自动清理工作者调度期间的锁定", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "b6e9b0a7e8ace40f399d3344e46fbe24f68e7af9ce834126f6459d11878cf0a1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce locking during autovacuum worker scheduling (Jeff Janes) The previous behavior caused drastic loss of potential worker concurrency in databases with many tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/011", "db_id": "9879651e1577c9bf2b980164dc96fc99", "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4", "relations": [{"rule": 2, "type": "equivalent", "target": "3b3a523818a14c0f9504acf49b8853ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}}, {"rule": 2, "type": "equivalent", "target": "69c3a93060056cf09ae728faa3c6b1ef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}}, {"rule": 2, "type": "equivalent", "target": "c2fe5d0b1b1ea315c42bb0cbb189e2e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}}, {"rule": 2, "type": "equivalent", "target": "cbe49277038634d0ff5d46032b18414e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c2fe5d0b1b1ea315c42bb0cbb189e2e2", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "减少自动清理工作进程调度期间的加锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}, "url": "/docs/compare/?release=10.4#10.4-2c4a4a22bed483b7", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "69c3a93060056cf09ae728faa3c6b1ef", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "减少自动清理工作者调度期间的锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}, "url": "/docs/compare/?release=9.6.9#9.6.9-c5a47f74f99569cd", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "cbe49277038634d0ff5d46032b18414e", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "减少自动清理工作者调度期间的锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}, "url": "/docs/compare/?release=9.5.13#9.5.13-c5a47f74f99569cd", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "3b3a523818a14c0f9504acf49b8853ed", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "减少自动清理工作者调度期间的锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}, "url": "/docs/compare/?release=9.4.18#9.4.18-c5a47f74f99569cd", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-5e5fddc6e35501d5", "cves": [], "html": "<p>确保把 <code>pg_stat_activity</code> 数据复制到本地内存时复制客户端主机名（Edmund Horner）</p>\n<p>此前，这个本应本地的快照包含指向共享内存的指针，使客户端主机名列可能因任何现有会话断开而意外改变。</p>", "text": "确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名（Edmund Horner） 此前，这个本应本地的快照包含指向共享内存的指针，使客户端主机名列可能因任何现有会话断开而意外改变。", "title": "确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "bc6a7f0322debf94d25707141fcdd3234150ded078d58558858c377baad8fba9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure client hostname is copied while copying pg_stat_activity data to local memory (Edmund Horner) Previously the supposedly-local snapshot contained a pointer into shared memory, allowing the client hostname column to change unexpectedly if any existing session disconnected.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/012", "db_id": "af3a25fc707a614cafcb9ff72f88cf20", "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d", "relations": [{"rule": 2, "type": "equivalent", "target": "5c7983b5c911e39d4fb4734b69fbec03", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}}, {"rule": 2, "type": "equivalent", "target": "8b056c527a773e38bdf57355cb610251", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}}, {"rule": 2, "type": "equivalent", "target": "92c0710eaf0262eb5500ccb1efe0542e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}}, {"rule": 2, "type": "equivalent", "target": "fda974396483a47344c45c305f2cefe9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b056c527a773e38bdf57355cb610251", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "确保将 pg_stat_activity 数据复制到本地内存时也复制客户端主机名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}, "url": "/docs/compare/?release=10.4#10.4-09c9698d058905f5", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "5c7983b5c911e39d4fb4734b69fbec03", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}, "url": "/docs/compare/?release=9.6.9#9.6.9-5e5fddc6e35501d5", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "fda974396483a47344c45c305f2cefe9", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}, "url": "/docs/compare/?release=9.5.13#9.5.13-5e5fddc6e35501d5", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "92c0710eaf0262eb5500ccb1efe0542e", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}, "url": "/docs/compare/?release=9.4.18#9.4.18-5e5fddc6e35501d5", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-e8113010139e614e", "cves": [], "html": "<p>修复 <code>ispell</code> 词典中多个复合词缀的错误处理（Arthur Zakirov）</p>", "text": "修复 ispell 词典中多个复合词缀的错误处理（Arthur Zakirov）", "title": "修复 ispell 词典中多个复合词缀的错误处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "6d0576f91b376a3976fc00fbf0a607dc31dffe97c8e3bf2ca979f5b394871a3e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect processing of multiple compound affixes in ispell dictionaries (Arthur Zakirov)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/013", "db_id": "6130400fb1f41c260f1e042643d0507b", "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6", "relations": [{"rule": 2, "type": "equivalent", "target": "0f6e4e08bd85104518b0759c3a13b12f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}}, {"rule": 2, "type": "equivalent", "target": "291efb69928283fba2177fa4566082b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}}, {"rule": 2, "type": "equivalent", "target": "2eeabca54ad4f767b22d9570cc8adcf2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}}, {"rule": 2, "type": "equivalent", "target": "c39b806add06e980c2133a2ff25fa94c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "291efb69928283fba2177fa4566082b5", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 ispell 字典对多个复合词缀处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}, "url": "/docs/compare/?release=10.4#10.4-a85e988c914cc62c", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "2eeabca54ad4f767b22d9570cc8adcf2", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复 ispell 词典中多个复合词缀的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}, "url": "/docs/compare/?release=9.6.9#9.6.9-e8113010139e614e", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "0f6e4e08bd85104518b0759c3a13b12f", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 ispell 词典中多个复合词缀的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}, "url": "/docs/compare/?release=9.5.13#9.5.13-e8113010139e614e", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "c39b806add06e980c2133a2ff25fa94c", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 ispell 词典中多个复合词缀的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}, "url": "/docs/compare/?release=9.4.18#9.4.18-e8113010139e614e", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-3448b25b62d2b1da", "cves": [], "html": "<p>修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）（Tom Lane）</p>\n<p>在大多数非 C 区域中，这种搜索会返回错误的行集合。</p>", "text": "修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）（Tom Lane） 在大多数非 C 区域中，这种搜索会返回错误的行集合。", "title": "修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "cc521e132138ed8603a2fc9ad803e21c53469f2117da5e62a327b9d7f83ca9e6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix collation-aware searches (that is, indexscans using inequality operators) in SP-GiST indexes on text columns (Tom Lane) Such searches would return the wrong set of rows in most non-C locales.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/014", "db_id": "055505907ab73dcd556292fb81ea9c61", "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1", "relations": [{"rule": 2, "type": "equivalent", "target": "02e9f30aadf663eed076639c509b35b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}}, {"rule": 2, "type": "equivalent", "target": "4806991de97b350a9da8549508ceca1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}}, {"rule": 2, "type": "equivalent", "target": "6c5489f304d2067655ec90f6b952d748", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}}, {"rule": 2, "type": "equivalent", "target": "b4cab7f36fbf2fbcac26864909208677", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6c5489f304d2067655ec90f6b952d748", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复文本列上 SP-GiST 索引中考虑排序规则的搜索（即使用不等式操作符的索引扫描）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}, "url": "/docs/compare/?release=10.4#10.4-8f9e9e1392cd363a", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "4806991de97b350a9da8549508ceca1c", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}, "url": "/docs/compare/?release=9.6.9#9.6.9-3448b25b62d2b1da", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "b4cab7f36fbf2fbcac26864909208677", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}, "url": "/docs/compare/?release=9.5.13#9.5.13-3448b25b62d2b1da", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "02e9f30aadf663eed076639c509b35b3", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}, "url": "/docs/compare/?release=9.4.18#9.4.18-3448b25b62d2b1da", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-e54830f8dcbbc55e", "cves": [], "html": "<p>在 SP-GiST 索引初始构建期间正确计数索引元组数（Tomas Vondra）</p>\n<p>此前，元组数被报告为与底层表相同，如果索引是部分索引就错了。</p>", "text": "在 SP-GiST 索引初始构建期间正确计数索引元组数（Tomas Vondra） 此前，元组数被报告为与底层表相同，如果索引是部分索引就错了。", "title": "在 SP-GiST 索引初始构建期间正确计数索引元组数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "aa215a1d0513c7c8b448f2f1aa03067f92392a0a6930b4f8d7df0e05c03bdcad", "section_path": ["变更"], "commit_groups": [], "identity_text": "Count the number of index tuples correctly during initial build of an SP-GiST index (Tomas Vondra) Previously, the tuple count was reported to be the same as that of the underlying table, which is wrong if the index is partial.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/015", "db_id": "2bd7aaa9f4c77b34211ebaa6805b7b9b", "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0", "relations": [{"rule": 2, "type": "equivalent", "target": "17ec129a297bb8205d81fbea0ba2dc46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}}, {"rule": 2, "type": "equivalent", "target": "87a9fe257dbbf67ae0f5420069f6a5dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}}, {"rule": 2, "type": "equivalent", "target": "ac6f0f2aa60298980a4a8234b8d6ea2f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}}, {"rule": 2, "type": "equivalent", "target": "f3cfe66abaea835caf64a0f0666a4e06", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "17ec129a297bb8205d81fbea0ba2dc46", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "在首次构建 SP-GiST 索引时正确统计索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}, "url": "/docs/compare/?release=10.4#10.4-acd47998537683c5", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "87a9fe257dbbf67ae0f5420069f6a5dd", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "在 SP-GiST 索引初始构建期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}, "url": "/docs/compare/?release=9.6.9#9.6.9-e54830f8dcbbc55e", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "ac6f0f2aa60298980a4a8234b8d6ea2f", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "在 SP-GiST 索引初始构建期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}, "url": "/docs/compare/?release=9.5.13#9.5.13-e54830f8dcbbc55e", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "f3cfe66abaea835caf64a0f0666a4e06", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "在 SP-GiST 索引初始构建期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}, "url": "/docs/compare/?release=9.4.18#9.4.18-e54830f8dcbbc55e", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-4ff7dbd55c5c1335", "cves": [], "html": "<p>在 GiST 索引清理期间正确计数索引元组数（Andrey Borodin）</p>\n<p>此前它报告的是估计的堆元组数，可能不准确，而且如果索引是部分索引则肯定错误。</p>", "text": "在 GiST 索引清理期间正确计数索引元组数（Andrey Borodin） 此前它报告的是估计的堆元组数，可能不准确，而且如果索引是部分索引则肯定错误。", "title": "在 GiST 索引清理期间正确计数索引元组数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "8c73fd7a573772b5dd245c9453c29fbf82c609ddd7041b56ea4aa7019268b9c8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Count the number of index tuples correctly during vacuuming of a GiST index (Andrey Borodin) Previously it reported the estimated number of heap tuples, which might be inaccurate, and is certainly wrong if the index is partial.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/016", "db_id": "cfdf30adb94a383b4ee43f96cc2045bf", "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015", "relations": [{"rule": 2, "type": "equivalent", "target": "29e33e77b216dbbb7810840bad771441", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}}, {"rule": 2, "type": "equivalent", "target": "a638da4d9b969dd3191b7d6887f7e419", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}}, {"rule": 2, "type": "equivalent", "target": "ab9bdfe958543add18823d023e5242b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}}, {"rule": 2, "type": "equivalent", "target": "bccd0d9a1621ebeaa4e5af223bee719f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "29e33e77b216dbbb7810840bad771441", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "在清理 GiST 索引时正确统计索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}, "url": "/docs/compare/?release=10.4#10.4-09b1d2652f4ed6ab", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "ab9bdfe958543add18823d023e5242b4", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "在 GiST 索引清理期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}, "url": "/docs/compare/?release=9.6.9#9.6.9-4ff7dbd55c5c1335", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "bccd0d9a1621ebeaa4e5af223bee719f", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "在 GiST 索引清理期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}, "url": "/docs/compare/?release=9.5.13#9.5.13-4ff7dbd55c5c1335", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "a638da4d9b969dd3191b7d6887f7e419", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "在 GiST 索引清理期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}, "url": "/docs/compare/?release=9.4.18#9.4.18-4ff7dbd55c5c1335", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-31ed71f6b49e9c19", "cves": [], "html": "<p>允许 <code>scalarltsel</code> 和 <code>scalargtsel</code> 用于非核心数据类型（Tomas Vondra）</p>", "text": "允许 scalarltsel 和 scalargtsel 用于非核心数据类型（Tomas Vondra）", "title": "允许 scalarltsel 和 scalargtsel 用于非核心数据类型", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "3faac08b187a07dce59bc0c14b0bd4f8f7645ec44ef16ec77dd870745596916e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow scalarltsel and scalargtsel to be used on non-core datatypes (Tomas Vondra)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/017", "db_id": "a8eeba970cd71720b89ea607aaf6d323", "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e", "relations": [{"rule": 2, "type": "equivalent", "target": "2489a01a1aa072ea9c497779d2c095fa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}}, {"rule": 2, "type": "equivalent", "target": "2d1c9127abf9e220078ac95813fe7259", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}}, {"rule": 2, "type": "equivalent", "target": "b1bfdd907aec89a75bf1cc9b9d040f56", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}}, {"rule": 2, "type": "equivalent", "target": "f282a2d1093812925f015ba800325075", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b1bfdd907aec89a75bf1cc9b9d040f56", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "允许将 scalarltsel 和 scalargtsel 用于非核心数据类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}, "url": "/docs/compare/?release=10.4#10.4-8b8cfa71d75f5384", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "2489a01a1aa072ea9c497779d2c095fa", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "允许 scalarltsel 和 scalargtsel 用于非核心数据类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}, "url": "/docs/compare/?release=9.6.9#9.6.9-31ed71f6b49e9c19", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "2d1c9127abf9e220078ac95813fe7259", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "允许 scalarltsel 和 scalargtsel 用于非核心数据类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}, "url": "/docs/compare/?release=9.5.13#9.5.13-31ed71f6b49e9c19", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "f282a2d1093812925f015ba800325075", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "允许 scalarltsel 和 scalargtsel 用于非核心数据类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}, "url": "/docs/compare/?release=9.4.18#9.4.18-31ed71f6b49e9c19", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-87cad5659cbd6302", "cves": [], "html": "<p>减少收集了大量查询输出之后服务器报告错误时 <span>libpq</span> 的内存消耗（Tom Lane）</p>\n<p>在处理错误消息之前而不是之后丢弃先前的输出。在某些平台（特别是 Linux）上，这可以改变应用之后的内存占用。</p>", "text": "减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗（Tom Lane） 在处理错误消息之前而不是之后丢弃先前的输出。在某些平台（特别是 Linux）上，这可以改变应用之后的内存占用。", "title": "减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "50fb739fac908e756b734cb2f62ee4d48c821386573f02a65df87458d7309e4e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce libpq's memory consumption when a server error is reported after a large amount of query output has been collected (Tom Lane) Discard the previous output before, not after, processing the error message. On some platforms, notably Linux, this can make a difference in the application's subsequent memory footprint.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/018", "db_id": "2e2e30d4f45969ba61c1eae7a82d4a2f", "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308", "relations": [{"rule": 2, "type": "equivalent", "target": "629f2ba7fe42a5b76da1d69efc49c42f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}}, {"rule": 2, "type": "equivalent", "target": "653ce78a669b47808c6c21ba056c6b28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}}, {"rule": 2, "type": "equivalent", "target": "7fd00656eb3166d11d40b31d0a701cde", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}}, {"rule": 2, "type": "equivalent", "target": "93194ee05134f259b2e143780f4fd441", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fd00656eb3166d11d40b31d0a701cde", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "减少已收集大量查询输出后收到服务器错误时 libpq 的内存消耗", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}, "url": "/docs/compare/?release=10.4#10.4-4e156db7f4daad1c", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "653ce78a669b47808c6c21ba056c6b28", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}, "url": "/docs/compare/?release=9.6.9#9.6.9-87cad5659cbd6302", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "629f2ba7fe42a5b76da1d69efc49c42f", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}, "url": "/docs/compare/?release=9.5.13#9.5.13-87cad5659cbd6302", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "93194ee05134f259b2e143780f4fd441", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}, "url": "/docs/compare/?release=9.4.18#9.4.18-87cad5659cbd6302", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-1a219e20bfead561", "cves": [], "html": "<p>修复 <span>ecpg</span> 中的双重释放崩溃（Patrick Krecker、Jeevan Ladhe）</p>", "text": "修复 ecpg 中的双重释放崩溃（Patrick Krecker、Jeevan Ladhe）", "title": "修复 ecpg 中的双重释放崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "e72655c1a8aec6ab93b05f63e8d3a332c0e8808ca93df5cf08d0d17a79095ca5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix double-free crashes in ecpg (Patrick Krecker, Jeevan Ladhe)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/019", "db_id": "cd90ef8d70cdc0271c0e79bedcfd2dab", "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214", "relations": [{"rule": 2, "type": "equivalent", "target": "159b1c65a03eae282bbd2bae744da93b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}}, {"rule": 2, "type": "equivalent", "target": "7c6cac4a57b4ffe489adb9d1f1a4fe93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}}, {"rule": 2, "type": "equivalent", "target": "bb37def1d3ffbdb16f5423882ee284aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}}, {"rule": 2, "type": "equivalent", "target": "ca20789dd1f6eb8145ffe8a4f7dc0023", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bb37def1d3ffbdb16f5423882ee284aa", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 ecpg 中重复释放引发的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}, "url": "/docs/compare/?release=10.4#10.4-87f745f301bd2233", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "ca20789dd1f6eb8145ffe8a4f7dc0023", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复 ecpg 中的双重释放崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}, "url": "/docs/compare/?release=9.6.9#9.6.9-1a219e20bfead561", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "7c6cac4a57b4ffe489adb9d1f1a4fe93", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 ecpg 中的双重释放崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}, "url": "/docs/compare/?release=9.5.13#9.5.13-1a219e20bfead561", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "159b1c65a03eae282bbd2bae744da93b", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 ecpg 中的双重释放崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}, "url": "/docs/compare/?release=9.4.18#9.4.18-1a219e20bfead561", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-b75b0c429c64455d", "cves": [], "html": "<p>修复 <span>ecpg</span> 在 MSVC 构建中正确处理 <code>long long int</code> 变量（Michael Meskes、Andrew Gierth）</p>", "text": "修复 ecpg 在 MSVC 构建中正确处理 long long int 变量（Michael Meskes、Andrew Gierth）", "title": "修复 ecpg 在 MSVC 构建中正确处理 long long int 变量", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "3a6845bfaa8ed032a633e1972bfcedcb4428213aa3fffd03f9644c0bf070a48f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg to handle long long int variables correctly in MSVC builds (Michael Meskes, Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/020", "db_id": "d3d056491c2eb1de16daf122bc461cb3", "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6", "relations": [{"rule": 2, "type": "equivalent", "target": "194d09c49132cfa28077c392a69ced5b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}}, {"rule": 2, "type": "equivalent", "target": "959c04fbac5a9ce1540e3a3c941bb0d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}}, {"rule": 2, "type": "equivalent", "target": "b84680c11f9ad876ed9801ec7a9e50eb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}}, {"rule": 2, "type": "equivalent", "target": "d18f2c181c8331b1b400398ab6b42c29", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b84680c11f9ad876ed9801ec7a9e50eb", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 ecpg，使其在 MSVC 构建中正确处理 long long int 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}, "url": "/docs/compare/?release=10.4#10.4-007b42221bce78e3", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "d18f2c181c8331b1b400398ab6b42c29", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复 ecpg 在 MSVC 构建中正确处理 long long int 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}, "url": "/docs/compare/?release=9.6.9#9.6.9-b75b0c429c64455d", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "194d09c49132cfa28077c392a69ced5b", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 ecpg 在 MSVC 构建中正确处理 long long int 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}, "url": "/docs/compare/?release=9.5.13#9.5.13-b75b0c429c64455d", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "959c04fbac5a9ce1540e3a3c941bb0d5", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 ecpg 在 MSVC 构建中正确处理 long long int 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}, "url": "/docs/compare/?release=9.4.18#9.4.18-b75b0c429c64455d", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-306f32b2f38c0bb1", "cves": [], "html": "<p>修复转储中列表值 GUC 变量值的错误引号（Michael Paquier、Tom Lane）</p>\n<p><code>local_preload_libraries</code>、<code>session_preload_libraries</code>、<code>shared_preload_libraries</code> 和 <code>temp_tablespaces</code> 变量在 <span>pg_dump</span> 输出中没有正确加引号。如果这些变量的设置出现在 <code>CREATE FUNCTION ... SET</code> 或 <code>ALTER DATABASE/ROLE ... SET</code> 子句中，这会导致问题。</p>", "text": "修复转储中列表值 GUC 变量值的错误引号（Michael Paquier、Tom Lane） local_preload_libraries、session_preload_libraries、shared_preload_libraries 和 temp_tablespaces 变量在 pg_dump 输出中没有正确加引号。如果这些变量的设置出现在 CREATE FUNCTION ... SET 或 ALTER DATABASE/ROLE ... SET 子句中，这会导致问题。", "title": "修复转储中列表值 GUC 变量值的错误引号", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "e5dbd445c92ac1174882e540ceea5d52de7621e6b0c2f45903443fc709813424", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix mis-quoting of values for list-valued GUC variables in dumps (Michael Paquier, Tom Lane) The local_preload_libraries, session_preload_libraries, shared_preload_libraries, and temp_tablespaces variables were not correctly quoted in pg_dump output. This would cause problems if settings for these variables appeared in CREATE FUNCTION ... SET or ALTER DATABASE/ROLE ... SET clauses.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/021", "db_id": "8ad311f47bc62ac7d78638203bbff004", "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a", "relations": [{"rule": 2, "type": "equivalent", "target": "064841bc3fa7e083d2bfa3086a3aed02", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}}, {"rule": 2, "type": "equivalent", "target": "749eef6a8625564b60808c33fbf43cdb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}}, {"rule": 2, "type": "equivalent", "target": "b6b812536ccecbcc7bb8b23c8c49a53e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}}, {"rule": 2, "type": "equivalent", "target": "de2bab69cea68ac0568fcd06178a4d74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b6b812536ccecbcc7bb8b23c8c49a53e", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复转储中列表值 GUC 变量的值引用不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}, "url": "/docs/compare/?release=10.4#10.4-3319cfce1d57e55a", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "749eef6a8625564b60808c33fbf43cdb", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}, "url": "/docs/compare/?release=9.6.9#9.6.9-306f32b2f38c0bb1", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "de2bab69cea68ac0568fcd06178a4d74", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}, "url": "/docs/compare/?release=9.5.13#9.5.13-306f32b2f38c0bb1", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "064841bc3fa7e083d2bfa3086a3aed02", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}, "url": "/docs/compare/?release=9.4.18#9.4.18-306f32b2f38c0bb1", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-529b2ac348c7a206", "cves": [], "html": "<p>修复 <span>PL/pgSQL</span> 整数 <code>FOR</code> 循环中的溢出处理（Tom Lane）</p>\n<p>原来的编码在一些非 gcc 编译器上未能检测到循环变量的溢出，导致无限循环。</p>", "text": "修复 PL/pgSQL 整数 FOR 循环中的溢出处理（Tom Lane） 原来的编码在一些非 gcc 编译器上未能检测到循环变量的溢出，导致无限循环。", "title": "修复 PL/pgSQL 整数 FOR 循环中的溢出处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "efdbf6bd0ed4b310c6a078ceaf59be49d06a793dc47122dcf35698220f77e08c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix overflow handling in PL/pgSQL integer FOR loops (Tom Lane) The previous coding failed to detect overflow of the loop variable on some non-gcc compilers, leading to an infinite loop.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/022", "db_id": "96f35c267ed059265a5bd3db3e0992bf", "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f", "relations": [{"rule": 2, "type": "equivalent", "target": "3cc06ac8b9c606122033c3c3c23e3aae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}}, {"rule": 2, "type": "equivalent", "target": "eb6e1fc684cee262048ebc8962c28dc9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}}, {"rule": 2, "type": "equivalent", "target": "f450345e6832e0dd2c5a1b3a45c6ac38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}}, {"rule": 2, "type": "equivalent", "target": "fe4e9cda6c02ace229e826230e1d5be7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}}], "version": "9.3.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f450345e6832e0dd2c5a1b3a45c6ac38", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 PL/pgSQL 整数 FOR 循环的溢出处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}, "url": "/docs/compare/?release=10.4#10.4-54f1d4fb867b1af6", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "3cc06ac8b9c606122033c3c3c23e3aae", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "修复 PL/pgSQL 整数 FOR 循环中的溢出处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}, "url": "/docs/compare/?release=9.6.9#9.6.9-529b2ac348c7a206", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "fe4e9cda6c02ace229e826230e1d5be7", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 PL/pgSQL 整数 FOR 循环中的溢出处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}, "url": "/docs/compare/?release=9.5.13#9.5.13-529b2ac348c7a206", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "eb6e1fc684cee262048ebc8962c28dc9", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 PL/pgSQL 整数 FOR 循环中的溢出处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}, "url": "/docs/compare/?release=9.4.18#9.4.18-529b2ac348c7a206", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-d8ae8f462ec2ac64", "cves": [], "html": "<p>调整 <span>PL/Python</span> 回归测试在 Python 3.7 下通过（Peter Eisentraut）</p>", "text": "调整 PL/Python 回归测试在 Python 3.7 下通过（Peter Eisentraut）", "title": "调整 PL/Python 回归测试在 Python 3.7 下通过", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "f1967ed6bf02290cd209ca84016395618daa99c78afae9520577060299528e8e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Adjust PL/Python regression tests to pass under Python 3.7 (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/023", "db_id": "5aab5e26643cc2e13c498816801dc7bf", "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235", "relations": [{"rule": 2, "type": "equivalent", "target": "092a5c903e18a218cb0e3d07c1ddfa58", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}}, {"rule": 2, "type": "equivalent", "target": "164add571e0be8b919d0c5b3da2daead", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}}, {"rule": 2, "type": "equivalent", "target": "b0c08871487406ad55fa03671c7c93db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}}, {"rule": 2, "type": "equivalent", "target": "f6ba738d03ea0144cae827cb325f389e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f6ba738d03ea0144cae827cb325f389e", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "调整 PL/Python 回归测试，使其在 Python 3.7 下通过", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}, "url": "/docs/compare/?release=10.4#10.4-ff8b0ae87fbcb435", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "164add571e0be8b919d0c5b3da2daead", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "调整 PL/Python 回归测试在 Python 3.7 下通过", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}, "url": "/docs/compare/?release=9.6.9#9.6.9-d8ae8f462ec2ac64", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "092a5c903e18a218cb0e3d07c1ddfa58", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "调整 PL/Python 回归测试在 Python 3.7 下通过", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}, "url": "/docs/compare/?release=9.5.13#9.5.13-d8ae8f462ec2ac64", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "b0c08871487406ad55fa03671c7c93db", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "调整 PL/Python 回归测试在 Python 3.7 下通过", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}, "url": "/docs/compare/?release=9.4.18#9.4.18-d8ae8f462ec2ac64", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-c664b797cc26ff0d", "cves": [], "html": "<p>支持用 Python 3 和 MSVC 构建时测试 <span>PL/Python</span> 及相关模块（Andrew Dunstan）</p>", "text": "支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块（Andrew Dunstan）", "title": "支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "36bc63756c7dac7afd09cf86f1bc04af5890db529471ee6f52c5a7bd70686e11", "section_path": ["变更"], "commit_groups": [], "identity_text": "Support testing PL/Python and related modules when building with Python 3 and MSVC (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/024", "db_id": "b861e1fba741bc04dc0960df73737ae4", "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c", "relations": [{"rule": 2, "type": "equivalent", "target": "67249569a8f02ab6d5b7fda603dafabe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}}, {"rule": 2, "type": "equivalent", "target": "bbb1df0c4d80a4d41956812f4c8d0341", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}}, {"rule": 2, "type": "equivalent", "target": "e0c74adb069c3d08a3e6b9c95c9f695e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}}, {"rule": 2, "type": "equivalent", "target": "e72aa8d3414b4f61eb5f961a40796c82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "67249569a8f02ab6d5b7fda603dafabe", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "支持在使用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}, "url": "/docs/compare/?release=10.4#10.4-615183650081353c", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "e0c74adb069c3d08a3e6b9c95c9f695e", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}, "url": "/docs/compare/?release=9.6.9#9.6.9-c664b797cc26ff0d", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "e72aa8d3414b4f61eb5f961a40796c82", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}, "url": "/docs/compare/?release=9.5.13#9.5.13-c664b797cc26ff0d", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "bbb1df0c4d80a4d41956812f4c8d0341", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}, "url": "/docs/compare/?release=9.4.18#9.4.18-c664b797cc26ff0d", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-26eff212b40fd4df", "cves": [], "html": "<p>重命名内部 <code>b64_encode</code> 和 <code>b64_decode</code> 函数，避免与 Solaris 11.4 内置函数冲突（Rainer Orth）</p>", "text": "重命名内部 b64_encode 和 b64_decode 函数，避免与 Solaris 11.4 内置函数冲突（Rainer Orth）", "title": "重命名内部 b64_encode 和 b64_decode 函数，避免与 Solaris 11.4 内置函数冲突", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "bc33b0a1d0bbf813c308c871a5b6c87913334027924a8653e68f07803ae88e02", "section_path": ["变更"], "commit_groups": [], "identity_text": "Rename internal b64_encode and b64_decode functions to avoid conflict with Solaris 11.4 built-in functions (Rainer Orth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/025", "db_id": "77b02662e7b58dcfdfd84bea5cf2e418", "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c", "relations": [{"rule": 2, "type": "equivalent", "target": "06b9ed0200a03897f6a65af4cb9e00ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}}, {"rule": 2, "type": "equivalent", "target": "4ad3cf7374fe1c4733020237eb54702e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}}, {"rule": 2, "type": "equivalent", "target": "54f9a13e02ec87667d4e9b57e8db3799", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}}, {"rule": 2, "type": "equivalent", "target": "7540f3603393aeae040a4659ba200e0c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7540f3603393aeae040a4659ba200e0c", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "重命名内部函数 b64_encode 和 b64_decode，避免与 Solaris 11.4 的内置函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}, "url": "/docs/compare/?release=10.4#10.4-d1935009b2403fa7", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "4ad3cf7374fe1c4733020237eb54702e", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "重命名内部 b64_encode 和 b64_decode 函数，避免与 Solaris 11.4 内置函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}, "url": "/docs/compare/?release=9.6.9#9.6.9-26eff212b40fd4df", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "06b9ed0200a03897f6a65af4cb9e00ea", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "重命名内部 b64_encode 和 b64_decode 函数，避免与 Solaris 11.4 内置函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}, "url": "/docs/compare/?release=9.5.13#9.5.13-26eff212b40fd4df", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "54f9a13e02ec87667d4e9b57e8db3799", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "重命名内部 b64_encode 和 b64_decode 函数，避免与 Solaris 11.4 内置函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}, "url": "/docs/compare/?release=9.4.18#9.4.18-26eff212b40fd4df", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-873e63e8cc1f19cc", "cves": [], "html": "<p>把我们的时区库副本与 IANA tzcode 版本 2018e 同步（Tom Lane）</p>\n<p>这修复了 <span>zic</span> 时区数据编译器应对负夏令时偏移的能力。虽然 <span>PostgreSQL</span> 项目不会立即发布这种时区数据，但 <span>zic</span> 可能被用于直接从 IANA 获得的时区数据，因此现在更新 <span>zic</span> 是审慎的。</p>", "text": "把我们的时区库副本与 IANA tzcode 版本 2018e 同步（Tom Lane） 这修复了 zic 时区数据编译器应对负夏令时偏移的能力。虽然 PostgreSQL 项目不会立即发布这种时区数据，但 zic 可能被用于直接从 IANA 获得的时区数据，因此现在更新 zic 是审慎的。", "title": "把我们的时区库副本与 IANA tzcode 版本 2018e 同步", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "0f7c8185bea59aeddd3e6e0fccb83722a15d1c0954f51cfa65a9a5f3457becc0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Sync our copy of the timezone library with IANA tzcode release 2018e (Tom Lane) This fixes the zic timezone data compiler to cope with negative daylight-savings offsets. While the PostgreSQL project will not immediately ship such timezone data, zic might be used with timezone data obtained directly from IANA, so it seems prudent to update zic now.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/026", "db_id": "95f2feddf6ec11ef3108ac02a7a07d65", "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224", "relations": [{"rule": 2, "type": "equivalent", "target": "0cc1900bec6f69ad0bba2717f75f98fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}}, {"rule": 2, "type": "equivalent", "target": "18a599de7bec16fd8a0238f0fda5a7f4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}}, {"rule": 2, "type": "equivalent", "target": "578af37ef74ed8fc4e94dc6d8da39545", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}}, {"rule": 2, "type": "equivalent", "target": "ad2a1d2d86c8ebbe87d1da7a8cd6341a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0cc1900bec6f69ad0bba2717f75f98fc", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "将所用时区库同步到 IANA tzcode 2018e 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}, "url": "/docs/compare/?release=10.4#10.4-468a46698b9cfc72", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "ad2a1d2d86c8ebbe87d1da7a8cd6341a", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "把我们的时区库副本与 IANA tzcode 版本 2018e 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}, "url": "/docs/compare/?release=9.6.9#9.6.9-873e63e8cc1f19cc", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "578af37ef74ed8fc4e94dc6d8da39545", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "把我们的时区库副本与 IANA tzcode 版本 2018e 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}, "url": "/docs/compare/?release=9.5.13#9.5.13-873e63e8cc1f19cc", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "18a599de7bec16fd8a0238f0fda5a7f4", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "把我们的时区库副本与 IANA tzcode 版本 2018e 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}, "url": "/docs/compare/?release=9.4.18#9.4.18-873e63e8cc1f19cc", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.3.23-b89a51d15b4feea8", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。</p>", "text": "更新时区数据文件到 tzdata 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。", "title": "更新时区数据文件到 tzdata 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5", "source_hash": "7dc2a4b21875c233d9647ee823435f1c34799c40c292f359974a85ad1b1e8322", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2018d for DST law changes in Palestine and Antarctica (Casey Station), plus historical corrections for Portugal and its colonies, as well as Enderbury, Jamaica, Turks & Caicos Islands, and Uruguay.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.23/changes/027", "db_id": "daa3f8bca1c58eb91ab08201f80cebfa", "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c", "relations": [{"rule": 2, "type": "equivalent", "target": "15e000d884ef74d4cb086fd21b0fd5a7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}}, {"rule": 2, "type": "equivalent", "target": "19c596e1b4b3f3be560f47d5d1f241f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}}, {"rule": 2, "type": "equivalent", "target": "634fe596a9e43c164d6ac3eb53037661", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}}, {"rule": 2, "type": "equivalent", "target": "7dc8ddc7c7abdcbec76b5a5d16b5f3d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}}], "version": "9.3.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7dc8ddc7c7abdcbec76b5a5d16b5f3d5", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "将时区数据文件更新到 tzdata 2018d 版，以反映巴勒斯坦和南极洲（凯西站）的夏令时法规变更，并修正葡萄牙及其殖民地、恩德伯里岛、牙买加、特克斯 & 凯科斯群岛和乌拉圭的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}, "url": "/docs/compare/?release=10.4#10.4-f02439962d1fec18", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "19c596e1b4b3f3be560f47d5d1f241f2", "kind": "equivalent", "version": "9.6.9", "label": "9.6.9", "title": "更新时区数据文件到 tzdata 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}, "url": "/docs/compare/?release=9.6.9#9.6.9-b89a51d15b4feea8", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5"}, {"db_id": "15e000d884ef74d4cb086fd21b0fd5a7", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "更新时区数据文件到 tzdata 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}, "url": "/docs/compare/?release=9.5.13#9.5.13-b89a51d15b4feea8", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "634fe596a9e43c164d6ac3eb53037661", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "更新时区数据文件到 tzdata 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}, "url": "/docs/compare/?release=9.4.18#9.4.18-b89a51d15b4feea8", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}]}, {"date": "2018-03-01", "build": "9.3.22", "major": "9.3", "minor": 22, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.22", "eol_date": "2018-11-08", "date_text": "2018-03-01", "supported": false, "manual_url": "/docs/9.3/release-9-3-22.html", "source_url": "/docs/release/9.3.22/", "entry_count": 7, "placeholder": false, "content_hash": "f80c84dc6de0a88bc3031b30b13eece477905e15cda15d4fade61a3f481f8d20", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 7, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你运行的安装中并非所有用户都相互信任，或者你维护打算在任意场合使用的应用或扩展，强烈建议阅读下面第一条变更日志条目所述的文档更改，并采取适当步骤确保你的安装或代码安全。</p>\n<p>另外，下面第二条变更日志条目所述的更改可能导致索引表达式或物化视图中使用的函数在自动分析期间或从转储重新装载时失败。升级之后，请监控服务器日志中此类问题，并修复受影响的函数。</p>\n<p>不过，如果你是从早于 9.3.18 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-18.html\" title=\"E.8. 版本 9.3.18\">第 E.8 节</a>。</p>", "compatibility_count": 0, "label": "9.3.22", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3135, "support_days": -2883, "entries": [{"id": "9.3.22-15416513126c15d4", "cves": ["CVE-2018-1058"], "html": "<p>记录如何配置安装和应用以防受其他用户依赖 search_path 的特洛伊木马攻击（Noah Misch）</p>\n<p>使用包含任何可被恶意用户写入的模式的 <code>search_path</code> 设置，会使该用户能够截获查询的控制，然后以被攻击用户的权限运行任意 SQL 代码。虽然可以写出能防范此类劫持的查询，但记法上很繁琐，而且很容易遗漏漏洞。因此，我们现在推荐不把任何不受信任模式放入搜索路径的配置。相关文档见<a href=\"/docs/9.3/ddl-schemas.html#DDL-SCHEMAS-PATTERNS\" title=\"5.7.6. 使用方式\">第 5.7.6 节</a>（面向数据库管理员和用户）、<a href=\"/docs/9.3/libpq.html#LIBPQ-CONNECT\" title=\"31.1. 数据库连接控制函数\">第 31.1 节</a>（面向应用作者）、<a href=\"/docs/9.3/extend-extensions.html#EXTEND-EXTENSIONS-STYLE\" title=\"35.15.1. 定义扩展对象\">第 35.15.1 节</a>（面向扩展作者）和<a href=\"/docs/9.3/sql-createfunction.html\" title=\"CREATE FUNCTION\"><span>CREATE FUNCTION</span></a>（面向 <code>SECURITY DEFINER</code> 函数的作者）。（CVE-2018-1058）</p>", "text": "记录如何配置安装和应用以防受其他用户依赖 search_path 的特洛伊木马攻击（Noah Misch） 使用包含任何可被恶意用户写入的模式的 search_path 设置，会使该用户能够截获查询的控制，然后以被攻击用户的权限运行任意 SQL 代码。虽然可以写出能防范此类劫持的查询，但记法上很繁琐，而且很容易遗漏漏洞。因此，我们现在推荐不把任何不受信任模式放入搜索路径的配置。相关文档见第 5.7.6 节（面向数据库管理员和用户）、第 31.1 节（面向应用作者）、第 35.15.1 节（面向扩展作者）和CREATE FUNCTION（面向 SECURITY DEFINER 函数的作者）。（CVE-2018-1058）", "title": "记录如何配置安装和应用以防受其他用户依赖 search_path 的特洛伊木马攻击", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5", "source_hash": "b4042750a25e6442ddc559c786c884be483d23d05784f408ed9eb82fdb0fc2c3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Document how to configure installations and applications to guard against search-path-dependent trojan-horse attacks from other users (Noah Misch) Using a search_path setting that includes any schemas writable by a hostile user enables that user to capture control of queries and then run arbitrary SQL code with the permissions of the attacked user. While it is possible to write queries that are proof against such hijacking, it is notationally tedious, and it's very easy to overlook holes. Therefore, we now recommend configurations in which no untrusted schemas appear in one's search path. Relevant documentation appears in ddl-schemas-patterns (for database administrators and users), libpq-connect (for application authors), extend-extensions-style (for extension authors), and sql-createfunction (for authors of SECURITY DEFINER functions). (CVE-2018-1058)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.22/changes/001", "db_id": "d768300c73aa4613bc3d587cf677b173", "patch_ids": [], "statement_hash": "3c767e77124e4b0773fa82ae19d2a87a3dd8be0da636be471adac235b69ff6fb", "relations": [{"rule": 2, "type": "equivalent", "target": "0c568c2662528214db733b793d4b2804", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c767e77124e4b0773fa82ae19d2a87a3dd8be0da636be471adac235b69ff6fb"}}], "version": "9.3.22", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "0c568c2662528214db733b793d4b2804", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "记录如何配置安装和应用以防受其他用户依赖 search_path 的特洛伊木马攻击", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c767e77124e4b0773fa82ae19d2a87a3dd8be0da636be471adac235b69ff6fb"}, "url": "/docs/compare/?release=9.4.17#9.4.17-15416513126c15d4", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}]}, {"id": "9.3.22-5f3c119a2c06181a", "cves": ["CVE-2018-1058"], "html": "<p>避免在 <span>pg_dump</span> 和其他客户端程序中使用不安全的 <code>search_path</code> 设置（Noah Misch、Tom Lane）</p>\n<p><span>pg_dump</span>、<span>pg_upgrade</span>、 <span>vacuumdb</span> 等 <span>PostgreSQL</span> 自带的应用本身也容易受到上一条变更日志条目所述劫持的影响；由于这些应用通常由超级用户运行，它们是特别有吸引力的目标。为使它们无论整个安装是否已被加固都安全，修改它们使其 <code>search_path</code> 设置只包含 <code>pg_catalog</code> 模式。自动清理工作者进程现在也同样如此。</p>\n<p>当用户提供的函数被这些程序间接执行时（例如索引表达式中的用户提供函数），更严格的 <code>search_path</code> 可能导致错误，需要通过调整这些用户提供的函数使其不对被调用时的搜索路径做任何假定来更正。这从来都是良好实践，但现在这是正确行为的必要条件。（CVE-2018-1058）</p>", "text": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置（Noah Misch、Tom Lane） pg_dump、pg_upgrade、 vacuumdb 等 PostgreSQL 自带的应用本身也容易受到上一条变更日志条目所述劫持的影响；由于这些应用通常由超级用户运行，它们是特别有吸引力的目标。为使它们无论整个安装是否已被加固都安全，修改它们使其 search_path 设置只包含 pg_catalog 模式。自动清理工作者进程现在也同样如此。 当用户提供的函数被这些程序间接执行时（例如索引表达式中的用户提供函数），更严格的 search_path 可能导致错误，需要通过调整这些用户提供的函数使其不对被调用时的搜索路径做任何假定来更正。这从来都是良好实践，但现在这是正确行为的必要条件。（CVE-2018-1058）", "title": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5", "source_hash": "086f485051777cfc5575c2811e9fb97623fa278601d1596f843001425d514504", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid use of insecure search_path settings in pg_dump and other client programs (Noah Misch, Tom Lane) pg_dump, pg_upgrade, vacuumdb and other PostgreSQL-provided applications were themselves vulnerable to the type of hijacking described in the previous changelog entry; since these applications are commonly run by superusers, they present particularly attractive targets. To make them secure whether or not the installation as a whole has been secured, modify them to include only the pg_catalog schema in their search_path settings. Autovacuum worker processes now do the same, as well. In cases where user-provided functions are indirectly executed by these programs — for example, user-provided functions in index expressions — the tighter search_path may result in errors, which will need to be corrected by adjusting those user-provided functions to not assume anything about what search path they are invoked under. That has always been good practice, but now it will be necessary for correct behavior. (CVE-2018-1058)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.22/changes/002", "db_id": "07e7c249ed74636cb7ff30cca14583a2", "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6", "relations": [{"rule": 2, "type": "equivalent", "target": "285ab0afa4e4e1bda61cb74e401a85e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}}, {"rule": 2, "type": "equivalent", "target": "2ec2e0c64c523020ee8bff794b7dc5bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}}, {"rule": 2, "type": "equivalent", "target": "69e724f77f37ca5335e439d572362f89", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}}, {"rule": 2, "type": "equivalent", "target": "9cdc72dacd8957621666de3bc80f94e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}}], "version": "9.3.22", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "9cdc72dacd8957621666de3bc80f94e9", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}, "url": "/docs/compare/?release=10.3#10.3-5f3c119a2c06181a", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "285ab0afa4e4e1bda61cb74e401a85e4", "kind": "equivalent", "version": "9.6.8", "label": "9.6.8", "title": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}, "url": "/docs/compare/?release=9.6.8#9.6.8-5f3c119a2c06181a", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5"}, {"db_id": "69e724f77f37ca5335e439d572362f89", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}, "url": "/docs/compare/?release=9.5.12#9.5.12-5f3c119a2c06181a", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "2ec2e0c64c523020ee8bff794b7dc5bb", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}, "url": "/docs/compare/?release=9.4.17#9.4.17-5f3c119a2c06181a", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}]}, {"id": "9.3.22-a2a2d10a68caa3ed", "cves": [], "html": "<p>修复子计划中出现 CTE 引用时并发更新重检查的错误行为（Tom Lane）</p>\n<p>如果 CTE（<code>WITH</code> 子句引用）被用于 InitPlan 或 SubPlan，且查询因试图更新或锁定并发更新的行而需要重检查，可能得到错误结果。</p>", "text": "修复子计划中出现 CTE 引用时并发更新重检查的错误行为（Tom Lane） 如果 CTE（WITH 子句引用）被用于 InitPlan 或 SubPlan，且查询因试图更新或锁定并发更新的行而需要重检查，可能得到错误结果。", "title": "修复子计划中出现 CTE 引用时并发更新重检查的错误行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5", "source_hash": "ea87e11868ef81a69cdaf6dfe008350f17f6c533db78ab48522ddccf9f5fd5a5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misbehavior of concurrent-update rechecks with CTE references appearing in subplans (Tom Lane) If a CTE (WITH clause reference) is used in an InitPlan or SubPlan, and the query requires a recheck due to trying to update or lock a concurrently-updated row, incorrect results could be obtained.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.22/changes/003", "db_id": "a8daaadc8ea647c9253fa0ea6edcdf0e", "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb", "relations": [{"rule": 2, "type": "equivalent", "target": "4ac3c087eadec6a09af2ac698c7527e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}}, {"rule": 2, "type": "equivalent", "target": "557e981b12d86db91785cdce175221a5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}}, {"rule": 2, "type": "equivalent", "target": "65c2b1f3aa8fcd6277735aeab8756942", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}}, {"rule": 2, "type": "equivalent", "target": "9bf393cccf389e1408524d365c537615", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}}], "version": "9.3.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "557e981b12d86db91785cdce175221a5", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "修复子计划中存在 CTE 引用时并发更新重新检查的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}, "url": "/docs/compare/?release=10.3#10.3-a872d5a8564edde1", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "9bf393cccf389e1408524d365c537615", "kind": "equivalent", "version": "9.6.8", "label": "9.6.8", "title": "修复子计划中出现 CTE 引用时并发更新重检查的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}, "url": "/docs/compare/?release=9.6.8#9.6.8-a2a2d10a68caa3ed", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5"}, {"db_id": "4ac3c087eadec6a09af2ac698c7527e8", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "修复子计划中出现 CTE 引用时并发更新重检查的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}, "url": "/docs/compare/?release=9.5.12#9.5.12-a2a2d10a68caa3ed", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "65c2b1f3aa8fcd6277735aeab8756942", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "修复子计划中出现 CTE 引用时并发更新重检查的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}, "url": "/docs/compare/?release=9.4.17#9.4.17-a2a2d10a68caa3ed", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}]}, {"id": "9.3.22-179826c81b230b71", "cves": [], "html": "<p>修复外连接中重叠 mergejoin 子句导致的规划器失败（Tom Lane）</p>\n<p>这些错误在边界情况下导致 <span>“<span>left and right pathkeys do not match in mergejoin</span>”</span> 或 <span>“<span>outer pathkeys do not match mergeclauses</span>”</span> 规划器错误。</p>", "text": "修复外连接中重叠 mergejoin 子句导致的规划器失败（Tom Lane） 这些错误在边界情况下导致 “left and right pathkeys do not match in mergejoin” 或 “outer pathkeys do not match mergeclauses” 规划器错误。", "title": "修复外连接中重叠 mergejoin 子句导致的规划器失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5", "source_hash": "d576d7d55645300d80308749ec5b5297bab607c04d0a7531ea6e6004e9534122", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner failures with overlapping mergejoin clauses in an outer join (Tom Lane) These mistakes led to left and right pathkeys do not match in mergejoin or outer pathkeys do not match mergeclauses planner errors in corner cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.22/changes/004", "db_id": "9aada7ac4c7520858d32cdd00dd57e1f", "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c", "relations": [{"rule": 2, "type": "equivalent", "target": "0246ca748e8808601f2952aaf477bc7d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}}, {"rule": 2, "type": "equivalent", "target": "112e761317a2a41a3ad1e08f6759cb18", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}}, {"rule": 2, "type": "equivalent", "target": "56fa2fc847577a89467780f69c68e5f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}}, {"rule": 2, "type": "equivalent", "target": "9cc2fe244dd7f351eac0b31733b2d757", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}}], "version": "9.3.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0246ca748e8808601f2952aaf477bc7d", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "修复外连接中存在重叠归并连接子句时规划器失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}, "url": "/docs/compare/?release=10.3#10.3-839b6a412f88926e", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "9cc2fe244dd7f351eac0b31733b2d757", "kind": "equivalent", "version": "9.6.8", "label": "9.6.8", "title": "修复外连接中重叠 mergejoin 子句导致的规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}, "url": "/docs/compare/?release=9.6.8#9.6.8-179826c81b230b71", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5"}, {"db_id": "112e761317a2a41a3ad1e08f6759cb18", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "修复外连接中重叠 mergejoin 子句导致的规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}, "url": "/docs/compare/?release=9.5.12#9.5.12-179826c81b230b71", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "56fa2fc847577a89467780f69c68e5f3", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "修复外连接中重叠 mergejoin 子句导致的规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}, "url": "/docs/compare/?release=9.4.17#9.4.17-179826c81b230b71", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}]}, {"id": "9.3.22-2464e26a56508e56", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 未能为物化视图保留 <code>relfrozenxid</code> 的问题（Tom Lane、Andres Freund）</p>\n<p>这一疏漏可能导致升级后物化视图中的数据损坏，表现为 <span>“<span>could not access status of transaction</span>”</span> 或 <span>“<span>found xmin from before relfrozenxid</span>”</span> 错误。很少刷新的物化视图，或只用 <code>REFRESH MATERIALIZED VIEW CONCURRENTLY</code> 维护的物化视图更可能出现问题。</p>\n<p>如果观察到这种损坏，可以通过刷新物化视图（不带 <code>CONCURRENTLY</code>）来修复。</p>", "text": "修复 pg_upgrade 未能为物化视图保留 relfrozenxid 的问题（Tom Lane、Andres Freund） 这一疏漏可能导致升级后物化视图中的数据损坏，表现为 “could not access status of transaction” 或 “found xmin from before relfrozenxid” 错误。很少刷新的物化视图，或只用 REFRESH MATERIALIZED VIEW CONCURRENTLY 维护的物化视图更可能出现问题。 如果观察到这种损坏，可以通过刷新物化视图（不带 CONCURRENTLY）来修复。", "title": "修复 pg_upgrade 未能为物化视图保留 relfrozenxid 的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5", "source_hash": "a5788db0efa33d3edaa7ec50ed7ae54c616e5e97b80ed7cc0b46aec3c6ac57ae", "section_path": ["变更"], "commit_groups": [], "identity_text": "Repair pg_upgrade's failure to preserve relfrozenxid for materialized views (Tom Lane, Andres Freund) This oversight could lead to data corruption in materialized views after an upgrade, manifesting as could not access status of transaction or found xmin from before relfrozenxid errors. The problem would be more likely to occur in seldom-refreshed materialized views, or ones that were maintained only with REFRESH MATERIALIZED VIEW CONCURRENTLY. If such corruption is observed, it can be repaired by refreshing the materialized view (without CONCURRENTLY).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.22/changes/005", "db_id": "267341483bb67f18762263a23a116a9a", "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5", "relations": [{"rule": 2, "type": "equivalent", "target": "6ec91031a9df77ef7dd3930d1b4037a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}}, {"rule": 2, "type": "equivalent", "target": "809e86a4b23d7d03113dae5ef73ab9fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}}, {"rule": 2, "type": "equivalent", "target": "8c7f0090d3efdd2cd57229f28fd5b068", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}}, {"rule": 2, "type": "equivalent", "target": "e9404b51f387085a208937d5e6a9fffe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}}], "version": "9.3.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "809e86a4b23d7d03113dae5ef73ab9fb", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "修复 pg_upgrade 未保留物化视图的 relfrozenxid 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}, "url": "/docs/compare/?release=10.3#10.3-40183e31fae9fef5", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "e9404b51f387085a208937d5e6a9fffe", "kind": "equivalent", "version": "9.6.8", "label": "9.6.8", "title": "修复 pg_upgrade 未能为物化视图保留 relfrozenxid 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}, "url": "/docs/compare/?release=9.6.8#9.6.8-2464e26a56508e56", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5"}, {"db_id": "8c7f0090d3efdd2cd57229f28fd5b068", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "修复 pg_upgrade 未能为物化视图保留 relfrozenxid 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}, "url": "/docs/compare/?release=9.5.12#9.5.12-2464e26a56508e56", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "6ec91031a9df77ef7dd3930d1b4037a6", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "修复 pg_upgrade 未能为物化视图保留 relfrozenxid 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}, "url": "/docs/compare/?release=9.4.17#9.4.17-2464e26a56508e56", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}]}, {"id": "9.3.22-e08582093695d39b", "cves": [], "html": "<p>修复错误 <code>CONTEXT</code> 栈中 PL/Python 函数名的错误报告（Tom Lane）</p>\n<p>嵌套 PL/Python 函数调用（即通过 SPI 查询从另一个 PL/Python 函数到达的调用）中发生的错误会导致栈跟踪把内层函数名显示两次，而不是预期的结果。此外，嵌套 PL/Python <code>DO</code> 块中的错误在某些平台上可能导致空指针解引用崩溃。</p>", "text": "修复错误 CONTEXT 栈中 PL/Python 函数名的错误报告（Tom Lane） 嵌套 PL/Python 函数调用（即通过 SPI 查询从另一个 PL/Python 函数到达的调用）中发生的错误会导致栈跟踪把内层函数名显示两次，而不是预期的结果。此外，嵌套 PL/Python DO 块中的错误在某些平台上可能导致空指针解引用崩溃。", "title": "修复错误 CONTEXT 栈中 PL/Python 函数名的错误报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5", "source_hash": "b98fb22e5635ceae0cb72f14a42fe4bb86ab4cdf751364d3bec56d9ffd67ad1b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect reporting of PL/Python function names in error CONTEXT stacks (Tom Lane) An error occurring within a nested PL/Python function call (that is, one reached via a SPI query from another PL/Python function) would result in a stack trace showing the inner function's name twice, rather than the expected results. Also, an error in a nested PL/Python DO block could result in a null pointer dereference crash on some platforms.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.22/changes/006", "db_id": "8f7222d3e858041c70d5edc267115e70", "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400", "relations": [{"rule": 2, "type": "equivalent", "target": "641a7d3d3a936660de7b1adcb973d842", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}}, {"rule": 2, "type": "equivalent", "target": "8efb22bf1c2808bb7eb3dd918acf092e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}}, {"rule": 2, "type": "equivalent", "target": "e61fc28c486ea88b24d944ad276d95f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}}, {"rule": 2, "type": "equivalent", "target": "ff5ece554dad73d86b0508d20401b0c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}}], "version": "9.3.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8efb22bf1c2808bb7eb3dd918acf092e", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "修复错误 CONTEXT 堆栈中 PL/Python 函数名报告不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}, "url": "/docs/compare/?release=10.3#10.3-08c915c97e67156b", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "641a7d3d3a936660de7b1adcb973d842", "kind": "equivalent", "version": "9.6.8", "label": "9.6.8", "title": "修复错误 CONTEXT 栈中 PL/Python 函数名的错误报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}, "url": "/docs/compare/?release=9.6.8#9.6.8-e08582093695d39b", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5"}, {"db_id": "ff5ece554dad73d86b0508d20401b0c9", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "修复错误 CONTEXT 栈中 PL/Python 函数名的错误报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}, "url": "/docs/compare/?release=9.5.12#9.5.12-e08582093695d39b", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "e61fc28c486ea88b24d944ad276d95f3", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "修复错误 CONTEXT 栈中 PL/Python 函数名的错误报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}, "url": "/docs/compare/?release=9.4.17#9.4.17-e08582093695d39b", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}]}, {"id": "9.3.22-b77c944da95a643c", "cves": [], "html": "<p>允许 <code>contrib/auto_explain</code> 的 <code>log_min_duration</code> 设置范围达到 <code>INT_MAX</code>，即约 24 天而不是 35 分钟（Tom Lane）</p>", "text": "允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX，即约 24 天而不是 35 分钟（Tom Lane）", "title": "允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX，即约 24 天而不是 35 分钟", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5", "source_hash": "509b02f465b3d3ea9db4169a8b4dc37fda747e26b989d429a5a9eb2594487e34", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow contrib/auto_explain's log_min_duration setting to range up to INT_MAX, or about 24 days instead of 35 minutes (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.22/changes/007", "db_id": "2a43d364e24fe16f64e31371c27a75b4", "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4", "relations": [{"rule": 2, "type": "equivalent", "target": "39f018451dfc209d196591c749df6ecf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}}, {"rule": 2, "type": "equivalent", "target": "3fbe1d14bce68f7ca59bc906345df355", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}}, {"rule": 2, "type": "equivalent", "target": "d8e8bedb3712958c3ebb83d9907fb10b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}}, {"rule": 2, "type": "equivalent", "target": "e539fab6105b8e64c5a0cf584c2f64e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}}], "version": "9.3.22", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "39f018451dfc209d196591c749df6ecf", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "允许 contrib/auto_explain 的 log_min_duration 设置最大达到 INT_MAX，即约 24 天，而非 35 分钟", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}, "url": "/docs/compare/?release=10.3#10.3-a9f080e9c7d9f1d0", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "3fbe1d14bce68f7ca59bc906345df355", "kind": "equivalent", "version": "9.6.8", "label": "9.6.8", "title": "允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX，即约 24 天而不是 35 分钟", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}, "url": "/docs/compare/?release=9.6.8#9.6.8-b77c944da95a643c", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5"}, {"db_id": "e539fab6105b8e64c5a0cf584c2f64e5", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX，即约 24 天而不是 35 分钟", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}, "url": "/docs/compare/?release=9.5.12#9.5.12-b77c944da95a643c", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "d8e8bedb3712958c3ebb83d9907fb10b", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX，即约 24 天而不是 35 分钟", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}, "url": "/docs/compare/?release=9.4.17#9.4.17-b77c944da95a643c", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}]}]}, {"date": "2018-02-08", "build": "9.3.21", "major": "9.3", "minor": 21, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.21", "eol_date": "2018-11-08", "date_text": "2018-02-08", "supported": false, "manual_url": "/docs/9.3/release-9-3-21.html", "source_url": "/docs/release/9.3.21/", "entry_count": 24, "placeholder": false, "content_hash": "24d1fc56a5f70262b9f01565885d7b32569ddda22f133c88209ba36169fbd52a", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 24, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.3.18 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-18.html\" title=\"E.8. 版本 9.3.18\">第 E.8 节</a>。</p>", "compatibility_count": 0, "label": "9.3.21", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3156, "support_days": -2883, "entries": [{"id": "9.3.21-107a7027695be69a", "cves": ["CVE-2018-1053"], "html": "<p>确保 <span>pg_upgrade</span> 创建的所有临时文件对其他用户不可读（Tom Lane、Noah Misch）</p>\n<p><span>pg_upgrade</span> 通常将其临时文件限制为只有调用用户可读写。但如果用户的 <code>umask</code> 设置允许，包含 <code>pg_dumpall -g</code> 输出的临时文件会是组可读或全局可读，甚至可写。在多用户机器的典型用法中，<code>umask</code> 和/或工作目录的权限会足够严格以防止问题；但可能有人在 <span>pg_upgrade</span> 的这一疏漏允许向不友好者泄露数据库密码的场景下使用它。（CVE-2018-1053）</p>", "text": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读（Tom Lane、Noah Misch） pg_upgrade 通常将其临时文件限制为只有调用用户可读写。但如果用户的 umask 设置允许，包含 pg_dumpall -g 输出的临时文件会是组可读或全局可读，甚至可写。在多用户机器的典型用法中，umask 和/或工作目录的权限会足够严格以防止问题；但可能有人在 pg_upgrade 的这一疏漏允许向不友好者泄露数据库密码的场景下使用它。（CVE-2018-1053）", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "021daaebd3ce7bf335e347579188952bd5a5f24eb03e913409c3a6c9379d3d69", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that all temporary files made by pg_upgrade are non-world-readable (Tom Lane, Noah Misch) pg_upgrade normally restricts its temporary files to be readable and writable only by the calling user. But the temporary file containing pg_dumpall -g output would be group- or world-readable, or even writable, if the user's umask setting allows. In typical usage on multi-user machines, the umask and/or the working directory's permissions would be tight enough to prevent problems; but there may be people using pg_upgrade in scenarios where this oversight would permit disclosure of database passwords to unfriendly eyes. (CVE-2018-1053)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/001", "db_id": "83f37cc5a00730f2f6efdc8b47a82ae5", "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372", "relations": [{"rule": 2, "type": "equivalent", "target": "3e27a2a85656b964f66c860c70248836", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}, {"rule": 2, "type": "equivalent", "target": "502a24d61bdbdddb5ce51397266ec1e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}, {"rule": 2, "type": "equivalent", "target": "a787a63eb7d46a13fb49da1d7154952c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}, {"rule": 2, "type": "equivalent", "target": "fa6f83f05c1fadac3a27a2a9b3013242", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}], "version": "9.3.21", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa6f83f05c1fadac3a27a2a9b3013242", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "确保 pg_upgrade 创建的所有临时文件都不会允许所有用户读取", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=10.2#10.2-ea7c7e256e617d2a", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "502a24d61bdbdddb5ce51397266ec1e3", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=9.6.7#9.6.7-107a7027695be69a", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "3e27a2a85656b964f66c860c70248836", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=9.5.11#9.5.11-107a7027695be69a", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "a787a63eb7d46a13fb49da1d7154952c", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=9.4.16#9.4.16-107a7027695be69a", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-ee9c4dbe720c9a4a", "cves": [], "html": "<p>修复对在键共享锁定下被更新的元组的清理（Andres Freund、Álvaro Herrera）</p>\n<p>某些情况下，<code>VACUUM</code> 即使这些元组现在已经死亡也不会移除它们，导致各种数据损坏场景。</p>", "text": "修复对在键共享锁定下被更新的元组的清理（Andres Freund、Álvaro Herrera） 某些情况下，VACUUM 即使这些元组现在已经死亡也不会移除它们，导致各种数据损坏场景。", "title": "修复对在键共享锁定下被更新的元组的清理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "73e84b6632cf99773637b29c40021b5b5d75a976b2e4acd3679a9f2e20abf97a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix vacuuming of tuples that were updated while key-share locked (Andres Freund, Álvaro Herrera) In some cases VACUUM would fail to remove such tuples even though they are now dead, leading to assorted data corruption scenarios.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/002", "db_id": "f216ffc4af1e2efa4c6cbec02cfda9a9", "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4", "relations": [{"rule": 2, "type": "equivalent", "target": "2a6b2f9569c99147470015ad187b73cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}, {"rule": 2, "type": "equivalent", "target": "578e6835f4779011e8832306cd6043a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}, {"rule": 2, "type": "equivalent", "target": "7131bc8c16e7a2bcdc9804fe19434a5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}, {"rule": 2, "type": "equivalent", "target": "f46cd1a709ac4d44c8b5ef458c63bb01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2a6b2f9569c99147470015ad187b73cd", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复对持有键共享锁期间被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=10.2#10.2-c27385d0da6e0f24", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "578e6835f4779011e8832306cd6043a0", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复对在键共享锁定下被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=9.6.7#9.6.7-ee9c4dbe720c9a4a", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "7131bc8c16e7a2bcdc9804fe19434a5a", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复对在键共享锁定下被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=9.5.11#9.5.11-ee9c4dbe720c9a4a", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "f46cd1a709ac4d44c8b5ef458c63bb01", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复对在键共享锁定下被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=9.4.16#9.4.16-ee9c4dbe720c9a4a", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-558ce9ee604e2cc5", "cves": [], "html": "<p>修复某些 LSN 获取中不充分的缓冲区锁定（Jacob Champion、Asim Praveen、Ashwin Agrawal）</p>\n<p>这些错误可能导致并发负载下的行为异常。潜在后果尚未完全弄清。</p>", "text": "修复某些 LSN 获取中不充分的缓冲区锁定（Jacob Champion、Asim Praveen、Ashwin Agrawal） 这些错误可能导致并发负载下的行为异常。潜在后果尚未完全弄清。", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "b9f784f1e9e7fd807d5f1e94730ee26a9a2f4a0e38f26aed7cd5704a9ab074b2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix inadequate buffer locking in some LSN fetches (Jacob Champion, Asim Praveen, Ashwin Agrawal) These errors could result in misbehavior under concurrent load. The potential consequences have not been characterized fully.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/003", "db_id": "cbe59a3d9acef7ea5d799d47bce471b6", "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5", "relations": [{"rule": 2, "type": "equivalent", "target": "2d24e732ff8f4bf60445f8ca110160ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}, {"rule": 2, "type": "equivalent", "target": "7bb15c94de58df30ec8b8a47c835f471", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}, {"rule": 2, "type": "equivalent", "target": "82385f5d32d884d22eed0db877d748be", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}, {"rule": 2, "type": "equivalent", "target": "c6fdf4a4bb76269450a22fb6669dce9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "82385f5d32d884d22eed0db877d748be", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复某些 LSN 读取操作中缓冲区加锁不充分的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=10.2#10.2-6f93932d3958da2d", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "2d24e732ff8f4bf60445f8ca110160ff", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=9.6.7#9.6.7-558ce9ee604e2cc5", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "c6fdf4a4bb76269450a22fb6669dce9e", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=9.5.11#9.5.11-558ce9ee604e2cc5", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "7bb15c94de58df30ec8b8a47c835f471", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=9.4.16#9.4.16-558ce9ee604e2cc5", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-29df6a5b1845e899", "cves": [], "html": "<p>避免与 <code>ALTER TABLE NO INHERIT</code> 并发地从树中移除某个子表时对继承树的查询不必要的失败（Tom Lane）</p>", "text": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败（Tom Lane）", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "f7cdd7b383b17a3cf012a58f7581f08db56919aab250fe8e8d3e4d7f77611fb1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid unnecessary failure in a query on an inheritance tree that occurs concurrently with some child table being removed from the tree by ALTER TABLE NO INHERIT (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/004", "db_id": "0cc55490249e34237083218340c88c0c", "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725", "relations": [{"rule": 2, "type": "equivalent", "target": "12a200b06d9b476c5a0186fd8e184492", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}, {"rule": 2, "type": "equivalent", "target": "1ae9a2ace3d085bedb8f5883b1a43fd9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}, {"rule": 2, "type": "equivalent", "target": "af9fa0cdaebba6178e8ef3cee771b2d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}, {"rule": 2, "type": "equivalent", "target": "df486aeeee65140082a7b3c49b8ffdb2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}], "version": "9.3.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "12a200b06d9b476c5a0186fd8e184492", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "避免在查询继承树的同时，某个子表被 ALTER TABLE NO INHERIT 从树中移除时发生不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=10.2#10.2-99172f192afeae3a", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "af9fa0cdaebba6178e8ef3cee771b2d0", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=9.6.7#9.6.7-29df6a5b1845e899", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "df486aeeee65140082a7b3c49b8ffdb2", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=9.5.11#9.5.11-29df6a5b1845e899", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "1ae9a2ace3d085bedb8f5883b1a43fd9", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=9.4.16#9.4.16-29df6a5b1845e899", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-346c838211b82c44", "cves": [], "html": "<p>修复 <code>LATERAL</code> 子查询内 <code>VALUES</code> 内相关子 <code>SELECT</code> 的失败（Tom Lane）</p>", "text": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败（Tom Lane）", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "aaf87391ba4793ce3343e4b693af384dae1d7fef1fdc8585c58e64af130356ba", "section_path": ["变更"], "commit_groups": [], "identity_text": "Repair failure with correlated sub-SELECT inside VALUES inside a LATERAL subquery (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/005", "db_id": "24e4a244bb80527b6b2f75d88c341130", "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c", "relations": [{"rule": 2, "type": "equivalent", "target": "08317401be83c287ffb1e92b829f98c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}, {"rule": 2, "type": "equivalent", "target": "3cdb2c132ad40c77431e35911ee4b48b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}, {"rule": 2, "type": "equivalent", "target": "65fc85b0b47fabd240409d5f2054d96d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}, {"rule": 2, "type": "equivalent", "target": "8c72ac6b2fba11c344919a4d10bf6d22", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "65fc85b0b47fabd240409d5f2054d96d", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 LATERAL 子查询中 VALUES 内的相关子 SELECT 导致的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=10.2#10.2-24d5a5b6f05ef5ed", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "8c72ac6b2fba11c344919a4d10bf6d22", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=9.6.7#9.6.7-346c838211b82c44", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "3cdb2c132ad40c77431e35911ee4b48b", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=9.5.11#9.5.11-346c838211b82c44", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "08317401be83c287ffb1e92b829f98c8", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=9.4.16#9.4.16-346c838211b82c44", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-a8a70f044e1c683a", "cves": [], "html": "<p>修复横向子查询内嵌套 <code>UNION ALL</code> 的某些情况下 <span>“<span>could not devise a query plan for the given query</span>”</span> 规划器失败（Tom Lane）</p>", "text": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败（Tom Lane）", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "095a42ddbde897f61eaf240d65d3391c5618373a0a78213b468c27f2f76ec9ee", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix could not devise a query plan for the given query planner failure for some cases involving nested UNION ALL inside a lateral subquery (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/006", "db_id": "9f7497c7d9ffed7fc37192d093b636fe", "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c", "relations": [{"rule": 2, "type": "equivalent", "target": "11be3b46e5562e568dcf3eb498fbd102", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}, {"rule": 2, "type": "equivalent", "target": "67468e944bb781e37724ba62e3ac6fd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}, {"rule": 2, "type": "equivalent", "target": "dbfdbb67dd1039ecbc3a40ba6a034d26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}, {"rule": 2, "type": "equivalent", "target": "f942ad4f0a998777c3ce08593d956283", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f942ad4f0a998777c3ce08593d956283", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复横向子查询内部存在嵌套 UNION ALL 的某些情况下，规划器报告 “could not devise a query plan for the given query” 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=10.2#10.2-b14470686a94e455", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "67468e944bb781e37724ba62e3ac6fd3", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=9.6.7#9.6.7-a8a70f044e1c683a", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "dbfdbb67dd1039ecbc3a40ba6a034d26", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=9.5.11#9.5.11-a8a70f044e1c683a", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "11be3b46e5562e568dcf3eb498fbd102", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=9.4.16#9.4.16-a8a70f044e1c683a", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-c564b31f07d13743", "cves": [], "html": "<p>修复 <code>has_sequence_privilege()</code> 像其他权限测试函数一样支持 <code>WITH GRANT OPTION</code> 测试（Joe Conway）</p>", "text": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试（Joe Conway）", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "760d23ba674ebbeb5aa90325012effe535cf9132707eb6b37ea5d1c66955e25e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix has_sequence_privilege() to support WITH GRANT OPTION tests, as other privilege-testing functions do (Joe Conway)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/007", "db_id": "76649b2fb466f9acb38720b8976c353c", "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e", "relations": [{"rule": 2, "type": "equivalent", "target": "619783ed3e2208495d597662446253c1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}, {"rule": 2, "type": "equivalent", "target": "a1d669f5e670a3c8cead313057939aed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}, {"rule": 2, "type": "equivalent", "target": "a8aabc64f8411c7c77b294c05f462251", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}, {"rule": 2, "type": "equivalent", "target": "e3220e245c3534dd19fe43e00fa92707", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e3220e245c3534dd19fe43e00fa92707", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 has_sequence_privilege()，使其与其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=10.2#10.2-212465228d89f18d", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "a8aabc64f8411c7c77b294c05f462251", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=9.6.7#9.6.7-c564b31f07d13743", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "a1d669f5e670a3c8cead313057939aed", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=9.5.11#9.5.11-c564b31f07d13743", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "619783ed3e2208495d597662446253c1", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=9.4.16#9.4.16-c564b31f07d13743", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-2038697ff3166b24", "cves": [], "html": "<p>在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明（Pavel Stehule、Noah Misch）</p>\n<p>我们总是以数据库编码存储 XML 字符串，因此允许 libxml 对另一种编码的声明采取行动会给出错误结果。在 UTF8 之外的编码中，我们本来就不承诺支持非 ASCII XML 数据，因此为错误兼容保留以前的行为。这一更改只影响 <code>xpath()</code> 及相关函数；其他 XML 代码路径已经这样做了。</p>", "text": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明（Pavel Stehule、Noah Misch） 我们总是以数据库编码存储 XML 字符串，因此允许 libxml 对另一种编码的声明采取行动会给出错误结果。在 UTF8 之外的编码中，我们本来就不承诺支持非 ASCII XML 数据，因此为错误兼容保留以前的行为。这一更改只影响 xpath() 及相关函数；其他 XML 代码路径已经这样做了。", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "ea9024cc935f73efdd3433071a0c10c5586828f9b903698675d0d3875dd5d4c8", "section_path": ["变更"], "commit_groups": [], "identity_text": "In databases using UTF8 encoding, ignore any XML declaration that asserts a different encoding (Pavel Stehule, Noah Misch) We always store XML strings in the database encoding, so allowing libxml to act on a declaration of another encoding gave wrong results. In encodings other than UTF8, we don't promise to support non-ASCII XML data anyway, so retain the previous behavior for bug compatibility. This change affects only xpath() and related functions; other XML code paths already acted this way.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/008", "db_id": "9f5978e04390021201aa8d533376bcb3", "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580", "relations": [{"rule": 2, "type": "equivalent", "target": "51c16b63b73e8952455ef010fdb6bc34", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}, {"rule": 2, "type": "equivalent", "target": "540a56e4e2cbaf9eb6bc42d44f971b7c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}, {"rule": 2, "type": "equivalent", "target": "64a65085d2bcc64e247b1378e263a15f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}, {"rule": 2, "type": "equivalent", "target": "703b556bb53b3308f4833abf091add00", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}], "version": "9.3.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "64a65085d2bcc64e247b1378e263a15f", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "在使用 UTF8 编码的数据库中，忽略任何声称使用其他编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=10.2#10.2-016c58f600bdd511", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "540a56e4e2cbaf9eb6bc42d44f971b7c", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=9.6.7#9.6.7-2038697ff3166b24", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "703b556bb53b3308f4833abf091add00", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=9.5.11#9.5.11-2038697ff3166b24", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "51c16b63b73e8952455ef010fdb6bc34", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=9.4.16#9.4.16-2038697ff3166b24", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-fd3e0daf12568c15", "cves": [], "html": "<p>为与未来次版本协议的前向兼容做准备（Robert Haas、Badrul Chowdhury）</p>\n<p>到目前为止，<span>PostgreSQL</span> 服务器只是拒绝使用比 3.0 更新的协议版本的请求，因此协议版本号的主部分和次部分之间没有功能差别。允许客户端请求 3.x 版本而不失败，发回一条表明服务器只理解 3.0 的消息。这目前没有区别，但向后移植此更改应能更快引入未来的次协议升级。</p>", "text": "为与未来次版本协议的前向兼容做准备（Robert Haas、Badrul Chowdhury） 到目前为止，PostgreSQL 服务器只是拒绝使用比 3.0 更新的协议版本的请求，因此协议版本号的主部分和次部分之间没有功能差别。允许客户端请求 3.x 版本而不失败，发回一条表明服务器只理解 3.0 的消息。这目前没有区别，但向后移植此更改应能更快引入未来的次协议升级。", "title": "为与未来次版本协议的前向兼容做准备", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "a632191843cf1a6c894698424ba743faea2866623ef6f7ef17779ccc74e37ae8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Provide for forward compatibility with future minor protocol versions (Robert Haas, Badrul Chowdhury) Up to now, PostgreSQL servers simply rejected requests to use protocol versions newer than 3.0, so that there was no functional difference between the major and minor parts of the protocol version number. Allow clients to request versions 3.x without failing, sending back a message showing that the server only understands 3.0. This makes no difference at the moment, but back-patching this change should allow speedier introduction of future minor protocol upgrades.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/009", "db_id": "fc71934fa6f0e20f15e2a3d74cf2224c", "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f", "relations": [{"rule": 2, "type": "equivalent", "target": "3bca875f15d6646be2ba689accfac0d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}, {"rule": 2, "type": "equivalent", "target": "4b25bdea5725fec36e838fba1cc4807f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}, {"rule": 2, "type": "equivalent", "target": "5808ced71469317610618ca1565949c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}, {"rule": 2, "type": "equivalent", "target": "922f5e76b2fc8a6ef5a033bb14730ec4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}], "version": "9.3.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3bca875f15d6646be2ba689accfac0d0", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "提供对未来小版本协议的向前兼容能力", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=10.2#10.2-9f3306712ba2b392", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "922f5e76b2fc8a6ef5a033bb14730ec4", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "为与未来次版本协议的前向兼容做准备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=9.6.7#9.6.7-fd3e0daf12568c15", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "5808ced71469317610618ca1565949c6", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "为与未来次版本协议的前向兼容做准备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=9.5.11#9.5.11-fd3e0daf12568c15", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "4b25bdea5725fec36e838fba1cc4807f", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "为与未来次版本协议的前向兼容做准备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=9.4.16#9.4.16-fd3e0daf12568c15", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-6b5d775673a68200", "cves": [], "html": "<p>防止规划极深层嵌套集合操作（<code>UNION</code>/<code>INTERSECT</code>/<code>EXCEPT</code>）时的栈溢出崩溃（Tom Lane）</p>", "text": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃（Tom Lane）", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "f3a60e65ce141907b511296cc3f9d8e16fd63c74c849e6364f71803b4721fc5f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent stack-overflow crashes when planning extremely deeply nested set operations (UNION/INTERSECT/EXCEPT) (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/010", "db_id": "70e56a68f5bcb62b2cfbed2160e0f4dd", "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37", "relations": [{"rule": 2, "type": "equivalent", "target": "01146443770f86ec5e5ca59fa9dbf321", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}, {"rule": 2, "type": "equivalent", "target": "568acb1455a8e36310b0b1c93fa873e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}, {"rule": 2, "type": "equivalent", "target": "c0ab81df51c3929d239015f3a85d7c4d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}, {"rule": 2, "type": "equivalent", "target": "c39c8bd24f5ac242f0b32c2b20b718a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c39c8bd24f5ac242f0b32c2b20b718a4", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "防止规划嵌套极深的集合操作（UNION/INTERSECT/EXCEPT）时发生栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=10.2#10.2-85a96a8e38055d4d", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "c0ab81df51c3929d239015f3a85d7c4d", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=9.6.7#9.6.7-6b5d775673a68200", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "01146443770f86ec5e5ca59fa9dbf321", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=9.5.11#9.5.11-6b5d775673a68200", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "568acb1455a8e36310b0b1c93fa873e3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=9.4.16#9.4.16-6b5d775673a68200", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-3a04f8f2f657ef4f", "cves": [], "html": "<p>修复 <code>pg_hba.conf</code> 中出现的某些类型 LDAP URL 的空指针崩溃（Thomas Munro）</p>", "text": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃（Thomas Munro）", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "74022c27a629fc833d1351c27ccbd81ddae31e4000de86377fc43566c1263205", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix null-pointer crashes for some types of LDAP URLs appearing in pg_hba.conf (Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/011", "db_id": "3c9d22b3c22a6f1ca4e410e0748abf03", "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46", "relations": [{"rule": 2, "type": "equivalent", "target": "7f352f1f8330378d049091ee91844a5b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}, {"rule": 2, "type": "equivalent", "target": "ae63d513a9079f9c6cc772c910b8b247", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}, {"rule": 2, "type": "equivalent", "target": "bca9bf5667364948df95ee66aa7f939d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}, {"rule": 2, "type": "equivalent", "target": "beca6294db18ff71808c71309eef783e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7f352f1f8330378d049091ee91844a5b", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 pg_hba.conf 中某些类型的 LDAP URL 导致的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=10.2#10.2-5f97cba345d98cab", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "ae63d513a9079f9c6cc772c910b8b247", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=9.6.7#9.6.7-3a04f8f2f657ef4f", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "beca6294db18ff71808c71309eef783e", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=9.5.11#9.5.11-3a04f8f2f657ef4f", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "bca9bf5667364948df95ee66aa7f939d", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=9.4.16#9.4.16-3a04f8f2f657ef4f", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-10bc6b882e840284", "cves": [], "html": "<p>修复 PL/pgSQL 文档中的 <code>INSTR()</code> 示例函数（Yugo Nagata、Tom Lane）</p>\n<p>这些函数声称与 <span>Oracle</span>® 兼容，但并不完全如此。特别是对负第三参数的解释有分歧：Oracle 认为负值表示目标子串可以开始出现的最后一个位置，而我们的函数把它当作目标可以结束的最后一个位置。此外，Oracle 对零或负第四参数抛出错误，而我们的函数返回零。</p>\n<p>示例代码已被调整以更精确地匹配 Oracle 的行为。把这段代码复制到其应用中的用户可能希望更新其副本。</p>", "text": "修复 PL/pgSQL 文档中的 INSTR() 示例函数（Yugo Nagata、Tom Lane） 这些函数声称与 Oracle® 兼容，但并不完全如此。特别是对负第三参数的解释有分歧：Oracle 认为负值表示目标子串可以开始出现的最后一个位置，而我们的函数把它当作目标可以结束的最后一个位置。此外，Oracle 对零或负第四参数抛出错误，而我们的函数返回零。 示例代码已被调整以更精确地匹配 Oracle 的行为。把这段代码复制到其应用中的用户可能希望更新其副本。", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "bb98c8dab7afd9a70dcc6ab2ecaa3069abbd7c7158b59b071b436bc1d41789f7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix sample INSTR() functions in the PL/pgSQL documentation (Yugo Nagata, Tom Lane) These functions are stated to be Oracle compatible, but they weren't exactly. In particular, there was a discrepancy in the interpretation of a negative third parameter: Oracle thinks that a negative value indicates the last place where the target substring can begin, whereas our functions took it as the last place where the target can end. Also, Oracle throws an error for a zero or negative fourth parameter, whereas our functions returned zero. The sample code has been adjusted to match Oracle's behavior more precisely. Users who have copied this code into their applications may wish to update their copies.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/012", "db_id": "074fbd98682930dbc3e7ac9e8e70373a", "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba", "relations": [{"rule": 2, "type": "equivalent", "target": "4122a38677a7d168668c054735ce38bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}, {"rule": 2, "type": "equivalent", "target": "4deafbbde1d67134a3ba61a5633ecec4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}, {"rule": 2, "type": "equivalent", "target": "bb1989d6670ac970ea2dad251fc2a4f4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}, {"rule": 2, "type": "equivalent", "target": "f21202afc895bb07ec2a18d95aa85e98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4deafbbde1d67134a3ba61a5633ecec4", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 PL/pgSQL 文档中的示例 INSTR() 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=10.2#10.2-0965230c18198c0d", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "bb1989d6670ac970ea2dad251fc2a4f4", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=9.6.7#9.6.7-10bc6b882e840284", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "4122a38677a7d168668c054735ce38bf", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=9.5.11#9.5.11-10bc6b882e840284", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "f21202afc895bb07ec2a18d95aa85e98", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=9.4.16#9.4.16-10bc6b882e840284", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-bbdffd1d51d41177", "cves": [], "html": "<p>修复 <span>pg_dump</span> 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别（Tom Lane）</p>\n<p>ACL 归档条目的<span>“<span>标记</span>”</span>部分通常只是相关对象的名称。使它以对象类型开头，使 ACL 与注释和安全标签归档条目已使用的约定一致。同时修复整个数据库的注释和安全标签条目（如果存在），使其标记以 <code>DATABASE</code> 开头，从而也遵循这一约定。这防止试图通过查看标记是否以 <code>LARGE OBJECT</code> 开头来识别大对象相关条目的代码发生假匹配。那可能导致条目被错误分类为数据而非模式，在仅模式或仅数据转储中产生不希望的结果。</p>\n<p>注意，这一更改在 <code>pg_restore --list</code> 的输出中有用户可见的结果。</p>", "text": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别（Tom Lane） ACL 归档条目的“标记”部分通常只是相关对象的名称。使它以对象类型开头，使 ACL 与注释和安全标签归档条目已使用的约定一致。同时修复整个数据库的注释和安全标签条目（如果存在），使其标记以 DATABASE 开头，从而也遵循这一约定。这防止试图通过查看标记是否以 LARGE OBJECT 开头来识别大对象相关条目的代码发生假匹配。那可能导致条目被错误分类为数据而非模式，在仅模式或仅数据转储中产生不希望的结果。 注意，这一更改在 pg_restore --list 的输出中有用户可见的结果。", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "5f63c24c21e64f67c5613c4b6beeeab02124e75920f3b4131215884e6ff67966", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump to make ACL (permissions), comment, and security label entries reliably identifiable in archive output formats (Tom Lane) The tag portion of an ACL archive entry was usually just the name of the associated object. Make it start with the object type instead, bringing ACLs into line with the convention already used for comment and security label archive entries. Also, fix the comment and security label entries for the whole database, if present, to make their tags start with DATABASE so that they also follow this convention. This prevents false matches in code that tries to identify large-object-related entries by seeing if the tag starts with LARGE OBJECT. That could have resulted in misclassifying entries as data rather than schema, with undesirable results in a schema-only or data-only dump. Note that this change has user-visible results in the output of pg_restore --list.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/013", "db_id": "f35413a1afcd2620afa667bd34efb3af", "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc", "relations": [{"rule": 2, "type": "equivalent", "target": "0ca9e270193416cad270eafba608b5f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}, {"rule": 2, "type": "equivalent", "target": "3b1f9393e931bb132457f7b3910110ac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}, {"rule": 2, "type": "equivalent", "target": "81373cee02430fe4af2cf207aa51dde5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}, {"rule": 2, "type": "equivalent", "target": "f7bf3dce4ce6e4a65a97b8e49bdff2f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3b1f9393e931bb132457f7b3910110ac", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 pg_dump，使归档输出格式中的 ACL（权限）、注释和安全标签条目能够被可靠识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=10.2#10.2-df145085c9ee1131", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "f7bf3dce4ce6e4a65a97b8e49bdff2f7", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=9.6.7#9.6.7-bbdffd1d51d41177", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "0ca9e270193416cad270eafba608b5f8", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=9.5.11#9.5.11-bbdffd1d51d41177", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "81373cee02430fe4af2cf207aa51dde5", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=9.4.16#9.4.16-bbdffd1d51d41177", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-56321fffb2cf063c", "cves": [], "html": "<p>在 <span>ecpg</span> 中，检测长度不正确的指示符数组并报错（David Rader）</p>", "text": "在 ecpg 中，检测长度不正确的指示符数组并报错（David Rader）", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "e917bd7fe303afbf67e7b7281e4d1696c885c40b4091a2694b25e2b859c03012", "section_path": ["变更"], "commit_groups": [], "identity_text": "In ecpg, detect indicator arrays that do not have the correct length and report an error (David Rader)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/014", "db_id": "30fd542104a3cc71e9b017949639401e", "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867", "relations": [{"rule": 2, "type": "equivalent", "target": "23ebd41798b308ffaef0b9ec76885108", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}, {"rule": 2, "type": "equivalent", "target": "2bcc6c70c126ca045982a7568dd1c2a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}, {"rule": 2, "type": "equivalent", "target": "bc90c3b158d533f1785a76400861ddf8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}, {"rule": 2, "type": "equivalent", "target": "ed00656fc4d0e1c664f2d46f7e9fdb9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "23ebd41798b308ffaef0b9ec76885108", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "在 ecpg 中检测长度不正确的指示器数组并报告错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=10.2#10.2-582b4dd4528f6d14", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "bc90c3b158d533f1785a76400861ddf8", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=9.6.7#9.6.7-56321fffb2cf063c", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "ed00656fc4d0e1c664f2d46f7e9fdb9e", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=9.5.11#9.5.11-56321fffb2cf063c", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "2bcc6c70c126ca045982a7568dd1c2a0", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=9.4.16#9.4.16-56321fffb2cf063c", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-28176ee2b29ae77d", "cves": [], "html": "<p>避免 <code>contrib/hstore</code> 中因对相同源和目标指针使用 <code>memcpy()</code> 而触发 libc 断言（Tomas Vondra）</p>", "text": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言（Tomas Vondra）", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "c07c74b6e93ba4c7b7491cfda10f2f8a916a197f2293510199127ad5eecf54a2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid triggering a libc assertion in contrib/hstore, due to use of memcpy() with equal source and destination pointers (Tomas Vondra)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/015", "db_id": "d68235d9ea6153b9d5bc746fb9791109", "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c", "relations": [{"rule": 2, "type": "equivalent", "target": "068ae2b3cbc44395747b26db4b128abe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}, {"rule": 2, "type": "equivalent", "target": "13456404b4843af4eaef72200207a161", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}, {"rule": 2, "type": "equivalent", "target": "3bb0cb2aa359ceb514aa7d79f835ee81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}, {"rule": 2, "type": "equivalent", "target": "e4436dc9c2b9e496bac1a86048edd39b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}], "version": "9.3.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "13456404b4843af4eaef72200207a161", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "避免 contrib/hstore 使用源指针与目标指针相同的 memcpy() 调用而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=10.2#10.2-11f49ed08e3f0038", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "068ae2b3cbc44395747b26db4b128abe", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=9.6.7#9.6.7-28176ee2b29ae77d", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "3bb0cb2aa359ceb514aa7d79f835ee81", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=9.5.11#9.5.11-28176ee2b29ae77d", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "e4436dc9c2b9e496bac1a86048edd39b", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=9.4.16#9.4.16-28176ee2b29ae77d", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-46a1c69d76bee770", "cves": [], "html": "<p>提供在 macOS 上自动启动 Postgres 的现代示例（Tom Lane）</p>\n<p><code>contrib/start-scripts/osx</code> 中的脚本使用已被弃用十多年的基础设施，并且在过去几年的 macOS 版本中已完全不能工作。添加了包含使用较新 <span>launchd</span> 基础设施的脚本的新子目录 <code>contrib/start-scripts/macos</code>。</p>", "text": "提供在 macOS 上自动启动 Postgres 的现代示例（Tom Lane） contrib/start-scripts/osx 中的脚本使用已被弃用十多年的基础设施，并且在过去几年的 macOS 版本中已完全不能工作。添加了包含使用较新 launchd 基础设施的脚本的新子目录 contrib/start-scripts/macos。", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "4bf30ef67c502cce1f2ec63e802b358ad46dedc0cbc0a6ab7f623320e9932818", "section_path": ["变更"], "commit_groups": [], "identity_text": "Provide modern examples of how to auto-start Postgres on macOS (Tom Lane) The scripts in contrib/start-scripts/osx use infrastructure that's been deprecated for over a decade, and which no longer works at all in macOS releases of the last couple of years. Add a new subdirectory contrib/start-scripts/macos containing scripts that use the newer launchd infrastructure.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/016", "db_id": "bb7559029434b895fcfddb50d9d1ece6", "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8", "relations": [{"rule": 2, "type": "equivalent", "target": "0fdc2e226045f15715881ba8537fe99e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}, {"rule": 2, "type": "equivalent", "target": "24dc5e73850a35319c0666b533a1aa3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}, {"rule": 2, "type": "equivalent", "target": "a157895cacd9516d8a3e9d6a31ee8b63", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}, {"rule": 2, "type": "equivalent", "target": "f05d3a9513c452c22d1e9a2c91061922", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}], "version": "9.3.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0fdc2e226045f15715881ba8537fe99e", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "提供在 macOS 上自动启动 Postgres 的新式示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=10.2#10.2-7faa20fe42e341cf", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "24dc5e73850a35319c0666b533a1aa3a", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=9.6.7#9.6.7-46a1c69d76bee770", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "f05d3a9513c452c22d1e9a2c91061922", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=9.5.11#9.5.11-46a1c69d76bee770", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "a157895cacd9516d8a3e9d6a31ee8b63", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=9.4.16#9.4.16-46a1c69d76bee770", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-753f99569205dc0f", "cves": [], "html": "<p>修复 Windows 上为 OpenSSL 错误选择配置特定的库（Andrew Dunstan）</p>", "text": "修复 Windows 上为 OpenSSL 错误选择配置特定的库（Andrew Dunstan）", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "91975b8135e316b95a058f972d6ee5bfcf59c0caf51c44af7a2259f4d129db7a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect selection of configuration-specific libraries for OpenSSL on Windows (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/017", "db_id": "1821ace7637e06949219db456023ab75", "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399", "relations": [{"rule": 2, "type": "equivalent", "target": "03fbe5da453e704a9f7b2c31d5f56b09", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}, {"rule": 2, "type": "equivalent", "target": "11e979639d15d29074555e35b178314a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}, {"rule": 2, "type": "equivalent", "target": "35c027c555fdb7b27909b2417b5e53f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}, {"rule": 2, "type": "equivalent", "target": "b6f28f745dffb36a98c91b630a747ea6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "03fbe5da453e704a9f7b2c31d5f56b09", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 Windows 上 OpenSSL 特定配置库选择不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=10.2#10.2-b25125f573955426", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "11e979639d15d29074555e35b178314a", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=9.6.7#9.6.7-753f99569205dc0f", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "35c027c555fdb7b27909b2417b5e53f7", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=9.5.11#9.5.11-753f99569205dc0f", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "b6f28f745dffb36a98c91b630a747ea6", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=9.4.16#9.4.16-753f99569205dc0f", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-d7da701af98363d5", "cves": [], "html": "<p>支持链接到 MinGW 构建的 libperl 版本（Noah Misch）</p>\n<p>这允许用一些常见的 Windows Perl 发行版构建 PL/Perl。</p>", "text": "支持链接到 MinGW 构建的 libperl 版本（Noah Misch） 这允许用一些常见的 Windows Perl 发行版构建 PL/Perl。", "title": "支持链接到 MinGW 构建的 libperl 版本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "f9faec3d53575a886ab2c42a250402cde6332d4a5207bef51b7f173c048fc8b6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Support linking to MinGW-built versions of libperl (Noah Misch) This allows building PL/Perl with some common Perl distributions for Windows.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/018", "db_id": "27c3ee1b4261beeaa64885e79865a075", "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92", "relations": [{"rule": 2, "type": "equivalent", "target": "039685f6945228e7540d88a1d1dae4c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}, {"rule": 2, "type": "equivalent", "target": "049293f62d03819db6748a8f3a024190", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}, {"rule": 2, "type": "equivalent", "target": "227e18bb740b98a43e3c0590d886e950", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}, {"rule": 2, "type": "equivalent", "target": "7fbe36a96fb9befdcfc79ef52fa232c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}], "version": "9.3.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "227e18bb740b98a43e3c0590d886e950", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "支持链接到使用 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=10.2#10.2-4df2e1da054d8867", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "7fbe36a96fb9befdcfc79ef52fa232c8", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "支持链接到 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=9.6.7#9.6.7-d7da701af98363d5", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "049293f62d03819db6748a8f3a024190", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "支持链接到 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d7da701af98363d5", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "039685f6945228e7540d88a1d1dae4c3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "支持链接到 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=9.4.16#9.4.16-d7da701af98363d5", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-d07f5a0bbe4513a3", "cves": [], "html": "<p>修复 MSVC 构建测试 32 位 libperl 是否需要 <code>-D_USE_32BIT_TIME_T</code>（Noah Misch）</p>\n<p>可用的 Perl 发行版在这点上不一致，且没有报告它的可靠手段，因此求助于对所使用的库实际行为的构建时测试。</p>", "text": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T（Noah Misch） 可用的 Perl 发行版在这点上不一致，且没有报告它的可靠手段，因此求助于对所使用的库实际行为的构建时测试。", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "02431a2bcbc5c56e281b3e121553e71733c5f4fb6318ca0f196d651cea4e44ad", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix MSVC build to test whether 32-bit libperl needs -D_USE_32BIT_TIME_T (Noah Misch) Available Perl distributions are inconsistent about what they expect, and lack any reliable means of reporting it, so resort to a build-time test on what the library being used actually does.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/019", "db_id": "f4b0040686d69756f3ebb2c84af1d349", "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327", "relations": [{"rule": 2, "type": "equivalent", "target": "1a22595b7cd68b734f8a5a7551f89247", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}, {"rule": 2, "type": "equivalent", "target": "28df853935fd6bd79efc4f4325c6c920", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}, {"rule": 2, "type": "equivalent", "target": "4f10b5d5ac6eea55b9df82af9a09d0e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}, {"rule": 2, "type": "equivalent", "target": "9036a968392bb422875a906ff6485fee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f10b5d5ac6eea55b9df82af9a09d0e7", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 MSVC 构建，测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=10.2#10.2-904cfc565d6f8982", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "1a22595b7cd68b734f8a5a7551f89247", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=9.6.7#9.6.7-d07f5a0bbe4513a3", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "9036a968392bb422875a906ff6485fee", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d07f5a0bbe4513a3", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "28df853935fd6bd79efc4f4325c6c920", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=9.4.16#9.4.16-d07f5a0bbe4513a3", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-e11937edc11472ae", "cves": [], "html": "<p>在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器（Takayuki Tsunakawa）</p>\n<p>这可以允许为一些以前不产生转储的早期启动失败收集核心转储。</p>", "text": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器（Takayuki Tsunakawa） 这可以允许为一些以前不产生转储的早期启动失败收集核心转储。", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "ce105f3523581cbd2f792b698f8af1cfa3729182b3a38f3161d31b5acc76aca3", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, install the crash dump handler earlier in postmaster startup (Takayuki Tsunakawa) This may allow collection of a core dump for some early-startup failures that did not produce a dump before.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/020", "db_id": "0f385e3a2a82eed547dcc4fabbcf8d25", "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823", "relations": [{"rule": 2, "type": "equivalent", "target": "001d2b44e15d4d920614bd624a7b8300", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}, {"rule": 2, "type": "equivalent", "target": "65514a44c9c68979d1f15a1eba134f81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}, {"rule": 2, "type": "equivalent", "target": "adff4c7ba3dce256d567d3d96ba5193a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}, {"rule": 2, "type": "equivalent", "target": "b52e37a6f1f6b19e88494b484af71ed9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}], "version": "9.3.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "001d2b44e15d4d920614bd624a7b8300", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "在 Windows 上，在 postmaster 启动期间更早安装崩溃转储处理程序", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=10.2#10.2-e678f47afd2a17a1", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "adff4c7ba3dce256d567d3d96ba5193a", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=9.6.7#9.6.7-e11937edc11472ae", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "b52e37a6f1f6b19e88494b484af71ed9", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=9.5.11#9.5.11-e11937edc11472ae", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "65514a44c9c68979d1f15a1eba134f81", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=9.4.16#9.4.16-e11937edc11472ae", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-3f30c1aaf733e938", "cves": [], "html": "<p>在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃（Takayuki Tsunakawa）</p>", "text": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃（Takayuki Tsunakawa）", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "3febb714b92e36f6c9ed4feaeced8a12f0e74783d3f1a0809f930d4d05f4f883", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, avoid encoding-conversion-related crashes when emitting messages very early in postmaster startup (Takayuki Tsunakawa)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/021", "db_id": "f1804d79b68ca97f970ea754ca5a5e38", "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89", "relations": [{"rule": 2, "type": "equivalent", "target": "2649af25929b0e8b46307c46840fa986", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}, {"rule": 2, "type": "equivalent", "target": "3acbfa7fb5bd1041b24a68cd293fd1fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}, {"rule": 2, "type": "equivalent", "target": "b8c7d687fe34c827987df0ddbfd57bfc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}, {"rule": 2, "type": "equivalent", "target": "f7f1ccca62f5a4c6b703f051f441b902", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}], "version": "9.3.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2649af25929b0e8b46307c46840fa986", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "在 Windows 上，避免 postmaster 启动的极早阶段输出消息时发生与编码转换有关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=10.2#10.2-29606fd5ce0529c6", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "b8c7d687fe34c827987df0ddbfd57bfc", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=9.6.7#9.6.7-3f30c1aaf733e938", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "3acbfa7fb5bd1041b24a68cd293fd1fe", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=9.5.11#9.5.11-3f30c1aaf733e938", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "f7f1ccca62f5a4c6b703f051f441b902", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=9.4.16#9.4.16-3f30c1aaf733e938", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-d01b38f4513b7edd", "cves": [], "html": "<p>把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD（David Carlier）</p>", "text": "把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD（David Carlier）", "title": "把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "6657bb175f4ea208475c428c6020c41e61cf688b8bf34a3029eaaf52aa6c3d33", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use our existing Motorola 68K spinlock code on OpenBSD as well as NetBSD (David Carlier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/022", "db_id": "47c8164f89a81b8d4eb4b24ddf579ad5", "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200", "relations": [{"rule": 2, "type": "equivalent", "target": "2aaebb6e760e502605973f17c8ba4806", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}, {"rule": 2, "type": "equivalent", "target": "9b9ca2ad753ce490361c99a2856541f1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}, {"rule": 2, "type": "equivalent", "target": "caaff26961c06d094ce0f189421e2ec3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}, {"rule": 2, "type": "equivalent", "target": "dae1c877f244be94962949c6c6134b4e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}], "version": "9.3.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dae1c877f244be94962949c6c6134b4e", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "将现有 Motorola 68K 自旋锁代码用于 OpenBSD 和 NetBSD", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=10.2#10.2-91d281520dbaf037", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "2aaebb6e760e502605973f17c8ba4806", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=9.6.7#9.6.7-d01b38f4513b7edd", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "9b9ca2ad753ce490361c99a2856541f1", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d01b38f4513b7edd", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "caaff26961c06d094ce0f189421e2ec3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 OpenBSD 上也使用现有的 Motorola 68K 自旋锁代码，与 NetBSD 一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=9.4.16#9.4.16-b01cca277aa11b90", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-0440d449c8227e15", "cves": [], "html": "<p>为 Motorola 88K 添加自旋锁支持（David Carlier）</p>", "text": "为 Motorola 88K 添加自旋锁支持（David Carlier）", "title": "为 Motorola 88K 添加自旋锁支持", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "f3fd1dbc61144f8442662aafb353ae37db22211908a10b4bdba6251b73f71615", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add support for spinlocks on Motorola 88K (David Carlier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/023", "db_id": "bfa9a28cc40a79a97ae78a5019724377", "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a", "relations": [{"rule": 2, "type": "equivalent", "target": "0cd70096e5dd4b175a9d088a39c8b3b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}, {"rule": 2, "type": "equivalent", "target": "592b0e3550c45d12fa249c7f3a184a35", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}, {"rule": 2, "type": "equivalent", "target": "8e5a1db0a07f57f25b8c7ad53e78bfb3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}, {"rule": 2, "type": "equivalent", "target": "cc385b4c4d8fce475f44782ab00544e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}], "version": "9.3.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "592b0e3550c45d12fa249c7f3a184a35", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "增加对 Motorola 88K 上自旋锁的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=10.2#10.2-351bcb54b8105d69", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "cc385b4c4d8fce475f44782ab00544e5", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "为 Motorola 88K 添加自旋锁支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=9.6.7#9.6.7-0440d449c8227e15", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "8e5a1db0a07f57f25b8c7ad53e78bfb3", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "为 Motorola 88K 添加自旋锁支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=9.5.11#9.5.11-0440d449c8227e15", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "0cd70096e5dd4b175a9d088a39c8b3b3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "新增对 Motorola 88K 自旋锁的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=9.4.16#9.4.16-b124e3c286a80d8b", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.3.21-9e69976827ae2bed", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。<code>US/Pacific-New</code> 时区已被移除（它本来只是 <code>America/Los_Angeles</code> 的别名）。</p>", "text": "更新时区数据文件到 tzdata 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除（它本来只是 America/Los_Angeles 的别名）。", "title": "更新时区数据文件到 tzdata 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除（它本来只是 America/Los_Angeles 的别名）。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5", "source_hash": "1433d781ba7b3786fac50812a2d08c464f18c515f70b422e4724a11cdd21dee5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2018c for DST law changes in Brazil, Sao Tome and Principe, plus historical corrections for Bolivia, Japan, and South Sudan. The US/Pacific-New zone has been removed (it was only an alias for America/Los_Angeles anyway).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.21/changes/024", "db_id": "f9d5a9c145d7ccd1631d90c6f64f72da", "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9", "relations": [{"rule": 2, "type": "equivalent", "target": "44697021345d02256c38845c2989b023", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}, {"rule": 2, "type": "equivalent", "target": "64f0bacd61bdbcb4e7b5df04e7613b9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}, {"rule": 2, "type": "equivalent", "target": "685247e6871674bcf06f3eb8ac95fc7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}, {"rule": 2, "type": "equivalent", "target": "96a6cd7de5daa3706770e0012b49d3e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}], "version": "9.3.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "96a6cd7de5daa3706770e0012b49d3e4", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "将时区数据文件更新到 tzdata 2018c 版，以反映巴西、圣多美和普林西比的夏令时法规变更，并修正玻利维亚、日本和南苏丹的历史数据。已移除 US/Pacific-New 时区（它本来就只是 America/Los_Angeles 的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=10.2#10.2-5afbe12bf27bc0d9", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "64f0bacd61bdbcb4e7b5df04e7613b9e", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "更新时区数据文件到 tzdata 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除（它本来只是 America/Los_Angeles 的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=9.6.7#9.6.7-9e69976827ae2bed", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "44697021345d02256c38845c2989b023", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "更新时区数据文件到 tzdata 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除（它本来只是 America/Los_Angeles 的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=9.5.11#9.5.11-9e69976827ae2bed", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "685247e6871674bcf06f3eb8ac95fc7f", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "将时区数据文件更新到tzdata发行版 2018c，以反映巴西、圣多美和普林西比的夏令时法规变更，以及玻利维亚、日本和南苏丹的历史修正。US/Pacific-New时区已被移除（它本来就只是America/Los_Angeles的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=9.4.16#9.4.16-07b3b80c1a586529", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}]}, {"date": "2017-11-09", "build": "9.3.20", "major": "9.3", "minor": 20, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.20", "eol_date": "2018-11-08", "date_text": "2017-11-09", "supported": false, "manual_url": "/docs/9.3/release-9-3-20.html", "source_url": "/docs/release/9.3.20/", "entry_count": 17, "placeholder": false, "content_hash": "a1ce6d61e050f76ef573f995da74df292ca81cd50772b8c801495aec5980f1d7", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 17, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.3.18 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-18.html\" title=\"E.8. 版本 9.3.18\">第 E.8 节</a>。</p>", "compatibility_count": 0, "label": "9.3.20", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3247, "support_days": -2883, "entries": [{"id": "9.3.20-6347e8c17fee8c51", "cves": ["CVE-2017-15098"], "html": "<p>修复 <code>json{b}_populate_recordset()</code> 中行类型不匹配导致的崩溃（Michael Paquier、Tom Lane）</p>\n<p>这些函数使用 <code>FROM ... AS</code> 子句中指定的结果行类型，而没有检查它与所提供元组值的实际行类型匹配。如果不匹配，通常会导致崩溃，尽管泄露服务器内存内容似乎也有可能。（CVE-2017-15098）</p>", "text": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃（Michael Paquier、Tom Lane） 这些函数使用 FROM ... AS 子句中指定的结果行类型，而没有检查它与所提供元组值的实际行类型匹配。如果不匹配，通常会导致崩溃，尽管泄露服务器内存内容似乎也有可能。（CVE-2017-15098）", "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "ef466fc108438644ee2dc61b75f79e9bac08d4dc2756adf24052f57bd91bad06", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash due to rowtype mismatch in json{b}_populate_recordset() (Michael Paquier, Tom Lane) These functions used the result rowtype specified in the FROM ... AS clause without checking that it matched the actual rowtype of the supplied tuple value. If it didn't, that would usually result in a crash, though disclosure of server memory contents seems possible as well. (CVE-2017-15098)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/001", "db_id": "b357626c41922e96515309927cc03818", "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf", "relations": [{"rule": 2, "type": "equivalent", "target": "191926bdadf659c16bd799b814e0d447", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}}, {"rule": 2, "type": "equivalent", "target": "37b394189e78d2a3b737d155e68d704d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}}, {"rule": 2, "type": "equivalent", "target": "399e2c79d4fb41c334e3d99840aff867", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}}, {"rule": 2, "type": "equivalent", "target": "ea0d6ab24e73c65a676e3d498331a15d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}}], "version": "9.3.20", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "37b394189e78d2a3b737d155e68d704d", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}, "url": "/docs/compare/?release=10.1#10.1-6347e8c17fee8c51", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "191926bdadf659c16bd799b814e0d447", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}, "url": "/docs/compare/?release=9.6.6#9.6.6-6347e8c17fee8c51", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "ea0d6ab24e73c65a676e3d498331a15d", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}, "url": "/docs/compare/?release=9.5.10#9.5.10-6347e8c17fee8c51", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "399e2c79d4fb41c334e3d99840aff867", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}, "url": "/docs/compare/?release=9.4.15#9.4.15-6347e8c17fee8c51", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}]}, {"id": "9.3.20-b695ceda5feee1ee", "cves": ["CVE-2017-12172"], "html": "<p>修复示例服务器启动脚本在打开 <code>$PGLOG</code> 之前变成 <code>$PGUSER</code>（Noah Misch）</p>\n<p>此前，postmaster 日志文件是在仍以 root 运行时打开的。因此数据库所有者可以通过让 <code>$PGLOG</code> 成为指向某个其他文件的符号链接来攻击另一个系统用户，该文件随后会因追加日志消息而被损坏。</p>\n<p>默认情况下这些脚本不会安装到任何地方。使用了它们的用户需要手动重新复制，或对其修改版应用相同的更改。如果现有的 <code>$PGLOG</code> 文件为 root 所有，在用修正后的脚本重启服务器之前需要把它移开或重命名。（CVE-2017-12172）</p>", "text": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER（Noah Misch） 此前，postmaster 日志文件是在仍以 root 运行时打开的。因此数据库所有者可以通过让 $PGLOG 成为指向某个其他文件的符号链接来攻击另一个系统用户，该文件随后会因追加日志消息而被损坏。 默认情况下这些脚本不会安装到任何地方。使用了它们的用户需要手动重新复制，或对其修改版应用相同的更改。如果现有的 $PGLOG 文件为 root 所有，在用修正后的脚本重启服务器之前需要把它移开或重命名。（CVE-2017-12172）", "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "17f45a4e936bdb211703990d45e492564f7733ce7f335aa8398a2a6cdd12bfa0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix sample server-start scripts to become $PGUSER before opening $PGLOG (Noah Misch) Previously, the postmaster log file was opened while still running as root. The database owner could therefore mount an attack against another system user by making $PGLOG be a symbolic link to some other file, which would then become corrupted by appending log messages. By default, these scripts are not installed anywhere. Users who have made use of them will need to manually recopy them, or apply the same changes to their modified versions. If the existing $PGLOG file is root-owned, it will need to be removed or renamed out of the way before restarting the server with the corrected script. (CVE-2017-12172)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/002", "db_id": "58dc708b44515e2bcbaa8e8e039dbcca", "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de", "relations": [{"rule": 2, "type": "equivalent", "target": "061da361dc80476b681c7c5d03fc708b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}}, {"rule": 2, "type": "equivalent", "target": "1841cb200c58de883289108126c8e6b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}}, {"rule": 2, "type": "equivalent", "target": "a81505d07ebbef14783cac259f1cc534", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}}, {"rule": 2, "type": "equivalent", "target": "a859dd3ad16413efde5ed5f881f08378", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}}, {"rule": 2, "type": "equivalent", "target": "e16d073a3ea0513c2861cddeed4600e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}}], "version": "9.3.20", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "061da361dc80476b681c7c5d03fc708b", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复示例服务器启动脚本，使其在打开 $PGLOG 之前切换为 $PGUSER", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}, "url": "/docs/compare/?release=10.1#10.1-72954d576ba136af", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "a859dd3ad16413efde5ed5f881f08378", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}, "url": "/docs/compare/?release=9.6.6#9.6.6-b695ceda5feee1ee", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "e16d073a3ea0513c2861cddeed4600e4", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}, "url": "/docs/compare/?release=9.5.10#9.5.10-b695ceda5feee1ee", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "1841cb200c58de883289108126c8e6b6", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}, "url": "/docs/compare/?release=9.4.15#9.4.15-b695ceda5feee1ee", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "a81505d07ebbef14783cac259f1cc534", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}, "url": "/docs/compare/?release=9.2.24#9.2.24-b695ceda5feee1ee", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-c236d03a7517be54", "cves": [], "html": "<p>正确拒绝把无穷大浮点值转换为 <code>numeric</code> 类型的尝试（Tom Lane、KaiGai Kohei）</p>\n<p>此前行为是与平台相关的。</p>", "text": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试（Tom Lane、KaiGai Kohei） 此前行为是与平台相关的。", "title": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "06b92165868a31ca4a066e8fe73f59e1a9ec1a91c233a2746cba24224e0155cd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly reject attempts to convert infinite float values to type numeric (Tom Lane, KaiGai Kohei) Previously the behavior was platform-dependent.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/003", "db_id": "1c3b664e169e7db957bffb63f49a583a", "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9", "relations": [{"rule": 2, "type": "equivalent", "target": "37d688fc8a40beae324922612cd078f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}}, {"rule": 2, "type": "equivalent", "target": "4099b281f3b22fd6d6338ef9038b428f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}}, {"rule": 2, "type": "equivalent", "target": "6fb383dce08a3cd1787f8492c5c597a7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}}, {"rule": 2, "type": "equivalent", "target": "f478875aa928332b3c7de8354b92e99d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}}], "version": "9.3.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f478875aa928332b3c7de8354b92e99d", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}, "url": "/docs/compare/?release=9.6.6#9.6.6-c236d03a7517be54", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "4099b281f3b22fd6d6338ef9038b428f", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}, "url": "/docs/compare/?release=9.5.10#9.5.10-c236d03a7517be54", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "37d688fc8a40beae324922612cd078f9", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}, "url": "/docs/compare/?release=9.4.15#9.4.15-c236d03a7517be54", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "6fb383dce08a3cd1787f8492c5c597a7", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}, "url": "/docs/compare/?release=9.2.24#9.2.24-c236d03a7517be54", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-98a6704c482fbe65", "cves": [], "html": "<p>修复在视图末尾添加列后的边界崩溃（Tom Lane）</p>", "text": "修复在视图末尾添加列后的边界崩溃（Tom Lane）", "title": "修复在视图末尾添加列后的边界崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "7665bd6471f17435461f82cd3ba33cc010afeb4080c8a8cd7897c3dd32b6ff69", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix corner-case crashes when columns have been added to the end of a view (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/004", "db_id": "5dd9112df0daa106089cd18015b5f07c", "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf", "relations": [{"rule": 2, "type": "equivalent", "target": "89c8e733fdead3c204e3786e2b7c350d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"rule": 2, "type": "equivalent", "target": "8a7b9b004774c09111b17cb617d4a36d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"rule": 2, "type": "equivalent", "target": "8df8e065b7c9084d432bf1eb20ebef6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"rule": 2, "type": "equivalent", "target": "ecb8d6ca4538276779e5fb096fe8c30a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"rule": 2, "type": "equivalent", "target": "ef97718edf710920c1ada79e912a7394", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}], "version": "9.3.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ef97718edf710920c1ada79e912a7394", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复在视图末尾添加列时的极端情况崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=10.1#10.1-6025f14bd0231868", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "8a7b9b004774c09111b17cb617d4a36d", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "修复在视图末尾添加列后的边界崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=9.6.6#9.6.6-98a6704c482fbe65", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "89c8e733fdead3c204e3786e2b7c350d", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复在视图末尾添加列后的边界崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=9.5.10#9.5.10-98a6704c482fbe65", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "ecb8d6ca4538276779e5fb096fe8c30a", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复在视图末尾添加列后极端情况下崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=9.4.15#9.4.15-a372add8964a05a5", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "8df8e065b7c9084d432bf1eb20ebef6f", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "修复在视图末尾添加列后的边界崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=9.2.24#9.2.24-98a6704c482fbe65", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-4afb8b5079afaf49", "cves": [], "html": "<p>在视图或规则包含 <code>FieldSelect</code> 或 <code>FieldStore</code> 表达式节点时记录正确的依赖（Tom Lane）</p>\n<p>缺少这些依赖可能允许本应失败的列或数据类型 <code>DROP</code> 成功执行，从而导致之后使用该视图或规则时出错。此补丁不会保护现有视图/规则，只保护将来创建的。</p>", "text": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖（Tom Lane） 缺少这些依赖可能允许本应失败的列或数据类型 DROP 成功执行，从而导致之后使用该视图或规则时出错。此补丁不会保护现有视图/规则，只保护将来创建的。", "title": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "e9f7909483f9b08a0ed13a4381e0bdd6560859e627903da859b4835cfbbbec95", "section_path": ["变更"], "commit_groups": [], "identity_text": "Record proper dependencies when a view or rule contains FieldSelect or FieldStore expression nodes (Tom Lane) Lack of these dependencies could allow a column or data type DROP to go through when it ought to fail, thereby causing later uses of the view or rule to get errors. This patch does not do anything to protect existing views/rules, only ones created in the future.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/005", "db_id": "7e1c2a52c11eebe68320cb6819bb6842", "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70", "relations": [{"rule": 2, "type": "equivalent", "target": "007bd13b9c4a811e28128c420f3c0bd1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}}, {"rule": 2, "type": "equivalent", "target": "160e5bf639315788f17597b7c9e70f34", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}}, {"rule": 2, "type": "equivalent", "target": "1cd6dd04f06a325fa1e38208d26fc0fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}}, {"rule": 2, "type": "equivalent", "target": "1fb24dcf409901f8e7de3ac50cbca74d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}}, {"rule": 2, "type": "equivalent", "target": "290321f4e086f8b0cff30252c554c661", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}}], "version": "9.3.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1fb24dcf409901f8e7de3ac50cbca74d", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "当视图或规则包含 FieldSelect 或 FieldStore 表达式节点时，记录正确的依赖关系", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}, "url": "/docs/compare/?release=10.1#10.1-6c17bbc5710e4bc6", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "160e5bf639315788f17597b7c9e70f34", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}, "url": "/docs/compare/?release=9.6.6#9.6.6-4afb8b5079afaf49", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "290321f4e086f8b0cff30252c554c661", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}, "url": "/docs/compare/?release=9.5.10#9.5.10-4afb8b5079afaf49", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "007bd13b9c4a811e28128c420f3c0bd1", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}, "url": "/docs/compare/?release=9.4.15#9.4.15-4afb8b5079afaf49", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "1cd6dd04f06a325fa1e38208d26fc0fc", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}, "url": "/docs/compare/?release=9.2.24#9.2.24-4afb8b5079afaf49", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-4c6bea1fab68c8a1", "cves": [], "html": "<p>正确检测范围数据类型的可哈希性（Tom Lane）</p>\n<p>规划器错误地假定任何范围类型都可以哈希用于哈希连接或哈希聚合，但实际上必须检查范围的子类型是否有哈希支持。这不影响任何内置范围类型，因为它们反正都是可哈希的。</p>", "text": "正确检测范围数据类型的可哈希性（Tom Lane） 规划器错误地假定任何范围类型都可以哈希用于哈希连接或哈希聚合，但实际上必须检查范围的子类型是否有哈希支持。这不影响任何内置范围类型，因为它们反正都是可哈希的。", "title": "正确检测范围数据类型的可哈希性", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "e17e39b07ccca74744ce6855712b2c1ad5406c1fa916a31f2f3135f8a87ccc32", "section_path": ["变更"], "commit_groups": [], "identity_text": "Correctly detect hashability of range data types (Tom Lane) The planner mistakenly assumed that any range type could be hashed for use in hash joins or hash aggregation, but actually it must check whether the range's subtype has hash support. This does not affect any of the built-in range types, since they're all hashable anyway.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/006", "db_id": "402b5b239a6a0c7dee3485212563f74e", "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f", "relations": [{"rule": 2, "type": "equivalent", "target": "1f0ededa100214388e94db4ee785cdd1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}}, {"rule": 2, "type": "equivalent", "target": "29fb35dd9919703bc165f056b889dd49", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}}, {"rule": 2, "type": "equivalent", "target": "7d936341e4451a5527c1deda00cdb8e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}}, {"rule": 2, "type": "equivalent", "target": "879a1f89d800c2786255bd2ed0d83cfb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}}, {"rule": 2, "type": "equivalent", "target": "c320085ab5e747c8994f3bccf936161f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}}], "version": "9.3.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7d936341e4451a5527c1deda00cdb8e5", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "正确检测范围数据类型是否支持 hash 运算", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}, "url": "/docs/compare/?release=10.1#10.1-b9909fcb91ea910e", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "c320085ab5e747c8994f3bccf936161f", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "正确检测范围数据类型的可哈希性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}, "url": "/docs/compare/?release=9.6.6#9.6.6-4c6bea1fab68c8a1", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "29fb35dd9919703bc165f056b889dd49", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "正确检测范围数据类型的可哈希性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}, "url": "/docs/compare/?release=9.5.10#9.5.10-4c6bea1fab68c8a1", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "1f0ededa100214388e94db4ee785cdd1", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "正确检测范围数据类型的可哈希性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}, "url": "/docs/compare/?release=9.4.15#9.4.15-4c6bea1fab68c8a1", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "879a1f89d800c2786255bd2ed0d83cfb", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "正确检测范围数据类型的可哈希性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}, "url": "/docs/compare/?release=9.2.24#9.2.24-4c6bea1fab68c8a1", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-8ad2c3361ed421f1", "cves": [], "html": "<p>修复因 XID 回卷导致的低概率 <code>NOTIFY</code> 消息丢失（Marko Tiikkaja、Tom Lane）</p>\n<p>如果一个会话在超过 20 亿个事务期间不执行查询而只是监听通知，它就开始遗漏来自并发提交事务的一些通知。</p>", "text": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失（Marko Tiikkaja、Tom Lane） 如果一个会话在超过 20 亿个事务期间不执行查询而只是监听通知，它就开始遗漏来自并发提交事务的一些通知。", "title": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "145f9966f0f7ba240fcf6250d93d493c03c8d85a939083ff03de885b2fbf8ba7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix low-probability loss of NOTIFY messages due to XID wraparound (Marko Tiikkaja, Tom Lane) If a session executed no queries, but merely listened for notifications, for more than 2 billion transactions, it started to miss some notifications from concurrently-committing transactions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/007", "db_id": "bd64297a2b9915f0c99497279540ff3d", "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33", "relations": [{"rule": 2, "type": "equivalent", "target": "05363bfd016c01f9ff8549467d914e00", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}, {"rule": 2, "type": "equivalent", "target": "4b506c21e755bed67a575660d8226d50", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}, {"rule": 2, "type": "equivalent", "target": "6e8a2efa855582392f8aa8b4b0e0a368", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}, {"rule": 2, "type": "equivalent", "target": "89fcaef7b09acb5d6956f7d490688e6c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}, {"rule": 2, "type": "equivalent", "target": "b1531f77e7bfc7c36f8dcd1febcf51d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}], "version": "9.3.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b506c21e755bed67a575660d8226d50", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复 XID 回卷导致 NOTIFY 消息以低概率丢失的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}, "url": "/docs/compare/?release=10.1#10.1-1aee059b986c876c", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "05363bfd016c01f9ff8549467d914e00", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}, "url": "/docs/compare/?release=9.6.6#9.6.6-8ad2c3361ed421f1", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "b1531f77e7bfc7c36f8dcd1febcf51d1", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}, "url": "/docs/compare/?release=9.5.10#9.5.10-8ad2c3361ed421f1", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "89fcaef7b09acb5d6956f7d490688e6c", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}, "url": "/docs/compare/?release=9.4.15#9.4.15-8ad2c3361ed421f1", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "6e8a2efa855582392f8aa8b4b0e0a368", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}, "url": "/docs/compare/?release=9.2.24#9.2.24-8ad2c3361ed421f1", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-08ada9d5eb58d26c", "cves": [], "html": "<p>防止嵌套触发器触发处理中的低概率崩溃（Tom Lane）</p>", "text": "防止嵌套触发器触发处理中的低概率崩溃（Tom Lane）", "title": "防止嵌套触发器触发处理中的低概率崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "ef4a5995c55ce34e3598510b98217b849d3e836cc4c643c5ddb0ba61514212e6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent low-probability crash in processing of nested trigger firings (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/008", "db_id": "0a1940517915a4c2940506f17a5eb707", "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27", "relations": [{"rule": 2, "type": "equivalent", "target": "90bab2f383d8aeb7b288d90321649ca0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}}, {"rule": 2, "type": "equivalent", "target": "cf10bd02853e41f70bc1a6f1202f41a5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}}, {"rule": 2, "type": "equivalent", "target": "ed52e2c3034cd22ee4499e231c7702e6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}}, {"rule": 2, "type": "equivalent", "target": "ee96714487e8ca74fd6a107b83a6e2ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}}], "version": "9.3.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed52e2c3034cd22ee4499e231c7702e6", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "防止嵌套触发器触发处理中的低概率崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}, "url": "/docs/compare/?release=9.6.6#9.6.6-08ada9d5eb58d26c", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "cf10bd02853e41f70bc1a6f1202f41a5", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "防止嵌套触发器触发处理中的低概率崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}, "url": "/docs/compare/?release=9.5.10#9.5.10-08ada9d5eb58d26c", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "ee96714487e8ca74fd6a107b83a6e2ff", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "防止嵌套触发器触发处理中低概率的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}, "url": "/docs/compare/?release=9.4.15#9.4.15-77d78ae4918aeda4", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "90bab2f383d8aeb7b288d90321649ca0", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "防止嵌套触发器触发处理中的低概率崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}, "url": "/docs/compare/?release=9.2.24#9.2.24-08ada9d5eb58d26c", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-f8c0de6d6a3a6766", "cves": [], "html": "<p><code>COPY</code> 或 <code>lo_export()</code> 中文件创建失败时正确恢复 umask 设置（Peter Eisentraut）</p>", "text": "COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置（Peter Eisentraut）", "title": "COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "77c739358cad00abd8db521ab9e39ce93ae5e706fd23eab4a15ad6ef2b5fbbe0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Correctly restore the umask setting when file creation fails in COPY or lo_export() (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/009", "db_id": "86e3dd6e5ffcaf10855497ea94db1c42", "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f", "relations": [{"rule": 2, "type": "equivalent", "target": "770ccd96660ab181e6da0d927d9cb543", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}}, {"rule": 2, "type": "equivalent", "target": "cc0dcf1311568595327442b4aa12869f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}}, {"rule": 2, "type": "equivalent", "target": "d04405fe419fbd4c3b4064db6ec75581", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}}, {"rule": 2, "type": "equivalent", "target": "f7adfb79e2ff9d1b6bae31920cfa3907", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}}], "version": "9.3.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc0dcf1311568595327442b4aa12869f", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}, "url": "/docs/compare/?release=9.6.6#9.6.6-f8c0de6d6a3a6766", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "d04405fe419fbd4c3b4064db6ec75581", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}, "url": "/docs/compare/?release=9.5.10#9.5.10-f8c0de6d6a3a6766", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "770ccd96660ab181e6da0d927d9cb543", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复COPY或lo_export()中文件创建失败时正确恢复 umask 设置的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}, "url": "/docs/compare/?release=9.4.15#9.4.15-4648adc21ba571b7", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "f7adfb79e2ff9d1b6bae31920cfa3907", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}, "url": "/docs/compare/?release=9.2.24#9.2.24-f8c0de6d6a3a6766", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-776f5444937194b9", "cves": [], "html": "<p>为 <code>ANALYZE</code> 中的重复列名给出更好的错误消息（Nathan Bossart）</p>", "text": "为 ANALYZE 中的重复列名给出更好的错误消息（Nathan Bossart）", "title": "为 ANALYZE 中的重复列名给出更好的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "7c89e5485d4edcb32462d7c5cebc29caf9f32768e55e62c62ffb496a0ec484e9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Give a better error message for duplicate column names in ANALYZE (Nathan Bossart)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/010", "db_id": "c46de2bed8e8f98249da82f83534b4d2", "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276", "relations": [{"rule": 2, "type": "equivalent", "target": "22ac0a7eb2efae8442a871ca457ff739", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}}, {"rule": 2, "type": "equivalent", "target": "60275a3ec51db1818065d73cfdeb4050", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}}, {"rule": 2, "type": "equivalent", "target": "a11193b5badad905ca7dbc014dd5ee37", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}}, {"rule": 2, "type": "equivalent", "target": "dc7ffa3d7d47edfdffb350d21143fdf2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}}], "version": "9.3.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "22ac0a7eb2efae8442a871ca457ff739", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "为 ANALYZE 中的重复列名给出更好的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}, "url": "/docs/compare/?release=9.6.6#9.6.6-776f5444937194b9", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "dc7ffa3d7d47edfdffb350d21143fdf2", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "为 ANALYZE 中的重复列名给出更好的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}, "url": "/docs/compare/?release=9.5.10#9.5.10-776f5444937194b9", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "60275a3ec51db1818065d73cfdeb4050", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "为ANALYZE中的重复列名提供更好的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}, "url": "/docs/compare/?release=9.4.15#9.4.15-cdb950ef84cdbcec", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "a11193b5badad905ca7dbc014dd5ee37", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "为 ANALYZE 中的重复列名给出更好的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}, "url": "/docs/compare/?release=9.2.24#9.2.24-776f5444937194b9", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-aff8bec37b7398c6", "cves": [], "html": "<p>修复对不以换行结尾的 <code>pg_hba.conf</code> 文件最后一行的错误解析（Tom Lane）</p>", "text": "修复对不以换行结尾的 pg_hba.conf 文件最后一行的错误解析（Tom Lane）", "title": "修复对不以换行结尾的 pg_hba.conf 文件最后一行的错误解析", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "e0d90c34c0d6edff1a67c6f1ab5343100710633ac63debddec4800d30a7ebfbe", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix mis-parsing of the last line in a non-newline-terminated pg_hba.conf file (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/011", "db_id": "5eddd6c4577d73a939cab58edd99a776", "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7", "relations": [{"rule": 2, "type": "equivalent", "target": "11cf45e625f2b309d4c896522cf13112", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}}, {"rule": 2, "type": "equivalent", "target": "456f7cb7fea159f4dd066881991deddd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}}, {"rule": 2, "type": "equivalent", "target": "47e452aa71db8034a712239a3964e3a5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}}], "version": "9.3.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "11cf45e625f2b309d4c896522cf13112", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "修复对不以换行结尾的 pg_hba.conf 文件最后一行的错误解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}, "url": "/docs/compare/?release=9.6.6#9.6.6-aff8bec37b7398c6", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "47e452aa71db8034a712239a3964e3a5", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复对不以换行结尾的 pg_hba.conf 文件最后一行的错误解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}, "url": "/docs/compare/?release=9.5.10#9.5.10-aff8bec37b7398c6", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "456f7cb7fea159f4dd066881991deddd", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复对无换行结尾的pg_hba.conf文件最后一行的错误解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}, "url": "/docs/compare/?release=9.4.15#9.4.15-5d8357d297ccf980", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}]}, {"id": "9.3.20-0236bfb2ebeacc2e", "cves": [], "html": "<p>修复 <span>libpq</span> 不要求用户的主目录存在（Tom Lane）</p>\n<p>在 v10 中，尝试读取 <code>~/.pgpass</code> 时找不到主目录被当作硬错误，但它应该只是导致找不到该文件。v10 和以前的发布分支在读取 <code>~/.pg_service.conf</code> 时犯了同样的错误，不过这不太明显，因为除非指定了服务名否则不寻找该文件。</p>", "text": "修复 libpq 不要求用户的主目录存在（Tom Lane） 在 v10 中，尝试读取 ~/.pgpass 时找不到主目录被当作硬错误，但它应该只是导致找不到该文件。v10 和以前的发布分支在读取 ~/.pg_service.conf 时犯了同样的错误，不过这不太明显，因为除非指定了服务名否则不寻找该文件。", "title": "修复 libpq 不要求用户的主目录存在", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "8d3352bdcd8434b4857ee81bb20337deab45a7bee961b18341c52c4e33d1a651", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix libpq to not require user's home directory to exist (Tom Lane) In v10, failure to find the home directory while trying to read ~/.pgpass was treated as a hard error, but it should just cause that file to not be found. Both v10 and previous release branches made the same mistake when reading ~/.pg_service.conf, though this was less obvious since that file is not sought unless a service name is specified.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/012", "db_id": "102daed46570ca19e49b298bfa3ba3e2", "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467", "relations": [{"rule": 2, "type": "equivalent", "target": "006b88f929e042ebc8300b75f7f27246", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}}, {"rule": 2, "type": "equivalent", "target": "7ec2fb78308cd9103547c1a0c812b9b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}}, {"rule": 2, "type": "equivalent", "target": "b0cb3ef81cd549c25017579634b98ae7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}}, {"rule": 2, "type": "equivalent", "target": "b71d6a1a44ecb249aeffd4cc931c9999", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}}, {"rule": 2, "type": "equivalent", "target": "d518c7c5ea325860a92385a76d35cbc7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}}], "version": "9.3.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b0cb3ef81cd549c25017579634b98ae7", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复 libpq，使其不再要求用户主目录存在", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}, "url": "/docs/compare/?release=10.1#10.1-449b9268fdb746a8", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "d518c7c5ea325860a92385a76d35cbc7", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "修复 libpq 不要求用户的主目录存在", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}, "url": "/docs/compare/?release=9.6.6#9.6.6-0236bfb2ebeacc2e", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "7ec2fb78308cd9103547c1a0c812b9b1", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 libpq 不要求用户的主目录存在", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}, "url": "/docs/compare/?release=9.5.10#9.5.10-0236bfb2ebeacc2e", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "006b88f929e042ebc8300b75f7f27246", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复 libpq 不要求用户的主目录存在", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}, "url": "/docs/compare/?release=9.4.15#9.4.15-0236bfb2ebeacc2e", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "b71d6a1a44ecb249aeffd4cc931c9999", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "修复 libpq 不要求用户的主目录存在", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}, "url": "/docs/compare/?release=9.2.24#9.2.24-0236bfb2ebeacc2e", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-f1cc78ee4ca056f1", "cves": [], "html": "<p>修复 <span>libpq</span> 防范 <code>PGresult</code> 行数中的整数溢出（Michael Paquier）</p>", "text": "修复 libpq 防范 PGresult 行数中的整数溢出（Michael Paquier）", "title": "修复 libpq 防范 PGresult 行数中的整数溢出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "3204de27c8014e2c0aa53cca89b3c098b69ea7331df54a195e96d74617b280c2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix libpq to guard against integer overflow in the row count of a PGresult (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/013", "db_id": "3c1c024ed8f25be27c5657f0e5286342", "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a", "relations": [{"rule": 2, "type": "equivalent", "target": "37e1e5cf1498b87470b54ee71a0e67ab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}}, {"rule": 2, "type": "equivalent", "target": "79d49467885ae1d412bdf9b307596c0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}}, {"rule": 2, "type": "equivalent", "target": "86c1fafaa843061ad1e84402e625e9cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}}, {"rule": 2, "type": "equivalent", "target": "b56f562ef59390b0c10ee313ce357e14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}}], "version": "9.3.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "86c1fafaa843061ad1e84402e625e9cd", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "修复 libpq 防范 PGresult 行数中的整数溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}, "url": "/docs/compare/?release=9.6.6#9.6.6-f1cc78ee4ca056f1", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "b56f562ef59390b0c10ee313ce357e14", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 libpq 防范 PGresult 行数中的整数溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}, "url": "/docs/compare/?release=9.5.10#9.5.10-f1cc78ee4ca056f1", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "37e1e5cf1498b87470b54ee71a0e67ab", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复libpq对PGresult行数的整数溢出防护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}, "url": "/docs/compare/?release=9.4.15#9.4.15-ffd9ffccafa4f7d2", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "79d49467885ae1d412bdf9b307596c0f", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "修复 libpq 防范 PGresult 行数中的整数溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}, "url": "/docs/compare/?release=9.2.24#9.2.24-f1cc78ee4ca056f1", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-e16a1942ddfde1ee", "cves": [], "html": "<p>修复 <span>ecpg</span> 对带指针或数组变量的超出作用域游标声明的处理（Michael Meskes）</p>", "text": "修复 ecpg 对带指针或数组变量的超出作用域游标声明的处理（Michael Meskes）", "title": "修复 ecpg 对带指针或数组变量的超出作用域游标声明的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "b2b9aa6eb2d51bedbdb728c055e9c73eb9c0686e01e43f6cac817c16e798b5df", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg's handling of out-of-scope cursor declarations with pointer or array variables (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/014", "db_id": "4e6b2fc6b347eac6afcc794106f2785c", "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9", "relations": [{"rule": 2, "type": "equivalent", "target": "77b4e508a729e39bd48db59a6b54ffaf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}}, {"rule": 2, "type": "equivalent", "target": "ced4bc1b74d9e880ae2b6b5a746ee285", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}}, {"rule": 2, "type": "equivalent", "target": "ec4a2d746d8f1ee0cfba9bf344b85661", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}}], "version": "9.3.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ced4bc1b74d9e880ae2b6b5a746ee285", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "修复 ecpg 对带指针或数组变量的超出作用域游标声明的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}, "url": "/docs/compare/?release=9.6.6#9.6.6-e16a1942ddfde1ee", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "ec4a2d746d8f1ee0cfba9bf344b85661", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 ecpg 对带指针或数组变量的超出作用域游标声明的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}, "url": "/docs/compare/?release=9.5.10#9.5.10-e16a1942ddfde1ee", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "77b4e508a729e39bd48db59a6b54ffaf", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复ecpg对带指针或数组变量的超作用域游标声明的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}, "url": "/docs/compare/?release=9.4.15#9.4.15-5d6e86e3a0d8cffe", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}]}, {"id": "9.3.20-2d2b0633ea1998b2", "cves": [], "html": "<p>让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位（Gao Zengqi、Michael Meskes）</p>", "text": "让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位（Gao Zengqi、Michael Meskes）", "title": "让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "0bb55d5fd107a5536e200eb87ef818a2c008a01ef13256e528f5352b212eef8f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make ecpglib's Informix-compatibility mode ignore fractional digits in integer input strings, as expected (Gao Zengqi, Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/015", "db_id": "89c449856b27a1bc18eeb794c6cebedb", "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f", "relations": [{"rule": 2, "type": "equivalent", "target": "2cc74143087d0baf26e69f81883a4d7c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}}, {"rule": 2, "type": "equivalent", "target": "327951f097966e1bf73354a3b969072e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}}, {"rule": 2, "type": "equivalent", "target": "3c9edd46a25977cbd2b2b1fb160b7dae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}}, {"rule": 2, "type": "equivalent", "target": "a5569d283bfc07fbb4c56ca6b143f8ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}}], "version": "9.3.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a5569d283bfc07fbb4c56ca6b143f8ca", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "使 ecpglib 的 Informix 兼容模式按预期忽略整数输入字符串中的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}, "url": "/docs/compare/?release=10.1#10.1-b06ac02040269efa", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "2cc74143087d0baf26e69f81883a4d7c", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}, "url": "/docs/compare/?release=9.6.6#9.6.6-2d2b0633ea1998b2", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "327951f097966e1bf73354a3b969072e", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}, "url": "/docs/compare/?release=9.5.10#9.5.10-2d2b0633ea1998b2", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "3c9edd46a25977cbd2b2b1fb160b7dae", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "使 ecpglib 的 Informix 兼容模式按预期忽略整数输入字符串中的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}, "url": "/docs/compare/?release=9.4.15#9.4.15-b06ac02040269efa", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}]}, {"id": "9.3.20-a5fb2787fb465882", "cves": [], "html": "<p>把我们的时区库副本与 IANA tzcode2017c 同步（Tom Lane）</p>\n<p>这修复了若干问题；唯一可能对用户可见的是，当时区数据目录中没有 <code>posixrules</code> 文件时，POSIX 风格时区名的默认夏令时规则现在匹配当前美国法律而不是十几年前的。</p>", "text": "把我们的时区库副本与 IANA tzcode2017c 同步（Tom Lane） 这修复了若干问题；唯一可能对用户可见的是，当时区数据目录中没有 posixrules 文件时，POSIX 风格时区名的默认夏令时规则现在匹配当前美国法律而不是十几年前的。", "title": "把我们的时区库副本与 IANA tzcode2017c 同步", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "7ceac943c18bad8f2155c859f6469359f1fdb4fd921980566521bb174914510c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Sync our copy of the timezone library with IANA release tzcode2017c (Tom Lane) This fixes various issues; the only one likely to be user-visible is that the default DST rules for a POSIX-style zone name, if no posixrules file exists in the timezone data directory, now match current US law rather than what it was a dozen years ago.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/016", "db_id": "06a4e590689a5f30eb58e6b5354b43a6", "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d", "relations": [{"rule": 2, "type": "equivalent", "target": "0a2566d962dc17066b0858eccb1ec8ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}}, {"rule": 2, "type": "equivalent", "target": "3323050002a438fd4c496cad0d082d3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}}, {"rule": 2, "type": "equivalent", "target": "85e927695bfabb0a66f2b593f41aea7e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}}, {"rule": 2, "type": "equivalent", "target": "bab62d963c9727b928254af48d27401f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}}], "version": "9.3.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0a2566d962dc17066b0858eccb1ec8ca", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "把我们的时区库副本与 IANA tzcode2017c 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}, "url": "/docs/compare/?release=9.6.6#9.6.6-a5fb2787fb465882", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "bab62d963c9727b928254af48d27401f", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "把我们的时区库副本与 IANA tzcode2017c 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}, "url": "/docs/compare/?release=9.5.10#9.5.10-a5fb2787fb465882", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "3323050002a438fd4c496cad0d082d3a", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "把我们的时区库副本与 IANA tzcode2017c 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}, "url": "/docs/compare/?release=9.4.15#9.4.15-a5fb2787fb465882", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "85e927695bfabb0a66f2b593f41aea7e", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "把我们的时区库副本与 IANA tzcode2017c 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}, "url": "/docs/compare/?release=9.2.24#9.2.24-a5fb2787fb465882", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.3.20-c140c362332e493c", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。</p>", "text": "更新时区数据文件到 tzdata 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "title": "更新时区数据文件到 tzdata 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5", "source_hash": "76d48a43ee33c8746bb6f8063ec88e7cadb450bdd45a77f4e13059ff3ce47ce1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2017c for DST law changes in Fiji, Namibia, Northern Cyprus, Sudan, Tonga, and Turks & Caicos Islands, plus historical corrections for Alaska, Apia, Burma, Calcutta, Detroit, Ireland, Namibia, and Pago Pago.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.20/changes/017", "db_id": "41fa2b66666f8560149b4e828a789f52", "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8", "relations": [{"rule": 2, "type": "equivalent", "target": "293143bd1bebf2fa099b043849086024", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}}, {"rule": 2, "type": "equivalent", "target": "5063230b1a3750ce6e2d9f3ced8caedc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}}, {"rule": 2, "type": "equivalent", "target": "85588d39e9c7e704df909e151fc0201f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}}, {"rule": 2, "type": "equivalent", "target": "cc4690a822d3cdb953a0494112d06b92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}}, {"rule": 2, "type": "equivalent", "target": "ecc97112734f3476d067fd7dbbf430da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}}], "version": "9.3.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ecc97112734f3476d067fd7dbbf430da", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "将时区数据文件更新到 tzdata 2017c 版，以反映斐济、纳米比亚、北塞浦路斯、苏丹、汤加和特克斯 & 凯科斯群岛的夏令时法规变更，并修正阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}, "url": "/docs/compare/?release=10.1#10.1-4014adbaf08d9687", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "293143bd1bebf2fa099b043849086024", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "更新时区数据文件到 tzdata 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}, "url": "/docs/compare/?release=9.6.6#9.6.6-c140c362332e493c", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "85588d39e9c7e704df909e151fc0201f", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "更新时区数据文件到 tzdata 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}, "url": "/docs/compare/?release=9.5.10#9.5.10-c140c362332e493c", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "5063230b1a3750ce6e2d9f3ced8caedc", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "将时区数据文件更新到tzdata发行版 2017c，以反映斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，以及阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}, "url": "/docs/compare/?release=9.4.15#9.4.15-3732889a8bc3ae53", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "cc4690a822d3cdb953a0494112d06b92", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "更新时区数据文件到 tzdata 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}, "url": "/docs/compare/?release=9.2.24#9.2.24-c140c362332e493c", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}]}, {"date": "2017-08-31", "build": "9.3.19", "major": "9.3", "minor": 19, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.19", "eol_date": "2018-11-08", "date_text": "2017-08-31", "supported": false, "manual_url": "/docs/9.3/release-9-3-19.html", "source_url": "/docs/release/9.3.19/", "entry_count": 7, "placeholder": false, "content_hash": "0b9dcb24a0aa9dc16643283e366a17acbea8a502a44ed634f76a8e0f92e99838", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 7, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.3.18 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-18.html\" title=\"E.8. 版本 9.3.18\">第 E.8 节</a>。</p>", "compatibility_count": 0, "label": "9.3.19", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3317, "support_days": -2883, "entries": [{"id": "9.3.19-a9471aa1dc145ff0", "cves": [], "html": "<p>在 <code>information_schema</code>.<code>table_privileges</code> 视图中显示外部表（Peter Eisentraut）</p>\n<p>所有其他相关的 <code>information_schema</code> 视图都包含外部表，只有这一个忽略了它们。</p>\n<p>由于这个视图定义是由 <span>initdb</span> 安装的，仅升级不会修复问题。如果需要在现有安装中修复，可以以超级用户身份在 <span>psql</span> 中执行以下操作：</p>\n<pre>SET search_path TO information_schema;\nCREATE OR REPLACE VIEW table_privileges AS\nSELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor,\n       CAST(grantee.rolname AS sql_identifier) AS grantee,\n       CAST(current_database() AS sql_identifier) AS table_catalog,\n       CAST(nc.nspname AS sql_identifier) AS table_schema,\n       CAST(c.relname AS sql_identifier) AS table_name,\n       CAST(c.prtype AS character_data) AS privilege_type,\n       CAST(\n         CASE WHEN\n          -- object owner always has grant options\n          pg_has_role(grantee.oid, c.relowner, 'USAGE')\n          OR c.grantable\n          THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable,\n       CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy\nFROM (\n       SELECT oid, relname, relnamespace, relkind, relowner,\n              (aclexplode(coalesce(relacl, acldefault('r', relowner))).*\n       FROM pg_class ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable),\n     pg_namespace nc, pg_authid u_grantor,\n     (\n       SELECT oid, rolname FROM pg_authid\n       UNION ALL\n       SELECT 0::oid, 'PUBLIC'\n     ) AS grantee (oid, rolname)\nWHERE c.relnamespace = nc.oid\n      AND c.relkind IN ('r', 'v', 'f')\n      AND c.grantee = grantee.oid\n      AND c.grantor = u_grantor.oid\n      AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER')\n      AND (pg_has_role(u_grantor.oid, 'USAGE')\n           OR pg_has_role(grantee.oid, 'USAGE')\n           OR grantee.rolname = 'PUBLIC');\n</pre>\n<p>这必须在每个要修复的数据库中重复，包括 <code>template0</code>。</p>", "text": "在 information_schema.table_privileges 视图中显示外部表（Peter Eisentraut） 所有其他相关的 information_schema 视图都包含外部表，只有这一个忽略了它们。 由于这个视图定义是由 initdb 安装的，仅升级不会修复问题。如果需要在现有安装中修复，可以以超级用户身份在 psql 中执行以下操作： SET search_path TO information_schema; CREATE OR REPLACE VIEW table_privileges AS SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor, CAST(grantee.rolname AS sql_identifier) AS grantee, CAST(current_database() AS sql_identifier) AS table_catalog, CAST(nc.nspname AS sql_identifier) AS table_schema, CAST(c.relname AS sql_identifier) AS table_name, CAST(c.prtype AS character_data) AS privilege_type, CAST( CASE WHEN -- object owner always has grant options pg_has_role(grantee.oid, c.relowner, 'USAGE') OR c.grantable THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable, CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy FROM ( SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner))).* FROM pg_class ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable), pg_namespace nc, pg_authid u_grantor, ( SELECT oid, rolname FROM pg_authid UNION ALL SELECT 0::oid, 'PUBLIC' ) AS grantee (oid, rolname) WHERE c.relnamespace = nc.oid AND c.relkind IN ('r', 'v', 'f') AND c.grantee = grantee.oid AND c.grantor = u_grantor.oid AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER') AND (pg_has_role(u_grantor.oid, 'USAGE') OR pg_has_role(grantee.oid, 'USAGE') OR grantee.rolname = 'PUBLIC'); 这必须在每个要修复的数据库中重复，包括 template0。", "title": "在 information_schema.table_privileges 视图中显示外部表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5", "source_hash": "7b4030f07a95b428094c6f0b5be395c71c72d2d6d99a7b55a647e035c92239ac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Show foreign tables in information_schema.table_privileges view (Peter Eisentraut) All other relevant information_schema views include foreign tables, but this one ignored them. Since this view definition is installed by initdb, merely upgrading will not fix the problem. If you need to fix this in an existing installation, you can, as a superuser, do this in psql: SET search_path TO information_schema; CREATE OR REPLACE VIEW table_privileges AS SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor, CAST(grantee.rolname AS sql_identifier) AS grantee, CAST(current_database() AS sql_identifier) AS table_catalog, CAST(nc.nspname AS sql_identifier) AS table_schema, CAST(c.relname AS sql_identifier) AS table_name, CAST(c.prtype AS character_data) AS privilege_type, CAST( CASE WHEN -- object owner always has grant options pg_has_role(grantee.oid, c.relowner, 'USAGE') OR c.grantable THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable, CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy FROM ( SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable), pg_namespace nc, pg_authid u_grantor, ( SELECT oid, rolname FROM pg_authid UNION ALL SELECT 0::oid, 'PUBLIC' ) AS grantee (oid, rolname) WHERE c.relnamespace = nc.oid AND c.relkind IN ('r', 'v', 'f') AND c.grantee = grantee.oid AND c.grantor = u_grantor.oid AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER') AND (pg_has_role(u_grantor.oid, 'USAGE') OR pg_has_role(grantee.oid, 'USAGE') OR grantee.rolname = 'PUBLIC'); This must be repeated in each database to be fixed, including template0.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.19/changes/001", "db_id": "6490008c6b679a796619737abb260ab9", "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd", "relations": [{"rule": 2, "type": "equivalent", "target": "10a4b1a21748add5cdc22ac4594174dc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}, {"rule": 2, "type": "equivalent", "target": "3f82faaf4eff73a2042216d4eac21a2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}, {"rule": 2, "type": "equivalent", "target": "41e90977ae153a8484b1cdec9c094b9d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}, {"rule": 2, "type": "equivalent", "target": "df32761f4e98b569ae3c4a9354183c85", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}], "version": "9.3.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "df32761f4e98b569ae3c4a9354183c85", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "在 information_schema.table_privileges 视图中显示外部表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.6.5#9.6.5-a9471aa1dc145ff0", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5"}, {"db_id": "41e90977ae153a8484b1cdec9c094b9d", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "在 information_schema.table_privileges 视图中显示外部表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.5.9#9.5.9-a9471aa1dc145ff0", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "10a4b1a21748add5cdc22ac4594174dc", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "在 information_schema.table_privileges 视图中显示外部表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.4.14#9.4.14-a9471aa1dc145ff0", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "3f82faaf4eff73a2042216d4eac21a2c", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "在 information_schema.table_privileges 视图中显示外部表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.2.23#9.2.23-a9471aa1dc145ff0", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}, {"id": "9.3.19-2c80f774f076c8fd", "cves": [], "html": "<p>清理尝试对失败事务执行 <code>ROLLBACK</code> 时发生致命退出（例如因收到 <span>SIGTERM</span>）的处理（Tom Lane）</p>\n<p>这种情况可能导致断言失败。在生产构建中退出仍会发生，但会记录一条关于 <span>“<span>cannot drop active portal</span>”</span> 的意外消息。</p>", "text": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理（Tom Lane） 这种情况可能导致断言失败。在生产构建中退出仍会发生，但会记录一条关于 “cannot drop active portal” 的意外消息。", "title": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5", "source_hash": "d5df774b4eb63945a519484f4385c5de6b26a57ae89d9ec60c00acfad673444c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Clean up handling of a fatal exit (e.g., due to receipt of SIGTERM) that occurs while trying to execute a ROLLBACK of a failed transaction (Tom Lane) This situation could result in an assertion failure. In production builds, the exit would still occur, but it would log an unexpected message about cannot drop active portal.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.19/changes/002", "db_id": "0dae3f449dfb816df1df5fde5f526d0f", "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3", "relations": [{"rule": 2, "type": "equivalent", "target": "ae36cc2c0a2f6aa05a29af6344b41317", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}, {"rule": 2, "type": "equivalent", "target": "b72e2b8199e9f5e2f2549b1725d05d0b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}, {"rule": 2, "type": "equivalent", "target": "ec8e803c943e0b1082d3dd91507845c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}, {"rule": 2, "type": "equivalent", "target": "f9959ffe6fe7709a79e620b35064a27d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}], "version": "9.3.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec8e803c943e0b1082d3dd91507845c3", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.6.5#9.6.5-2c80f774f076c8fd", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5"}, {"db_id": "ae36cc2c0a2f6aa05a29af6344b41317", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.5.9#9.5.9-2c80f774f076c8fd", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "b72e2b8199e9f5e2f2549b1725d05d0b", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.4.14#9.4.14-2c80f774f076c8fd", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "f9959ffe6fe7709a79e620b35064a27d", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.2.23#9.2.23-2c80f774f076c8fd", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}, {"id": "9.3.19-b5e135b3d4add397", "cves": [], "html": "<p>移除致命退出期间可能触发的断言（Tom Lane）</p>", "text": "移除致命退出期间可能触发的断言（Tom Lane）", "title": "移除致命退出期间可能触发的断言", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5", "source_hash": "b70358ccba805aaad92a8acf418fca513f7bdd15dbe6e6b12e115de8102e95d1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove assertion that could trigger during a fatal exit (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.19/changes/003", "db_id": "5cd648610ff81e672a3935e98852c494", "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746", "relations": [{"rule": 2, "type": "equivalent", "target": "2cdb4a28a33a0e8815255ea6e190bbd9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}, {"rule": 2, "type": "equivalent", "target": "84ef0ccd288d161ff09bbdcb5dffb3aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}, {"rule": 2, "type": "equivalent", "target": "88259e18f9ffa0f282e9828e4a46b4a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}, {"rule": 2, "type": "equivalent", "target": "b49d786050cef1b1d115cc3aa5cd1454", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}], "version": "9.3.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "88259e18f9ffa0f282e9828e4a46b4a0", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "移除致命退出期间可能触发的断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.6.5#9.6.5-b5e135b3d4add397", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5"}, {"db_id": "b49d786050cef1b1d115cc3aa5cd1454", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "移除致命退出期间可能触发的断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.5.9#9.5.9-b5e135b3d4add397", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "84ef0ccd288d161ff09bbdcb5dffb3aa", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "移除在致命退出期间可能触发的断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.4.14#9.4.14-b12d68766d941918", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "2cdb4a28a33a0e8815255ea6e190bbd9", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "移除致命退出期间可能触发的断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.2.23#9.2.23-b5e135b3d4add397", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}, {"id": "9.3.19-8a8b1213bb73a969", "cves": [], "html": "<p>正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列（Tom Lane）</p>\n<p>某些更改复合类型或域类型定义的 <code>ALTER</code> 命令本应在该类型有存储值时失败，因为它们缺少更新或检查这类值所需的基础设施。此前这些检查可能遗漏包裹在范围类型或子域中的相关值，可能允许数据度变得不一致。</p>", "text": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列（Tom Lane） 某些更改复合类型或域类型定义的 ALTER 命令本应在该类型有存储值时失败，因为它们缺少更新或检查这类值所需的基础设施。此前这些检查可能遗漏包裹在范围类型或子域中的相关值，可能允许数据度变得不一致。", "title": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5", "source_hash": "68cb04192ccd10ed71b705479def628535e76cb647a7ab57223e684259620f52", "section_path": ["变更"], "commit_groups": [], "identity_text": "Correctly identify columns that are of a range type or domain type over a composite type or domain type being searched for (Tom Lane) Certain ALTER commands that change the definition of a composite type or domain type are supposed to fail if there are any stored values of that type in the database, because they lack the infrastructure needed to update or check such values. Previously, these checks could miss relevant values that are wrapped inside range types or sub-domains, possibly allowing the database to become inconsistent.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.19/changes/004", "db_id": "71abe7ea8efc33852b4ca5c481f21278", "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761", "relations": [{"rule": 2, "type": "equivalent", "target": "73b62edc7cc658789a1495105b92e2ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}, {"rule": 2, "type": "equivalent", "target": "74a0658a15a01d0c31a8ba50bc811e75", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}, {"rule": 2, "type": "equivalent", "target": "7bf0fd5e8efbe5ef59a9cb0f0755f90c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}, {"rule": 2, "type": "equivalent", "target": "e9c971ac5fd2b5a201825b0c71b7aa87", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}], "version": "9.3.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7bf0fd5e8efbe5ef59a9cb0f0755f90c", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.6.5#9.6.5-8a8b1213bb73a969", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5"}, {"db_id": "73b62edc7cc658789a1495105b92e2ad", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.5.9#9.5.9-8a8b1213bb73a969", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "74a0658a15a01d0c31a8ba50bc811e75", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.4.14#9.4.14-8a8b1213bb73a969", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "e9c971ac5fd2b5a201825b0c71b7aa87", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.2.23#9.2.23-8a8b1213bb73a969", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}, {"id": "9.3.19-39612b25468b2136", "cves": [], "html": "<p>修复使用并行模式并使用列表文件选择要恢复条目子集时 <span>pg_restore</span> 的崩溃（Fabrízio de Royes Mello）</p>", "text": "修复使用并行模式并使用列表文件选择要恢复条目子集时 pg_restore 的崩溃（Fabrízio de Royes Mello）", "title": "修复使用并行模式并使用列表文件选择要恢复条目子集时 pg_restore 的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5", "source_hash": "66299ab24a5d8f4bf348b82182d74ca2367cec65261ca3797794a5dc6ef4ac40", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash in pg_restore when using parallel mode and using a list file to select a subset of items to restore (Fabrízio de Royes Mello)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.19/changes/005", "db_id": "4973f8791ad7072a5b7268ac69880153", "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d", "relations": [{"rule": 2, "type": "equivalent", "target": "4b7b3c5c5d968e316d42a993dd32277e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}}, {"rule": 2, "type": "equivalent", "target": "809b5e89cd8a08302229e2aa81106597", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}}, {"rule": 2, "type": "equivalent", "target": "f651852ac99a0a35375d12de814e3e9c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}}], "version": "9.3.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b7b3c5c5d968e316d42a993dd32277e", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "修复使用并行模式并使用列表文件选择要恢复条目子集时 pg_restore 的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}, "url": "/docs/compare/?release=9.6.5#9.6.5-39612b25468b2136", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5"}, {"db_id": "f651852ac99a0a35375d12de814e3e9c", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "修复使用并行模式并使用列表文件选择要恢复条目子集时 pg_restore 的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}, "url": "/docs/compare/?release=9.5.9#9.5.9-39612b25468b2136", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "809b5e89cd8a08302229e2aa81106597", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "修复pg_restore在使用并行模式并使用列表文件选择要还原项的子集时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}, "url": "/docs/compare/?release=9.4.14#9.4.14-3003c9e1be66c736", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}]}, {"id": "9.3.19-a2c9ce6a936c154a", "cves": [], "html": "<p>更改 <span>ecpg</span> 的解析器允许不带 C 变量的 <code>RETURNING</code> 子句（Michael Meskes）</p>\n<p>这允许 <span>ecpg</span> 程序包含在内部使用 <code>RETURNING</code>（例如在 CTE 内）而不是用它定义返回给客户端的值的 SQL 构造。</p>", "text": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句（Michael Meskes） 这允许 ecpg 程序包含在内部使用 RETURNING（例如在 CTE 内）而不是用它定义返回给客户端的值的 SQL 构造。", "title": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5", "source_hash": "9038445fd611f6a759ecdf14589ab9dd055e382b685bba52f3852dfff93584c0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Change ecpg's parser to allow RETURNING clauses without attached C variables (Michael Meskes) This allows ecpg programs to contain SQL constructs that use RETURNING internally (for example, inside a CTE) rather than using it to define values to be returned to the client.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.19/changes/006", "db_id": "397743f1137bc45382759daafaf3e467", "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348", "relations": [{"rule": 2, "type": "equivalent", "target": "1c903c2b45dfeb3c4c69edb715182ffc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}, {"rule": 2, "type": "equivalent", "target": "8b053a8e0c87c6b9951b5c4833080e89", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}, {"rule": 2, "type": "equivalent", "target": "cff3c4860563f6b8bc8a0dd39b1e7d98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}, {"rule": 2, "type": "equivalent", "target": "dcfd6b1086dc12dab1f710cc7cc1e6cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}], "version": "9.3.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cff3c4860563f6b8bc8a0dd39b1e7d98", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.6.5#9.6.5-a2c9ce6a936c154a", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5"}, {"db_id": "dcfd6b1086dc12dab1f710cc7cc1e6cf", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.5.9#9.5.9-a2c9ce6a936c154a", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "8b053a8e0c87c6b9951b5c4833080e89", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.4.14#9.4.14-a2c9ce6a936c154a", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "1c903c2b45dfeb3c4c69edb715182ffc", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.2.23#9.2.23-a2c9ce6a936c154a", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}, {"id": "9.3.19-59c8a1aebc0aeb07", "cves": [], "html": "<p>改进 Windows 上 PL/Perl 编译器标志的选择（Tom Lane）</p>\n<p>此修复避免了因对 <code>time_t</code> 值宽度的假定不一致而可能的 PL/Perl 崩溃。扩展开发者可能看到的一个副作用是 <code>_USE_32BIT_TIME_T</code> 不再在 <span>PostgreSQL</span> Windows 构建中全局定义。这预计不会引起问题，因为 <code>time_t</code> 类型没有用于任何 <span>PostgreSQL</span> API 定义。</p>", "text": "改进 Windows 上 PL/Perl 编译器标志的选择（Tom Lane） 此修复避免了因对 time_t 值宽度的假定不一致而可能的 PL/Perl 崩溃。扩展开发者可能看到的一个副作用是 _USE_32BIT_TIME_T 不再在 PostgreSQL Windows 构建中全局定义。这预计不会引起问题，因为 time_t 类型没有用于任何 PostgreSQL API 定义。", "title": "改进 Windows 上 PL/Perl 编译器标志的选择", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5", "source_hash": "5522284459af55ecc5bd039bfa2c5bffca555438b4b966714cfd04cf34cb26c5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve selection of compiler flags for PL/Perl on Windows (Tom Lane) This fix avoids possible crashes of PL/Perl due to inconsistent assumptions about the width of time_t values. A side-effect that may be visible to extension developers is that _USE_32BIT_TIME_T is no longer defined globally in PostgreSQL Windows builds. This is not expected to cause problems, because type time_t is not used in any PostgreSQL API definitions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.19/changes/007", "db_id": "a8ad0fb10f04704616588a82af98dbff", "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66", "relations": [{"rule": 2, "type": "equivalent", "target": "174ebed95fdf320d91b3db9f71a9265a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}, {"rule": 2, "type": "equivalent", "target": "f490072174f6dab4a7f5d5d01709bc8c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}, {"rule": 2, "type": "equivalent", "target": "fc4dc1c8fda86f29580edb9411bbad9a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}, {"rule": 2, "type": "equivalent", "target": "ff5f500a1e1a883ae5db2f02f35c34a3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}], "version": "9.3.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "174ebed95fdf320d91b3db9f71a9265a", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "改进 Windows 上 PL/Perl 编译器标志的选择", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.6.5#9.6.5-59c8a1aebc0aeb07", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5"}, {"db_id": "ff5f500a1e1a883ae5db2f02f35c34a3", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "改进 Windows 上 PL/Perl 编译器标志的选择", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.5.9#9.5.9-59c8a1aebc0aeb07", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "fc4dc1c8fda86f29580edb9411bbad9a", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "改进 Windows 上 PL/Perl 编译器标志的选择", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.4.14#9.4.14-59c8a1aebc0aeb07", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "f490072174f6dab4a7f5d5d01709bc8c", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "改进 Windows 上 PL/Perl 编译器标志的选择", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.2.23#9.2.23-59c8a1aebc0aeb07", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}]}, {"date": "2017-08-10", "build": "9.3.18", "major": "9.3", "minor": 18, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.18", "eol_date": "2018-11-08", "date_text": "2017-08-10", "supported": false, "manual_url": "/docs/9.3/release-9-3-18.html", "source_url": "/docs/release/9.3.18/", "entry_count": 41, "placeholder": false, "content_hash": "6b64cd4593237813db592e96c5e1bcedc7f03085dad95fb7c5ad600107668be8", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 41, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>但是，如果你使用的外部数据服务器依赖用户密码进行认证，请参见下面的第一条变更日志条目。</p>\n<p>不过，如果你是从早于 9.3.16 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-16.html\" title=\"E.10. 版本 9.3.16\">第 E.10 节</a>。</p>", "compatibility_count": 0, "label": "9.3.18", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3338, "support_days": -2883, "entries": [{"id": "9.3.18-a79358365b635764", "cves": ["CVE-2017-7486", "CVE-2017-7547"], "html": "<p>进一步限制 <code>pg_user_mappings</code>.<code>umoptions</code> 的可见性，以保护存储为用户映射选项的密码（Noah Misch）</p>\n<p>CVE-2017-7486 的修复不正确：它允许用户看到她自己用户映射中的选项，即使她对相关外部服务器没有 <code>USAGE</code> 权限。这种选项可能包含由服务器所有者而非用户自己提供的密码。由于 <code>information_schema.user_mapping_options</code> 在这种情况下不显示选项，<code>pg_user_mappings</code> 也不应该。（CVE-2017-7547）</p>\n<p>此补丁本身只会修复新 initdb 的数据库中的行为。如果希望在现有数据库中应用此更改，需要执行以下操作：</p>\n<div>\n<ol type=\"1\">\n<li>\n<p>在 <code>postgresql.conf</code> 中添加 <code>allow_system_table_mods = true</code> 后重启 postmaster。（在支持 <code>ALTER SYSTEM</code> 的版本中，可以用它进行配置更改，但仍需重启。）</p>\n</li>\n<li>\n<p>在集簇的<span><em>每个</em></span>数据库中，以超级用户身份运行以下命令：</p>\n<pre>SET search_path = pg_catalog;\nCREATE OR REPLACE VIEW pg_user_mappings AS\nSELECT U.oid AS umid, S.oid AS srvid, S.srvname AS srvname,\n       U.umuser AS umuser,\n       CASE WHEN U.umuser = 0 THEN 'public' ELSE A.rolname END AS usename,\n       CASE WHEN (U.umuser &lt;&gt; 0 AND A.rolname = current_user\n                   AND (pg_has_role(S.srvowner, 'USAGE')\n                        OR has_server_privilege(S.oid, 'USAGE')))\n                OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE'))\n                OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)\n            THEN U.umoptions ELSE NULL END AS umoptions\nFROM pg_user_mapping U\n     LEFT JOIN pg_authid A ON (A.oid = U.umuser)\n     JOIN pg_foreign_server S ON (U.umserver = S.oid);\n</pre></li>\n<li>\n<p>不要忘记包括 <code>template0</code> 和 <code>template1</code> 数据库，否则漏洞仍会存在于之后创建的数据库中。要修复 <code>template0</code>，需要暂时让它接受连接。在 <span>PostgreSQL</span> 9.5 及之后，可以使用</p>\n<pre>ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;\n</pre>\n<p>修复 <code>template0</code> 之后再撤销：</p>\n<pre>ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;\n</pre>\n<p>在更早的版本中，改用：</p>\n<pre>UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';\nUPDATE pg_database SET datallowconn = false WHERE datname = 'template0';\n</pre></li>\n<li>\n<p>最后，移除 <code>allow_system_table_mods</code> 配置设置，并再次重启 postmaster。</p>\n</li>\n</ol>\n</div>", "text": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码（Noah Misch） CVE-2017-7486 的修复不正确：它允许用户看到她自己用户映射中的选项，即使她对相关外部服务器没有 USAGE 权限。这种选项可能包含由服务器所有者而非用户自己提供的密码。由于 information_schema.user_mapping_options 在这种情况下不显示选项，pg_user_mappings 也不应该。（CVE-2017-7547） 此补丁本身只会修复新 initdb 的数据库中的行为。如果希望在现有数据库中应用此更改，需要执行以下操作： 在 postgresql.conf 中添加 allow_system_table_mods = true 后重启 postmaster。（在支持 ALTER SYSTEM 的版本中，可以用它进行配置更改，但仍需重启。） 在集簇的每个数据库中，以超级用户身份运行以下命令： SET search_path = pg_catalog; CREATE OR REPLACE VIEW pg_user_mappings AS SELECT U.oid AS umid, S.oid AS srvid, S.srvname AS srvname, U.umuser AS umuser, CASE WHEN U.umuser = 0 THEN 'public' ELSE A.rolname END AS usename, CASE WHEN (U.umuser <> 0 AND A.rolname = current_user AND (pg_has_role(S.srvowner, 'USAGE') OR has_server_privilege(S.oid, 'USAGE'))) OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE')) OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user) THEN U.umoptions ELSE NULL END AS umoptions FROM pg_user_mapping U LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN pg_foreign_server S ON (U.umserver = S.oid); 不要忘记包括 template0 和 template1 数据库，否则漏洞仍会存在于之后创建的数据库中。要修复 template0，需要暂时让它接受连接。在 PostgreSQL 9.5 及之后，可以使用 ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; 修复 template0 之后再撤销： ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; 在更早的版本中，改用： UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'; UPDATE pg_database SET datallowconn = false WHERE datname = 'template0'; 最后，移除 allow_system_table_mods 配置设置，并再次重启 postmaster。", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "ff27cd86a1c520129bad55afba59e27d5b755a18516a627315cc065cc459d84e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Further restrict visibility of pg_user_mappings.umoptions, to protect passwords stored as user mapping options (Noah Misch) The fix for CVE-2017-7486 was incorrect: it allowed a user to see the options in her own user mapping, even if she did not have USAGE permission on the associated foreign server. Such options might include a password that had been provided by the server owner rather than the user herself. Since information_schema.user_mapping_options does not show the options in such cases, pg_user_mappings should not either. (CVE-2017-7547) By itself, this patch will only fix the behavior in newly initdb'd databases. If you wish to apply this change in an existing database, you will need to do the following: Restart the postmaster after adding allow_system_table_mods = true to postgresql.conf. (In versions supporting ALTER SYSTEM, you can use that to make the configuration change, but you'll still need a restart.) In each database of the cluster, run the following commands as superuser: SET search_path = pg_catalog; CREATE OR REPLACE VIEW pg_user_mappings AS SELECT U.oid AS umid, S.oid AS srvid, S.srvname AS srvname, U.umuser AS umuser, CASE WHEN U.umuser = 0 THEN 'public' ELSE A.rolname END AS usename, CASE WHEN (U.umuser <> 0 AND A.rolname = current_user AND (pg_has_role(S.srvowner, 'USAGE') OR has_server_privilege(S.oid, 'USAGE'))) OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE')) OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user) THEN U.umoptions ELSE NULL END AS umoptions FROM pg_user_mapping U LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN pg_foreign_server S ON (U.umserver = S.oid); Do not forget to include the template0 and template1 databases, or the vulnerability will still exist in databases you create later. To fix template0, you'll need to temporarily make it accept connections. In PostgreSQL 9.5 and later, you can use ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; and then after fixing template0, undo that with ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; In prior versions, instead use UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'; UPDATE pg_database SET datallowconn = false WHERE datname = 'template0'; Finally, remove the allow_system_table_mods configuration setting, and again restart the postmaster.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/001", "db_id": "d9c8c2d5f382f57bd292b9414c97967a", "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731", "relations": [{"rule": 2, "type": "equivalent", "target": "1855f0a3638d5064133d7c655b6801a8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}, {"rule": 2, "type": "equivalent", "target": "1e69271813fc4ef5d63b790ce20c8121", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}, {"rule": 2, "type": "equivalent", "target": "21b6568d8ef3f87de08e2d1aeba27c01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}, {"rule": 2, "type": "equivalent", "target": "e1a74c8d75ca403b9d0629f7fef87947", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}], "version": "9.3.18", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e69271813fc4ef5d63b790ce20c8121", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.6.4#9.6.4-a79358365b635764", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "e1a74c8d75ca403b9d0629f7fef87947", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.5.8#9.5.8-a79358365b635764", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "21b6568d8ef3f87de08e2d1aeba27c01", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.4.13#9.4.13-a79358365b635764", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "1855f0a3638d5064133d7c655b6801a8", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.2.22#9.2.22-a79358365b635764", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-49a2f6860ca3f76c", "cves": ["CVE-2017-7546"], "html": "<p>禁止在所有基于密码的认证方法中使用空密码（Heikki Linnakangas）</p>\n<p><span>libpq</span> 忽略空的密码说明，不把它们传输给服务器。因此，如果用户的密码被设为空字符串，就无法通过 <span>psql</span> 或其他基于 <span>libpq</span> 的客户端用该密码登录。管理员可能因此认为把密码设为空等同于禁用密码登录。然而，使用修改过的或非 <span>libpq</span> 的客户端，登录可能是可能的，这取决于配置的认证方法。特别是最常见的方法 <code>md5</code> 接受空密码。更改服务器在所有情况下拒绝空密码。（CVE-2017-7546）</p>", "text": "禁止在所有基于密码的认证方法中使用空密码（Heikki Linnakangas） libpq 忽略空的密码说明，不把它们传输给服务器。因此，如果用户的密码被设为空字符串，就无法通过 psql 或其他基于 libpq 的客户端用该密码登录。管理员可能因此认为把密码设为空等同于禁用密码登录。然而，使用修改过的或非 libpq 的客户端，登录可能是可能的，这取决于配置的认证方法。特别是最常见的方法 md5 接受空密码。更改服务器在所有情况下拒绝空密码。（CVE-2017-7546）", "title": "禁止在所有基于密码的认证方法中使用空密码", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "8248bb9ae98d7c7f6107b1a29e599c5699a3a9932a2023ee4404ccaa41caa29e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disallow empty passwords in all password-based authentication methods (Heikki Linnakangas) libpq ignores empty password specifications, and does not transmit them to the server. So, if a user's password has been set to the empty string, it's impossible to log in with that password via psql or other libpq-based clients. An administrator might therefore believe that setting the password to empty is equivalent to disabling password login. However, with a modified or non-libpq-based client, logging in could be possible, depending on which authentication method is configured. In particular the most common method, md5, accepted empty passwords. Change the server to reject empty passwords in all cases. (CVE-2017-7546)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/002", "db_id": "84b04fd1018199fb6cd762ee8453dc5c", "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70", "relations": [{"rule": 2, "type": "equivalent", "target": "25dc2f083ab66c1e49733c8097ace563", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}, {"rule": 2, "type": "equivalent", "target": "40acd6d17343ed4ffc6e174a3ba3d54b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}, {"rule": 2, "type": "equivalent", "target": "69397c3edcff5d4d9add77abd127c3c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}, {"rule": 2, "type": "equivalent", "target": "fa4d8a03c1f22fe89447983939f7c916", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}], "version": "9.3.18", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "40acd6d17343ed4ffc6e174a3ba3d54b", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.6.4#9.6.4-49a2f6860ca3f76c", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "fa4d8a03c1f22fe89447983939f7c916", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.5.8#9.5.8-49a2f6860ca3f76c", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "25dc2f083ab66c1e49733c8097ace563", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.4.13#9.4.13-49a2f6860ca3f76c", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "69397c3edcff5d4d9add77abd127c3c7", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.2.22#9.2.22-49a2f6860ca3f76c", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-1d168da8c9ffffeb", "cves": [], "html": "<p>修复元组更新链的并发锁定（Álvaro Herrera）</p>\n<p>如果多个会话用非冲突锁模式并使用旧快照并发锁定一条元组更新链，且都成功，由于竞态条件其中一些仍可能失败（并得出没有存活元组版本的结论）。这会导致诸如外键检查看不到一个确实存在但正被并发更新的元组之类的后果。</p>", "text": "修复元组更新链的并发锁定（Álvaro Herrera） 如果多个会话用非冲突锁模式并使用旧快照并发锁定一条元组更新链，且都成功，由于竞态条件其中一些仍可能失败（并得出没有存活元组版本的结论）。这会导致诸如外键检查看不到一个确实存在但正被并发更新的元组之类的后果。", "title": "修复元组更新链的并发锁定", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "09ab48af004bced82e67cb239cc8d847ea0a0e517d28a4b372e6e2552e3708fe", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix concurrent locking of tuple update chains (Álvaro Herrera) If several sessions concurrently lock a tuple update chain with nonconflicting lock modes using an old snapshot, and they all succeed, it was possible for some of them to nonetheless fail (and conclude there is no live tuple version) due to a race condition. This had consequences such as foreign-key checks failing to see a tuple that definitely exists but is being updated concurrently.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/003", "db_id": "8226a3ad10843c3de2b89569870d5b73", "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907", "relations": [{"rule": 2, "type": "equivalent", "target": "26f8fce38455ae9b217177c8d0dc47a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}}, {"rule": 2, "type": "equivalent", "target": "5021acaa49f542ee7a1757b451c26dd4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}}, {"rule": 2, "type": "equivalent", "target": "cc57bf2a68570429ea08bcb73f511f0d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5021acaa49f542ee7a1757b451c26dd4", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复元组更新链的并发锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}, "url": "/docs/compare/?release=9.6.4#9.6.4-1d168da8c9ffffeb", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "cc57bf2a68570429ea08bcb73f511f0d", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复元组更新链的并发锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}, "url": "/docs/compare/?release=9.5.8#9.5.8-1d168da8c9ffffeb", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "26f8fce38455ae9b217177c8d0dc47a1", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复元组更新链的并发锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}, "url": "/docs/compare/?release=9.4.13#9.4.13-1d168da8c9ffffeb", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.3.18-bc9d450fb60692a1", "cves": [], "html": "<p>修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏（Teodor Sigaev）</p>", "text": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏（Teodor Sigaev）", "title": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "0219e411afd84f943e4928ecd85c613f0a65155439a719d164cb293aedc16d53", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix potential data corruption when freezing a tuple whose XMAX is a multixact with exactly one still-interesting member (Teodor Sigaev)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/004", "db_id": "6474732a344a1a3c98e4d8c98d30ccdc", "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a", "relations": [{"rule": 2, "type": "equivalent", "target": "3468fa6a3ba50966f59fc08c2e94add7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}}, {"rule": 2, "type": "equivalent", "target": "dd3dc6a49e24957cea1d5623a01d9d3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}}, {"rule": 2, "type": "equivalent", "target": "edf521238b1e56374b823c0a408a8139", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3468fa6a3ba50966f59fc08c2e94add7", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}, "url": "/docs/compare/?release=9.6.4#9.6.4-bc9d450fb60692a1", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "edf521238b1e56374b823c0a408a8139", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}, "url": "/docs/compare/?release=9.5.8#9.5.8-bc9d450fb60692a1", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "dd3dc6a49e24957cea1d5623a01d9d3a", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复冻结 XMAX 为恰好剩一个仍受关注成员的多事务的元组时潜在的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}, "url": "/docs/compare/?release=9.4.13#9.4.13-a8968bf371130f39", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.3.18-5dfe6c5122301e0b", "cves": [], "html": "<p>在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建（Tom Lane、Amit Kapila）</p>\n<p>这有望修复可能由杀毒产品干扰导致的偶发子进程启动失败。</p>", "text": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建（Tom Lane、Amit Kapila） 这有望修复可能由杀毒产品干扰导致的偶发子进程启动失败。", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "30173b70198bc163091da081bf7b12117fe6a84d9f59eaf9813b80aaa7bbe4b0", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, retry process creation if we fail to reserve the address range for our shared memory in the new process (Tom Lane, Amit Kapila) This is expected to fix infrequent child-process-launch failures that are probably due to interference from antivirus products.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/005", "db_id": "1f54690bed7a1b61467c57f4ea6f33d6", "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d", "relations": [{"rule": 2, "type": "equivalent", "target": "34e6cdf1912ffe330979dc21077c6288", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}, {"rule": 2, "type": "equivalent", "target": "6e4ce1f4ea2cf3f7543b8266c9528f74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}, {"rule": 2, "type": "equivalent", "target": "a5446aca19df9fcf6d2f1d6ee8cecb2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}, {"rule": 2, "type": "equivalent", "target": "faf48774cbb82fce5982d2b859f20fb1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6e4ce1f4ea2cf3f7543b8266c9528f74", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.6.4#9.6.4-5dfe6c5122301e0b", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "faf48774cbb82fce5982d2b859f20fb1", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5dfe6c5122301e0b", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "34e6cdf1912ffe330979dc21077c6288", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5dfe6c5122301e0b", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "a5446aca19df9fcf6d2f1d6ee8cecb2c", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5dfe6c5122301e0b", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-2e59d8bea64c1b73", "cves": [], "html": "<p>修复 Windows 构建中共享谓词锁哈希表的低概率损坏（Thomas Munro、Tom Lane）</p>", "text": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏（Thomas Munro、Tom Lane）", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "7f9cf9390d655655479021cd4c9b40c67193aa46222bd50edc5134b6aa71f607", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix low-probability corruption of shared predicate-lock hash table in Windows builds (Thomas Munro, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/006", "db_id": "ccc80b8375366a40f739144083dec4bb", "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89", "relations": [{"rule": 2, "type": "equivalent", "target": "61aff00b2cbd0d0a19f4de9c64161e33", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}, {"rule": 2, "type": "equivalent", "target": "6239e85838c4defd9c242c9736aac6dc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}, {"rule": 2, "type": "equivalent", "target": "c80803c6d4d1147a93d5b23d67970907", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}, {"rule": 2, "type": "equivalent", "target": "eb123644d0d25507fd759fba8b23f35d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "eb123644d0d25507fd759fba8b23f35d", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.6.4#9.6.4-2e59d8bea64c1b73", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "c80803c6d4d1147a93d5b23d67970907", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.5.8#9.5.8-2e59d8bea64c1b73", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "6239e85838c4defd9c242c9736aac6dc", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 Windows 构建中共享谓词锁哈希表低概率损坏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.4.13#9.4.13-cb90a7f53e5f1214", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "61aff00b2cbd0d0a19f4de9c64161e33", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.2.22#9.2.22-2e59d8bea64c1b73", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-63ce467ec91a76ba", "cves": [], "html": "<p>避免把 SSL 连接的干净关闭当作连接重置来记录（Michael Paquier）</p>", "text": "避免把 SSL 连接的干净关闭当作连接重置来记录（Michael Paquier）", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "53e88465fcea0477573d776fc07588d69640980c2daf9729a2ba1e5a51c27c03", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid logging clean closure of an SSL connection as though it were a connection reset (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/007", "db_id": "e26440dbe5fa41f21ec2cfb7ea515129", "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e", "relations": [{"rule": 2, "type": "equivalent", "target": "4f1ca4a9b4544c5f9b0e201f593b00fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}, {"rule": 2, "type": "equivalent", "target": "7890ed06f30afa11b324e730a77920d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}, {"rule": 2, "type": "equivalent", "target": "796e639d993fe8aa9c00c2a6cb32a298", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}, {"rule": 2, "type": "equivalent", "target": "9f43dcd8e33a849f63af81136e8cffc4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9f43dcd8e33a849f63af81136e8cffc4", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.6.4#9.6.4-63ce467ec91a76ba", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "7890ed06f30afa11b324e730a77920d4", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.5.8#9.5.8-63ce467ec91a76ba", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "4f1ca4a9b4544c5f9b0e201f593b00fb", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "避免把 SSL 连接的正常关闭记录成连接重置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.4.13#9.4.13-4aec39eb8163f31f", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "796e639d993fe8aa9c00c2a6cb32a298", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.2.22#9.2.22-63ce467ec91a76ba", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-e308e1857bff9246", "cves": [], "html": "<p>防止向客户端发送 SSL 会话票据（Tom Lane）</p>\n<p>此修复防止使用票据感知的客户端 SSL 代码时的重连失败。</p>", "text": "防止向客户端发送 SSL 会话票据（Tom Lane） 此修复防止使用票据感知的客户端 SSL 代码时的重连失败。", "title": "防止向客户端发送 SSL 会话票据", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "2abe4c8fcdb34c7a7eb14003b7ba1b3eb52dd942e31832abe0b4ff675b2c0435", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent sending SSL session tickets to clients (Tom Lane) This fix prevents reconnection failures with ticket-aware client-side SSL code.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/008", "db_id": "57c80424a5c5a39644fe6b251c9bbd11", "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5", "relations": [{"rule": 2, "type": "equivalent", "target": "06ca50c6c2100c6be604facd02221004", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}, {"rule": 2, "type": "equivalent", "target": "5417fe28a58f02892e6f851554b173dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}, {"rule": 2, "type": "equivalent", "target": "78fa3aaa5d85ae9fdccb058afe139d92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}, {"rule": 2, "type": "equivalent", "target": "a327202592f6a57881437263d94073b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a327202592f6a57881437263d94073b8", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.6.4#9.6.4-e308e1857bff9246", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "78fa3aaa5d85ae9fdccb058afe139d92", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.5.8#9.5.8-e308e1857bff9246", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "5417fe28a58f02892e6f851554b173dd", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e308e1857bff9246", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "06ca50c6c2100c6be604facd02221004", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.2.22#9.2.22-e308e1857bff9246", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-3e28052d9d329d76", "cves": [], "html": "<p>修复 Solaris 上设置<a href=\"/docs/9.3/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE\">tcp_keepalives_idle</a>的代码（Tom Lane）</p>", "text": "修复 Solaris 上设置tcp_keepalives_idle的代码（Tom Lane）", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "fec118f3dcb96c331ac64b99c1c79030261d966062a397ec2b995385687f10f2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix code for setting guc-tcp-keepalives-idle on Solaris (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/009", "db_id": "b1f9de21bc12b73cf6518cf2a56f48d1", "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a", "relations": [{"rule": 2, "type": "equivalent", "target": "1c7bb3243d9e68418b27efa10792167f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}, {"rule": 2, "type": "equivalent", "target": "3d12e09651fa92dc3d7691e748c23b13", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}, {"rule": 2, "type": "equivalent", "target": "ad20c605290795b78b75dfa2c7ca72c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}, {"rule": 2, "type": "equivalent", "target": "edff4867a55a25f16f546d52b212e769", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3d12e09651fa92dc3d7691e748c23b13", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.6.4#9.6.4-3e28052d9d329d76", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "1c7bb3243d9e68418b27efa10792167f", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.5.8#9.5.8-3e28052d9d329d76", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "ad20c605290795b78b75dfa2c7ca72c9", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.4.13#9.4.13-3e28052d9d329d76", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "edff4867a55a25f16f546d52b212e769", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.2.22#9.2.22-3e28052d9d329d76", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-57c375774ebad3a1", "cves": [], "html": "<p>修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息（Tom Lane）</p>\n<p>在上一个 postmaster 关闭之后半秒内发出的统计查询实际上被忽略。</p>", "text": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息（Tom Lane） 在上一个 postmaster 关闭之后半秒内发出的统计查询实际上被忽略。", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "9956de488f39f20929da3610321f6e6d5e5f109cf89e802f825285ce4d11ef14", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix statistics collector to honor inquiry messages issued just after a postmaster shutdown and immediate restart (Tom Lane) Statistics inquiries issued within half a second of the previous postmaster shutdown were effectively ignored.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/010", "db_id": "e6cd54250e39c6ba75fa8dfed50a9202", "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da", "relations": [{"rule": 2, "type": "equivalent", "target": "35d154df872964bdd172e06e7cc7b5e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}, {"rule": 2, "type": "equivalent", "target": "52169b7dd014d33786c85566c9719250", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}, {"rule": 2, "type": "equivalent", "target": "6ea6bdb3b1c0b91370098bb4050cdf5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}, {"rule": 2, "type": "equivalent", "target": "c7939f5f09e159955353f7b29c36efbb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "52169b7dd014d33786c85566c9719250", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.6.4#9.6.4-57c375774ebad3a1", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "c7939f5f09e159955353f7b29c36efbb", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.5.8#9.5.8-57c375774ebad3a1", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "35d154df872964bdd172e06e7cc7b5e7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.4.13#9.4.13-57c375774ebad3a1", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "6ea6bdb3b1c0b91370098bb4050cdf5a", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.2.22#9.2.22-57c375774ebad3a1", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-20b9745916abac09", "cves": [], "html": "<p>确保统计收集器的接收缓冲区大小至少为 100KB（Tom Lane）</p>\n<p>这降低了默认接收缓冲区大小小于该值的老平台上统计数据丢失的风险。</p>", "text": "确保统计收集器的接收缓冲区大小至少为 100KB（Tom Lane） 这降低了默认接收缓冲区大小小于该值的老平台上统计数据丢失的风险。", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "bc28841b783ed44c6a7f1eae3e69ce67b6e58e49c4dccbc3357599103a028c3f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that the statistics collector's receive buffer size is at least 100KB (Tom Lane) This reduces the risk of dropped statistics data on older platforms whose default receive buffer size is less than that.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/011", "db_id": "3c2dba8fca8015ec95edd7b7e1ef5a4e", "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28", "relations": [{"rule": 2, "type": "equivalent", "target": "35b5f7b5058aa8d2a991d9b4a8b37c93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}, {"rule": 2, "type": "equivalent", "target": "45f8a1f14d7479817e647f93ea3147f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}, {"rule": 2, "type": "equivalent", "target": "8aec425eef081d0f371de4d506db4c6d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}, {"rule": 2, "type": "equivalent", "target": "cebabf83bae7e2378ddea14ff545ac6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "35b5f7b5058aa8d2a991d9b4a8b37c93", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.6.4#9.6.4-20b9745916abac09", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "45f8a1f14d7479817e647f93ea3147f0", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.5.8#9.5.8-20b9745916abac09", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "8aec425eef081d0f371de4d506db4c6d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.4.13#9.4.13-20b9745916abac09", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "cebabf83bae7e2378ddea14ff545ac6f", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.2.22#9.2.22-20b9745916abac09", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-b0bf0f68f2bb1135", "cves": [], "html": "<p>修复备库刚处理完 <code>XLOG_SWITCH</code> WAL 记录后被提升时可能创建无效 WAL 段的问题（Andres Freund）</p>", "text": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题（Andres Freund）", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "ca9ba11203518b139925d9df40a7e7bb3657cf9076dea7334653f7be30eece14", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible creation of an invalid WAL segment when a standby is promoted just after it processes an XLOG_SWITCH WAL record (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/012", "db_id": "027472daca45d7d3ca1dda4accfbe514", "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805", "relations": [{"rule": 2, "type": "equivalent", "target": "1ebe514120103dc5eb1fb4461713c100", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}, {"rule": 2, "type": "equivalent", "target": "2f2e0bd47f601d6acf0caa11807655ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}, {"rule": 2, "type": "equivalent", "target": "3343b117e454cf984aadbcbf1c224c1b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}, {"rule": 2, "type": "equivalent", "target": "a167acf8e40e68b1306d951f121d3e0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2f2e0bd47f601d6acf0caa11807655ce", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.6.4#9.6.4-b0bf0f68f2bb1135", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "3343b117e454cf984aadbcbf1c224c1b", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.5.8#9.5.8-b0bf0f68f2bb1135", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "1ebe514120103dc5eb1fb4461713c100", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复备库在刚处理完XLOG_SWITCHWAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.4.13#9.4.13-11f60c94267d3d32", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "a167acf8e40e68b1306d951f121d3e0f", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.2.22#9.2.22-b0bf0f68f2bb1135", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-7869db2756522ed5", "cves": [], "html": "<p>修复 walsender 进程中的 <span>SIGHUP</span> 和 <span>SIGUSR1</span> 处理（Petr Jelinek、Andres Freund）</p>", "text": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理（Petr Jelinek、Andres Freund）", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "cbbab86f9386b50e227ff4b330aef07fb65cdbb997cd0fd0d25e39155a1b6feb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix SIGHUP and SIGUSR1 handling in walsender processes (Petr Jelinek, Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/013", "db_id": "e495da6486bd8be4e4c26d6e5086beee", "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1", "relations": [{"rule": 2, "type": "equivalent", "target": "3a37a29c34d6f5d73ccb334bdba07088", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}, {"rule": 2, "type": "equivalent", "target": "56fbd01576e12b75269896592fa2c8c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}, {"rule": 2, "type": "equivalent", "target": "ff38a637d151641073b6f2871680809f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}, {"rule": 2, "type": "equivalent", "target": "ff55a48b73c00e42d28e3b52fe55af78", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3a37a29c34d6f5d73ccb334bdba07088", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.6.4#9.6.4-7869db2756522ed5", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "ff55a48b73c00e42d28e3b52fe55af78", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7869db2756522ed5", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "56fbd01576e12b75269896592fa2c8c7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 walsender 进程中SIGHUP和SIGUSR1的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e99abd2807b726be", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "ff38a637d151641073b6f2871680809f", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7869db2756522ed5", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-d0bce37763b84970", "cves": [], "html": "<p>修复 postmaster 中竞态条件导致的 <span>walreceiver</span> 进程不必要的缓慢重启（Tom Lane）</p>", "text": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启（Tom Lane）", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "d155bf26045724e6fc5a975d34c0203a49c4cabe5fc4c4273be64585a16d9001", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix unnecessarily slow restarts of walreceiver processes due to race condition in postmaster (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/014", "db_id": "bc1b64b2ca3671e5b73d363e398be023", "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6", "relations": [{"rule": 2, "type": "equivalent", "target": "0cb3087fae06393bc7f76e6cbe7ded78", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}, {"rule": 2, "type": "equivalent", "target": "2c27a0f6cff6d52384428eb46e816ad6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}, {"rule": 2, "type": "equivalent", "target": "56bb12dabc419c87a27717fa34bb3be3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}, {"rule": 2, "type": "equivalent", "target": "df6bb339b676af9421fec5b435f41df0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "56bb12dabc419c87a27717fa34bb3be3", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.6.4#9.6.4-d0bce37763b84970", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "0cb3087fae06393bc7f76e6cbe7ded78", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.5.8#9.5.8-d0bce37763b84970", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "2c27a0f6cff6d52384428eb46e816ad6", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复因 postmaster 中的竞争条件导致walreceiver进程不必要地缓慢重启的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.4.13#9.4.13-d83eb4212e3c77c6", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "df6bb339b676af9421fec5b435f41df0", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.2.22#9.2.22-d0bce37763b84970", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-d20765897a51eeb2", "cves": [], "html": "<p>修复 <code>INSERT</code> 或 <code>UPDATE</code> 对数组之上域类型的列的多个元素赋值的情况（Tom Lane）</p>", "text": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况（Tom Lane）", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "262c834a1f69ff6c6479f9804f5489f9ee38f8fe0ab4f26322e9087e8db3fc0c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix cases where an INSERT or UPDATE assigns to more than one element of a column that is of domain-over-array type (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/015", "db_id": "7fa38e8aef93079d71fc8df9e9eaec2b", "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c", "relations": [{"rule": 2, "type": "equivalent", "target": "2cdb0efa2e2249d0e3f9b9dd528ebb36", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}, {"rule": 2, "type": "equivalent", "target": "581f18312c8db068f74644c8f9aaad95", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}, {"rule": 2, "type": "equivalent", "target": "6751805191274189c14b5c574618acf6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}, {"rule": 2, "type": "equivalent", "target": "bec476c995bf0ae2d6c2bbd39a5ee4a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "581f18312c8db068f74644c8f9aaad95", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.6.4#9.6.4-d20765897a51eeb2", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "6751805191274189c14b5c574618acf6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.5.8#9.5.8-d20765897a51eeb2", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "2cdb0efa2e2249d0e3f9b9dd528ebb36", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复INSERT或UPDATE对域于数组类型列的多于一个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.4.13#9.4.13-a2678c658d4a7cb7", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "bec476c995bf0ae2d6c2bbd39a5ee4a6", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.2.22#9.2.22-d20765897a51eeb2", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-45882918423781a5", "cves": [], "html": "<p>允许在聚合函数参数内的子 <code>SELECT</code> 中使用窗口函数（Tom Lane）</p>", "text": "允许在聚合函数参数内的子 SELECT 中使用窗口函数（Tom Lane）", "title": "允许在聚合函数参数内的子 SELECT 中使用窗口函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "c926f2a4a455cdda16735a4f82b6cb42bb2e07cf0a1aee7dadc5ea4013a390b6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow window functions to be used in sub-SELECTs that are within the arguments of an aggregate function (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/016", "db_id": "a3cceca6f8762c038aaacfddecd8a2df", "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348", "relations": [{"rule": 2, "type": "equivalent", "target": "2fc123ead4411fe698a8ec30e526d0e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}}, {"rule": 2, "type": "equivalent", "target": "4d955c084a20c2af0c43bc971277f818", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}}, {"rule": 2, "type": "equivalent", "target": "ef9c132dc08d64524af624312932f4aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2fc123ead4411fe698a8ec30e526d0e9", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "允许在聚合函数参数内的子 SELECT 中使用窗口函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}, "url": "/docs/compare/?release=9.6.4#9.6.4-45882918423781a5", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "ef9c132dc08d64524af624312932f4aa", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "允许在聚合函数参数内的子 SELECT 中使用窗口函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}, "url": "/docs/compare/?release=9.5.8#9.5.8-45882918423781a5", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "4d955c084a20c2af0c43bc971277f818", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "允许在聚合函数参数内的子SELECT中使用窗口函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e6232e914314daee", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.3.18-26b8910082bb016e", "cves": [], "html": "<p>在 <code>ALTER ... RENAME</code> 期间把自动生成的数组类型移开（Vik Fearing）</p>\n<p>此前我们在 <code>CREATE</code> 期间会把冲突的自动生成数组类型重命名移开；此修复把该行为扩展到重命名操作。</p>", "text": "在 ALTER ... RENAME 期间把自动生成的数组类型移开（Vik Fearing） 此前我们在 CREATE 期间会把冲突的自动生成数组类型重命名移开；此修复把该行为扩展到重命名操作。", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "28ff7c30c166288fd0c7f2f598beedc8c28857dbae339712e2e308111d334a87", "section_path": ["变更"], "commit_groups": [], "identity_text": "Move autogenerated array types out of the way during ALTER ... RENAME (Vik Fearing) Previously, we would rename a conflicting autogenerated array type out of the way during CREATE; this fix extends that behavior to renaming operations.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/017", "db_id": "01a3f42570323f11d8590ebbab6be905", "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790", "relations": [{"rule": 2, "type": "equivalent", "target": "3542438a9e62964cff164ac34edfb00b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}, {"rule": 2, "type": "equivalent", "target": "35c9a1e915045e14f9285575fbf87fd4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}, {"rule": 2, "type": "equivalent", "target": "bdc3b303804932fa630f8a8d01e0e891", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}, {"rule": 2, "type": "equivalent", "target": "e0b15344dd65537ca60f9d091cab55fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "35c9a1e915045e14f9285575fbf87fd4", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.6.4#9.6.4-26b8910082bb016e", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "3542438a9e62964cff164ac34edfb00b", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.5.8#9.5.8-26b8910082bb016e", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "e0b15344dd65537ca60f9d091cab55fb", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.4.13#9.4.13-26b8910082bb016e", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "bdc3b303804932fa630f8a8d01e0e891", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.2.22#9.2.22-26b8910082bb016e", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-5d6d8e63b270c702", "cves": [], "html": "<p>确保 <code>ALTER USER ... SET</code> 接受 <code>ALTER ROLE ... SET</code> 接受的所有语法变体（Peter Eisentraut）</p>", "text": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体（Peter Eisentraut）", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "cc0810806d96f90eb3effaed6b45b16332813cae7a55c282dd4342395b102fda", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that ALTER USER ... SET accepts all the syntax variants that ALTER ROLE ... SET does (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/018", "db_id": "64cd1132715305e1328535ca3f78902f", "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02", "relations": [{"rule": 2, "type": "equivalent", "target": "2e9124e378f62726adf44d3d5bfc1844", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}, {"rule": 2, "type": "equivalent", "target": "78533c68c579d16f73c607cdc14e8a1f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}, {"rule": 2, "type": "equivalent", "target": "d30198df80a7b55813806adb967331f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}, {"rule": 2, "type": "equivalent", "target": "e0dfbecb7a9539c1d00387e2230fd26a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e0dfbecb7a9539c1d00387e2230fd26a", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.6.4#9.6.4-5d6d8e63b270c702", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "d30198df80a7b55813806adb967331f7", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5d6d8e63b270c702", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "78533c68c579d16f73c607cdc14e8a1f", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "确保ALTER USER ... SET接受ALTER ROLE ... SET接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.4.13#9.4.13-0acb3f4526afe316", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "2e9124e378f62726adf44d3d5bfc1844", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5d6d8e63b270c702", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-7e64d6a8ac02ee1d", "cves": [], "html": "<p>把数据类型 I/O 函数的参数或返回类型从 <code>opaque</code> 更改为正确类型时正确更新依赖信息（Heikki Linnakangas）</p>\n<p><code>CREATE TYPE</code> 会更新以这种早已过时风格声明的 I/O 函数，但忘记记录对类型的依赖，允许随后的 <code>DROP TYPE</code> 留下损坏的函数定义。</p>", "text": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息（Heikki Linnakangas） CREATE TYPE 会更新以这种早已过时风格声明的 I/O 函数，但忘记记录对类型的依赖，允许随后的 DROP TYPE 留下损坏的函数定义。", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "cbf9831d19f3d7de90f27f2bee101c591dfff137d5adaeee25f3409a95a4feef", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly update dependency info when changing a datatype I/O function's argument or return type from opaque to the correct type (Heikki Linnakangas) CREATE TYPE updates I/O functions declared in this long-obsolete style, but it forgot to record a dependency on the type, allowing a subsequent DROP TYPE to leave broken function definitions behind.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/019", "db_id": "ca6de75b0e0794384b1bddc37b7725d6", "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95", "relations": [{"rule": 2, "type": "equivalent", "target": "1c71739ec0bc22b2086096c2e708bf8d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}, {"rule": 2, "type": "equivalent", "target": "4ea6d45d75e4f4cbecc3f43197c0e279", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}, {"rule": 2, "type": "equivalent", "target": "e2f1d6fdaec7559842c2385b6c1b3960", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}, {"rule": 2, "type": "equivalent", "target": "fc3e91d166da9eace934c7ce332d1d1a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c71739ec0bc22b2086096c2e708bf8d", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.6.4#9.6.4-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "4ea6d45d75e4f4cbecc3f43197c0e279", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "fc3e91d166da9eace934c7ce332d1d1a", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.4.13#9.4.13-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e2f1d6fdaec7559842c2385b6c1b3960", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-53ec6cb2f2c17b5e", "cves": [], "html": "<p>减少 <code>ANALYZE</code> 处理 <code>tsvector</code> 列时的内存使用（Heikki Linnakangas）</p>", "text": "减少 ANALYZE 处理 tsvector 列时的内存使用（Heikki Linnakangas）", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "c434bb0023e1a14e995397ce09493c80f89024fc24ac21f9a27cb5db75170cbd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce memory usage when ANALYZE processes a tsvector column (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/020", "db_id": "9286e2faff7d6b1fff883e2bd2b97a77", "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285", "relations": [{"rule": 2, "type": "equivalent", "target": "186cde4e1db0f0be25d5d5bf57d359a3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}, {"rule": 2, "type": "equivalent", "target": "311b3cc3e4fa5b500aa9deca70df0ad1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}, {"rule": 2, "type": "equivalent", "target": "56a90a69a533a8f1b101b1a4530193a8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}, {"rule": 2, "type": "equivalent", "target": "b5fdaa42caf9e6d138b07b5dc501401e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "186cde4e1db0f0be25d5d5bf57d359a3", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.6.4#9.6.4-53ec6cb2f2c17b5e", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "b5fdaa42caf9e6d138b07b5dc501401e", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.5.8#9.5.8-53ec6cb2f2c17b5e", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "311b3cc3e4fa5b500aa9deca70df0ad1", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "减少ANALYZE处理tsvector列时的内存占用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5cc7b36574f17ab3", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "56a90a69a533a8f1b101b1a4530193a8", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.2.22#9.2.22-53ec6cb2f2c17b5e", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-7274a73af024ab1f", "cves": [], "html": "<p>修复 <code>money</code> 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入（Tom Lane）</p>", "text": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入（Tom Lane）", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "1356759f728073747d0c1012c60209f92dad9135f097a9b760ff6337d0343c0e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix unnecessary precision loss and sloppy rounding when multiplying or dividing money values by integers or floats (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/021", "db_id": "c7eb7fb2b29170b05a637ca27c2a7539", "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5", "relations": [{"rule": 2, "type": "equivalent", "target": "200144e3d3d62f9ce4f389e55d3f4745", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}, {"rule": 2, "type": "equivalent", "target": "4b94c1478911b41eaef82286d2b45208", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}, {"rule": 2, "type": "equivalent", "target": "e18ad23e444eafe61e775b732271dcc6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}, {"rule": 2, "type": "equivalent", "target": "e7af3496a98b2881c3be33678b312c32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e18ad23e444eafe61e775b732271dcc6", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.6.4#9.6.4-7274a73af024ab1f", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "4b94c1478911b41eaef82286d2b45208", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7274a73af024ab1f", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "200144e3d3d62f9ce4f389e55d3f4745", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复money值与整数或浮点数相乘/相除时不必要的精度损失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.4.13#9.4.13-40f89286d4f1ec29", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e7af3496a98b2881c3be33678b312c32", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7274a73af024ab1f", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-5118ee67f07e4d53", "cves": [], "html": "<p>收紧对解析标识符的函数（如 <code>regprocedurein()</code>）中空白的检查（Tom Lane）</p>\n<p>根据当前区域，这些函数可能把多字节字符的片段误解释为空白。</p>", "text": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查（Tom Lane） 根据当前区域，这些函数可能把多字节字符的片段误解释为空白。", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "633bc19eda34e87630e4885f11cb3a40498de1b0af7fcd3ed26a6f91a9754586", "section_path": ["变更"], "commit_groups": [], "identity_text": "Tighten checks for whitespace in functions that parse identifiers, such as regprocedurein() (Tom Lane) Depending on the prevailing locale, these functions could misinterpret fragments of multibyte characters as whitespace.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/022", "db_id": "3c0a5921b737f2e58d32771afebaa81e", "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807", "relations": [{"rule": 2, "type": "equivalent", "target": "51131f8d3f132e0ebe995be51a7e214b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}, {"rule": 2, "type": "equivalent", "target": "7dc7725bf5e33baf9a4661587b0e8778", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}, {"rule": 2, "type": "equivalent", "target": "835321b9bb87e7c0b5749d5c3a0a71eb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}, {"rule": 2, "type": "equivalent", "target": "9efb4404669223331c80f16eb8181e0e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "51131f8d3f132e0ebe995be51a7e214b", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.6.4#9.6.4-5118ee67f07e4d53", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "7dc7725bf5e33baf9a4661587b0e8778", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5118ee67f07e4d53", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "9efb4404669223331c80f16eb8181e0e", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5118ee67f07e4d53", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "835321b9bb87e7c0b5749d5c3a0a71eb", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5118ee67f07e4d53", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-474980cb5fb146b9", "cves": [], "html": "<p>编译 <span>PL/Perl</span> 时使用来自 Perl 的相关 <code>#define</code> 符号（Ashutosh Sharma、Tom Lane）</p>\n<p>这避免了可移植性问题（通常表现为库加载期间的<span>“<span>握手</span>”</span>不匹配），在使用最近 Perl 版本时。</p>", "text": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号（Ashutosh Sharma、Tom Lane） 这避免了可移植性问题（通常表现为库加载期间的“握手”不匹配），在使用最近 Perl 版本时。", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "0b4e4b61fdb7b9a4a0051c63bbe228a449d95c13b1d5a18fdb396979f7417f1d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use relevant #define symbols from Perl while compiling PL/Perl (Ashutosh Sharma, Tom Lane) This avoids portability problems, typically manifesting as a handshake mismatch during library load, when working with recent Perl versions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/023", "db_id": "e1497c1373601f3a52ad6e5179cebd31", "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e", "relations": [{"rule": 2, "type": "equivalent", "target": "305da47f50ed8f0ce3a821641c6f95b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}, {"rule": 2, "type": "equivalent", "target": "9d939394d3ef977b355d5067c31096da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}, {"rule": 2, "type": "equivalent", "target": "c22a12a11473dfddf3f84f1ae9150cfb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}, {"rule": 2, "type": "equivalent", "target": "c77f2092d00b5020f4fa8133a9904bef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "305da47f50ed8f0ce3a821641c6f95b6", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.6.4#9.6.4-474980cb5fb146b9", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "c77f2092d00b5020f4fa8133a9904bef", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.5.8#9.5.8-474980cb5fb146b9", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "c22a12a11473dfddf3f84f1ae9150cfb", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.4.13#9.4.13-474980cb5fb146b9", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "9d939394d3ef977b355d5067c31096da", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.2.22#9.2.22-474980cb5fb146b9", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-056fd7f08bcf3bf3", "cves": [], "html": "<p>在 <span>libpq</span> 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态（Michael Paquier）</p>\n<p>不这样做意味着当从 SSL 回退到非 SSL 连接时，SSL 尝试中的 GSS/SASL 失败总是导致非 SSL 尝试失败。SSPI 不会失败，但泄漏内存。</p>", "text": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态（Michael Paquier） 不这样做意味着当从 SSL 回退到非 SSL 连接时，SSL 尝试中的 GSS/SASL 失败总是导致非 SSL 尝试失败。SSPI 不会失败，但泄漏内存。", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "a68111a838fa78a6556c60ca58d89191bd81d5de7a131227cf0e061f9edd1b04", "section_path": ["变更"], "commit_groups": [], "identity_text": "In libpq, reset GSS/SASL and SSPI authentication state properly after a failed connection attempt (Michael Paquier) Failure to do this meant that when falling back from SSL to non-SSL connections, a GSS/SASL failure in the SSL attempt would always cause the non-SSL attempt to fail. SSPI did not fail, but it leaked memory.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/024", "db_id": "4236ed294a48db58aaecec60f5bd28d3", "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d", "relations": [{"rule": 2, "type": "equivalent", "target": "0456888e68ba9735aed31467beaa1606", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}}, {"rule": 2, "type": "equivalent", "target": "0e0c8800fb2de2726071d288ab427a2a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}}, {"rule": 2, "type": "equivalent", "target": "bce8f77346d60ccbd6093c02df55203d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0456888e68ba9735aed31467beaa1606", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}, "url": "/docs/compare/?release=9.6.4#9.6.4-056fd7f08bcf3bf3", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "0e0c8800fb2de2726071d288ab427a2a", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}, "url": "/docs/compare/?release=9.5.8#9.5.8-056fd7f08bcf3bf3", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "bce8f77346d60ccbd6093c02df55203d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}, "url": "/docs/compare/?release=9.4.13#9.4.13-056fd7f08bcf3bf3", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.3.18-f6dd38d2b91f2552", "cves": [], "html": "<p>在 <span>psql</span> 中，修复 <code>COPY FROM STDIN</code> 以键盘 EOF 信号结束后再尝试另一个 <code>COPY FROM STDIN</code> 时失败的问题（Thomas Munro）</p>\n<p>这种错误行为在 BSD 衍生平台（包括 macOS）上观察到，但在大多数其他平台上没有。</p>", "text": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题（Thomas Munro） 这种错误行为在 BSD 衍生平台（包括 macOS）上观察到，但在大多数其他平台上没有。", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "6b52d7d3094513dd149c8e45546113a2f20acf28034466840205591871159104", "section_path": ["变更"], "commit_groups": [], "identity_text": "In psql, fix failure when COPY FROM STDIN is ended with a keyboard EOF signal and then another COPY FROM STDIN is attempted (Thomas Munro) This misbehavior was observed on BSD-derived platforms (including macOS), but not on most others.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/025", "db_id": "b68ddd9f7cc23e1e7f98a7342cfb1006", "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb", "relations": [{"rule": 2, "type": "equivalent", "target": "6004f396e99c733a1e660e68647024bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}, {"rule": 2, "type": "equivalent", "target": "848a728f38402af058ade6e9b1bebe80", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}, {"rule": 2, "type": "equivalent", "target": "97b6de864a42aee7da373e5fe0c118fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}, {"rule": 2, "type": "equivalent", "target": "ef425a41068590fd5bab895976085ff8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "97b6de864a42aee7da373e5fe0c118fd", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.6.4#9.6.4-f6dd38d2b91f2552", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "6004f396e99c733a1e660e68647024bc", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.5.8#9.5.8-f6dd38d2b91f2552", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "ef425a41068590fd5bab895976085ff8", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.4.13#9.4.13-f6dd38d2b91f2552", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "848a728f38402af058ade6e9b1bebe80", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.2.22#9.2.22-f6dd38d2b91f2552", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-0b8887b8749b708f", "cves": [], "html": "<p>修复 <span>pg_dump</span> 和 <span>pg_restore</span> 把 <code>REFRESH MATERIALIZED VIEW</code> 命令放在最后发出（Tom Lane）</p>\n<p>这防止了物化视图引用其他用户拥有的表时转储/恢复期间的错误。</p>", "text": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出（Tom Lane） 这防止了物化视图引用其他用户拥有的表时转储/恢复期间的错误。", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "61b8668a2d56a88a756de80fabb3708090e4cf598a3fbc792dc7075ebbf5d2bb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump and pg_restore to emit REFRESH MATERIALIZED VIEW commands last (Tom Lane) This prevents errors during dump/restore when a materialized view refers to tables owned by a different user.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/026", "db_id": "f3362d3ac0ab12a7af758d2723b8575f", "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a", "relations": [{"rule": 2, "type": "equivalent", "target": "0f3addd499cf349a5d6de089b899807d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}}, {"rule": 2, "type": "equivalent", "target": "1099adc868f2fd81340f5ad0ff580c3e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}}, {"rule": 2, "type": "equivalent", "target": "a5195efadb3588413ab4580829892e47", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1099adc868f2fd81340f5ad0ff580c3e", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}, "url": "/docs/compare/?release=9.6.4#9.6.4-0b8887b8749b708f", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "a5195efadb3588413ab4580829892e47", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}, "url": "/docs/compare/?release=9.5.8#9.5.8-0b8887b8749b708f", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "0f3addd499cf349a5d6de089b899807d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}, "url": "/docs/compare/?release=9.4.13#9.4.13-0b8887b8749b708f", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.3.18-887efc91c3b9f809", "cves": [], "html": "<p>修复 <span>pg_dump</span> 使用 <code>--clean</code> 选项按预期删除事件触发器（Tom Lane）</p>\n<p>它现在还正确分配事件触发器的所有权；此前它们被恢复为归运行恢复脚本的超级用户所有。</p>", "text": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器（Tom Lane） 它现在还正确分配事件触发器的所有权；此前它们被恢复为归运行恢复脚本的超级用户所有。", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "e04fe67d86fcf23a19100e19735c6d0075dd7acc3d85088def844b0c4516088e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump with the --clean option to drop event triggers as expected (Tom Lane) It also now correctly assigns ownership of event triggers; before, they were restored as being owned by the superuser running the restore script.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/027", "db_id": "8d0ccb7e11a250148fe2060c4cb25b8b", "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff", "relations": [{"rule": 2, "type": "equivalent", "target": "68fc53e5832525f0fc13e98ded49aff3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}}, {"rule": 2, "type": "equivalent", "target": "757afa6498006786ef942aadca896b7c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}}, {"rule": 2, "type": "equivalent", "target": "97c42efa76ac8fe42886299078852fce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "97c42efa76ac8fe42886299078852fce", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}, "url": "/docs/compare/?release=9.6.4#9.6.4-887efc91c3b9f809", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "757afa6498006786ef942aadca896b7c", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}, "url": "/docs/compare/?release=9.5.8#9.5.8-887efc91c3b9f809", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "68fc53e5832525f0fc13e98ded49aff3", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}, "url": "/docs/compare/?release=9.4.13#9.4.13-887efc91c3b9f809", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.3.18-9548977f836b5c39", "cves": [], "html": "<p>修复 <span>pg_dump</span> 不再为空操作符类发出无效 SQL（Daniel Gustafsson）</p>", "text": "修复 pg_dump 不再为空操作符类发出无效 SQL（Daniel Gustafsson）", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "3ec4a7de0a72285f6c479332a28c4b09b3a831724479c15dbdf388c18866086c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump to not emit invalid SQL for an empty operator class (Daniel Gustafsson)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/028", "db_id": "840b295f4eeb4c935d37f6c1a782f8cc", "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518", "relations": [{"rule": 2, "type": "equivalent", "target": "070697fb947119da494553bda2f124c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}, {"rule": 2, "type": "equivalent", "target": "86c3940da42bf99013987523bdf3df4a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}, {"rule": 2, "type": "equivalent", "target": "c29c869ad06caa372ac1b5711b9554d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}, {"rule": 2, "type": "equivalent", "target": "e0228a65ed5fca34bd88526c45df6259", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c29c869ad06caa372ac1b5711b9554d1", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.6.4#9.6.4-9548977f836b5c39", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "e0228a65ed5fca34bd88526c45df6259", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.5.8#9.5.8-9548977f836b5c39", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "070697fb947119da494553bda2f124c7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复pg_dump对空操作符类不再输出无效 SQL 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.4.13#9.4.13-c14b0269dd70314b", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "86c3940da42bf99013987523bdf3df4a", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.2.22#9.2.22-9548977f836b5c39", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-c3797e4f36dc9e64", "cves": [], "html": "<p>修复 <span>pg_dump</span> 在 Windows 上输出到 stdout（Kuntal Ghosh）</p>\n<p>由于未把文件描述符置为二进制模式，写到 stdout 的压缩纯文本转储会包含损坏的数据。</p>", "text": "修复 pg_dump 在 Windows 上输出到 stdout（Kuntal Ghosh） 由于未把文件描述符置为二进制模式，写到 stdout 的压缩纯文本转储会包含损坏的数据。", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "1e07ceefb0c2a6a52cf883a9235c4e3da389a369f46c45194ec29e674915c716", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump output to stdout on Windows (Kuntal Ghosh) A compressed plain-text dump written to stdout would contain corrupt data due to failure to put the file descriptor into binary mode.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/029", "db_id": "1abe0946f2900b04706de5182f471b42", "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9", "relations": [{"rule": 2, "type": "equivalent", "target": "6b7b01759bbaa4b8b22a137cfd58d1e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}, {"rule": 2, "type": "equivalent", "target": "a47aefe46f376f522844b44b005ddbf3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}, {"rule": 2, "type": "equivalent", "target": "b852a6409848994688858c75c3f50002", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}, {"rule": 2, "type": "equivalent", "target": "e5bf0664cfdd70643c866d5227375b63", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b852a6409848994688858c75c3f50002", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.6.4#9.6.4-c3797e4f36dc9e64", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "e5bf0664cfdd70643c866d5227375b63", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.5.8#9.5.8-c3797e4f36dc9e64", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "6b7b01759bbaa4b8b22a137cfd58d1e7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.4.13#9.4.13-c3797e4f36dc9e64", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "a47aefe46f376f522844b44b005ddbf3", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.2.22#9.2.22-c3797e4f36dc9e64", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-f12dd04738e5aab4", "cves": [], "html": "<p>修复 <code>pg_get_ruledef()</code> 为列被重命名的视图的 <code>ON SELECT</code> 规则打印正确输出（Tom Lane）</p>\n<p>某些边界情况下 <span>pg_dump</span> 依靠 <code>pg_get_ruledef()</code> 转储视图，因此这个错误可能导致转储/恢复失败。</p>", "text": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出（Tom Lane） 某些边界情况下 pg_dump 依靠 pg_get_ruledef() 转储视图，因此这个错误可能导致转储/恢复失败。", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "801653f9a1887b5e87221929323f5f90fdd82e4ca771e80f414334685bdf7bf5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_get_ruledef() to print correct output for the ON SELECT rule of a view whose columns have been renamed (Tom Lane) In some corner cases, pg_dump relies on pg_get_ruledef() to dump views, so that this error could result in dump/reload failures.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/030", "db_id": "f2edaf5cc2e703873f5b089f4871f5c0", "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0", "relations": [{"rule": 2, "type": "equivalent", "target": "379c63a4fbb4dcdaffaa11bbc7213eca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}, {"rule": 2, "type": "equivalent", "target": "ad3786d2a2b785ec36e6295358ad1500", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}, {"rule": 2, "type": "equivalent", "target": "e7a4d12b68f9153446325e58a125f61b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}, {"rule": 2, "type": "equivalent", "target": "fc89b5ce5ebfa7e39fc68278673e0a30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "379c63a4fbb4dcdaffaa11bbc7213eca", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.6.4#9.6.4-f12dd04738e5aab4", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "ad3786d2a2b785ec36e6295358ad1500", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.5.8#9.5.8-f12dd04738e5aab4", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "e7a4d12b68f9153446325e58a125f61b", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.4.13#9.4.13-f12dd04738e5aab4", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "fc89b5ce5ebfa7e39fc68278673e0a30", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.2.22#9.2.22-f12dd04738e5aab4", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-0045f537323e513a", "cves": [], "html": "<p>修复带空约束外连接（如没有公共列的 <code>NATURAL LEFT JOIN</code> 的结果）的转储（Tom Lane）</p>", "text": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储（Tom Lane）", "title": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "04d0bcf11ae97509d616e957b00f3d306800edfd2111009b60c0e45ede2ca887", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix dumping of outer joins with empty constraints, such as the result of a NATURAL LEFT JOIN with no common columns (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/031", "db_id": "eaa0478fcabd4701e6093674de12517a", "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7", "relations": [{"rule": 2, "type": "equivalent", "target": "009dd9aee9e8f4a8eaf5789721b4de32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}}, {"rule": 2, "type": "equivalent", "target": "7960ba5ff54198dd96a1ae7ea9a99a6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}}, {"rule": 2, "type": "equivalent", "target": "c3c158c1c2ccacd3d3e4c2c9a1d67c99", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "009dd9aee9e8f4a8eaf5789721b4de32", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}, "url": "/docs/compare/?release=9.6.4#9.6.4-0045f537323e513a", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "7960ba5ff54198dd96a1ae7ea9a99a6b", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}, "url": "/docs/compare/?release=9.5.8#9.5.8-0045f537323e513a", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "c3c158c1c2ccacd3d3e4c2c9a1d67c99", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复对带空约束的外连接（例如没有公共列的NATURAL LEFT JOIN结果）的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e5b8203faf687afe", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.3.18-7d3ecdbba5e8d785", "cves": [], "html": "<p>修复 <code>FROM</code> 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储（Tom Lane）</p>", "text": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储（Tom Lane）", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "1e4e2026b02189eb0345e09f0659c356d834aea12a26610a7c37353f60bb0a5f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix dumping of function expressions in the FROM clause in cases where the expression does not deparse into something that looks like a function call (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/032", "db_id": "27c42f004a817bb395e89624d4c8565b", "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6", "relations": [{"rule": 2, "type": "equivalent", "target": "18b23ab20491f4af49f50eb180188cc8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}, {"rule": 2, "type": "equivalent", "target": "5d279250db704303c3619d09775e014d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}, {"rule": 2, "type": "equivalent", "target": "a365a08bf964ae0b5d013c3af4a2b944", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}, {"rule": 2, "type": "equivalent", "target": "b4620d508b6c65d987d28869d58a5933", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a365a08bf964ae0b5d013c3af4a2b944", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.6.4#9.6.4-7d3ecdbba5e8d785", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "18b23ab20491f4af49f50eb180188cc8", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7d3ecdbba5e8d785", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "b4620d508b6c65d987d28869d58a5933", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复FROM子句中函数表达式在表达式无法反向解析为类似函数调用形式时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.4.13#9.4.13-56b4ce7fa2730c8c", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "5d279250db704303c3619d09775e014d", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7d3ecdbba5e8d785", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-5fa98197263eb565", "cves": [], "html": "<p>修复 <span>pg_basebackup</span> 在 Windows 上输出到 stdout（Haribabu Kommi）</p>\n<p>由于未把文件描述符置为二进制模式，写到 stdout 的备份会包含损坏的数据。</p>", "text": "修复 pg_basebackup 在 Windows 上输出到 stdout（Haribabu Kommi） 由于未把文件描述符置为二进制模式，写到 stdout 的备份会包含损坏的数据。", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "238ed6ca5fbb7ff76080c7c45a4a51d2249a2ae423e7ff5e46f54a1279e26383", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_basebackup output to stdout on Windows (Haribabu Kommi) A backup written to stdout would contain corrupt data due to failure to put the file descriptor into binary mode.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/033", "db_id": "02eb1abc2b9a20b762b97b41818a87d7", "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029", "relations": [{"rule": 2, "type": "equivalent", "target": "0fb0d233c8ad9c02e201adbd5a151955", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}, {"rule": 2, "type": "equivalent", "target": "89dda01ba3a5a13f897a1a2eeedc22c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}, {"rule": 2, "type": "equivalent", "target": "b8cb17a32cde2cf63f99f0b6568d654f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}, {"rule": 2, "type": "equivalent", "target": "d4936f7a2cda683f2cdaf1bd900d931c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "89dda01ba3a5a13f897a1a2eeedc22c3", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.6.4#9.6.4-5fa98197263eb565", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "d4936f7a2cda683f2cdaf1bd900d931c", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5fa98197263eb565", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "b8cb17a32cde2cf63f99f0b6568d654f", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5fa98197263eb565", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "0fb0d233c8ad9c02e201adbd5a151955", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5fa98197263eb565", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-057eae6ce988e826", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 确保结束 WAL 记录不具有<a href=\"/docs/9.3/runtime-config-wal.html#GUC-WAL-LEVEL\">wal_level</a> = <code>minimum</code>（Bruce Momjian）</p>\n<p>这一条件可能阻止升级后的备库服务器重新连接。</p>", "text": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum（Bruce Momjian） 这一条件可能阻止升级后的备库服务器重新连接。", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "8af34ac22cb25c7d6e41286bbfa7c0e4d78353f8506e5473d2ddee65f64bb091", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade to ensure that the ending WAL record does not have guc-wal-level = minimum (Bruce Momjian) This condition could prevent upgraded standby servers from reconnecting.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/034", "db_id": "70779e891888cb9fd45c465d792baee9", "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb", "relations": [{"rule": 2, "type": "equivalent", "target": "5fffffcb249499b6b89e60eb86efe93f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}, {"rule": 2, "type": "equivalent", "target": "9ae680ee51cfb93f20beb90598dc48c1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}, {"rule": 2, "type": "equivalent", "target": "cc2cb7fef069b9f35fc77bf5ea661129", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}, {"rule": 2, "type": "equivalent", "target": "ed0d7539c7cc60379dde8603ba837426", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed0d7539c7cc60379dde8603ba837426", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.6.4#9.6.4-057eae6ce988e826", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "cc2cb7fef069b9f35fc77bf5ea661129", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.5.8#9.5.8-057eae6ce988e826", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "5fffffcb249499b6b89e60eb86efe93f", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.4.13#9.4.13-057eae6ce988e826", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "9ae680ee51cfb93f20beb90598dc48c1", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.2.22#9.2.22-057eae6ce988e826", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-3146732edb16f5bc", "cves": [], "html": "<p>在 <code>postgres_fdw</code> 中，<code>ALTER SERVER</code> 或 <code>ALTER USER MAPPING</code> 命令之后重建到远程服务器的连接（Kyotaro Horiguchi）</p>\n<p>这确保影响连接参数的选项更改被及时应用。</p>", "text": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接（Kyotaro Horiguchi） 这确保影响连接参数的选项更改被及时应用。", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "b6591ad296d05028d6664c293be5ff3c8ee60831f8309dc93a2bc735d7c63151", "section_path": ["变更"], "commit_groups": [], "identity_text": "In postgres_fdw, re-establish connections to remote servers after ALTER SERVER or ALTER USER MAPPING commands (Kyotaro Horiguchi) This ensures that option changes affecting connection parameters will be applied promptly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/035", "db_id": "b29b29297c8df354d55917285ee410c4", "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d", "relations": [{"rule": 2, "type": "equivalent", "target": "0577b3aa5522ea1e273982f5ddacc2a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}}, {"rule": 2, "type": "equivalent", "target": "8f622e5b02ead97c90bde2fcc254e6c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}}, {"rule": 2, "type": "equivalent", "target": "94250a16e17dfa2eb9ed8f99cfda6c17", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0577b3aa5522ea1e273982f5ddacc2a1", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}, "url": "/docs/compare/?release=9.6.4#9.6.4-3146732edb16f5bc", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "8f622e5b02ead97c90bde2fcc254e6c6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}, "url": "/docs/compare/?release=9.5.8#9.5.8-3146732edb16f5bc", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "94250a16e17dfa2eb9ed8f99cfda6c17", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}, "url": "/docs/compare/?release=9.4.13#9.4.13-3146732edb16f5bc", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.3.18-afa0bc63a7dcc349", "cves": [], "html": "<p>在 <code>postgres_fdw</code> 中，允许取消远程事务控制命令（Robert Haas、Rafia Sabih）</p>\n<p>这一更改使我们能在比以前多得多的情况下快速摆脱对无响应远程服务器的等待。</p>", "text": "在 postgres_fdw 中，允许取消远程事务控制命令（Robert Haas、Rafia Sabih） 这一更改使我们能在比以前多得多的情况下快速摆脱对无响应远程服务器的等待。", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "43551f122bbab34b5dc2c8793c1055700cf80d6d1d676a236b7534a085200844", "section_path": ["变更"], "commit_groups": [], "identity_text": "In postgres_fdw, allow cancellation of remote transaction control commands (Robert Haas, Rafia Sabih) This change allows us to quickly escape a wait for an unresponsive remote server in many more cases than previously.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/036", "db_id": "b15160e72ef4a8a96223642acaf1f71e", "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02", "relations": [{"rule": 2, "type": "equivalent", "target": "68cac93c846a20baf38128bd29308781", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}}, {"rule": 2, "type": "equivalent", "target": "b843661c6ce7490ed5abd624d1949ecc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}}, {"rule": 2, "type": "equivalent", "target": "f9d5f9fb37faff9c5e79adfbf0b454b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b843661c6ce7490ed5abd624d1949ecc", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}, "url": "/docs/compare/?release=9.6.4#9.6.4-afa0bc63a7dcc349", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "68cac93c846a20baf38128bd29308781", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}, "url": "/docs/compare/?release=9.5.8#9.5.8-afa0bc63a7dcc349", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "f9d5f9fb37faff9c5e79adfbf0b454b9", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}, "url": "/docs/compare/?release=9.4.13#9.4.13-afa0bc63a7dcc349", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.3.18-206b0d511840b329", "cves": [], "html": "<p>用 gcc 构建共享库时始终使用 <code>-fPIC</code> 而不是 <code>-fpic</code>（Tom Lane）</p>\n<p>这在有差别的平台上支持更大的扩展库。</p>", "text": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic（Tom Lane） 这在有差别的平台上支持更大的扩展库。", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "edbf85494b16e0bcd114636e44d8cebf7d3865f9d3c483cef4b83ffa178e58ec", "section_path": ["变更"], "commit_groups": [], "identity_text": "Always use -fPIC, not -fpic, when building shared libraries with gcc (Tom Lane) This supports larger extension libraries on platforms where it makes a difference.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/037", "db_id": "283f393e01a328dd5c4a3b42e8f2fe97", "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf", "relations": [{"rule": 2, "type": "equivalent", "target": "09be3ad89f8721a50b41d56c4f7a06ab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}, {"rule": 2, "type": "equivalent", "target": "4dc83f6692ada3a0722e84b153a661f6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}, {"rule": 2, "type": "equivalent", "target": "7f021a07a0f5f6e98690d6b7807ca400", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}, {"rule": 2, "type": "equivalent", "target": "88836e2b0a18775d156de14ee0ec0b35", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "88836e2b0a18775d156de14ee0ec0b35", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.6.4#9.6.4-206b0d511840b329", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "4dc83f6692ada3a0722e84b153a661f6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.5.8#9.5.8-206b0d511840b329", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "7f021a07a0f5f6e98690d6b7807ca400", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.4.13#9.4.13-206b0d511840b329", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "09be3ad89f8721a50b41d56c4f7a06ab", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.2.22#9.2.22-206b0d511840b329", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-69451b099858f87c", "cves": [], "html": "<p>修复我们的 Microsoft MSVC 构建脚本中花括号未转义的问题，以避免较新的 Perl 版本发出警告或报错（Andrew Dunstan）</p>", "text": "修复我们的 Microsoft MSVC 构建脚本中花括号未转义的问题，以避免较新的 Perl 版本发出警告或报错（Andrew Dunstan）", "title": "修复我们的 Microsoft MSVC 构建脚本中花括号未转义的问题，以避免较新的 Perl 版本发出警告或报错", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "add7aa12330082b78bbc913f076517b645273bfa59ce9f9500ce2fe230526a0a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix unescaped-braces issue in our build scripts for Microsoft MSVC, to avoid a warning or error from recent Perl versions (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/038", "db_id": "9f3041d3ac459eeae44c28d96e0df4df", "patch_ids": [], "statement_hash": "85697ddd7fe7a5cc0c583b4c537576bda41c058cc4284d94c86008e4d0fda332", "relations": [{"rule": 2, "type": "equivalent", "target": "4ebf055fc0f1622d2b26c0dc0abac9b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85697ddd7fe7a5cc0c583b4c537576bda41c058cc4284d94c86008e4d0fda332"}}, {"rule": 2, "type": "equivalent", "target": "6d43a93afe0a245e8d369355009a0bf6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85697ddd7fe7a5cc0c583b4c537576bda41c058cc4284d94c86008e4d0fda332"}}, {"rule": 2, "type": "equivalent", "target": "ad88fd873fbabad73980ae1c2e27202a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85697ddd7fe7a5cc0c583b4c537576bda41c058cc4284d94c86008e4d0fda332"}}], "version": "9.3.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6d43a93afe0a245e8d369355009a0bf6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复我们的 Microsoft MSVC 构建脚本中花括号未转义的问题，以避免较新的 Perl 版本发出警告或报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85697ddd7fe7a5cc0c583b4c537576bda41c058cc4284d94c86008e4d0fda332"}, "url": "/docs/compare/?release=9.5.8#9.5.8-69451b099858f87c", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "ad88fd873fbabad73980ae1c2e27202a", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复我们用于 Microsoft MSVC 的构建脚本中未转义花括号的问题，以避免较新 Perl 版本发出警告或错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85697ddd7fe7a5cc0c583b4c537576bda41c058cc4284d94c86008e4d0fda332"}, "url": "/docs/compare/?release=9.4.13#9.4.13-538386859358c376", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "4ebf055fc0f1622d2b26c0dc0abac9b3", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复我们的 Microsoft MSVC 构建脚本中花括号未转义的问题，以避免较新的 Perl 版本发出警告或报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85697ddd7fe7a5cc0c583b4c537576bda41c058cc4284d94c86008e4d0fda332"}, "url": "/docs/compare/?release=9.2.22#9.2.22-69451b099858f87c", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-0d6cc60c08d63989", "cves": [], "html": "<p>在 MSVC 构建中，处理 <span>openssl</span> 库不在 <code>VC</code> 子目录内的情况（Andrew Dunstan）</p>", "text": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况（Andrew Dunstan）", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "28641a96d7cc184cde78b427001e336cd3b75bd5d71640543213785cf2681003", "section_path": ["变更"], "commit_groups": [], "identity_text": "In MSVC builds, handle the case where the openssl library is not within a VC subdirectory (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/039", "db_id": "e2a259345722af9b05ae29fa2570b75e", "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143", "relations": [{"rule": 2, "type": "equivalent", "target": "2ffe419c5f7176f78b624e77d8ed0445", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}, {"rule": 2, "type": "equivalent", "target": "4987cc700fdf507f6d116cb8c00a95f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}, {"rule": 2, "type": "equivalent", "target": "5ba5c3c618b18840b6e7ea4b065e8eff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}, {"rule": 2, "type": "equivalent", "target": "b1e8c52cd265fcb98d29ef30f720c81d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ba5c3c618b18840b6e7ea4b065e8eff", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.6.4#9.6.4-0d6cc60c08d63989", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "2ffe419c5f7176f78b624e77d8ed0445", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.5.8#9.5.8-0d6cc60c08d63989", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "b1e8c52cd265fcb98d29ef30f720c81d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "MSVC 构建中，处理openssl库不在VC子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.4.13#9.4.13-41e2b916a89271ec", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "4987cc700fdf507f6d116cb8c00a95f2", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.2.22#9.2.22-0d6cc60c08d63989", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-52a5f74194c8f736", "cves": [], "html": "<p>在 MSVC 构建中，为 <span>libxml2</span> 头文件添加正确的包含路径（Andrew Dunstan）</p>\n<p>这修复了以前需要移动标准 Windows 安装的 <span>libxml2</span> 中某些东西的需要。</p>", "text": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径（Andrew Dunstan） 这修复了以前需要移动标准 Windows 安装的 libxml2 中某些东西的需要。", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "ee6d89baad1b1a7a6d4b8b4e231e2d94017d008a8eb28c0a68a5cec2597a4b56", "section_path": ["变更"], "commit_groups": [], "identity_text": "In MSVC builds, add proper include path for libxml2 header files (Andrew Dunstan) This fixes a former need to move things around in standard Windows installations of libxml2.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/040", "db_id": "5a23348b20eaec0a5ee2ec9cf24180ca", "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840", "relations": [{"rule": 2, "type": "equivalent", "target": "02e85494d7f70ee9aec00724e9cea8e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}, {"rule": 2, "type": "equivalent", "target": "69a1c1ee3e2fd1046eb41dae764406d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}, {"rule": 2, "type": "equivalent", "target": "8461d768f61b233b5f9b20907c2a131a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}, {"rule": 2, "type": "equivalent", "target": "cf9983c3fe174fb913939e9666d03f02", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8461d768f61b233b5f9b20907c2a131a", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.6.4#9.6.4-52a5f74194c8f736", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "69a1c1ee3e2fd1046eb41dae764406d3", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.5.8#9.5.8-52a5f74194c8f736", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "cf9983c3fe174fb913939e9666d03f02", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.4.13#9.4.13-52a5f74194c8f736", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "02e85494d7f70ee9aec00724e9cea8e9", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.2.22#9.2.22-52a5f74194c8f736", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.3.18-09717ca3220cfa78", "cves": [], "html": "<p>在 MSVC 构建中，识别名为 <code>tcl86.lib</code> 的 Tcl 库（Noah Misch）</p>", "text": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库（Noah Misch）", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5", "source_hash": "9e9b9be854a8e8386188f3722c64ef4d896eb9e386d369944538d95425c75bf8", "section_path": ["变更"], "commit_groups": [], "identity_text": "In MSVC builds, recognize a Tcl library that is named tcl86.lib (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.18/changes/041", "db_id": "8426debdeb9bf3af83fe18cea868f692", "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be", "relations": [{"rule": 2, "type": "equivalent", "target": "09853f1b92e62eeb03a0337b392cd00e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}, {"rule": 2, "type": "equivalent", "target": "3f75c573c809644f4849abb7e6e49a14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}, {"rule": 2, "type": "equivalent", "target": "c6c010717f86305f92265081e43c02b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}, {"rule": 2, "type": "equivalent", "target": "d64aeca94e20b7f5038e441bcca2f806", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}], "version": "9.3.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3f75c573c809644f4849abb7e6e49a14", "kind": "equivalent", "version": "9.6.4", "label": "9.6.4", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.6.4#9.6.4-09717ca3220cfa78", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5"}, {"db_id": "09853f1b92e62eeb03a0337b392cd00e", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.5.8#9.5.8-09717ca3220cfa78", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "d64aeca94e20b7f5038e441bcca2f806", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "MSVC 构建中，识别名为tcl86.lib的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.4.13#9.4.13-9c59be30dd25ecf3", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "c6c010717f86305f92265081e43c02b4", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.2.22#9.2.22-09717ca3220cfa78", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}]}, {"date": "2017-05-11", "build": "9.3.17", "major": "9.3", "minor": 17, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.17", "eol_date": "2018-11-08", "date_text": "2017-05-11", "supported": false, "manual_url": "/docs/9.3/release-9-3-17.html", "source_url": "/docs/release/9.3.17/", "entry_count": 28, "placeholder": false, "content_hash": "0bb6fdb1765b2a12ed755bc4507baf0ba6d316554cd17aa17e106a9cb62d74ca", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 28, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>但是，如果你使用的外部数据服务器依赖用户密码进行认证，请参见下面的第一条变更日志条目。</p>\n<p>不过，如果你是从早于 9.3.16 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-16.html\" title=\"E.10. 版本 9.3.16\">第 E.10 节</a>。</p>", "compatibility_count": 0, "label": "9.3.17", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3429, "support_days": -2883, "entries": [{"id": "9.3.17-79d9b1a29aec7ea1", "cves": ["CVE-2017-7486", "CVE-2017-7547"], "html": "<p>限制<code>pg_user_mappings</code>.<code>umoptions</code>的可见性，以保护作为用户映射选项存储的密码（Michael Paquier、Feike Steenbergen）</p>\n<p>原来的编码允许外部服务器对象的所有者，或任何被他授予服务器 <code>USAGE</code> 权限的人，看到与该服务器关联的所有用户映射的选项。这很可能包括其他用户的密码。调整视图定义以匹配 <code>information_schema.user_mapping_options</code> 的行为，即这些选项对被映射的用户可见，或者当映射针对 <code>PUBLIC</code> 且当前用户是服务器所有者时，或者当前用户是超级用户时可见。（CVE-2017-7486）</p>\n<p>此补丁本身只会修复新 initdb 的数据库中的行为。如果希望在现有数据库中应用此更改，请遵循<a href=\"/docs/9.3/release-9-3-18.html\" title=\"E.8. 版本 9.3.18\">第 E.8 节</a>中 CVE-2017-7547 变更日志条目所示的更正程序。</p>", "text": "限制pg_user_mappings.umoptions的可见性，以保护作为用户映射选项存储的密码（Michael Paquier、Feike Steenbergen） 原来的编码允许外部服务器对象的所有者，或任何被他授予服务器 USAGE 权限的人，看到与该服务器关联的所有用户映射的选项。这很可能包括其他用户的密码。调整视图定义以匹配 information_schema.user_mapping_options 的行为，即这些选项对被映射的用户可见，或者当映射针对 PUBLIC 且当前用户是服务器所有者时，或者当前用户是超级用户时可见。（CVE-2017-7486） 此补丁本身只会修复新 initdb 的数据库中的行为。如果希望在现有数据库中应用此更改，请遵循第 E.8 节中 CVE-2017-7547 变更日志条目所示的更正程序。", "title": "限制pg_user_mappings.umoptions的可见性，以保护作为用户映射选项存储的密码", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "ee31e64de8a6f893cc9dedb359c097d78815672a455de520e09e99613776395f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Restrict visibility of pg_user_mappings.umoptions, to protect passwords stored as user mapping options (Michael Paquier, Feike Steenbergen) The previous coding allowed the owner of a foreign server object, or anyone he has granted server USAGE permission to, to see the options for all user mappings associated with that server. This might well include passwords for other users. Adjust the view definition to match the behavior of information_schema.user_mapping_options, namely that these options are visible to the user being mapped, or if the mapping is for PUBLIC and the current user is the server owner, or if the current user is a superuser. (CVE-2017-7486) By itself, this patch will only fix the behavior in newly initdb'd databases. If you wish to apply this change in an existing database, follow the corrected procedure shown in the changelog entry for CVE-2017-7547, in release-9-3-18 .", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/001", "db_id": "0d7f367be5266b2896555c6d5d0f9bae", "patch_ids": [], "statement_hash": "a1991abdc401e77d6c6ff7785c3d2f3fe8e8b79c80f0a249744ff1d853b70058", "relations": [], "version": "9.3.17", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.17-e7d6271f2c62b341", "cves": ["CVE-2017-7484"], "html": "<p>防止通过泄漏型操作符暴露统计信息（Peter Eisentraut）</p>\n<p>规划器的一些选择率估计函数会对从 <code>pg_statistic</code> 获得的值（如最常见值和直方图条目）应用用户定义操作符。这发生在表权限检查之前，因此恶意用户可以利用这一行为获得他无权读取的表列的这些值。为修复，当操作符的实现函数未被证明防泄漏且调用用户无权读取所需统计信息的表列时，回退到默认估计。实践中大多数情况下至少满足这些准则之一。（CVE-2017-7484）</p>", "text": "防止通过泄漏型操作符暴露统计信息（Peter Eisentraut） 规划器的一些选择率估计函数会对从 pg_statistic 获得的值（如最常见值和直方图条目）应用用户定义操作符。这发生在表权限检查之前，因此恶意用户可以利用这一行为获得他无权读取的表列的这些值。为修复，当操作符的实现函数未被证明防泄漏且调用用户无权读取所需统计信息的表列时，回退到默认估计。实践中大多数情况下至少满足这些准则之一。（CVE-2017-7484）", "title": "防止通过泄漏型操作符暴露统计信息", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "356e17300fb0d7c39d849c640fb723d9912eccd029bddcce89fc02f4e526c904", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent exposure of statistical information via leaky operators (Peter Eisentraut) Some selectivity estimation functions in the planner will apply user-defined operators to values obtained from pg_statistic, such as most common values and histogram entries. This occurs before table permissions are checked, so a nefarious user could exploit the behavior to obtain these values for table columns he does not have permission to read. To fix, fall back to a default estimate if the operator's implementation function is not certified leak-proof and the calling user does not have permission to read the table column whose statistics are needed. At least one of these criteria is satisfied in most cases in practice. (CVE-2017-7484)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/002", "db_id": "b4b75c05a5ed8817af23933ab3fcec8f", "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938", "relations": [{"rule": 2, "type": "equivalent", "target": "55ae062c0da94da274405a272c224d04", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938"}}, {"rule": 2, "type": "equivalent", "target": "828d8b499b868526013825cd04ce744e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938"}}, {"rule": 2, "type": "equivalent", "target": "bf395c1f6a9c6ae6f5fb7af55beb6d79", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938"}}, {"rule": 2, "type": "equivalent", "target": "f34602fe908d4a966c6ed06935e1f04d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938"}}], "version": "9.3.17", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "f34602fe908d4a966c6ed06935e1f04d", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "防止通过泄漏型操作符暴露统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938"}, "url": "/docs/compare/?release=9.6.3#9.6.3-e7d6271f2c62b341", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "bf395c1f6a9c6ae6f5fb7af55beb6d79", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "防止通过泄漏型操作符暴露统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938"}, "url": "/docs/compare/?release=9.5.7#9.5.7-e7d6271f2c62b341", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "55ae062c0da94da274405a272c224d04", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "防止通过泄漏型操作符暴露统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938"}, "url": "/docs/compare/?release=9.4.12#9.4.12-e7d6271f2c62b341", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "828d8b499b868526013825cd04ce744e", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "防止通过泄漏型操作符暴露统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938"}, "url": "/docs/compare/?release=9.2.21#9.2.21-e7d6271f2c62b341", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-0271632bc8a85d01", "cves": ["CVE-2017-7485"], "html": "<p>恢复 <span>libpq</span> 对 <code>PGREQUIRESSL</code> 环境变量的识别（Daniel Gustafsson）</p>\n<p>对这个环境变量的处理在 <span>PostgreSQL</span> 9.3 中被意外丢弃，但其文档还在。这造成了安全隐患，因为用户可能依赖该环境变量强制 SSL 加密连接，但这不再有保证。恢复对该变量的处理，但其优先级低于 <code>PGSSLMODE</code>，以避免破坏在 9.3 之后代码下正常工作的配置。（CVE-2017-7485）</p>", "text": "恢复 libpq 对 PGREQUIRESSL 环境变量的识别（Daniel Gustafsson） 对这个环境变量的处理在 PostgreSQL 9.3 中被意外丢弃，但其文档还在。这造成了安全隐患，因为用户可能依赖该环境变量强制 SSL 加密连接，但这不再有保证。恢复对该变量的处理，但其优先级低于 PGSSLMODE，以避免破坏在 9.3 之后代码下正常工作的配置。（CVE-2017-7485）", "title": "恢复 libpq 对 PGREQUIRESSL 环境变量的识别", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "c9693c36e566d2a389039af6bd7c0e421d72e430848195d029efc50b1e9dff69", "section_path": ["变更"], "commit_groups": [], "identity_text": "Restore libpq's recognition of the PGREQUIRESSL environment variable (Daniel Gustafsson) Processing of this environment variable was unintentionally dropped in PostgreSQL 9.3, but its documentation remained. This creates a security hazard, since users might be relying on the environment variable to force SSL-encrypted connections, but that would no longer be guaranteed. Restore handling of the variable, but give it lower priority than PGSSLMODE, to avoid breaking configurations that work correctly with post-9.3 code. (CVE-2017-7485)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/003", "db_id": "d56eea5fbb1a7d7e8d1587729ca0cf14", "patch_ids": [], "statement_hash": "7a18b2d433b86e8d648028e83dbd0ce8fd745e426e4895860e0e154a27b10b2f", "relations": [{"rule": 2, "type": "equivalent", "target": "4b178f576c006f92f17dafd5040b63d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a18b2d433b86e8d648028e83dbd0ce8fd745e426e4895860e0e154a27b10b2f"}}, {"rule": 2, "type": "equivalent", "target": "8a663d8273a94d653ea47ed9e7245db6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a18b2d433b86e8d648028e83dbd0ce8fd745e426e4895860e0e154a27b10b2f"}}, {"rule": 2, "type": "equivalent", "target": "c438ebbc5a20590f4d47bd544943e961", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a18b2d433b86e8d648028e83dbd0ce8fd745e426e4895860e0e154a27b10b2f"}}], "version": "9.3.17", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "c438ebbc5a20590f4d47bd544943e961", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "恢复 libpq 对 PGREQUIRESSL 环境变量的识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a18b2d433b86e8d648028e83dbd0ce8fd745e426e4895860e0e154a27b10b2f"}, "url": "/docs/compare/?release=9.6.3#9.6.3-0271632bc8a85d01", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "4b178f576c006f92f17dafd5040b63d4", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "恢复 libpq 对 PGREQUIRESSL 环境变量的识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a18b2d433b86e8d648028e83dbd0ce8fd745e426e4895860e0e154a27b10b2f"}, "url": "/docs/compare/?release=9.5.7#9.5.7-0271632bc8a85d01", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "8a663d8273a94d653ea47ed9e7245db6", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "恢复 libpq 对 PGREQUIRESSL 环境变量的识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a18b2d433b86e8d648028e83dbd0ce8fd745e426e4895860e0e154a27b10b2f"}, "url": "/docs/compare/?release=9.4.12#9.4.12-0271632bc8a85d01", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}]}, {"id": "9.3.17-9e46866f9aacc344", "cves": [], "html": "<p>修复未记录索引的<span>“<span>init fork</span>”</span>可能的损坏（Robert Haas、Michael Paquier）</p>\n<p>这可能导致未记录索引在崩溃和重启之后被置为无效状态。这种问题将持续到索引被删除并重建为止。</p>", "text": "修复未记录索引的“init fork”可能的损坏（Robert Haas、Michael Paquier） 这可能导致未记录索引在崩溃和重启之后被置为无效状态。这种问题将持续到索引被删除并重建为止。", "title": "修复未记录索引的“init fork”可能的损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "97489d0a9aa069ca4c56582f52bc241c0a19dfe8b5ae4cc8a5b775d69e0d83a8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible corruption of init forks of unlogged indexes (Robert Haas, Michael Paquier) This could result in an unlogged index being set to an invalid state after a crash and restart. Such a problem would persist until the index was dropped and rebuilt.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/004", "db_id": "3cd432e6bf2afd9768a1ca6668a16b11", "patch_ids": [], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95", "relations": [{"rule": 2, "type": "equivalent", "target": "4211c712a1cafeeda59a3774d3215bb6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95"}}, {"rule": 2, "type": "equivalent", "target": "78b68e1b952f1ca693a0b48ee6e72d22", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95"}}, {"rule": 2, "type": "equivalent", "target": "bd24590e475333f4790f5fe53c61411a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95"}}, {"rule": 2, "type": "equivalent", "target": "ca9e7897b0b819057bd22c3e412c2a31", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ca9e7897b0b819057bd22c3e412c2a31", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "修复未记录索引的“init fork”可能的损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95"}, "url": "/docs/compare/?release=9.6.3#9.6.3-9e46866f9aacc344", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "bd24590e475333f4790f5fe53c61411a", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复未记录索引的“init fork”可能的损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95"}, "url": "/docs/compare/?release=9.5.7#9.5.7-9e46866f9aacc344", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "4211c712a1cafeeda59a3774d3215bb6", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复未记录索引的“init fork”可能的损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95"}, "url": "/docs/compare/?release=9.4.12#9.4.12-9e46866f9aacc344", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "78b68e1b952f1ca693a0b48ee6e72d22", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "修复未记录索引的“init fork”可能的损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95"}, "url": "/docs/compare/?release=9.2.21#9.2.21-9e46866f9aacc344", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-3196986f7692066e", "cves": [], "html": "<p>修复备库重放已预备但未提交的两阶段事务时 <code>pg_subtrans</code> 条目的错误重建（Tom Lane）</p>\n<p>大多数情况下这没有可见的不良影响，但在边界情况下可能导致 <code>pg_subtrans</code> 中的循环引用，可能使检查两阶段事务所修改行的查询陷入无限循环。</p>", "text": "修复备库重放已预备但未提交的两阶段事务时 pg_subtrans 条目的错误重建（Tom Lane） 大多数情况下这没有可见的不良影响，但在边界情况下可能导致 pg_subtrans 中的循环引用，可能使检查两阶段事务所修改行的查询陷入无限循环。", "title": "修复备库重放已预备但未提交的两阶段事务时 pg_subtrans 条目的错误重建", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "e98290481636176c1da6e93d34b3bbfd7ddea2672cb1edf5a47af918bf8505fe", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect reconstruction of pg_subtrans entries when a standby server replays a prepared but uncommitted two-phase transaction (Tom Lane) In most cases this turned out to have no visible ill effects, but in corner cases it could result in circular references in pg_subtrans, potentially causing infinite loops in queries that examine rows modified by the two-phase transaction.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/005", "db_id": "3a8a1634b4824238c9d0aaf6c493651e", "patch_ids": [], "statement_hash": "1646bb71052a636d7ea91585c578d6b36f95ecebe2e215e01cef7972ed52fa36", "relations": [{"rule": 2, "type": "equivalent", "target": "214a1b3821d5a36db45f6c05c6441387", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1646bb71052a636d7ea91585c578d6b36f95ecebe2e215e01cef7972ed52fa36"}}, {"rule": 2, "type": "equivalent", "target": "5565ced6b2c6375ed2a7adcb94929f22", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1646bb71052a636d7ea91585c578d6b36f95ecebe2e215e01cef7972ed52fa36"}}, {"rule": 2, "type": "equivalent", "target": "75c0cadf13ce21c94069e1147a75546c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1646bb71052a636d7ea91585c578d6b36f95ecebe2e215e01cef7972ed52fa36"}}, {"rule": 2, "type": "equivalent", "target": "a3e69383f90c4a60d164e139ede77344", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1646bb71052a636d7ea91585c578d6b36f95ecebe2e215e01cef7972ed52fa36"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "214a1b3821d5a36db45f6c05c6441387", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "修复备库重放已预备但未提交的两阶段事务时 pg_subtrans 条目的错误重建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1646bb71052a636d7ea91585c578d6b36f95ecebe2e215e01cef7972ed52fa36"}, "url": "/docs/compare/?release=9.6.3#9.6.3-3196986f7692066e", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "75c0cadf13ce21c94069e1147a75546c", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复备库重放已预备但未提交的两阶段事务时 pg_subtrans 条目的错误重建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1646bb71052a636d7ea91585c578d6b36f95ecebe2e215e01cef7972ed52fa36"}, "url": "/docs/compare/?release=9.5.7#9.5.7-3196986f7692066e", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "5565ced6b2c6375ed2a7adcb94929f22", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复备库重放已预备但未提交的两阶段事务时 pg_subtrans 条目的错误重建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1646bb71052a636d7ea91585c578d6b36f95ecebe2e215e01cef7972ed52fa36"}, "url": "/docs/compare/?release=9.4.12#9.4.12-3196986f7692066e", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "a3e69383f90c4a60d164e139ede77344", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "修复备库重放已预备但未提交的两阶段事务时 pg_subtrans 条目的错误重建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1646bb71052a636d7ea91585c578d6b36f95ecebe2e215e01cef7972ed52fa36"}, "url": "/docs/compare/?release=9.2.21#9.2.21-3196986f7692066e", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-27e9e8b33ae4d796", "cves": [], "html": "<p>确保扩展脚本中查询的解析能看到紧邻的前一条 DDL 的结果（Julien Rouhaud、Tom Lane）</p>\n<p>由于扩展脚本文件中命令之间缺少缓存刷新步骤，非实用查询可能看不到紧邻的目录更改（如 <code>ALTER TABLE ... RENAME</code>）的效果。</p>", "text": "确保扩展脚本中查询的解析能看到紧邻的前一条 DDL 的结果（Julien Rouhaud、Tom Lane） 由于扩展脚本文件中命令之间缺少缓存刷新步骤，非实用查询可能看不到紧邻的目录更改（如 ALTER TABLE ... RENAME）的效果。", "title": "确保扩展脚本中查询的解析能看到紧邻的前一条 DDL 的结果", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "984c9075ece4152f93a8def878c245a5a7c6c0a06a3b0ce8a96ac799da243115", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure parsing of queries in extension scripts sees the results of immediately-preceding DDL (Julien Rouhaud, Tom Lane) Due to lack of a cache flush step between commands in an extension script file, non-utility queries might not see the effects of an immediately preceding catalog change, such as ALTER TABLE ... RENAME.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/006", "db_id": "5ceac09fd9d4bab483dfd2a50194800a", "patch_ids": [], "statement_hash": "7cd007e80d6ca53d427cc836baf56b899b99eb8558570ed85e8ed98e90181210", "relations": [{"rule": 2, "type": "equivalent", "target": "091e27d5a961049388f50641f611f375", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cd007e80d6ca53d427cc836baf56b899b99eb8558570ed85e8ed98e90181210"}}, {"rule": 2, "type": "equivalent", "target": "0d4f2f20b3107b81483a53a687d59d55", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cd007e80d6ca53d427cc836baf56b899b99eb8558570ed85e8ed98e90181210"}}, {"rule": 2, "type": "equivalent", "target": "1a7d8686c8e50760b935ef10ee916805", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cd007e80d6ca53d427cc836baf56b899b99eb8558570ed85e8ed98e90181210"}}, {"rule": 2, "type": "equivalent", "target": "8b609346c52066839e272fc58725e644", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cd007e80d6ca53d427cc836baf56b899b99eb8558570ed85e8ed98e90181210"}}], "version": "9.3.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1a7d8686c8e50760b935ef10ee916805", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "确保扩展脚本中查询的解析能看到紧邻的前一条 DDL 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cd007e80d6ca53d427cc836baf56b899b99eb8558570ed85e8ed98e90181210"}, "url": "/docs/compare/?release=9.6.3#9.6.3-27e9e8b33ae4d796", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "0d4f2f20b3107b81483a53a687d59d55", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "确保扩展脚本中查询的解析能看到紧邻的前一条 DDL 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cd007e80d6ca53d427cc836baf56b899b99eb8558570ed85e8ed98e90181210"}, "url": "/docs/compare/?release=9.5.7#9.5.7-27e9e8b33ae4d796", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "8b609346c52066839e272fc58725e644", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "确保扩展脚本中查询的解析能看到紧邻的前一条 DDL 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cd007e80d6ca53d427cc836baf56b899b99eb8558570ed85e8ed98e90181210"}, "url": "/docs/compare/?release=9.4.12#9.4.12-27e9e8b33ae4d796", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "091e27d5a961049388f50641f611f375", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "确保扩展脚本中查询的解析能看到紧邻的前一条 DDL 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cd007e80d6ca53d427cc836baf56b899b99eb8558570ed85e8ed98e90181210"}, "url": "/docs/compare/?release=9.2.21#9.2.21-27e9e8b33ae4d796", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-e2a2f63a7659bfc5", "cves": [], "html": "<p>当 <code>ALTER TABLE ... ALTER COLUMN TYPE</code> 重建现有索引时跳过表空间权限检查（Noah Misch）</p>\n<p>如果调用用户当前对包含索引的表空间没有 <code>CREATE</code> 权限，命令就会失败。这种行为似乎无益，因此跳过检查，允许索引在原地重建。</p>", "text": "当 ALTER TABLE ... ALTER COLUMN TYPE 重建现有索引时跳过表空间权限检查（Noah Misch） 如果调用用户当前对包含索引的表空间没有 CREATE 权限，命令就会失败。这种行为似乎无益，因此跳过检查，允许索引在原地重建。", "title": "当 ALTER TABLE ... ALTER COLUMN TYPE 重建现有索引时跳过表空间权限检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "af8c71b5295519e056fae5be3fa25978e42be4bf8a28c1677c9ecf324362802e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Skip tablespace privilege checks when ALTER TABLE ... ALTER COLUMN TYPE rebuilds an existing index (Noah Misch) The command failed if the calling user did not currently have CREATE privilege for the tablespace containing the index. That behavior seems unhelpful, so skip the check, allowing the index to be rebuilt where it is.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/007", "db_id": "e56aa9bff7867a1f9479bee0dc1ff003", "patch_ids": [], "statement_hash": "e3c9d71ababcb3e97b2d38558157f78acc3278e6fa2b08f35fd85bc457ef276d", "relations": [{"rule": 2, "type": "equivalent", "target": "18c29c84842d816ad4eb40f996fba562", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3c9d71ababcb3e97b2d38558157f78acc3278e6fa2b08f35fd85bc457ef276d"}}, {"rule": 2, "type": "equivalent", "target": "4e28fe4f9a051cff71b36536cbe0197c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3c9d71ababcb3e97b2d38558157f78acc3278e6fa2b08f35fd85bc457ef276d"}}, {"rule": 2, "type": "equivalent", "target": "c38965b3989e4d845a4faf6c853a63b2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3c9d71ababcb3e97b2d38558157f78acc3278e6fa2b08f35fd85bc457ef276d"}}, {"rule": 2, "type": "equivalent", "target": "ed422045ecccee371ff7ba838d17ba51", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3c9d71ababcb3e97b2d38558157f78acc3278e6fa2b08f35fd85bc457ef276d"}}], "version": "9.3.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "18c29c84842d816ad4eb40f996fba562", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "当 ALTER TABLE ... ALTER COLUMN TYPE 重建现有索引时跳过表空间权限检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3c9d71ababcb3e97b2d38558157f78acc3278e6fa2b08f35fd85bc457ef276d"}, "url": "/docs/compare/?release=9.6.3#9.6.3-e2a2f63a7659bfc5", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "ed422045ecccee371ff7ba838d17ba51", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "当 ALTER TABLE ... ALTER COLUMN TYPE 重建现有索引时跳过表空间权限检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3c9d71ababcb3e97b2d38558157f78acc3278e6fa2b08f35fd85bc457ef276d"}, "url": "/docs/compare/?release=9.5.7#9.5.7-e2a2f63a7659bfc5", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "4e28fe4f9a051cff71b36536cbe0197c", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "当 ALTER TABLE ... ALTER COLUMN TYPE 重建现有索引时跳过表空间权限检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3c9d71ababcb3e97b2d38558157f78acc3278e6fa2b08f35fd85bc457ef276d"}, "url": "/docs/compare/?release=9.4.12#9.4.12-e2a2f63a7659bfc5", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "c38965b3989e4d845a4faf6c853a63b2", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "当 ALTER TABLE ... ALTER COLUMN TYPE 重建现有索引时跳过表空间权限检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3c9d71ababcb3e97b2d38558157f78acc3278e6fa2b08f35fd85bc457ef276d"}, "url": "/docs/compare/?release=9.2.21#9.2.21-e2a2f63a7659bfc5", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-8379ba9bba11cc33", "cves": [], "html": "<p>修复 <code>ALTER TABLE ... VALIDATE CONSTRAINT</code> 在约束被标记 <code>NO INHERIT</code> 时不递归到子表（Amit Langote）</p>\n<p>此修复防止子表中不存在匹配约束时不需要的 <span>“<span>constraint does not exist</span>”</span> 失败。</p>", "text": "修复 ALTER TABLE ... VALIDATE CONSTRAINT 在约束被标记 NO INHERIT 时不递归到子表（Amit Langote） 此修复防止子表中不存在匹配约束时不需要的 “constraint does not exist” 失败。", "title": "修复 ALTER TABLE ... VALIDATE CONSTRAINT 在约束被标记 NO INHERIT 时不递归到子表", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "d274dc8059c34097046f2168454c889cf70b0badadeaa397fceec4aa7a43bf04", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ALTER TABLE ... VALIDATE CONSTRAINT to not recurse to child tables when the constraint is marked NO INHERIT (Amit Langote) This fix prevents unwanted constraint does not exist failures when no matching constraint is present in the child tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/008", "db_id": "cb079a253c7af9722536a1bd69e85265", "patch_ids": [], "statement_hash": "506e016e739d202330f73387c06195571792dfa786d626323d84c373db03b4a7", "relations": [{"rule": 2, "type": "equivalent", "target": "81d23cfd99a39dc495d69e569baa889e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506e016e739d202330f73387c06195571792dfa786d626323d84c373db03b4a7"}}, {"rule": 2, "type": "equivalent", "target": "879aff98f14e268327e22c922d4e9089", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506e016e739d202330f73387c06195571792dfa786d626323d84c373db03b4a7"}}, {"rule": 2, "type": "equivalent", "target": "9133d2a12ec3fd2b0a6cea89d097df83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506e016e739d202330f73387c06195571792dfa786d626323d84c373db03b4a7"}}, {"rule": 2, "type": "equivalent", "target": "dae34339a2ec9467a3ace74f31bb3942", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506e016e739d202330f73387c06195571792dfa786d626323d84c373db03b4a7"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9133d2a12ec3fd2b0a6cea89d097df83", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "修复 ALTER TABLE ... VALIDATE CONSTRAINT 在约束被标记 NO INHERIT 时不递归到子表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506e016e739d202330f73387c06195571792dfa786d626323d84c373db03b4a7"}, "url": "/docs/compare/?release=9.6.3#9.6.3-8379ba9bba11cc33", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "879aff98f14e268327e22c922d4e9089", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 ALTER TABLE ... VALIDATE CONSTRAINT 在约束被标记 NO INHERIT 时不递归到子表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506e016e739d202330f73387c06195571792dfa786d626323d84c373db03b4a7"}, "url": "/docs/compare/?release=9.5.7#9.5.7-8379ba9bba11cc33", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "81d23cfd99a39dc495d69e569baa889e", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复 ALTER TABLE ... VALIDATE CONSTRAINT 在约束被标记 NO INHERIT 时不递归到子表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506e016e739d202330f73387c06195571792dfa786d626323d84c373db03b4a7"}, "url": "/docs/compare/?release=9.4.12#9.4.12-8379ba9bba11cc33", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "dae34339a2ec9467a3ace74f31bb3942", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "修复 ALTER TABLE ... VALIDATE CONSTRAINT 在约束被标记 NO INHERIT 时不递归到子表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506e016e739d202330f73387c06195571792dfa786d626323d84c373db03b4a7"}, "url": "/docs/compare/?release=9.2.21#9.2.21-8379ba9bba11cc33", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-f13c3c418359cf9b", "cves": [], "html": "<p>修复 <code>VACUUM</code> 正确考虑因页 pin 冲突而无法扫描的页（Andrew Gierth）</p>\n<p>这往往导致低估表中的元组数。在小型高争用表的最坏情况下，<code>VACUUM</code> 可能错误地报告表不包含任何元组，导致非常糟糕的计划选择。</p>", "text": "修复 VACUUM 正确考虑因页 pin 冲突而无法扫描的页（Andrew Gierth） 这往往导致低估表中的元组数。在小型高争用表的最坏情况下，VACUUM 可能错误地报告表不包含任何元组，导致非常糟糕的计划选择。", "title": "修复 VACUUM 正确考虑因页 pin 冲突而无法扫描的页", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "41e9f26c06fbff14261498b886cb7bb75db1861ac3de56eae011302d722f699d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix VACUUM to account properly for pages that could not be scanned due to conflicting page pins (Andrew Gierth) This tended to lead to underestimation of the number of tuples in the table. In the worst case of a small heavily-contended table, VACUUM could incorrectly report that the table contained no tuples, leading to very bad planning choices.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/009", "db_id": "4f92bff860b6c34082de43b62fb3256d", "patch_ids": [], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85", "relations": [{"rule": 2, "type": "equivalent", "target": "2d36e5ed81ee210a164b25727a73040f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85"}}, {"rule": 2, "type": "equivalent", "target": "67e235deb3d83dbacc19f40a3784496f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85"}}, {"rule": 2, "type": "equivalent", "target": "71333b3f0782b3c754f54310fafc44f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85"}}, {"rule": 2, "type": "equivalent", "target": "738d1e7d0259c62f5e61aedc1e31d390", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "67e235deb3d83dbacc19f40a3784496f", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "修复 VACUUM 正确考虑因页 pin 冲突而无法扫描的页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85"}, "url": "/docs/compare/?release=9.6.3#9.6.3-f13c3c418359cf9b", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "2d36e5ed81ee210a164b25727a73040f", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 VACUUM 正确考虑因页 pin 冲突而无法扫描的页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85"}, "url": "/docs/compare/?release=9.5.7#9.5.7-f13c3c418359cf9b", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "738d1e7d0259c62f5e61aedc1e31d390", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复 VACUUM 正确考虑因页 pin 冲突而无法扫描的页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85"}, "url": "/docs/compare/?release=9.4.12#9.4.12-f13c3c418359cf9b", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "71333b3f0782b3c754f54310fafc44f2", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "修复 VACUUM 正确考虑因页 pin 冲突而无法扫描的页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85"}, "url": "/docs/compare/?release=9.2.21#9.2.21-f13c3c418359cf9b", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-573e4331b3c8ac58", "cves": [], "html": "<p>确保哈希连接中的批量元组传输循环可被查询取消请求中断（Tom Lane、Thomas Munro）</p>", "text": "确保哈希连接中的批量元组传输循环可被查询取消请求中断（Tom Lane、Thomas Munro）", "title": "确保哈希连接中的批量元组传输循环可被查询取消请求中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "1607f1f0650306afd724a89bb6264f8f8acc9cf6aba843827b2128ab6dd65651", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that bulk-tuple-transfer loops within a hash join are interruptible by query cancel requests (Tom Lane, Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/010", "db_id": "44a80c2bde78d80851b1a09ce27946cd", "patch_ids": [], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9", "relations": [{"rule": 2, "type": "equivalent", "target": "4ebb29373a0e5c0d4208e6dd79e23c12", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9"}}, {"rule": 2, "type": "equivalent", "target": "b9dbfae1d26849c91b891fd3f3043668", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9"}}, {"rule": 2, "type": "equivalent", "target": "e032b7048304783de6b9cf719a0a16f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9"}}, {"rule": 2, "type": "equivalent", "target": "efdfecf5ad98e461aed2bca8807b220a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9"}}], "version": "9.3.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "efdfecf5ad98e461aed2bca8807b220a", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "确保哈希连接中的批量元组传输循环可被查询取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9"}, "url": "/docs/compare/?release=9.6.3#9.6.3-573e4331b3c8ac58", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "b9dbfae1d26849c91b891fd3f3043668", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "确保哈希连接中的批量元组传输循环可被查询取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9"}, "url": "/docs/compare/?release=9.5.7#9.5.7-573e4331b3c8ac58", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "4ebb29373a0e5c0d4208e6dd79e23c12", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "确保哈希连接中的批量元组传输循环可被查询取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9"}, "url": "/docs/compare/?release=9.4.12#9.4.12-573e4331b3c8ac58", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "e032b7048304783de6b9cf719a0a16f0", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "确保哈希连接中的批量元组传输循环可被查询取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9"}, "url": "/docs/compare/?release=9.2.21#9.2.21-573e4331b3c8ac58", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-70ab2a8c53cd53f0", "cves": [], "html": "<p>修复 <code>cursor_to_xml()</code> 在 <em><code>tableforest</code></em> = false 时产生有效输出（Thomas Munro、Peter Eisentraut）</p>\n<p>此前它未能产生包裹的 <code>&lt;table&gt;</code> 元素。</p>", "text": "修复 cursor_to_xml() 在 tableforest = false 时产生有效输出（Thomas Munro、Peter Eisentraut） 此前它未能产生包裹的 <table> 元素。", "title": "修复 cursor_to_xml() 在 tableforest = false 时产生有效输出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "a900a361cd878de9aee2acf2043eb9381a6ac5a23db67c44edd4617e2264baf6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix cursor_to_xml() to produce valid output with tableforest = false (Thomas Munro, Peter Eisentraut) Previously it failed to produce a wrapping <table> element.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/011", "db_id": "6782aa11f486e6dce21d003400c6316d", "patch_ids": [], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490", "relations": [{"rule": 2, "type": "equivalent", "target": "6ccdf0d8a724e6f40fc30cb51ec3a46d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490"}}, {"rule": 2, "type": "equivalent", "target": "71a2d08a4146610a9054ec7ab46228ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490"}}, {"rule": 2, "type": "equivalent", "target": "d69dd80d6f7cf03a1dd90e67a935764d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490"}}, {"rule": 2, "type": "equivalent", "target": "f2b511c3be71d4726129f9b69f4df2e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f2b511c3be71d4726129f9b69f4df2e2", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "修复 cursor_to_xml() 在 tableforest = false 时产生有效输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490"}, "url": "/docs/compare/?release=9.6.3#9.6.3-70ab2a8c53cd53f0", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "6ccdf0d8a724e6f40fc30cb51ec3a46d", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 cursor_to_xml() 在 tableforest = false 时产生有效输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490"}, "url": "/docs/compare/?release=9.5.7#9.5.7-70ab2a8c53cd53f0", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "d69dd80d6f7cf03a1dd90e67a935764d", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复 cursor_to_xml() 在 tableforest = false 时产生有效输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490"}, "url": "/docs/compare/?release=9.4.12#9.4.12-70ab2a8c53cd53f0", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "71a2d08a4146610a9054ec7ab46228ec", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "修复 cursor_to_xml() 在 tableforest = false 时产生有效输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490"}, "url": "/docs/compare/?release=9.2.21#9.2.21-70ab2a8c53cd53f0", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-b09c96a112d993ba", "cves": [], "html": "<p>改进 <code>pg_timezone_names</code> 视图的性能（Tom Lane、David Rowley）</p>", "text": "改进 pg_timezone_names 视图的性能（Tom Lane、David Rowley）", "title": "改进 pg_timezone_names 视图的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "6c8822393835985460485c75fcca2bce7b1c32ef537174649a33ba51b4de4371", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve performance of pg_timezone_names view (Tom Lane, David Rowley)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/012", "db_id": "1124e364e189eb0d748d1b02e542e1be", "patch_ids": [], "statement_hash": "31dbd0a644a243e4adffbf8136c94ff3bbc7ccbe396a76002a31638e4fc62908", "relations": [{"rule": 2, "type": "equivalent", "target": "236f2b6361319246ea1d857e4791c6dc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31dbd0a644a243e4adffbf8136c94ff3bbc7ccbe396a76002a31638e4fc62908"}}, {"rule": 2, "type": "equivalent", "target": "8b8cf67d7ebc0041385601b8cf5f85bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31dbd0a644a243e4adffbf8136c94ff3bbc7ccbe396a76002a31638e4fc62908"}}, {"rule": 2, "type": "equivalent", "target": "bc0935752327db0d1f99bb33f766c37b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31dbd0a644a243e4adffbf8136c94ff3bbc7ccbe396a76002a31638e4fc62908"}}, {"rule": 2, "type": "equivalent", "target": "ece36a129082ae76059cfde94d3e0932", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31dbd0a644a243e4adffbf8136c94ff3bbc7ccbe396a76002a31638e4fc62908"}}], "version": "9.3.17", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "236f2b6361319246ea1d857e4791c6dc", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "改进 pg_timezone_names 视图的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31dbd0a644a243e4adffbf8136c94ff3bbc7ccbe396a76002a31638e4fc62908"}, "url": "/docs/compare/?release=9.6.3#9.6.3-b09c96a112d993ba", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "bc0935752327db0d1f99bb33f766c37b", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "改进 pg_timezone_names 视图的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31dbd0a644a243e4adffbf8136c94ff3bbc7ccbe396a76002a31638e4fc62908"}, "url": "/docs/compare/?release=9.5.7#9.5.7-b09c96a112d993ba", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "ece36a129082ae76059cfde94d3e0932", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "改进 pg_timezone_names 视图的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31dbd0a644a243e4adffbf8136c94ff3bbc7ccbe396a76002a31638e4fc62908"}, "url": "/docs/compare/?release=9.4.12#9.4.12-b09c96a112d993ba", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "8b8cf67d7ebc0041385601b8cf5f85bb", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "改进 pg_timezone_names 视图的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31dbd0a644a243e4adffbf8136c94ff3bbc7ccbe396a76002a31638e4fc62908"}, "url": "/docs/compare/?release=9.2.21#9.2.21-b09c96a112d993ba", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-ffa8b61f323838b5", "cves": [], "html": "<p>修复对 <code>lseek()</code> 和 <code>close()</code> 边界情况错误的草率处理（Tom Lane）</p>\n<p>这两个系统调用在典型情况下不太可能失败，但如果失败，<code>fd.c</code> 会变得相当混乱。</p>", "text": "修复对 lseek() 和 close() 边界情况错误的草率处理（Tom Lane） 这两个系统调用在典型情况下不太可能失败，但如果失败，fd.c 会变得相当混乱。", "title": "修复对 lseek() 和 close() 边界情况错误的草率处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "28c58d83608974a560407359b595fc634feb0491f989dedbd7d6a8c52f530253", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix sloppy handling of corner-case errors from lseek() and close() (Tom Lane) Neither of these system calls are likely to fail in typical situations, but if they did, fd.c could get quite confused.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/013", "db_id": "9359286cdff778e386815f1dbce778ce", "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b", "relations": [{"rule": 2, "type": "equivalent", "target": "ac8b1aa70596f719314f02cea64e7025", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b"}}, {"rule": 2, "type": "equivalent", "target": "b3985fc6dd5f667ff2a6b6c25477062c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b"}}, {"rule": 2, "type": "equivalent", "target": "b59989cbac0f9d4eaf625ec147b73519", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b"}}, {"rule": 2, "type": "equivalent", "target": "b8e43bec9f74c903ae6184d7b8e882bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b59989cbac0f9d4eaf625ec147b73519", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "修复对 lseek() 和 close() 边界情况错误的草率处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b"}, "url": "/docs/compare/?release=9.6.3#9.6.3-ffa8b61f323838b5", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "b8e43bec9f74c903ae6184d7b8e882bf", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复对 lseek() 和 close() 边界情况错误的草率处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b"}, "url": "/docs/compare/?release=9.5.7#9.5.7-ffa8b61f323838b5", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "b3985fc6dd5f667ff2a6b6c25477062c", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复对 lseek() 和 close() 边界情况错误的草率处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b"}, "url": "/docs/compare/?release=9.4.12#9.4.12-ffa8b61f323838b5", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "ac8b1aa70596f719314f02cea64e7025", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "修复对 lseek() 和 close() 边界情况错误的草率处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b"}, "url": "/docs/compare/?release=9.2.21#9.2.21-ffa8b61f323838b5", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-90d835ddeb581806", "cves": [], "html": "<p>修复对 postmaster 是否作为 Windows 服务运行的不正确检查（Michael Paquier）</p>\n<p>这可能导致在事件日志不可访问时尝试写入它，以至于完全不进行日志记录。</p>", "text": "修复对 postmaster 是否作为 Windows 服务运行的不正确检查（Michael Paquier） 这可能导致在事件日志不可访问时尝试写入它，以至于完全不进行日志记录。", "title": "修复对 postmaster 是否作为 Windows 服务运行的不正确检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "ef5430a5e37cc17a3be28170f67c2eff1a109104b81e05b45f6542542bc8a936", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect check for whether postmaster is running as a Windows service (Michael Paquier) This could result in attempting to write to the event log when that isn't accessible, so that no logging happens at all.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/014", "db_id": "6275cc687f6628ec69c1683662898c05", "patch_ids": [], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b", "relations": [{"rule": 2, "type": "equivalent", "target": "79a58e516acca5173065c9d55bae1b26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b"}}, {"rule": 2, "type": "equivalent", "target": "9450e3d151e0417afada492e7e6f858b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b"}}, {"rule": 2, "type": "equivalent", "target": "9649f7a3dda91e92acee76aab58c504e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b"}}, {"rule": 2, "type": "equivalent", "target": "f02b4973526bea02ef574a08a7763a02", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f02b4973526bea02ef574a08a7763a02", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "修复对 postmaster 是否作为 Windows 服务运行的不正确检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b"}, "url": "/docs/compare/?release=9.6.3#9.6.3-90d835ddeb581806", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "9450e3d151e0417afada492e7e6f858b", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复对 postmaster 是否作为 Windows 服务运行的不正确检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b"}, "url": "/docs/compare/?release=9.5.7#9.5.7-90d835ddeb581806", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "9649f7a3dda91e92acee76aab58c504e", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复对 postmaster 是否作为 Windows 服务运行的不正确检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b"}, "url": "/docs/compare/?release=9.4.12#9.4.12-90d835ddeb581806", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "79a58e516acca5173065c9d55bae1b26", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "修复对 postmaster 是否作为 Windows 服务运行的不正确检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b"}, "url": "/docs/compare/?release=9.2.21#9.2.21-90d835ddeb581806", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-b395898142c232d4", "cves": [], "html": "<p>修复 <span>ecpg</span> 支持 <code>COMMIT PREPARED</code> 和 <code>ROLLBACK PREPARED</code>（Masahiko Sawada）</p>", "text": "修复 ecpg 支持 COMMIT PREPARED 和 ROLLBACK PREPARED（Masahiko Sawada）", "title": "修复 ecpg 支持 COMMIT PREPARED 和 ROLLBACK PREPARED", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "6c943f51ae18ab4739f7ac86380e66bb4f3fc7a459515432264791311271fbdd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg to support COMMIT PREPARED and ROLLBACK PREPARED (Masahiko Sawada)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/015", "db_id": "cae3c7f6c3cb7f52f71bc666ab7344b5", "patch_ids": [], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e", "relations": [{"rule": 2, "type": "equivalent", "target": "0822458734bed20d1e311f4858685747", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e"}}, {"rule": 2, "type": "equivalent", "target": "c1e6ead4688d56ae54bbaf9b96c8abf6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e"}}, {"rule": 2, "type": "equivalent", "target": "d7c07ac2c12bfbef08bfbfba0f032d84", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e"}}, {"rule": 2, "type": "equivalent", "target": "f4011e211875fa30fc0175713457321c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c1e6ead4688d56ae54bbaf9b96c8abf6", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "修复 ecpg 支持 COMMIT PREPARED 和 ROLLBACK PREPARED", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e"}, "url": "/docs/compare/?release=9.6.3#9.6.3-b395898142c232d4", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "0822458734bed20d1e311f4858685747", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 ecpg 支持 COMMIT PREPARED 和 ROLLBACK PREPARED", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e"}, "url": "/docs/compare/?release=9.5.7#9.5.7-b395898142c232d4", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "d7c07ac2c12bfbef08bfbfba0f032d84", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复 ecpg 支持 COMMIT PREPARED 和 ROLLBACK PREPARED", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e"}, "url": "/docs/compare/?release=9.4.12#9.4.12-b395898142c232d4", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "f4011e211875fa30fc0175713457321c", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "修复 ecpg 支持 COMMIT PREPARED 和 ROLLBACK PREPARED", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e"}, "url": "/docs/compare/?release=9.2.21#9.2.21-b395898142c232d4", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-c64bec1409360fce", "cves": [], "html": "<p>修复 <span>ecpg</span> 中处理美元引用字符串字面量时的双重释放错误（Michael Meskes）</p>", "text": "修复 ecpg 中处理美元引用字符串字面量时的双重释放错误（Michael Meskes）", "title": "修复 ecpg 中处理美元引用字符串字面量时的双重释放错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "9eef0013d54baba9008a02ff3d60378c106f81e6c3a4b42efccfd10fb63adcd3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix a double-free error when processing dollar-quoted string literals in ecpg (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/016", "db_id": "80062188b58d968c89c3a76019879bbb", "patch_ids": [], "statement_hash": "51102047d71f6c94d5e9141529efd13c57330e95d0f0c2cef4bca9a525a83556", "relations": [{"rule": 2, "type": "equivalent", "target": "09f36b6d33c556bb9b0a079627719efe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "51102047d71f6c94d5e9141529efd13c57330e95d0f0c2cef4bca9a525a83556"}}, {"rule": 2, "type": "equivalent", "target": "3cded5b869b937f061ae3ee53e74f1c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "51102047d71f6c94d5e9141529efd13c57330e95d0f0c2cef4bca9a525a83556"}}, {"rule": 2, "type": "equivalent", "target": "565a5bfa2b411f4911e30010b4b8073d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "51102047d71f6c94d5e9141529efd13c57330e95d0f0c2cef4bca9a525a83556"}}, {"rule": 2, "type": "equivalent", "target": "8133968fc3ae2c5c1a0616090a77acb1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "51102047d71f6c94d5e9141529efd13c57330e95d0f0c2cef4bca9a525a83556"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "565a5bfa2b411f4911e30010b4b8073d", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "修复 ecpg 中处理美元引用字符串字面量时的双重释放错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "51102047d71f6c94d5e9141529efd13c57330e95d0f0c2cef4bca9a525a83556"}, "url": "/docs/compare/?release=9.6.3#9.6.3-c64bec1409360fce", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "09f36b6d33c556bb9b0a079627719efe", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 ecpg 中处理美元引用字符串字面量时的双重释放错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "51102047d71f6c94d5e9141529efd13c57330e95d0f0c2cef4bca9a525a83556"}, "url": "/docs/compare/?release=9.5.7#9.5.7-c64bec1409360fce", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "8133968fc3ae2c5c1a0616090a77acb1", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复 ecpg 中处理美元引用字符串字面量时的双重释放错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "51102047d71f6c94d5e9141529efd13c57330e95d0f0c2cef4bca9a525a83556"}, "url": "/docs/compare/?release=9.4.12#9.4.12-c64bec1409360fce", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "3cded5b869b937f061ae3ee53e74f1c3", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "修复 ecpg 中处理美元引用字符串字面量时的双重释放错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "51102047d71f6c94d5e9141529efd13c57330e95d0f0c2cef4bca9a525a83556"}, "url": "/docs/compare/?release=9.2.21#9.2.21-c64bec1409360fce", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-e3e53ebfe92e9014", "cves": [], "html": "<p>在 <span>pg_dump</span> 中，修复某些类型数据库对象的注释和安全标签的模式和所有者标记错误（Giuseppe Broccolo、Tom Lane）</p>\n<p>简单情况下这没有不良影响；但例如，选择性模式恢复可能遗漏本应包含的注释，因为它们没有被标记为属于其相关对象的模式。</p>", "text": "在 pg_dump 中，修复某些类型数据库对象的注释和安全标签的模式和所有者标记错误（Giuseppe Broccolo、Tom Lane） 简单情况下这没有不良影响；但例如，选择性模式恢复可能遗漏本应包含的注释，因为它们没有被标记为属于其相关对象的模式。", "title": "在 pg_dump 中，修复某些类型数据库对象的注释和安全标签的模式和所有者标记错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "b8b981d92f9ef43c18bd23d4695b0ffc5019d3084287f4d90415f12df55ccc22", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_dump, fix incorrect schema and owner marking for comments and security labels of some types of database objects (Giuseppe Broccolo, Tom Lane) In simple cases this caused no ill effects; but for example, a schema-selective restore might omit comments it should include, because they were not marked as belonging to the schema of their associated object.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/017", "db_id": "b363a62d20e26cc8516d8ae2e60837f3", "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f", "relations": [{"rule": 2, "type": "equivalent", "target": "1b88a61efd4b59ad7eb3a3e0a221d3c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f"}}, {"rule": 2, "type": "equivalent", "target": "c8e1f852425b675b4c34ce12b5635434", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f"}}, {"rule": 2, "type": "equivalent", "target": "d5c4e795dd7e0d67ab5916fb5cffed98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f"}}, {"rule": 2, "type": "equivalent", "target": "e0fb91ed71e4b72b225144f014fd4e7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d5c4e795dd7e0d67ab5916fb5cffed98", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "在 pg_dump 中，修复某些类型数据库对象的注释和安全标签的模式和所有者标记错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f"}, "url": "/docs/compare/?release=9.6.3#9.6.3-e3e53ebfe92e9014", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "1b88a61efd4b59ad7eb3a3e0a221d3c9", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "在 pg_dump 中，修复某些类型数据库对象的注释和安全标签的模式和所有者标记错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f"}, "url": "/docs/compare/?release=9.5.7#9.5.7-e3e53ebfe92e9014", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "c8e1f852425b675b4c34ce12b5635434", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "在 pg_dump 中，修复某些类型数据库对象的注释和安全标签的模式和所有者标记错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f"}, "url": "/docs/compare/?release=9.4.12#9.4.12-e3e53ebfe92e9014", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "e0fb91ed71e4b72b225144f014fd4e7f", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "在 pg_dump 中，修复某些类型数据库对象的注释和安全标签的模式和所有者标记错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f"}, "url": "/docs/compare/?release=9.2.21#9.2.21-e3e53ebfe92e9014", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-a0aa5a48b4ead8ad", "cves": [], "html": "<p>避免 SQL 对象名包含换行时 <code>pg_restore -l</code> 发出无效列表文件（Tom Lane）</p>\n<p>用空格替换换行，这足以使输出对 <code>pg_restore -L</code> 的用途有效。</p>", "text": "避免 SQL 对象名包含换行时 pg_restore -l 发出无效列表文件（Tom Lane） 用空格替换换行，这足以使输出对 pg_restore -L 的用途有效。", "title": "避免 SQL 对象名包含换行时 pg_restore -l 发出无效列表文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "b131a630854dedf1ca86b51c8df98f69a1891ad146a5d97f2f4675035d4cd5b9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid emitting an invalid list file in pg_restore -l when SQL object names contain newlines (Tom Lane) Replace newlines by spaces, which is sufficient to make the output valid for pg_restore -L's purposes.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/018", "db_id": "3365616de376037de9c9bf922a66b607", "patch_ids": [], "statement_hash": "58cd3427250e7256fda61045b6e69f3d4733c269203871cd3e4c038b2ccfb81b", "relations": [{"rule": 2, "type": "equivalent", "target": "08554c58ef3ec46c728a8e32daa48b82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "58cd3427250e7256fda61045b6e69f3d4733c269203871cd3e4c038b2ccfb81b"}}, {"rule": 2, "type": "equivalent", "target": "4b77fc30acaa4624b23cd08916245613", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "58cd3427250e7256fda61045b6e69f3d4733c269203871cd3e4c038b2ccfb81b"}}, {"rule": 2, "type": "equivalent", "target": "ee512a5f25af8dedcd6d91fec4fcde0b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "58cd3427250e7256fda61045b6e69f3d4733c269203871cd3e4c038b2ccfb81b"}}, {"rule": 2, "type": "equivalent", "target": "f92a0a253026c6248a36e63804c94a66", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "58cd3427250e7256fda61045b6e69f3d4733c269203871cd3e4c038b2ccfb81b"}}], "version": "9.3.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "08554c58ef3ec46c728a8e32daa48b82", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "避免 SQL 对象名包含换行时 pg_restore -l 发出无效列表文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "58cd3427250e7256fda61045b6e69f3d4733c269203871cd3e4c038b2ccfb81b"}, "url": "/docs/compare/?release=9.6.3#9.6.3-a0aa5a48b4ead8ad", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "4b77fc30acaa4624b23cd08916245613", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "避免 SQL 对象名包含换行时 pg_restore -l 发出无效列表文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "58cd3427250e7256fda61045b6e69f3d4733c269203871cd3e4c038b2ccfb81b"}, "url": "/docs/compare/?release=9.5.7#9.5.7-a0aa5a48b4ead8ad", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "ee512a5f25af8dedcd6d91fec4fcde0b", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "避免 SQL 对象名包含换行时 pg_restore -l 发出无效列表文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "58cd3427250e7256fda61045b6e69f3d4733c269203871cd3e4c038b2ccfb81b"}, "url": "/docs/compare/?release=9.4.12#9.4.12-a0aa5a48b4ead8ad", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "f92a0a253026c6248a36e63804c94a66", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "避免 SQL 对象名包含换行时 pg_restore -l 发出无效列表文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "58cd3427250e7256fda61045b6e69f3d4733c269203871cd3e4c038b2ccfb81b"}, "url": "/docs/compare/?release=9.2.21#9.2.21-a0aa5a48b4ead8ad", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-0f6f30fdae445985", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 传输附加到<span>“<span>大对象</span>”</span>（blob）的注释和安全标签（Stephen Frost）</p>\n<p>此前，blob 被正确传输到新数据库，但附加到它们的任何注释或安全标签都丢失了。</p>", "text": "修复 pg_upgrade 传输附加到“大对象”（blob）的注释和安全标签（Stephen Frost） 此前，blob 被正确传输到新数据库，但附加到它们的任何注释或安全标签都丢失了。", "title": "修复 pg_upgrade 传输附加到“大对象”（blob）的注释和安全标签", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "cd52404f52a722b69143349f84431699c28a7913ffca1dfd159f2836f5596003", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade to transfer comments and security labels attached to large objects (blobs) (Stephen Frost) Previously, blobs were correctly transferred to the new database, but any comments or security labels attached to them were lost.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/019", "db_id": "d1f3dcf547f89695a43df4a44e4fe708", "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033", "relations": [{"rule": 2, "type": "equivalent", "target": "019b6567f8d03f3868a1551f55931125", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033"}}, {"rule": 2, "type": "equivalent", "target": "229627656ae5e9ea451f11aa4c7e3b5e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033"}}, {"rule": 2, "type": "equivalent", "target": "3664824fe19863ebd53a0371c16bb1f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033"}}, {"rule": 2, "type": "equivalent", "target": "37805debde5750c6a39d284fc3f28fcc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3664824fe19863ebd53a0371c16bb1f3", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "修复 pg_upgrade 传输附加到“大对象”（blob）的注释和安全标签", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033"}, "url": "/docs/compare/?release=9.6.3#9.6.3-0f6f30fdae445985", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "229627656ae5e9ea451f11aa4c7e3b5e", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 pg_upgrade 传输附加到“大对象”（blob）的注释和安全标签", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033"}, "url": "/docs/compare/?release=9.5.7#9.5.7-0f6f30fdae445985", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "37805debde5750c6a39d284fc3f28fcc", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复 pg_upgrade 传输附加到“大对象”（blob）的注释和安全标签", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033"}, "url": "/docs/compare/?release=9.4.12#9.4.12-0f6f30fdae445985", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "019b6567f8d03f3868a1551f55931125", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "修复 pg_upgrade 传输附加到“大对象”（blob）的注释和安全标签", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033"}, "url": "/docs/compare/?release=9.2.21#9.2.21-0f6f30fdae445985", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-c0ec7dcb921b98cb", "cves": [], "html": "<p>改进 <code>contrib/adminpack</code> 的 <code>pg_file_write()</code> 函数中的错误处理（Noah Misch）</p>\n<p>值得注意的是，它未能检测 <code>fclose()</code> 报告的错误。</p>", "text": "改进 contrib/adminpack 的 pg_file_write() 函数中的错误处理（Noah Misch） 值得注意的是，它未能检测 fclose() 报告的错误。", "title": "改进 contrib/adminpack 的 pg_file_write() 函数中的错误处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "e77e9d1a6c32cfdec64328c29dc5661b953a6ae641b853bf0c30ed6ab88755e1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve error handling in contrib/adminpack's pg_file_write() function (Noah Misch) Notably, it failed to detect errors reported by fclose().", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/020", "db_id": "2593f7f2895b8a62a450eb8212de3912", "patch_ids": [], "statement_hash": "1668732154a9e21d9d1c1b1ec9cf144724c5faf5c779e46adf35252c7e3ed99a", "relations": [{"rule": 2, "type": "equivalent", "target": "40b42a61b13950157294e7d10080dcb5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1668732154a9e21d9d1c1b1ec9cf144724c5faf5c779e46adf35252c7e3ed99a"}}, {"rule": 2, "type": "equivalent", "target": "4358dd1a4607cff473f4b70eb78e65bd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1668732154a9e21d9d1c1b1ec9cf144724c5faf5c779e46adf35252c7e3ed99a"}}, {"rule": 2, "type": "equivalent", "target": "b1992a19618a47f2471ba89a01f3b773", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1668732154a9e21d9d1c1b1ec9cf144724c5faf5c779e46adf35252c7e3ed99a"}}, {"rule": 2, "type": "equivalent", "target": "f37cac39adfbe8db58ffc0ff59584a74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1668732154a9e21d9d1c1b1ec9cf144724c5faf5c779e46adf35252c7e3ed99a"}}], "version": "9.3.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "40b42a61b13950157294e7d10080dcb5", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "改进 contrib/adminpack 的 pg_file_write() 函数中的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1668732154a9e21d9d1c1b1ec9cf144724c5faf5c779e46adf35252c7e3ed99a"}, "url": "/docs/compare/?release=9.6.3#9.6.3-c0ec7dcb921b98cb", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "4358dd1a4607cff473f4b70eb78e65bd", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "改进 contrib/adminpack 的 pg_file_write() 函数中的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1668732154a9e21d9d1c1b1ec9cf144724c5faf5c779e46adf35252c7e3ed99a"}, "url": "/docs/compare/?release=9.5.7#9.5.7-c0ec7dcb921b98cb", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "f37cac39adfbe8db58ffc0ff59584a74", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "改进 contrib/adminpack 的 pg_file_write() 函数中的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1668732154a9e21d9d1c1b1ec9cf144724c5faf5c779e46adf35252c7e3ed99a"}, "url": "/docs/compare/?release=9.4.12#9.4.12-c0ec7dcb921b98cb", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "b1992a19618a47f2471ba89a01f3b773", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "改进 contrib/adminpack 的 pg_file_write() 函数中的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1668732154a9e21d9d1c1b1ec9cf144724c5faf5c779e46adf35252c7e3ed99a"}, "url": "/docs/compare/?release=9.2.21#9.2.21-c0ec7dcb921b98cb", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-05506f7b4b923cbe", "cves": [], "html": "<p>在 <code>contrib/dblink</code> 中，建立新的未命名连接时避免泄漏先前的未命名连接（Joe Conway）</p>", "text": "在 contrib/dblink 中，建立新的未命名连接时避免泄漏先前的未命名连接（Joe Conway）", "title": "在 contrib/dblink 中，建立新的未命名连接时避免泄漏先前的未命名连接", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "c8bf0ad7a842a8ea7344a9bb6e2433c5427075afc2785439ea38572c9b3ebe5f", "section_path": ["变更"], "commit_groups": [], "identity_text": "In contrib/dblink, avoid leaking the previous unnamed connection when establishing a new unnamed connection (Joe Conway)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/021", "db_id": "9043e7d5f286f28fd55e36bba837ac43", "patch_ids": [], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e", "relations": [{"rule": 2, "type": "equivalent", "target": "7cec05b8ab4865b3e9e9fdb4f6b9f13c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e"}}, {"rule": 2, "type": "equivalent", "target": "a52f862d233fd8a3ba3b105d7ee99818", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e"}}, {"rule": 2, "type": "equivalent", "target": "de0a49faa25d87b91fa729045accd00d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e"}}, {"rule": 2, "type": "equivalent", "target": "f4086ea871fa0e569ee48f1208bcf0c2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a52f862d233fd8a3ba3b105d7ee99818", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "在 contrib/dblink 中，建立新的未命名连接时避免泄漏先前的未命名连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e"}, "url": "/docs/compare/?release=9.6.3#9.6.3-05506f7b4b923cbe", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "de0a49faa25d87b91fa729045accd00d", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "在 contrib/dblink 中，建立新的未命名连接时避免泄漏先前的未命名连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e"}, "url": "/docs/compare/?release=9.5.7#9.5.7-05506f7b4b923cbe", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "7cec05b8ab4865b3e9e9fdb4f6b9f13c", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "在 contrib/dblink 中，建立新的未命名连接时避免泄漏先前的未命名连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e"}, "url": "/docs/compare/?release=9.4.12#9.4.12-05506f7b4b923cbe", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "f4086ea871fa0e569ee48f1208bcf0c2", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "在 contrib/dblink 中，建立新的未命名连接时避免泄漏先前的未命名连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e"}, "url": "/docs/compare/?release=9.2.21#9.2.21-05506f7b4b923cbe", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-875750d4de0d577e", "cves": [], "html": "<p>修复 <code>contrib/pg_trgm</code> 从正则表达式提取三元组的问题（Tom Lane）</p>\n<p>某些情况下它会产生永远无法匹配任何东西的损坏数据结构，导致使用三元组索引的 GIN 或 GiST 索引扫描找不到与正则表达式的任何匹配。</p>", "text": "修复 contrib/pg_trgm 从正则表达式提取三元组的问题（Tom Lane） 某些情况下它会产生永远无法匹配任何东西的损坏数据结构，导致使用三元组索引的 GIN 或 GiST 索引扫描找不到与正则表达式的任何匹配。", "title": "修复 contrib/pg_trgm 从正则表达式提取三元组的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "1462ff006209f8a27cd402ede0c776be948815f944011871164fab5c3c1884ac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/pg_trgm's extraction of trigrams from regular expressions (Tom Lane) In some cases it would produce a broken data structure that could never match anything, leading to GIN or GiST indexscans that use a trigram index not finding any matches to the regular expression.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/022", "db_id": "837a510e0fd1117a06b0202841ad90d0", "patch_ids": [], "statement_hash": "780e5e3bdf32d4183fef865759353259590630e146b8dfff6bf3ca7f48d3c23c", "relations": [{"rule": 2, "type": "equivalent", "target": "38570752c7b02be9b162c1c1b75dc327", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780e5e3bdf32d4183fef865759353259590630e146b8dfff6bf3ca7f48d3c23c"}}, {"rule": 2, "type": "equivalent", "target": "3931489de2b6913e66941ce015145f14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780e5e3bdf32d4183fef865759353259590630e146b8dfff6bf3ca7f48d3c23c"}}, {"rule": 2, "type": "equivalent", "target": "c6813aef47813fc91a53da575abf8903", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780e5e3bdf32d4183fef865759353259590630e146b8dfff6bf3ca7f48d3c23c"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c6813aef47813fc91a53da575abf8903", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "修复 contrib/pg_trgm 从正则表达式提取三元组的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780e5e3bdf32d4183fef865759353259590630e146b8dfff6bf3ca7f48d3c23c"}, "url": "/docs/compare/?release=9.6.3#9.6.3-875750d4de0d577e", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "38570752c7b02be9b162c1c1b75dc327", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 contrib/pg_trgm 从正则表达式提取三元组的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780e5e3bdf32d4183fef865759353259590630e146b8dfff6bf3ca7f48d3c23c"}, "url": "/docs/compare/?release=9.5.7#9.5.7-875750d4de0d577e", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "3931489de2b6913e66941ce015145f14", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复 contrib/pg_trgm 从正则表达式提取三元组的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780e5e3bdf32d4183fef865759353259590630e146b8dfff6bf3ca7f48d3c23c"}, "url": "/docs/compare/?release=9.4.12#9.4.12-875750d4de0d577e", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}]}, {"id": "9.3.17-6caa9766b1599760", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，把查询取消请求传输到远程服务器（Michael Paquier、Etsuro Fujita）</p>\n<p>以前，本地查询取消请求不会导致已发送的远程查询提前终止。这是对最初为 9.6 完成的工作的回移植。</p>", "text": "在 contrib/postgres_fdw 中，把查询取消请求传输到远程服务器（Michael Paquier、Etsuro Fujita） 以前，本地查询取消请求不会导致已发送的远程查询提前终止。这是对最初为 9.6 完成的工作的回移植。", "title": "在 contrib/postgres_fdw 中，把查询取消请求传输到远程服务器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "f968559f9e6d54929bc476e0bd56baa930be11e4b212f74e77ccf328143bdb7d", "section_path": ["变更"], "commit_groups": [], "identity_text": "In contrib/postgres_fdw, transmit query cancellation requests to the remote server (Michael Paquier, Etsuro Fujita) Previously, a local query cancellation request did not cause an already-sent remote query to terminate early. This is a back-patch of work originally done for 9.6.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/023", "db_id": "1571ad801e30ab270270087c77d80681", "patch_ids": [], "statement_hash": "0cb9798e02ee3605bc5931c670473256a323af3ab3f541ec9a456e8e3d4a8e9d", "relations": [{"rule": 2, "type": "equivalent", "target": "4b490f922a1980be3c91455951dafab8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb9798e02ee3605bc5931c670473256a323af3ab3f541ec9a456e8e3d4a8e9d"}}, {"rule": 2, "type": "equivalent", "target": "8e81514b75d2a2c1a325652d175835d8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb9798e02ee3605bc5931c670473256a323af3ab3f541ec9a456e8e3d4a8e9d"}}], "version": "9.3.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b490f922a1980be3c91455951dafab8", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "在 contrib/postgres_fdw 中，把查询取消请求传输到远程服务器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb9798e02ee3605bc5931c670473256a323af3ab3f541ec9a456e8e3d4a8e9d"}, "url": "/docs/compare/?release=9.5.7#9.5.7-6caa9766b1599760", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "8e81514b75d2a2c1a325652d175835d8", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "在 contrib/postgres_fdw 中，把查询取消请求传输到远程服务器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb9798e02ee3605bc5931c670473256a323af3ab3f541ec9a456e8e3d4a8e9d"}, "url": "/docs/compare/?release=9.4.12#9.4.12-6caa9766b1599760", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}]}, {"id": "9.3.17-60b35a8586b4893d", "cves": [], "html": "<p>支持 OpenSSL 1.1.0（Heikki Linnakangas、Andreas Karlsson、Tom Lane）</p>\n<p>这是把先前在较新分支中完成的工作向后移植；由于许多平台正在采用更新的 OpenSSL 版本，因此需要它。</p>", "text": "支持 OpenSSL 1.1.0（Heikki Linnakangas、Andreas Karlsson、Tom Lane） 这是把先前在较新分支中完成的工作向后移植；由于许多平台正在采用更新的 OpenSSL 版本，因此需要它。", "title": "支持 OpenSSL 1.1.0", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "45bec6fbac91f78b271ec9fcccac98d27168a38dde4b470591c59987c8c171b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Support OpenSSL 1.1.0 (Heikki Linnakangas, Andreas Karlsson, Tom Lane) This is a back-patch of work previously done in newer branches; it's needed since many platforms are adopting newer OpenSSL versions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/024", "db_id": "ba4bfdddae24cbecc10716aae3348fd9", "patch_ids": [], "statement_hash": "f37c153eb051f4833c0f1e295717e29fae028a267289b09169c3b7eec00ca184", "relations": [{"rule": 2, "type": "equivalent", "target": "63117f44660eea197d43e087c65624b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f37c153eb051f4833c0f1e295717e29fae028a267289b09169c3b7eec00ca184"}}, {"rule": 2, "type": "equivalent", "target": "7bfae760acd1cd91bf3ce3458c5d55c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f37c153eb051f4833c0f1e295717e29fae028a267289b09169c3b7eec00ca184"}}], "version": "9.3.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7bfae760acd1cd91bf3ce3458c5d55c3", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "支持 OpenSSL 1.1.0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f37c153eb051f4833c0f1e295717e29fae028a267289b09169c3b7eec00ca184"}, "url": "/docs/compare/?release=9.4.12#9.4.12-60b35a8586b4893d", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "63117f44660eea197d43e087c65624b8", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "支持 OpenSSL 1.1.0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f37c153eb051f4833c0f1e295717e29fae028a267289b09169c3b7eec00ca184"}, "url": "/docs/compare/?release=9.2.21#9.2.21-60b35a8586b4893d", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-d79979a82bc7e327", "cves": [], "html": "<p>在 MSVC 构建中支持 Tcl 8.6（Álvaro Herrera）</p>", "text": "在 MSVC 构建中支持 Tcl 8.6（Álvaro Herrera）", "title": "在 MSVC 构建中支持 Tcl 8.6", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "c8e2a11f1676ff5ab77e4d84db69e7fea47061f73037cc0f8e7222fbe7ed59b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Support Tcl 8.6 in MSVC builds (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/025", "db_id": "d1bb9ba69de069f129189c8ed632b083", "patch_ids": [], "statement_hash": "c4b3dba4c3cac4b3795c77fbe730388f1f024eb73aeedaa86d311e1df3525a90", "relations": [{"rule": 2, "type": "equivalent", "target": "190ec609bbd1e736291d8614d6310765", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b3dba4c3cac4b3795c77fbe730388f1f024eb73aeedaa86d311e1df3525a90"}}, {"rule": 2, "type": "equivalent", "target": "db1d5ea9bb6a724d2396ab02fe0d4d52", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b3dba4c3cac4b3795c77fbe730388f1f024eb73aeedaa86d311e1df3525a90"}}, {"rule": 2, "type": "equivalent", "target": "e49560955885553170af32f320a99b1a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b3dba4c3cac4b3795c77fbe730388f1f024eb73aeedaa86d311e1df3525a90"}}, {"rule": 2, "type": "equivalent", "target": "fee4f3afb74d9403e4cd28481e03c5f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b3dba4c3cac4b3795c77fbe730388f1f024eb73aeedaa86d311e1df3525a90"}}], "version": "9.3.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "190ec609bbd1e736291d8614d6310765", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "在 MSVC 构建中支持 Tcl 8.6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b3dba4c3cac4b3795c77fbe730388f1f024eb73aeedaa86d311e1df3525a90"}, "url": "/docs/compare/?release=9.6.3#9.6.3-d79979a82bc7e327", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "db1d5ea9bb6a724d2396ab02fe0d4d52", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "在 MSVC 构建中支持 Tcl 8.6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b3dba4c3cac4b3795c77fbe730388f1f024eb73aeedaa86d311e1df3525a90"}, "url": "/docs/compare/?release=9.5.7#9.5.7-d79979a82bc7e327", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "e49560955885553170af32f320a99b1a", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "在 MSVC 构建中支持 Tcl 8.6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b3dba4c3cac4b3795c77fbe730388f1f024eb73aeedaa86d311e1df3525a90"}, "url": "/docs/compare/?release=9.4.12#9.4.12-d79979a82bc7e327", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "fee4f3afb74d9403e4cd28481e03c5f9", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "在 MSVC 构建中支持 Tcl 8.6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b3dba4c3cac4b3795c77fbe730388f1f024eb73aeedaa86d311e1df3525a90"}, "url": "/docs/compare/?release=9.2.21#9.2.21-d79979a82bc7e327", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-efcd1f512a0c41ac", "cves": [], "html": "<p>把我们的时区库副本与 IANA tzcode2017b 同步（Tom Lane）</p>\n<p>这修复了影响 2038 年 1 月某些夏令时转换的 bug。</p>", "text": "把我们的时区库副本与 IANA tzcode2017b 同步（Tom Lane） 这修复了影响 2038 年 1 月某些夏令时转换的 bug。", "title": "把我们的时区库副本与 IANA tzcode2017b 同步", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "972bff7ebf1d89876f006e69c6125249324015ac2f642081e72995df5435bbfb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Sync our copy of the timezone library with IANA release tzcode2017b (Tom Lane) This fixes a bug affecting some DST transitions in January 2038.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/026", "db_id": "7bc12771b4bee0f619850eada7f898ff", "patch_ids": [], "statement_hash": "437b2dc9704d613fadfc3d0323608eb60cba7d18aa0b467288d2c91a5cf83b68", "relations": [{"rule": 2, "type": "equivalent", "target": "099a09f9168b971ab666096a0a5a1a14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "437b2dc9704d613fadfc3d0323608eb60cba7d18aa0b467288d2c91a5cf83b68"}}, {"rule": 2, "type": "equivalent", "target": "1344386f5c304d8c8535505056722ad3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "437b2dc9704d613fadfc3d0323608eb60cba7d18aa0b467288d2c91a5cf83b68"}}, {"rule": 2, "type": "equivalent", "target": "5d88c07246784590d2d295ff26b85004", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "437b2dc9704d613fadfc3d0323608eb60cba7d18aa0b467288d2c91a5cf83b68"}}, {"rule": 2, "type": "equivalent", "target": "e87b38c5939e3035c2deee57429a454e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "437b2dc9704d613fadfc3d0323608eb60cba7d18aa0b467288d2c91a5cf83b68"}}], "version": "9.3.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "099a09f9168b971ab666096a0a5a1a14", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "把我们的时区库副本与 IANA tzcode2017b 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "437b2dc9704d613fadfc3d0323608eb60cba7d18aa0b467288d2c91a5cf83b68"}, "url": "/docs/compare/?release=9.6.3#9.6.3-efcd1f512a0c41ac", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "1344386f5c304d8c8535505056722ad3", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "把我们的时区库副本与 IANA tzcode2017b 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "437b2dc9704d613fadfc3d0323608eb60cba7d18aa0b467288d2c91a5cf83b68"}, "url": "/docs/compare/?release=9.5.7#9.5.7-efcd1f512a0c41ac", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "e87b38c5939e3035c2deee57429a454e", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "把我们的时区库副本与 IANA tzcode2017b 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "437b2dc9704d613fadfc3d0323608eb60cba7d18aa0b467288d2c91a5cf83b68"}, "url": "/docs/compare/?release=9.4.12#9.4.12-efcd1f512a0c41ac", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "5d88c07246784590d2d295ff26b85004", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "把我们的时区库副本与 IANA tzcode2017b 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "437b2dc9704d613fadfc3d0323608eb60cba7d18aa0b467288d2c91a5cf83b68"}, "url": "/docs/compare/?release=9.2.21#9.2.21-efcd1f512a0c41ac", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-01cabf3b80980a08", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2017b，涉及智利、海地和蒙古的夏令时法规变更，加上厄瓜多尔、哈萨克斯坦、利比里亚和西班牙的历史修正。南美洲、太平洋和印度洋以及一些亚洲和中东国家的众多时区改用数字缩写。</p>\n<p>IANA 时区数据库以前为所有时区提供文本缩写，有时编造在当地居民中几乎或完全没有使用的缩写。他们正在逆转这一政策，改为在没有证据表明实际使用英文缩写的区域使用数字 UTC 偏移。至少目前，<span>PostgreSQL</span> 将继续接受这种被移除的缩写用于时间戳输入。但它们不会显示在 <code>pg_timezone_names</code> 视图中，也不用于输出。</p>", "text": "更新时区数据文件到 tzdata 版本 2017b，涉及智利、海地和蒙古的夏令时法规变更，加上厄瓜多尔、哈萨克斯坦、利比里亚和西班牙的历史修正。南美洲、太平洋和印度洋以及一些亚洲和中东国家的众多时区改用数字缩写。 IANA 时区数据库以前为所有时区提供文本缩写，有时编造在当地居民中几乎或完全没有使用的缩写。他们正在逆转这一政策，改为在没有证据表明实际使用英文缩写的区域使用数字 UTC 偏移。至少目前，PostgreSQL 将继续接受这种被移除的缩写用于时间戳输入。但它们不会显示在 pg_timezone_names 视图中，也不用于输出。", "title": "更新时区数据文件到 tzdata 版本 2017b，涉及智利、海地和蒙古的夏令时法规变更，加上厄瓜多尔、哈萨克斯坦、利比里亚和西班牙的历史修正。南美洲、太平洋和印度洋以及一些亚洲和中东国家的众多时区改用数字缩写。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "c3ac17c77307c870fc02550a0923a7ccd6525a42ba8cfd2054c25329f50e9e0c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2017b for DST law changes in Chile, Haiti, and Mongolia, plus historical corrections for Ecuador, Kazakhstan, Liberia, and Spain. Switch to numeric abbreviations for numerous time zones in South America, the Pacific and Indian oceans, and some Asian and Middle Eastern countries. The IANA time zone database previously provided textual abbreviations for all time zones, sometimes making up abbreviations that have little or no currency among the local population. They are in process of reversing that policy in favor of using numeric UTC offsets in zones where there is no evidence of real-world use of an English abbreviation. At least for the time being, PostgreSQL will continue to accept such removed abbreviations for timestamp input. But they will not be shown in the pg_timezone_names view nor used for output.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/027", "db_id": "15c4085b9eaad431c4aa087c8ac560b7", "patch_ids": [], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428", "relations": [{"rule": 2, "type": "equivalent", "target": "abbec38ddef1a96da98236c5bdb466ab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428"}}, {"rule": 2, "type": "equivalent", "target": "b9423f0be6dd2bac6d2f952f027f3dce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428"}}, {"rule": 2, "type": "equivalent", "target": "c98394812dea698e8c9edb4c12b35da9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428"}}, {"rule": 2, "type": "equivalent", "target": "d50e3675e5839ed24cfe0ecc419ab1f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428"}}], "version": "9.3.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b9423f0be6dd2bac6d2f952f027f3dce", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "更新时区数据文件到 tzdata 版本 2017b，涉及智利、海地和蒙古的夏令时法规变更，加上厄瓜多尔、哈萨克斯坦、利比里亚和西班牙的历史修正。南美洲、太平洋和印度洋以及一些亚洲和中东国家的众多时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428"}, "url": "/docs/compare/?release=9.6.3#9.6.3-01cabf3b80980a08", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "abbec38ddef1a96da98236c5bdb466ab", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "更新时区数据文件到 tzdata 版本 2017b，涉及智利、海地和蒙古的夏令时法规变更，加上厄瓜多尔、哈萨克斯坦、利比里亚和西班牙的历史修正。南美洲、太平洋和印度洋以及一些亚洲和中东国家的众多时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428"}, "url": "/docs/compare/?release=9.5.7#9.5.7-01cabf3b80980a08", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "c98394812dea698e8c9edb4c12b35da9", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "更新时区数据文件到 tzdata 版本 2017b，涉及智利、海地和蒙古的夏令时法规变更，加上厄瓜多尔、哈萨克斯坦、利比里亚和西班牙的历史修正。南美洲、太平洋和印度洋以及一些亚洲和中东国家的众多时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428"}, "url": "/docs/compare/?release=9.4.12#9.4.12-01cabf3b80980a08", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "d50e3675e5839ed24cfe0ecc419ab1f2", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "更新时区数据文件到 tzdata 版本 2017b，涉及智利、海地和蒙古的夏令时法规变更，加上厄瓜多尔、哈萨克斯坦、利比里亚和西班牙的历史修正。南美洲、太平洋和印度洋以及一些亚洲和中东国家的众多时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428"}, "url": "/docs/compare/?release=9.2.21#9.2.21-01cabf3b80980a08", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}, {"id": "9.3.17-3fb95fa04ac6f16c", "cves": [], "html": "<p>在 MSVC 构建中对 POSIX 风格时区名使用正确的夏令时规则（David Rowley）</p>\n<p>Microsoft MSVC 构建脚本忽略了把 <code>posixrules</code> 文件安装到时区目录树中。这导致时区代码回退到它内置的关于 POSIX 风格时区名应假定什么 DST 行为的规则。由于历史原因，那仍然对应美国 2007 年之前使用的 DST 规则（即 4 月第一个星期日和 10 月最后一个星期日更改）。有了此修复，POSIX 风格时区名将使用 <code>US/Eastern</code> 时区的当前和历史 DST 转换日期。如果不希望这样，移除 <code>posixrules</code> 文件，或用其他某个时区文件的副本替换它（见<a href=\"/docs/9.3/datatype-datetime.html#DATATYPE-TIMEZONES\" title=\"8.5.3. 时区\">第 8.5.3 节</a>）。注意由于缓存，可能需要重启服务器才能使这种更改生效。</p>", "text": "在 MSVC 构建中对 POSIX 风格时区名使用正确的夏令时规则（David Rowley） Microsoft MSVC 构建脚本忽略了把 posixrules 文件安装到时区目录树中。这导致时区代码回退到它内置的关于 POSIX 风格时区名应假定什么 DST 行为的规则。由于历史原因，那仍然对应美国 2007 年之前使用的 DST 规则（即 4 月第一个星期日和 10 月最后一个星期日更改）。有了此修复，POSIX 风格时区名将使用 US/Eastern 时区的当前和历史 DST 转换日期。如果不希望这样，移除 posixrules 文件，或用其他某个时区文件的副本替换它（见第 8.5.3 节）。注意由于缓存，可能需要重启服务器才能使这种更改生效。", "title": "在 MSVC 构建中对 POSIX 风格时区名使用正确的夏令时规则", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5", "source_hash": "496bc2b6e32dfaf83244813e8e1a1d3f40056f0eef90c363364ad499d2635f65", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use correct daylight-savings rules for POSIX-style time zone names in MSVC builds (David Rowley) The Microsoft MSVC build scripts neglected to install the posixrules file in the timezone directory tree. This resulted in the timezone code falling back to its built-in rule about what DST behavior to assume for a POSIX-style time zone name. For historical reasons that still corresponds to the DST rules the USA was using before 2007 (i.e., change on first Sunday in April and last Sunday in October). With this fix, a POSIX-style zone name will use the current and historical DST transition dates of the US/Eastern zone. If you don't want that, remove the posixrules file, or replace it with a copy of some other zone file (see datatype-timezones ). Note that due to caching, you may need to restart the server to get such changes to take effect.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.17/changes/028", "db_id": "f86a305bcdaaeb3f2c59f4899d3918fe", "patch_ids": [], "statement_hash": "d43decf78c38df9a816e1846d64071764784868e4f05484b937c97f971d11790", "relations": [{"rule": 2, "type": "equivalent", "target": "7188a12f093093616217b459b38f5eac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d43decf78c38df9a816e1846d64071764784868e4f05484b937c97f971d11790"}}, {"rule": 2, "type": "equivalent", "target": "86edf1208f3dd6641a3e92aadff2c259", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d43decf78c38df9a816e1846d64071764784868e4f05484b937c97f971d11790"}}, {"rule": 2, "type": "equivalent", "target": "dad951f3242aae8578f903144fdcd33f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d43decf78c38df9a816e1846d64071764784868e4f05484b937c97f971d11790"}}, {"rule": 2, "type": "equivalent", "target": "dcdd9aee6dcae5b053b492985006f6a8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d43decf78c38df9a816e1846d64071764784868e4f05484b937c97f971d11790"}}], "version": "9.3.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "dcdd9aee6dcae5b053b492985006f6a8", "kind": "equivalent", "version": "9.6.3", "label": "9.6.3", "title": "在 MSVC 构建中对 POSIX 风格时区名使用正确的夏令时规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d43decf78c38df9a816e1846d64071764784868e4f05484b937c97f971d11790"}, "url": "/docs/compare/?release=9.6.3#9.6.3-3fb95fa04ac6f16c", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}, {"db_id": "dad951f3242aae8578f903144fdcd33f", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "在 MSVC 构建中对 POSIX 风格时区名使用正确的夏令时规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d43decf78c38df9a816e1846d64071764784868e4f05484b937c97f971d11790"}, "url": "/docs/compare/?release=9.5.7#9.5.7-3fb95fa04ac6f16c", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "7188a12f093093616217b459b38f5eac", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "在 MSVC 构建中对 POSIX 风格时区名使用正确的夏令时规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d43decf78c38df9a816e1846d64071764784868e4f05484b937c97f971d11790"}, "url": "/docs/compare/?release=9.4.12#9.4.12-3fb95fa04ac6f16c", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}, {"db_id": "86edf1208f3dd6641a3e92aadff2c259", "kind": "equivalent", "version": "9.2.21", "label": "9.2.21", "title": "在 MSVC 构建中对 POSIX 风格时区名使用正确的夏令时规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d43decf78c38df9a816e1846d64071764784868e4f05484b937c97f971d11790"}, "url": "/docs/compare/?release=9.2.21#9.2.21-3fb95fa04ac6f16c", "source_url": "/docs/release/9.2.21/#id-1.11.6.8.6"}]}]}, {"date": "2017-02-09", "build": "9.3.16", "major": "9.3", "minor": 16, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.16", "eol_date": "2018-11-08", "date_text": "2017-02-09", "supported": false, "manual_url": "/docs/9.3/release-9-3-16.html", "source_url": "/docs/release/9.3.16/", "entry_count": 37, "placeholder": false, "content_hash": "cb247a159f3f177b691042a3db946dc09625f14aa9d126ebe0d7dcc937cde4b3", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 37, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你的安装受到下面第一条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的索引。</p>\n<p>不过，如果你是从早于 9.3.15 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-15.html\" title=\"E.11. 版本 9.3.15\">第 E.11 节</a>。</p>", "compatibility_count": 0, "label": "9.3.16", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3520, "support_days": -2883, "entries": [{"id": "9.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "8581db6849419e3ec888d1c2710aae2f2161b4e20cd1edde1f676d74a8d4efbc", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/001", "db_id": "80f05bec188e07b7d3f6a0b6791679fc", "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1", "relations": [{"rule": 2, "type": "equivalent", "target": "1cf1b386fe96749b60daea1d10f070a2", "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.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1cf1b386fe96749b60daea1d10f070a2", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}, "url": "/docs/compare/?release=9.6.2#9.6.2-21a67de54dffdc53", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-c73b348ba5749039", "cves": [], "html": "<p>无条件地为未记录表的 <span>“<span>init fork</span>”</span> 写 WAL 日志（Michael Paquier）</p>\n<p>此前当<a href=\"/docs/9.3/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.3.16/#id-1.11.6.14.5", "source_hash": "89b1e1637e5746a60af6f99fb77b7a2b1bedbdb2ffaf2e568ab593ccc5d33bf2", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/002", "db_id": "b750554a280b9a7fb664ae9c535c3aed", "patch_ids": [], "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": "96a2ccd3484c42b56fc3124dff045bcc", "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.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "96a2ccd3484c42b56fc3124dff045bcc", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "无条件地为未记录表的 “init fork” 写 WAL 日志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}, "url": "/docs/compare/?release=9.6.2#9.6.2-c73b348ba5749039", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-0f82f6bd0e8b372d", "cves": [], "html": "<p>如果统计收集器在热备期间死亡，重启它（Takayuki Tsunakawa）</p>", "text": "如果统计收集器在热备期间死亡，重启它（Takayuki Tsunakawa）", "title": "如果统计收集器在热备期间死亡，重启它", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5", "source_hash": "da355054b572b961460838ec1829293f8b0f1443ea94dec7a0746e8bc84a4d38", "section_path": ["变更"], "commit_groups": [], "identity_text": "If the stats collector dies during hot standby, restart it (Takayuki Tsunakawa)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/003", "db_id": "c6a9d1159620c8f9492800dea76a81e3", "patch_ids": [], "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": "de4a22008d1a7afbe4d6940986bb6745", "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.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "de4a22008d1a7afbe4d6940986bb6745", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "如果统计收集器在热备期间死亡，重启它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}, "url": "/docs/compare/?release=9.6.2#9.6.2-0f82f6bd0e8b372d", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-66e992ec17ca40d7", "cves": [], "html": "<p>确保热备反馈在备库服务器启动时启用的情况下正确工作（Ants Aasma、Craig Ringer）</p>", "text": "确保热备反馈在备库服务器启动时启用的情况下正确工作（Ants Aasma、Craig Ringer）", "title": "确保热备反馈在备库服务器启动时启用的情况下正确工作", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5", "source_hash": "3ab562df4017bd61c6dd44ae46cde7cfdb1113d1817485567346874d8aa7f73f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that hot standby feedback works correctly when it's enabled at standby server start (Ants Aasma, Craig Ringer)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/004", "db_id": "df175040bd737712b32e91bd73f38a14", "patch_ids": [], "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": "dc2b3ccb7994551d3faa9ee16a22499c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dc2b3ccb7994551d3faa9ee16a22499c", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "确保热备反馈在备库服务器启动时启用的情况下正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}, "url": "/docs/compare/?release=9.6.2#9.6.2-66e992ec17ca40d7", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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"}]}, {"id": "9.3.16-2f1772ccd52404ad", "cves": [], "html": "<p>热备等待冲突查询时检查中断（Simon Riggs）</p>", "text": "热备等待冲突查询时检查中断（Simon Riggs）", "title": "热备等待冲突查询时检查中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5", "source_hash": "77dc905a671040b620960e855401b5be4237377965986048932174918f4e113a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Check for interrupts while hot standby is waiting for a conflicting query (Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/005", "db_id": "418ce2365b56a5159ffcc02fac0f59e1", "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247", "relations": [{"rule": 2, "type": "equivalent", "target": "904e692e04647660f143f1abbd55fb2b", "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.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "904e692e04647660f143f1abbd55fb2b", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "热备等待冲突查询时检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}, "url": "/docs/compare/?release=9.6.2#9.6.2-2f1772ccd52404ad", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-b47d5ae4829cde1d", "cves": [], "html": "<p>避免边界情况下自动清理启动器的不断重启（Amit Khandekar）</p>\n<p>此修复避免了自动清理名义上关闭且有一些需要冻结的表，但所有这种表都已被自动清理工作者处理时的问题。</p>", "text": "避免边界情况下自动清理启动器的不断重启（Amit Khandekar） 此修复避免了自动清理名义上关闭且有一些需要冻结的表，但所有这种表都已被自动清理工作者处理时的问题。", "title": "避免边界情况下自动清理启动器的不断重启", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5", "source_hash": "07858a0af57552ff60918aaa26736c59376bd933317eaa2fcad47481a86b08fb", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/006", "db_id": "a3281c6a1a3aa069f7c670b9497931e8", "patch_ids": [], "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": "aa38277809efab39953b106568c98bf9", "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.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "aa38277809efab39953b106568c98bf9", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "避免边界情况下自动清理启动器的不断重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}, "url": "/docs/compare/?release=9.6.2#9.6.2-b47d5ae4829cde1d", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-77b3340da27d93a5", "cves": [], "html": "<p>修复扩展成员对象何时可被删除的检查（Tom Lane）</p>\n<p>扩展升级脚本应当能删除成员对象，但对序列列的序列（可能还有其他情况）这不被允许。</p>", "text": "修复扩展成员对象何时可被删除的检查（Tom Lane） 扩展升级脚本应当能删除成员对象，但对序列列的序列（可能还有其他情况）这不被允许。", "title": "修复扩展成员对象何时可被删除的检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5", "source_hash": "dcf1f6e1edb1eb1cf6cf60ee3d38dddc3ea53804a6817fb0d56d21505b685579", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/007", "db_id": "5c374ac5cee41cb051285200e880aca6", "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7", "relations": [{"rule": 2, "type": "equivalent", "target": "54c022475888431c0d41c6627d11dd7c", "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.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "54c022475888431c0d41c6627d11dd7c", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复扩展成员对象何时可被删除的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}, "url": "/docs/compare/?release=9.6.2#9.6.2-77b3340da27d93a5", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-92e6a6e4971f8631", "cves": [], "html": "<p>确保 <code>ALTER TABLE</code> 重建索引时保留索引表空间分配（Tom Lane、Michael Paquier）</p>\n<p>此前，<a href=\"/docs/9.3/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.3.16/#id-1.11.6.14.5", "source_hash": "178c0266419c1d539309732b83f0b2135d4b32f14461ee424fadac827f8a9c42", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/008", "db_id": "f3ec2ab38f376224b5a1cf410ead414e", "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53", "relations": [{"rule": 2, "type": "equivalent", "target": "8c2998b77b9aaad172f95093a387ff93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}}, {"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"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8c2998b77b9aaad172f95093a387ff93", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "确保 ALTER TABLE 重建索引时保留索引表空间分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}, "url": "/docs/compare/?release=9.6.2#9.6.2-92e6a6e4971f8631", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "26e71282706df78acf928f965867530d7329ce76acdb6c1ea1ae21b06f152205", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/009", "db_id": "d2463ec969093f0493acb893a8c637e2", "patch_ids": [], "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": "d733025ccceb6389f46aedbbb8111ce2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}}, {"rule": 2, "type": "equivalent", "target": "e3e90c45c0b1ffffb3efe7f0453c17a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e3e90c45c0b1ffffb3efe7f0453c17a6", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "如果被引用关系有未决的触发器事件，防止删除外键约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}, "url": "/docs/compare/?release=9.6.2#9.6.2-3f696a5cebc0a39b", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "f10c36b2b95b0c3986e8c118939cbb18ea4929afdf92b665338f82518980ccb1", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/010", "db_id": "7187dd1d1fef7844008f543688191aab", "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03", "relations": [{"rule": 2, "type": "equivalent", "target": "1b04a4ada89a2013f7e6daf82f89be94", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}}, {"rule": 2, "type": "equivalent", "target": "b201bab401077b935165ebdbe790f99a", "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.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b201bab401077b935165ebdbe790f99a", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}, "url": "/docs/compare/?release=9.6.2#9.6.2-d9386a2270ac8ee4", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "b0754da7091f1706af67d8635b5b21612104621fc08ef54a66a1c92dc190d682", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/011", "db_id": "2b00c62f4a76d67225f66fa518f613a0", "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7", "relations": [{"rule": 2, "type": "equivalent", "target": "4aeb0eea4216b573306205c5f3d3ab4f", "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.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4aeb0eea4216b573306205c5f3d3ab4f", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}, "url": "/docs/compare/?release=9.6.2#9.6.2-19513a40f9d99c2d", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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"}]}, {"id": "9.3.16-e359b3a2f8957717", "cves": [], "html": "<p>在报告约束违反失败之前检查可序列化冲突（Thomas Munro）</p>\n<p>使用可序列化事务隔离时，希望任何因并发事务导致的错误都表现为序列化失败，从而提示应用重试可能成功。不幸的是，对并发插入导致的重复键失败这不能可靠发生。此更改确保如果应用在事务中早些时候显式检查过冲突键的存在（且未找到），这种错误将被报告为序列化错误。</p>", "text": "在报告约束违反失败之前检查可序列化冲突（Thomas Munro） 使用可序列化事务隔离时，希望任何因并发事务导致的错误都表现为序列化失败，从而提示应用重试可能成功。不幸的是，对并发插入导致的重复键失败这不能可靠发生。此更改确保如果应用在事务中早些时候显式检查过冲突键的存在（且未找到），这种错误将被报告为序列化错误。", "title": "在报告约束违反失败之前检查可序列化冲突", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5", "source_hash": "49baab87887a51c31854b0157fd4c79806246871f02340aacdcca014a193210b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Check for serializability conflicts before reporting constraint-violation failures (Thomas Munro) When using serializable transaction isolation, it is desirable that any error due to concurrent transactions should manifest as a serialization failure, thereby cueing the application that a retry might succeed. Unfortunately, this does not reliably happen for duplicate-key failures caused by concurrent insertions. This change ensures that such an error will be reported as a serialization error if the application explicitly checked for the presence of a conflicting key (and did not find it) earlier in the transaction.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/012", "db_id": "a7fe2494ccb82bbd660a301b0082de85", "patch_ids": [], "statement_hash": "7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba", "relations": [{"rule": 2, "type": "equivalent", "target": "008dbfc76ffd89bfe151accb80c7bb3d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"}}, {"rule": 2, "type": "equivalent", "target": "3608fee921876dfcd7e8c9d523aeca81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"}}, {"rule": 2, "type": "equivalent", "target": "4d63bb02b1af635fed27372e121b41c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4d63bb02b1af635fed27372e121b41c5", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "在报告约束违反失败之前检查可序列化冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"}, "url": "/docs/compare/?release=9.5.6#9.5.6-e359b3a2f8957717", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "008dbfc76ffd89bfe151accb80c7bb3d", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "在报告约束违反失败之前检查可序列化冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"}, "url": "/docs/compare/?release=9.4.11#9.4.11-e359b3a2f8957717", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "3608fee921876dfcd7e8c9d523aeca81", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "在报告约束违反失败之前检查可序列化冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"}, "url": "/docs/compare/?release=9.2.20#9.2.20-e359b3a2f8957717", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "49eb9be58b58476458a1d156da8aaf2e95dfb2b6ae5c24222db257b391aa1b64", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/013", "db_id": "ebda0d74d7cabb3a7fcac47d0f664d6c", "patch_ids": [], "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": "e56e6bc6059fb602437ebbe14f154465", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e56e6bc6059fb602437ebbe14f154465", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "防止 UPDATE 源表达式中 foo.* 的多列展开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}, "url": "/docs/compare/?release=9.6.2#9.6.2-5a32be0979144f98", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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"}]}, {"id": "9.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "b51fe756e68aa6a36ab96cb222101f6d9113068705a3cc87b5d3ef10cdaa1f68", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/014", "db_id": "005b71ae9dbe2bb708300e53c6fe3b79", "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d", "relations": [{"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"}}, {"rule": 2, "type": "equivalent", "target": "be57f1e4a79a11465f1a7d407d68c2df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "be57f1e4a79a11465f1a7d407d68c2df", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "确保多行 VALUES 构造的列 typmod 被准确确定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}, "url": "/docs/compare/?release=9.6.2#9.6.2-1a59df5e0457650c", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "a18f0af5af415387375b78790b8b9fac3a75953e6974f43f380acbb1fc7689b5", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/015", "db_id": "0608db3962143d173e4e8107a654548b", "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81", "relations": [{"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": "a93421ec62e45ab76ef7ca68cc99ccdc", "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.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a93421ec62e45ab76ef7ca68cc99ccdc", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}, "url": "/docs/compare/?release=9.6.2#9.6.2-3d086ae0cc351d15", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "1b4ba8ed467313aad3292e59c07580aa0a7a1758ec7ee6d7057bebdcc27d157d", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/016", "db_id": "0b7a8b19196658117104bc98cf22fc01", "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963", "relations": [{"rule": 2, "type": "equivalent", "target": "3769e34a099b693920b472acbff9dc60", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}}, {"rule": 2, "type": "equivalent", "target": "5d9ac0edd48483c5563e2aef60ce8772", "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.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5d9ac0edd48483c5563e2aef60ce8772", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}, "url": "/docs/compare/?release=9.6.2#9.6.2-eff451e7b360abcb", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "b368cf47c6c67d9a7ae385d45e5565d1774a7395dfbd64cd1fb9204361aad4a2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent crash when ts_rewrite() replaces a non-top-level subtree with an empty query (Artur Zakirov)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/017", "db_id": "d6c330345c9debe55108886fee1afad3", "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006", "relations": [{"rule": 2, "type": "equivalent", "target": "1ad120bd822b42e5ce4decf1901d8154", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}}, {"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"}}], "version": "9.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1ad120bd822b42e5ce4decf1901d8154", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}, "url": "/docs/compare/?release=9.6.2#9.6.2-1b733fffaed0caf4", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "f9028d96a9fb25653692ed10f191f494884186fcc2669c96804e996abc543079", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix performance problems in ts_rewrite() (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/018", "db_id": "7c9d5ec604ecf94f33a79a9602c27a17", "patch_ids": [], "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": "aedb568933d91d1c73c63db3629de155", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}}, {"rule": 2, "type": "equivalent", "target": "b48a6e714c9918aceca947ccd0094617", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}}], "version": "9.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b48a6e714c9918aceca947ccd0094617", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复 ts_rewrite() 的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}, "url": "/docs/compare/?release=9.6.2#9.6.2-46a730393b762f11", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "623af3c2e128a62397d4e5f61ff1c47844f4ed4e4ded512cf8b4e1d1be4c0028", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ts_rewrite()'s handling of nested NOT operators (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/019", "db_id": "dedf4985fd71589c29886993b02e9ad5", "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0", "relations": [{"rule": 2, "type": "equivalent", "target": "103c4627f3d335c63cfaf9772d07be58", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}}, {"rule": 2, "type": "equivalent", "target": "1955174329b5ccdb9c211201d0b4c59d", "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"}}], "version": "9.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1955174329b5ccdb9c211201d0b4c59d", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}, "url": "/docs/compare/?release=9.6.2#9.6.2-96f8b0ba7bf5c9fa", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "387dd89197937fbed731a3d4837449186db6ec2e30d97223ec5c37ceba98fe88", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix array_fill() to handle empty arrays properly (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/020", "db_id": "3bc26bda247376a0b791a32215b0d4e3", "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac", "relations": [{"rule": 2, "type": "equivalent", "target": "86f4f8f81874a3056f1fa1b714aadf62", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}}, {"rule": 2, "type": "equivalent", "target": "8b998e09fa39e92645bf76cf7654e7cd", "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.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b998e09fa39e92645bf76cf7654e7cd", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复 array_fill() 正确处理空数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}, "url": "/docs/compare/?release=9.6.2#9.6.2-11a92e5c26f1b0f5", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "aceded027b41a637269de3e5c21831f427b2dd59b1772dbbd4d02e414cc19d05", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/021", "db_id": "1207f1dadef5930c562a950286517ce1", "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363", "relations": [{"rule": 2, "type": "equivalent", "target": "10a5bbcfd71d433423afebd1522c42b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}}, {"rule": 2, "type": "equivalent", "target": "ca1e35c79adeabc54efc1d6777143db9", "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.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ca1e35c79adeabc54efc1d6777143db9", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复 quote_literal_cstr() 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}, "url": "/docs/compare/?release=9.6.2#9.6.2-5116023449e8f470", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "52de8f36956b2c8e12d200f3ae9af7c2ed26e7d77b6048690940e55fbc93fc4c", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/022", "db_id": "23cf73717317ca27a5983c7fcb59cdf5", "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf", "relations": [{"rule": 2, "type": "equivalent", "target": "1ef018685a9c483cd28f9ca52e3c966a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}}, {"rule": 2, "type": "equivalent", "target": "687224dcab90b5b2af651f8438c6598c", "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.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "687224dcab90b5b2af651f8438c6598c", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}, "url": "/docs/compare/?release=9.6.2#9.6.2-ad45c4e99311a5d6", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "1df0ed583dfb653fa0fde077401c2f479e8afd1f4f8c5081547b4b1064e52068", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/023", "db_id": "e198f84900b2693f4096946b7a53bdd1", "patch_ids": [], "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": "e248e2718d6804294de52aff8888e4ac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e248e2718d6804294de52aff8888e4ac", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "避免丢弃并非真正无操作的 interval 到 interval 强制转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}, "url": "/docs/compare/?release=9.6.2#9.6.2-8943a394f75ad1d5", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "08a673d43ecdf31d95c815c1d95d5824fd02ea55a6135b763133e85df0707f96", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that cached plans are invalidated by changes in foreign-table options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/024", "db_id": "2fd1741641c58d37f1ff04b3cf72b610", "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300", "relations": [{"rule": 2, "type": "equivalent", "target": "07273cabbed1e8889403b2e5ed486244", "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.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "07273cabbed1e8889403b2e5ed486244", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "确保缓存计划因外部表选项的更改而失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}, "url": "/docs/compare/?release=9.6.2#9.6.2-d74df8927b35510c", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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"}]}, {"id": "9.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "132609db57db9d7f417cb6f67fdf083e75bf6add418aaf6f7b78f36c156b1af7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump to dump user-defined casts and transforms that use built-in functions (Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/025", "db_id": "206f6527fb116024cd1b8b9db2358953", "patch_ids": [], "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": "581a06be52555037f10c237117874cc0", "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.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "581a06be52555037f10c237117874cc0", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}, "url": "/docs/compare/?release=9.6.2#9.6.2-4fba47bfcb2ec0ac", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "98d6fdf3eba1ee25a7f99ce522ff1e2d9d66022246bebfa2a6df6235db34eebb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible pg_basebackup failure on standby server when including WAL files (Amit Kapila, Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/026", "db_id": "7570cd69307a64fcb41f65e0392d4c57", "patch_ids": [], "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": "917389edbf58b05a6f1216e2d6417b83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}}, {"rule": 2, "type": "equivalent", "target": "abeb2fd128bd039a4190704c1fb38488", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}}], "version": "9.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "abeb2fd128bd039a4190704c1fb38488", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}, "url": "/docs/compare/?release=9.6.2#9.6.2-ba21d14c399b76c0", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "dc485c6b8edd53ca12d4e4495fd37a50cb2cd4b2d5278493635032017c2b3c49", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/027", "db_id": "1390a5bd66a14c3b3d519b9461fdda99", "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c", "relations": [{"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"}}, {"rule": 2, "type": "equivalent", "target": "f975296ade117cc2815748df07818bb4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f975296ade117cc2815748df07818bb4", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}, "url": "/docs/compare/?release=9.6.2#9.6.2-12c278910814d24b", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "da65576d5ae967c3afb4c1feaaec0427fad9166232319e6ca20aa2f6cb311889", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/028", "db_id": "982c56a5a1cda9da427ee7e8135b9435", "patch_ids": [], "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": "78476c1a60a30fcdf082194b37a52d13", "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.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "78476c1a60a30fcdf082194b37a52d13", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}, "url": "/docs/compare/?release=9.6.2#9.6.2-2d0a4d1007979a08", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "676f4a85ac6d6bc15e9de41cd4fcf2aa24b20c436196a390e7a0b44620ec9164", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/029", "db_id": "76b00a5bcfca92d6496177c433ba9910", "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6", "relations": [{"rule": 2, "type": "equivalent", "target": "07b8249fa1e1fd91d3a90a40a51448c5", "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"}}, {"rule": 2, "type": "equivalent", "target": "f5042c2a104b12d38b1ec389b9b13fb1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f5042c2a104b12d38b1ec389b9b13fb1", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}, "url": "/docs/compare/?release=9.6.2#9.6.2-f13e8ec0337a146d", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "03529257856fc53422cac0b57af786bff1c8bd2bb037dba97dcab774af6c7cd2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix one-byte buffer overrun if ecpg is given a file name that ends with a dot (Takayuki Tsunakawa)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/030", "db_id": "8a4ca1a5d92dfa9aac0aae5141f0eb08", "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8", "relations": [{"rule": 2, "type": "equivalent", "target": "1eef4bb7b78714b618129ec8963589ee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}}, {"rule": 2, "type": "equivalent", "target": "2690cbca07c4d6e844be7d7d35b9f611", "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": "bf4cb52160fd94e8fbc8e94af8ed4337", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}}], "version": "9.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2690cbca07c4d6e844be7d7d35b9f611", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}, "url": "/docs/compare/?release=9.6.2#9.6.2-77d838eeb1473632", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "272e6113048a0eaa70c195f4ddaafccacb2174686054c5ab8876a3c02966eaec", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql's tab completion for ALTER DEFAULT PRIVILEGES (Gilles Darold, Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/031", "db_id": "424f4ab11b2beeff894e1af2db875e74", "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493", "relations": [{"rule": 2, "type": "equivalent", "target": "300301c03eeb20361e3c44174604a3cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}}, {"rule": 2, "type": "equivalent", "target": "39cf1158ae74daa4b58cfcd084f8c908", "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.3.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "39cf1158ae74daa4b58cfcd084f8c908", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}, "url": "/docs/compare/?release=9.6.2#9.6.2-c86790c533835e8d", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "300200b93846b2950143dc8318aaf5aca307078b8081846f936713c7f9a3d829", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/032", "db_id": "766ba9a631742b05926183290fead72b", "patch_ids": [], "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": "5398a79d78c70d471e631f9d90646066", "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.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5398a79d78c70d471e631f9d90646066", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}, "url": "/docs/compare/?release=9.6.2#9.6.2-b4e87a046ed587c0", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "d5892883917b4ede1664c2014f85879c730cc89fd9dfb6cb79cc530610d16934", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve contrib/dblink's reporting of low-level libpq errors, such as out-of-memory (Joe Conway)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/033", "db_id": "978abd96ba15d8bd4ad1ca4c636e1b3d", "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650", "relations": [{"rule": 2, "type": "equivalent", "target": "82fc7c47cba9088cec956c07eb036737", "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"}}, {"rule": 2, "type": "equivalent", "target": "f7e01026e1a47f1bbda753dfc83fddb3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7e01026e1a47f1bbda753dfc83fddb3", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}, "url": "/docs/compare/?release=9.6.2#9.6.2-cb194d2ff6803edd", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "5c12ea2a8555f7b001f70de813167ce2f2e4bbb8c4dc5124588c819635f8c9a9", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/034", "db_id": "28b34472f0015ce86a765c04ae8c3679", "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a", "relations": [{"rule": 2, "type": "equivalent", "target": "9002018720b19c625fc8935a51aa0792", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}}, {"rule": 2, "type": "equivalent", "target": "b43a9d82a40a9e939019bfcb84628e1d", "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.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b43a9d82a40a9e939019bfcb84628e1d", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}, "url": "/docs/compare/?release=9.6.2#9.6.2-b28a8df0fb9aa81c", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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"}]}, {"id": "9.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "8ca609811e53ff989da6f3086a3e5c9760aed23a863edabe8d57c8c836d02d0a", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, ensure that environment variable changes are propagated to DLLs built with debug options (Christian Ullrich)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.16/changes/035", "db_id": "c4d22fa01c7df0bcf97cfa9049c954ff", "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b", "relations": [{"rule": 2, "type": "equivalent", "target": "7162d92bab380922d7dff3b7ebb0a506", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}}, {"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"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7162d92bab380922d7dff3b7ebb0a506", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}, "url": "/docs/compare/?release=9.6.2#9.6.2-e3a04de3fa88d654", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "5f3988341c51c49b6b8f02ee184888d1d20795cbba8d59444e2ca1ac34d09997", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/036", "db_id": "eba27fcaf1b4470b6ed9ad2c0f08c917", "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db", "relations": [{"rule": 2, "type": "equivalent", "target": "28247a8918f5b21afafdd608c376bd8b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}}, {"rule": 2, "type": "equivalent", "target": "457a190719c70cfc1f2c096b9d846f54", "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"}}], "version": "9.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "457a190719c70cfc1f2c096b9d846f54", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "把我们的时区库副本与 IANA tzcode2016j 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}, "url": "/docs/compare/?release=9.6.2#9.6.2-8ca36f6367d6fab6", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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.3.16-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.3.16/#id-1.11.6.14.5", "source_hash": "fa8c162921b570293109dc04486b2adfee84646805053d52158dc0e8b5e665af", "section_path": ["变更"], "commit_groups": [], "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": [], "source_commits": [], "source_entry_id": "9.3.16/changes/037", "db_id": "984e50f01c50c81f2e6530606dab0861", "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713", "relations": [{"rule": 2, "type": "equivalent", "target": "1ecb13fc6bee48daab0328fe79047aea", "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": "b9138779daab18b2425a44234398696f", "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.3.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b9138779daab18b2425a44234398696f", "kind": "equivalent", "version": "9.6.2", "label": "9.6.2", "title": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}, "url": "/docs/compare/?release=9.6.2#9.6.2-36d60f2ae6e8d309", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5"}, {"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": "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"}]}]}, {"date": "2016-10-27", "build": "9.3.15", "major": "9.3", "minor": 15, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.15", "eol_date": "2018-11-08", "date_text": "2016-10-27", "supported": false, "manual_url": "/docs/9.3/release-9-3-15.html", "source_url": "/docs/release/9.3.15/", "entry_count": 22, "placeholder": false, "content_hash": "db94369b82b16dbd15c236453f64e3ddb7c124e3ae1b77cca3396e1a281ca518", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 22, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你的安装受到下面第一条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的空闲空间映射。</p>\n<p>不过，如果你是从早于 9.3.9 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-9.html\" title=\"E.17. 版本 9.3.9\">第 E.17 节</a>。</p>", "compatibility_count": 0, "label": "9.3.15", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3625, "support_days": -2883, "entries": [{"id": "9.3.15-11f8f9985f40fab4", "cves": [], "html": "<p>修复关系空闲空间映射和可见性映射截断的 WAL 记录（Pavan Deolasee、Heikki Linnakangas）</p>\n<p>这些文件有可能在崩溃恢复期间未被正确恢复，或者在备库服务器上被错误写入。空闲空间映射中的虚假条目可能导致访问已从关系中截断掉的页，通常产生诸如 <span>“<span>could not read block <em><code>XXX</code></em>: read only 0 of 8192 bytes</span>”</span> 的错误。如果启用了校验和，可见性映射中的校验和失败也是可能的。</p>\n<p>判断是否存在问题以及如何修复的程序在<a href=\"https://wiki.postgresql.org/wiki/Free_Space_Map_Problems\">https://wiki.postgresql.org/wiki/Free_Space_Map_Problems</a>中讨论。</p>", "text": "修复关系空闲空间映射和可见性映射截断的 WAL 记录（Pavan Deolasee、Heikki Linnakangas） 这些文件有可能在崩溃恢复期间未被正确恢复，或者在备库服务器上被错误写入。空闲空间映射中的虚假条目可能导致访问已从关系中截断掉的页，通常产生诸如 “could not read block XXX: read only 0 of 8192 bytes” 的错误。如果启用了校验和，可见性映射中的校验和失败也是可能的。 判断是否存在问题以及如何修复的程序在https://wiki.postgresql.org/wiki/Free_Space_Map_Problems中讨论。", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "dedb870c93a58c7b297dfbdceb99a67c9cd045fcacedfb23fc768ef5d758ec6b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix WAL-logging of truncation of relation free space maps and visibility maps (Pavan Deolasee, Heikki Linnakangas) It was possible for these files to not be correctly restored during crash recovery, or to be written incorrectly on a standby server. Bogus entries in a free space map could lead to attempts to access pages that have been truncated away from the relation itself, typically producing errors like could not read block XXX: read only 0 of 8192 bytes. Checksum failures in the visibility map are also possible, if checksumming is enabled. Procedures for determining whether there is a problem and repairing it if so are discussed at .", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/001", "db_id": "b8931467596606ee308ef7bf67015c41", "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734", "relations": [{"rule": 2, "type": "equivalent", "target": "2e98beda261d76d5e2d451d7d589fe76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}}, {"rule": 2, "type": "equivalent", "target": "ec09950c4b42590a3a372f8dbd97440b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}}, {"rule": 2, "type": "equivalent", "target": "f7aa35ae515033d8874d9c9a6d5aa129", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7aa35ae515033d8874d9c9a6d5aa129", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}, "url": "/docs/compare/?release=9.6.1#9.6.1-11f8f9985f40fab4", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"db_id": "2e98beda261d76d5e2d451d7d589fe76", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}, "url": "/docs/compare/?release=9.5.5#9.5.5-11f8f9985f40fab4", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "ec09950c4b42590a3a372f8dbd97440b", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}, "url": "/docs/compare/?release=9.4.10#9.4.10-11f8f9985f40fab4", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}]}, {"id": "9.3.15-561e014ae849975e", "cves": [], "html": "<p>修复 <code>SELECT FOR UPDATE/SHARE</code>，使其正确锁定已被随后中止的事务更新过的元组（Álvaro Herrera）</p>\n<p>在 9.5 及之后的版本中，<code>SELECT</code> 有时可能完全不返回此类元组。虽然尚未证明在更早的版本中会发生失败，但在并发更新的情况下是有可能的。</p>", "text": "修复 SELECT FOR UPDATE/SHARE，使其正确锁定已被随后中止的事务更新过的元组（Álvaro Herrera） 在 9.5 及之后的版本中，SELECT 有时可能完全不返回此类元组。虽然尚未证明在更早的版本中会发生失败，但在并发更新的情况下是有可能的。", "title": "修复 SELECT FOR UPDATE/SHARE，使其正确锁定已被随后中止的事务更新过的元组", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "f978d3ffd9dea4bf36af2deea9652dcf6fa18a53b3945decf138d0c95f340fd5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix SELECT FOR UPDATE/SHARE to correctly lock tuples that have been updated by a subsequently-aborted transaction (Álvaro Herrera) In 9.5 and later, the SELECT would sometimes fail to return such tuples at all. A failure has not been proven to occur in earlier releases, but might be possible with concurrent updates.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/002", "db_id": "b80c379abd79da59846ca10cf5e8e526", "patch_ids": [], "statement_hash": "0a144b49adada71071be4ca3d4de4af3e8c9eb389e9be0dde2ca6bd2d1f41ddf", "relations": [{"rule": 2, "type": "equivalent", "target": "7c87550f2317efb9f2362234580f3f1e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a144b49adada71071be4ca3d4de4af3e8c9eb389e9be0dde2ca6bd2d1f41ddf"}}, {"rule": 2, "type": "equivalent", "target": "8b6aba51defd566c424604d159108cd1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a144b49adada71071be4ca3d4de4af3e8c9eb389e9be0dde2ca6bd2d1f41ddf"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b6aba51defd566c424604d159108cd1", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复 SELECT FOR UPDATE/SHARE，使其正确锁定已被随后中止的事务更新过的元组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a144b49adada71071be4ca3d4de4af3e8c9eb389e9be0dde2ca6bd2d1f41ddf"}, "url": "/docs/compare/?release=9.5.5#9.5.5-561e014ae849975e", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "7c87550f2317efb9f2362234580f3f1e", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复 SELECT FOR UPDATE/SHARE，使其正确锁定已被随后中止的事务更新过的元组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a144b49adada71071be4ca3d4de4af3e8c9eb389e9be0dde2ca6bd2d1f41ddf"}, "url": "/docs/compare/?release=9.4.10#9.4.10-561e014ae849975e", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}]}, {"id": "9.3.15-2252643d10d5d336", "cves": [], "html": "<p>修复涉及 CTE 扫描的 EvalPlanQual 重新检查（Tom Lane）</p>\n<p>重新检查总是把 CTE 视为不返回任何行，通常导致无法更新最近已更新的行。</p>", "text": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查（Tom Lane） 重新检查总是把 CTE 视为不返回任何行，通常导致无法更新最近已更新的行。", "title": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "934f64db561426b4fb2731286513fbfc3a6d01248ae274203642ce636ab3d585", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix EvalPlanQual rechecks involving CTE scans (Tom Lane) The recheck would always see the CTE as returning no rows, typically leading to failure to update rows that were recently updated.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/003", "db_id": "ca8b268793e0e49d7ceb1df2a66e0437", "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b", "relations": [{"rule": 2, "type": "equivalent", "target": "0a6f14182f50b9a5c9c9ea74490ccc30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}}, {"rule": 2, "type": "equivalent", "target": "148b0fed49731389ecd14f2ebc3d1067", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}}, {"rule": 2, "type": "equivalent", "target": "a48b38961155ef2e30667a393641fa53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}}, {"rule": 2, "type": "equivalent", "target": "b38da6d063494a10eabf2dd1ce5243c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b38da6d063494a10eabf2dd1ce5243c0", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}, "url": "/docs/compare/?release=9.5.5#9.5.5-2252643d10d5d336", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "148b0fed49731389ecd14f2ebc3d1067", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}, "url": "/docs/compare/?release=9.4.10#9.4.10-2252643d10d5d336", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "a48b38961155ef2e30667a393641fa53", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}, "url": "/docs/compare/?release=9.2.19#9.2.19-2252643d10d5d336", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "0a6f14182f50b9a5c9c9ea74490ccc30", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "修复涉及 CTE 扫描的 EvalPlanQual 重新检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3922d3edd8ef9a6128553b94e92bb013dc6c62c46c5dc805ef648aea848cd84b"}, "url": "/docs/compare/?release=9.1.24#9.1.24-2252643d10d5d336", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-177aca4ce1450549", "cves": [], "html": "<p>修复子查询中哈希聚合不当重复先前结果的问题（Andrew Gierth）</p>\n<p>判断能否复用先前计算的聚合状态值哈希表的测试，忽略了聚合参数表达式中出现外层查询引用的可能性。这种引用的值发生变化时本应重新计算哈希表，但实际没有。</p>", "text": "修复子查询中哈希聚合不当重复先前结果的问题（Andrew Gierth） 判断能否复用先前计算的聚合状态值哈希表的测试，忽略了聚合参数表达式中出现外层查询引用的可能性。这种引用的值发生变化时本应重新计算哈希表，但实际没有。", "title": "修复子查询中哈希聚合不当重复先前结果的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "667ebcb76b27edbb0e8d87c218b6cdb7eeccdb846db5137425092b2b564edbd7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix improper repetition of previous results from hashed aggregation in a subquery (Andrew Gierth) The test to see if we can reuse a previously-computed hash table of the aggregate state values neglected the possibility of an outer query reference appearing in an aggregate argument expression. A change in the value of such a reference should lead to recalculating the hash table, but did not.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/004", "db_id": "867a54d1479298adf343b084a19b61e2", "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d", "relations": [{"rule": 2, "type": "equivalent", "target": "00d5f51d3260f5e9e1b91bd6cbeec4ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}}, {"rule": 2, "type": "equivalent", "target": "2020a7bdb0fbf3ca85de8798e0305bf1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}}, {"rule": 2, "type": "equivalent", "target": "53320ec46d8b47b6ac4020cf83467a0a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}}, {"rule": 2, "type": "equivalent", "target": "79952d6e4a60f982e06c23562ae2bd7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "00d5f51d3260f5e9e1b91bd6cbeec4ce", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复子查询中哈希聚合不当重复先前结果的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}, "url": "/docs/compare/?release=9.5.5#9.5.5-177aca4ce1450549", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "2020a7bdb0fbf3ca85de8798e0305bf1", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复子查询中哈希聚合不当重复先前结果的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}, "url": "/docs/compare/?release=9.4.10#9.4.10-177aca4ce1450549", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "79952d6e4a60f982e06c23562ae2bd7f", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复子查询中哈希聚合不当重复先前结果的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}, "url": "/docs/compare/?release=9.2.19#9.2.19-177aca4ce1450549", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "53320ec46d8b47b6ac4020cf83467a0a", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "修复子查询中哈希聚合不当重复先前结果的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26bb3f470abaf63521436764cda9a018275d21c7262ddddde93473add7b9af0d"}, "url": "/docs/compare/?release=9.1.24#9.1.24-177aca4ce1450549", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-1ce213d7a7e480a4", "cves": [], "html": "<p>修复<a href=\"/docs/9.3/runtime-config-statistics.html#GUC-TRACK-IO-TIMING\">track_io_timing</a>打开时 <code>EXPLAIN</code> 发出有效 XML（Markus Winand）</p>\n<p>此前 XML 输出格式选项产生语法无效的标记，如 <code>&lt;I/O-Read-Time&gt;</code>。现在它被渲染为 <code>&lt;I-O-Read-Time&gt;</code>。</p>", "text": "修复track_io_timing打开时 EXPLAIN 发出有效 XML（Markus Winand） 此前 XML 输出格式选项产生语法无效的标记，如 <I/O-Read-Time>。现在它被渲染为 <I-O-Read-Time>。", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "f26c50ebbaf995303984cc6ad5b1dcda7c35ec7f2f56cb6b1f8af61652a8ab85", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix EXPLAIN to emit valid XML when guc-track-io-timing is on (Markus Winand) Previously the XML output-format option produced syntactically invalid tags such as <I/O-Read-Time>. That is now rendered as <I-O-Read-Time>.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/005", "db_id": "7d7e9a5d8afdcb8105c7b6a186564444", "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099", "relations": [{"rule": 2, "type": "equivalent", "target": "031d3c079a7113c9bce46abaecdf1492", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}, {"rule": 2, "type": "equivalent", "target": "2fa487464b0dfddc6e527f5a845fa85d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}, {"rule": 2, "type": "equivalent", "target": "684f2a691ee59de4a4bcc3301b1e7459", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}, {"rule": 2, "type": "equivalent", "target": "c35805d056ec383a472956b186d0e0c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c35805d056ec383a472956b186d0e0c6", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.6.1#9.6.1-1ce213d7a7e480a4", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"db_id": "2fa487464b0dfddc6e527f5a845fa85d", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.5.5#9.5.5-1ce213d7a7e480a4", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "684f2a691ee59de4a4bcc3301b1e7459", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.4.10#9.4.10-1ce213d7a7e480a4", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "031d3c079a7113c9bce46abaecdf1492", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.2.19#9.2.19-1ce213d7a7e480a4", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.3.15-15f72f576f6b0d0a", "cves": [], "html": "<p>抑制在 <code>EXPLAIN</code> 中为未测量的时间打印零值（Maksim Milyutin）</p>\n<p>某些选项组合会为在该组合下实际上从不测量的时间打印零值。<code>EXPLAIN</code> 的一般策略是完全不打印此类字段，因此在所有情况下都保持一致。</p>", "text": "抑制在 EXPLAIN 中为未测量的时间打印零值（Maksim Milyutin） 某些选项组合会为在该组合下实际上从不测量的时间打印零值。EXPLAIN 的一般策略是完全不打印此类字段，因此在所有情况下都保持一致。", "title": "抑制在 EXPLAIN 中为未测量的时间打印零值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "2c7edfbe528d1c971c3a6605f87f7ab02d1942d7b53eecbea37a3ef0c2f56e36", "section_path": ["变更"], "commit_groups": [], "identity_text": "Suppress printing of zeroes for unmeasured times in EXPLAIN (Maksim Milyutin) Certain option combinations resulted in printing zero values for times that actually aren't ever measured in that combination. Our general policy in EXPLAIN is not to print such fields at all, so do that consistently in all cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/006", "db_id": "67ee677c366a316903ec4b2e54b471d3", "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8", "relations": [{"rule": 2, "type": "equivalent", "target": "522257de20e54cfe8122c8f9c559c49c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}}, {"rule": 2, "type": "equivalent", "target": "d24172a3af57a138185911bdf4ae8731", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}}, {"rule": 2, "type": "equivalent", "target": "e56603a7f48fddbe68c96e0a63a33cb2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}}], "version": "9.3.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "522257de20e54cfe8122c8f9c559c49c", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "抑制在 EXPLAIN 中为未测量的时间打印零值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}, "url": "/docs/compare/?release=9.5.5#9.5.5-15f72f576f6b0d0a", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "d24172a3af57a138185911bdf4ae8731", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "抑制在 EXPLAIN 中为未测量的时间打印零值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}, "url": "/docs/compare/?release=9.4.10#9.4.10-15f72f576f6b0d0a", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "e56603a7f48fddbe68c96e0a63a33cb2", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "抑制在 EXPLAIN 中为未测量的时间打印零值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6bf184d53e5909258f39ab47dce71afad2e272336c14d18475da673b29837b8"}, "url": "/docs/compare/?release=9.2.19#9.2.19-15f72f576f6b0d0a", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.3.15-391c6ac06f6af90d", "cves": [], "html": "<p>修复 <code>VACUUM</code> 为截断表而等待排他表锁时的超时长度（Simon Riggs）</p>\n<p>该超时本应为 50 毫秒，但实际上只有 50 微秒，导致 <code>VACUUM</code> 比预期更容易放弃截断。将其设置为预期值。</p>", "text": "修复 VACUUM 为截断表而等待排他表锁时的超时长度（Simon Riggs） 该超时本应为 50 毫秒，但实际上只有 50 微秒，导致 VACUUM 比预期更容易放弃截断。将其设置为预期值。", "title": "修复 VACUUM 为截断表而等待排他表锁时的超时长度", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "a88a1a8f2b6919d53f15eeaeedf61fb8d38d9c4039061e621a4e0a0d81ee59b0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix timeout length when VACUUM is waiting for exclusive table lock so that it can truncate the table (Simon Riggs) The timeout was meant to be 50 milliseconds, but it was actually only 50 microseconds, causing VACUUM to give up on truncation much more easily than intended. Set it to the intended value.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/007", "db_id": "5b3e6ca70c68eb8f46e1990a4fd3c678", "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63", "relations": [{"rule": 2, "type": "equivalent", "target": "1cb079dbd3940fef26c1064d66af44f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}}, {"rule": 2, "type": "equivalent", "target": "56e997b4a49879750a680dce08d3c5c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}}, {"rule": 2, "type": "equivalent", "target": "b6e519c98f89f30c1819fa8ae87b9238", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}}, {"rule": 2, "type": "equivalent", "target": "e22909c1e13ebaf44cf39bdd22fb0be2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1cb079dbd3940fef26c1064d66af44f7", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复 VACUUM 为截断表而等待排他表锁时的超时长度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}, "url": "/docs/compare/?release=9.5.5#9.5.5-391c6ac06f6af90d", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "b6e519c98f89f30c1819fa8ae87b9238", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复 VACUUM 为截断表而等待排他表锁时的超时长度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}, "url": "/docs/compare/?release=9.4.10#9.4.10-391c6ac06f6af90d", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "56e997b4a49879750a680dce08d3c5c3", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复 VACUUM 为截断表而等待排他表锁时的超时长度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}, "url": "/docs/compare/?release=9.2.19#9.2.19-391c6ac06f6af90d", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "e22909c1e13ebaf44cf39bdd22fb0be2", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "修复 VACUUM 为截断表而等待排他表锁时的超时长度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e1750cd34b1da6ea50cda2bcea08aad7bae5f29bba6a05fdeaa3950bbdffb63"}, "url": "/docs/compare/?release=9.1.24#9.1.24-391c6ac06f6af90d", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-57214dd6616bc23b", "cves": [], "html": "<p>修复创建或更改表时合并继承 <code>CHECK</code> 约束的 bug（Tom Lane、Amit Langote）</p>\n<p>允许以任一顺序向父表和子表添加相同的 <code>CHECK</code> 约束。防止父表的有效约束与子表的 <code>NOT VALID</code> 约束合并。同样防止 <code>NO INHERIT</code> 子约束与继承约束合并。</p>", "text": "修复创建或更改表时合并继承 CHECK 约束的 bug（Tom Lane、Amit Langote） 允许以任一顺序向父表和子表添加相同的 CHECK 约束。防止父表的有效约束与子表的 NOT VALID 约束合并。同样防止 NO INHERIT 子约束与继承约束合并。", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "5664e9a5115fa888916d0ee1a063a08c848230561c141770c8e17294e7920d23", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bugs in merging inherited CHECK constraints while creating or altering a table (Tom Lane, Amit Langote) Allow identical CHECK constraints to be added to a parent and child table in either order. Prevent merging of a valid constraint from the parent table with a NOT VALID constraint on the child. Likewise, prevent merging of a NO INHERIT child constraint with an inherited constraint.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/008", "db_id": "cf4210aa72e5ceb04465bf6396e92fd3", "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a", "relations": [{"rule": 2, "type": "equivalent", "target": "17c3b5c88a4e18eeb9db0d79f1bd4738", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}, {"rule": 2, "type": "equivalent", "target": "820976eee5d0d58fc24e6faef69ef024", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}, {"rule": 2, "type": "equivalent", "target": "864da9828cbc9dedf3a48fbb88838d2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}, {"rule": 2, "type": "equivalent", "target": "d0ba967b9080e8d3d7c374af62b71ddc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "820976eee5d0d58fc24e6faef69ef024", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.6.1#9.6.1-57214dd6616bc23b", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"db_id": "d0ba967b9080e8d3d7c374af62b71ddc", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.5.5#9.5.5-57214dd6616bc23b", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "864da9828cbc9dedf3a48fbb88838d2c", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.4.10#9.4.10-57214dd6616bc23b", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "17c3b5c88a4e18eeb9db0d79f1bd4738", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.2.19#9.2.19-57214dd6616bc23b", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.3.15-04f5bd0c7fa406b1", "cves": [], "html": "<p>移除对 <code>numeric_in()</code> 和 <code>numeric_recv()</code> 所接受值的人为限制（Tom Lane）</p>\n<p>我们允许数值达到存储格式的极限（超过 <code>1e100000</code>），因此 <code>numeric_in()</code> 拒绝科学计数法指数超过 1000 的做法相当无意义。同样，<code>numeric_recv()</code> 拒绝输入值超过 1000 位数字也很荒谬。</p>", "text": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制（Tom Lane） 我们允许数值达到存储格式的极限（超过 1e100000），因此 numeric_in() 拒绝科学计数法指数超过 1000 的做法相当无意义。同样，numeric_recv() 拒绝输入值超过 1000 位数字也很荒谬。", "title": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "d852208c101b4f6158c90ab89a95b3d52741172e6a32dc7c7b132a2ea7e97a00", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove artificial restrictions on the values accepted by numeric_in() and numeric_recv() (Tom Lane) We allow numeric values up to the limit of the storage format (more than 1e100000), so it seems fairly pointless that numeric_in() rejected scientific-notation exponents above 1000. Likewise, it was silly for numeric_recv() to reject more than 1000 digits in an input value.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/009", "db_id": "959c3d113ea2d715b8e71b3488b5584c", "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123", "relations": [{"rule": 2, "type": "equivalent", "target": "16dbdf9c98d05ce7811dbc5a70c5239a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}}, {"rule": 2, "type": "equivalent", "target": "6e99ac62e2f9ae4123378e4e897126a9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}}, {"rule": 2, "type": "equivalent", "target": "970b3b385e77bd81befa029af417124f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}}, {"rule": 2, "type": "equivalent", "target": "cbb15d183b27452a22355f59275315af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}}], "version": "9.3.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "16dbdf9c98d05ce7811dbc5a70c5239a", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}, "url": "/docs/compare/?release=9.5.5#9.5.5-04f5bd0c7fa406b1", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "6e99ac62e2f9ae4123378e4e897126a9", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}, "url": "/docs/compare/?release=9.4.10#9.4.10-04f5bd0c7fa406b1", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "970b3b385e77bd81befa029af417124f", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}, "url": "/docs/compare/?release=9.2.19#9.2.19-04f5bd0c7fa406b1", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "cbb15d183b27452a22355f59275315af", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "215d294cd39b761b6e387ebbaa8d20b974e46a4b710762012aeec3d2b1f71123"}, "url": "/docs/compare/?release=9.1.24#9.1.24-04f5bd0c7fa406b1", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-4eb1a050d783d079", "cves": [], "html": "<p>避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏（Thomas Munro、Peter Geoghegan、Tom Lane）</p>", "text": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏（Thomas Munro、Peter Geoghegan、Tom Lane）", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "2088d92c0623ce8060de46d34e6c772b1f84018e689d34acab32b10abccbee9d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid very-low-probability data corruption due to testing tuple visibility without holding buffer lock (Thomas Munro, Peter Geoghegan, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/010", "db_id": "f765abee4edf5f8c07e5c00859b6aef5", "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37", "relations": [{"rule": 2, "type": "equivalent", "target": "53b0b52d899de881f8586469efa7f5aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "6ca408c5775b0169d72f4bf6b3f53cbe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "ae85002bd79a9c04b168f6dc9ace9ce5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "faba4ef996319c8db73db30748abf489", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "fec739de452ca83cbdf70ca3235da08b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "faba4ef996319c8db73db30748abf489", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.6.1#9.6.1-4eb1a050d783d079", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"db_id": "fec739de452ca83cbdf70ca3235da08b", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.5.5#9.5.5-4eb1a050d783d079", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "53b0b52d899de881f8586469efa7f5aa", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.4.10#9.4.10-4eb1a050d783d079", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "6ca408c5775b0169d72f4bf6b3f53cbe", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.2.19#9.2.19-4eb1a050d783d079", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "ae85002bd79a9c04b168f6dc9ace9ce5", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.1.24#9.1.24-4eb1a050d783d079", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-11ce7446bcfb0c31", "cves": [], "html": "<p>修复截断超过 1GB 的临时关系时文件描述符泄漏的问题（Andres Freund）</p>", "text": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题（Andres Freund）", "title": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "9a53c0088d60382ad47e1fe04bc5a4341b1f90e32f9de51b92c74bf8854332db", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix file descriptor leakage when truncating a temporary relation of more than 1GB (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/011", "db_id": "83d2e2fe32c55c203f2ded6cd8374eca", "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3", "relations": [{"rule": 2, "type": "equivalent", "target": "aa88f9f6926279796753592c45883a86", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}}, {"rule": 2, "type": "equivalent", "target": "ab4fc2910d13bf23ffd61316064bb01c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}}, {"rule": 2, "type": "equivalent", "target": "b968a9e8dab9d2bfdbe1558ed1e6c414", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}}, {"rule": 2, "type": "equivalent", "target": "e18dd780cb4b753fd2ebe6b802d3c37f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "aa88f9f6926279796753592c45883a86", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}, "url": "/docs/compare/?release=9.5.5#9.5.5-11ce7446bcfb0c31", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "ab4fc2910d13bf23ffd61316064bb01c", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}, "url": "/docs/compare/?release=9.4.10#9.4.10-11ce7446bcfb0c31", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "e18dd780cb4b753fd2ebe6b802d3c37f", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}, "url": "/docs/compare/?release=9.2.19#9.2.19-11ce7446bcfb0c31", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "b968a9e8dab9d2bfdbe1558ed1e6c414", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "修复截断超过 1GB 的临时关系时文件描述符泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d7cf9bd3d4ed2d44b98b0685eab1a96a80439eb3b83f955881792a0666dd7ab3"}, "url": "/docs/compare/?release=9.1.24#9.1.24-11ce7446bcfb0c31", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-a06fe56237b46443", "cves": [], "html": "<p>禁止在启用 <code>standby_mode</code> 的情况下启动独立后端（Michael Paquier）</p>\n<p>这不可能有任何用处，因为不会有 WAL 接收器进程来获取更多 WAL 数据；而且这可能导致未针对此种情况设计的代码出现不当行为。</p>", "text": "禁止在启用 standby_mode 的情况下启动独立后端（Michael Paquier） 这不可能有任何用处，因为不会有 WAL 接收器进程来获取更多 WAL 数据；而且这可能导致未针对此种情况设计的代码出现不当行为。", "title": "禁止在启用 standby_mode 的情况下启动独立后端", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "5aa9396bc0c7bf820c271dbcf9603cb6dd4984916a0dd0ad36b9a749ee2e5c97", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disallow starting a standalone backend with standby_mode turned on (Michael Paquier) This can't do anything useful, since there will be no WAL receiver process to fetch more WAL data; and it could result in misbehavior in code that wasn't designed with this situation in mind.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/012", "db_id": "775c280a36f8bbb4957832f77d57a7b7", "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38", "relations": [{"rule": 2, "type": "equivalent", "target": "158516e1eddd49983f3b4f829956eec1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}}, {"rule": 2, "type": "equivalent", "target": "17b6d5fba75136b8d707e13f8a93e3bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}}, {"rule": 2, "type": "equivalent", "target": "ac1759edd7767fc474e87059273b5158", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}}, {"rule": 2, "type": "equivalent", "target": "c86ab88b8e5235177f445a4e1c359640", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}}], "version": "9.3.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "17b6d5fba75136b8d707e13f8a93e3bb", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "禁止在启用 standby_mode 的情况下启动独立后端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}, "url": "/docs/compare/?release=9.5.5#9.5.5-a06fe56237b46443", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "ac1759edd7767fc474e87059273b5158", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "禁止在启用 standby_mode 的情况下启动独立后端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}, "url": "/docs/compare/?release=9.4.10#9.4.10-a06fe56237b46443", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "158516e1eddd49983f3b4f829956eec1", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "禁止在启用 standby_mode 的情况下启动独立后端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}, "url": "/docs/compare/?release=9.2.19#9.2.19-a06fe56237b46443", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "c86ab88b8e5235177f445a4e1c359640", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "禁止在启用 standby_mode 的情况下启动独立后端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d01bfcbddf2c65c32e5e7a2d049baaacae2f5fb02e5cec4950d3675c9c165d38"}, "url": "/docs/compare/?release=9.1.24#9.1.24-a06fe56237b46443", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-8003d20ba0ae4da2", "cves": [], "html": "<p>不要在 <span>libpq</span> 中跨多个连接共享 SSL 上下文（Heikki Linnakangas）</p>\n<p>这导致了各种边界情况 bug，特别是当尝试对不同连接使用不同 SSL 参数时。</p>", "text": "不要在 libpq 中跨多个连接共享 SSL 上下文（Heikki Linnakangas） 这导致了各种边界情况 bug，特别是当尝试对不同连接使用不同 SSL 参数时。", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "39c58d256746dddeb5985975affc084f1f580e434421afec12e9f80792262683", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't try to share SSL contexts across multiple connections in libpq (Heikki Linnakangas) This led to assorted corner-case bugs, particularly when trying to use different SSL parameters for different connections.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/013", "db_id": "8e470a25f92f8433de8ca041850612c3", "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679", "relations": [{"rule": 2, "type": "equivalent", "target": "5797a86f9ccff5c9d9bc62cededb71ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "6cf72552733f502b0431bb9d9b3679f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "78f23bf21615092d97ff903e3cbe4886", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "dd8ac44910aec9313eac765230d29672", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "e4e858812dc39cda82cd0c879258e22e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}], "version": "9.3.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4e858812dc39cda82cd0c879258e22e", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.6.1#9.6.1-8003d20ba0ae4da2", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"db_id": "78f23bf21615092d97ff903e3cbe4886", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.5.5#9.5.5-8003d20ba0ae4da2", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "6cf72552733f502b0431bb9d9b3679f7", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.4.10#9.4.10-8003d20ba0ae4da2", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "dd8ac44910aec9313eac765230d29672", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.2.19#9.2.19-8003d20ba0ae4da2", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "5797a86f9ccff5c9d9bc62cededb71ea", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.1.24#9.1.24-8003d20ba0ae4da2", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-dc53364de494302c", "cves": [], "html": "<p>避免 <span>libpq</span> 中的边界情况内存泄漏（Tom Lane）</p>\n<p>报告的问题涉及 <code>PQreset()</code> 期间泄漏错误报告，但可能有相关情况。</p>", "text": "避免 libpq 中的边界情况内存泄漏（Tom Lane） 报告的问题涉及 PQreset() 期间泄漏错误报告，但可能有相关情况。", "title": "避免 libpq 中的边界情况内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "99615ad64a6d48be73ad24cb11baed8c1601bcbe2904a9275b32e8e45a61941d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid corner-case memory leak in libpq (Tom Lane) The reported problem involved leaking an error report during PQreset(), but there might be related cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/014", "db_id": "f9d1df0ce59f793c20266442d620f9e9", "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151", "relations": [{"rule": 2, "type": "equivalent", "target": "04b184ad52defb377059eb805941b633", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "3567237d2f5f97af726737510ecec076", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "49a3081384e05d757cf9c1c27d9f7dce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "8c19c02343fed4f8c84e6f95cd8dec60", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "f7275762184112b2fde26f52da082d79", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7275762184112b2fde26f52da082d79", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.6.1#9.6.1-dc53364de494302c", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"db_id": "04b184ad52defb377059eb805941b633", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.5.5#9.5.5-dc53364de494302c", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "3567237d2f5f97af726737510ecec076", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.4.10#9.4.10-dc53364de494302c", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "49a3081384e05d757cf9c1c27d9f7dce", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.2.19#9.2.19-dc53364de494302c", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "8c19c02343fed4f8c84e6f95cd8dec60", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.1.24#9.1.24-dc53364de494302c", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-5832b2c8b0b52eb3", "cves": [], "html": "<p>使 <span>ecpg</span> 的 <code>--help</code> 和 <code>--version</code> 选项与其他可执行程序保持一致（Haribabu Kommi）</p>", "text": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致（Haribabu Kommi）", "title": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "0afbd62d6f50d76344c8bf02e9e9f0ad669e43b7ed03991efe04aa3c23720008", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make ecpg's --help and --version options work consistently with our other executables (Haribabu Kommi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/015", "db_id": "5c5b1a7cd2e44b591bff258e7b9e924a", "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f", "relations": [{"rule": 2, "type": "equivalent", "target": "1659101e0086790df02e1950ab4440e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}}, {"rule": 2, "type": "equivalent", "target": "339f6f243a994ed5be7aee0f49aef1fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}}, {"rule": 2, "type": "equivalent", "target": "c3222ac30548b14f58131955d74c5e16", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}}, {"rule": 2, "type": "equivalent", "target": "fc5034e388a6016454326e2b73a1a750", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}}], "version": "9.3.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c3222ac30548b14f58131955d74c5e16", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}, "url": "/docs/compare/?release=9.5.5#9.5.5-5832b2c8b0b52eb3", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "1659101e0086790df02e1950ab4440e8", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}, "url": "/docs/compare/?release=9.4.10#9.4.10-5832b2c8b0b52eb3", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "fc5034e388a6016454326e2b73a1a750", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}, "url": "/docs/compare/?release=9.2.19#9.2.19-5832b2c8b0b52eb3", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "339f6f243a994ed5be7aee0f49aef1fe", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d40f0b8552d5f34084ba6f54d31af1d3b275af576416d83375ccdffc325f845f"}, "url": "/docs/compare/?release=9.1.24#9.1.24-5832b2c8b0b52eb3", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-b1843c09564d1b03", "cves": [], "html": "<p>在 <span>pg_dump</span> 中，永不转储范围构造函数（Tom Lane）</p>\n<p>这一疏漏导致包含范围类型的扩展在 <span>pg_upgrade</span> 时因重复创建构造函数而失败。</p>", "text": "在 pg_dump 中，永不转储范围构造函数（Tom Lane） 这一疏漏导致包含范围类型的扩展在 pg_upgrade 时因重复创建构造函数而失败。", "title": "在 pg_dump 中，永不转储范围构造函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "7e9764b38ad4deb812081e00f91eb95b248e0feb9c4c88bc096ace39a107fa5a", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_dump, never dump range constructor functions (Tom Lane) This oversight led to pg_upgrade failures with extensions containing range types, due to duplicate creation of the constructor functions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/016", "db_id": "6758ee8a8d57ab2e9be9471f1385751d", "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952", "relations": [{"rule": 2, "type": "equivalent", "target": "45805377ff61f58f54c6e0f320c5c06b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}}, {"rule": 2, "type": "equivalent", "target": "6286726427ae08d053a9c2b837dac3b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}}, {"rule": 2, "type": "equivalent", "target": "ddd2576c9b8acb7403028207cd9cbdd0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}}], "version": "9.3.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "45805377ff61f58f54c6e0f320c5c06b", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 pg_dump 中，永不转储范围构造函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}, "url": "/docs/compare/?release=9.5.5#9.5.5-b1843c09564d1b03", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "ddd2576c9b8acb7403028207cd9cbdd0", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "在 pg_dump 中，永不转储范围构造函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}, "url": "/docs/compare/?release=9.4.10#9.4.10-b1843c09564d1b03", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "6286726427ae08d053a9c2b837dac3b1", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "在 pg_dump 中，永不转储范围构造函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5bf8efc77acb573dcdcc234a2efdfd482bff1f0075ec509ee7c8662fb75e952"}, "url": "/docs/compare/?release=9.2.19#9.2.19-b1843c09564d1b03", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.3.15-3588338c44b471b3", "cves": [], "html": "<p>在 <span>pg_xlogdump</span> 中，使用 <code>--follow</code> 选项时重试打开新的 WAL 段（Magnus Hagander）</p>\n<p>这考虑到服务器创建下一段的可能延迟。</p>", "text": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段（Magnus Hagander） 这考虑到服务器创建下一段的可能延迟。", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "2996780c666d4ac7f291aae339067028f0b3e25d19845a00e5c1ee7f347eb6b8", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_xlogdump, retry opening new WAL segments when using --follow option (Magnus Hagander) This allows for a possible delay in the server's creation of the next segment.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/017", "db_id": "f2af211971ec3653a813cd132d95e373", "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a", "relations": [{"rule": 2, "type": "equivalent", "target": "2113e3ca11fc4e23dbedd995bafef047", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}}, {"rule": 2, "type": "equivalent", "target": "76feb8e100587752206df4baba988197", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}}, {"rule": 2, "type": "equivalent", "target": "95a5bd12885de7f441144ce2c9527398", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}}], "version": "9.3.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "76feb8e100587752206df4baba988197", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}, "url": "/docs/compare/?release=9.6.1#9.6.1-3588338c44b471b3", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"db_id": "2113e3ca11fc4e23dbedd995bafef047", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}, "url": "/docs/compare/?release=9.5.5#9.5.5-3588338c44b471b3", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "95a5bd12885de7f441144ce2c9527398", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}, "url": "/docs/compare/?release=9.4.10#9.4.10-3588338c44b471b3", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}]}, {"id": "9.3.15-14225ec6a99c2588", "cves": [], "html": "<p>修复 <span>pg_xlogdump</span> 处理以跨越多页的续页记录开头的 WAL 文件的问题（Pavan Deolasee）</p>", "text": "修复 pg_xlogdump 处理以跨越多页的续页记录开头的 WAL 文件的问题（Pavan Deolasee）", "title": "修复 pg_xlogdump 处理以跨越多页的续页记录开头的 WAL 文件的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "0fb2a5a90a1cc69987d8ad5d6baef6c01e097ff1740c1fd5cc2605096f41ea00", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_xlogdump to cope with a WAL file that begins with a continuation record spanning more than one page (Pavan Deolasee)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/018", "db_id": "3f77b1204e9ac32cd41ef7bc2b0596c7", "patch_ids": [], "statement_hash": "f88ce84ac85d4dcb3931362d27e57890b59c0d11bf42aa62c5b38af39319db94", "relations": [{"rule": 2, "type": "equivalent", "target": "191b24290bddfb26a1b9fe0a19e62b1f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f88ce84ac85d4dcb3931362d27e57890b59c0d11bf42aa62c5b38af39319db94"}}, {"rule": 2, "type": "equivalent", "target": "1fa1b083505cca8a3abe727a733bca7e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f88ce84ac85d4dcb3931362d27e57890b59c0d11bf42aa62c5b38af39319db94"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "191b24290bddfb26a1b9fe0a19e62b1f", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复 pg_xlogdump 处理以跨越多页的续页记录开头的 WAL 文件的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f88ce84ac85d4dcb3931362d27e57890b59c0d11bf42aa62c5b38af39319db94"}, "url": "/docs/compare/?release=9.5.5#9.5.5-14225ec6a99c2588", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "1fa1b083505cca8a3abe727a733bca7e", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复 pg_xlogdump 处理以跨越多页的续页记录开头的 WAL 文件的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f88ce84ac85d4dcb3931362d27e57890b59c0d11bf42aa62c5b38af39319db94"}, "url": "/docs/compare/?release=9.4.10#9.4.10-14225ec6a99c2588", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}]}, {"id": "9.3.15-2090082319887590", "cves": [], "html": "<p>修复 <code>contrib/intarray/bench/bench.pl</code>，使其在给定 <code>-e</code> 选项时打印它执行的 <code>EXPLAIN</code> 的结果（Daniel Gustafsson）</p>", "text": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果（Daniel Gustafsson）", "title": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "7b5f586fbf91b0245f7f87535c542fd871ecb13a658614c489d8bd2662439f8f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/intarray/bench/bench.pl to print the results of the EXPLAIN it does when given the -e option (Daniel Gustafsson)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/019", "db_id": "0afe03d9c13386818a87770d67e74516", "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af", "relations": [{"rule": 2, "type": "equivalent", "target": "16bfdd1ebb9bc5431be3dd0810325ab0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}}, {"rule": 2, "type": "equivalent", "target": "8b5f7f4d86e14acc040472393303f9e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}}, {"rule": 2, "type": "equivalent", "target": "afd918ad19c19455b21959aadd0fa8d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}}, {"rule": 2, "type": "equivalent", "target": "f7a1ae4f312b1995da02acf347333172", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}}], "version": "9.3.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b5f7f4d86e14acc040472393303f9e8", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}, "url": "/docs/compare/?release=9.5.5#9.5.5-2090082319887590", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "f7a1ae4f312b1995da02acf347333172", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}, "url": "/docs/compare/?release=9.4.10#9.4.10-2090082319887590", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "16bfdd1ebb9bc5431be3dd0810325ab0", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}, "url": "/docs/compare/?release=9.2.19#9.2.19-2090082319887590", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "afd918ad19c19455b21959aadd0fa8d5", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "修复 contrib/intarray/bench/bench.pl，使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9420134ff7c10c51247f87cdec5ac3767f018ff424db34d2044c3161fa4ef0af"}, "url": "/docs/compare/?release=9.1.24#9.1.24-2090082319887590", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-061d5c5efc8ef047", "cves": [], "html": "<p>更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称（Michael Paquier）</p>", "text": "更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称（Michael Paquier）", "title": "更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "556fb70f9bbe200c607d7189b978f1d7791f7bc6d09e3559f9845da4dcdfc30d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update Windows time zone mapping to recognize some time zone names added in recent Windows versions (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/020", "db_id": "f895fb7f193e14fd82c57cfa43eaaddd", "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02", "relations": [{"rule": 2, "type": "equivalent", "target": "01222902cd56ceb67b87f9da8850094c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}}, {"rule": 2, "type": "equivalent", "target": "303b126cbdf7b2f603b153bd85b9ec15", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}}, {"rule": 2, "type": "equivalent", "target": "32cb494f8b870eb0a9738a2a41d404ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}}], "version": "9.3.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "01222902cd56ceb67b87f9da8850094c", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}, "url": "/docs/compare/?release=9.5.5#9.5.5-061d5c5efc8ef047", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "303b126cbdf7b2f603b153bd85b9ec15", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}, "url": "/docs/compare/?release=9.4.10#9.4.10-061d5c5efc8ef047", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "32cb494f8b870eb0a9738a2a41d404ad", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "更新 Windows 时区映射，以识别较新 Windows 版本中新增的一些时区名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5f2e61a4e81589849f2584aebebae6a6dc61e2d4a60776b2c13d59549eb9f02"}, "url": "/docs/compare/?release=9.2.19#9.2.19-061d5c5efc8ef047", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.3.15-08cca64336ed7f30", "cves": [], "html": "<p>防止已过时的动态时区缩写失效（Tom Lane）</p>\n<p>如果动态时区缩写与所引用时区中的任何条目都不匹配，就把它视为等效于该时区名称。这避免了当 IANA 从其时区数据库中移除缩写时出现意外失败——他们在 <span>tzdata</span> 2016f 版中就这样做过，而且将来可能再次这样做。后果不仅限于无法识别单个缩写；任何不匹配都会导致 <code>pg_timezone_abbrevs</code> 视图完全失败。</p>", "text": "防止已过时的动态时区缩写失效（Tom Lane） 如果动态时区缩写与所引用时区中的任何条目都不匹配，就把它视为等效于该时区名称。这避免了当 IANA 从其时区数据库中移除缩写时出现意外失败——他们在 tzdata 2016f 版中就这样做过，而且将来可能再次这样做。后果不仅限于无法识别单个缩写；任何不匹配都会导致 pg_timezone_abbrevs 视图完全失败。", "title": "防止已过时的动态时区缩写失效", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "a2097fca9617b10e9fb35371bfb26fcbbcfcb50eeb5dfdcbb87ef9b699150ed6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane) If a dynamic time zone abbreviation does not match any entry in the referenced time zone, treat it as equivalent to the time zone name. This avoids unexpected failures when IANA removes abbreviations from their time zone database, as they did in tzdata release 2016f and seem likely to do again in the future. The consequences were not limited to not recognizing the individual abbreviation; any mismatch caused the pg_timezone_abbrevs view to fail altogether.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/021", "db_id": "81013ca3e28e75920b95bb9d099b8774", "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59", "relations": [{"rule": 2, "type": "equivalent", "target": "195a934a80213ad9d10533d9ec6910bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}}, {"rule": 2, "type": "equivalent", "target": "347843adccf78436c54349829d70ac0e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}}, {"rule": 2, "type": "equivalent", "target": "dc1afb1d01533caa8aae0cf843da733b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}}, {"rule": 2, "type": "equivalent", "target": "edf77d6193d7ad0c8b055bfe401a7729", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}}], "version": "9.3.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "edf77d6193d7ad0c8b055bfe401a7729", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "防止已过时的动态时区缩写失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}, "url": "/docs/compare/?release=9.5.5#9.5.5-08cca64336ed7f30", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "dc1afb1d01533caa8aae0cf843da733b", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "防止已过时的动态时区缩写失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}, "url": "/docs/compare/?release=9.4.10#9.4.10-08cca64336ed7f30", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "195a934a80213ad9d10533d9ec6910bb", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "防止已过时的动态时区缩写失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}, "url": "/docs/compare/?release=9.2.19#9.2.19-08cca64336ed7f30", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "347843adccf78436c54349829d70ac0e", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "防止已过时的动态时区缩写失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35d45066f14462f4493102a420364b5089af97901d4244fc255bdedf7fa35d59"}, "url": "/docs/compare/?release=9.1.24#9.1.24-08cca64336ed7f30", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.3.15-6e227d3e50c92407", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。</p>\n<p>IANA 时区数据库以前为所有时区提供文本缩写，有时编造在当地居民中几乎或完全没有使用的缩写。他们正在逆转这一政策，改为在没有证据表明实际使用英文缩写的区域使用数字 UTC 偏移。至少目前，<span>PostgreSQL</span> 将继续接受这种被移除的缩写用于时间戳输入。但它们不会显示在 <code>pg_timezone_names</code> 视图中，也不用于输出。</p>\n<p>在此更新中，<code>AMT</code> 不再显示为表示亚美尼亚时间。因此我们把 <code>Default</code> 缩写集改为把它解释为亚马逊时间，即 UTC-4 而不是 UTC+4。</p>", "text": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。 IANA 时区数据库以前为所有时区提供文本缩写，有时编造在当地居民中几乎或完全没有使用的缩写。他们正在逆转这一政策，改为在没有证据表明实际使用英文缩写的区域使用数字 UTC 偏移。至少目前，PostgreSQL 将继续接受这种被移除的缩写用于时间戳输入。但它们不会显示在 pg_timezone_names 视图中，也不用于输出。 在此更新中，AMT 不再显示为表示亚美尼亚时间。因此我们把 Default 缩写集改为把它解释为亚马逊时间，即 UTC-4 而不是 UTC+4。", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5", "source_hash": "5d876926e92fe088eeeeaa314b9c7614b9d93ea3fe45dee46c9c7d6b75e45bde", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2016h for DST law changes in Palestine and Turkey, plus historical corrections for Turkey and some regions of Russia. Switch to numeric abbreviations for some time zones in Antarctica, the former Soviet Union, and Sri Lanka. The IANA time zone database previously provided textual abbreviations for all time zones, sometimes making up abbreviations that have little or no currency among the local population. They are in process of reversing that policy in favor of using numeric UTC offsets in zones where there is no evidence of real-world use of an English abbreviation. At least for the time being, PostgreSQL will continue to accept such removed abbreviations for timestamp input. But they will not be shown in the pg_timezone_names view nor used for output. In this update, AMT is no longer shown as being in use to mean Armenia Time. Therefore, we have changed the Default abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.15/changes/022", "db_id": "7dbf3562cb1733646d00e2c34c95c08d", "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc", "relations": [{"rule": 2, "type": "equivalent", "target": "0beb84d0b5ea7d442a7e372ee1f44a0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "22efdf8d456fcfa0566c2bec71378820", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "48ce47c9c15ba40810e3bf5ec621c6e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "649e25bc93cef830346c3561540e67e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "acf105f7b3890b7ae360a1c91e091c35", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}], "version": "9.3.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "48ce47c9c15ba40810e3bf5ec621c6e2", "kind": "equivalent", "version": "9.6.1", "label": "9.6.1", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.6.1#9.6.1-6e227d3e50c92407", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5"}, {"db_id": "649e25bc93cef830346c3561540e67e2", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.5.5#9.5.5-6e227d3e50c92407", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "22efdf8d456fcfa0566c2bec71378820", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.4.10#9.4.10-6e227d3e50c92407", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "0beb84d0b5ea7d442a7e372ee1f44a0f", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.2.19#9.2.19-6e227d3e50c92407", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "acf105f7b3890b7ae360a1c91e091c35", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.1.24#9.1.24-6e227d3e50c92407", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}]}, {"date": "2016-08-11", "build": "9.3.14", "major": "9.3", "minor": 14, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.14", "eol_date": "2018-11-08", "date_text": "2016-08-11", "supported": false, "manual_url": "/docs/9.3/release-9-3-14.html", "source_url": "/docs/release/9.3.14/", "entry_count": 36, "placeholder": false, "content_hash": "c07294aeca888f28343c19a9886a52e2d2984a4a997a5b3f1aaef26a9266f2fe", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 36, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.3.9 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-9.html\" title=\"E.17. 版本 9.3.9\">第 E.17 节</a>。</p>", "compatibility_count": 0, "label": "9.3.14", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3702, "support_days": -2883, "entries": [{"id": "9.3.14-d1f1d0d139e01566", "cves": ["CVE-2016-5423"], "html": "<p>修复嵌套 <code>CASE</code>-<code>WHEN</code> 表达式可能被错误评估的问题（Heikki Linnakangas、Michael Paquier、Tom Lane）</p>\n<p>出现在另一个 <code>CASE</code> 的测试值子表达式中的 <code>CASE</code> 表达式，可能会混淆其自身的测试值是否为空。此外，内联实现 <code>CASE</code> 表达式所用相等操作符的 SQL 函数时，可能向该 SQL 函数体内 <code>CASE</code> 表达式中调用的函数传递错误的测试值。如果测试值的数据类型不同，可能导致崩溃；而且此类情况可被滥用以泄露服务器内存的部分内容。（CVE-2016-5423）</p>", "text": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题（Heikki Linnakangas、Michael Paquier、Tom Lane） 出现在另一个 CASE 的测试值子表达式中的 CASE 表达式，可能会混淆其自身的测试值是否为空。此外，内联实现 CASE 表达式所用相等操作符的 SQL 函数时，可能向该 SQL 函数体内 CASE 表达式中调用的函数传递错误的测试值。如果测试值的数据类型不同，可能导致崩溃；而且此类情况可被滥用以泄露服务器内存的部分内容。（CVE-2016-5423）", "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "0efa049643d6b3b855c5a4697f1d34991cf83b804fceab9bc8040fb6effd5961", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible mis-evaluation of nested CASE-WHEN expressions (Heikki Linnakangas, Michael Paquier, Tom Lane) A CASE expression appearing within the test value subexpression of another CASE could become confused about whether its own test value was null or not. Also, inlining of a SQL function implementing the equality operator used by a CASE expression could result in passing the wrong test value to functions called within a CASE expression in the SQL function's body. If the test values were of different data types, a crash might result; moreover such situations could be abused to allow disclosure of portions of server memory. (CVE-2016-5423)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/001", "db_id": "22a6aed054525b0b0f9d97d013474e08", "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98", "relations": [{"rule": 2, "type": "equivalent", "target": "20369c4b753f3d315b62e264eb569653", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}}, {"rule": 2, "type": "equivalent", "target": "40eafab23c000915239f7d2bfd29a8b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}}, {"rule": 2, "type": "equivalent", "target": "51e9df159c68363e33052bdb085f9f1d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}}, {"rule": 2, "type": "equivalent", "target": "9853d3caf6ac25d7cf5c2c5828c00df8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}}], "version": "9.3.14", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "51e9df159c68363e33052bdb085f9f1d", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}, "url": "/docs/compare/?release=9.5.4#9.5.4-d1f1d0d139e01566", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "40eafab23c000915239f7d2bfd29a8b8", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}, "url": "/docs/compare/?release=9.4.9#9.4.9-d1f1d0d139e01566", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "9853d3caf6ac25d7cf5c2c5828c00df8", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}, "url": "/docs/compare/?release=9.2.18#9.2.18-d1f1d0d139e01566", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "20369c4b753f3d315b62e264eb569653", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}, "url": "/docs/compare/?release=9.1.23#9.1.23-d1f1d0d139e01566", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-5569510630fb5e18", "cves": ["CVE-2016-5424"], "html": "<p>修复客户端程序对数据库名和角色名中特殊字符的处理（Noah Misch、Nathan Bossart、Michael Paquier）</p>\n<p><span>vacuumdb</span> 及其他客户端程序中的许多地方，可能会被包含双引号或反斜杠的数据库名和角色名弄混。收紧引用规则以使其安全。同时确保当 conninfo 字符串被用作这些程序的数据库名参数时，全程都被正确地如此对待。</p>\n<p>修复 <span>psql</span> 的 <code>\\connect</code> 和 <code>\\password</code> 命令中对成对双引号的处理，使其与文档一致。</p>\n<p>在 <span>psql</span> 的 <code>\\connect</code> 命令中引入新的 <code>-reuse-previous</code> 选项，以显式控制是否复用先前连接的连接参数。（若不使用该选项，则与以前一样，根据数据库名是否看起来像 conninfo 字符串来决定。）这使 <span>pg_dumpall</span> 脚本能够安全地处理包含特殊字符的数据库名。</p>\n<p><span>pg_dumpall</span> 现在拒绝处理包含回车或换行的数据库名和角色名，因为在 Windows 上安全地引用这些字符似乎不切实际。将来我们可能会在服务器端拒绝此类名称，但尚未采取这一步骤。</p>\n<p>这些被视为安全修复，因为包含特殊字符的恶意构造的对象名，可能在超级用户下次执行 <span>pg_dumpall</span> 或其他例行维护操作时被用于以超级用户权限执行命令。（CVE-2016-5424）</p>", "text": "修复客户端程序对数据库名和角色名中特殊字符的处理（Noah Misch、Nathan Bossart、Michael Paquier） vacuumdb 及其他客户端程序中的许多地方，可能会被包含双引号或反斜杠的数据库名和角色名弄混。收紧引用规则以使其安全。同时确保当 conninfo 字符串被用作这些程序的数据库名参数时，全程都被正确地如此对待。 修复 psql 的 \\connect 和 \\password 命令中对成对双引号的处理，使其与文档一致。 在 psql 的 \\connect 命令中引入新的 -reuse-previous 选项，以显式控制是否复用先前连接的连接参数。（若不使用该选项，则与以前一样，根据数据库名是否看起来像 conninfo 字符串来决定。）这使 pg_dumpall 脚本能够安全地处理包含特殊字符的数据库名。 pg_dumpall 现在拒绝处理包含回车或换行的数据库名和角色名，因为在 Windows 上安全地引用这些字符似乎不切实际。将来我们可能会在服务器端拒绝此类名称，但尚未采取这一步骤。 这些被视为安全修复，因为包含特殊字符的恶意构造的对象名，可能在超级用户下次执行 pg_dumpall 或其他例行维护操作时被用于以超级用户权限执行命令。（CVE-2016-5424）", "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "ca2b6878e53cc11cd1b116fd4af6da17672152dac6da4c13bfc5933713660d86", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix client programs' handling of special characters in database and role names (Noah Misch, Nathan Bossart, Michael Paquier) Numerous places in vacuumdb and other client programs could become confused by database and role names containing double quotes or backslashes. Tighten up quoting rules to make that safe. Also, ensure that when a conninfo string is used as a database name parameter to these programs, it is correctly treated as such throughout. Fix handling of paired double quotes in psql's \\connect and \\password commands to match the documentation. Introduce a new -reuse-previous option in psql's \\connect command to allow explicit control of whether to re-use connection parameters from a previous connection. (Without this, the choice is based on whether the database name looks like a conninfo string, as before.) This allows secure handling of database names containing special characters in pg_dumpall scripts. pg_dumpall now refuses to deal with database and role names containing carriage returns or newlines, as it seems impractical to quote those characters safely on Windows. In future we may reject such names on the server side, but that step has not been taken yet. These are considered security fixes because crafted object names containing special characters could have been used to execute commands with superuser privileges the next time a superuser executes pg_dumpall or other routine maintenance operations. (CVE-2016-5424)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/002", "db_id": "2bdc53db8b84c45c46ad3f4b2a21506a", "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58", "relations": [{"rule": 2, "type": "equivalent", "target": "29a6715fee30882466fe9bcbd6034c92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}}, {"rule": 2, "type": "equivalent", "target": "63c43a4b0f3c1339cd9941cad497e347", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}}, {"rule": 2, "type": "equivalent", "target": "7a7b683c7ab6c4ba5877842aace85792", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}}, {"rule": 2, "type": "equivalent", "target": "bdb6b8e74fc06a96ecfb7b5ad29967cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}}], "version": "9.3.14", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "bdb6b8e74fc06a96ecfb7b5ad29967cd", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}, "url": "/docs/compare/?release=9.5.4#9.5.4-5569510630fb5e18", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "29a6715fee30882466fe9bcbd6034c92", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}, "url": "/docs/compare/?release=9.4.9#9.4.9-5569510630fb5e18", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "7a7b683c7ab6c4ba5877842aace85792", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}, "url": "/docs/compare/?release=9.2.18#9.2.18-5569510630fb5e18", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "63c43a4b0f3c1339cd9941cad497e347", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}, "url": "/docs/compare/?release=9.1.23#9.1.23-5569510630fb5e18", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-87b533c688a1318e", "cves": [], "html": "<p>修复对嵌套组合值应用 <code>IS NULL</code>/<code>IS NOT NULL</code> 时的边界错误行为（Andrew Gierth、Tom Lane）</p>\n<p>SQL 标准规定，对于全空值的行，<code>IS NULL</code> 应返回 TRUE（因此 <code>ROW(NULL,NULL) IS NULL</code> 得到 TRUE），但这并不意味着递归适用（因此 <code>ROW(NULL, ROW(NULL,NULL)) IS NULL</code> 得到 FALSE）。核心执行器对此处理正确，但某些规划器优化把该测试当作递归的（因而在两种情况下都产生 TRUE），而 <code>contrib/postgres_fdw</code> 可能产生类似错误行为的远程查询。</p>", "text": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为（Andrew Gierth、Tom Lane） SQL 标准规定，对于全空值的行，IS NULL 应返回 TRUE（因此 ROW(NULL,NULL) IS NULL 得到 TRUE），但这并不意味着递归适用（因此 ROW(NULL, ROW(NULL,NULL)) IS NULL 得到 FALSE）。核心执行器对此处理正确，但某些规划器优化把该测试当作递归的（因而在两种情况下都产生 TRUE），而 contrib/postgres_fdw 可能产生类似错误行为的远程查询。", "title": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "ddfd3b1ebbfbfe3de4728d43783d19a30fd5f0aa09844a2f83a1815ca91a8ba8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix corner-case misbehaviors for IS NULL/IS NOT NULL applied to nested composite values (Andrew Gierth, Tom Lane) The SQL standard specifies that IS NULL should return TRUE for a row of all null values (thus ROW(NULL,NULL) IS NULL yields TRUE), but this is not meant to apply recursively (thus ROW(NULL, ROW(NULL,NULL)) IS NULL yields FALSE). The core executor got this right, but certain planner optimizations treated the test as recursive (thus producing TRUE in both cases), and contrib/postgres_fdw could produce remote queries that misbehaved similarly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/003", "db_id": "e64926da86c30a13474ac25027caf070", "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca", "relations": [{"rule": 2, "type": "equivalent", "target": "0e93aac7e3320e342eb8ac00449e464d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}}, {"rule": 2, "type": "equivalent", "target": "1325513f170836bb70f5236c128157b2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}}, {"rule": 2, "type": "equivalent", "target": "23596836707a86a1f17cdd49c6dd5bc0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}}, {"rule": 2, "type": "equivalent", "target": "f3ac524c779beb413068db9c5bc7f203", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1325513f170836bb70f5236c128157b2", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}, "url": "/docs/compare/?release=9.5.4#9.5.4-87b533c688a1318e", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "0e93aac7e3320e342eb8ac00449e464d", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}, "url": "/docs/compare/?release=9.4.9#9.4.9-87b533c688a1318e", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "23596836707a86a1f17cdd49c6dd5bc0", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}, "url": "/docs/compare/?release=9.2.18#9.2.18-87b533c688a1318e", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "f3ac524c779beb413068db9c5bc7f203", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}, "url": "/docs/compare/?release=9.1.23#9.1.23-87b533c688a1318e", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-56b487394f50223a", "cves": [], "html": "<p>使 <code>inet</code> 和 <code>cidr</code> 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址（Tom Lane）</p>", "text": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址（Tom Lane）", "title": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "ce52bad7a9c14eaaa33474b96f0c78289ee3a6da2b3ab967d1ab7dd9a152c80b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make the inet and cidr data types properly reject IPv6 addresses with too many colon-separated fields (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/004", "db_id": "31c696a6b04710163c5299592a12e89d", "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f", "relations": [{"rule": 2, "type": "equivalent", "target": "0d519db02c1fdabaf13711a6221c86c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}}, {"rule": 2, "type": "equivalent", "target": "b2f4463d234de946367ddf3e394b0d74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}}, {"rule": 2, "type": "equivalent", "target": "cb3d9a3e3d73aae5f22d0a54c7f2128f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}}, {"rule": 2, "type": "equivalent", "target": "ea28dbf9995366c5e20e174ab1b33268", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2f4463d234de946367ddf3e394b0d74", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}, "url": "/docs/compare/?release=9.5.4#9.5.4-56b487394f50223a", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "cb3d9a3e3d73aae5f22d0a54c7f2128f", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}, "url": "/docs/compare/?release=9.4.9#9.4.9-56b487394f50223a", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "0d519db02c1fdabaf13711a6221c86c9", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}, "url": "/docs/compare/?release=9.2.18#9.2.18-56b487394f50223a", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "ea28dbf9995366c5e20e174ab1b33268", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}, "url": "/docs/compare/?release=9.1.23#9.1.23-56b487394f50223a", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-8d7dfab887d6be73", "cves": [], "html": "<p>防止 <code>close_ps()</code>（<code>point</code> <code>##</code> <code>lseg</code> 操作符）在输入坐标为 NaN 时崩溃（Tom Lane）</p>\n<p>使其返回 NULL 而不是崩溃。</p>", "text": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃（Tom Lane） 使其返回 NULL 而不是崩溃。", "title": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "59d700b4c1cb7e2dc2e473eeb1c7e0830d7a2746253c1d205839a156b77a6cbd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent crash in close_ps() (the point ## lseg operator) for NaN input coordinates (Tom Lane) Make it return NULL instead of crashing.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/005", "db_id": "150314a28315cd1e0603509c3918c96d", "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d", "relations": [{"rule": 2, "type": "equivalent", "target": "8271c1db5d9ade21a59abd4e5f549de0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}}, {"rule": 2, "type": "equivalent", "target": "bacd1fafc9c5dad12ad6451a6563e6b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}}, {"rule": 2, "type": "equivalent", "target": "be987efacf6f2d9fc768f60a36407b4a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}}, {"rule": 2, "type": "equivalent", "target": "f6befc78e79b4d8983bc10b5fe95eb05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bacd1fafc9c5dad12ad6451a6563e6b5", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}, "url": "/docs/compare/?release=9.5.4#9.5.4-8d7dfab887d6be73", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "8271c1db5d9ade21a59abd4e5f549de0", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}, "url": "/docs/compare/?release=9.4.9#9.4.9-8d7dfab887d6be73", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "be987efacf6f2d9fc768f60a36407b4a", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}, "url": "/docs/compare/?release=9.2.18#9.2.18-8d7dfab887d6be73", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "f6befc78e79b4d8983bc10b5fe95eb05", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}, "url": "/docs/compare/?release=9.1.23#9.1.23-8d7dfab887d6be73", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-33f376976fb7e36b", "cves": [], "html": "<p>避免向 <code>pg_get_expr()</code> 传入不一致的值时可能发生的崩溃（Michael Paquier、Thomas Munro）</p>", "text": "避免向 pg_get_expr() 传入不一致的值时可能发生的崩溃（Michael Paquier、Thomas Munro）", "title": "避免向 pg_get_expr() 传入不一致的值时可能发生的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "ad6597dcf749da12f13caaaf9134fc6a49c960ff477f5cbd4e64147d428f1d5f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid possible crash in pg_get_expr() when inconsistent values are passed to it (Michael Paquier, Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/006", "db_id": "44cb70028da1e6f58d35f03cd7bf7618", "patch_ids": [], "statement_hash": "31fa0e151c8c196fc25b35667955883884133540145ab0758cdc0e738563ca93", "relations": [{"rule": 2, "type": "equivalent", "target": "0e54ed602764891091d2f1f1e6557b8e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31fa0e151c8c196fc25b35667955883884133540145ab0758cdc0e738563ca93"}}, {"rule": 2, "type": "equivalent", "target": "cec16839cb56fce18150e2aca9b04bf2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31fa0e151c8c196fc25b35667955883884133540145ab0758cdc0e738563ca93"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cec16839cb56fce18150e2aca9b04bf2", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "避免向 pg_get_expr() 传入不一致的值时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31fa0e151c8c196fc25b35667955883884133540145ab0758cdc0e738563ca93"}, "url": "/docs/compare/?release=9.5.4#9.5.4-33f376976fb7e36b", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "0e54ed602764891091d2f1f1e6557b8e", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免向 pg_get_expr() 传入不一致的值时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31fa0e151c8c196fc25b35667955883884133540145ab0758cdc0e738563ca93"}, "url": "/docs/compare/?release=9.4.9#9.4.9-33f376976fb7e36b", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-a55daa0626d05db7", "cves": [], "html": "<p>修复 <code>to_number()</code> 中几处一字节缓冲区过读（Peter Eisentraut）</p>\n<p>在几种情况下，<code>to_number()</code> 函数会从输入字符串中多读取一个字符。如果输入恰好位于内存末尾附近，则有很小的崩溃可能。</p>", "text": "修复 to_number() 中几处一字节缓冲区过读（Peter Eisentraut） 在几种情况下，to_number() 函数会从输入字符串中多读取一个字符。如果输入恰好位于内存末尾附近，则有很小的崩溃可能。", "title": "修复 to_number() 中几处一字节缓冲区过读", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "a0133b7faee72a73976ba3f2b96e39f27025f84ced6ee5ad8d57e6f97520d085", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix several one-byte buffer over-reads in to_number() (Peter Eisentraut) In several cases the to_number() function would read one more character than it should from the input string. There is a small chance of a crash, if the input happens to be adjacent to the end of memory.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/007", "db_id": "435638beeeb265cc6a3e544860e061f9", "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea", "relations": [{"rule": 2, "type": "equivalent", "target": "1c549be0c9b5119a54f3ce0563a8a584", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}}, {"rule": 2, "type": "equivalent", "target": "983d2a8843882bd744c784b543d8b20e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}}, {"rule": 2, "type": "equivalent", "target": "af56b4116bfc5b4cb97814922822e4e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}}, {"rule": 2, "type": "equivalent", "target": "b14b7597ee496cab4e7e0a88fbb68974", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c549be0c9b5119a54f3ce0563a8a584", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复 to_number() 中几处一字节缓冲区过读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}, "url": "/docs/compare/?release=9.5.4#9.5.4-a55daa0626d05db7", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "b14b7597ee496cab4e7e0a88fbb68974", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复 to_number() 中几处一字节缓冲区过读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}, "url": "/docs/compare/?release=9.4.9#9.4.9-a55daa0626d05db7", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "af56b4116bfc5b4cb97814922822e4e4", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复 to_number() 中几处一字节缓冲区过读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}, "url": "/docs/compare/?release=9.2.18#9.2.18-a55daa0626d05db7", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "983d2a8843882bd744c784b543d8b20e", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复 to_number() 中几处一字节缓冲区过读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}, "url": "/docs/compare/?release=9.1.23#9.1.23-a55daa0626d05db7", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-70f513fec5f49605", "cves": [], "html": "<p>当指定了 <code>WITH NO DATA</code> 时，不对 <code>CREATE MATERIALIZED VIEW</code> 或 <code>CREATE TABLE AS</code> 中包含的查询运行规划器（Michael Paquier、Tom Lane）</p>\n<p>这避免了一些不必要的失败条件，例如物化视图调用的稳定函数依赖某个尚不存在的表时。</p>", "text": "当指定了 WITH NO DATA 时，不对 CREATE MATERIALIZED VIEW 或 CREATE TABLE AS 中包含的查询运行规划器（Michael Paquier、Tom Lane） 这避免了一些不必要的失败条件，例如物化视图调用的稳定函数依赖某个尚不存在的表时。", "title": "当指定了 WITH NO DATA 时，不对 CREATE MATERIALIZED VIEW 或 CREATE TABLE AS 中包含的查询运行规划器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "74e4b8e69225fa5de8d3237963055c4403490af52688f28ef2f3cf55709d5a14", "section_path": ["变更"], "commit_groups": [], "identity_text": "Do not run the planner on the query contained in CREATE MATERIALIZED VIEW or CREATE TABLE AS when WITH NO DATA is specified (Michael Paquier, Tom Lane) This avoids some unnecessary failure conditions, for example if a stable function invoked by the materialized view depends on a table that doesn't exist yet.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/008", "db_id": "25fbdd9d2681899405fe3c5471954811", "patch_ids": [], "statement_hash": "8a2475ed16e563dd8bb46e85789f42648d96d30bf5233aed4c0ab48d7529020b", "relations": [{"rule": 2, "type": "equivalent", "target": "1d5baf57cb619725b74f259e6225c05e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a2475ed16e563dd8bb46e85789f42648d96d30bf5233aed4c0ab48d7529020b"}}, {"rule": 2, "type": "equivalent", "target": "a03d5b711ae6299c47dcb19562193d15", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a2475ed16e563dd8bb46e85789f42648d96d30bf5233aed4c0ab48d7529020b"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d5baf57cb619725b74f259e6225c05e", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "当指定了 WITH NO DATA 时，不对 CREATE MATERIALIZED VIEW 或 CREATE TABLE AS 中包含的查询运行规划器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a2475ed16e563dd8bb46e85789f42648d96d30bf5233aed4c0ab48d7529020b"}, "url": "/docs/compare/?release=9.5.4#9.5.4-70f513fec5f49605", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "a03d5b711ae6299c47dcb19562193d15", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "当指定了 WITH NO DATA 时，不对 CREATE MATERIALIZED VIEW 或 CREATE TABLE AS 中包含的查询运行规划器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a2475ed16e563dd8bb46e85789f42648d96d30bf5233aed4c0ab48d7529020b"}, "url": "/docs/compare/?release=9.4.9#9.4.9-70f513fec5f49605", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-bb2e1976fd24c39d", "cves": [], "html": "<p>避免在经过 <code>heap_update()</code> 的高开销路径中出现不安全的中间状态（Masahiko Sawada、Andres Freund）</p>\n<p>以前，这些情况会锁定目标元组（通过设置其 XMAX），但不为该动作记录 WAL，因此如果页面被刷出到磁盘，随后在元组更新完成之前发生数据库崩溃，就有数据完整性问题的风险。</p>", "text": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态（Masahiko Sawada、Andres Freund） 以前，这些情况会锁定目标元组（通过设置其 XMAX），但不为该动作记录 WAL，因此如果页面被刷出到磁盘，随后在元组更新完成之前发生数据库崩溃，就有数据完整性问题的风险。", "title": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "4a0afefbf47db6028f3b70b82d1aafb7f8ee4ba2282e01a8b38c1f6f901f1f6d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid unsafe intermediate state during expensive paths through heap_update() (Masahiko Sawada, Andres Freund) Previously, these cases locked the target tuple (by setting its XMAX) but did not WAL-log that action, thus risking data integrity problems if the page were spilled to disk and then a database crash occurred before the tuple update could be completed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/009", "db_id": "21693008fe1c0f2471c27ebaaad6833e", "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355", "relations": [{"rule": 2, "type": "equivalent", "target": "5b02640f40138234e43a578c68fa2c74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}}, {"rule": 2, "type": "equivalent", "target": "6f92390ea146bf21a0a2ec006c21e01a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}}, {"rule": 2, "type": "equivalent", "target": "a2779b66f6afaccc1659cb5dd1bbdfa9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}}, {"rule": 2, "type": "equivalent", "target": "a278009cf4c5b491be6b9a16568fd64f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2779b66f6afaccc1659cb5dd1bbdfa9", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}, "url": "/docs/compare/?release=9.5.4#9.5.4-bb2e1976fd24c39d", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "a278009cf4c5b491be6b9a16568fd64f", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}, "url": "/docs/compare/?release=9.4.9#9.4.9-bb2e1976fd24c39d", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "6f92390ea146bf21a0a2ec006c21e01a", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}, "url": "/docs/compare/?release=9.2.18#9.2.18-bb2e1976fd24c39d", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "5b02640f40138234e43a578c68fa2c74", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}, "url": "/docs/compare/?release=9.1.23#9.1.23-bb2e1976fd24c39d", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-3b66deefa4802e4b", "cves": [], "html": "<p>修复行锁定操作 WAL 重放期间的提示位更新（Andres Freund）</p>\n<p>此问题唯一已知的后果是，已预备但未提交的事务所持有的行锁，在崩溃并重启之后可能无法被执行。</p>", "text": "修复行锁定操作 WAL 重放期间的提示位更新（Andres Freund） 此问题唯一已知的后果是，已预备但未提交的事务所持有的行锁，在崩溃并重启之后可能无法被执行。", "title": "修复行锁定操作 WAL 重放期间的提示位更新", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "570ccc2afd4627adb7331405fdbe29b3382d34aaf14be433541c8a3353e4236c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix hint bit update during WAL replay of row locking operations (Andres Freund) The only known consequence of this problem is that row locks held by a prepared, but uncommitted, transaction might fail to be enforced after a crash and restart.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/010", "db_id": "49b0e1c9b0d99f08f45ff4aee8c59679", "patch_ids": [], "statement_hash": "7d7c3f1befffdbefc8ca2f5134741a288b4ce50c7833d8521042e7c883e11bbc", "relations": [{"rule": 2, "type": "equivalent", "target": "5642042574e9c83ccb28ae30665ef9f1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d7c3f1befffdbefc8ca2f5134741a288b4ce50c7833d8521042e7c883e11bbc"}}, {"rule": 2, "type": "equivalent", "target": "a94aca966b518753efc3e4c9dbf5713c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d7c3f1befffdbefc8ca2f5134741a288b4ce50c7833d8521042e7c883e11bbc"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5642042574e9c83ccb28ae30665ef9f1", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复行锁定操作 WAL 重放期间的提示位更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d7c3f1befffdbefc8ca2f5134741a288b4ce50c7833d8521042e7c883e11bbc"}, "url": "/docs/compare/?release=9.5.4#9.5.4-3b66deefa4802e4b", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "a94aca966b518753efc3e4c9dbf5713c", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复行锁定操作 WAL 重放期间的提示位更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d7c3f1befffdbefc8ca2f5134741a288b4ce50c7833d8521042e7c883e11bbc"}, "url": "/docs/compare/?release=9.4.9#9.4.9-3b66deefa4802e4b", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-4a11c8065ec1a413", "cves": [], "html": "<p>避免在可串行化模式下获取 <code>FOR KEY SHARE</code> 行锁时出现不必要的<span>“<span>could not serialize access</span>”</span>错误（Álvaro Herrera）</p>", "text": "避免在可串行化模式下获取 FOR KEY SHARE 行锁时出现不必要的“could not serialize access”错误（Álvaro Herrera）", "title": "避免在可串行化模式下获取 FOR KEY SHARE 行锁时出现不必要的“could not serialize access”错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "b9a64ffa953e97c577a96eaf378f7495a3680b4e08a5b717b657bbb31f080dd5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid unnecessary could not serialize access errors when acquiring FOR KEY SHARE row locks in serializable mode (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/011", "db_id": "7cfc0002bd89af62060e7ac6ea035bbf", "patch_ids": [], "statement_hash": "41b2ee0ee9708ee3575cd0a77527db135ee4ff0401bd5c0722d4d566e9923229", "relations": [{"rule": 2, "type": "equivalent", "target": "08facd3e548c4e4a89ed64ae9fcd12ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41b2ee0ee9708ee3575cd0a77527db135ee4ff0401bd5c0722d4d566e9923229"}}, {"rule": 2, "type": "equivalent", "target": "662e598a56d9e748ac9870a1ad393e18", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41b2ee0ee9708ee3575cd0a77527db135ee4ff0401bd5c0722d4d566e9923229"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "662e598a56d9e748ac9870a1ad393e18", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "避免在可串行化模式下获取 FOR KEY SHARE 行锁时出现不必要的“could not serialize access”错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41b2ee0ee9708ee3575cd0a77527db135ee4ff0401bd5c0722d4d566e9923229"}, "url": "/docs/compare/?release=9.5.4#9.5.4-4a11c8065ec1a413", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "08facd3e548c4e4a89ed64ae9fcd12ce", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免在可串行化模式下获取 FOR KEY SHARE 行锁时出现不必要的“could not serialize access”错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41b2ee0ee9708ee3575cd0a77527db135ee4ff0401bd5c0722d4d566e9923229"}, "url": "/docs/compare/?release=9.4.9#9.4.9-4a11c8065ec1a413", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-c5c42466b6ad775e", "cves": [], "html": "<p>避免当指定变量的字符串值为空时 <code>postgres -C</code> 崩溃（Michael Paquier）</p>", "text": "避免当指定变量的字符串值为空时 postgres -C 崩溃（Michael Paquier）", "title": "避免当指定变量的字符串值为空时 postgres -C 崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "26a0b08e78aa9076f67427a7301fbdc7f3e22547603673e6daf53366469ddb94", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid crash in postgres -C when the specified variable has a null string value (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/012", "db_id": "9ee927fd45dd8ecfd5f9e1057f822517", "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c", "relations": [{"rule": 2, "type": "equivalent", "target": "7439bff03c357723aac21c06c266f942", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}}, {"rule": 2, "type": "equivalent", "target": "f92c3ecbbd977721dde5cde6d5ed6818", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}}, {"rule": 2, "type": "equivalent", "target": "f97d135fa057b79827815df9bd79ff94", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7439bff03c357723aac21c06c266f942", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "避免当指定变量的字符串值为空时 postgres -C 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}, "url": "/docs/compare/?release=9.5.4#9.5.4-c5c42466b6ad775e", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "f97d135fa057b79827815df9bd79ff94", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免当指定变量的字符串值为空时 postgres -C 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}, "url": "/docs/compare/?release=9.4.9#9.4.9-c5c42466b6ad775e", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "f92c3ecbbd977721dde5cde6d5ed6818", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "避免当指定变量的字符串值为空时 postgres -C 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}, "url": "/docs/compare/?release=9.2.18#9.2.18-c5c42466b6ad775e", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.3.14-2cc63152b2a412b7", "cves": [], "html": "<p>确保后端能看到共享目录的最新统计信息（Tom Lane）</p>\n<p>统计收集器在普通后端发出请求后，未能更新共享目录的统计文件。这个问题被部分掩盖了，因为自动清理启动器会定期发出确实触发此类更新的请求；但在禁用自动清理时就变得明显了。</p>", "text": "确保后端能看到共享目录的最新统计信息（Tom Lane） 统计收集器在普通后端发出请求后，未能更新共享目录的统计文件。这个问题被部分掩盖了，因为自动清理启动器会定期发出确实触发此类更新的请求；但在禁用自动清理时就变得明显了。", "title": "确保后端能看到共享目录的最新统计信息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "e80fd8f22391e9bb8ffd23a60f61bdf42455183fef8175e20577117d08300176", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that backends see up-to-date statistics for shared catalogs (Tom Lane) The statistics collector failed to update the statistics file for shared catalogs after a request from a regular backend. This problem was partially masked because the autovacuum launcher regularly makes requests that did cause such updates; however, it became obvious with autovacuum disabled.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/013", "db_id": "295d88c0920c31525772683ebc75f470", "patch_ids": [], "statement_hash": "c201aca81632d12ebf595d717b1fc7f89169986d89e932f63554a71df65ab2a7", "relations": [{"rule": 2, "type": "equivalent", "target": "b56ae62d33eb2e9772652d78dc68e7d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c201aca81632d12ebf595d717b1fc7f89169986d89e932f63554a71df65ab2a7"}}, {"rule": 2, "type": "equivalent", "target": "f5980f69fbaabf1e1d1b9dcf28ddc235", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c201aca81632d12ebf595d717b1fc7f89169986d89e932f63554a71df65ab2a7"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f5980f69fbaabf1e1d1b9dcf28ddc235", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "确保后端能看到共享目录的最新统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c201aca81632d12ebf595d717b1fc7f89169986d89e932f63554a71df65ab2a7"}, "url": "/docs/compare/?release=9.5.4#9.5.4-2cc63152b2a412b7", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "b56ae62d33eb2e9772652d78dc68e7d1", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "确保后端能看到共享目录的最新统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c201aca81632d12ebf595d717b1fc7f89169986d89e932f63554a71df65ab2a7"}, "url": "/docs/compare/?release=9.4.9#9.4.9-2cc63152b2a412b7", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-105dc0765f97edfc", "cves": [], "html": "<p>当多个后端相继请求更新时，避免统计文件的冗余写入（Tom Lane、Tomas Vondra）</p>", "text": "当多个后端相继请求更新时，避免统计文件的冗余写入（Tom Lane、Tomas Vondra）", "title": "当多个后端相继请求更新时，避免统计文件的冗余写入", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "265c744301dbb86264604969783535281fd8b0518f37e0cda57f25d34ba19b9a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid redundant writes of the statistics files when multiple backends request updates close together (Tom Lane, Tomas Vondra)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/014", "db_id": "1f6658027f10ab69157926962b9d7ea6", "patch_ids": [], "statement_hash": "24d03e5815cb2c68c2b12c86d9cec8bc99fdf1737f2e4308d1bf0575af0fc81f", "relations": [{"rule": 2, "type": "equivalent", "target": "81de7ff9f9ccca8938d21c3d7f942d7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d03e5815cb2c68c2b12c86d9cec8bc99fdf1737f2e4308d1bf0575af0fc81f"}}, {"rule": 2, "type": "equivalent", "target": "bb8413fa9276b00c6d807e33dc39b577", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d03e5815cb2c68c2b12c86d9cec8bc99fdf1737f2e4308d1bf0575af0fc81f"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "81de7ff9f9ccca8938d21c3d7f942d7b", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "当多个后端相继请求更新时，避免统计文件的冗余写入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d03e5815cb2c68c2b12c86d9cec8bc99fdf1737f2e4308d1bf0575af0fc81f"}, "url": "/docs/compare/?release=9.5.4#9.5.4-105dc0765f97edfc", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "bb8413fa9276b00c6d807e33dc39b577", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免多个后端进程密集请求更新时统计信息文件的冗余写入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d03e5815cb2c68c2b12c86d9cec8bc99fdf1737f2e4308d1bf0575af0fc81f"}, "url": "/docs/compare/?release=9.4.9#9.4.9-23ce7ade02182a39", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-dfd1c606bedf6e4a", "cves": [], "html": "<p>避免在 <code>VACUUM</code> 期间消耗事务 ID（Alexander Korotkov）</p>\n<p><code>VACUUM</code> 中的某些情况会不必要地导致向当前事务分配 XID。通常这可以忽略不计，但如果已接近 XID 回卷限制，在防回卷清理期间消耗更多 XID 就非常糟糕了。</p>", "text": "避免在 VACUUM 期间消耗事务 ID（Alexander Korotkov） VACUUM 中的某些情况会不必要地导致向当前事务分配 XID。通常这可以忽略不计，但如果已接近 XID 回卷限制，在防回卷清理期间消耗更多 XID 就非常糟糕了。", "title": "避免在 VACUUM 期间消耗事务 ID", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "80f05ba6b94fe18d95021820357ebd2972d1f7701729489dd73b9717f7a9404d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid consuming a transaction ID during VACUUM (Alexander Korotkov) Some cases in VACUUM unnecessarily caused an XID to be assigned to the current transaction. Normally this is negligible, but if one is up against the XID wraparound limit, consuming more XIDs during anti-wraparound vacuums is a very bad thing.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/015", "db_id": "74f25ef9f85c73f84d0430c2c30b93a8", "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b", "relations": [{"rule": 2, "type": "equivalent", "target": "245bacac3613e40c66473815f0e6656b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}}, {"rule": 2, "type": "equivalent", "target": "657e321b0618cbd443eb28ab46d13fa2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}}, {"rule": 2, "type": "equivalent", "target": "a78cb47b904bd16b9167821289ef89be", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}}, {"rule": 2, "type": "equivalent", "target": "aa5013f92e23459cae03189df920b368", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "657e321b0618cbd443eb28ab46d13fa2", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "避免在 VACUUM 期间消耗事务 ID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}, "url": "/docs/compare/?release=9.5.4#9.5.4-dfd1c606bedf6e4a", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "245bacac3613e40c66473815f0e6656b", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免在 VACUUM 期间消耗事务 ID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}, "url": "/docs/compare/?release=9.4.9#9.4.9-dfd1c606bedf6e4a", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "aa5013f92e23459cae03189df920b368", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "避免在 VACUUM 期间消耗事务 ID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}, "url": "/docs/compare/?release=9.2.18#9.2.18-dfd1c606bedf6e4a", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "a78cb47b904bd16b9167821289ef89be", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "避免在 VACUUM 期间消耗事务 ID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}, "url": "/docs/compare/?release=9.1.23#9.1.23-dfd1c606bedf6e4a", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-12b9ce4197313dc2", "cves": [], "html": "<p>避免在<code>VACUUM FREEZE</code>期间取消热备查询（Simon Riggs, Álvaro Herrera）</p>\n<p>在原本空闲的主库服务器上执行<code>VACUUM FREEZE</code>可能导致其备库服务器上的查询被不必要地取消。</p>", "text": "避免在VACUUM FREEZE期间取消热备查询（Simon Riggs, Álvaro Herrera） 在原本空闲的主库服务器上执行VACUUM FREEZE可能导致其备库服务器上的查询被不必要地取消。", "title": "避免在VACUUM FREEZE期间取消热备查询", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "1addc5db897818489cfede6d0ae6199902873c9d76c6092d239b59ef15ccbe85", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid canceling hot-standby queries during VACUUM FREEZE (Simon Riggs, Álvaro Herrera) VACUUM FREEZE on an otherwise-idle master server could result in unnecessary cancellations of queries on its standby servers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/016", "db_id": "75f1921ddd970814b9f5034593f43de8", "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1", "relations": [{"rule": 2, "type": "equivalent", "target": "821347b9c75a5d4148d52b1d75ebc803", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}}, {"rule": 2, "type": "equivalent", "target": "9a7546de35219a55f154bf78ca9115a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}}, {"rule": 2, "type": "equivalent", "target": "e19974cfde491d28968cc534d02cea19", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "821347b9c75a5d4148d52b1d75ebc803", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免在VACUUM FREEZE期间取消热备查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}, "url": "/docs/compare/?release=9.4.9#9.4.9-12b9ce4197313dc2", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "9a7546de35219a55f154bf78ca9115a6", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "避免在VACUUM FREEZE期间取消热备查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}, "url": "/docs/compare/?release=9.2.18#9.2.18-12b9ce4197313dc2", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "e19974cfde491d28968cc534d02cea19", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "避免在VACUUM FREEZE期间取消热备查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}, "url": "/docs/compare/?release=9.1.23#9.1.23-12b9ce4197313dc2", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-cfa4f2eb43e830f6", "cves": [], "html": "<p>防止在从 9.3 之前版本 pg_upgrade 而来的安装中清理多事务 ID 时可能出现的失败（Andrew Gierth、Álvaro Herrera）</p>\n<p>此 bug 的常见症状是类似<span>“<span>MultiXactId <em><code>NNN</code></em> has not been created yet -- apparent wraparound</span>”</span>的错误。</p>", "text": "防止在从 9.3 之前版本 pg_upgrade 而来的安装中清理多事务 ID 时可能出现的失败（Andrew Gierth、Álvaro Herrera） 此 bug 的常见症状是类似“MultiXactId NNN has not been created yet -- apparent wraparound”的错误。", "title": "防止在从 9.3 之前版本 pg_upgrade 而来的安装中清理多事务 ID 时可能出现的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "acfe292240fc116f0ed9ea1a597e079ce1533065b3c4f4fb8ae3d92140e60d10", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent possible failure when vacuuming multixact IDs in an installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth, Álvaro Herrera) The usual symptom of this bug is errors like MultiXactId NNN has not been created yet -- apparent wraparound.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/017", "db_id": "b00e5205b05e445d6296c7a5327bf9f7", "patch_ids": [], "statement_hash": "66423bbc6d0e5b1aa710675e3cd5d21a50c7343ceef1e2badcf0487ce4bb0b81", "relations": [{"rule": 2, "type": "equivalent", "target": "b1a86802424e4c0174a0fbdb2e827456", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66423bbc6d0e5b1aa710675e3cd5d21a50c7343ceef1e2badcf0487ce4bb0b81"}}, {"rule": 2, "type": "equivalent", "target": "c8f0aeebb104e69419897aa9ce07c780", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66423bbc6d0e5b1aa710675e3cd5d21a50c7343ceef1e2badcf0487ce4bb0b81"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b1a86802424e4c0174a0fbdb2e827456", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "防止在从 9.3 之前版本 pg_upgrade 而来的安装中清理多事务 ID 时可能出现的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66423bbc6d0e5b1aa710675e3cd5d21a50c7343ceef1e2badcf0487ce4bb0b81"}, "url": "/docs/compare/?release=9.5.4#9.5.4-cfa4f2eb43e830f6", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "c8f0aeebb104e69419897aa9ce07c780", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "防止在从 9.3 之前版本 pg_upgrade 而来的安装中清理多事务 ID 时可能出现的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66423bbc6d0e5b1aa710675e3cd5d21a50c7343ceef1e2badcf0487ce4bb0b81"}, "url": "/docs/compare/?release=9.4.9#9.4.9-cfa4f2eb43e830f6", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-7d5bb828a704b277", "cves": [], "html": "<p>当手动 <code>ANALYZE</code> 指定列列表时，不要重置表的 <code>changes_since_analyze</code> 计数器（Tom Lane）</p>\n<p>如果只分析部分列，就不应阻止其他列的例行自动分析。</p>", "text": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器（Tom Lane） 如果只分析部分列，就不应阻止其他列的例行自动分析。", "title": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "d273dde683360d52a62e4dd7ee702279b71fe5466e66a86b05ab539bcd92f052", "section_path": ["变更"], "commit_groups": [], "identity_text": "When a manual ANALYZE specifies a column list, don't reset the table's changes_since_analyze counter (Tom Lane) If we're only analyzing some columns, we should not prevent routine auto-analyze from happening for the other columns.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/018", "db_id": "345a1c6e4fb97650731701be6759c4e4", "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76", "relations": [{"rule": 2, "type": "equivalent", "target": "9fe407a179f44493611c74d98f28b0fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}}, {"rule": 2, "type": "equivalent", "target": "a0982f1894cb857a9fdfa9c9421eaa3f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}}, {"rule": 2, "type": "equivalent", "target": "bc1038861b281c19b4cecd2d71c33330", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}}, {"rule": 2, "type": "equivalent", "target": "d0d31d5de2ab5aac71747d5f00234c49", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9fe407a179f44493611c74d98f28b0fe", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}, "url": "/docs/compare/?release=9.5.4#9.5.4-7d5bb828a704b277", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "d0d31d5de2ab5aac71747d5f00234c49", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}, "url": "/docs/compare/?release=9.4.9#9.4.9-7d5bb828a704b277", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "a0982f1894cb857a9fdfa9c9421eaa3f", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}, "url": "/docs/compare/?release=9.2.18#9.2.18-7d5bb828a704b277", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "bc1038861b281c19b4cecd2d71c33330", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}, "url": "/docs/compare/?release=9.1.23#9.1.23-7d5bb828a704b277", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-d31ebed3e6a9579d", "cves": [], "html": "<p>修复 <code>ANALYZE</code> 对包含大量空值的唯一或近似唯一列的 <code>n_distinct</code> 高估（Tom Lane）</p>\n<p>空值可能被当作它们本身就是不同的值来计数，导致某些类型查询中规划器的严重误估。</p>", "text": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估（Tom Lane） 空值可能被当作它们本身就是不同的值来计数，导致某些类型查询中规划器的严重误估。", "title": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "be614ccb503d7cc3e69fddc383ce8a17aece7268b840910b912511790ee1add8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ANALYZE's overestimation of n_distinct for a unique or nearly-unique column with many null entries (Tom Lane) The nulls could get counted as though they were themselves distinct values, leading to serious planner misestimates in some types of queries.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/019", "db_id": "c073e87855b0afe241efe9d2730dc9e9", "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6", "relations": [{"rule": 2, "type": "equivalent", "target": "134f5aed845f23b414894823718d3af6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}}, {"rule": 2, "type": "equivalent", "target": "177156399342421bd75ba803062889ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}}, {"rule": 2, "type": "equivalent", "target": "9ac4048d0ff5ec6d336e41628f113d38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}}, {"rule": 2, "type": "equivalent", "target": "b9296c5607958d701591d8838e457c82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "134f5aed845f23b414894823718d3af6", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}, "url": "/docs/compare/?release=9.5.4#9.5.4-d31ebed3e6a9579d", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "177156399342421bd75ba803062889ce", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}, "url": "/docs/compare/?release=9.4.9#9.4.9-d31ebed3e6a9579d", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "9ac4048d0ff5ec6d336e41628f113d38", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}, "url": "/docs/compare/?release=9.2.18#9.2.18-d31ebed3e6a9579d", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "b9296c5607958d701591d8838e457c82", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}, "url": "/docs/compare/?release=9.1.23#9.1.23-d31ebed3e6a9579d", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-1cbf601805b0b84a", "cves": [], "html": "<p>防止自动清理为同一共享目录启动多个工作进程（Álvaro Herrera）</p>\n<p>通常这不是什么大问题，因为清理本来就不会花很长时间；但在目录严重膨胀的情况下，这可能导致除一个工作进程外的所有工作进程都在无用地等待，而不是对其他表做有用的工作。</p>", "text": "防止自动清理为同一共享目录启动多个工作进程（Álvaro Herrera） 通常这不是什么大问题，因为清理本来就不会花很长时间；但在目录严重膨胀的情况下，这可能导致除一个工作进程外的所有工作进程都在无用地等待，而不是对其他表做有用的工作。", "title": "防止自动清理为同一共享目录启动多个工作进程", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "16cee8989066019aca7b83d8ad78270da3a8941804a5a47d497104ba7f59efe3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent autovacuum from starting multiple workers for the same shared catalog (Álvaro Herrera) Normally this isn't much of a problem because the vacuum doesn't take long anyway; but in the case of a severely bloated catalog, it could result in all but one worker uselessly waiting instead of doing useful work on other tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/020", "db_id": "a37863195bb69cd86a31001058feea8c", "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664", "relations": [{"rule": 2, "type": "equivalent", "target": "2ab0a4a562fbca40a7331b9d1e3e3b05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}}, {"rule": 2, "type": "equivalent", "target": "614dfe33f20384930f1639fe3c2d9ba4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}}, {"rule": 2, "type": "equivalent", "target": "70bc2d61ad2d94d10c79d337e9f4199b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}}, {"rule": 2, "type": "equivalent", "target": "95a843298907e62a2807accb18b9a438", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2ab0a4a562fbca40a7331b9d1e3e3b05", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "防止自动清理为同一共享目录启动多个工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}, "url": "/docs/compare/?release=9.5.4#9.5.4-1cbf601805b0b84a", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "70bc2d61ad2d94d10c79d337e9f4199b", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "防止自动清理为同一共享目录启动多个工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}, "url": "/docs/compare/?release=9.4.9#9.4.9-1cbf601805b0b84a", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "614dfe33f20384930f1639fe3c2d9ba4", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "防止自动清理为同一共享目录启动多个工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}, "url": "/docs/compare/?release=9.2.18#9.2.18-1cbf601805b0b84a", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "95a843298907e62a2807accb18b9a438", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "防止自动清理为同一共享目录启动多个工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}, "url": "/docs/compare/?release=9.1.23#9.1.23-1cbf601805b0b84a", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-9cd882f3302ef244", "cves": [], "html": "<p>防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环（Tom Lane）</p>", "text": "防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环（Tom Lane）", "title": "防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "888aea7c3034e163cfcd8c8464ddea50286e9e5e4dbdb8944e3d08d751cde958", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent infinite loop in GiST index build for geometric columns containing NaN component values (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/021", "db_id": "068ed40f26bb0c982c0517a87948e02e", "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1", "relations": [{"rule": 2, "type": "equivalent", "target": "8e419a4c91a188367938f4c04aa919ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}}, {"rule": 2, "type": "equivalent", "target": "d96b4a944a267c9e170e29d9c236bd82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}}, {"rule": 2, "type": "equivalent", "target": "dfdcbff0dc6f1989a602511198247a02", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8e419a4c91a188367938f4c04aa919ce", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}, "url": "/docs/compare/?release=9.5.4#9.5.4-9cd882f3302ef244", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "d96b4a944a267c9e170e29d9c236bd82", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "防止为包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}, "url": "/docs/compare/?release=9.4.9#9.4.9-122411c278f77e4b", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "dfdcbff0dc6f1989a602511198247a02", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}, "url": "/docs/compare/?release=9.2.18#9.2.18-9cd882f3302ef244", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.3.14-6734f4b7eecdbfdd", "cves": [], "html": "<p>修复 <code>contrib/btree_gin</code>，使其正确处理 <code>bigint</code> 的最小可能值（Peter Eisentraut）</p>", "text": "修复 contrib/btree_gin，使其正确处理 bigint 的最小可能值（Peter Eisentraut）", "title": "修复 contrib/btree_gin，使其正确处理 bigint 的最小可能值", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "3e67dad62bb840f836d056609d36479d4e3eca7b9e57c01a1fca9a937c44a889", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/btree_gin to handle the smallest possible bigint value correctly (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/022", "db_id": "55bb20de58ee7a397aa906e37be5b229", "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a", "relations": [{"rule": 2, "type": "equivalent", "target": "2ad11cdb92cc42cb735a45158efb36df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}}, {"rule": 2, "type": "equivalent", "target": "587037ffd575b38371c6be2c35e059a9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}}, {"rule": 2, "type": "equivalent", "target": "b332bfa26e9af409591a979c6287bf45", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}}, {"rule": 2, "type": "equivalent", "target": "bc8969b026c0895f03dd2c362bdd9678", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2ad11cdb92cc42cb735a45158efb36df", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复 contrib/btree_gin，使其正确处理 bigint 的最小可能值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}, "url": "/docs/compare/?release=9.5.4#9.5.4-6734f4b7eecdbfdd", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "bc8969b026c0895f03dd2c362bdd9678", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复contrib/btree_gin以正确处理最小的bigint值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}, "url": "/docs/compare/?release=9.4.9#9.4.9-7c7df4e625488122", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "587037ffd575b38371c6be2c35e059a9", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复 contrib/btree_gin，使其正确处理 bigint 的最小可能值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}, "url": "/docs/compare/?release=9.2.18#9.2.18-6734f4b7eecdbfdd", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "b332bfa26e9af409591a979c6287bf45", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复 contrib/btree_gin，使其正确处理 bigint 的最小可能值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}, "url": "/docs/compare/?release=9.1.23#9.1.23-6734f4b7eecdbfdd", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-496ddb27628ef734", "cves": [], "html": "<p>让 libpq 能正确解码来自未来版本服务器的服务器版本号（Peter Eisentraut）</p>\n<p>计划在 9.6 之后的版本中把服务器版本号从三段式改为两段式。确保 <code>PQserverVersion()</code> 在此类情况下返回正确的值。</p>", "text": "让 libpq 能正确解码来自未来版本服务器的服务器版本号（Peter Eisentraut） 计划在 9.6 之后的版本中把服务器版本号从三段式改为两段式。确保 PQserverVersion() 在此类情况下返回正确的值。", "title": "让 libpq 能正确解码来自未来版本服务器的服务器版本号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "037faca77d2291f8f8b5fecfbe65312bd3b11d459e2cf1314129cdaa75243d6d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Teach libpq to correctly decode server version from future servers (Peter Eisentraut) It's planned to switch to two-part instead of three-part server version numbers for releases after 9.6. Make sure that PQserverVersion() returns the correct value for such cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/023", "db_id": "4ea77f563dc74b537a0b730565713d4e", "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc", "relations": [{"rule": 2, "type": "equivalent", "target": "0d75a6918c0036eb63647167fbbdf001", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}}, {"rule": 2, "type": "equivalent", "target": "64dabf4a46a4fbdf83ab654ec32b1891", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}}, {"rule": 2, "type": "equivalent", "target": "a1b0d935ae30d4b7aceb893e43274c6d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}}, {"rule": 2, "type": "equivalent", "target": "d3dea0a37bb7be0d842b70f31da2da95", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d3dea0a37bb7be0d842b70f31da2da95", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "让 libpq 能正确解码来自未来版本服务器的服务器版本号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}, "url": "/docs/compare/?release=9.5.4#9.5.4-496ddb27628ef734", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "64dabf4a46a4fbdf83ab654ec32b1891", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "让 libpq 能正确解码来自未来版本服务器的服务器版本号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}, "url": "/docs/compare/?release=9.4.9#9.4.9-496ddb27628ef734", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "0d75a6918c0036eb63647167fbbdf001", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "让 libpq 能正确解码来自未来版本服务器的服务器版本号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}, "url": "/docs/compare/?release=9.2.18#9.2.18-496ddb27628ef734", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "a1b0d935ae30d4b7aceb893e43274c6d", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "让 libpq 能正确解码来自未来版本服务器的服务器版本号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}, "url": "/docs/compare/?release=9.1.23#9.1.23-496ddb27628ef734", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-e923f8acb1ada608", "cves": [], "html": "<p>修复 <span>ecpg</span> 中 <code>unsigned long long</code> 数组元素的代码（Michael Meskes）</p>", "text": "修复 ecpg 中 unsigned long long 数组元素的代码（Michael Meskes）", "title": "修复 ecpg 中 unsigned long long 数组元素的代码", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "db789f742fe14a7caf5af2ecbc136693da96837a48a05bc6b998162128991dd4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg's code for unsigned long long array elements (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/024", "db_id": "7327c5f25aa5b103c2c19ca65e3de4a8", "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3", "relations": [{"rule": 2, "type": "equivalent", "target": "0e08237a09253b1b32b7e6a798b39ddf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}}, {"rule": 2, "type": "equivalent", "target": "979f7b7202004478df5772fdbe6eba93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}}, {"rule": 2, "type": "equivalent", "target": "9b544144b9c506e13ca4b1040dbd103a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}}, {"rule": 2, "type": "equivalent", "target": "acd56826b2908ff9c6dfb20e6684e475", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e08237a09253b1b32b7e6a798b39ddf", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复 ecpg 中 unsigned long long 数组元素的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}, "url": "/docs/compare/?release=9.5.4#9.5.4-e923f8acb1ada608", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "979f7b7202004478df5772fdbe6eba93", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复ecpg对unsigned long long数组元素的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}, "url": "/docs/compare/?release=9.4.9#9.4.9-8b5e4ba7b5541614", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "9b544144b9c506e13ca4b1040dbd103a", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复 ecpg 中 unsigned long long 数组元素的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}, "url": "/docs/compare/?release=9.2.18#9.2.18-e923f8acb1ada608", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "acd56826b2908ff9c6dfb20e6684e475", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复 ecpg 中 unsigned long long 数组元素的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}, "url": "/docs/compare/?release=9.1.23#9.1.23-e923f8acb1ada608", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-837c436b25b71ce0", "cves": [], "html": "<p>在同时使用 <code>-c</code> 和 <code>-C</code> 选项的 <span>pg_dump</span> 中，避免发出多余的 <code>CREATE SCHEMA public</code> 命令（David Johnston、Tom Lane）</p>", "text": "在同时使用 -c 和 -C 选项的 pg_dump 中，避免发出多余的 CREATE SCHEMA public 命令（David Johnston、Tom Lane）", "title": "在同时使用 -c 和 -C 选项的 pg_dump 中，避免发出多余的 CREATE SCHEMA public 命令", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "9a96e66452365445114c0c62519d887d02cfe6d94fcd1140ddbb3a6111836b68", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_dump with both -c and -C options, avoid emitting an unwanted CREATE SCHEMA public command (David Johnston, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/025", "db_id": "70385fe3901ef3648518fa0516930530", "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2", "relations": [{"rule": 2, "type": "equivalent", "target": "2e4ca62fc9806e0cf7cee675639a97d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}}, {"rule": 2, "type": "equivalent", "target": "38b71e2c820b75c41de329858e07a369", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}}, {"rule": 2, "type": "equivalent", "target": "4cb086370e6d127649b5657330b1b1a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4cb086370e6d127649b5657330b1b1a0", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "在同时使用 -c 和 -C 选项的 pg_dump 中，避免发出多余的 CREATE SCHEMA public 命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}, "url": "/docs/compare/?release=9.5.4#9.5.4-837c436b25b71ce0", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "2e4ca62fc9806e0cf7cee675639a97d5", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复pg_dump同时使用-c和-C选项时避免输出多余的CREATE SCHEMA public命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}, "url": "/docs/compare/?release=9.4.9#9.4.9-36082d8cea4d291f", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "38b71e2c820b75c41de329858e07a369", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "在同时使用 -c 和 -C 选项的 pg_dump 中，避免发出多余的 CREATE SCHEMA public 命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}, "url": "/docs/compare/?release=9.2.18#9.2.18-837c436b25b71ce0", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.3.14-29ea6174b0549d62", "cves": [], "html": "<p>改进并行 <span>pg_dump</span> 和 <span>pg_restore</span> 对 <span>SIGTERM</span>/Ctrl-C 的处理（Tom Lane）</p>\n<p>确保工作进程迅速退出，并设法向所连接的后端发送查询取消请求，以防它们正在执行诸如 <code>CREATE INDEX</code> 之类的长时间运行操作。</p>", "text": "改进并行 pg_dump 和 pg_restore 对 SIGTERM/Ctrl-C 的处理（Tom Lane） 确保工作进程迅速退出，并设法向所连接的后端发送查询取消请求，以防它们正在执行诸如 CREATE INDEX 之类的长时间运行操作。", "title": "改进并行 pg_dump 和 pg_restore 对 SIGTERM/Ctrl-C 的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "abfd633ef3f307b66538cfa0d1c8e3c9c1a5df4389b6fbbc6abda390f32db4cb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve handling of SIGTERM/control-C in parallel pg_dump and pg_restore (Tom Lane) Make sure that the worker processes will exit promptly, and also arrange to send query-cancel requests to the connected backends, in case they are doing something long-running such as a CREATE INDEX.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/026", "db_id": "4c6ebc1700dcc5465897078e60b0c6f8", "patch_ids": [], "statement_hash": "bcc048a2d9650d57692aac25dfa2892b6b057640dd9aee9499b3bd28e409f6a5", "relations": [{"rule": 2, "type": "equivalent", "target": "19b600acd6b70cede89b97d26d532236", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bcc048a2d9650d57692aac25dfa2892b6b057640dd9aee9499b3bd28e409f6a5"}}, {"rule": 2, "type": "equivalent", "target": "a0ff3f54ea10a1b091d2f2cbcdc5c694", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bcc048a2d9650d57692aac25dfa2892b6b057640dd9aee9499b3bd28e409f6a5"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "19b600acd6b70cede89b97d26d532236", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "改进并行 pg_dump 和 pg_restore 对 SIGTERM/Ctrl-C 的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bcc048a2d9650d57692aac25dfa2892b6b057640dd9aee9499b3bd28e409f6a5"}, "url": "/docs/compare/?release=9.5.4#9.5.4-29ea6174b0549d62", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "a0ff3f54ea10a1b091d2f2cbcdc5c694", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "改进并行 pg_dump 和 pg_restore 对 SIGTERM/Ctrl-C 的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bcc048a2d9650d57692aac25dfa2892b6b057640dd9aee9499b3bd28e409f6a5"}, "url": "/docs/compare/?release=9.4.9#9.4.9-29ea6174b0549d62", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-89016a9f4055218f", "cves": [], "html": "<p>修复并行 <span>pg_dump</span> 和 <span>pg_restore</span> 中的错误报告（Tom Lane）</p>\n<p>以前，<span>pg_dump</span> 或 <span>pg_restore</span> 工作进程报告的错误可能永远无法到达用户的控制台，因为消息要经过主进程传递，而存在多种会阻止主进程转发消息的死锁场景。现在改为把所有内容直接打印到 <code>stderr</code>。在某些情况下这会导致重复消息（例如所有工作进程都报告服务器关闭），但这似乎比没有消息要好。</p>", "text": "修复并行 pg_dump 和 pg_restore 中的错误报告（Tom Lane） 以前，pg_dump 或 pg_restore 工作进程报告的错误可能永远无法到达用户的控制台，因为消息要经过主进程传递，而存在多种会阻止主进程转发消息的死锁场景。现在改为把所有内容直接打印到 stderr。在某些情况下这会导致重复消息（例如所有工作进程都报告服务器关闭），但这似乎比没有消息要好。", "title": "修复并行 pg_dump 和 pg_restore 中的错误报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "59811ba73a444e3332f5b08099f67645b1412d7ec11585d072365fc45bbb7e6f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix error reporting in parallel pg_dump and pg_restore (Tom Lane) Previously, errors reported by pg_dump or pg_restore worker processes might never make it to the user's console, because the messages went through the master process, and there were various deadlock scenarios that would prevent the master process from passing on the messages. Instead, just print everything to stderr. In some cases this will result in duplicate messages (for instance, if all the workers report a server shutdown), but that seems better than no message.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/027", "db_id": "da8be4387d9163bda929820852eba33c", "patch_ids": [], "statement_hash": "2d14ed621bd8cc5c84b758d25bb53c896eea691449b6863ad5d1bd24a291538f", "relations": [{"rule": 2, "type": "equivalent", "target": "582020da274e4e1a824e7220b7303e42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d14ed621bd8cc5c84b758d25bb53c896eea691449b6863ad5d1bd24a291538f"}}, {"rule": 2, "type": "equivalent", "target": "f666994d0da92c600bd4ec33683110b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d14ed621bd8cc5c84b758d25bb53c896eea691449b6863ad5d1bd24a291538f"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f666994d0da92c600bd4ec33683110b1", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复并行 pg_dump 和 pg_restore 中的错误报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d14ed621bd8cc5c84b758d25bb53c896eea691449b6863ad5d1bd24a291538f"}, "url": "/docs/compare/?release=9.5.4#9.5.4-89016a9f4055218f", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "582020da274e4e1a824e7220b7303e42", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复并行 pg_dump 和 pg_restore 中的错误报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d14ed621bd8cc5c84b758d25bb53c896eea691449b6863ad5d1bd24a291538f"}, "url": "/docs/compare/?release=9.4.9#9.4.9-89016a9f4055218f", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-17157ddd3f6e8077", "cves": [], "html": "<p>确保 Windows 上的并行 <span>pg_dump</span> 或 <span>pg_restore</span> 在出错后正确关闭（Kyotaro Horiguchi）</p>\n<p>以前，它会报告错误，然后就一直停在那里，直到用户手动停止。</p>", "text": "确保 Windows 上的并行 pg_dump 或 pg_restore 在出错后正确关闭（Kyotaro Horiguchi） 以前，它会报告错误，然后就一直停在那里，直到用户手动停止。", "title": "确保 Windows 上的并行 pg_dump 或 pg_restore 在出错后正确关闭", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "4409b618cb996f40737758002935fbef2cc75267e413a566f1b74f89873ac3a8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that parallel pg_dump or pg_restore on Windows will shut down properly after an error (Kyotaro Horiguchi) Previously, it would report the error, but then just sit until manually stopped by the user.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/028", "db_id": "51890093c7303ff87dfcfc563ccaf592", "patch_ids": [], "statement_hash": "cb377985898d4de16f5635bfc7efb6043775633cc403e6682ca6d78358c56115", "relations": [{"rule": 2, "type": "equivalent", "target": "d5e9e7e92e1e4c612e72025c8a425afa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb377985898d4de16f5635bfc7efb6043775633cc403e6682ca6d78358c56115"}}, {"rule": 2, "type": "equivalent", "target": "f3d089f9319d1780eb3a1f842fcd50af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb377985898d4de16f5635bfc7efb6043775633cc403e6682ca6d78358c56115"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f3d089f9319d1780eb3a1f842fcd50af", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "确保 Windows 上的并行 pg_dump 或 pg_restore 在出错后正确关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb377985898d4de16f5635bfc7efb6043775633cc403e6682ca6d78358c56115"}, "url": "/docs/compare/?release=9.5.4#9.5.4-17157ddd3f6e8077", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "d5e9e7e92e1e4c612e72025c8a425afa", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "确保 Windows 上的并行 pg_dump 或 pg_restore 在出错后正确关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb377985898d4de16f5635bfc7efb6043775633cc403e6682ca6d78358c56115"}, "url": "/docs/compare/?release=9.4.9#9.4.9-17157ddd3f6e8077", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-963e904613ab0dd6", "cves": [], "html": "<p>使 <span>pg_dump</span> 在构建时未包含 zlib 支持时表现更好（Kyotaro Horiguchi）</p>\n<p>它在并行转储时不能正确工作，在其他情况下还会发出一些相当无意义的警告。</p>", "text": "使 pg_dump 在构建时未包含 zlib 支持时表现更好（Kyotaro Horiguchi） 它在并行转储时不能正确工作，在其他情况下还会发出一些相当无意义的警告。", "title": "使 pg_dump 在构建时未包含 zlib 支持时表现更好", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "c9e9a29c8879236b664e2c431dfbd66df6f75ffe8da3d4f78d2e483fe67a09e6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_dump behave better when built without zlib support (Kyotaro Horiguchi) It didn't work right for parallel dumps, and emitted some rather pointless warnings in other cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/029", "db_id": "d1dc06504bf9600bffa67fbfdc64ad66", "patch_ids": [], "statement_hash": "5b5f6dbe08e5b3eef80efd6134cdfa588dc8726da7040723a82066bd0071ad3f", "relations": [{"rule": 2, "type": "equivalent", "target": "975f1dc7c28ee711f55cfc1034308906", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b5f6dbe08e5b3eef80efd6134cdfa588dc8726da7040723a82066bd0071ad3f"}}, {"rule": 2, "type": "equivalent", "target": "b8640bcb977acf96b03332dbc91315d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b5f6dbe08e5b3eef80efd6134cdfa588dc8726da7040723a82066bd0071ad3f"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "975f1dc7c28ee711f55cfc1034308906", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "使 pg_dump 在构建时未包含 zlib 支持时表现更好", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b5f6dbe08e5b3eef80efd6134cdfa588dc8726da7040723a82066bd0071ad3f"}, "url": "/docs/compare/?release=9.5.4#9.5.4-963e904613ab0dd6", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "b8640bcb977acf96b03332dbc91315d2", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "使 pg_dump 在构建时未包含 zlib 支持时表现更好", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b5f6dbe08e5b3eef80efd6134cdfa588dc8726da7040723a82066bd0071ad3f"}, "url": "/docs/compare/?release=9.4.9#9.4.9-963e904613ab0dd6", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-837b3af589f84e8b", "cves": [], "html": "<p>使 <span>pg_basebackup</span> 接受 <code>-Z 0</code> 表示不压缩（Fujii Masao）</p>", "text": "使 pg_basebackup 接受 -Z 0 表示不压缩（Fujii Masao）", "title": "使 pg_basebackup 接受 -Z 0 表示不压缩", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "5fd07d5cc411bba55640af3cdaa97b98922a96899d045d135664702b050567b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_basebackup accept -Z 0 as specifying no compression (Fujii Masao)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/030", "db_id": "724e3ee8e79e2cba3959fa538627b3c6", "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc", "relations": [{"rule": 2, "type": "equivalent", "target": "471095d089d64d7833a66af614a4edbc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}}, {"rule": 2, "type": "equivalent", "target": "7386ac5a4198ae4dbceaaf92341c6087", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}}, {"rule": 2, "type": "equivalent", "target": "7b1f0637cd7dda75aa90d8ea186b2fc6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}}, {"rule": 2, "type": "equivalent", "target": "a2b44fd104d6fb5e65925050b55eb4d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2b44fd104d6fb5e65925050b55eb4d6", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "使 pg_basebackup 接受 -Z 0 表示不压缩", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}, "url": "/docs/compare/?release=9.5.4#9.5.4-837b3af589f84e8b", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "7b1f0637cd7dda75aa90d8ea186b2fc6", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "使pg_basebackup接受-Z 0表示不压缩", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}, "url": "/docs/compare/?release=9.4.9#9.4.9-0eee3f96038afbcc", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "7386ac5a4198ae4dbceaaf92341c6087", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "使 pg_basebackup 接受 -Z 0 表示不压缩", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}, "url": "/docs/compare/?release=9.2.18#9.2.18-837b3af589f84e8b", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "471095d089d64d7833a66af614a4edbc", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "使 pg_basebackup 接受 -Z 0 表示不压缩", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}, "url": "/docs/compare/?release=9.1.23#9.1.23-837b3af589f84e8b", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-bd9a015afd646c00", "cves": [], "html": "<p>修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全（Noah Misch）</p>", "text": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全（Noah Misch）", "title": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "bd2a808e41ade45c2cc861e491b66b112886c8710be9dcd4ef12152e193e2def", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix makefiles' rule for building AIX shared libraries to be safe for parallel make (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/031", "db_id": "cbc09f1037666430426aa7dedd740be2", "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056", "relations": [{"rule": 2, "type": "equivalent", "target": "1d5170914cfb163de312a761bf54de09", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}}, {"rule": 2, "type": "equivalent", "target": "27645d535e2f92f79878519a74a73148", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}}, {"rule": 2, "type": "equivalent", "target": "c2ab009a22046d907eb7fdbb4f9c7146", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}}, {"rule": 2, "type": "equivalent", "target": "cf866cf26cb6dda9e8584d403479b8d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d5170914cfb163de312a761bf54de09", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}, "url": "/docs/compare/?release=9.5.4#9.5.4-bd9a015afd646c00", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "cf866cf26cb6dda9e8584d403479b8d5", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}, "url": "/docs/compare/?release=9.4.9#9.4.9-bd9a015afd646c00", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "c2ab009a22046d907eb7fdbb4f9c7146", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}, "url": "/docs/compare/?release=9.2.18#9.2.18-bd9a015afd646c00", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "27645d535e2f92f79878519a74a73148", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}, "url": "/docs/compare/?release=9.1.23#9.1.23-bd9a015afd646c00", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-2e9b678f47ba8ea9", "cves": [], "html": "<p>修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作（Michael Paquier、Kyotaro Horiguchi）</p>", "text": "修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作（Michael Paquier、Kyotaro Horiguchi）", "title": "修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "8d0756b5f48f0c734d520db24b130ea4c5e97120309ed04fe3890cdc9e6d6f5d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix TAP tests and MSVC scripts to work when build directory's path name contains spaces (Michael Paquier, Kyotaro Horiguchi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/032", "db_id": "ab36738ba09a1eed04b586c4ca47241b", "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474", "relations": [{"rule": 2, "type": "equivalent", "target": "24e8f01cdd2d72c10f3177cdaf1427b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}}, {"rule": 2, "type": "equivalent", "target": "375d55c939c37461f50255bedaf6e5ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}}, {"rule": 2, "type": "equivalent", "target": "5b01e3d8f3cc76198f413c56fceb07ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}}, {"rule": 2, "type": "equivalent", "target": "5d1ecf43946510eedace3e37a1b3cb78", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}}], "version": "9.3.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5b01e3d8f3cc76198f413c56fceb07ed", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}, "url": "/docs/compare/?release=9.5.4#9.5.4-2e9b678f47ba8ea9", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "24e8f01cdd2d72c10f3177cdaf1427b5", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复构建目录路径名包含空格时 TAP 测试和 MSVC 脚本的工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}, "url": "/docs/compare/?release=9.4.9#9.4.9-15e7dcd0adee28bd", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "5d1ecf43946510eedace3e37a1b3cb78", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}, "url": "/docs/compare/?release=9.2.18#9.2.18-2e9b678f47ba8ea9", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "375d55c939c37461f50255bedaf6e5ff", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}, "url": "/docs/compare/?release=9.1.23#9.1.23-2e9b678f47ba8ea9", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-413697f8ce5c3c4c", "cves": [], "html": "<p>使<span>“<span>statement timeout</span>”</span>与<span>“<span>lock timeout</span>”</span>的报告更具可预测性（Tom Lane）</p>\n<p>在高负载机器上，回归测试有时会因报告<span>“<span>lock timeout</span>”</span>而失败，尽管语句超时本应先发生。</p>", "text": "使“statement timeout”与“lock timeout”的报告更具可预测性（Tom Lane） 在高负载机器上，回归测试有时会因报告“lock timeout”而失败，尽管语句超时本应先发生。", "title": "使“statement timeout”与“lock timeout”的报告更具可预测性", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "dcfd294a58658e2915e7349128c797755d2b98a9df1a51cc66d059b35b3f1df6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Be more predictable about reporting statement timeout versus lock timeout (Tom Lane) On heavily loaded machines, the regression tests sometimes failed due to reporting lock timeout even though the statement timeout should have occurred first.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/033", "db_id": "0bceb2a0303407a781a33a837347c06e", "patch_ids": [], "statement_hash": "0b5732c00a176eb50b8e1c555d62ac1081a077af573b71c9999607fe276d6ccc", "relations": [{"rule": 2, "type": "equivalent", "target": "2c9290e4f88da269da155750090164c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b5732c00a176eb50b8e1c555d62ac1081a077af573b71c9999607fe276d6ccc"}}, {"rule": 2, "type": "equivalent", "target": "5d8b37cb363609e98dd67d7e99f9341e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b5732c00a176eb50b8e1c555d62ac1081a077af573b71c9999607fe276d6ccc"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2c9290e4f88da269da155750090164c5", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "使“statement timeout”与“lock timeout”的报告更具可预测性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b5732c00a176eb50b8e1c555d62ac1081a077af573b71c9999607fe276d6ccc"}, "url": "/docs/compare/?release=9.5.4#9.5.4-413697f8ce5c3c4c", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "5d8b37cb363609e98dd67d7e99f9341e", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "使“statement timeout”与“lock timeout”的报告更具可预测性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b5732c00a176eb50b8e1c555d62ac1081a077af573b71c9999607fe276d6ccc"}, "url": "/docs/compare/?release=9.4.9#9.4.9-413697f8ce5c3c4c", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.3.14-5b57121f6a030906", "cves": [], "html": "<p>使回归测试在丹麦语和威尔士语区域设置下安全（Jeff Janes、Tom Lane）</p>\n<p>修改了一些会触发这些区域设置特殊排序规则的测试数据。</p>", "text": "使回归测试在丹麦语和威尔士语区域设置下安全（Jeff Janes、Tom Lane） 修改了一些会触发这些区域设置特殊排序规则的测试数据。", "title": "使回归测试在丹麦语和威尔士语区域设置下安全", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "be27c893e0c8ab29a35b8d0fe3de638859e72e78ff61febeee313d529bed5653", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make regression tests safe for Danish and Welsh locales (Jeff Janes, Tom Lane) Change some test data that triggered the unusual sorting rules of these locales.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/034", "db_id": "c2989094feebf0e230356c42a84221a6", "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66", "relations": [{"rule": 2, "type": "equivalent", "target": "0a119b4ded4fe121283823c900790489", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}}, {"rule": 2, "type": "equivalent", "target": "6d8bf42628454cb9b89f312a447a8059", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}}, {"rule": 2, "type": "equivalent", "target": "95a5c1287830769e6d08e7554603221c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}}, {"rule": 2, "type": "equivalent", "target": "9cf8e2271b8f47a33fd9a2434087ae0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9cf8e2271b8f47a33fd9a2434087ae0f", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "使回归测试在丹麦语和威尔士语区域设置下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}, "url": "/docs/compare/?release=9.5.4#9.5.4-5b57121f6a030906", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "95a5c1287830769e6d08e7554603221c", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "使回归测试在丹麦语和威尔士语区域设置下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}, "url": "/docs/compare/?release=9.4.9#9.4.9-5b57121f6a030906", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "0a119b4ded4fe121283823c900790489", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "使回归测试在丹麦语和威尔士语区域设置下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}, "url": "/docs/compare/?release=9.2.18#9.2.18-5b57121f6a030906", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "6d8bf42628454cb9b89f312a447a8059", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "使回归测试在丹麦语和威尔士语区域设置下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}, "url": "/docs/compare/?release=9.1.23#9.1.23-5b57121f6a030906", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-3b12e1f7a08bfe53", "cves": [], "html": "<p>更新我们的时区代码副本，以匹配 IANA 的 <span>tzcode</span> 2016c 版（Tom Lane）</p>\n<p>这是为了应对时区数据文件未来预期的变更。它还修复了处理特殊时区方面的一些边界 bug。</p>", "text": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版（Tom Lane） 这是为了应对时区数据文件未来预期的变更。它还修复了处理特殊时区方面的一些边界 bug。", "title": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "52620e83c650fe3b76630491616dff93fc923ffc9ea767fed92de1ebc3475edd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update our copy of the timezone code to match IANA's tzcode release 2016c (Tom Lane) This is needed to cope with anticipated future changes in the time zone data files. It also fixes some corner-case bugs in coping with unusual time zones.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/035", "db_id": "6b4cd2fcbee6bcb0f6bd77636904ead5", "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b", "relations": [{"rule": 2, "type": "equivalent", "target": "3f295b8ef66edd5c265371b70c9f24f5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}}, {"rule": 2, "type": "equivalent", "target": "5d4a6db928e502186dd349272ae749f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}}, {"rule": 2, "type": "equivalent", "target": "7b723c790e049e2fe118e55137c1d903", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}}, {"rule": 2, "type": "equivalent", "target": "df175839b1d65d04164caddc02872072", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5d4a6db928e502186dd349272ae749f9", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}, "url": "/docs/compare/?release=9.5.4#9.5.4-3b12e1f7a08bfe53", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "df175839b1d65d04164caddc02872072", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}, "url": "/docs/compare/?release=9.4.9#9.4.9-3b12e1f7a08bfe53", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "3f295b8ef66edd5c265371b70c9f24f5", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}, "url": "/docs/compare/?release=9.2.18#9.2.18-3b12e1f7a08bfe53", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "7b723c790e049e2fe118e55137c1d903", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}, "url": "/docs/compare/?release=9.1.23#9.1.23-3b12e1f7a08bfe53", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.3.14-b3308c6ee9bb59f9", "cves": [], "html": "<p>把时区数据文件更新到 <span>tzdata</span> 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。</p>", "text": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "title": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5", "source_hash": "2eb7a837623eac259af75f5dba4dc42541f56261a2c77b266f5ab19b7c0797f9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2016f for DST law changes in Kemerovo and Novosibirsk, plus historical corrections for Azerbaijan, Belarus, and Morocco.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.14/changes/036", "db_id": "ec5e2b93b6a9086145207b71ca1aa9d5", "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11", "relations": [{"rule": 2, "type": "equivalent", "target": "4e46b74009f0208ecbee49c16369e84a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}}, {"rule": 2, "type": "equivalent", "target": "867458da35dac57e6a7478b5194c0273", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}}, {"rule": 2, "type": "equivalent", "target": "8a4bc998111a4a4a657ca1a38f90ce6d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}}, {"rule": 2, "type": "equivalent", "target": "c12e05d4a490df9283b7388753f60e53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}}], "version": "9.3.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8a4bc998111a4a4a657ca1a38f90ce6d", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}, "url": "/docs/compare/?release=9.5.4#9.5.4-b3308c6ee9bb59f9", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "4e46b74009f0208ecbee49c16369e84a", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "将时区数据文件更新到tzdata发行版 2016f，以反映克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}, "url": "/docs/compare/?release=9.4.9#9.4.9-2bd79f039a562d42", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "c12e05d4a490df9283b7388753f60e53", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}, "url": "/docs/compare/?release=9.2.18#9.2.18-b3308c6ee9bb59f9", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}, {"db_id": "867458da35dac57e6a7478b5194c0273", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}, "url": "/docs/compare/?release=9.1.23#9.1.23-b3308c6ee9bb59f9", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}]}, {"date": "2016-05-12", "build": "9.3.13", "major": "9.3", "minor": 13, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.13", "eol_date": "2018-11-08", "date_text": "2016-05-12", "supported": false, "manual_url": "/docs/9.3/release-9-3-13.html", "source_url": "/docs/release/9.3.13/", "entry_count": 16, "placeholder": false, "content_hash": "55a75803454a193af1e63925f2ec8779570e212e52875c71a08ae2f82f005aeb", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 16, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.3.9 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-9.html\" title=\"E.17. 版本 9.3.9\">第 E.17 节</a>。</p>", "compatibility_count": 0, "label": "9.3.13", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3793, "support_days": -2883, "entries": [{"id": "9.3.13-49ea0453a5768b7a", "cves": [], "html": "<p>在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空（Peter Geoghegan、Dave Vitek、Peter Eisentraut）</p>\n<p>此变更可防止在单个进程内存在多条使用 OpenSSL 的连接、且相关代码并非全部遵循相同的错误队列清空规则时出现问题。特别是当客户端应用并发使用 <span>libpq</span> 的 SSL 连接和 PHP、Python 或 Ruby 的 OpenSSL 封装库的 SSL 连接时，已有失败报告。如果扩展模块建立外向 SSL 连接，服务器内部也可能出现类似问题。</p>", "text": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空（Peter Geoghegan、Dave Vitek、Peter Eisentraut） 此变更可防止在单个进程内存在多条使用 OpenSSL 的连接、且相关代码并非全部遵循相同的错误队列清空规则时出现问题。特别是当客户端应用并发使用 libpq 的 SSL 连接和 PHP、Python 或 Ruby 的 OpenSSL 封装库的 SSL 连接时，已有失败报告。如果扩展模块建立外向 SSL 连接，服务器内部也可能出现类似问题。", "title": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "9237a97d823d6221147e19eee9f36023227d8ab356015f8c7b7f9e2486df29e7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Clear the OpenSSL error queue before OpenSSL calls, rather than assuming it's clear already; and make sure we leave it clear afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut) This change prevents problems when there are multiple connections using OpenSSL within a single process and not all the code involved follows the same rules for when to clear the error queue. Failures have been reported specifically when a client application uses SSL connections in libpq concurrently with SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL. It's possible for similar problems to arise within the server as well, if an extension module establishes an outgoing SSL connection.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/001", "db_id": "e600a65fa6acd98ee339fbf365447dbc", "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc", "relations": [{"rule": 2, "type": "equivalent", "target": "4b7db9362a26183bd17c5103480fbee1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}}, {"rule": 2, "type": "equivalent", "target": "62f20c0d05d29bf341e3aaee06275c55", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}}, {"rule": 2, "type": "equivalent", "target": "91ac1006417b49305cc67423f60912db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}}, {"rule": 2, "type": "equivalent", "target": "9fa608c377aee746ac2c611e33319396", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}}], "version": "9.3.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b7db9362a26183bd17c5103480fbee1", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}, "url": "/docs/compare/?release=9.5.3#9.5.3-49ea0453a5768b7a", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "9fa608c377aee746ac2c611e33319396", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}, "url": "/docs/compare/?release=9.4.8#9.4.8-49ea0453a5768b7a", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "62f20c0d05d29bf341e3aaee06275c55", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}, "url": "/docs/compare/?release=9.2.17#9.2.17-49ea0453a5768b7a", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}, {"db_id": "91ac1006417b49305cc67423f60912db", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}, "url": "/docs/compare/?release=9.1.22#9.1.22-49ea0453a5768b7a", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.3.13-c4937b44d8ec8762", "cves": [], "html": "<p>修复左连接右侧包含全连接时规划器出现<span>“<span>failed to build any <em><code>N</code></em>-way joins</span>”</span>错误的问题（Tom Lane）</p>", "text": "修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题（Tom Lane）", "title": "修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "17387065ecc97ba49aef3c9cd5e7cc860ceea6a0dc2a622e7979fae5f0a7320a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failed to build any N-way joins planner error with a full join enclosed in the right-hand side of a left join (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/002", "db_id": "a537cb7093824ef93e612e2110dd6e79", "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704", "relations": [{"rule": 2, "type": "equivalent", "target": "5bd965c9aad8a1025186c6e34273b4a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}}, {"rule": 2, "type": "equivalent", "target": "a1381391d5e4f3d2ad49fca1e339a37b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}}, {"rule": 2, "type": "equivalent", "target": "dbb0f62fc7a76e48c3dc546d1181865b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}}, {"rule": 2, "type": "equivalent", "target": "e4320446d7334c9e58ccf5dc74856b6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}}], "version": "9.3.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5bd965c9aad8a1025186c6e34273b4a6", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}, "url": "/docs/compare/?release=9.5.3#9.5.3-c4937b44d8ec8762", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "a1381391d5e4f3d2ad49fca1e339a37b", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复左连接右侧包含全连接时出现“failed to build any N-way joins”规划器错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}, "url": "/docs/compare/?release=9.4.8#9.4.8-3f0cbcae051220ae", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "e4320446d7334c9e58ccf5dc74856b6f", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}, "url": "/docs/compare/?release=9.2.17#9.2.17-c4937b44d8ec8762", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}, {"db_id": "dbb0f62fc7a76e48c3dc546d1181865b", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}, "url": "/docs/compare/?release=9.1.22#9.1.22-c4937b44d8ec8762", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.3.13-c28eb88979662b11", "cves": [], "html": "<p>修复多层级 nestloop 计划中等价类测试的处理不正确的问题（Tom Lane）</p>\n<p>对于三个或更多变量的等价类（例如 <code>X.X = Y.Y = Z.Z</code>），规划器可能遗漏一些确保所有变量确实相等的测试，导致输出不满足 <code>WHERE</code> 子句的连接行。由于种种原因，实践中很少选中错误的计划，因此这个 bug 长期未被发现。</p>", "text": "修复多层级 nestloop 计划中等价类测试的处理不正确的问题（Tom Lane） 对于三个或更多变量的等价类（例如 X.X = Y.Y = Z.Z），规划器可能遗漏一些确保所有变量确实相等的测试，导致输出不满足 WHERE 子句的连接行。由于种种原因，实践中很少选中错误的计划，因此这个 bug 长期未被发现。", "title": "修复多层级 nestloop 计划中等价类测试的处理不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "19afd0025d014b69ba2c478f2f3e2c9e897111d72b08403521ad956b48174f39", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect handling of equivalence-class tests in multilevel nestloop plans (Tom Lane) Given a three-or-more-way equivalence class of variables, such as X.X = Y.Y = Z.Z, it was possible for the planner to omit some of the tests needed to enforce that all the variables are actually equal, leading to join rows being output that didn't satisfy the WHERE clauses. For various reasons, erroneous plans were seldom selected in practice, so that this bug has gone undetected for a long time.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/003", "db_id": "bf6d8e775756f9e92f946f44a25167e8", "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b", "relations": [{"rule": 2, "type": "equivalent", "target": "1dce94c98aa5f0c56a05efee097c5813", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}}, {"rule": 2, "type": "equivalent", "target": "a591d7fb30a19ac1fb7fa4682eea85a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}}, {"rule": 2, "type": "equivalent", "target": "c6e0819be96584028fc9634442b895bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}}], "version": "9.3.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1dce94c98aa5f0c56a05efee097c5813", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复多层级 nestloop 计划中等价类测试的处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}, "url": "/docs/compare/?release=9.5.3#9.5.3-c28eb88979662b11", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "c6e0819be96584028fc9634442b895bc", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复多层级 nestloop 计划中等价类测试的处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}, "url": "/docs/compare/?release=9.4.8#9.4.8-c28eb88979662b11", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "a591d7fb30a19ac1fb7fa4682eea85a0", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "修复多层级 nestloop 计划中等价类测试的处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}, "url": "/docs/compare/?release=9.2.17#9.2.17-c28eb88979662b11", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}]}, {"id": "9.3.13-9c4fb0901af4626e", "cves": [], "html": "<p>修复 <code>to_timestamp()</code> 中 <code>TH</code>、<code>th</code> 和 <code>Y,YYY</code> 格式代码可能的错误行为（Tom Lane）</p>\n<p>这些代码可能越过输入字符串末尾，导致后续格式代码读取垃圾数据。</p>", "text": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为（Tom Lane） 这些代码可能越过输入字符串末尾，导致后续格式代码读取垃圾数据。", "title": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "f3cec4f93dd255ccc1aa536d8961c9974ec1421185627648064faa833aa1be2e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible misbehavior of TH, th, and Y,YYY format codes in to_timestamp() (Tom Lane) These could advance off the end of the input string, causing subsequent format codes to read garbage.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/004", "db_id": "42f903f018fa1beaa8ee03a199b65c53", "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81", "relations": [{"rule": 2, "type": "equivalent", "target": "366779bac19088d552991e951754241f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}}, {"rule": 2, "type": "equivalent", "target": "7164f936ae309710c73da3cb2981db31", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}}, {"rule": 2, "type": "equivalent", "target": "9f6cefd6666bebbaa2d32d82c79a6a7e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}}, {"rule": 2, "type": "equivalent", "target": "f07bcffec9ce123ed674a9e6d146e64d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}}], "version": "9.3.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9f6cefd6666bebbaa2d32d82c79a6a7e", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}, "url": "/docs/compare/?release=9.5.3#9.5.3-9c4fb0901af4626e", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "f07bcffec9ce123ed674a9e6d146e64d", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}, "url": "/docs/compare/?release=9.4.8#9.4.8-9c4fb0901af4626e", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "366779bac19088d552991e951754241f", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}, "url": "/docs/compare/?release=9.2.17#9.2.17-9c4fb0901af4626e", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}, {"db_id": "7164f936ae309710c73da3cb2981db31", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}, "url": "/docs/compare/?release=9.1.22#9.1.22-9c4fb0901af4626e", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.3.13-eb65414c12f67eb7", "cves": [], "html": "<p>修复对这样的规则和视图的转储：<code><em><code>value</code></em> <em><code>operator</code></em> ANY (<em><code>array</code></em>)</code> 结构的 <em><code>array</code></em> 参数是子 SELECT（Tom Lane）</p>", "text": "修复对这样的规则和视图的转储：value operator ANY (array) 结构的 array 参数是子 SELECT（Tom Lane）", "title": "修复对这样的规则和视图的转储：value operator ANY (array) 结构的 array 参数是子 SELECT", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "fd4b1524450c1ee0b24fcdda834b60985e8a3c2b1ea43075670ff5a8b39e7bf3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix dumping of rules and views in which the array argument of a value operator ANY (array) construct is a sub-SELECT (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/005", "db_id": "2863c53ebf45db469ef041d1f6d99c17", "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756", "relations": [{"rule": 2, "type": "equivalent", "target": "36ff8c45b3e88c8731029c9d47e99c0a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}}, {"rule": 2, "type": "equivalent", "target": "486ec00869568cfeb91f9781dd8d8973", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}}, {"rule": 2, "type": "equivalent", "target": "54052bff4c90837071042d50a7fe7cc2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}}, {"rule": 2, "type": "equivalent", "target": "b1cc85e77e70b614188e52ae51af907c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}}], "version": "9.3.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "36ff8c45b3e88c8731029c9d47e99c0a", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复对这样的规则和视图的转储：value operator ANY (array) 结构的 array 参数是子 SELECT", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}, "url": "/docs/compare/?release=9.5.3#9.5.3-eb65414c12f67eb7", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "486ec00869568cfeb91f9781dd8d8973", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复value operator ANY (array)结构的array参数为子 SELECT 时规则和视图的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}, "url": "/docs/compare/?release=9.4.8#9.4.8-47ebf27e4bc499cd", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "54052bff4c90837071042d50a7fe7cc2", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "修复对这样的规则和视图的转储：value operator ANY (array) 结构的 array 参数是子 SELECT", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}, "url": "/docs/compare/?release=9.2.17#9.2.17-eb65414c12f67eb7", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}, {"db_id": "b1cc85e77e70b614188e52ae51af907c", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "修复对这样的规则和视图的转储：value operator ANY (array) 结构的 array 参数是子 SELECT", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}, "url": "/docs/compare/?release=9.1.22#9.1.22-eb65414c12f67eb7", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.3.13-baad701ca12dd111", "cves": [], "html": "<p>使 <span>pg_regress</span> 在设置了 <code>PGCTLTIMEOUT</code> 环境变量时使用其中的启动超时（Tom Lane）</p>\n<p>这是为了与最近添加到 <span>pg_ctl</span> 的行为保持一致；它方便了在慢速机器上进行自动化测试。</p>", "text": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时（Tom Lane） 这是为了与最近添加到 pg_ctl 的行为保持一致；它方便了在慢速机器上进行自动化测试。", "title": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "3a87570f806f3937c9571aa5f9bb22a678709761a8410a338609edc6ae50fc8c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_regress use a startup timeout from the PGCTLTIMEOUT environment variable, if that's set (Tom Lane) This is for consistency with a behavior recently added to pg_ctl; it eases automated testing on slow machines.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/006", "db_id": "8e6b40fe0e5a908a3e5fa86b1e5245d7", "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e", "relations": [{"rule": 2, "type": "equivalent", "target": "2ce275053c28723ba1f1be8f29c5f7dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}}, {"rule": 2, "type": "equivalent", "target": "8bc8cda2e133d09a52e7c1055bf2041b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}}, {"rule": 2, "type": "equivalent", "target": "c415a1e7cea295cdb2c5d5bfc63e8dec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}}, {"rule": 2, "type": "equivalent", "target": "d81adfb5b072cb2ca0685aee8eae6ca2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}}], "version": "9.3.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8bc8cda2e133d09a52e7c1055bf2041b", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}, "url": "/docs/compare/?release=9.5.3#9.5.3-baad701ca12dd111", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "d81adfb5b072cb2ca0685aee8eae6ca2", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}, "url": "/docs/compare/?release=9.4.8#9.4.8-baad701ca12dd111", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "2ce275053c28723ba1f1be8f29c5f7dd", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}, "url": "/docs/compare/?release=9.2.17#9.2.17-baad701ca12dd111", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}, {"db_id": "c415a1e7cea295cdb2c5d5bfc63e8dec", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}, "url": "/docs/compare/?release=9.1.22#9.1.22-baad701ca12dd111", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.3.13-ed0cf090821efeae", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题（Tom Lane）</p>\n<p>在这种情况下，操作符族会被恢复到新数据库中，但不再被标记为扩展的一部分。这没有直接的坏影响，但会导致后续 <span>pg_dump</span> 运行产生在恢复时引发（无害）错误的输出。</p>", "text": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题（Tom Lane） 在这种情况下，操作符族会被恢复到新数据库中，但不再被标记为扩展的一部分。这没有直接的坏影响，但会导致后续 pg_dump 运行产生在恢复时引发（无害）错误的输出。", "title": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "a6d34b69677d2f20d653538190f1ae2503eba3dc077f99e4379219faae8344db", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade to correctly restore extension membership for operator families containing only one operator class (Tom Lane) In such a case, the operator family was restored into the new database, but it was no longer marked as part of the extension. This had no immediate ill effects, but would cause later pg_dump runs to emit output that would cause (harmless) errors on restore.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/007", "db_id": "f91fdd52872619c7dcfff3b1b5a0f7a5", "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953", "relations": [{"rule": 2, "type": "equivalent", "target": "47d0f0c5b40b9c550b968d5651c6f301", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}}, {"rule": 2, "type": "equivalent", "target": "4c64b8a24772abea3a1b65548126c81d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}}, {"rule": 2, "type": "equivalent", "target": "7c7076996d977e64c38b5a365b48b4c2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}}, {"rule": 2, "type": "equivalent", "target": "9705472832c0c7cbceea1131065a8aab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}}], "version": "9.3.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "47d0f0c5b40b9c550b968d5651c6f301", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}, "url": "/docs/compare/?release=9.5.3#9.5.3-ed0cf090821efeae", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "7c7076996d977e64c38b5a365b48b4c2", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}, "url": "/docs/compare/?release=9.4.8#9.4.8-ed0cf090821efeae", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "9705472832c0c7cbceea1131065a8aab", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}, "url": "/docs/compare/?release=9.2.17#9.2.17-ed0cf090821efeae", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}, {"db_id": "4c64b8a24772abea3a1b65548126c81d", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}, "url": "/docs/compare/?release=9.1.22#9.1.22-ed0cf090821efeae", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.3.13-58371ddf37bdc27b", "cves": [], "html": "<p>修复新集群 TOAST 规则与旧集群不同时 <span>pg_upgrade</span> 失败的问题（Tom Lane）</p>\n<p><span>pg_upgrade</span> 原有专门代码处理新 <span>PostgreSQL</span> 版本认为表应有 TOAST 表而旧版本认为没有的情况。该代码有问题，因此将其移除，在这种情况下改为不做任何处理；没有理由认为，如果按照旧版本的规则没有 TOAST 表也没问题，我们就无法在没有 TOAST 表的情况下正常运作。</p>", "text": "修复新集群 TOAST 规则与旧集群不同时 pg_upgrade 失败的问题（Tom Lane） pg_upgrade 原有专门代码处理新 PostgreSQL 版本认为表应有 TOAST 表而旧版本认为没有的情况。该代码有问题，因此将其移除，在这种情况下改为不做任何处理；没有理由认为，如果按照旧版本的规则没有 TOAST 表也没问题，我们就无法在没有 TOAST 表的情况下正常运作。", "title": "修复新集群 TOAST 规则与旧集群不同时 pg_upgrade 失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "9935ea81f86a15841bea7ecb0f43dc2df824facf613f9602bc5c339fed28ee17", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade to not fail when new-cluster TOAST rules differ from old (Tom Lane) pg_upgrade had special-case code to handle the situation where the new PostgreSQL version thinks that a table should have a TOAST table while the old version did not. That code was broken, so remove it, and instead do nothing in such cases; there seems no reason to believe that we can't get along fine without a TOAST table if that was okay according to the old version's rules.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/008", "db_id": "c3ba938c40ed00b02a10d9bd12fa9f26", "patch_ids": [], "statement_hash": "7fc59bb6abd6d37c11b51205d833b77343f4ade8ff9e6132eec6b7b6ed4c6dcb", "relations": [{"rule": 2, "type": "equivalent", "target": "69f9907110f0644a6d5fa587425caab4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fc59bb6abd6d37c11b51205d833b77343f4ade8ff9e6132eec6b7b6ed4c6dcb"}}, {"rule": 2, "type": "equivalent", "target": "b2343770feb785daf30350eaf76cff53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fc59bb6abd6d37c11b51205d833b77343f4ade8ff9e6132eec6b7b6ed4c6dcb"}}], "version": "9.3.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2343770feb785daf30350eaf76cff53", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复新集群 TOAST 规则与旧集群不同时 pg_upgrade 失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fc59bb6abd6d37c11b51205d833b77343f4ade8ff9e6132eec6b7b6ed4c6dcb"}, "url": "/docs/compare/?release=9.5.3#9.5.3-58371ddf37bdc27b", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "69f9907110f0644a6d5fa587425caab4", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复新集群 TOAST 规则与旧集群不同时 pg_upgrade 失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fc59bb6abd6d37c11b51205d833b77343f4ade8ff9e6132eec6b7b6ed4c6dcb"}, "url": "/docs/compare/?release=9.4.8#9.4.8-58371ddf37bdc27b", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}]}, {"id": "9.3.13-3618cd389432f0a6", "cves": [], "html": "<p>把 9.4 时代的内存屏障代码变更回移植到 9.2 和 9.3（Tom Lane）</p>\n<p>这些变更在 9.4 之前的分支中原本并不需要，但我们最近回移植了一个要求屏障代码正常工作的修复。只有 IA64（使用 icc 时）、HPPA 和 Alpha 平台受影响。</p>", "text": "把 9.4 时代的内存屏障代码变更回移植到 9.2 和 9.3（Tom Lane） 这些变更在 9.4 之前的分支中原本并不需要，但我们最近回移植了一个要求屏障代码正常工作的修复。只有 IA64（使用 icc 时）、HPPA 和 Alpha 平台受影响。", "title": "把 9.4 时代的内存屏障代码变更回移植到 9.2 和 9.3", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "682ca545c58409b8d6b43f75a0a57a9298ab48f3ea7de241dce148d73dfa844f", "section_path": ["变更"], "commit_groups": [["35166fd76", "37f30b251"], ["9008922bf", "992df9658"], ["d7dbc882d", "f4f4f6990"]], "identity_text": "Back-port 9.4-era memory-barrier code changes into 9.2 and 9.3 (Tom Lane) These changes were not originally needed in pre-9.4 branches, but we recently back-patched a fix that expected the barrier code to work properly. Only IA64 (when using icc), HPPA, and Alpha platforms are affected.", "commit_aliases": ["35166fd76", "37f30b251", "9008922bf", "992df9658", "d7dbc882d", "f4f4f6990"], "source_commits": ["35166fd76", "992df9658", "f4f4f6990"], "source_entry_id": "9.3.13/changes/009", "db_id": "6e6ec47160b2d5703c52fd84453c040b", "patch_ids": ["7ba790d6bb859f69bfd522e86f83e09f", "bff17e6c5328d82c6644924647e088bd", "c3fdfd08c7eb39df54b437186d04a0e1"], "statement_hash": "eaf369959d2b4d8b942f63ded11b12358488d595e08ec7d0295853ab78602179", "relations": [{"rule": 2, "type": "equivalent", "target": "fe535d25051693509dd560fc0ee06e9c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaf369959d2b4d8b942f63ded11b12358488d595e08ec7d0295853ab78602179"}}], "version": "9.3.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fe535d25051693509dd560fc0ee06e9c", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "把 9.4 时代的内存屏障代码变更回移植到 9.2 和 9.3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaf369959d2b4d8b942f63ded11b12358488d595e08ec7d0295853ab78602179"}, "url": "/docs/compare/?release=9.2.17#9.2.17-3618cd389432f0a6", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}]}, {"id": "9.3.13-4b9de6bff121d19f", "cves": [], "html": "<p>减少配置了 <code>--disable-spinlocks</code> 的构建所使用的 SysV 信号量数量（Tom Lane）</p>", "text": "减少配置了 --disable-spinlocks 的构建所使用的 SysV 信号量数量（Tom Lane）", "title": "减少配置了 --disable-spinlocks 的构建所使用的 SysV 信号量数量", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "636c229deaac457348a35786326c32c882953f65dd85192a81e6bf0f10460316", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce the number of SysV semaphores used by a build configured with --disable-spinlocks (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/010", "db_id": "cb24c362a321d2bebb433956de788e20", "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af", "relations": [{"rule": 2, "type": "equivalent", "target": "33c5c7b70971a0d393e0aea021e0a3f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}}, {"rule": 2, "type": "equivalent", "target": "ccffb7da59097f758f46a81e9d9d38ae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}}, {"rule": 2, "type": "equivalent", "target": "d21a98772764cb94acd1734c61fa88fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}}], "version": "9.3.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d21a98772764cb94acd1734c61fa88fe", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "减少配置了 --disable-spinlocks 的构建所使用的 SysV 信号量数量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}, "url": "/docs/compare/?release=9.5.3#9.5.3-4b9de6bff121d19f", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "ccffb7da59097f758f46a81e9d9d38ae", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "减少以--disable-spinlocks配置的构建所使用的 SysV 信号量数量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}, "url": "/docs/compare/?release=9.4.8#9.4.8-a83fb75c19d36f28", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "33c5c7b70971a0d393e0aea021e0a3f7", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "减少配置了 --disable-spinlocks 的构建所使用的 SysV 信号量数量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}, "url": "/docs/compare/?release=9.2.17#9.2.17-4b9de6bff121d19f", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}]}, {"id": "9.3.13-4c575f265273afda", "cves": [], "html": "<p>把内部函数 <code>strtoi()</code> 重命名为 <code>strtoint()</code>，以避免与 NetBSD 库函数冲突（Thomas Munro）</p>", "text": "把内部函数 strtoi() 重命名为 strtoint()，以避免与 NetBSD 库函数冲突（Thomas Munro）", "title": "把内部函数 strtoi() 重命名为 strtoint()，以避免与 NetBSD 库函数冲突", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "92c08fcd0cfcc866cc9b5ad870a74973851d75150d0904d3c5e1de7180f39cf6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Rename internal function strtoi() to strtoint() to avoid conflict with a NetBSD library function (Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/011", "db_id": "f18b040e106e1164a59e5356999c0025", "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66", "relations": [{"rule": 2, "type": "equivalent", "target": "07795696d6a7ab8af1ad49d41cecb393", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}}, {"rule": 2, "type": "equivalent", "target": "265b4d732f27dacc36314edf518923c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}}, {"rule": 2, "type": "equivalent", "target": "35f0f4507cf02f3a765a76888b94e3a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}}, {"rule": 2, "type": "equivalent", "target": "6787c135c33be1a810d12eed7af6ec76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}}], "version": "9.3.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6787c135c33be1a810d12eed7af6ec76", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "把内部函数 strtoi() 重命名为 strtoint()，以避免与 NetBSD 库函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}, "url": "/docs/compare/?release=9.5.3#9.5.3-4c575f265273afda", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "35f0f4507cf02f3a765a76888b94e3a4", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "将内部函数strtoi()重命名为strtoint()，以避免与 NetBSD 库函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}, "url": "/docs/compare/?release=9.4.8#9.4.8-4f81d66e74fea724", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "265b4d732f27dacc36314edf518923c7", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "把内部函数 strtoi() 重命名为 strtoint()，以避免与 NetBSD 库函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}, "url": "/docs/compare/?release=9.2.17#9.2.17-4c575f265273afda", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}, {"db_id": "07795696d6a7ab8af1ad49d41cecb393", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "把内部函数 strtoi() 重命名为 strtoint()，以避免与 NetBSD 库函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}, "url": "/docs/compare/?release=9.1.22#9.1.22-4c575f265273afda", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.3.13-cd087175f2b48cbf", "cves": [], "html": "<p>修复 Windows 上 <code>bind()</code> 和 <code>listen()</code> 系统调用错误的报告（Tom Lane）</p>", "text": "修复 Windows 上 bind() 和 listen() 系统调用错误的报告（Tom Lane）", "title": "修复 Windows 上 bind() 和 listen() 系统调用错误的报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "4d0010776317ea20db12b153a84a498a532485649d4f2e9801b0ae72b2bfa109", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix reporting of errors from bind() and listen() system calls on Windows (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/012", "db_id": "855ced2f2e5cab1357a39946a69e1fbb", "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e", "relations": [{"rule": 2, "type": "equivalent", "target": "116ddf534cc4298b2ce9e58d67cb2fe8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}}, {"rule": 2, "type": "equivalent", "target": "6bc0398b17ec9e3ad2d18735b7b5d72e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}}, {"rule": 2, "type": "equivalent", "target": "8cd431978c2501c0e48cb95d54e3b96c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}}, {"rule": 2, "type": "equivalent", "target": "c0b7aec873e8f99f8e07b587338bcc9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}}], "version": "9.3.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6bc0398b17ec9e3ad2d18735b7b5d72e", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复 Windows 上 bind() 和 listen() 系统调用错误的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}, "url": "/docs/compare/?release=9.5.3#9.5.3-cd087175f2b48cbf", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "c0b7aec873e8f99f8e07b587338bcc9e", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复 Windows 上bind()和listen()系统调用错误的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}, "url": "/docs/compare/?release=9.4.8#9.4.8-88ff8c221a0d260f", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "8cd431978c2501c0e48cb95d54e3b96c", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "修复 Windows 上 bind() 和 listen() 系统调用错误的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}, "url": "/docs/compare/?release=9.2.17#9.2.17-cd087175f2b48cbf", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}, {"db_id": "116ddf534cc4298b2ce9e58d67cb2fe8", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "修复 Windows 上 bind() 和 listen() 系统调用错误的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}, "url": "/docs/compare/?release=9.1.22#9.1.22-cd087175f2b48cbf", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.3.13-14713f1d4b930720", "cves": [], "html": "<p>减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度（Christian Ullrich）</p>", "text": "减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度（Christian Ullrich）", "title": "减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "fc9f728bb7578321d22405fb46f840f6f79f1527d7506f576a78d1d8b336ad56", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce verbosity of compiler output when building with Microsoft Visual Studio (Christian Ullrich)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/013", "db_id": "f136ad3114dcbc143b8c85c170721a1d", "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d", "relations": [{"rule": 2, "type": "equivalent", "target": "61232729f0482913301cc0d7e6c440a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}}, {"rule": 2, "type": "equivalent", "target": "7a3891afe9938736bea802a096e04138", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}}, {"rule": 2, "type": "equivalent", "target": "cf56b471bd29a03824536d7212b750e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}}, {"rule": 2, "type": "equivalent", "target": "d71802d2c796bee0af2e0ef03a38f9de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}}], "version": "9.3.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "61232729f0482913301cc0d7e6c440a1", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}, "url": "/docs/compare/?release=9.5.3#9.5.3-14713f1d4b930720", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "7a3891afe9938736bea802a096e04138", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "降低使用 Microsoft Visual Studio 构建时编译器输出的详细程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}, "url": "/docs/compare/?release=9.4.8#9.4.8-1ebb646ed46fb913", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "d71802d2c796bee0af2e0ef03a38f9de", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}, "url": "/docs/compare/?release=9.2.17#9.2.17-14713f1d4b930720", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}, {"db_id": "cf56b471bd29a03824536d7212b750e3", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}, "url": "/docs/compare/?release=9.1.22#9.1.22-14713f1d4b930720", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.3.13-d235bdc7f5132b21", "cves": [], "html": "<p>修复 <code>putenv()</code> 在 Visual Studio 2013 下的正确工作（Michael Paquier）</p>", "text": "修复 putenv() 在 Visual Studio 2013 下的正确工作（Michael Paquier）", "title": "修复 putenv() 在 Visual Studio 2013 下的正确工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "9c6ea7b0316c7417d74b07551388a6b6edb35f9543a08f5b6f6a232788a17465", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix putenv() to work properly with Visual Studio 2013 (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/014", "db_id": "9e60a5ab12dbcb933460abf53ced4fcd", "patch_ids": [], "statement_hash": "5a25c86a5648eba90dfcc883922057036988cca023390954e88f8b13042ca866", "relations": [{"rule": 2, "type": "equivalent", "target": "21e9dd4f1dbfc44e501457958c7089ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a25c86a5648eba90dfcc883922057036988cca023390954e88f8b13042ca866"}}, {"rule": 2, "type": "equivalent", "target": "f265d248c77f7e536a7bf3f61a090e8d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a25c86a5648eba90dfcc883922057036988cca023390954e88f8b13042ca866"}}], "version": "9.3.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "21e9dd4f1dbfc44e501457958c7089ce", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复 putenv() 在 Visual Studio 2013 下的正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a25c86a5648eba90dfcc883922057036988cca023390954e88f8b13042ca866"}, "url": "/docs/compare/?release=9.5.3#9.5.3-d235bdc7f5132b21", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "f265d248c77f7e536a7bf3f61a090e8d", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复putenv()在 Visual Studio 2013 下正常工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a25c86a5648eba90dfcc883922057036988cca023390954e88f8b13042ca866"}, "url": "/docs/compare/?release=9.4.8#9.4.8-4449286feb8b3e7a", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}]}, {"id": "9.3.13-f6bc5b62d3be56bc", "cves": [], "html": "<p>避免可能不安全地使用 Windows 的 <code>FormatMessage()</code> 函数（Christian Ullrich）</p>\n<p>在适当之处使用 <code>FORMAT_MESSAGE_IGNORE_INSERTS</code> 标志。目前不知道这里存在实际的 bug，但小心谨慎似乎是明智的。</p>", "text": "避免可能不安全地使用 Windows 的 FormatMessage() 函数（Christian Ullrich） 在适当之处使用 FORMAT_MESSAGE_IGNORE_INSERTS 标志。目前不知道这里存在实际的 bug，但小心谨慎似乎是明智的。", "title": "避免可能不安全地使用 Windows 的 FormatMessage() 函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "c51616cdd2e96f073fa266202f9f29c7de93048477510dad55fbc41e8ce0a0a6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid possibly-unsafe use of Windows' FormatMessage() function (Christian Ullrich) Use the FORMAT_MESSAGE_IGNORE_INSERTS flag where appropriate. No live bug is known to exist here, but it seems like a good idea to be careful.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/015", "db_id": "1374cce413b2405053b6174d2b9dd2a4", "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba", "relations": [{"rule": 2, "type": "equivalent", "target": "83547afdd12a20fb7887af738b9429f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}}, {"rule": 2, "type": "equivalent", "target": "843ff6f7a705472abc8ca1bf3a66d2dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}}, {"rule": 2, "type": "equivalent", "target": "9e736f2478d30355bea81a22347b74e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}}, {"rule": 2, "type": "equivalent", "target": "c8f12bcc3a5d2869fd3159cf8aad42b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}}], "version": "9.3.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "83547afdd12a20fb7887af738b9429f9", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "避免可能不安全地使用 Windows 的 FormatMessage() 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}, "url": "/docs/compare/?release=9.5.3#9.5.3-f6bc5b62d3be56bc", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "9e736f2478d30355bea81a22347b74e4", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "避免可能不安全地使用 Windows 的 FormatMessage() 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}, "url": "/docs/compare/?release=9.4.8#9.4.8-f6bc5b62d3be56bc", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "c8f12bcc3a5d2869fd3159cf8aad42b3", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "避免可能不安全地使用 Windows 的 FormatMessage() 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}, "url": "/docs/compare/?release=9.2.17#9.2.17-f6bc5b62d3be56bc", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}, {"db_id": "843ff6f7a705472abc8ca1bf3a66d2dd", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "避免可能不安全地使用 Windows 的 FormatMessage() 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}, "url": "/docs/compare/?release=9.1.22#9.1.22-f6bc5b62d3be56bc", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.3.13-0f7afee00aec2c4f", "cves": [], "html": "<p>把时区数据文件更新到 <span>tzdata</span> 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 <code>Europe/Kirov</code> 和 <code>Asia/Tomsk</code>，以反映这些地区现在与相邻地区有不同的时区历史。</p>", "text": "把时区数据文件更新到 tzdata 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk，以反映这些地区现在与相邻地区有不同的时区历史。", "title": "把时区数据文件更新到 tzdata 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk，以反映这些地区现在与相邻地区有不同的时区历史。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5", "source_hash": "576753c595f492c28360ee740466a151e91c19b300733100f3d86544acf84783", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2016d for DST law changes in Russia and Venezuela. There are new zone names Europe/Kirov and Asia/Tomsk to reflect the fact that these regions now have different time zone histories from adjacent regions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.13/changes/016", "db_id": "dbc73dfd3e223f7a6162474c523aca1d", "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e", "relations": [{"rule": 2, "type": "equivalent", "target": "691cfe52509ead5429d7f97ff5bf105b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}}, {"rule": 2, "type": "equivalent", "target": "72850db23891e29cc2438e350a1ea33b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}}, {"rule": 2, "type": "equivalent", "target": "79f54e8b0b7b27ff93837ee34ccf5720", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}}, {"rule": 2, "type": "equivalent", "target": "d2b408cac57b270129b64b56ed0557f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}}], "version": "9.3.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "691cfe52509ead5429d7f97ff5bf105b", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "把时区数据文件更新到 tzdata 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk，以反映这些地区现在与相邻地区有不同的时区历史。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}, "url": "/docs/compare/?release=9.5.3#9.5.3-0f7afee00aec2c4f", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "72850db23891e29cc2438e350a1ea33b", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "将时区数据文件更新到tzdata发行版 2016d，以反映俄罗斯和委内瑞拉的夏令时法规变更。新增了时区名Europe/Kirov和Asia/Tomsk，以反映这些地区现在与邻近地区有不同的时区历史。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}, "url": "/docs/compare/?release=9.4.8#9.4.8-c4d043d9e59bcb42", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "d2b408cac57b270129b64b56ed0557f0", "kind": "equivalent", "version": "9.2.17", "label": "9.2.17", "title": "把时区数据文件更新到 tzdata 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk，以反映这些地区现在与相邻地区有不同的时区历史。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}, "url": "/docs/compare/?release=9.2.17#9.2.17-0f7afee00aec2c4f", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5"}, {"db_id": "79f54e8b0b7b27ff93837ee34ccf5720", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "把时区数据文件更新到 tzdata 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk，以反映这些地区现在与相邻地区有不同的时区历史。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}, "url": "/docs/compare/?release=9.1.22#9.1.22-0f7afee00aec2c4f", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}]}, {"date": "2016-03-31", "build": "9.3.12", "major": "9.3", "minor": 12, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.12", "eol_date": "2018-11-08", "date_text": "2016-03-31", "supported": false, "manual_url": "/docs/9.3/release-9-3-12.html", "source_url": "/docs/release/9.3.12/", "entry_count": 18, "placeholder": false, "content_hash": "a649718e59be85f4ce44929d31e4f6978daf2af19bf2c07124e188d7719b4bd4", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 18, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.3.9 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-9.html\" title=\"E.17. 版本 9.3.9\">第 E.17 节</a>。</p>", "compatibility_count": 0, "label": "9.3.12", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3835, "support_days": -2883, "entries": [{"id": "9.3.12-1af2cf271706b7c4", "cves": [], "html": "<p>修复索引化 <code>ROW()</code> 比较中对 NULL 索引条目处理不正确的问题（Tom Lane）</p>\n<p>使用诸如 <code>ROW(a, b) &gt; ROW('x', 'y')</code> 的行比较进行索引搜索时，会在到达 <code>b</code> 列的 NULL 条目时停止，忽略了 <code>b</code> 列可能有与更靠后的 <code>a</code> 值关联的非 NULL 值这一事实。</p>", "text": "修复索引化 ROW() 比较中对 NULL 索引条目处理不正确的问题（Tom Lane） 使用诸如 ROW(a, b) > ROW('x', 'y') 的行比较进行索引搜索时，会在到达 b 列的 NULL 条目时停止，忽略了 b 列可能有与更靠后的 a 值关联的非 NULL 值这一事实。", "title": "修复索引化 ROW() 比较中对 NULL 索引条目处理不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "49a0542558f4805ad257063f94247a38424afd6f95fef3da860ff25b8fdc1476", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect handling of NULL index entries in indexed ROW() comparisons (Tom Lane) An index search using a row comparison such as ROW(a, b) > ROW('x', 'y') would stop upon reaching a NULL entry in the b column, ignoring the fact that there might be non-NULL b values associated with later values of a.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/001", "db_id": "f7f1d0e5c88def4e0c0ab9bb7d00e041", "patch_ids": [], "statement_hash": "e5122ba5033c022dd9cae0cc394f98918f4c8094feacc04c0d0a507ffb280c61", "relations": [{"rule": 2, "type": "equivalent", "target": "771229a171201c695d4c34c21216b6e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5122ba5033c022dd9cae0cc394f98918f4c8094feacc04c0d0a507ffb280c61"}}, {"rule": 2, "type": "equivalent", "target": "80a8664f234b02e933cb1aaed80af795", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5122ba5033c022dd9cae0cc394f98918f4c8094feacc04c0d0a507ffb280c61"}}, {"rule": 2, "type": "equivalent", "target": "920faefa1e4c1d58dec990f4a90f46b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5122ba5033c022dd9cae0cc394f98918f4c8094feacc04c0d0a507ffb280c61"}}, {"rule": 2, "type": "equivalent", "target": "fcaef37c43b439b3d192a695fc0c7f55", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5122ba5033c022dd9cae0cc394f98918f4c8094feacc04c0d0a507ffb280c61"}}], "version": "9.3.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fcaef37c43b439b3d192a695fc0c7f55", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "修复索引化 ROW() 比较中对 NULL 索引条目处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5122ba5033c022dd9cae0cc394f98918f4c8094feacc04c0d0a507ffb280c61"}, "url": "/docs/compare/?release=9.5.2#9.5.2-1af2cf271706b7c4", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "771229a171201c695d4c34c21216b6e7", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "修复索引化 ROW() 比较中对 NULL 索引条目处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5122ba5033c022dd9cae0cc394f98918f4c8094feacc04c0d0a507ffb280c61"}, "url": "/docs/compare/?release=9.4.7#9.4.7-1af2cf271706b7c4", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "80a8664f234b02e933cb1aaed80af795", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "修复索引化 ROW() 比较中对 NULL 索引条目处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5122ba5033c022dd9cae0cc394f98918f4c8094feacc04c0d0a507ffb280c61"}, "url": "/docs/compare/?release=9.2.16#9.2.16-1af2cf271706b7c4", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "920faefa1e4c1d58dec990f4a90f46b5", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "修复索引化 ROW() 比较中对 NULL 索引条目处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e5122ba5033c022dd9cae0cc394f98918f4c8094feacc04c0d0a507ffb280c61"}, "url": "/docs/compare/?release=9.1.21#9.1.21-1af2cf271706b7c4", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-2fdb14ed3f5b5015", "cves": [], "html": "<p>避免因重命名文件前后未充分调用 <code>fsync()</code> 而导致的不太可能的数据丢失场景（Michael Paquier、Tomas Vondra、Andres Freund）</p>", "text": "避免因重命名文件前后未充分调用 fsync() 而导致的不太可能的数据丢失场景（Michael Paquier、Tomas Vondra、Andres Freund）", "title": "避免因重命名文件前后未充分调用 fsync() 而导致的不太可能的数据丢失场景", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "f6b233ff914bca4ce7f8cc4bf5b141186e6110d58665e38db87e8b4020b0882f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid unlikely data-loss scenarios due to renaming files without adequate fsync() calls before and after (Michael Paquier, Tomas Vondra, Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/002", "db_id": "a5765102546e298c1a6d8ed7e2e12411", "patch_ids": [], "statement_hash": "0344fa52ee3e1cf1eb149644ace2f3310367246c524f009b8868fce648ca8af2", "relations": [{"rule": 2, "type": "equivalent", "target": "3e2c0c4a1b5b42e37f23d751fd0773fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0344fa52ee3e1cf1eb149644ace2f3310367246c524f009b8868fce648ca8af2"}}, {"rule": 2, "type": "equivalent", "target": "7e62b8610521a272fc3912882e152551", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0344fa52ee3e1cf1eb149644ace2f3310367246c524f009b8868fce648ca8af2"}}, {"rule": 2, "type": "equivalent", "target": "a9854d76e1cad326241bf36f0d4fc81d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0344fa52ee3e1cf1eb149644ace2f3310367246c524f009b8868fce648ca8af2"}}, {"rule": 2, "type": "equivalent", "target": "cbb7557e521d0a5bb82799a1e8f65f08", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0344fa52ee3e1cf1eb149644ace2f3310367246c524f009b8868fce648ca8af2"}}], "version": "9.3.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a9854d76e1cad326241bf36f0d4fc81d", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "避免因重命名文件前后未充分调用 fsync() 而导致的不太可能的数据丢失场景", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0344fa52ee3e1cf1eb149644ace2f3310367246c524f009b8868fce648ca8af2"}, "url": "/docs/compare/?release=9.5.2#9.5.2-2fdb14ed3f5b5015", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "3e2c0c4a1b5b42e37f23d751fd0773fb", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "避免因重命名文件前后缺少充分的fsync()调用而导致的罕见数据丢失场景", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0344fa52ee3e1cf1eb149644ace2f3310367246c524f009b8868fce648ca8af2"}, "url": "/docs/compare/?release=9.4.7#9.4.7-508ce026c282d11e", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "7e62b8610521a272fc3912882e152551", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "避免因重命名文件前后未充分调用 fsync() 而导致的不太可能的数据丢失场景", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0344fa52ee3e1cf1eb149644ace2f3310367246c524f009b8868fce648ca8af2"}, "url": "/docs/compare/?release=9.2.16#9.2.16-2fdb14ed3f5b5015", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "cbb7557e521d0a5bb82799a1e8f65f08", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "避免因重命名文件前后未充分调用 fsync() 而导致的不太可能的数据丢失场景", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0344fa52ee3e1cf1eb149644ace2f3310367246c524f009b8868fce648ca8af2"}, "url": "/docs/compare/?release=9.1.21#9.1.21-2fdb14ed3f5b5015", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-9bb95502cd65a2d7", "cves": [], "html": "<p>正确处理服务器启动期间 <code>pg_subtrans</code> 接近 XID 回卷的情况（Jeff Janes）</p>", "text": "正确处理服务器启动期间 pg_subtrans 接近 XID 回卷的情况（Jeff Janes）", "title": "正确处理服务器启动期间 pg_subtrans 接近 XID 回卷的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "1f989d7d97bdca5803fe31bfebe936c9f11cbd0a28ebb7ae2c81554ad5b31aa3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Correctly handle cases where pg_subtrans is close to XID wraparound during server startup (Jeff Janes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/003", "db_id": "81a9826977181e23621a765e7e44682e", "patch_ids": [], "statement_hash": "0158441d73b68354dbc20f46732c51a45faf732b80c65bad0074da15750fd45f", "relations": [{"rule": 2, "type": "equivalent", "target": "2b09b6fa046ed8bd01564446564b4b61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0158441d73b68354dbc20f46732c51a45faf732b80c65bad0074da15750fd45f"}}, {"rule": 2, "type": "equivalent", "target": "3fde9b8a31c98892454ad1413d29137a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0158441d73b68354dbc20f46732c51a45faf732b80c65bad0074da15750fd45f"}}, {"rule": 2, "type": "equivalent", "target": "bc2156c60c4cbf304d2e93eed86e8716", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0158441d73b68354dbc20f46732c51a45faf732b80c65bad0074da15750fd45f"}}, {"rule": 2, "type": "equivalent", "target": "edde2d207ba61807520cac74c0ead514", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0158441d73b68354dbc20f46732c51a45faf732b80c65bad0074da15750fd45f"}}], "version": "9.3.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "edde2d207ba61807520cac74c0ead514", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "正确处理服务器启动期间 pg_subtrans 接近 XID 回卷的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0158441d73b68354dbc20f46732c51a45faf732b80c65bad0074da15750fd45f"}, "url": "/docs/compare/?release=9.5.2#9.5.2-9bb95502cd65a2d7", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "2b09b6fa046ed8bd01564446564b4b61", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "正确处理服务器启动期间pg_subtrans接近 XID 回卷的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0158441d73b68354dbc20f46732c51a45faf732b80c65bad0074da15750fd45f"}, "url": "/docs/compare/?release=9.4.7#9.4.7-b13219ddd4f87b93", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "bc2156c60c4cbf304d2e93eed86e8716", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "正确处理服务器启动期间 pg_subtrans 接近 XID 回卷的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0158441d73b68354dbc20f46732c51a45faf732b80c65bad0074da15750fd45f"}, "url": "/docs/compare/?release=9.2.16#9.2.16-9bb95502cd65a2d7", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "3fde9b8a31c98892454ad1413d29137a", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "正确处理服务器启动期间 pg_subtrans 接近 XID 回卷的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0158441d73b68354dbc20f46732c51a45faf732b80c65bad0074da15750fd45f"}, "url": "/docs/compare/?release=9.1.21#9.1.21-9bb95502cd65a2d7", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-0eaf90a8bb843221", "cves": [], "html": "<p>修复因多次尝试释放 <code>localeconv()</code> 输出字符串而导致的边界崩溃（Tom Lane）</p>", "text": "修复因多次尝试释放 localeconv() 输出字符串而导致的边界崩溃（Tom Lane）", "title": "修复因多次尝试释放 localeconv() 输出字符串而导致的边界崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "c56d93ae0302eb2cecb534060f020deb8de094011052375b74f3e9077909622c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix corner-case crash due to trying to free localeconv() output strings more than once (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/004", "db_id": "235a516decf1402498291a6d4f402c91", "patch_ids": [], "statement_hash": "8cd14a267756bfdbb1d5a62d534a859316635c4bf51ccc8c8a8081382f673c86", "relations": [{"rule": 2, "type": "equivalent", "target": "1e16994993bbc7623cb98bcfe96b28d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8cd14a267756bfdbb1d5a62d534a859316635c4bf51ccc8c8a8081382f673c86"}}, {"rule": 2, "type": "equivalent", "target": "28908ba79b9c1e5bb55d3ae675261b3e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8cd14a267756bfdbb1d5a62d534a859316635c4bf51ccc8c8a8081382f673c86"}}, {"rule": 2, "type": "equivalent", "target": "669e54092457faa0ba706b9875baefca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8cd14a267756bfdbb1d5a62d534a859316635c4bf51ccc8c8a8081382f673c86"}}, {"rule": 2, "type": "equivalent", "target": "ba10a02a98eb847f645b4cd5daf06a7a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8cd14a267756bfdbb1d5a62d534a859316635c4bf51ccc8c8a8081382f673c86"}}], "version": "9.3.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "28908ba79b9c1e5bb55d3ae675261b3e", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "修复因多次尝试释放 localeconv() 输出字符串而导致的边界崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8cd14a267756bfdbb1d5a62d534a859316635c4bf51ccc8c8a8081382f673c86"}, "url": "/docs/compare/?release=9.5.2#9.5.2-0eaf90a8bb843221", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "ba10a02a98eb847f645b4cd5daf06a7a", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "修复因多次尝试释放localeconv()输出字符串而导致的极端情况崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8cd14a267756bfdbb1d5a62d534a859316635c4bf51ccc8c8a8081382f673c86"}, "url": "/docs/compare/?release=9.4.7#9.4.7-a8552d22f93ba0da", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "669e54092457faa0ba706b9875baefca", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "修复因多次尝试释放 localeconv() 输出字符串而导致的边界崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8cd14a267756bfdbb1d5a62d534a859316635c4bf51ccc8c8a8081382f673c86"}, "url": "/docs/compare/?release=9.2.16#9.2.16-0eaf90a8bb843221", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "1e16994993bbc7623cb98bcfe96b28d4", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "修复因多次尝试释放 localeconv() 输出字符串而导致的边界崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8cd14a267756bfdbb1d5a62d534a859316635c4bf51ccc8c8a8081382f673c86"}, "url": "/docs/compare/?release=9.1.21#9.1.21-0eaf90a8bb843221", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-6737b7bf023a0f90", "cves": [], "html": "<p>修复 <code>ispell</code> 词典词缀文件的解析（Tom Lane）</p>\n<p>如果词缀文件包含任何在大小写转换期间字节长度会变化的字符（例如土耳其语 UTF8 区域设置中的 <code>I</code>），代码就可能出错。</p>", "text": "修复 ispell 词典词缀文件的解析（Tom Lane） 如果词缀文件包含任何在大小写转换期间字节长度会变化的字符（例如土耳其语 UTF8 区域设置中的 I），代码就可能出错。", "title": "修复 ispell 词典词缀文件的解析", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "62950ca3270b8b55d8ca7d8fb1dc5719bafb6a8a019f3c52e4b9b005f0c5b861", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix parsing of affix files for ispell dictionaries (Tom Lane) The code could go wrong if the affix file contained any characters whose byte length changes during case-folding, for example I in Turkish UTF8 locales.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/005", "db_id": "ca82c2d5aa89d76f1c86f8c722bc8c98", "patch_ids": [], "statement_hash": "91b9f322747a4aaf1fd71d40ce554d8ba153d4e3c9be1d862c6cec405450cdfb", "relations": [{"rule": 2, "type": "equivalent", "target": "60f40d6665f2eda889115b868df32ea0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b9f322747a4aaf1fd71d40ce554d8ba153d4e3c9be1d862c6cec405450cdfb"}}, {"rule": 2, "type": "equivalent", "target": "76586173c2650432008d4e8966144dab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b9f322747a4aaf1fd71d40ce554d8ba153d4e3c9be1d862c6cec405450cdfb"}}, {"rule": 2, "type": "equivalent", "target": "c6a8dff9325306582b92037ebbd4684e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b9f322747a4aaf1fd71d40ce554d8ba153d4e3c9be1d862c6cec405450cdfb"}}, {"rule": 2, "type": "equivalent", "target": "e0bfc50bf2c245d8978a0af0edcf816f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b9f322747a4aaf1fd71d40ce554d8ba153d4e3c9be1d862c6cec405450cdfb"}}], "version": "9.3.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "76586173c2650432008d4e8966144dab", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "修复 ispell 词典词缀文件的解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b9f322747a4aaf1fd71d40ce554d8ba153d4e3c9be1d862c6cec405450cdfb"}, "url": "/docs/compare/?release=9.5.2#9.5.2-6737b7bf023a0f90", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "c6a8dff9325306582b92037ebbd4684e", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "修复 ispell 词典词缀文件的解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b9f322747a4aaf1fd71d40ce554d8ba153d4e3c9be1d862c6cec405450cdfb"}, "url": "/docs/compare/?release=9.4.7#9.4.7-6737b7bf023a0f90", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "60f40d6665f2eda889115b868df32ea0", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "修复 ispell 词典词缀文件的解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b9f322747a4aaf1fd71d40ce554d8ba153d4e3c9be1d862c6cec405450cdfb"}, "url": "/docs/compare/?release=9.2.16#9.2.16-6737b7bf023a0f90", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "e0bfc50bf2c245d8978a0af0edcf816f", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "修复 ispell 词典词缀文件的解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91b9f322747a4aaf1fd71d40ce554d8ba153d4e3c9be1d862c6cec405450cdfb"}, "url": "/docs/compare/?release=9.1.21#9.1.21-6737b7bf023a0f90", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-b2cea0449411f202", "cves": [], "html": "<p>避免使用 <code>sscanf()</code> 解析 <code>ispell</code> 词典文件（Artur Zakirov）</p>\n<p>这规避了 FreeBSD 衍生平台（包括 macOS）上的一个可移植性问题。</p>", "text": "避免使用 sscanf() 解析 ispell 词典文件（Artur Zakirov） 这规避了 FreeBSD 衍生平台（包括 macOS）上的一个可移植性问题。", "title": "避免使用 sscanf() 解析 ispell 词典文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "4c380c84cebce887e35f906d2b39e79240d06735f955c2dd9e7a0daaf3726e01", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid use of sscanf() to parse ispell dictionary files (Artur Zakirov) This dodges a portability problem on FreeBSD-derived platforms (including macOS).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/006", "db_id": "8342501c11463266bbc84589eef9babd", "patch_ids": [], "statement_hash": "06140c81127637c6f34b0b8196e40fa3bdbeadfd0427afda8fac298b64b70dc0", "relations": [{"rule": 2, "type": "equivalent", "target": "5139f4844fa6b2876ad917eab539c98c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06140c81127637c6f34b0b8196e40fa3bdbeadfd0427afda8fac298b64b70dc0"}}, {"rule": 2, "type": "equivalent", "target": "a076e4e7bdc2b958d21081b9ecf089b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06140c81127637c6f34b0b8196e40fa3bdbeadfd0427afda8fac298b64b70dc0"}}, {"rule": 2, "type": "equivalent", "target": "af2c1f2e6140b269e64299e51a2e2735", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06140c81127637c6f34b0b8196e40fa3bdbeadfd0427afda8fac298b64b70dc0"}}, {"rule": 2, "type": "equivalent", "target": "b7cc67e5e207ac3296a14d59932ed1e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06140c81127637c6f34b0b8196e40fa3bdbeadfd0427afda8fac298b64b70dc0"}}], "version": "9.3.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5139f4844fa6b2876ad917eab539c98c", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "避免使用 sscanf() 解析 ispell 词典文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06140c81127637c6f34b0b8196e40fa3bdbeadfd0427afda8fac298b64b70dc0"}, "url": "/docs/compare/?release=9.5.2#9.5.2-b2cea0449411f202", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "b7cc67e5e207ac3296a14d59932ed1e5", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "避免使用 sscanf() 解析 ispell 词典文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06140c81127637c6f34b0b8196e40fa3bdbeadfd0427afda8fac298b64b70dc0"}, "url": "/docs/compare/?release=9.4.7#9.4.7-b2cea0449411f202", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "a076e4e7bdc2b958d21081b9ecf089b4", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "避免使用 sscanf() 解析 ispell 词典文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06140c81127637c6f34b0b8196e40fa3bdbeadfd0427afda8fac298b64b70dc0"}, "url": "/docs/compare/?release=9.2.16#9.2.16-b2cea0449411f202", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "af2c1f2e6140b269e64299e51a2e2735", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "避免使用 sscanf() 解析 ispell 词典文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06140c81127637c6f34b0b8196e40fa3bdbeadfd0427afda8fac298b64b70dc0"}, "url": "/docs/compare/?release=9.1.21#9.1.21-b2cea0449411f202", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-f479fd4372f80860", "cves": [], "html": "<p>避免在旧版 Windows（7SP1/2008R2SP1 之前）上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃（Christian Ullrich）</p>\n<p>这是对 Visual Studio 2013 运行时库中一个 bug 的变通方案，微软已表示不会在该版本中修复它。</p>", "text": "避免在旧版 Windows（7SP1/2008R2SP1 之前）上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃（Christian Ullrich） 这是对 Visual Studio 2013 运行时库中一个 bug 的变通方案，微软已表示不会在该版本中修复它。", "title": "避免在旧版 Windows（7SP1/2008R2SP1 之前）上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "c53e1ec4378136ae81183fb56c0f34a21916b3a4b0f3e148ddb1da421611766f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an AVX2-capable CPU and a Postgres build done with Visual Studio 2013 (Christian Ullrich) This is a workaround for a bug in Visual Studio 2013's runtime library, which Microsoft have stated they will not fix in that version.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/007", "db_id": "7f61ba8f775e71e515bad2fd9a6ee267", "patch_ids": [], "statement_hash": "a29aab8615c280500bd3f14f488e61ca7c8836f9983df15092c5fdae99b9cf60", "relations": [{"rule": 2, "type": "equivalent", "target": "0a5a919cea37eb591575f80c20998e8b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a29aab8615c280500bd3f14f488e61ca7c8836f9983df15092c5fdae99b9cf60"}}, {"rule": 2, "type": "equivalent", "target": "12c9f1dae306af82d9c2358a6fcf14a3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a29aab8615c280500bd3f14f488e61ca7c8836f9983df15092c5fdae99b9cf60"}}, {"rule": 2, "type": "equivalent", "target": "bf7b51735f20090f3fca477596063a5e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a29aab8615c280500bd3f14f488e61ca7c8836f9983df15092c5fdae99b9cf60"}}, {"rule": 2, "type": "equivalent", "target": "f27e6e530c2890c80f9f0ce1c3199bee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a29aab8615c280500bd3f14f488e61ca7c8836f9983df15092c5fdae99b9cf60"}}], "version": "9.3.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0a5a919cea37eb591575f80c20998e8b", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "避免在旧版 Windows（7SP1/2008R2SP1 之前）上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a29aab8615c280500bd3f14f488e61ca7c8836f9983df15092c5fdae99b9cf60"}, "url": "/docs/compare/?release=9.5.2#9.5.2-f479fd4372f80860", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "bf7b51735f20090f3fca477596063a5e", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "避免在旧版 Windows（7SP1/2008R2SP1 之前）上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a29aab8615c280500bd3f14f488e61ca7c8836f9983df15092c5fdae99b9cf60"}, "url": "/docs/compare/?release=9.4.7#9.4.7-f479fd4372f80860", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "f27e6e530c2890c80f9f0ce1c3199bee", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "避免在旧版 Windows（7SP1/2008R2SP1 之前）上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a29aab8615c280500bd3f14f488e61ca7c8836f9983df15092c5fdae99b9cf60"}, "url": "/docs/compare/?release=9.2.16#9.2.16-f479fd4372f80860", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "12c9f1dae306af82d9c2358a6fcf14a3", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "避免在旧版 Windows（7SP1/2008R2SP1 之前）上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a29aab8615c280500bd3f14f488e61ca7c8836f9983df15092c5fdae99b9cf60"}, "url": "/docs/compare/?release=9.1.21#9.1.21-f479fd4372f80860", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-a4882695b5976de5", "cves": [], "html": "<p>修复 <span>psql</span> 的 Tab 补全逻辑，使其正确处理多字节字符（Kyotaro Horiguchi、Robert Haas）</p>", "text": "修复 psql 的 Tab 补全逻辑，使其正确处理多字节字符（Kyotaro Horiguchi、Robert Haas）", "title": "修复 psql 的 Tab 补全逻辑，使其正确处理多字节字符", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "d56e884eba8ad8aece7f9bcb274d9ec8091b58f7a043ace717116269d2c4604d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql's tab completion logic to handle multibyte characters properly (Kyotaro Horiguchi, Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/008", "db_id": "e67ac613545bfcb35b6dc5b547898977", "patch_ids": [], "statement_hash": "c109770e055ca5188d5c682d8d264e37c7c864e36ecdcc096a554baa44e4c88c", "relations": [{"rule": 2, "type": "equivalent", "target": "05039f3be720eaebbfdb8a768f4c3528", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c109770e055ca5188d5c682d8d264e37c7c864e36ecdcc096a554baa44e4c88c"}}, {"rule": 2, "type": "equivalent", "target": "908087803e3a5dfed04a6c9765911d40", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c109770e055ca5188d5c682d8d264e37c7c864e36ecdcc096a554baa44e4c88c"}}, {"rule": 2, "type": "equivalent", "target": "929e94972cd3e7215325f627736556d9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c109770e055ca5188d5c682d8d264e37c7c864e36ecdcc096a554baa44e4c88c"}}, {"rule": 2, "type": "equivalent", "target": "f03ece35225e3c129b3cf2889a6bbb8a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c109770e055ca5188d5c682d8d264e37c7c864e36ecdcc096a554baa44e4c88c"}}], "version": "9.3.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "05039f3be720eaebbfdb8a768f4c3528", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "修复 psql 的 Tab 补全逻辑，使其正确处理多字节字符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c109770e055ca5188d5c682d8d264e37c7c864e36ecdcc096a554baa44e4c88c"}, "url": "/docs/compare/?release=9.5.2#9.5.2-a4882695b5976de5", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "929e94972cd3e7215325f627736556d9", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "修复psql的制表符补全逻辑以正确处理多字节字符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c109770e055ca5188d5c682d8d264e37c7c864e36ecdcc096a554baa44e4c88c"}, "url": "/docs/compare/?release=9.4.7#9.4.7-a19f38df1743f18f", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "908087803e3a5dfed04a6c9765911d40", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "修复 psql 的 Tab 补全逻辑，使其正确处理多字节字符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c109770e055ca5188d5c682d8d264e37c7c864e36ecdcc096a554baa44e4c88c"}, "url": "/docs/compare/?release=9.2.16#9.2.16-a4882695b5976de5", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "f03ece35225e3c129b3cf2889a6bbb8a", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "修复 psql 的 Tab 补全逻辑，使其正确处理多字节字符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c109770e055ca5188d5c682d8d264e37c7c864e36ecdcc096a554baa44e4c88c"}, "url": "/docs/compare/?release=9.1.21#9.1.21-a4882695b5976de5", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-c239f0ce834bd3d1", "cves": [], "html": "<p>修复 <span>psql</span> 对 <code>SECURITY LABEL</code> 的 Tab 补全（Tom Lane）</p>\n<p>在 <code>SECURITY LABEL</code> 之后按 TAB 可能导致崩溃或提供不合适的关键字。</p>", "text": "修复 psql 对 SECURITY LABEL 的 Tab 补全（Tom Lane） 在 SECURITY LABEL 之后按 TAB 可能导致崩溃或提供不合适的关键字。", "title": "修复 psql 对 SECURITY LABEL 的 Tab 补全", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "0093c19fb3d68779906db6f622d1fa8894d2ebe013cce808ea59e381a1a2148d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql's tab completion for SECURITY LABEL (Tom Lane) Pressing TAB after SECURITY LABEL might cause a crash or offering of inappropriate keywords.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/009", "db_id": "b37868f34b15e59b920d0b227549b9bb", "patch_ids": [], "statement_hash": "1d6fd89f614b2122f6d609f1ff8e3075cf765c2f12a03ba3947fb0e6b4afd207", "relations": [{"rule": 2, "type": "equivalent", "target": "25b99e768c6a6ff8cc251b5e48dab173", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d6fd89f614b2122f6d609f1ff8e3075cf765c2f12a03ba3947fb0e6b4afd207"}}, {"rule": 2, "type": "equivalent", "target": "2f7b7917801d1d02befe7d82d3f66b82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d6fd89f614b2122f6d609f1ff8e3075cf765c2f12a03ba3947fb0e6b4afd207"}}, {"rule": 2, "type": "equivalent", "target": "330fce3a940bb76dfe4ae4670f52dcf0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d6fd89f614b2122f6d609f1ff8e3075cf765c2f12a03ba3947fb0e6b4afd207"}}, {"rule": 2, "type": "equivalent", "target": "33cdf93285ebc9e8fdaaa7fb1d88942a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d6fd89f614b2122f6d609f1ff8e3075cf765c2f12a03ba3947fb0e6b4afd207"}}], "version": "9.3.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "330fce3a940bb76dfe4ae4670f52dcf0", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "修复 psql 对 SECURITY LABEL 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d6fd89f614b2122f6d609f1ff8e3075cf765c2f12a03ba3947fb0e6b4afd207"}, "url": "/docs/compare/?release=9.5.2#9.5.2-c239f0ce834bd3d1", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "2f7b7917801d1d02befe7d82d3f66b82", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "修复 psql 对 SECURITY LABEL 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d6fd89f614b2122f6d609f1ff8e3075cf765c2f12a03ba3947fb0e6b4afd207"}, "url": "/docs/compare/?release=9.4.7#9.4.7-c239f0ce834bd3d1", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "33cdf93285ebc9e8fdaaa7fb1d88942a", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "修复 psql 对 SECURITY LABEL 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d6fd89f614b2122f6d609f1ff8e3075cf765c2f12a03ba3947fb0e6b4afd207"}, "url": "/docs/compare/?release=9.2.16#9.2.16-c239f0ce834bd3d1", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "25b99e768c6a6ff8cc251b5e48dab173", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "修复 psql 对 SECURITY LABEL 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d6fd89f614b2122f6d609f1ff8e3075cf765c2f12a03ba3947fb0e6b4afd207"}, "url": "/docs/compare/?release=9.1.21#9.1.21-c239f0ce834bd3d1", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-e26e2c8653a8e27c", "cves": [], "html": "<p>使 <span>pg_ctl</span> 在命令行未指定时接受来自 <code>PGCTLTIMEOUT</code> 环境变量的等待超时（Noah Misch）</p>\n<p>这方便了较慢的 buildfarm 成员的测试，允许它们全局指定比正常更长的 postmaster 启动和关闭超时。</p>", "text": "使 pg_ctl 在命令行未指定时接受来自 PGCTLTIMEOUT 环境变量的等待超时（Noah Misch） 这方便了较慢的 buildfarm 成员的测试，允许它们全局指定比正常更长的 postmaster 启动和关闭超时。", "title": "使 pg_ctl 在命令行未指定时接受来自 PGCTLTIMEOUT 环境变量的等待超时", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "128687b4d70904dfcce68ccf38a7d64b836fa194f5ede960c407125566ba75e4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_ctl accept a wait timeout from the PGCTLTIMEOUT environment variable, if none is specified on the command line (Noah Misch) This eases testing of slower buildfarm members by allowing them to globally specify a longer-than-normal timeout for postmaster startup and shutdown.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/010", "db_id": "52a76d826437999152d53bf7c83a320e", "patch_ids": [], "statement_hash": "3c3e7f701f9750eaa417b1b8a4b567eed7838383dde020ece4e47bb715381061", "relations": [{"rule": 2, "type": "equivalent", "target": "015e9ade51f46846b1d306bd50767303", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c3e7f701f9750eaa417b1b8a4b567eed7838383dde020ece4e47bb715381061"}}, {"rule": 2, "type": "equivalent", "target": "3e3103297f7fc68db95b29dc324cf63a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c3e7f701f9750eaa417b1b8a4b567eed7838383dde020ece4e47bb715381061"}}, {"rule": 2, "type": "equivalent", "target": "9cc9b97ba872651502d3c1a593585cf9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c3e7f701f9750eaa417b1b8a4b567eed7838383dde020ece4e47bb715381061"}}, {"rule": 2, "type": "equivalent", "target": "9d3a6b02a5aa0bb2b2fe10cab0073f76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c3e7f701f9750eaa417b1b8a4b567eed7838383dde020ece4e47bb715381061"}}], "version": "9.3.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3e3103297f7fc68db95b29dc324cf63a", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "使 pg_ctl 在命令行未指定时接受来自 PGCTLTIMEOUT 环境变量的等待超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c3e7f701f9750eaa417b1b8a4b567eed7838383dde020ece4e47bb715381061"}, "url": "/docs/compare/?release=9.5.2#9.5.2-e26e2c8653a8e27c", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "015e9ade51f46846b1d306bd50767303", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "使 pg_ctl 在命令行未指定时接受来自 PGCTLTIMEOUT 环境变量的等待超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c3e7f701f9750eaa417b1b8a4b567eed7838383dde020ece4e47bb715381061"}, "url": "/docs/compare/?release=9.4.7#9.4.7-e26e2c8653a8e27c", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "9cc9b97ba872651502d3c1a593585cf9", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "使 pg_ctl 在命令行未指定时接受来自 PGCTLTIMEOUT 环境变量的等待超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c3e7f701f9750eaa417b1b8a4b567eed7838383dde020ece4e47bb715381061"}, "url": "/docs/compare/?release=9.2.16#9.2.16-e26e2c8653a8e27c", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "9d3a6b02a5aa0bb2b2fe10cab0073f76", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "使 pg_ctl 在命令行未指定时接受来自 PGCTLTIMEOUT 环境变量的等待超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c3e7f701f9750eaa417b1b8a4b567eed7838383dde020ece4e47bb715381061"}, "url": "/docs/compare/?release=9.1.21#9.1.21-e26e2c8653a8e27c", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-57bc94440141f0a1", "cves": [], "html": "<p>修复 <span>pg_ctl</span> 中对 Windows 服务状态的不正确测试（Manuel Mathar）</p>\n<p>上一轮小版本发布试图修复 <span>pg_ctl</span>，使其正确判断是否把日志消息发送到 Windows 事件日志，但把测试条件弄反了。</p>", "text": "修复 pg_ctl 中对 Windows 服务状态的不正确测试（Manuel Mathar） 上一轮小版本发布试图修复 pg_ctl，使其正确判断是否把日志消息发送到 Windows 事件日志，但把测试条件弄反了。", "title": "修复 pg_ctl 中对 Windows 服务状态的不正确测试", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "06b9b66a9fd84169e16f4f79f5caac844b303c80f229141c16161f591afc738f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect test for Windows service status in pg_ctl (Manuel Mathar) The previous set of minor releases attempted to fix pg_ctl to properly determine whether to send log messages to Window's Event Log, but got the test backwards.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/011", "db_id": "60707bb1e90fab808b81859693f4d9c7", "patch_ids": [], "statement_hash": "5f915e3283e4f7a13ad493fdc64a77ec0f2cc184abf6760212d8ec8544cec6fb", "relations": [{"rule": 2, "type": "equivalent", "target": "14b147d92a5360ac5da4cca5c1cd996b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f915e3283e4f7a13ad493fdc64a77ec0f2cc184abf6760212d8ec8544cec6fb"}}, {"rule": 2, "type": "equivalent", "target": "3fa11732ac1705220018943f03a527bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f915e3283e4f7a13ad493fdc64a77ec0f2cc184abf6760212d8ec8544cec6fb"}}, {"rule": 2, "type": "equivalent", "target": "5266004fb3ff87e116d7fa0b4b782fad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f915e3283e4f7a13ad493fdc64a77ec0f2cc184abf6760212d8ec8544cec6fb"}}, {"rule": 2, "type": "equivalent", "target": "afd79e39a27baaa2d06cca92a65eb4fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f915e3283e4f7a13ad493fdc64a77ec0f2cc184abf6760212d8ec8544cec6fb"}}], "version": "9.3.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3fa11732ac1705220018943f03a527bb", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "修复 pg_ctl 中对 Windows 服务状态的不正确测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f915e3283e4f7a13ad493fdc64a77ec0f2cc184abf6760212d8ec8544cec6fb"}, "url": "/docs/compare/?release=9.5.2#9.5.2-57bc94440141f0a1", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "afd79e39a27baaa2d06cca92a65eb4fd", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "修复 pg_ctl 中对 Windows 服务状态的不正确测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f915e3283e4f7a13ad493fdc64a77ec0f2cc184abf6760212d8ec8544cec6fb"}, "url": "/docs/compare/?release=9.4.7#9.4.7-57bc94440141f0a1", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "5266004fb3ff87e116d7fa0b4b782fad", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "修复 pg_ctl 中对 Windows 服务状态的不正确测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f915e3283e4f7a13ad493fdc64a77ec0f2cc184abf6760212d8ec8544cec6fb"}, "url": "/docs/compare/?release=9.2.16#9.2.16-57bc94440141f0a1", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "14b147d92a5360ac5da4cca5c1cd996b", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "修复 pg_ctl 中对 Windows 服务状态的不正确测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f915e3283e4f7a13ad493fdc64a77ec0f2cc184abf6760212d8ec8544cec6fb"}, "url": "/docs/compare/?release=9.1.21#9.1.21-57bc94440141f0a1", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-d67962a5f5d82de5", "cves": [], "html": "<p>修复 <span>pgbench</span> 对 <code>-C</code> 与 <code>-M prepared</code> 选项组合的处理（Tom Lane）</p>", "text": "修复 pgbench 对 -C 与 -M prepared 选项组合的处理（Tom Lane）", "title": "修复 pgbench 对 -C 与 -M prepared 选项组合的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "b0c6e6f7373cb4b4203a4ef281dea31e72016a389f67e74e10048ffaf020a0a8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pgbench to correctly handle the combination of -C and -M prepared options (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/012", "db_id": "ff902fb1a17619997ca69802f94ce5e2", "patch_ids": [], "statement_hash": "e9c796d5f66966db7fd61486fce08527037870306a859e892aa285596c4c17c8", "relations": [{"rule": 2, "type": "equivalent", "target": "5ea202397e5bc63f4be4231d2351680e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9c796d5f66966db7fd61486fce08527037870306a859e892aa285596c4c17c8"}}, {"rule": 2, "type": "equivalent", "target": "77936f452cfca78c0b5c84f05d9e42c4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9c796d5f66966db7fd61486fce08527037870306a859e892aa285596c4c17c8"}}, {"rule": 2, "type": "equivalent", "target": "783b7129442dfff6a593129ed932cb68", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9c796d5f66966db7fd61486fce08527037870306a859e892aa285596c4c17c8"}}, {"rule": 2, "type": "equivalent", "target": "f5b5236200491a54b9c7942a7fdcf1c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9c796d5f66966db7fd61486fce08527037870306a859e892aa285596c4c17c8"}}], "version": "9.3.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f5b5236200491a54b9c7942a7fdcf1c6", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "修复 pgbench 对 -C 与 -M prepared 选项组合的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9c796d5f66966db7fd61486fce08527037870306a859e892aa285596c4c17c8"}, "url": "/docs/compare/?release=9.5.2#9.5.2-d67962a5f5d82de5", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "77936f452cfca78c0b5c84f05d9e42c4", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "修复pgbench正确处理-C与-M prepared选项组合的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9c796d5f66966db7fd61486fce08527037870306a859e892aa285596c4c17c8"}, "url": "/docs/compare/?release=9.4.7#9.4.7-bd454606bc04f102", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "5ea202397e5bc63f4be4231d2351680e", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "修复 pgbench 对 -C 与 -M prepared 选项组合的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9c796d5f66966db7fd61486fce08527037870306a859e892aa285596c4c17c8"}, "url": "/docs/compare/?release=9.2.16#9.2.16-d67962a5f5d82de5", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "783b7129442dfff6a593129ed932cb68", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "修复 pgbench 对 -C 与 -M prepared 选项组合的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9c796d5f66966db7fd61486fce08527037870306a859e892aa285596c4c17c8"}, "url": "/docs/compare/?release=9.1.21#9.1.21-d67962a5f5d82de5", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-9b2461a690bf6a8b", "cves": [], "html": "<p>在 <span>pg_upgrade</span> 中，当新数据目录位于旧数据目录之内时跳过创建删除脚本（Bruce Momjian）</p>\n<p>在这种情况下盲目执行该脚本会导致新数据目录丢失。</p>", "text": "在 pg_upgrade 中，当新数据目录位于旧数据目录之内时跳过创建删除脚本（Bruce Momjian） 在这种情况下盲目执行该脚本会导致新数据目录丢失。", "title": "在 pg_upgrade 中，当新数据目录位于旧数据目录之内时跳过创建删除脚本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "3af3fb0f0b5f6e74f1b5b591313fc1e845cb2de529879e1dfb042c7ffe83a5d1", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_upgrade, skip creating a deletion script when the new data directory is inside the old data directory (Bruce Momjian) Blind application of the script in such cases would result in loss of the new data directory.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/013", "db_id": "d55e2335c062f411bb106fd4243f5690", "patch_ids": [], "statement_hash": "9bfc6501fd92ab3f6ac7beb2189709e40319914d2278bd265fbdd5ca5ba9d65f", "relations": [{"rule": 2, "type": "equivalent", "target": "66b6ab9215882c0828986842f03761e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bfc6501fd92ab3f6ac7beb2189709e40319914d2278bd265fbdd5ca5ba9d65f"}}, {"rule": 2, "type": "equivalent", "target": "f280eb4e3f1c7198dbcde9ffabe24b68", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bfc6501fd92ab3f6ac7beb2189709e40319914d2278bd265fbdd5ca5ba9d65f"}}], "version": "9.3.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f280eb4e3f1c7198dbcde9ffabe24b68", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "在 pg_upgrade 中，当新数据目录位于旧数据目录之内时跳过创建删除脚本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bfc6501fd92ab3f6ac7beb2189709e40319914d2278bd265fbdd5ca5ba9d65f"}, "url": "/docs/compare/?release=9.5.2#9.5.2-9b2461a690bf6a8b", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "66b6ab9215882c0828986842f03761e1", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "在 pg_upgrade 中，当新数据目录位于旧数据目录之内时跳过创建删除脚本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bfc6501fd92ab3f6ac7beb2189709e40319914d2278bd265fbdd5ca5ba9d65f"}, "url": "/docs/compare/?release=9.4.7#9.4.7-9b2461a690bf6a8b", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}]}, {"id": "9.3.12-eec0469f77eed067", "cves": [], "html": "<p>在 PL/Perl 中，把空的 Postgres 数组正确转换为空的 Perl 数组（Alex Hunsaker）</p>", "text": "在 PL/Perl 中，把空的 Postgres 数组正确转换为空的 Perl 数组（Alex Hunsaker）", "title": "在 PL/Perl 中，把空的 Postgres 数组正确转换为空的 Perl 数组", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "7ad58ea4551b1552dfd9dc819664f30ff9d5d6f235026b2ce87fe882c7610625", "section_path": ["变更"], "commit_groups": [], "identity_text": "In PL/Perl, properly translate empty Postgres arrays into empty Perl arrays (Alex Hunsaker)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/014", "db_id": "bd354c3d34b489612975701fc78b2af2", "patch_ids": [], "statement_hash": "9ba992c95929f75b7d110ed1658b5b693b60ab6cf4c08ab73e449edcf44c793e", "relations": [{"rule": 2, "type": "equivalent", "target": "46db9fea72dbf0e47f32bd2e0d1c4244", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba992c95929f75b7d110ed1658b5b693b60ab6cf4c08ab73e449edcf44c793e"}}, {"rule": 2, "type": "equivalent", "target": "87080dd7f94387eb373e7003cd170cd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba992c95929f75b7d110ed1658b5b693b60ab6cf4c08ab73e449edcf44c793e"}}, {"rule": 2, "type": "equivalent", "target": "c37a865a38dce101c0dd0632f059de35", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba992c95929f75b7d110ed1658b5b693b60ab6cf4c08ab73e449edcf44c793e"}}, {"rule": 2, "type": "equivalent", "target": "ef5c5d76994d430a8a57fc1047c0fb87", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba992c95929f75b7d110ed1658b5b693b60ab6cf4c08ab73e449edcf44c793e"}}], "version": "9.3.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c37a865a38dce101c0dd0632f059de35", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "在 PL/Perl 中，把空的 Postgres 数组正确转换为空的 Perl 数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba992c95929f75b7d110ed1658b5b693b60ab6cf4c08ab73e449edcf44c793e"}, "url": "/docs/compare/?release=9.5.2#9.5.2-eec0469f77eed067", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "ef5c5d76994d430a8a57fc1047c0fb87", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "PL/Perl 中正确将空的 Postgres 数组转换为空的 Perl 数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba992c95929f75b7d110ed1658b5b693b60ab6cf4c08ab73e449edcf44c793e"}, "url": "/docs/compare/?release=9.4.7#9.4.7-b117d66088ddfd76", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "46db9fea72dbf0e47f32bd2e0d1c4244", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "在 PL/Perl 中，把空的 Postgres 数组正确转换为空的 Perl 数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba992c95929f75b7d110ed1658b5b693b60ab6cf4c08ab73e449edcf44c793e"}, "url": "/docs/compare/?release=9.2.16#9.2.16-eec0469f77eed067", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "87080dd7f94387eb373e7003cd170cd3", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "在 PL/Perl 中，把空的 Postgres 数组正确转换为空的 Perl 数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba992c95929f75b7d110ed1658b5b693b60ab6cf4c08ab73e449edcf44c793e"}, "url": "/docs/compare/?release=9.1.21#9.1.21-eec0469f77eed067", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-1b53ca144d6618b8", "cves": [], "html": "<p>使 PL/Python 能处理不是有效 Python 标识符的函数名（Jim Nasby）</p>", "text": "使 PL/Python 能处理不是有效 Python 标识符的函数名（Jim Nasby）", "title": "使 PL/Python 能处理不是有效 Python 标识符的函数名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "3cf0ba7c6ceac3b8b9fe19a42ea92f23db01243040e976af3b637c10d08a6a57", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make PL/Python cope with function names that aren't valid Python identifiers (Jim Nasby)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/015", "db_id": "6327a06ad4a84e8447d5ccb69e3a4a93", "patch_ids": [], "statement_hash": "a163fe870ff975fa4b0e07469eaa2f86b438bd3eca9046047cc3cdb2588b01dc", "relations": [{"rule": 2, "type": "equivalent", "target": "1cb2fb6c72d5cd3026db84494981d9a2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a163fe870ff975fa4b0e07469eaa2f86b438bd3eca9046047cc3cdb2588b01dc"}}, {"rule": 2, "type": "equivalent", "target": "2743cc66071dc9bb1be2ce36cd5751ae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a163fe870ff975fa4b0e07469eaa2f86b438bd3eca9046047cc3cdb2588b01dc"}}, {"rule": 2, "type": "equivalent", "target": "defc8ab2c8a3d5f2c4ff4a271c5c866d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a163fe870ff975fa4b0e07469eaa2f86b438bd3eca9046047cc3cdb2588b01dc"}}, {"rule": 2, "type": "equivalent", "target": "e5e1465d0800a8451e752895c6999c38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a163fe870ff975fa4b0e07469eaa2f86b438bd3eca9046047cc3cdb2588b01dc"}}], "version": "9.3.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2743cc66071dc9bb1be2ce36cd5751ae", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "使 PL/Python 能处理不是有效 Python 标识符的函数名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a163fe870ff975fa4b0e07469eaa2f86b438bd3eca9046047cc3cdb2588b01dc"}, "url": "/docs/compare/?release=9.5.2#9.5.2-1b53ca144d6618b8", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "defc8ab2c8a3d5f2c4ff4a271c5c866d", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "使 PL/Python 能处理不是合法 Python 标识符的函数名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a163fe870ff975fa4b0e07469eaa2f86b438bd3eca9046047cc3cdb2588b01dc"}, "url": "/docs/compare/?release=9.4.7#9.4.7-86e901175b6b1d93", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "1cb2fb6c72d5cd3026db84494981d9a2", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "使 PL/Python 能处理不是有效 Python 标识符的函数名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a163fe870ff975fa4b0e07469eaa2f86b438bd3eca9046047cc3cdb2588b01dc"}, "url": "/docs/compare/?release=9.2.16#9.2.16-1b53ca144d6618b8", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "e5e1465d0800a8451e752895c6999c38", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "使 PL/Python 能处理不是有效 Python 标识符的函数名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a163fe870ff975fa4b0e07469eaa2f86b438bd3eca9046047cc3cdb2588b01dc"}, "url": "/docs/compare/?release=9.1.21#9.1.21-1b53ca144d6618b8", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-e3b15bea588c9d0c", "cves": [], "html": "<p>修复 <code>contrib/pgstattuple</code> 的 <code>pgstatindex()</code> 函数返回统计信息中的多处错误（Tom Lane）</p>", "text": "修复 contrib/pgstattuple 的 pgstatindex() 函数返回统计信息中的多处错误（Tom Lane）", "title": "修复 contrib/pgstattuple 的 pgstatindex() 函数返回统计信息中的多处错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "bdbba9ae9f037f1be18f017bccd6fac1cf9afe42b93c47a0d45ab90ed2864666", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix multiple mistakes in the statistics returned by contrib/pgstattuple's pgstatindex() function (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/016", "db_id": "4f781d915d20642909263bcc729cdd25", "patch_ids": [], "statement_hash": "7f95a59dda74c81c687886866b6b034b30f6bdaef2211c1641ccaaf7c9e7b2f5", "relations": [{"rule": 2, "type": "equivalent", "target": "99d0798bc013c314df9fdaa71161f84d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f95a59dda74c81c687886866b6b034b30f6bdaef2211c1641ccaaf7c9e7b2f5"}}, {"rule": 2, "type": "equivalent", "target": "9d2ea0da995c1f6a973344c2297bea92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f95a59dda74c81c687886866b6b034b30f6bdaef2211c1641ccaaf7c9e7b2f5"}}, {"rule": 2, "type": "equivalent", "target": "c82ce1cf9224cadc8ae894ae7784f80d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f95a59dda74c81c687886866b6b034b30f6bdaef2211c1641ccaaf7c9e7b2f5"}}, {"rule": 2, "type": "equivalent", "target": "df8612e33097be9e1f28ac742d692ffc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f95a59dda74c81c687886866b6b034b30f6bdaef2211c1641ccaaf7c9e7b2f5"}}], "version": "9.3.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "df8612e33097be9e1f28ac742d692ffc", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "修复 contrib/pgstattuple 的 pgstatindex() 函数返回统计信息中的多处错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f95a59dda74c81c687886866b6b034b30f6bdaef2211c1641ccaaf7c9e7b2f5"}, "url": "/docs/compare/?release=9.5.2#9.5.2-e3b15bea588c9d0c", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "c82ce1cf9224cadc8ae894ae7784f80d", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "修复contrib/pgstattuple的pgstatindex()函数返回统计信息中的多处错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f95a59dda74c81c687886866b6b034b30f6bdaef2211c1641ccaaf7c9e7b2f5"}, "url": "/docs/compare/?release=9.4.7#9.4.7-8c82f21f39f39d38", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "9d2ea0da995c1f6a973344c2297bea92", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "修复 contrib/pgstattuple 的 pgstatindex() 函数返回统计信息中的多处错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f95a59dda74c81c687886866b6b034b30f6bdaef2211c1641ccaaf7c9e7b2f5"}, "url": "/docs/compare/?release=9.2.16#9.2.16-e3b15bea588c9d0c", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "99d0798bc013c314df9fdaa71161f84d", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "修复 contrib/pgstattuple 的 pgstatindex() 函数返回统计信息中的多处错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f95a59dda74c81c687886866b6b034b30f6bdaef2211c1641ccaaf7c9e7b2f5"}, "url": "/docs/compare/?release=9.1.21#9.1.21-e3b15bea588c9d0c", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-1abcbec9718bdef8", "cves": [], "html": "<p>在 MSVC 构建中移除对 <code>psed</code> 的依赖，因为核心 Perl 已不再提供它（Michael Paquier、Andrew Dunstan）</p>", "text": "在 MSVC 构建中移除对 psed 的依赖，因为核心 Perl 已不再提供它（Michael Paquier、Andrew Dunstan）", "title": "在 MSVC 构建中移除对 psed 的依赖，因为核心 Perl 已不再提供它", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "b6901ebdabbbef0e5d15f0f5800804e39d49cd0da1a58355bc1c958264cbb265", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove dependency on psed in MSVC builds, since it's no longer provided by core Perl (Michael Paquier, Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/017", "db_id": "afc93e54af7805085cdd71f2fec7a48f", "patch_ids": [], "statement_hash": "53876e2d019c482ca067c88e9b35480c6ea90d8c106d1dcf82102a4ee05f7b94", "relations": [{"rule": 2, "type": "equivalent", "target": "3fe9e49777d0e1c4b80678c4b9088c61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "53876e2d019c482ca067c88e9b35480c6ea90d8c106d1dcf82102a4ee05f7b94"}}, {"rule": 2, "type": "equivalent", "target": "5fa13ba1ba92ac22571505655aad9031", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "53876e2d019c482ca067c88e9b35480c6ea90d8c106d1dcf82102a4ee05f7b94"}}, {"rule": 2, "type": "equivalent", "target": "d0e095b1f4354992945fa49d79febe89", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "53876e2d019c482ca067c88e9b35480c6ea90d8c106d1dcf82102a4ee05f7b94"}}, {"rule": 2, "type": "equivalent", "target": "f5f4f708b4bd22692cc17c73f16631e0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "53876e2d019c482ca067c88e9b35480c6ea90d8c106d1dcf82102a4ee05f7b94"}}], "version": "9.3.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3fe9e49777d0e1c4b80678c4b9088c61", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "在 MSVC 构建中移除对 psed 的依赖，因为核心 Perl 已不再提供它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "53876e2d019c482ca067c88e9b35480c6ea90d8c106d1dcf82102a4ee05f7b94"}, "url": "/docs/compare/?release=9.5.2#9.5.2-1abcbec9718bdef8", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "d0e095b1f4354992945fa49d79febe89", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "移除 MSVC 构建中对psed的依赖，因为核心 Perl 已不再提供它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "53876e2d019c482ca067c88e9b35480c6ea90d8c106d1dcf82102a4ee05f7b94"}, "url": "/docs/compare/?release=9.4.7#9.4.7-4de7fd15a1d1e7ec", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "5fa13ba1ba92ac22571505655aad9031", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "在 MSVC 构建中移除对 psed 的依赖，因为核心 Perl 已不再提供它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "53876e2d019c482ca067c88e9b35480c6ea90d8c106d1dcf82102a4ee05f7b94"}, "url": "/docs/compare/?release=9.2.16#9.2.16-1abcbec9718bdef8", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "f5f4f708b4bd22692cc17c73f16631e0", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "在 MSVC 构建中移除对 psed 的依赖，因为核心 Perl 已不再提供它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "53876e2d019c482ca067c88e9b35480c6ea90d8c106d1dcf82102a4ee05f7b94"}, "url": "/docs/compare/?release=9.1.21#9.1.21-1abcbec9718bdef8", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}, {"id": "9.3.12-348974ef78c63531", "cves": [], "html": "<p>把时区数据文件更新到 <span>tzdata</span> 2016c 版，涉及阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯（阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区）的夏令时法规变更，以及立陶宛、摩尔多瓦和俄罗斯（加里宁格勒、萨马拉、伏尔加格勒）的历史数据修正。</p>", "text": "把时区数据文件更新到 tzdata 2016c 版，涉及阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯（阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区）的夏令时法规变更，以及立陶宛、摩尔多瓦和俄罗斯（加里宁格勒、萨马拉、伏尔加格勒）的历史数据修正。", "title": "把时区数据文件更新到 tzdata 2016c 版，涉及阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯（阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区）的夏令时法规变更，以及立陶宛、摩尔多瓦和俄罗斯（加里宁格勒、萨马拉、伏尔加格勒）的历史数据修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.12/#id-1.11.6.18.5", "source_hash": "001491d3b81576e028f6d9ef6080dce06fd62d33dcfa9c8d2e23ad59d09ceb16", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2016c for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia (Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus historical corrections for Lithuania, Moldova, and Russia (Kaliningrad, Samara, Volgograd).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.12/changes/018", "db_id": "a7e96d3f5e5d40500670e78d528e0db7", "patch_ids": [], "statement_hash": "622a517e919a21515902322cf894a7f5ff6bb97ca3542babb0bf8a71177d00e0", "relations": [{"rule": 2, "type": "equivalent", "target": "11bcd623c4695ea3676739b08b72d6b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "622a517e919a21515902322cf894a7f5ff6bb97ca3542babb0bf8a71177d00e0"}}, {"rule": 2, "type": "equivalent", "target": "1cfca3d2934db698b31aff12cf0a4f90", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "622a517e919a21515902322cf894a7f5ff6bb97ca3542babb0bf8a71177d00e0"}}, {"rule": 2, "type": "equivalent", "target": "31540a243c445f396514cdadc0987a72", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "622a517e919a21515902322cf894a7f5ff6bb97ca3542babb0bf8a71177d00e0"}}, {"rule": 2, "type": "equivalent", "target": "6831386b58658c333c783df37fedc92f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "622a517e919a21515902322cf894a7f5ff6bb97ca3542babb0bf8a71177d00e0"}}], "version": "9.3.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "11bcd623c4695ea3676739b08b72d6b9", "kind": "equivalent", "version": "9.5.2", "label": "9.5.2", "title": "把时区数据文件更新到 tzdata 2016c 版，涉及阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯（阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区）的夏令时法规变更，以及立陶宛、摩尔多瓦和俄罗斯（加里宁格勒、萨马拉、伏尔加格勒）的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "622a517e919a21515902322cf894a7f5ff6bb97ca3542babb0bf8a71177d00e0"}, "url": "/docs/compare/?release=9.5.2#9.5.2-348974ef78c63531", "source_url": "/docs/release/9.5.2/#id-1.11.6.28.5"}, {"db_id": "31540a243c445f396514cdadc0987a72", "kind": "equivalent", "version": "9.4.7", "label": "9.4.7", "title": "将时区数据文件更新到tzdata发行版 2016c，以反映阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯（阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区）的夏令时法规变更，以及立陶宛、摩尔多瓦和俄罗斯（加里宁格勒、萨马拉、伏尔加格勒）的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "622a517e919a21515902322cf894a7f5ff6bb97ca3542babb0bf8a71177d00e0"}, "url": "/docs/compare/?release=9.4.7#9.4.7-99ef89f5f523f589", "source_url": "/docs/release/9.4.7/#id-1.11.6.24.5"}, {"db_id": "6831386b58658c333c783df37fedc92f", "kind": "equivalent", "version": "9.2.16", "label": "9.2.16", "title": "把时区数据文件更新到 tzdata 2016c 版，涉及阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯（阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区）的夏令时法规变更，以及立陶宛、摩尔多瓦和俄罗斯（加里宁格勒、萨马拉、伏尔加格勒）的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "622a517e919a21515902322cf894a7f5ff6bb97ca3542babb0bf8a71177d00e0"}, "url": "/docs/compare/?release=9.2.16#9.2.16-348974ef78c63531", "source_url": "/docs/release/9.2.16/#id-1.11.6.13.5"}, {"db_id": "1cfca3d2934db698b31aff12cf0a4f90", "kind": "equivalent", "version": "9.1.21", "label": "9.1.21", "title": "把时区数据文件更新到 tzdata 2016c 版，涉及阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯（阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区）的夏令时法规变更，以及立陶宛、摩尔多瓦和俄罗斯（加里宁格勒、萨马拉、伏尔加格勒）的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "622a517e919a21515902322cf894a7f5ff6bb97ca3542babb0bf8a71177d00e0"}, "url": "/docs/compare/?release=9.1.21#9.1.21-348974ef78c63531", "source_url": "/docs/release/9.1.21/#id-1.11.6.8.5"}]}]}, {"date": "2016-02-11", "build": "9.3.11", "major": "9.3", "minor": 11, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.11", "eol_date": "2018-11-08", "date_text": "2016-02-11", "supported": false, "manual_url": "/docs/9.3/release-9-3-11.html", "source_url": "/docs/release/9.3.11/", "entry_count": 56, "placeholder": false, "content_hash": "7685ff9b3d3d4fa16bb1260f3fa04286c8b19eb5c024cc608603a55959e40c5b", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 56, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.3.9 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-9.html\" title=\"E.17. 版本 9.3.9\">第 E.17 节</a>。</p>", "compatibility_count": 0, "label": "9.3.11", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 3884, "support_days": -2883, "entries": [{"id": "9.3.11-f56bb4796f0084d4", "cves": ["CVE-2016-0773"], "html": "<p>修复正则表达式中的无限循环和缓冲区越界问题（Tom Lane）</p>\n<p>方括号表达式中非常大的字符范围在某些情况下可能导致无限循环，在另一些情况下可能导致内存覆写。（CVE-2016-0773）</p>", "text": "修复正则表达式中的无限循环和缓冲区越界问题（Tom Lane） 方括号表达式中非常大的字符范围在某些情况下可能导致无限循环，在另一些情况下可能导致内存覆写。（CVE-2016-0773）", "title": "修复正则表达式中的无限循环和缓冲区越界问题", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "eb0438a45957947108c61c598f04acd2ec453dd2b563c4193f035f6b8b92e868", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix infinite loops and buffer-overrun problems in regular expressions (Tom Lane) Very large character ranges in bracket expressions could cause infinite loops in some cases, and memory overwrites in other cases. (CVE-2016-0773)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/001", "db_id": "f82b2c278b85f75fb51729724ed1a13f", "patch_ids": [], "statement_hash": "86c3969d7d94649f2681aaabfba3eb2e2d707639975ebea74333022223b0914c", "relations": [{"rule": 2, "type": "equivalent", "target": "859232add61df95d2630e724ae0f4618", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86c3969d7d94649f2681aaabfba3eb2e2d707639975ebea74333022223b0914c"}}, {"rule": 2, "type": "equivalent", "target": "a209620754197e56fafec1ecd0cd9842", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86c3969d7d94649f2681aaabfba3eb2e2d707639975ebea74333022223b0914c"}}, {"rule": 2, "type": "equivalent", "target": "acbbe23ea65dd41f0174374de68d073f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86c3969d7d94649f2681aaabfba3eb2e2d707639975ebea74333022223b0914c"}}, {"rule": 2, "type": "equivalent", "target": "eb48871d4635001988ed54c5482d6ada", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86c3969d7d94649f2681aaabfba3eb2e2d707639975ebea74333022223b0914c"}}], "version": "9.3.11", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "acbbe23ea65dd41f0174374de68d073f", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "修复正则表达式中的无限循环和缓冲区越界问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86c3969d7d94649f2681aaabfba3eb2e2d707639975ebea74333022223b0914c"}, "url": "/docs/compare/?release=9.5.1#9.5.1-f56bb4796f0084d4", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "eb48871d4635001988ed54c5482d6ada", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复正则表达式中的无限循环和缓冲区越界问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86c3969d7d94649f2681aaabfba3eb2e2d707639975ebea74333022223b0914c"}, "url": "/docs/compare/?release=9.4.6#9.4.6-f56bb4796f0084d4", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "a209620754197e56fafec1ecd0cd9842", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复正则表达式中的无限循环和缓冲区越界问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86c3969d7d94649f2681aaabfba3eb2e2d707639975ebea74333022223b0914c"}, "url": "/docs/compare/?release=9.2.15#9.2.15-f56bb4796f0084d4", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "859232add61df95d2630e724ae0f4618", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复正则表达式中的无限循环和缓冲区越界问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86c3969d7d94649f2681aaabfba3eb2e2d707639975ebea74333022223b0914c"}, "url": "/docs/compare/?release=9.1.20#9.1.20-f56bb4796f0084d4", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-dc35983aaefb9fe6", "cves": [], "html": "<p>如果<code>postmaster.pid</code>文件被移除则执行立即关闭（Tom Lane）</p>\n<p>postmaster 现在大约每分钟检查一次<code>postmaster.pid</code>是否仍然存在且仍包含自己的 PID。如果不是，它会执行立即关闭，就像收到<span>SIGQUIT</span>一样。此变更的主要目的是确保失败的 buildfarm 运行无需人工干预即可被清理；同时也可在 DBA 强行删除<code>postmaster.pid</code>并启动新 postmaster 时限制不良影响。</p>", "text": "如果postmaster.pid文件被移除则执行立即关闭（Tom Lane） postmaster 现在大约每分钟检查一次postmaster.pid是否仍然存在且仍包含自己的 PID。如果不是，它会执行立即关闭，就像收到SIGQUIT一样。此变更的主要目的是确保失败的 buildfarm 运行无需人工干预即可被清理；同时也可在 DBA 强行删除postmaster.pid并启动新 postmaster 时限制不良影响。", "title": "如果postmaster.pid文件被移除则执行立即关闭", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "b25f3e8506b748424d055b38cd09c335842b7bb9db10bc083c210d5a909bbe0a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Perform an immediate shutdown if the postmaster.pid file is removed (Tom Lane) The postmaster now checks every minute or so that postmaster.pid is still there and still contains its own PID. If not, it performs an immediate shutdown, as though it had received SIGQUIT. The main motivation for this change is to ensure that failed buildfarm runs will get cleaned up without manual intervention; but it also serves to limit the bad effects if a DBA forcibly removes postmaster.pid and then starts a new postmaster.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/002", "db_id": "ffdaf0a425db308f390271495c6c3565", "patch_ids": [], "statement_hash": "a0c410ab7d8a05e1c8cee411dbf802fe7bfd23598c2a54b9d0a580962e3595e6", "relations": [{"rule": 2, "type": "equivalent", "target": "272049d3bf7c9032e75640faba9f3985", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0c410ab7d8a05e1c8cee411dbf802fe7bfd23598c2a54b9d0a580962e3595e6"}}, {"rule": 2, "type": "equivalent", "target": "5361516b0f1e8423be8f269da0090fdd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0c410ab7d8a05e1c8cee411dbf802fe7bfd23598c2a54b9d0a580962e3595e6"}}, {"rule": 2, "type": "equivalent", "target": "c55899e48d6baa7a17138919d6fc6f04", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0c410ab7d8a05e1c8cee411dbf802fe7bfd23598c2a54b9d0a580962e3595e6"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c55899e48d6baa7a17138919d6fc6f04", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "如果postmaster.pid文件被移除则执行立即关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0c410ab7d8a05e1c8cee411dbf802fe7bfd23598c2a54b9d0a580962e3595e6"}, "url": "/docs/compare/?release=9.4.6#9.4.6-dc35983aaefb9fe6", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "5361516b0f1e8423be8f269da0090fdd", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "如果postmaster.pid文件被移除则执行立即关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0c410ab7d8a05e1c8cee411dbf802fe7bfd23598c2a54b9d0a580962e3595e6"}, "url": "/docs/compare/?release=9.2.15#9.2.15-dc35983aaefb9fe6", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "272049d3bf7c9032e75640faba9f3985", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "如果postmaster.pid文件被移除则执行立即关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0c410ab7d8a05e1c8cee411dbf802fe7bfd23598c2a54b9d0a580962e3595e6"}, "url": "/docs/compare/?release=9.1.20#9.1.20-dc35983aaefb9fe6", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-627b9200a59daf00", "cves": [], "html": "<p>在<code>SERIALIZABLE</code>事务隔离模式下，插入期间的竞争条件可能导致漏掉串行化异常（Kevin Grittner, Thomas Munro）</p>", "text": "在SERIALIZABLE事务隔离模式下，插入期间的竞争条件可能导致漏掉串行化异常（Kevin Grittner, Thomas Munro）", "title": "在SERIALIZABLE事务隔离模式下，插入期间的竞争条件可能导致漏掉串行化异常", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "76cf8afad40e31058a865937e3e2d5ef6389bb9ac0deed30b6eaffaa2a439f8f", "section_path": ["变更"], "commit_groups": [], "identity_text": "In SERIALIZABLE transaction isolation mode, serialization anomalies could be missed due to race conditions during insertions (Kevin Grittner, Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/003", "db_id": "ff6b5b6dccde5b769c2f4ec14980302a", "patch_ids": [], "statement_hash": "01f9b440350ffa2262367a26f09d4e0eb75a5af7744835f7c9410c5b4e257e50", "relations": [{"rule": 2, "type": "equivalent", "target": "41b125da8cd3f335cd583eb8d442b9de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "01f9b440350ffa2262367a26f09d4e0eb75a5af7744835f7c9410c5b4e257e50"}}, {"rule": 2, "type": "equivalent", "target": "bf1e5cc52237c8a6dc3b1c9b350efb75", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "01f9b440350ffa2262367a26f09d4e0eb75a5af7744835f7c9410c5b4e257e50"}}, {"rule": 2, "type": "equivalent", "target": "cb94074deb3a1c356738172dfa31451e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "01f9b440350ffa2262367a26f09d4e0eb75a5af7744835f7c9410c5b4e257e50"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cb94074deb3a1c356738172dfa31451e", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "在SERIALIZABLE事务隔离模式下，插入期间的竞争条件可能导致漏掉串行化异常", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "01f9b440350ffa2262367a26f09d4e0eb75a5af7744835f7c9410c5b4e257e50"}, "url": "/docs/compare/?release=9.4.6#9.4.6-627b9200a59daf00", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "bf1e5cc52237c8a6dc3b1c9b350efb75", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "在SERIALIZABLE事务隔离模式下，插入期间的竞争条件可能导致漏掉串行化异常", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "01f9b440350ffa2262367a26f09d4e0eb75a5af7744835f7c9410c5b4e257e50"}, "url": "/docs/compare/?release=9.2.15#9.2.15-627b9200a59daf00", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "41b125da8cd3f335cd583eb8d442b9de", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "在SERIALIZABLE事务隔离模式下，插入期间的竞争条件可能导致漏掉串行化异常", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "01f9b440350ffa2262367a26f09d4e0eb75a5af7744835f7c9410c5b4e257e50"}, "url": "/docs/compare/?release=9.1.20#9.1.20-627b9200a59daf00", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-5a914425e0982ca6", "cves": [], "html": "<p>修复对非日志关系执行<code>ALTER TABLE ... SET TABLESPACE</code>时未发出适当 WAL 记录的问题（Michael Paquier、Andres Freund）</p>\n<p>尽管关系的数据是非日志的，但移动操作本身必须被记录，否则在备库提升为主库后该关系将不可访问。</p>", "text": "修复对非日志关系执行ALTER TABLE ... SET TABLESPACE时未发出适当 WAL 记录的问题（Michael Paquier、Andres Freund） 尽管关系的数据是非日志的，但移动操作本身必须被记录，否则在备库提升为主库后该关系将不可访问。", "title": "修复对非日志关系执行ALTER TABLE ... SET TABLESPACE时未发出适当 WAL 记录的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "15c2c0cd196a8b558c55c40a1f6a1eb4eac2f2f9ab363f06ae28c8f319233fd4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure to emit appropriate WAL records when doing ALTER TABLE ... SET TABLESPACE for unlogged relations (Michael Paquier, Andres Freund) Even though the relation's data is unlogged, the move must be logged or the relation will be inaccessible after a standby is promoted to master.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/004", "db_id": "0f0039ed91ae6f8fb3aa24a616d317e1", "patch_ids": [], "statement_hash": "0ffb2faa7228c5711a313dd1c073efa0d104442071d9d7b73c1157ff4c3a099c", "relations": [{"rule": 2, "type": "equivalent", "target": "28340bc6c292ea1428474c8f4fce9e17", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ffb2faa7228c5711a313dd1c073efa0d104442071d9d7b73c1157ff4c3a099c"}}, {"rule": 2, "type": "equivalent", "target": "c6f84f4ea4d59a4fb5b6cd29292e6760", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ffb2faa7228c5711a313dd1c073efa0d104442071d9d7b73c1157ff4c3a099c"}}, {"rule": 2, "type": "equivalent", "target": "e075c12fece44b4897ed9267d2a70e98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ffb2faa7228c5711a313dd1c073efa0d104442071d9d7b73c1157ff4c3a099c"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c6f84f4ea4d59a4fb5b6cd29292e6760", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复对非日志关系执行ALTER TABLE ... SET TABLESPACE时未发出适当 WAL 记录的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ffb2faa7228c5711a313dd1c073efa0d104442071d9d7b73c1157ff4c3a099c"}, "url": "/docs/compare/?release=9.4.6#9.4.6-5a914425e0982ca6", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "e075c12fece44b4897ed9267d2a70e98", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复对非日志关系执行ALTER TABLE ... SET TABLESPACE时未发出适当 WAL 记录的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ffb2faa7228c5711a313dd1c073efa0d104442071d9d7b73c1157ff4c3a099c"}, "url": "/docs/compare/?release=9.2.15#9.2.15-5a914425e0982ca6", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "28340bc6c292ea1428474c8f4fce9e17", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复对非日志关系执行ALTER TABLE ... SET TABLESPACE时未发出适当 WAL 记录的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ffb2faa7228c5711a313dd1c073efa0d104442071d9d7b73c1157ff4c3a099c"}, "url": "/docs/compare/?release=9.1.20#9.1.20-5a914425e0982ca6", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-7d00074d2b1f6521", "cves": [], "html": "<p>修复崩溃恢复结束时非日志关系可能被错误初始化的问题（Andres Freund, Michael Paquier）</p>", "text": "修复崩溃恢复结束时非日志关系可能被错误初始化的问题（Andres Freund, Michael Paquier）", "title": "修复崩溃恢复结束时非日志关系可能被错误初始化的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "effc85520d655bdb2d00064b99e845e4a1d6099e0b7ede9c6bd7d8061485b605", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible misinitialization of unlogged relations at the end of crash recovery (Andres Freund, Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/005", "db_id": "64d7ff18ffc9d038fa8cc76780d8bf24", "patch_ids": [], "statement_hash": "86e2fc3a9f78f335c9cbadbd78d4e8c15550892605a92711d01b5e4898c86914", "relations": [{"rule": 2, "type": "equivalent", "target": "170f3da8f8173b7719b688440db80a85", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86e2fc3a9f78f335c9cbadbd78d4e8c15550892605a92711d01b5e4898c86914"}}, {"rule": 2, "type": "equivalent", "target": "2439414dd18669a45c6a2b6f20bbb42c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86e2fc3a9f78f335c9cbadbd78d4e8c15550892605a92711d01b5e4898c86914"}}, {"rule": 2, "type": "equivalent", "target": "3a5254aa042e5d5728a4126c6f0e215f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86e2fc3a9f78f335c9cbadbd78d4e8c15550892605a92711d01b5e4898c86914"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2439414dd18669a45c6a2b6f20bbb42c", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复崩溃恢复结束时未日志关系可能初始化不当的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86e2fc3a9f78f335c9cbadbd78d4e8c15550892605a92711d01b5e4898c86914"}, "url": "/docs/compare/?release=9.4.6#9.4.6-0f197d99dbaa2f5b", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "3a5254aa042e5d5728a4126c6f0e215f", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复崩溃恢复结束时非日志关系可能被错误初始化的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86e2fc3a9f78f335c9cbadbd78d4e8c15550892605a92711d01b5e4898c86914"}, "url": "/docs/compare/?release=9.2.15#9.2.15-7d00074d2b1f6521", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "170f3da8f8173b7719b688440db80a85", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复崩溃恢复结束时非日志关系可能被错误初始化的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86e2fc3a9f78f335c9cbadbd78d4e8c15550892605a92711d01b5e4898c86914"}, "url": "/docs/compare/?release=9.1.20#9.1.20-7d00074d2b1f6521", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-3f49b12e7d866114", "cves": [], "html": "<p>确保 walsender 槽在重用时被完全重新初始化（Magnus Hagander）</p>", "text": "确保 walsender 槽在重用时被完全重新初始化（Magnus Hagander）", "title": "确保 walsender 槽在重用时被完全重新初始化", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "746c092897e7d69e4818a0449d10dfc78695ad467c482ead81cfb0fc6fb27a60", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure walsender slots are fully re-initialized when being re-used (Magnus Hagander)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/006", "db_id": "4e327958d19f52a47d4f9f3fda9d783f", "patch_ids": [], "statement_hash": "14b2029d574aa8fb2980b4f3332644380e5fac871dc3d03773d9ebd013e25265", "relations": [{"rule": 2, "type": "equivalent", "target": "7e7a2a0cb37bbd66773455f1d88253e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14b2029d574aa8fb2980b4f3332644380e5fac871dc3d03773d9ebd013e25265"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7e7a2a0cb37bbd66773455f1d88253e9", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "确保 walsender 槽位在重用时被完全重新初始化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14b2029d574aa8fb2980b4f3332644380e5fac871dc3d03773d9ebd013e25265"}, "url": "/docs/compare/?release=9.4.6#9.4.6-05ad58e4481e52e6", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}]}, {"id": "9.3.11-a077a4b2e76cbe3d", "cves": [], "html": "<p>修复<code>ALTER COLUMN TYPE</code>以正确重建继承的检查约束（Tom Lane）</p>", "text": "修复ALTER COLUMN TYPE以正确重建继承的检查约束（Tom Lane）", "title": "修复ALTER COLUMN TYPE以正确重建继承的检查约束", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "ef5317945f98a76f49161145c192462cef15104cb9b7b68ca4e71dc9a8c9432a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ALTER COLUMN TYPE to reconstruct inherited check constraints properly (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/007", "db_id": "1bdd76097ef078857fb41def0bd75bd6", "patch_ids": [], "statement_hash": "23f0912e7f0303040b187688c299fd74787f59f55c113663ddfeb2a201d70dd6", "relations": [{"rule": 2, "type": "equivalent", "target": "45cfe30788f885758f38745525f50b3b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "23f0912e7f0303040b187688c299fd74787f59f55c113663ddfeb2a201d70dd6"}}, {"rule": 2, "type": "equivalent", "target": "4a06a88e4e8c3f9a451ea0200472a3f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "23f0912e7f0303040b187688c299fd74787f59f55c113663ddfeb2a201d70dd6"}}, {"rule": 2, "type": "equivalent", "target": "c8bc24b69b1ff3648fed67adef978940", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "23f0912e7f0303040b187688c299fd74787f59f55c113663ddfeb2a201d70dd6"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "45cfe30788f885758f38745525f50b3b", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 ALTER COLUMN TYPE 使其正确重建继承的检查约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "23f0912e7f0303040b187688c299fd74787f59f55c113663ddfeb2a201d70dd6"}, "url": "/docs/compare/?release=9.4.6#9.4.6-59c03954e7f82f9a", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "c8bc24b69b1ff3648fed67adef978940", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复ALTER COLUMN TYPE以正确重建继承的检查约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "23f0912e7f0303040b187688c299fd74787f59f55c113663ddfeb2a201d70dd6"}, "url": "/docs/compare/?release=9.2.15#9.2.15-a077a4b2e76cbe3d", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "4a06a88e4e8c3f9a451ea0200472a3f9", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复ALTER COLUMN TYPE以正确重建继承的检查约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "23f0912e7f0303040b187688c299fd74787f59f55c113663ddfeb2a201d70dd6"}, "url": "/docs/compare/?release=9.1.20#9.1.20-a077a4b2e76cbe3d", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-37b1036d3ad3fdc7", "cves": [], "html": "<p>修复<code>REASSIGN OWNED</code>以正确更改组合类型的所有权（Álvaro Herrera）</p>", "text": "修复REASSIGN OWNED以正确更改组合类型的所有权（Álvaro Herrera）", "title": "修复REASSIGN OWNED以正确更改组合类型的所有权", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "5f2040824f1b6a857f91d4317a97ed918fe2dd942b41d8b45fcfe8bd6571359e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix REASSIGN OWNED to change ownership of composite types properly (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/008", "db_id": "9025484a5068b2028278c8ed4ba79032", "patch_ids": [], "statement_hash": "4ac60f65020454bb1ddd88e26fd0adf9b13b3c821d874bcdd2897dad420bddce", "relations": [{"rule": 2, "type": "equivalent", "target": "43cfa3f826d212492e3e6b88a2f9871a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ac60f65020454bb1ddd88e26fd0adf9b13b3c821d874bcdd2897dad420bddce"}}, {"rule": 2, "type": "equivalent", "target": "8c3b93c4658ee989d5692699c55d7d1f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ac60f65020454bb1ddd88e26fd0adf9b13b3c821d874bcdd2897dad420bddce"}}, {"rule": 2, "type": "equivalent", "target": "a6a57f2596a162c34b1a9798613f50f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ac60f65020454bb1ddd88e26fd0adf9b13b3c821d874bcdd2897dad420bddce"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "43cfa3f826d212492e3e6b88a2f9871a", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 REASSIGN OWNED 使其正确更改组合类型的所有权", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ac60f65020454bb1ddd88e26fd0adf9b13b3c821d874bcdd2897dad420bddce"}, "url": "/docs/compare/?release=9.4.6#9.4.6-50b02bd81715a2a0", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "a6a57f2596a162c34b1a9798613f50f8", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复REASSIGN OWNED以正确更改组合类型的所有权", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ac60f65020454bb1ddd88e26fd0adf9b13b3c821d874bcdd2897dad420bddce"}, "url": "/docs/compare/?release=9.2.15#9.2.15-37b1036d3ad3fdc7", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "8c3b93c4658ee989d5692699c55d7d1f", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复REASSIGN OWNED以正确更改组合类型的所有权", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ac60f65020454bb1ddd88e26fd0adf9b13b3c821d874bcdd2897dad420bddce"}, "url": "/docs/compare/?release=9.1.20#9.1.20-37b1036d3ad3fdc7", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-c7bc79180b3cb879", "cves": [], "html": "<p>修复<code>REASSIGN OWNED</code>和<code>ALTER OWNER</code>在更改数据类型、外部数据包装器或外部服务器的所有者时正确更新已授权权限列表的问题（Bruce Momjian, Álvaro Herrera）</p>", "text": "修复REASSIGN OWNED和ALTER OWNER在更改数据类型、外部数据包装器或外部服务器的所有者时正确更新已授权权限列表的问题（Bruce Momjian, Álvaro Herrera）", "title": "修复REASSIGN OWNED和ALTER OWNER在更改数据类型、外部数据包装器或外部服务器的所有者时正确更新已授权权限列表的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "f8c3c9f34d9533f12bd7788f7d1d54a7accc79114da913c63f5578c567b06786", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix REASSIGN OWNED and ALTER OWNER to correctly update granted-permissions lists when changing owners of data types, foreign data wrappers, or foreign servers (Bruce Momjian, Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/009", "db_id": "fdfc2dbe8f2d1c6b202ef223fd277fed", "patch_ids": [], "statement_hash": "616f07df1899da758663e9ac8b637f9149b4073657e3d6675a0c3a6653ab807f", "relations": [{"rule": 2, "type": "equivalent", "target": "5167234bbf1ccb52ee07fe8ff3e6684e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "616f07df1899da758663e9ac8b637f9149b4073657e3d6675a0c3a6653ab807f"}}, {"rule": 2, "type": "equivalent", "target": "9b3b19319db1fa74d544114862cf4ed1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "616f07df1899da758663e9ac8b637f9149b4073657e3d6675a0c3a6653ab807f"}}, {"rule": 2, "type": "equivalent", "target": "b09183eb21b0475b089deb1274c9f2a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "616f07df1899da758663e9ac8b637f9149b4073657e3d6675a0c3a6653ab807f"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9b3b19319db1fa74d544114862cf4ed1", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 REASSIGN OWNED 和 ALTER OWNER，使其在更改数据类型、外部数据包装器或外部服务器的所有者时正确更新已授予权限列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "616f07df1899da758663e9ac8b637f9149b4073657e3d6675a0c3a6653ab807f"}, "url": "/docs/compare/?release=9.4.6#9.4.6-d4d096e577ddb143", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "b09183eb21b0475b089deb1274c9f2a4", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复REASSIGN OWNED和ALTER OWNER在更改数据类型、外部数据包装器或外部服务器的所有者时正确更新已授权权限列表的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "616f07df1899da758663e9ac8b637f9149b4073657e3d6675a0c3a6653ab807f"}, "url": "/docs/compare/?release=9.2.15#9.2.15-c7bc79180b3cb879", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "5167234bbf1ccb52ee07fe8ff3e6684e", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复REASSIGN OWNED和ALTER OWNER在更改数据类型、外部数据包装器或外部服务器的所有者时正确更新已授权权限列表的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "616f07df1899da758663e9ac8b637f9149b4073657e3d6675a0c3a6653ab807f"}, "url": "/docs/compare/?release=9.1.20#9.1.20-c7bc79180b3cb879", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-0d75369201d3b808", "cves": [], "html": "<p>修复<code>REASSIGN OWNED</code>忽略外部用户映射而不是报错的问题（Álvaro Herrera）</p>", "text": "修复REASSIGN OWNED忽略外部用户映射而不是报错的问题（Álvaro Herrera）", "title": "修复REASSIGN OWNED忽略外部用户映射而不是报错的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "f2f9a115104e50e9df18e54449f5c4c079487ca0b507d7cfae66efae4ac05b3b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix REASSIGN OWNED to ignore foreign user mappings, rather than fail (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/010", "db_id": "3aaf0a5c22bbe317858a83384ccea661", "patch_ids": [], "statement_hash": "2637fabb30f8d4629ef580972da7dacb5d68007ff73cfaa7bce0f1fc77312355", "relations": [{"rule": 2, "type": "equivalent", "target": "3d700258dae1790ee23d4ae4c97e2605", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2637fabb30f8d4629ef580972da7dacb5d68007ff73cfaa7bce0f1fc77312355"}}, {"rule": 2, "type": "equivalent", "target": "4a4d7158c2195dc9cdb83d2abac8cb48", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2637fabb30f8d4629ef580972da7dacb5d68007ff73cfaa7bce0f1fc77312355"}}, {"rule": 2, "type": "equivalent", "target": "c9060f0fd9ec6743df500bd14f360fc2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2637fabb30f8d4629ef580972da7dacb5d68007ff73cfaa7bce0f1fc77312355"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3d700258dae1790ee23d4ae4c97e2605", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 REASSIGN OWNED 使其忽略外部用户映射而不是失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2637fabb30f8d4629ef580972da7dacb5d68007ff73cfaa7bce0f1fc77312355"}, "url": "/docs/compare/?release=9.4.6#9.4.6-8648c44d0dd4625e", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "c9060f0fd9ec6743df500bd14f360fc2", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复REASSIGN OWNED忽略外部用户映射而不是报错的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2637fabb30f8d4629ef580972da7dacb5d68007ff73cfaa7bce0f1fc77312355"}, "url": "/docs/compare/?release=9.2.15#9.2.15-0d75369201d3b808", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "4a4d7158c2195dc9cdb83d2abac8cb48", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复REASSIGN OWNED忽略外部用户映射而不是报错的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2637fabb30f8d4629ef580972da7dacb5d68007ff73cfaa7bce0f1fc77312355"}, "url": "/docs/compare/?release=9.1.20#9.1.20-0d75369201d3b808", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-ac44129713c36e1a", "cves": [], "html": "<p>修复对可更新视图执行查询重写后可能崩溃的问题（Stephen Frost）</p>", "text": "修复对可更新视图执行查询重写后可能崩溃的问题（Stephen Frost）", "title": "修复对可更新视图执行查询重写后可能崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "c2938ac1d74bbd1b4c508bf2a53a77930863e928a063bd38e96a0e0cb07464a5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible crash after doing query rewrite for an updatable view (Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/011", "db_id": "b3e9ea2c42ce0b3eb98602d2d3d41ddc", "patch_ids": [], "statement_hash": "513203cc89720c76bdc7bfb435dd4f93a2ddfcc074b88fa9ef96973dff8341d9", "relations": [{"rule": 2, "type": "equivalent", "target": "95269a7b562c7950b596e56d273a367b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "513203cc89720c76bdc7bfb435dd4f93a2ddfcc074b88fa9ef96973dff8341d9"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "95269a7b562c7950b596e56d273a367b", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复对可更新视图进行查询重写后可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "513203cc89720c76bdc7bfb435dd4f93a2ddfcc074b88fa9ef96973dff8341d9"}, "url": "/docs/compare/?release=9.4.6#9.4.6-28122c4d01088862", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}]}, {"id": "9.3.11-d37835be5166d57f", "cves": [], "html": "<p>修复规划器对 <code>LATERAL</code> 引用的处理（Tom Lane）</p>\n<p>这修复了一些导致 <span>“<span>failed to build any N-way joins</span>”</span> 或 <span>“<span>could not devise a query plan</span>”</span> 规划器错误的极端情况。</p>", "text": "修复规划器对 LATERAL 引用的处理（Tom Lane） 这修复了一些导致 “failed to build any N-way joins” 或 “could not devise a query plan” 规划器错误的极端情况。", "title": "修复规划器对 LATERAL 引用的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "dad4dfe52b9a8dea2a5c7d6484aea58fa12db72fd8cc77036340127e15835c52", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner's handling of LATERAL references (Tom Lane) This fixes some corner cases that led to failed to build any N-way joins or could not devise a query plan planner failures.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/012", "db_id": "7bdc31d2ac2813a1a07bba68448165e9", "patch_ids": [], "statement_hash": "bbfbeb87fd7e5830ab3494f47bdbeee0374ad21f57bfa3b1ca5cf4a0eab87a7c", "relations": [{"rule": 2, "type": "equivalent", "target": "e1b87ea2312f798a96b9fabd76e0ec3f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbfbeb87fd7e5830ab3494f47bdbeee0374ad21f57bfa3b1ca5cf4a0eab87a7c"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e1b87ea2312f798a96b9fabd76e0ec3f", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复规划器对 LATERAL 引用的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbfbeb87fd7e5830ab3494f47bdbeee0374ad21f57bfa3b1ca5cf4a0eab87a7c"}, "url": "/docs/compare/?release=9.4.6#9.4.6-d37835be5166d57f", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}]}, {"id": "9.3.11-b009bbaf11bf7b65", "cves": [], "html": "<p>当 GIN 索引的内部统计信息严重过时时，增加更多针对规划器错误代价估计的防护（Tom Lane）</p>", "text": "当 GIN 索引的内部统计信息严重过时时，增加更多针对规划器错误代价估计的防护（Tom Lane）", "title": "当 GIN 索引的内部统计信息严重过时时，增加更多针对规划器错误代价估计的防护", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "c7510ff8b3e83876f12137b5b1fe70a00a820f0036525ee4403049b9dc1561d9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add more defenses against bad planner cost estimates for GIN index scans when the index's internal statistics are very out-of-date (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/013", "db_id": "ba87f769b3b5f833fa25584e21611e99", "patch_ids": [], "statement_hash": "04263a5e93039d2670d153a0b81ece4d6cde4158286224ba1364160d8aba2521", "relations": [{"rule": 2, "type": "equivalent", "target": "0f279c95c32a2d0661bc28d96a0131df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04263a5e93039d2670d153a0b81ece4d6cde4158286224ba1364160d8aba2521"}}, {"rule": 2, "type": "equivalent", "target": "81949f1f514319a00c14fe158ea6a03a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04263a5e93039d2670d153a0b81ece4d6cde4158286224ba1364160d8aba2521"}}, {"rule": 2, "type": "equivalent", "target": "e305dd9d7b02f2f8c9f68c97ad50ca42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04263a5e93039d2670d153a0b81ece4d6cde4158286224ba1364160d8aba2521"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0f279c95c32a2d0661bc28d96a0131df", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "当 GIN 索引的内部统计信息非常过时时，为其扫描的错误规划器代价估计增加更多防御", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04263a5e93039d2670d153a0b81ece4d6cde4158286224ba1364160d8aba2521"}, "url": "/docs/compare/?release=9.4.6#9.4.6-1261b4bf8371c738", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "e305dd9d7b02f2f8c9f68c97ad50ca42", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "当 GIN 索引的内部统计信息严重过时时，增加更多针对规划器错误代价估计的防护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04263a5e93039d2670d153a0b81ece4d6cde4158286224ba1364160d8aba2521"}, "url": "/docs/compare/?release=9.2.15#9.2.15-b009bbaf11bf7b65", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "81949f1f514319a00c14fe158ea6a03a", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "当 GIN 索引的内部统计信息严重过时时，增加更多针对规划器错误代价估计的防护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04263a5e93039d2670d153a0b81ece4d6cde4158286224ba1364160d8aba2521"}, "url": "/docs/compare/?release=9.1.20#9.1.20-b009bbaf11bf7b65", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-45c3d647a720fc94", "cves": [], "html": "<p>使规划器能够处理由索引顾问插件建议的假设性 GIN 索引（Julien Rouhaud）</p>", "text": "使规划器能够处理由索引顾问插件建议的假设性 GIN 索引（Julien Rouhaud）", "title": "使规划器能够处理由索引顾问插件建议的假设性 GIN 索引", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "265957971f4f558957d58f3b936d9b66440f7f8d6b586c3c81c7961face2691a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make planner cope with hypothetical GIN indexes suggested by an index advisor plug-in (Julien Rouhaud)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/014", "db_id": "a9e6e360d2453ea0aad3366eb5481297", "patch_ids": [], "statement_hash": "73c45150f6acae55c66df53a294c863df1dbea9dfa21848d2383b4e70c93530f", "relations": [{"rule": 2, "type": "equivalent", "target": "82077afd34ef4072810c019617838b26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "73c45150f6acae55c66df53a294c863df1dbea9dfa21848d2383b4e70c93530f"}}, {"rule": 2, "type": "equivalent", "target": "de32f3588b2ad064dca9e27fc56fd06d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "73c45150f6acae55c66df53a294c863df1dbea9dfa21848d2383b4e70c93530f"}}, {"rule": 2, "type": "equivalent", "target": "e2e461e6d19df39a870d1ec1fd662df3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "73c45150f6acae55c66df53a294c863df1dbea9dfa21848d2383b4e70c93530f"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "82077afd34ef4072810c019617838b26", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "使规划器能处理索引顾问插件建议的假想 GIN 索引", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "73c45150f6acae55c66df53a294c863df1dbea9dfa21848d2383b4e70c93530f"}, "url": "/docs/compare/?release=9.4.6#9.4.6-3433971eac1d6227", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "de32f3588b2ad064dca9e27fc56fd06d", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "使规划器能够处理由索引顾问插件建议的假设性 GIN 索引", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "73c45150f6acae55c66df53a294c863df1dbea9dfa21848d2383b4e70c93530f"}, "url": "/docs/compare/?release=9.2.15#9.2.15-45c3d647a720fc94", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "e2e461e6d19df39a870d1ec1fd662df3", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "使规划器能够处理由索引顾问插件建议的假设性 GIN 索引", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "73c45150f6acae55c66df53a294c863df1dbea9dfa21848d2383b4e70c93530f"}, "url": "/docs/compare/?release=9.1.20#9.1.20-45c3d647a720fc94", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-5e4e98d2508ebf7c", "cves": [], "html": "<p>加快<code>EXPLAIN</code>和规则转储中唯一表别名的生成速度，并确保生成的别名不超过<code>NAMEDATALEN</code>（Tom Lane）</p>", "text": "加快EXPLAIN和规则转储中唯一表别名的生成速度，并确保生成的别名不超过NAMEDATALEN（Tom Lane）", "title": "加快EXPLAIN和规则转储中唯一表别名的生成速度，并确保生成的别名不超过NAMEDATALEN", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "d24dc1f17a25958bf227ecf507c022684d3476570339ee9d66a10d516488effe", "section_path": ["变更"], "commit_groups": [], "identity_text": "Speed up generation of unique table aliases in EXPLAIN and rule dumping, and ensure that generated aliases do not exceed NAMEDATALEN (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/015", "db_id": "37a88fb6c1cb19b20df54b17bc871710", "patch_ids": [], "statement_hash": "ffe2dc752294f7f3f3418ec829bcee8f4e1cb53f0bdc8092d4b064523e18b5f8", "relations": [{"rule": 2, "type": "equivalent", "target": "c5f846ef2915a0a17f3217be11f3d120", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ffe2dc752294f7f3f3418ec829bcee8f4e1cb53f0bdc8092d4b064523e18b5f8"}}], "version": "9.3.11", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c5f846ef2915a0a17f3217be11f3d120", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "加速 EXPLAIN 和规则转储中唯一表别名的生成，并确保生成的别名不超过 NAMEDATALEN", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ffe2dc752294f7f3f3418ec829bcee8f4e1cb53f0bdc8092d4b064523e18b5f8"}, "url": "/docs/compare/?release=9.4.6#9.4.6-8e58b7ae4aace536", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}]}, {"id": "9.3.11-1b0ea26a781e542e", "cves": [], "html": "<p>修复<code>ROW()</code>和<code>VALUES()</code>列表中整行 Var 的转储问题（Tom Lane）</p>", "text": "修复ROW()和VALUES()列表中整行 Var 的转储问题（Tom Lane）", "title": "修复ROW()和VALUES()列表中整行 Var 的转储问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "39ebf05775b62edea83ef93cd93e92ec1800b7c113dbee5d8fb609a641ac794b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix dumping of whole-row Vars in ROW() and VALUES() lists (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/016", "db_id": "5bdc19a42f438197d57dbc69fed4f6ff", "patch_ids": [], "statement_hash": "8dd46726a9ed4a1dc09fbb8c78587721848cee16fe4e42baf45e1b38e2caca3b", "relations": [{"rule": 2, "type": "equivalent", "target": "05bbd5dd73a99ff0606527f0c5f2a81a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8dd46726a9ed4a1dc09fbb8c78587721848cee16fe4e42baf45e1b38e2caca3b"}}, {"rule": 2, "type": "equivalent", "target": "1318d06dfff58b1b58ed513ade754a1e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8dd46726a9ed4a1dc09fbb8c78587721848cee16fe4e42baf45e1b38e2caca3b"}}, {"rule": 2, "type": "equivalent", "target": "c6068508f3be0f5db9055e6f5c6c19dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8dd46726a9ed4a1dc09fbb8c78587721848cee16fe4e42baf45e1b38e2caca3b"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "05bbd5dd73a99ff0606527f0c5f2a81a", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 ROW() 和 VALUES() 列表中整行 Var 的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8dd46726a9ed4a1dc09fbb8c78587721848cee16fe4e42baf45e1b38e2caca3b"}, "url": "/docs/compare/?release=9.4.6#9.4.6-a640c2833a255b32", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "1318d06dfff58b1b58ed513ade754a1e", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复ROW()和VALUES()列表中整行 Var 的转储问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8dd46726a9ed4a1dc09fbb8c78587721848cee16fe4e42baf45e1b38e2caca3b"}, "url": "/docs/compare/?release=9.2.15#9.2.15-1b0ea26a781e542e", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "c6068508f3be0f5db9055e6f5c6c19dd", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复ROW()和VALUES()列表中整行 Var 的转储问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8dd46726a9ed4a1dc09fbb8c78587721848cee16fe4e42baf45e1b38e2caca3b"}, "url": "/docs/compare/?release=9.1.20#9.1.20-1b0ea26a781e542e", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-0cbc3b4a6cd8a49e", "cves": [], "html": "<p>修复<code>numeric</code>除法中可能出现的内部溢出（Dean Rasheed）</p>", "text": "修复numeric除法中可能出现的内部溢出（Dean Rasheed）", "title": "修复numeric除法中可能出现的内部溢出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "492b087f1cfc8bcc99ebceb3d6d47c55ce523851519fcca3c43d9c08cf891c4d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible internal overflow in numeric division (Dean Rasheed)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/017", "db_id": "850111e9a2c79f690d5cf1d90bf208f1", "patch_ids": [], "statement_hash": "48908b913f749a6623b7ec3d9c4ed0ab04ac432bda3225f96f030591d2acebdb", "relations": [{"rule": 2, "type": "equivalent", "target": "76b2edad38a2983906ca94c72c39a891", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48908b913f749a6623b7ec3d9c4ed0ab04ac432bda3225f96f030591d2acebdb"}}, {"rule": 2, "type": "equivalent", "target": "870daffe63d191d7f29e9a8dfd59b24a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48908b913f749a6623b7ec3d9c4ed0ab04ac432bda3225f96f030591d2acebdb"}}, {"rule": 2, "type": "equivalent", "target": "e6e02450415d40d55c6e2ee3e634f42a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48908b913f749a6623b7ec3d9c4ed0ab04ac432bda3225f96f030591d2acebdb"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e6e02450415d40d55c6e2ee3e634f42a", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 numeric 除法中可能的内部溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48908b913f749a6623b7ec3d9c4ed0ab04ac432bda3225f96f030591d2acebdb"}, "url": "/docs/compare/?release=9.4.6#9.4.6-55bdd2ba2c7960f3", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "870daffe63d191d7f29e9a8dfd59b24a", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复numeric除法中可能出现的内部溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48908b913f749a6623b7ec3d9c4ed0ab04ac432bda3225f96f030591d2acebdb"}, "url": "/docs/compare/?release=9.2.15#9.2.15-0cbc3b4a6cd8a49e", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "76b2edad38a2983906ca94c72c39a891", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复numeric除法中可能出现的内部溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48908b913f749a6623b7ec3d9c4ed0ab04ac432bda3225f96f030591d2acebdb"}, "url": "/docs/compare/?release=9.1.20#9.1.20-0cbc3b4a6cd8a49e", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-b7701ff7f698f0fe", "cves": [], "html": "<p>修复正则表达式先行约束中括号内限制的执行（Tom Lane）</p>\n<p>根据手册，先行约束不允许包含反向引用，且其中的括号始终被视为非捕获括号。但代码未能正确处理括号子表达式内的这些情况，会给出意外的结果。</p>", "text": "修复正则表达式先行约束中括号内限制的执行（Tom Lane） 根据手册，先行约束不允许包含反向引用，且其中的括号始终被视为非捕获括号。但代码未能正确处理括号子表达式内的这些情况，会给出意外的结果。", "title": "修复正则表达式先行约束中括号内限制的执行", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "4254b0e26450f11ffb4c5d0c4aa1c5fa906c4cd93fadfa6c65efbfab7120890d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix enforcement of restrictions inside parentheses within regular expression lookahead constraints (Tom Lane) Lookahead constraints aren't allowed to contain backrefs, and parentheses within them are always considered non-capturing, according to the manual. However, the code failed to handle these cases properly inside a parenthesized subexpression, and would give unexpected results.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/018", "db_id": "d41c612b765d8250a4cb87f1e3f331ce", "patch_ids": [], "statement_hash": "95668fcee284dc6f5ce15ec59115c1adc63bf0683d92359d1b8b5b899eae9d5d", "relations": [{"rule": 2, "type": "equivalent", "target": "9617e26480065522fa3f78e9229652ee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95668fcee284dc6f5ce15ec59115c1adc63bf0683d92359d1b8b5b899eae9d5d"}}, {"rule": 2, "type": "equivalent", "target": "a40490aafd342d8960ede34951e7c749", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95668fcee284dc6f5ce15ec59115c1adc63bf0683d92359d1b8b5b899eae9d5d"}}, {"rule": 2, "type": "equivalent", "target": "bfec6c594f480e5fdd6220e1c1de14f1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95668fcee284dc6f5ce15ec59115c1adc63bf0683d92359d1b8b5b899eae9d5d"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bfec6c594f480e5fdd6220e1c1de14f1", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复正则表达式先行约束中括号内限制的执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95668fcee284dc6f5ce15ec59115c1adc63bf0683d92359d1b8b5b899eae9d5d"}, "url": "/docs/compare/?release=9.4.6#9.4.6-b7701ff7f698f0fe", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "a40490aafd342d8960ede34951e7c749", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复正则表达式先行约束中括号内限制的执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95668fcee284dc6f5ce15ec59115c1adc63bf0683d92359d1b8b5b899eae9d5d"}, "url": "/docs/compare/?release=9.2.15#9.2.15-b7701ff7f698f0fe", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "9617e26480065522fa3f78e9229652ee", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复正则表达式先行约束中括号内限制的执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95668fcee284dc6f5ce15ec59115c1adc63bf0683d92359d1b8b5b899eae9d5d"}, "url": "/docs/compare/?release=9.1.20#9.1.20-b7701ff7f698f0fe", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-c1ec7b0dad9afdd0", "cves": [], "html": "<p>将正则表达式转换为索引扫描边界时，可能从包含向前看约束的正则表达式生成错误边界（Tom Lane）</p>", "text": "将正则表达式转换为索引扫描边界时，可能从包含向前看约束的正则表达式生成错误边界（Tom Lane）", "title": "将正则表达式转换为索引扫描边界时，可能从包含向前看约束的正则表达式生成错误边界", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "658d2855fc1ca8afb49b003ff646dbd95058f4c6f010ce5d28d0e4e460df930e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Conversion of regular expressions to indexscan bounds could produce incorrect bounds from regexps containing lookahead constraints (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/019", "db_id": "95151408ba1ed314c79c478f111070eb", "patch_ids": [], "statement_hash": "d31a3a9a4ce2a64448176075466c01e49a36d1af492041b99f16bd00726a30fa", "relations": [{"rule": 2, "type": "equivalent", "target": "07bb6416b9ff04c6b8920f6390a9b454", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d31a3a9a4ce2a64448176075466c01e49a36d1af492041b99f16bd00726a30fa"}}, {"rule": 2, "type": "equivalent", "target": "153decd14a48f13c2d5478fd9d2e3087", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d31a3a9a4ce2a64448176075466c01e49a36d1af492041b99f16bd00726a30fa"}}, {"rule": 2, "type": "equivalent", "target": "1f6a8fc785e35fd9f2fb6bcf86a02da0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d31a3a9a4ce2a64448176075466c01e49a36d1af492041b99f16bd00726a30fa"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "153decd14a48f13c2d5478fd9d2e3087", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "把正则表达式转换为索引扫描边界时，可能从包含先行约束的正则表达式产生错误的边界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d31a3a9a4ce2a64448176075466c01e49a36d1af492041b99f16bd00726a30fa"}, "url": "/docs/compare/?release=9.4.6#9.4.6-a6de31ebddea75db", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "1f6a8fc785e35fd9f2fb6bcf86a02da0", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "将正则表达式转换为索引扫描边界时，可能从包含向前看约束的正则表达式生成错误边界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d31a3a9a4ce2a64448176075466c01e49a36d1af492041b99f16bd00726a30fa"}, "url": "/docs/compare/?release=9.2.15#9.2.15-c1ec7b0dad9afdd0", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "07bb6416b9ff04c6b8920f6390a9b454", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "将正则表达式转换为索引扫描边界时，可能从包含向前看约束的正则表达式生成错误边界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d31a3a9a4ce2a64448176075466c01e49a36d1af492041b99f16bd00726a30fa"}, "url": "/docs/compare/?release=9.1.20#9.1.20-c1ec7b0dad9afdd0", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-82d8694e58be71f9", "cves": ["CVE-2007-4772"], "html": "<p>修复正则表达式编译器使其处理约束弧构成的环（Tom Lane）</p>\n<p>为 CVE-2007-4772 添加的代码既不完整——未能处理涉及多个状态的环——又不正确——可能导致断言失败（不过在非断言构建中似乎没有不良后果）。多状态环会使编译器一直运行，直到查询被取消或达到状态数过多的错误条件。</p>", "text": "修复正则表达式编译器使其处理约束弧构成的环（Tom Lane） 为 CVE-2007-4772 添加的代码既不完整——未能处理涉及多个状态的环——又不正确——可能导致断言失败（不过在非断言构建中似乎没有不良后果）。多状态环会使编译器一直运行，直到查询被取消或达到状态数过多的错误条件。", "title": "修复正则表达式编译器使其处理约束弧构成的环", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "fe426a2975f0b0778ee2d8eefaf0b7e18927db9731c09b39b26663bf28960fe6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix regular-expression compiler to handle loops of constraint arcs (Tom Lane) The code added for CVE-2007-4772 was both incomplete, in that it didn't handle loops involving more than one state, and incorrect, in that it could cause assertion failures (though there seem to be no bad consequences of that in a non-assert build). Multi-state loops would cause the compiler to run until the query was canceled or it reached the too-many-states error condition.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/020", "db_id": "b74cab109e0d8e965daa8427ca0b3604", "patch_ids": [], "statement_hash": "8143ee095791cdb83c00e7313db15616f9c11f7776360c9467dddb8b137d7f38", "relations": [{"rule": 2, "type": "equivalent", "target": "6a91b9ae443e2c543ca4c57cc8205b07", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8143ee095791cdb83c00e7313db15616f9c11f7776360c9467dddb8b137d7f38"}}, {"rule": 2, "type": "equivalent", "target": "6db5628506239001ed8ac0da810f6bda", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8143ee095791cdb83c00e7313db15616f9c11f7776360c9467dddb8b137d7f38"}}, {"rule": 2, "type": "equivalent", "target": "fd8566b91fd55ceecc46742112b2be1b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8143ee095791cdb83c00e7313db15616f9c11f7776360c9467dddb8b137d7f38"}}], "version": "9.3.11", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "6db5628506239001ed8ac0da810f6bda", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复正则表达式编译器使其处理约束弧构成的环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8143ee095791cdb83c00e7313db15616f9c11f7776360c9467dddb8b137d7f38"}, "url": "/docs/compare/?release=9.4.6#9.4.6-82d8694e58be71f9", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "6a91b9ae443e2c543ca4c57cc8205b07", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复正则表达式编译器使其处理约束弧构成的环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8143ee095791cdb83c00e7313db15616f9c11f7776360c9467dddb8b137d7f38"}, "url": "/docs/compare/?release=9.2.15#9.2.15-82d8694e58be71f9", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "fd8566b91fd55ceecc46742112b2be1b", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复正则表达式编译器使其处理约束弧构成的环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8143ee095791cdb83c00e7313db15616f9c11f7776360c9467dddb8b137d7f38"}, "url": "/docs/compare/?release=9.1.20#9.1.20-82d8694e58be71f9", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-a4831e5eb18f1eae", "cves": [], "html": "<p>改进正则表达式编译器中的内存用量统计（Tom Lane）</p>\n<p>这使代码在一些以前耗费不合理时间和内存量的情况下发出 <span>“<span>regular expression is too complex</span>”</span> 错误。</p>", "text": "改进正则表达式编译器中的内存用量统计（Tom Lane） 这使代码在一些以前耗费不合理时间和内存量的情况下发出 “regular expression is too complex” 错误。", "title": "改进正则表达式编译器中的内存用量统计", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "48c12eb4699b41eb2d9598246cbabe30f47ae69510150fa6e1b95f8e8499bc43", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve memory-usage accounting in regular-expression compiler (Tom Lane) This causes the code to emit regular expression is too complex errors in some cases that previously used unreasonable amounts of time and memory.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/021", "db_id": "edf10a1f4e39420bf38bf597e6036fc5", "patch_ids": [], "statement_hash": "0e8f3b6e45ded4c12118acd6786077b19714155aef944f936ffd615ec4781ab1", "relations": [{"rule": 2, "type": "equivalent", "target": "50c316f11f0f5e38247282f9ad112302", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0e8f3b6e45ded4c12118acd6786077b19714155aef944f936ffd615ec4781ab1"}}, {"rule": 2, "type": "equivalent", "target": "8f01f9343291ecc14a285721f7d45fb7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0e8f3b6e45ded4c12118acd6786077b19714155aef944f936ffd615ec4781ab1"}}, {"rule": 2, "type": "equivalent", "target": "aab3f274a056f7a14bd1126dfb0a8f61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0e8f3b6e45ded4c12118acd6786077b19714155aef944f936ffd615ec4781ab1"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8f01f9343291ecc14a285721f7d45fb7", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "改进正则表达式编译器中的内存用量统计", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0e8f3b6e45ded4c12118acd6786077b19714155aef944f936ffd615ec4781ab1"}, "url": "/docs/compare/?release=9.4.6#9.4.6-a4831e5eb18f1eae", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "50c316f11f0f5e38247282f9ad112302", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "改进正则表达式编译器中的内存用量统计", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0e8f3b6e45ded4c12118acd6786077b19714155aef944f936ffd615ec4781ab1"}, "url": "/docs/compare/?release=9.2.15#9.2.15-a4831e5eb18f1eae", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "aab3f274a056f7a14bd1126dfb0a8f61", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "改进正则表达式编译器中的内存用量统计", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0e8f3b6e45ded4c12118acd6786077b19714155aef944f936ffd615ec4781ab1"}, "url": "/docs/compare/?release=9.1.20#9.1.20-a4831e5eb18f1eae", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-dbfc14f2e9175269", "cves": [], "html": "<p>改进正则表达式编译器的性能（Tom Lane）</p>", "text": "改进正则表达式编译器的性能（Tom Lane）", "title": "改进正则表达式编译器的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "f104c1347bc1ab27187ac36fa7d02eeb3be4c798a949087748c1447a45ed0b04", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve performance of regular-expression compiler (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/022", "db_id": "259a5b87dfa4c583b0d6339fc5bdc200", "patch_ids": [], "statement_hash": "6911061a9a9c267878a194b5f8eec4a5b9a60ce0260c6179b28ac2c97dc2c693", "relations": [{"rule": 2, "type": "equivalent", "target": "211333fd4abd90a0768476dd05067640", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6911061a9a9c267878a194b5f8eec4a5b9a60ce0260c6179b28ac2c97dc2c693"}}, {"rule": 2, "type": "equivalent", "target": "2681a4bf07c62e79df54ed97aa35ec74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6911061a9a9c267878a194b5f8eec4a5b9a60ce0260c6179b28ac2c97dc2c693"}}, {"rule": 2, "type": "equivalent", "target": "66a6c4c3d71299504c7825ca11d1d73a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6911061a9a9c267878a194b5f8eec4a5b9a60ce0260c6179b28ac2c97dc2c693"}}], "version": "9.3.11", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "66a6c4c3d71299504c7825ca11d1d73a", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "改进正则表达式编译器的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6911061a9a9c267878a194b5f8eec4a5b9a60ce0260c6179b28ac2c97dc2c693"}, "url": "/docs/compare/?release=9.4.6#9.4.6-dbfc14f2e9175269", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "211333fd4abd90a0768476dd05067640", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "改进正则表达式编译器的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6911061a9a9c267878a194b5f8eec4a5b9a60ce0260c6179b28ac2c97dc2c693"}, "url": "/docs/compare/?release=9.2.15#9.2.15-dbfc14f2e9175269", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "2681a4bf07c62e79df54ed97aa35ec74", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "改进正则表达式编译器的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6911061a9a9c267878a194b5f8eec4a5b9a60ce0260c6179b28ac2c97dc2c693"}, "url": "/docs/compare/?release=9.1.20#9.1.20-dbfc14f2e9175269", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-d2d542d258130ed6", "cves": [], "html": "<p>使 <code>log_line_prefix</code> 中的 <code>%h</code> 和 <code>%r</code> 转义对因 <code>log_connections</code> 而发出的消息也生效（Tom Lane）</p>\n<p>以前，<code>%h</code>/<code>%r</code> 要等到新会话发出<span>“<span>connection received</span>”</span>日志消息之后才开始生效；现在它们对该消息也生效。</p>", "text": "使 log_line_prefix 中的 %h 和 %r 转义对因 log_connections 而发出的消息也生效（Tom Lane） 以前，%h/%r 要等到新会话发出“connection received”日志消息之后才开始生效；现在它们对该消息也生效。", "title": "使 log_line_prefix 中的 %h 和 %r 转义对因 log_connections 而发出的消息也生效", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "524ab5fc9127fa1fe1203725d7a634010f9983154f06673adeb85dfbacb1b42b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make %h and %r escapes in log_line_prefix work for messages emitted due to log_connections (Tom Lane) Previously, %h/%r started to work just after a new session had emitted the connection received log message; now they work for that message too.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/023", "db_id": "885ed48fb5fbfb10eada458542befc93", "patch_ids": [], "statement_hash": "fde27ff894818314fdc8ea270864cc6f5f13055f8344c2ef3495f3d94f0a75cc", "relations": [{"rule": 2, "type": "equivalent", "target": "6cc1fd169e073e22555fc531aff02d28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fde27ff894818314fdc8ea270864cc6f5f13055f8344c2ef3495f3d94f0a75cc"}}, {"rule": 2, "type": "equivalent", "target": "7caf7f1373b5cb1b3c69c8e5a4f8f302", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fde27ff894818314fdc8ea270864cc6f5f13055f8344c2ef3495f3d94f0a75cc"}}, {"rule": 2, "type": "equivalent", "target": "7cbb23e7d2754a3bd8e761e886e63406", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fde27ff894818314fdc8ea270864cc6f5f13055f8344c2ef3495f3d94f0a75cc"}}, {"rule": 2, "type": "equivalent", "target": "dbb4d11812f0944feba47107395dba8f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fde27ff894818314fdc8ea270864cc6f5f13055f8344c2ef3495f3d94f0a75cc"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6cc1fd169e073e22555fc531aff02d28", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "使 log_line_prefix 中的 %h 和 %r 转义对因 log_connections 而发出的消息也生效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fde27ff894818314fdc8ea270864cc6f5f13055f8344c2ef3495f3d94f0a75cc"}, "url": "/docs/compare/?release=9.5.1#9.5.1-d2d542d258130ed6", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "7caf7f1373b5cb1b3c69c8e5a4f8f302", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "使 log_line_prefix 中的 %h 和 %r 转义对因 log_connections 而发出的消息也生效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fde27ff894818314fdc8ea270864cc6f5f13055f8344c2ef3495f3d94f0a75cc"}, "url": "/docs/compare/?release=9.4.6#9.4.6-d2d542d258130ed6", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "7cbb23e7d2754a3bd8e761e886e63406", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "使 log_line_prefix 中的 %h 和 %r 转义对因 log_connections 而发出的消息也生效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fde27ff894818314fdc8ea270864cc6f5f13055f8344c2ef3495f3d94f0a75cc"}, "url": "/docs/compare/?release=9.2.15#9.2.15-d2d542d258130ed6", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "dbb4d11812f0944feba47107395dba8f", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "使 log_line_prefix 中的 %h 和 %r 转义对因 log_connections 而发出的消息也生效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fde27ff894818314fdc8ea270864cc6f5f13055f8344c2ef3495f3d94f0a75cc"}, "url": "/docs/compare/?release=9.1.20#9.1.20-d2d542d258130ed6", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-178007adf94e2ff7", "cves": [], "html": "<p>在 Windows 上，确保不需要共享内存映射句柄的子进程关闭该句柄（Tom Lane、Amit Kapila）</p>\n<p>只要 <code>logging_collector</code> 处于开启状态，这一疏忽就会导致无法从崩溃中恢复。</p>", "text": "在 Windows 上，确保不需要共享内存映射句柄的子进程关闭该句柄（Tom Lane、Amit Kapila） 只要 logging_collector 处于开启状态，这一疏忽就会导致无法从崩溃中恢复。", "title": "在 Windows 上，确保不需要共享内存映射句柄的子进程关闭该句柄", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "d60f73c3b88a7436501b988fb8df35682bec47b0560ae6a5bdb918cafe9fb595", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, ensure the shared-memory mapping handle gets closed in child processes that don't need it (Tom Lane, Amit Kapila) This oversight resulted in failure to recover from crashes whenever logging_collector is turned on.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/024", "db_id": "5e8b4ba630ad065c84eff88165870fc7", "patch_ids": [], "statement_hash": "64f7e5acae1f0182efd4777c70f81754be0ce297efa06fce61b8d1d5a8f8e6aa", "relations": [{"rule": 2, "type": "equivalent", "target": "1793486797112ed5709de3c3426ebe4c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64f7e5acae1f0182efd4777c70f81754be0ce297efa06fce61b8d1d5a8f8e6aa"}}, {"rule": 2, "type": "equivalent", "target": "8741c15522c5c8c3e8ec003f4a32524f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64f7e5acae1f0182efd4777c70f81754be0ce297efa06fce61b8d1d5a8f8e6aa"}}, {"rule": 2, "type": "equivalent", "target": "ae111462fc415f21d561a6e21fb59c08", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64f7e5acae1f0182efd4777c70f81754be0ce297efa06fce61b8d1d5a8f8e6aa"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1793486797112ed5709de3c3426ebe4c", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "在 Windows 上，确保不需要共享内存映射句柄的子进程关闭该句柄", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64f7e5acae1f0182efd4777c70f81754be0ce297efa06fce61b8d1d5a8f8e6aa"}, "url": "/docs/compare/?release=9.4.6#9.4.6-178007adf94e2ff7", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "8741c15522c5c8c3e8ec003f4a32524f", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "在 Windows 上，确保不需要共享内存映射句柄的子进程关闭该句柄", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64f7e5acae1f0182efd4777c70f81754be0ce297efa06fce61b8d1d5a8f8e6aa"}, "url": "/docs/compare/?release=9.2.15#9.2.15-178007adf94e2ff7", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "ae111462fc415f21d561a6e21fb59c08", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "在 Windows 上，确保不需要共享内存映射句柄的子进程关闭该句柄", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64f7e5acae1f0182efd4777c70f81754be0ce297efa06fce61b8d1d5a8f8e6aa"}, "url": "/docs/compare/?release=9.1.20#9.1.20-178007adf94e2ff7", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-84258c86732f85eb", "cves": [], "html": "<p>修复 Windows 上非阻塞模式下可能无法检测套接字 EOF 的问题（Tom Lane）</p>\n<p>目前尚不完全清楚此问题是否会在 9.5 之前的分支中发生，但如果发生，其症状将是 walsender 进程无限等待而不是察觉到连接丢失。</p>", "text": "修复 Windows 上非阻塞模式下可能无法检测套接字 EOF 的问题（Tom Lane） 目前尚不完全清楚此问题是否会在 9.5 之前的分支中发生，但如果发生，其症状将是 walsender 进程无限等待而不是察觉到连接丢失。", "title": "修复 Windows 上非阻塞模式下可能无法检测套接字 EOF 的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "0fef517403bb4b9a51c7a7ae46e1ea4679b94e9edc558c361ebcfbaece980bb5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible failure to detect socket EOF in non-blocking mode on Windows (Tom Lane) It's not entirely clear whether this problem can happen in pre-9.5 branches, but if it did, the symptom would be that a walsender process would wait indefinitely rather than noticing a loss of connection.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/025", "db_id": "ffeeb895ea2aa2b93b49869b421f8782", "patch_ids": [], "statement_hash": "550b86474c16c645547f6fea84c5ef235a6fdbfa1f6f9cd67d8f688a8f76148a", "relations": [{"rule": 2, "type": "equivalent", "target": "128d71964eb22992c4948e897f1a7bb4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "550b86474c16c645547f6fea84c5ef235a6fdbfa1f6f9cd67d8f688a8f76148a"}}, {"rule": 2, "type": "equivalent", "target": "4c11281711fe56e83dcc3dc810c8a787", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "550b86474c16c645547f6fea84c5ef235a6fdbfa1f6f9cd67d8f688a8f76148a"}}, {"rule": 2, "type": "equivalent", "target": "7330033d8af66a27ff86c5201d715abd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "550b86474c16c645547f6fea84c5ef235a6fdbfa1f6f9cd67d8f688a8f76148a"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7330033d8af66a27ff86c5201d715abd", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 Windows 上非阻塞模式下可能无法检测套接字 EOF 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "550b86474c16c645547f6fea84c5ef235a6fdbfa1f6f9cd67d8f688a8f76148a"}, "url": "/docs/compare/?release=9.4.6#9.4.6-84258c86732f85eb", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "128d71964eb22992c4948e897f1a7bb4", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复 Windows 上非阻塞模式下可能无法检测套接字 EOF 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "550b86474c16c645547f6fea84c5ef235a6fdbfa1f6f9cd67d8f688a8f76148a"}, "url": "/docs/compare/?release=9.2.15#9.2.15-84258c86732f85eb", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "4c11281711fe56e83dcc3dc810c8a787", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复 Windows 上非阻塞模式下可能无法检测套接字 EOF 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "550b86474c16c645547f6fea84c5ef235a6fdbfa1f6f9cd67d8f688a8f76148a"}, "url": "/docs/compare/?release=9.1.20#9.1.20-84258c86732f85eb", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-3d56b3b235f19bc9", "cves": [], "html": "<p>避免 SSPI 身份验证期间泄漏令牌句柄（Christian Ullrich）</p>", "text": "避免 SSPI 身份验证期间泄漏令牌句柄（Christian Ullrich）", "title": "避免 SSPI 身份验证期间泄漏令牌句柄", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "6e00352525219b364bf7bec2bdd6b5991a0d8e7f973838f788d127d1e4f09497", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid leaking a token handle during SSPI authentication (Christian Ullrich)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/026", "db_id": "438714cc5e6c71db4312eb35fbebec55", "patch_ids": [], "statement_hash": "012913b378f1f48c997b8ee492e4b5b37c9a4c93f4afddd3ff1c98326e4a2160", "relations": [{"rule": 2, "type": "equivalent", "target": "2e51514f5864394cf46f8e85f7419104", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012913b378f1f48c997b8ee492e4b5b37c9a4c93f4afddd3ff1c98326e4a2160"}}, {"rule": 2, "type": "equivalent", "target": "5e825f5f564b8ef9b8c2ffbaf04b47cb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012913b378f1f48c997b8ee492e4b5b37c9a4c93f4afddd3ff1c98326e4a2160"}}, {"rule": 2, "type": "equivalent", "target": "a4a1520f5f054523d7c0e2fe9df3ced2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012913b378f1f48c997b8ee492e4b5b37c9a4c93f4afddd3ff1c98326e4a2160"}}, {"rule": 2, "type": "equivalent", "target": "f3b2f1ddac374281dba34c16bc28d77e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012913b378f1f48c997b8ee492e4b5b37c9a4c93f4afddd3ff1c98326e4a2160"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e825f5f564b8ef9b8c2ffbaf04b47cb", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "避免 SSPI 身份验证期间泄漏令牌句柄", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012913b378f1f48c997b8ee492e4b5b37c9a4c93f4afddd3ff1c98326e4a2160"}, "url": "/docs/compare/?release=9.5.1#9.5.1-3d56b3b235f19bc9", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "f3b2f1ddac374281dba34c16bc28d77e", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "避免 SSPI 身份验证期间泄漏令牌句柄", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012913b378f1f48c997b8ee492e4b5b37c9a4c93f4afddd3ff1c98326e4a2160"}, "url": "/docs/compare/?release=9.4.6#9.4.6-3d56b3b235f19bc9", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "2e51514f5864394cf46f8e85f7419104", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "避免 SSPI 身份验证期间泄漏令牌句柄", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012913b378f1f48c997b8ee492e4b5b37c9a4c93f4afddd3ff1c98326e4a2160"}, "url": "/docs/compare/?release=9.2.15#9.2.15-3d56b3b235f19bc9", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "a4a1520f5f054523d7c0e2fe9df3ced2", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "避免 SSPI 身份验证期间泄漏令牌句柄", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012913b378f1f48c997b8ee492e4b5b37c9a4c93f4afddd3ff1c98326e4a2160"}, "url": "/docs/compare/?release=9.1.20#9.1.20-3d56b3b235f19bc9", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-31d93c56f6c0f139", "cves": [], "html": "<p>在 <span>psql</span> 中，确保当终端窗口大小改变时更新 <span>libreadline</span> 所认知的屏幕尺寸（Merlin Moncure）</p>\n<p>此前，如果窗口在查询输出期间被调整大小，<span>libreadline</span> 不会察觉，导致之后输入多行查询时出现奇怪的行为。</p>", "text": "在 psql 中，确保当终端窗口大小改变时更新 libreadline 所认知的屏幕尺寸（Merlin Moncure） 此前，如果窗口在查询输出期间被调整大小，libreadline 不会察觉，导致之后输入多行查询时出现奇怪的行为。", "title": "在 psql 中，确保当终端窗口大小改变时更新 libreadline 所认知的屏幕尺寸", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "9505df501824af4fea7f57b9649ac05df22da560c2adc3f6f2067c962365c24d", "section_path": ["变更"], "commit_groups": [], "identity_text": "In psql, ensure that libreadline's idea of the screen size is updated when the terminal window size changes (Merlin Moncure) Previously, libreadline did not notice if the window was resized during query output, leading to strange behavior during later input of multiline queries.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/027", "db_id": "facbf4653d2438dde9bd9f18c200a981", "patch_ids": [], "statement_hash": "50539cb80071f3a4fedf35fb39b51c0264ef89787762cc6bf0eeecd35fb72ec1", "relations": [{"rule": 2, "type": "equivalent", "target": "065313bd06092a3622772ded245dc2da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50539cb80071f3a4fedf35fb39b51c0264ef89787762cc6bf0eeecd35fb72ec1"}}, {"rule": 2, "type": "equivalent", "target": "7689b96136a1dea123f9c699a8e72724", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50539cb80071f3a4fedf35fb39b51c0264ef89787762cc6bf0eeecd35fb72ec1"}}, {"rule": 2, "type": "equivalent", "target": "b6a5b28de05e68907ae4444cef8491e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50539cb80071f3a4fedf35fb39b51c0264ef89787762cc6bf0eeecd35fb72ec1"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b6a5b28de05e68907ae4444cef8491e5", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "在 psql 中，确保当终端窗口大小改变时更新 libreadline 所认知的屏幕尺寸", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50539cb80071f3a4fedf35fb39b51c0264ef89787762cc6bf0eeecd35fb72ec1"}, "url": "/docs/compare/?release=9.4.6#9.4.6-31d93c56f6c0f139", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "065313bd06092a3622772ded245dc2da", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "在 psql 中，确保当终端窗口大小改变时更新 libreadline 所认知的屏幕尺寸", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50539cb80071f3a4fedf35fb39b51c0264ef89787762cc6bf0eeecd35fb72ec1"}, "url": "/docs/compare/?release=9.2.15#9.2.15-31d93c56f6c0f139", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "7689b96136a1dea123f9c699a8e72724", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "在 psql 中，确保当终端窗口大小改变时更新 libreadline 所认知的屏幕尺寸", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50539cb80071f3a4fedf35fb39b51c0264ef89787762cc6bf0eeecd35fb72ec1"}, "url": "/docs/compare/?release=9.1.20#9.1.20-31d93c56f6c0f139", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-393f4986211d864e", "cves": [], "html": "<p>修复 <span>psql</span> 的 <code>\\det</code> 命令，使其以与其他可能带模式限定模式的 <code>\\d</code> 命令相同的方式解释模式参数（Reece Hart）</p>", "text": "修复 psql 的 \\det 命令，使其以与其他可能带模式限定模式的 \\d 命令相同的方式解释模式参数（Reece Hart）", "title": "修复 psql 的 \\det 命令，使其以与其他可能带模式限定模式的 \\d 命令相同的方式解释模式参数", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "2934761f32aeac456966ea22ed7d360753afeefcfcb88be526134be654340215", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql's \\det command to interpret its pattern argument the same way as other \\d commands with potentially schema-qualified patterns do (Reece Hart)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/028", "db_id": "a44ae03d4941be3dc2e2c64890df9f35", "patch_ids": [], "statement_hash": "79256d97ef2ed9e364cc39b322679681500fab10ebe923dfc4f0522d3545fe44", "relations": [{"rule": 2, "type": "equivalent", "target": "56543181c886e0a9e02d16ceb110d586", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79256d97ef2ed9e364cc39b322679681500fab10ebe923dfc4f0522d3545fe44"}}, {"rule": 2, "type": "equivalent", "target": "72c2989920da86c253ab09eecb31b14e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79256d97ef2ed9e364cc39b322679681500fab10ebe923dfc4f0522d3545fe44"}}, {"rule": 2, "type": "equivalent", "target": "ae26b564c233409889218223f5607057", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79256d97ef2ed9e364cc39b322679681500fab10ebe923dfc4f0522d3545fe44"}}, {"rule": 2, "type": "equivalent", "target": "c2275e8ef3b9fe637be3a173f5a783ae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79256d97ef2ed9e364cc39b322679681500fab10ebe923dfc4f0522d3545fe44"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "56543181c886e0a9e02d16ceb110d586", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "修复 psql 的 \\det 命令，使其以与其他可能带模式限定模式的 \\d 命令相同的方式解释模式参数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79256d97ef2ed9e364cc39b322679681500fab10ebe923dfc4f0522d3545fe44"}, "url": "/docs/compare/?release=9.5.1#9.5.1-393f4986211d864e", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "c2275e8ef3b9fe637be3a173f5a783ae", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 psql 的 \\det 命令，使其以与其他可能带模式限定模式的 \\d 命令相同的方式解释模式参数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79256d97ef2ed9e364cc39b322679681500fab10ebe923dfc4f0522d3545fe44"}, "url": "/docs/compare/?release=9.4.6#9.4.6-393f4986211d864e", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "ae26b564c233409889218223f5607057", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复 psql 的 \\det 命令，使其以与其他可能带模式限定模式的 \\d 命令相同的方式解释模式参数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79256d97ef2ed9e364cc39b322679681500fab10ebe923dfc4f0522d3545fe44"}, "url": "/docs/compare/?release=9.2.15#9.2.15-393f4986211d864e", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "72c2989920da86c253ab09eecb31b14e", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复 psql 的 \\det 命令，使其以与其他可能带模式限定模式的 \\d 命令相同的方式解释模式参数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79256d97ef2ed9e364cc39b322679681500fab10ebe923dfc4f0522d3545fe44"}, "url": "/docs/compare/?release=9.1.20#9.1.20-393f4986211d864e", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-8c5f08ec035be10c", "cves": [], "html": "<p>避免在以下情况下<span>psql</span>的<code>\\c</code>命令可能崩溃：先前连接是通过 Unix 套接字建立的，而命令指定了新的主机名和相同的用户名（Tom Lane）</p>", "text": "避免在以下情况下psql的\\c命令可能崩溃：先前连接是通过 Unix 套接字建立的，而命令指定了新的主机名和相同的用户名（Tom Lane）", "title": "避免在以下情况下psql的\\c命令可能崩溃：先前连接是通过 Unix 套接字建立的，而命令指定了新的主机名和相同的用户名", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "779f9799026c90f9854e33d4fdbbcbb140c35cccba0e1cc5fc513e6182b40a05", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid possible crash in psql's \\c command when previous connection was via Unix socket and command specifies a new hostname and same username (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/029", "db_id": "163374b0b2b1b0cba4206c4c6dac6d54", "patch_ids": [], "statement_hash": "a24088aeb192b2327cbcb2ff7fa4dc218f550b0cef5813da47e013d7330ffde9", "relations": [{"rule": 2, "type": "equivalent", "target": "24916cdaf5c6a5503f807299d69f5ee8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a24088aeb192b2327cbcb2ff7fa4dc218f550b0cef5813da47e013d7330ffde9"}}, {"rule": 2, "type": "equivalent", "target": "d9e0ccce765c6789974b764efaec559e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a24088aeb192b2327cbcb2ff7fa4dc218f550b0cef5813da47e013d7330ffde9"}}, {"rule": 2, "type": "equivalent", "target": "e432b0363a0e15d7b46f21c697d28367", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a24088aeb192b2327cbcb2ff7fa4dc218f550b0cef5813da47e013d7330ffde9"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e432b0363a0e15d7b46f21c697d28367", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "避免 psql 的 \\c 命令在先前连接经由 Unix 套接字、而命令指定了新的主机名和相同用户名时可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a24088aeb192b2327cbcb2ff7fa4dc218f550b0cef5813da47e013d7330ffde9"}, "url": "/docs/compare/?release=9.4.6#9.4.6-70678b2a8d35dfcd", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "24916cdaf5c6a5503f807299d69f5ee8", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "避免在以下情况下psql的\\c命令可能崩溃：先前连接是通过 Unix 套接字建立的，而命令指定了新的主机名和相同的用户名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a24088aeb192b2327cbcb2ff7fa4dc218f550b0cef5813da47e013d7330ffde9"}, "url": "/docs/compare/?release=9.2.15#9.2.15-8c5f08ec035be10c", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "d9e0ccce765c6789974b764efaec559e", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "避免在以下情况下psql的\\c命令可能崩溃：先前连接是通过 Unix 套接字建立的，而命令指定了新的主机名和相同的用户名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a24088aeb192b2327cbcb2ff7fa4dc218f550b0cef5813da47e013d7330ffde9"}, "url": "/docs/compare/?release=9.1.20#9.1.20-8c5f08ec035be10c", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-987de65d0c9199dd", "cves": [], "html": "<p>在 <code>pg_ctl start -w</code> 中，直接测试子进程状态而不是依赖启发式方法（Tom Lane、Michael Paquier）</p>\n<p>此前，<span>pg_ctl</span> 依赖一个假设：新的 postmaster 总会在五秒内创建 <code>postmaster.pid</code>。但在高负载系统上这可能失败，导致 <span>pg_ctl</span> 错误地报告 postmaster 启动失败。</p>\n<p>除 Windows 外，此变更还意味着紧接另一个此类命令之后执行的 <code>pg_ctl start -w</code> 现在会可靠地失败，而此前如果在第一条命令后两秒内执行则会报告成功。</p>", "text": "在 pg_ctl start -w 中，直接测试子进程状态而不是依赖启发式方法（Tom Lane、Michael Paquier） 此前，pg_ctl 依赖一个假设：新的 postmaster 总会在五秒内创建 postmaster.pid。但在高负载系统上这可能失败，导致 pg_ctl 错误地报告 postmaster 启动失败。 除 Windows 外，此变更还意味着紧接另一个此类命令之后执行的 pg_ctl start -w 现在会可靠地失败，而此前如果在第一条命令后两秒内执行则会报告成功。", "title": "在 pg_ctl start -w 中，直接测试子进程状态而不是依赖启发式方法", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "57a6a5194ae3545cd2574e796402c417481b9d0051bc819eb897bd8452c75070", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_ctl start -w, test child process status directly rather than relying on heuristics (Tom Lane, Michael Paquier) Previously, pg_ctl relied on an assumption that the new postmaster would always create postmaster.pid within five seconds. But that can fail on heavily-loaded systems, causing pg_ctl to report incorrectly that the postmaster failed to start. Except on Windows, this change also means that a pg_ctl start -w done immediately after another such command will now reliably fail, whereas previously it would report success if done within two seconds of the first command.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/030", "db_id": "cb81120b324bdde1d67a88daf617a646", "patch_ids": [], "statement_hash": "3187beadb9dfd986aa162515e18e12ddda052dd79e75ed7955aded06997032eb", "relations": [{"rule": 2, "type": "equivalent", "target": "73385a6fa29aa9a59d5f81cc9096fa18", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3187beadb9dfd986aa162515e18e12ddda052dd79e75ed7955aded06997032eb"}}, {"rule": 2, "type": "equivalent", "target": "885c4072d183b1a64dc87bede580e48f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3187beadb9dfd986aa162515e18e12ddda052dd79e75ed7955aded06997032eb"}}, {"rule": 2, "type": "equivalent", "target": "8b66d8e3f3ac6cc5300f8fcb5d86ef8f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3187beadb9dfd986aa162515e18e12ddda052dd79e75ed7955aded06997032eb"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "73385a6fa29aa9a59d5f81cc9096fa18", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "在 pg_ctl start -w 中，直接测试子进程状态而不是依赖启发式方法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3187beadb9dfd986aa162515e18e12ddda052dd79e75ed7955aded06997032eb"}, "url": "/docs/compare/?release=9.4.6#9.4.6-987de65d0c9199dd", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "885c4072d183b1a64dc87bede580e48f", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "在 pg_ctl start -w 中，直接测试子进程状态而不是依赖启发式方法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3187beadb9dfd986aa162515e18e12ddda052dd79e75ed7955aded06997032eb"}, "url": "/docs/compare/?release=9.2.15#9.2.15-987de65d0c9199dd", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "8b66d8e3f3ac6cc5300f8fcb5d86ef8f", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "在 pg_ctl start -w 中，直接测试子进程状态而不是依赖启发式方法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3187beadb9dfd986aa162515e18e12ddda052dd79e75ed7955aded06997032eb"}, "url": "/docs/compare/?release=9.1.20#9.1.20-987de65d0c9199dd", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-fedb61d027839e17", "cves": [], "html": "<p>在 <code>pg_ctl start -w</code> 中，不再尝试使用通配监听地址连接 postmaster（Kondo Yuta）</p>\n<p>在 Windows 上，如果 <code>listen_addresses</code> 被设置为 <code>0.0.0.0</code> 或 <code>::</code>，<span>pg_ctl</span> 将无法检测到 postmaster 的启动，因为它会试图原样使用该值作为要连接的地址，而这行不通。现在改为假定应分别使用 <code>127.0.0.1</code> 或 <code>::1</code>。</p>", "text": "在 pg_ctl start -w 中，不再尝试使用通配监听地址连接 postmaster（Kondo Yuta） 在 Windows 上，如果 listen_addresses 被设置为 0.0.0.0 或 ::，pg_ctl 将无法检测到 postmaster 的启动，因为它会试图原样使用该值作为要连接的地址，而这行不通。现在改为假定应分别使用 127.0.0.1 或 ::1。", "title": "在 pg_ctl start -w 中，不再尝试使用通配监听地址连接 postmaster", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "cb8b9086c23315164eaf9c6c27ff21b59a495dbe0ca0cb8a30981d069728a7df", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_ctl start -w, don't attempt to use a wildcard listen address to connect to the postmaster (Kondo Yuta) On Windows, pg_ctl would fail to detect postmaster startup if listen_addresses is set to 0.0.0.0 or ::, because it would try to use that value verbatim as the address to connect to, which doesn't work. Instead assume that 127.0.0.1 or ::1, respectively, is the right thing to use.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/031", "db_id": "cec7e1bf118d81943e04bec629ffb877", "patch_ids": [], "statement_hash": "375fbca2d6c21ae86c4cf9cd26ae6b20b1cf127681e8eb881d188a0dfcfdde26", "relations": [{"rule": 2, "type": "equivalent", "target": "0eadcc76ba08a7b2f8b4cc094e5b3943", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "375fbca2d6c21ae86c4cf9cd26ae6b20b1cf127681e8eb881d188a0dfcfdde26"}}, {"rule": 2, "type": "equivalent", "target": "31b49007fe1571a1ebbd1c79f0557c22", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "375fbca2d6c21ae86c4cf9cd26ae6b20b1cf127681e8eb881d188a0dfcfdde26"}}, {"rule": 2, "type": "equivalent", "target": "f10b7978b831cababff57b9f264baa42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "375fbca2d6c21ae86c4cf9cd26ae6b20b1cf127681e8eb881d188a0dfcfdde26"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "31b49007fe1571a1ebbd1c79f0557c22", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "在 pg_ctl start -w 中，不再尝试使用通配监听地址连接 postmaster", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "375fbca2d6c21ae86c4cf9cd26ae6b20b1cf127681e8eb881d188a0dfcfdde26"}, "url": "/docs/compare/?release=9.4.6#9.4.6-fedb61d027839e17", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "0eadcc76ba08a7b2f8b4cc094e5b3943", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "在 pg_ctl start -w 中，不再尝试使用通配监听地址连接 postmaster", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "375fbca2d6c21ae86c4cf9cd26ae6b20b1cf127681e8eb881d188a0dfcfdde26"}, "url": "/docs/compare/?release=9.2.15#9.2.15-fedb61d027839e17", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "f10b7978b831cababff57b9f264baa42", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "在 pg_ctl start -w 中，不再尝试使用通配监听地址连接 postmaster", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "375fbca2d6c21ae86c4cf9cd26ae6b20b1cf127681e8eb881d188a0dfcfdde26"}, "url": "/docs/compare/?release=9.1.20#9.1.20-fedb61d027839e17", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-ffc20c3efcf2b89c", "cves": [], "html": "<p>在 Windows 上的 <span>pg_ctl</span> 中，通过检查服务状态来决定输出发送到哪里，而不是检查标准输出是否为终端（Michael Paquier）</p>", "text": "在 Windows 上的 pg_ctl 中，通过检查服务状态来决定输出发送到哪里，而不是检查标准输出是否为终端（Michael Paquier）", "title": "在 Windows 上的 pg_ctl 中，通过检查服务状态来决定输出发送到哪里，而不是检查标准输出是否为终端", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "5725a069624b9666f0fa1ef408405403512d70dc60fdb5543bda4a3f60c91408", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_ctl on Windows, check service status to decide where to send output, rather than checking if standard output is a terminal (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/032", "db_id": "46bc5c70bec439f4ae601fe91c34c983", "patch_ids": [], "statement_hash": "b404d198beded8192b6c56dd9af3ca99944268276d611688f7d3cf39aeb4571d", "relations": [{"rule": 2, "type": "equivalent", "target": "50a28c9cf76d98dccd0ae115ab281817", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b404d198beded8192b6c56dd9af3ca99944268276d611688f7d3cf39aeb4571d"}}, {"rule": 2, "type": "equivalent", "target": "998f6731981001ad75f03a48efe6cfa2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b404d198beded8192b6c56dd9af3ca99944268276d611688f7d3cf39aeb4571d"}}, {"rule": 2, "type": "equivalent", "target": "f2c17c58b814d10bbb6e43d22001d01f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b404d198beded8192b6c56dd9af3ca99944268276d611688f7d3cf39aeb4571d"}}, {"rule": 2, "type": "equivalent", "target": "fc55b81ca38dd48fd637c4b89b222440", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b404d198beded8192b6c56dd9af3ca99944268276d611688f7d3cf39aeb4571d"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fc55b81ca38dd48fd637c4b89b222440", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "在 Windows 上的 pg_ctl 中，通过检查服务状态来决定输出发送到哪里，而不是检查标准输出是否为终端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b404d198beded8192b6c56dd9af3ca99944268276d611688f7d3cf39aeb4571d"}, "url": "/docs/compare/?release=9.5.1#9.5.1-ffc20c3efcf2b89c", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "f2c17c58b814d10bbb6e43d22001d01f", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "在 Windows 上的 pg_ctl 中，通过检查服务状态来决定输出发送到哪里，而不是检查标准输出是否为终端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b404d198beded8192b6c56dd9af3ca99944268276d611688f7d3cf39aeb4571d"}, "url": "/docs/compare/?release=9.4.6#9.4.6-ffc20c3efcf2b89c", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "998f6731981001ad75f03a48efe6cfa2", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "在 Windows 上的 pg_ctl 中，通过检查服务状态来决定输出发送到哪里，而不是检查标准输出是否为终端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b404d198beded8192b6c56dd9af3ca99944268276d611688f7d3cf39aeb4571d"}, "url": "/docs/compare/?release=9.2.15#9.2.15-ffc20c3efcf2b89c", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "50a28c9cf76d98dccd0ae115ab281817", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "在 Windows 上的 pg_ctl 中，通过检查服务状态来决定输出发送到哪里，而不是检查标准输出是否为终端", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b404d198beded8192b6c56dd9af3ca99944268276d611688f7d3cf39aeb4571d"}, "url": "/docs/compare/?release=9.1.20#9.1.20-ffc20c3efcf2b89c", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-1c89c97d21ad6317", "cves": [], "html": "<p>在 <span>pg_dump</span> 和 <span>pg_basebackup</span> 中，采用 GNU 约定来处理超过 8GB 的 tar 归档成员（Tom Lane）</p>\n<p><code>tar</code> 文件格式的 POSIX 标准不允许归档成员文件超过 8GB，但大多数现代 <span>tar</span> 实现支持解决此问题的扩展。采用这一扩展后，<span>pg_dump</span> 使用 <code>-Ft</code> 时不再在数据超过 8GB 的表上失败，<span>pg_basebackup</span> 也能处理大于 8GB 的文件。此外，还修复了一些可移植性问题，它们可能在某些平台上导致 4GB 到 8GB 之间的成员失败。这些问题有可能因备份文件不可读而造成不可恢复的数据丢失。</p>", "text": "在 pg_dump 和 pg_basebackup 中，采用 GNU 约定来处理超过 8GB 的 tar 归档成员（Tom Lane） tar 文件格式的 POSIX 标准不允许归档成员文件超过 8GB，但大多数现代 tar 实现支持解决此问题的扩展。采用这一扩展后，pg_dump 使用 -Ft 时不再在数据超过 8GB 的表上失败，pg_basebackup 也能处理大于 8GB 的文件。此外，还修复了一些可移植性问题，它们可能在某些平台上导致 4GB 到 8GB 之间的成员失败。这些问题有可能因备份文件不可读而造成不可恢复的数据丢失。", "title": "在 pg_dump 和 pg_basebackup 中，采用 GNU 约定来处理超过 8GB 的 tar 归档成员", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "2213eb482983f24460681f25a1d6aab3ebf5c5c8bfa091335858861952d1a9e2", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_dump and pg_basebackup, adopt the GNU convention for handling tar-archive members exceeding 8GB (Tom Lane) The POSIX standard for tar file format does not allow archive member files to exceed 8GB, but most modern implementations of tar support an extension that fixes that. Adopt this extension so that pg_dump with -Ft no longer fails on tables with more than 8GB of data, and so that pg_basebackup can handle files larger than 8GB. In addition, fix some portability issues that could cause failures for members between 4GB and 8GB on some platforms. Potentially these problems could cause unrecoverable data loss due to unreadable backup files.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/033", "db_id": "d340f9ebe90c51468ecc805fe2db4e41", "patch_ids": [], "statement_hash": "1421b6c76583c061333d55cbc87b06b43bf488a92aaf06901c18d23c4f0c5e2b", "relations": [{"rule": 2, "type": "equivalent", "target": "37f720617c09e5e2e5b5c1d1020505d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1421b6c76583c061333d55cbc87b06b43bf488a92aaf06901c18d23c4f0c5e2b"}}, {"rule": 2, "type": "equivalent", "target": "4e3f89c03416acc7e4b32ecb6ddaa0a7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1421b6c76583c061333d55cbc87b06b43bf488a92aaf06901c18d23c4f0c5e2b"}}, {"rule": 2, "type": "equivalent", "target": "a6b94e057f8ee6675d25a19e1239462e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1421b6c76583c061333d55cbc87b06b43bf488a92aaf06901c18d23c4f0c5e2b"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4e3f89c03416acc7e4b32ecb6ddaa0a7", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "在 pg_dump 和 pg_basebackup 中，采用 GNU 约定来处理超过 8GB 的 tar 归档成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1421b6c76583c061333d55cbc87b06b43bf488a92aaf06901c18d23c4f0c5e2b"}, "url": "/docs/compare/?release=9.4.6#9.4.6-1c89c97d21ad6317", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "37f720617c09e5e2e5b5c1d1020505d6", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "在 pg_dump 和 pg_basebackup 中，采用 GNU 约定来处理超过 8GB 的 tar 归档成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1421b6c76583c061333d55cbc87b06b43bf488a92aaf06901c18d23c4f0c5e2b"}, "url": "/docs/compare/?release=9.2.15#9.2.15-1c89c97d21ad6317", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "a6b94e057f8ee6675d25a19e1239462e", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "在 pg_dump 和 pg_basebackup 中，采用 GNU 约定来处理超过 8GB 的 tar 归档成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1421b6c76583c061333d55cbc87b06b43bf488a92aaf06901c18d23c4f0c5e2b"}, "url": "/docs/compare/?release=9.1.20#9.1.20-1c89c97d21ad6317", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-3813de76442f9d72", "cves": [], "html": "<p>修复 <span>pg_dump</span> 处理扩展成员对象时的若干边界 bug（Tom Lane）</p>", "text": "修复 pg_dump 处理扩展成员对象时的若干边界 bug（Tom Lane）", "title": "修复 pg_dump 处理扩展成员对象时的若干边界 bug", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "2e319798e33c8ba0526134260735925be957264ad5cb5636acc8bf83d281fe93", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix assorted corner-case bugs in pg_dump's processing of extension member objects (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/034", "db_id": "fadd4c514c362343f3f596b4eee319e5", "patch_ids": [], "statement_hash": "2280fab706b4c2ed445a351017a4d11c031a77ae47bf936aa42b41be487b7fe4", "relations": [{"rule": 2, "type": "equivalent", "target": "2457804d08df483237bb75a8f59d49cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2280fab706b4c2ed445a351017a4d11c031a77ae47bf936aa42b41be487b7fe4"}}, {"rule": 2, "type": "equivalent", "target": "731b97a7fd7086f0d44dbe80bb27f8a5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2280fab706b4c2ed445a351017a4d11c031a77ae47bf936aa42b41be487b7fe4"}}, {"rule": 2, "type": "equivalent", "target": "73af11867b35c973d9c8af24f2b31875", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2280fab706b4c2ed445a351017a4d11c031a77ae47bf936aa42b41be487b7fe4"}}, {"rule": 2, "type": "equivalent", "target": "e630fa430c08c62d366dea55d599cfc4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2280fab706b4c2ed445a351017a4d11c031a77ae47bf936aa42b41be487b7fe4"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "731b97a7fd7086f0d44dbe80bb27f8a5", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "修复 pg_dump 处理扩展成员对象时的若干边界 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2280fab706b4c2ed445a351017a4d11c031a77ae47bf936aa42b41be487b7fe4"}, "url": "/docs/compare/?release=9.5.1#9.5.1-3813de76442f9d72", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "73af11867b35c973d9c8af24f2b31875", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 pg_dump 处理扩展成员对象时的若干边界 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2280fab706b4c2ed445a351017a4d11c031a77ae47bf936aa42b41be487b7fe4"}, "url": "/docs/compare/?release=9.4.6#9.4.6-3813de76442f9d72", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "2457804d08df483237bb75a8f59d49cd", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复 pg_dump 处理扩展成员对象时的若干边界 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2280fab706b4c2ed445a351017a4d11c031a77ae47bf936aa42b41be487b7fe4"}, "url": "/docs/compare/?release=9.2.15#9.2.15-3813de76442f9d72", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "e630fa430c08c62d366dea55d599cfc4", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复 pg_dump 处理扩展成员对象时的若干边界 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2280fab706b4c2ed445a351017a4d11c031a77ae47bf936aa42b41be487b7fe4"}, "url": "/docs/compare/?release=9.1.20#9.1.20-3813de76442f9d72", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-4ac819f6b4fd1f7a", "cves": [], "html": "<p>使 <span>pg_dump</span> 把视图的触发器标记为需要在其规则之后处理，以防止并行 <span>pg_restore</span> 期间可能出现的失败（Tom Lane）</p>", "text": "使 pg_dump 把视图的触发器标记为需要在其规则之后处理，以防止并行 pg_restore 期间可能出现的失败（Tom Lane）", "title": "使 pg_dump 把视图的触发器标记为需要在其规则之后处理，以防止并行 pg_restore 期间可能出现的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "77701c0eed34d059806bb959fb9962cf60619e0e8b5014e1a21b88cd5a15e04f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_dump mark a view's triggers as needing to be processed after its rule, to prevent possible failure during parallel pg_restore (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/035", "db_id": "63b8a63bbdbf13afeea084b329b5de75", "patch_ids": [], "statement_hash": "dc6aaf1f5385330a98f6748b2c1e31c2c612076c0e3c2e8f033d3bdc03ff77a3", "relations": [{"rule": 2, "type": "equivalent", "target": "639282d960c0c0b620edebea4b414918", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc6aaf1f5385330a98f6748b2c1e31c2c612076c0e3c2e8f033d3bdc03ff77a3"}}, {"rule": 2, "type": "equivalent", "target": "7164bcf02cc88ab85c08ce3c606ae32c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc6aaf1f5385330a98f6748b2c1e31c2c612076c0e3c2e8f033d3bdc03ff77a3"}}, {"rule": 2, "type": "equivalent", "target": "b2e8b7cf11bd9b63b30920bdeb93c80d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc6aaf1f5385330a98f6748b2c1e31c2c612076c0e3c2e8f033d3bdc03ff77a3"}}, {"rule": 2, "type": "equivalent", "target": "e36862b792e753bdfce395af7b742909", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc6aaf1f5385330a98f6748b2c1e31c2c612076c0e3c2e8f033d3bdc03ff77a3"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2e8b7cf11bd9b63b30920bdeb93c80d", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "使 pg_dump 把视图的触发器标记为需要在其规则之后处理，以防止并行 pg_restore 期间可能出现的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc6aaf1f5385330a98f6748b2c1e31c2c612076c0e3c2e8f033d3bdc03ff77a3"}, "url": "/docs/compare/?release=9.5.1#9.5.1-4ac819f6b4fd1f7a", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "7164bcf02cc88ab85c08ce3c606ae32c", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "使 pg_dump 把视图的触发器标记为需要在其规则之后处理，以防止并行 pg_restore 期间可能出现的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc6aaf1f5385330a98f6748b2c1e31c2c612076c0e3c2e8f033d3bdc03ff77a3"}, "url": "/docs/compare/?release=9.4.6#9.4.6-4ac819f6b4fd1f7a", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "e36862b792e753bdfce395af7b742909", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "使 pg_dump 把视图的触发器标记为需要在其规则之后处理，以防止并行 pg_restore 期间可能出现的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc6aaf1f5385330a98f6748b2c1e31c2c612076c0e3c2e8f033d3bdc03ff77a3"}, "url": "/docs/compare/?release=9.2.15#9.2.15-4ac819f6b4fd1f7a", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "639282d960c0c0b620edebea4b414918", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "使 pg_dump 把视图的触发器标记为需要在其规则之后处理，以防止并行 pg_restore 期间可能出现的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc6aaf1f5385330a98f6748b2c1e31c2c612076c0e3c2e8f033d3bdc03ff77a3"}, "url": "/docs/compare/?release=9.1.20#9.1.20-4ac819f6b4fd1f7a", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-f8d0884c8f8aeb04", "cves": [], "html": "<p>确保在 <span>pg_dump</span> 中正确引用关系选项值（Kouhei Sutou、Tom Lane）</p>\n<p>不是简单标识符或数字的 reloption 值可能因 <span>pg_dump</span> 发出的 CREATE 语句中的语法错误而导致转储/重载失败。核心 <span>PostgreSQL</span> 目前支持的任何 reloption 都不存在此问题，但扩展可能允许导致该问题的 reloption。</p>", "text": "确保在 pg_dump 中正确引用关系选项值（Kouhei Sutou、Tom Lane） 不是简单标识符或数字的 reloption 值可能因 pg_dump 发出的 CREATE 语句中的语法错误而导致转储/重载失败。核心 PostgreSQL 目前支持的任何 reloption 都不存在此问题，但扩展可能允许导致该问题的 reloption。", "title": "确保在 pg_dump 中正确引用关系选项值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "abb3879baa8d83ef9c3c6c885ece851e929b013c6a1538d9b879b3f9612dd7ea", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that relation option values are properly quoted in pg_dump (Kouhei Sutou, Tom Lane) A reloption value that isn't a simple identifier or number could lead to dump/reload failures due to syntax errors in CREATE statements issued by pg_dump. This is not an issue with any reloption currently supported by core PostgreSQL, but extensions could allow reloptions that cause the problem.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/036", "db_id": "6651e7f0b23e756ca87408364e77ea30", "patch_ids": [], "statement_hash": "35e4aef187331f675fee96ab6510031394a03be2bc63aab2bb3f0107e1403eba", "relations": [{"rule": 2, "type": "equivalent", "target": "19602b097ec7cc56905fc5cc268cc944", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35e4aef187331f675fee96ab6510031394a03be2bc63aab2bb3f0107e1403eba"}}, {"rule": 2, "type": "equivalent", "target": "77f577d99ffe9bb3cc7c632c9b2ff12a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35e4aef187331f675fee96ab6510031394a03be2bc63aab2bb3f0107e1403eba"}}, {"rule": 2, "type": "equivalent", "target": "a6bb80d37fa66eaf597d5a3624573c67", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35e4aef187331f675fee96ab6510031394a03be2bc63aab2bb3f0107e1403eba"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a6bb80d37fa66eaf597d5a3624573c67", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "确保在 pg_dump 中正确引用关系选项值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35e4aef187331f675fee96ab6510031394a03be2bc63aab2bb3f0107e1403eba"}, "url": "/docs/compare/?release=9.4.6#9.4.6-f8d0884c8f8aeb04", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "77f577d99ffe9bb3cc7c632c9b2ff12a", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "确保在 pg_dump 中正确引用关系选项值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35e4aef187331f675fee96ab6510031394a03be2bc63aab2bb3f0107e1403eba"}, "url": "/docs/compare/?release=9.2.15#9.2.15-f8d0884c8f8aeb04", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "19602b097ec7cc56905fc5cc268cc944", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "确保在 pg_dump 中正确引用关系选项值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35e4aef187331f675fee96ab6510031394a03be2bc63aab2bb3f0107e1403eba"}, "url": "/docs/compare/?release=9.1.20#9.1.20-f8d0884c8f8aeb04", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-fded54185e639631", "cves": [], "html": "<p>避免并行<span>pg_dump</span>期间重复提示输入密码（Zeus Kronion）</p>", "text": "避免并行pg_dump期间重复提示输入密码（Zeus Kronion）", "title": "避免并行pg_dump期间重复提示输入密码", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "02d59b5360a577502847a2cb2d2e52735d79f5277bec982efe61e96b472d7602", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid repeated password prompts during parallel pg_dump (Zeus Kronion)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/037", "db_id": "f8b4bb463beb72cd5f98b04f6f8ab176", "patch_ids": [], "statement_hash": "bd59de4b368f5d4a7441b795fd508f9124638d7a8f575383897c6ee089960b99", "relations": [{"rule": 2, "type": "equivalent", "target": "94867aa46faff4bfb8f40fcdf3c81e64", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd59de4b368f5d4a7441b795fd508f9124638d7a8f575383897c6ee089960b99"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "94867aa46faff4bfb8f40fcdf3c81e64", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "避免并行 pg_dump 期间重复的口令提示", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd59de4b368f5d4a7441b795fd508f9124638d7a8f575383897c6ee089960b99"}, "url": "/docs/compare/?release=9.4.6#9.4.6-34c3087e2bb84354", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}]}, {"id": "9.3.11-74211eed4186e5ae", "cves": [], "html": "<p>修复<span>pg_upgrade</span>的文件复制代码在 Windows 上正确处理错误的问题（Bruce Momjian）</p>", "text": "修复pg_upgrade的文件复制代码在 Windows 上正确处理错误的问题（Bruce Momjian）", "title": "修复pg_upgrade的文件复制代码在 Windows 上正确处理错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "db33870d5da16e37e14667734660b159c3feb2347d765fa048fade1438975e4b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade's file-copying code to handle errors properly on Windows (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/038", "db_id": "26862cd7129c3b4e932d1d6cf1e81781", "patch_ids": [], "statement_hash": "68a5674f71f69904948966f78ebc4083806d6465fcaa9352218b989d73be6b86", "relations": [{"rule": 2, "type": "equivalent", "target": "4eab1336d67ab9c7670f4eb659d285b7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68a5674f71f69904948966f78ebc4083806d6465fcaa9352218b989d73be6b86"}}, {"rule": 2, "type": "equivalent", "target": "8140d29f7f589c870ded31cc7977247a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68a5674f71f69904948966f78ebc4083806d6465fcaa9352218b989d73be6b86"}}, {"rule": 2, "type": "equivalent", "target": "82c2c51b41f7eb65423ef1707b2e5dc3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68a5674f71f69904948966f78ebc4083806d6465fcaa9352218b989d73be6b86"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8140d29f7f589c870ded31cc7977247a", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 pg_upgrade 的文件复制代码，使其在 Windows 上正确处理错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68a5674f71f69904948966f78ebc4083806d6465fcaa9352218b989d73be6b86"}, "url": "/docs/compare/?release=9.4.6#9.4.6-0dc3c0f12850888d", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "4eab1336d67ab9c7670f4eb659d285b7", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复pg_upgrade的文件复制代码在 Windows 上正确处理错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68a5674f71f69904948966f78ebc4083806d6465fcaa9352218b989d73be6b86"}, "url": "/docs/compare/?release=9.2.15#9.2.15-74211eed4186e5ae", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "82c2c51b41f7eb65423ef1707b2e5dc3", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复pg_upgrade的文件复制代码在 Windows 上正确处理错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68a5674f71f69904948966f78ebc4083806d6465fcaa9352218b989d73be6b86"}, "url": "/docs/compare/?release=9.1.20#9.1.20-74211eed4186e5ae", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-062bdb6ed6ecd3a0", "cves": [], "html": "<p>在 <span>pgbench</span> 中加入防护，防止计算脚本指定的除法或取模运算符期间的边界溢出情况（Fabien Coelho、Michael Paquier）</p>", "text": "在 pgbench 中加入防护，防止计算脚本指定的除法或取模运算符期间的边界溢出情况（Fabien Coelho、Michael Paquier）", "title": "在 pgbench 中加入防护，防止计算脚本指定的除法或取模运算符期间的边界溢出情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "aed2a0ec093010ea8eb85c16b4a0826a6d8a11475174d1920558c04aaf69eca5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Install guards in pgbench against corner-case overflow conditions during evaluation of script-specified division or modulo operators (Fabien Coelho, Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/039", "db_id": "a93a7956fc7b9f395d4fc12c4ba43568", "patch_ids": [], "statement_hash": "6fa6f9c75d6b8001063fd0b5e76296556c995444580bfe40bb47117e6b139dd0", "relations": [{"rule": 2, "type": "equivalent", "target": "4429311b4c20fda04d0ca5162000d686", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fa6f9c75d6b8001063fd0b5e76296556c995444580bfe40bb47117e6b139dd0"}}, {"rule": 2, "type": "equivalent", "target": "463b7c278954267c51dffc4cc837224d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fa6f9c75d6b8001063fd0b5e76296556c995444580bfe40bb47117e6b139dd0"}}, {"rule": 2, "type": "equivalent", "target": "8343cc2c0cc89f60b2a1ea88aed18d6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fa6f9c75d6b8001063fd0b5e76296556c995444580bfe40bb47117e6b139dd0"}}, {"rule": 2, "type": "equivalent", "target": "9acad733ddf9374f74a8f9a01331be18", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fa6f9c75d6b8001063fd0b5e76296556c995444580bfe40bb47117e6b139dd0"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9acad733ddf9374f74a8f9a01331be18", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "在 pgbench 中加入防护，防止计算脚本指定的除法或取模运算符期间的边界溢出情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fa6f9c75d6b8001063fd0b5e76296556c995444580bfe40bb47117e6b139dd0"}, "url": "/docs/compare/?release=9.5.1#9.5.1-062bdb6ed6ecd3a0", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "463b7c278954267c51dffc4cc837224d", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "在 pgbench 中加入防护，防止计算脚本指定的除法或取模运算符期间的边界溢出情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fa6f9c75d6b8001063fd0b5e76296556c995444580bfe40bb47117e6b139dd0"}, "url": "/docs/compare/?release=9.4.6#9.4.6-062bdb6ed6ecd3a0", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "8343cc2c0cc89f60b2a1ea88aed18d6f", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "在 pgbench 中加入防护，防止计算脚本指定的除法或取模运算符期间的边界溢出情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fa6f9c75d6b8001063fd0b5e76296556c995444580bfe40bb47117e6b139dd0"}, "url": "/docs/compare/?release=9.2.15#9.2.15-062bdb6ed6ecd3a0", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "4429311b4c20fda04d0ca5162000d686", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "在 pgbench 中加入防护，防止计算脚本指定的除法或取模运算符期间的边界溢出情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fa6f9c75d6b8001063fd0b5e76296556c995444580bfe40bb47117e6b139dd0"}, "url": "/docs/compare/?release=9.1.20#9.1.20-062bdb6ed6ecd3a0", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-441f67497790b5ab", "cves": [], "html": "<p>修复<span>pg_receivexlog</span>和<span>pg_recvlogical</span>发出的消息未能本地化的问题（Ioseph Kim）</p>", "text": "修复pg_receivexlog和pg_recvlogical发出的消息未能本地化的问题（Ioseph Kim）", "title": "修复pg_receivexlog和pg_recvlogical发出的消息未能本地化的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "ddbd946dc25286792052c93d7c3bf602c966a4f85ccd54a47b0e9682a91aed80", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure to localize messages emitted by pg_receivexlog and pg_recvlogical (Ioseph Kim)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/040", "db_id": "0e1477de110bb136923a7cac20e12a9d", "patch_ids": [], "statement_hash": "937b76544c27c1c25d87e8efc6232e4f7e25349272b63ed90649ac31c28c3b80", "relations": [{"rule": 2, "type": "equivalent", "target": "848f1dfb79f8ba831f4eb1228c8baf67", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "937b76544c27c1c25d87e8efc6232e4f7e25349272b63ed90649ac31c28c3b80"}}, {"rule": 2, "type": "equivalent", "target": "a4918730cecb15cbd2eeade1a35d16d9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "937b76544c27c1c25d87e8efc6232e4f7e25349272b63ed90649ac31c28c3b80"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "848f1dfb79f8ba831f4eb1228c8baf67", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 pg_receivexlog 和 pg_recvlogical 发出的消息未能本地化的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "937b76544c27c1c25d87e8efc6232e4f7e25349272b63ed90649ac31c28c3b80"}, "url": "/docs/compare/?release=9.4.6#9.4.6-8e951010d5c7d666", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "a4918730cecb15cbd2eeade1a35d16d9", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复pg_receivexlog和pg_recvlogical发出的消息未能本地化的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "937b76544c27c1c25d87e8efc6232e4f7e25349272b63ed90649ac31c28c3b80"}, "url": "/docs/compare/?release=9.2.15#9.2.15-441f67497790b5ab", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}]}, {"id": "9.3.11-b80acca3e311d56f", "cves": [], "html": "<p>避免同时使用 <span>plpython2</span> 和 <span>plpython3</span> 时的转储/重载问题（Tom Lane）</p>\n<p>原则上，两个版本的 <span>PL/Python</span> 可以在同一个数据库中使用，但不能在同一个会话中使用（因为两个版本的 <span>libpython</span> 无法安全地并发使用）。然而，<span>pg_restore</span> 和 <span>pg_upgrade</span> 都会做一些可能触犯同会话限制的事情。通过更改检查的时机来规避这一点。</p>", "text": "避免同时使用 plpython2 和 plpython3 时的转储/重载问题（Tom Lane） 原则上，两个版本的 PL/Python 可以在同一个数据库中使用，但不能在同一个会话中使用（因为两个版本的 libpython 无法安全地并发使用）。然而，pg_restore 和 pg_upgrade 都会做一些可能触犯同会话限制的事情。通过更改检查的时机来规避这一点。", "title": "避免同时使用 plpython2 和 plpython3 时的转储/重载问题", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "552fa7de07fa605440aef3fd02ef0ecce882d2734845ecd8afb209ff2f02b59f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid dump/reload problems when using both plpython2 and plpython3 (Tom Lane) In principle, both versions of PL/Python can be used in the same database, though not in the same session (because the two versions of libpython cannot safely be used concurrently). However, pg_restore and pg_upgrade both do things that can fall foul of the same-session restriction. Work around that by changing the timing of the check.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/041", "db_id": "5c4e991f8d4a642900a543199662451d", "patch_ids": [], "statement_hash": "b2c01f4b617880c0b4e4761aee6ee4f8e87a36a38ced76f9fceb6655ee777068", "relations": [{"rule": 2, "type": "equivalent", "target": "73bfe5d2b41d97c4d9debc1380abac6d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2c01f4b617880c0b4e4761aee6ee4f8e87a36a38ced76f9fceb6655ee777068"}}, {"rule": 2, "type": "equivalent", "target": "7fdfe610b682c284f5187886cab8f091", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2c01f4b617880c0b4e4761aee6ee4f8e87a36a38ced76f9fceb6655ee777068"}}, {"rule": 2, "type": "equivalent", "target": "f96612f238be71ec939b6687fd44e0ef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2c01f4b617880c0b4e4761aee6ee4f8e87a36a38ced76f9fceb6655ee777068"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "73bfe5d2b41d97c4d9debc1380abac6d", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "避免同时使用 plpython2 和 plpython3 时的转储/重载问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2c01f4b617880c0b4e4761aee6ee4f8e87a36a38ced76f9fceb6655ee777068"}, "url": "/docs/compare/?release=9.5.1#9.5.1-b80acca3e311d56f", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "7fdfe610b682c284f5187886cab8f091", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "避免同时使用 plpython2 和 plpython3 时的转储/重载问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2c01f4b617880c0b4e4761aee6ee4f8e87a36a38ced76f9fceb6655ee777068"}, "url": "/docs/compare/?release=9.4.6#9.4.6-b80acca3e311d56f", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "f96612f238be71ec939b6687fd44e0ef", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "避免同时使用 plpython2 和 plpython3 时的转储/重载问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2c01f4b617880c0b4e4761aee6ee4f8e87a36a38ced76f9fceb6655ee777068"}, "url": "/docs/compare/?release=9.2.15#9.2.15-b80acca3e311d56f", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}]}, {"id": "9.3.11-98e44a64839adac8", "cves": [], "html": "<p>修复 <span>PL/Python</span> 回归测试，使其在 Python 3.5 下通过（Peter Eisentraut）</p>", "text": "修复 PL/Python 回归测试，使其在 Python 3.5 下通过（Peter Eisentraut）", "title": "修复 PL/Python 回归测试，使其在 Python 3.5 下通过", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "5416494c28506e35c4e5c6199da40e786243910596e4da9b594da441a8c96b16", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PL/Python regression tests to pass with Python 3.5 (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/042", "db_id": "a5ea72bcf0bc30d1ac85879513b1a196", "patch_ids": [], "statement_hash": "237dcc688f27a213242316d250ad373c3d96ed314c1e3cea371795c31275bc9d", "relations": [{"rule": 2, "type": "equivalent", "target": "55b28d130ac75b6dc9cfaabf8bcdb824", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "237dcc688f27a213242316d250ad373c3d96ed314c1e3cea371795c31275bc9d"}}, {"rule": 2, "type": "equivalent", "target": "87806806231c4a8aae83fd9987903150", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "237dcc688f27a213242316d250ad373c3d96ed314c1e3cea371795c31275bc9d"}}, {"rule": 2, "type": "equivalent", "target": "d386cbd1ac4a9f26bef75a9d608f038a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "237dcc688f27a213242316d250ad373c3d96ed314c1e3cea371795c31275bc9d"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "87806806231c4a8aae83fd9987903150", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "修复 PL/Python 回归测试，使其在 Python 3.5 下通过", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "237dcc688f27a213242316d250ad373c3d96ed314c1e3cea371795c31275bc9d"}, "url": "/docs/compare/?release=9.5.1#9.5.1-98e44a64839adac8", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "d386cbd1ac4a9f26bef75a9d608f038a", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 PL/Python 回归测试，使其在 Python 3.5 下通过", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "237dcc688f27a213242316d250ad373c3d96ed314c1e3cea371795c31275bc9d"}, "url": "/docs/compare/?release=9.4.6#9.4.6-98e44a64839adac8", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "55b28d130ac75b6dc9cfaabf8bcdb824", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复 PL/Python 回归测试，使其在 Python 3.5 下通过", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "237dcc688f27a213242316d250ad373c3d96ed314c1e3cea371795c31275bc9d"}, "url": "/docs/compare/?release=9.2.15#9.2.15-98e44a64839adac8", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}]}, {"id": "9.3.11-765a429a54702905", "cves": [], "html": "<p>修复看到套接字 EOF 时过早清空 <span>libpq</span> 输入缓冲区的问题（Tom Lane）</p>\n<p>这一错误导致 <span>libpq</span> 有时在报告 <span>“<span>server closed the connection unexpectedly</span>”</span> 之前未能报告后端的最终错误消息。</p>", "text": "修复看到套接字 EOF 时过早清空 libpq 输入缓冲区的问题（Tom Lane） 这一错误导致 libpq 有时在报告 “server closed the connection unexpectedly” 之前未能报告后端的最终错误消息。", "title": "修复看到套接字 EOF 时过早清空 libpq 输入缓冲区的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "687b4fa2129004dd10b3889deafceb726baaa11d567280e81a2478b5e6f1e65e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix premature clearing of libpq's input buffer when socket EOF is seen (Tom Lane) This mistake caused libpq to sometimes not report the backend's final error message before reporting server closed the connection unexpectedly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/043", "db_id": "98cc9d433de0cea732f333360c2f2245", "patch_ids": [], "statement_hash": "8b4aa5d50f03b37b23b65c855fb3699aa3e5b6b3e3fa0daf401164df1bee580d", "relations": [{"rule": 2, "type": "equivalent", "target": "7e035a0c6aeb16ff79bb21c31a6fa805", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b4aa5d50f03b37b23b65c855fb3699aa3e5b6b3e3fa0daf401164df1bee580d"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7e035a0c6aeb16ff79bb21c31a6fa805", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复看到套接字 EOF 时过早清空 libpq 输入缓冲区的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b4aa5d50f03b37b23b65c855fb3699aa3e5b6b3e3fa0daf401164df1bee580d"}, "url": "/docs/compare/?release=9.4.6#9.4.6-765a429a54702905", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}]}, {"id": "9.3.11-4bd6cf6c1d36bca3", "cves": ["CVE-2016-0766"], "html": "<p>防止某些 <span>PL/Java</span> 参数被非超级用户设置（Noah Misch）</p>\n<p>此变更缓解了 <span>PL/Java</span> 的一个安全 bug（CVE-2016-0766），该 bug 在 <span>PL/Java</span> 中已通过把这些参数标记为仅超级用户可用来修复。为了保护那些更新 <span>PostgreSQL</span> 比 <span>PL/Java</span> 更频繁的站点，核心代码现在也识别这些参数。</p>", "text": "防止某些 PL/Java 参数被非超级用户设置（Noah Misch） 此变更缓解了 PL/Java 的一个安全 bug（CVE-2016-0766），该 bug 在 PL/Java 中已通过把这些参数标记为仅超级用户可用来修复。为了保护那些更新 PostgreSQL 比 PL/Java 更频繁的站点，核心代码现在也识别这些参数。", "title": "防止某些 PL/Java 参数被非超级用户设置", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "65ada80d16c184c7b2bfa993f528e031432a64b029e02243e50a34e77fb06ecc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent certain PL/Java parameters from being set by non-superusers (Noah Misch) This change mitigates a PL/Java security bug (CVE-2016-0766), which was fixed in PL/Java by marking these parameters as superuser-only. To fix the security hazard for sites that update PostgreSQL more frequently than PL/Java, make the core code aware of them also.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/044", "db_id": "e039ea2a4900d0587260a96ef5854826", "patch_ids": [], "statement_hash": "b7641a8f14767c8e49f5f56ee76f2f9bf1af49b7c7045d413e7ea1f09a6f7f11", "relations": [{"rule": 2, "type": "equivalent", "target": "4917d87c69fd2381f0cd0bb043dd7284", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7641a8f14767c8e49f5f56ee76f2f9bf1af49b7c7045d413e7ea1f09a6f7f11"}}, {"rule": 2, "type": "equivalent", "target": "97dc39fa0e7bec5e2534a2b04109f605", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7641a8f14767c8e49f5f56ee76f2f9bf1af49b7c7045d413e7ea1f09a6f7f11"}}, {"rule": 2, "type": "equivalent", "target": "c75a2e5f772bd39312a83d259c6eca92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7641a8f14767c8e49f5f56ee76f2f9bf1af49b7c7045d413e7ea1f09a6f7f11"}}, {"rule": 2, "type": "equivalent", "target": "da4a43b885b72a66ad8ccbcf7f4c082b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7641a8f14767c8e49f5f56ee76f2f9bf1af49b7c7045d413e7ea1f09a6f7f11"}}], "version": "9.3.11", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "97dc39fa0e7bec5e2534a2b04109f605", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "防止某些 PL/Java 参数被非超级用户设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7641a8f14767c8e49f5f56ee76f2f9bf1af49b7c7045d413e7ea1f09a6f7f11"}, "url": "/docs/compare/?release=9.5.1#9.5.1-4bd6cf6c1d36bca3", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "c75a2e5f772bd39312a83d259c6eca92", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "防止某些 PL/Java 参数被非超级用户设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7641a8f14767c8e49f5f56ee76f2f9bf1af49b7c7045d413e7ea1f09a6f7f11"}, "url": "/docs/compare/?release=9.4.6#9.4.6-4bd6cf6c1d36bca3", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "da4a43b885b72a66ad8ccbcf7f4c082b", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "防止某些 PL/Java 参数被非超级用户设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7641a8f14767c8e49f5f56ee76f2f9bf1af49b7c7045d413e7ea1f09a6f7f11"}, "url": "/docs/compare/?release=9.2.15#9.2.15-4bd6cf6c1d36bca3", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "4917d87c69fd2381f0cd0bb043dd7284", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "防止某些 PL/Java 参数被非超级用户设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7641a8f14767c8e49f5f56ee76f2f9bf1af49b7c7045d413e7ea1f09a6f7f11"}, "url": "/docs/compare/?release=9.1.20#9.1.20-4bd6cf6c1d36bca3", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-325b5407b34583a4", "cves": [], "html": "<p>改进<span>libpq</span>对内存耗尽情况的处理（Michael Paquier, Amit Kapila, Heikki Linnakangas）</p>", "text": "改进libpq对内存耗尽情况的处理（Michael Paquier, Amit Kapila, Heikki Linnakangas）", "title": "改进libpq对内存耗尽情况的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "f079a5069615afff4320321c696cb91411fd1f22b50d45be2d2a4516175e666c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve libpq's handling of out-of-memory situations (Michael Paquier, Amit Kapila, Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/045", "db_id": "1fa9f10469b0b247fb97b3b1896e5a58", "patch_ids": [], "statement_hash": "94de8cb6f391c44f358766a276080845a47663e05dc388c5ef643bc2811a8878", "relations": [{"rule": 2, "type": "equivalent", "target": "04602bb7abe3e41cae470dd025c9b56c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "94de8cb6f391c44f358766a276080845a47663e05dc388c5ef643bc2811a8878"}}, {"rule": 2, "type": "equivalent", "target": "585e6569d6e7c0f2d5bd6881fc9cd9fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "94de8cb6f391c44f358766a276080845a47663e05dc388c5ef643bc2811a8878"}}, {"rule": 2, "type": "equivalent", "target": "693ce08e2c5739bfdb85663d1686aec9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "94de8cb6f391c44f358766a276080845a47663e05dc388c5ef643bc2811a8878"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "04602bb7abe3e41cae470dd025c9b56c", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "改进 libpq 对内存不足情况的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "94de8cb6f391c44f358766a276080845a47663e05dc388c5ef643bc2811a8878"}, "url": "/docs/compare/?release=9.4.6#9.4.6-28d5e03370026ec7", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "585e6569d6e7c0f2d5bd6881fc9cd9fb", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "改进libpq对内存耗尽情况的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "94de8cb6f391c44f358766a276080845a47663e05dc388c5ef643bc2811a8878"}, "url": "/docs/compare/?release=9.2.15#9.2.15-325b5407b34583a4", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "693ce08e2c5739bfdb85663d1686aec9", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "改进libpq对内存耗尽情况的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "94de8cb6f391c44f358766a276080845a47663e05dc388c5ef643bc2811a8878"}, "url": "/docs/compare/?release=9.1.20#9.1.20-325b5407b34583a4", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-aad5e0977e02651d", "cves": [], "html": "<p>修复<span>ecpg</span>生成的<code>typedef</code>语句中参数顺序错误的问题（Michael Meskes）</p>", "text": "修复ecpg生成的typedef语句中参数顺序错误的问题（Michael Meskes）", "title": "修复ecpg生成的typedef语句中参数顺序错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "b7bfccb43aaae3586c5248e58fdde3f98cf23548b60b1f97815706d68676155f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix order of arguments in ecpg-generated typedef statements (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/046", "db_id": "35eb5819788d465623279fefda1ec2e8", "patch_ids": [], "statement_hash": "e58240c0c0d3c47743af3ba809be9c295fc91498139cd74694af343f1f3a352a", "relations": [{"rule": 2, "type": "equivalent", "target": "3972f64925ac1c9b0a688be9a80db3e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e58240c0c0d3c47743af3ba809be9c295fc91498139cd74694af343f1f3a352a"}}, {"rule": 2, "type": "equivalent", "target": "3b5b535df34a8cd0cf1ea264b3e70939", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e58240c0c0d3c47743af3ba809be9c295fc91498139cd74694af343f1f3a352a"}}, {"rule": 2, "type": "equivalent", "target": "8b5ddfcb2c0ea310b8c6ff72f01b3292", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e58240c0c0d3c47743af3ba809be9c295fc91498139cd74694af343f1f3a352a"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3972f64925ac1c9b0a688be9a80db3e3", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 ecpg 生成的 typedef 语句中参数的顺序", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e58240c0c0d3c47743af3ba809be9c295fc91498139cd74694af343f1f3a352a"}, "url": "/docs/compare/?release=9.4.6#9.4.6-b5d6c72652781a40", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "8b5ddfcb2c0ea310b8c6ff72f01b3292", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复ecpg生成的typedef语句中参数顺序错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e58240c0c0d3c47743af3ba809be9c295fc91498139cd74694af343f1f3a352a"}, "url": "/docs/compare/?release=9.2.15#9.2.15-aad5e0977e02651d", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "3b5b535df34a8cd0cf1ea264b3e70939", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复ecpg生成的typedef语句中参数顺序错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e58240c0c0d3c47743af3ba809be9c295fc91498139cd74694af343f1f3a352a"}, "url": "/docs/compare/?release=9.1.20#9.1.20-aad5e0977e02651d", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-8a31d96997d8bcd6", "cves": [], "html": "<p>在<span>ecpg</span>的<code>PGTYPESnumeric_from_double()</code>中使用<code>%g</code>而非<code>%f</code>格式（Tom Lane）</p>", "text": "在ecpg的PGTYPESnumeric_from_double()中使用%g而非%f格式（Tom Lane）", "title": "在ecpg的PGTYPESnumeric_from_double()中使用%g而非%f格式", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "2f50526249bd3042beca9f77b97d711ff18f64e5ba5a2c6c210da5b240e1507d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use %g not %f format in ecpg's PGTYPESnumeric_from_double() (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/047", "db_id": "2cb1563074e55b7594b47f548e834cca", "patch_ids": [], "statement_hash": "618844741a56ff7e0570120408dbe6ed55cafce111638a2d1973dcfa9e373d17", "relations": [{"rule": 2, "type": "equivalent", "target": "cdcc7040acee07c99d12e7597669627f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "618844741a56ff7e0570120408dbe6ed55cafce111638a2d1973dcfa9e373d17"}}, {"rule": 2, "type": "equivalent", "target": "ec9808d09f2f1d70982641c89c979f27", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "618844741a56ff7e0570120408dbe6ed55cafce111638a2d1973dcfa9e373d17"}}, {"rule": 2, "type": "equivalent", "target": "f52cc6da89a75ad4df01adce7effcd81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "618844741a56ff7e0570120408dbe6ed55cafce111638a2d1973dcfa9e373d17"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec9808d09f2f1d70982641c89c979f27", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "在 ecpg 的 PGTYPESnumeric_from_double() 中使用 %g 而非 %f 格式", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "618844741a56ff7e0570120408dbe6ed55cafce111638a2d1973dcfa9e373d17"}, "url": "/docs/compare/?release=9.4.6#9.4.6-4fab32938ac8dd39", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "cdcc7040acee07c99d12e7597669627f", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "在ecpg的PGTYPESnumeric_from_double()中使用%g而非%f格式", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "618844741a56ff7e0570120408dbe6ed55cafce111638a2d1973dcfa9e373d17"}, "url": "/docs/compare/?release=9.2.15#9.2.15-8a31d96997d8bcd6", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "f52cc6da89a75ad4df01adce7effcd81", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "在ecpg的PGTYPESnumeric_from_double()中使用%g而非%f格式", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "618844741a56ff7e0570120408dbe6ed55cafce111638a2d1973dcfa9e373d17"}, "url": "/docs/compare/?release=9.1.20#9.1.20-8a31d96997d8bcd6", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-265e230ca84c450a", "cves": [], "html": "<p>修复 <span>ecpg</span> 提供的头文件，使其不包含从预处理指令行延续到下一行的注释（Michael Meskes）</p>\n<p>这样的注释会被 <span>ecpg</span> 拒绝。尚不清楚是否应该更改 <span>ecpg</span> 本身。</p>", "text": "修复 ecpg 提供的头文件，使其不包含从预处理指令行延续到下一行的注释（Michael Meskes） 这样的注释会被 ecpg 拒绝。尚不清楚是否应该更改 ecpg 本身。", "title": "修复 ecpg 提供的头文件，使其不包含从预处理指令行延续到下一行的注释", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "dc136081e9898e255bf89931c5ff9b85e5904e7d50b0a9329a1128145ef8e0df", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg-supplied header files to not contain comments continued from a preprocessor directive line onto the next line (Michael Meskes) Such a comment is rejected by ecpg. It's not yet clear whether ecpg itself should be changed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/048", "db_id": "d63bda274e38217adfc55e5c5421c6d9", "patch_ids": [], "statement_hash": "d373359c60c9b2678de3e08e31b5db658d4c439df52a1da3998a616757e8fb90", "relations": [{"rule": 2, "type": "equivalent", "target": "0bf8a231c2b475eb4b99b5b31cdf39ee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d373359c60c9b2678de3e08e31b5db658d4c439df52a1da3998a616757e8fb90"}}, {"rule": 2, "type": "equivalent", "target": "25923104378ff078f6db6dfc3a69ed95", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d373359c60c9b2678de3e08e31b5db658d4c439df52a1da3998a616757e8fb90"}}, {"rule": 2, "type": "equivalent", "target": "46427e125a70e51c6f0c98928b775de3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d373359c60c9b2678de3e08e31b5db658d4c439df52a1da3998a616757e8fb90"}}, {"rule": 2, "type": "equivalent", "target": "50f0a9e0cfb049a7cead7166e0526ccf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d373359c60c9b2678de3e08e31b5db658d4c439df52a1da3998a616757e8fb90"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "25923104378ff078f6db6dfc3a69ed95", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "修复 ecpg 提供的头文件，使其不包含从预处理指令行延续到下一行的注释", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d373359c60c9b2678de3e08e31b5db658d4c439df52a1da3998a616757e8fb90"}, "url": "/docs/compare/?release=9.5.1#9.5.1-265e230ca84c450a", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "50f0a9e0cfb049a7cead7166e0526ccf", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 ecpg 提供的头文件，使其不包含从预处理指令行延续到下一行的注释", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d373359c60c9b2678de3e08e31b5db658d4c439df52a1da3998a616757e8fb90"}, "url": "/docs/compare/?release=9.4.6#9.4.6-265e230ca84c450a", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "46427e125a70e51c6f0c98928b775de3", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "修复 ecpg 提供的头文件，使其不包含从预处理指令行延续到下一行的注释", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d373359c60c9b2678de3e08e31b5db658d4c439df52a1da3998a616757e8fb90"}, "url": "/docs/compare/?release=9.2.15#9.2.15-265e230ca84c450a", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "0bf8a231c2b475eb4b99b5b31cdf39ee", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "修复 ecpg 提供的头文件，使其不包含从预处理指令行延续到下一行的注释", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d373359c60c9b2678de3e08e31b5db658d4c439df52a1da3998a616757e8fb90"}, "url": "/docs/compare/?release=9.1.20#9.1.20-265e230ca84c450a", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-c90195d020119a21", "cves": [], "html": "<p>修复 <code>hstore_to_json_loose()</code> 对 <code>hstore</code> 值能否转换为 JSON 数字的测试（Tom Lane）</p>\n<p>以前该函数可能被尾部的非字母数字字符欺骗，导致输出语法无效的 JSON。</p>", "text": "修复 hstore_to_json_loose() 对 hstore 值能否转换为 JSON 数字的测试（Tom Lane） 以前该函数可能被尾部的非字母数字字符欺骗，导致输出语法无效的 JSON。", "title": "修复 hstore_to_json_loose() 对 hstore 值能否转换为 JSON 数字的测试", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "66e58b57c6881dab8412ed70ed75cc97f99b7fe5dfb5851ccc4e3757ae44ba32", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix hstore_to_json_loose()'s test for whether an hstore value can be converted to a JSON number (Tom Lane) Previously this function could be fooled by non-alphanumeric trailing characters, leading to emitting syntactically-invalid JSON.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/049", "db_id": "03f2410191b24ef609506ead82abc566", "patch_ids": [], "statement_hash": "0af8bbd9bec4ee929e53a8ba062ce284da2e6662bf12024a57f4329ee6b33bc8", "relations": [{"rule": 2, "type": "equivalent", "target": "04bda60ae91abda4ba10b35de91c4e22", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0af8bbd9bec4ee929e53a8ba062ce284da2e6662bf12024a57f4329ee6b33bc8"}}, {"rule": 2, "type": "equivalent", "target": "0c8d921d241d195812cf1b0b980d872a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0af8bbd9bec4ee929e53a8ba062ce284da2e6662bf12024a57f4329ee6b33bc8"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0c8d921d241d195812cf1b0b980d872a", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "修复 hstore_to_json_loose() 对 hstore 值能否转换为 JSON 数字的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0af8bbd9bec4ee929e53a8ba062ce284da2e6662bf12024a57f4329ee6b33bc8"}, "url": "/docs/compare/?release=9.5.1#9.5.1-c90195d020119a21", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "04bda60ae91abda4ba10b35de91c4e22", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "修复 hstore_to_json_loose() 对 hstore 值能否转换为 JSON 数字的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0af8bbd9bec4ee929e53a8ba062ce284da2e6662bf12024a57f4329ee6b33bc8"}, "url": "/docs/compare/?release=9.4.6#9.4.6-c90195d020119a21", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}]}, {"id": "9.3.11-816aca1be8409695", "cves": [], "html": "<p>确保<code>contrib/pgcrypto</code>的<code>crypt()</code>函数可以被查询取消中断（Andreas Karlsson）</p>", "text": "确保contrib/pgcrypto的crypt()函数可以被查询取消中断（Andreas Karlsson）", "title": "确保contrib/pgcrypto的crypt()函数可以被查询取消中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "35811a335982171bd2b5d99e5277198c69d654a0bb06efd52e4f923c9b240699", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that contrib/pgcrypto's crypt() function can be interrupted by query cancel (Andreas Karlsson)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/050", "db_id": "6072883e694987de5df5f3f8a459bcc3", "patch_ids": [], "statement_hash": "d5aba7cc58e9448274e3b19ac4bb3fead01664880d10c5378aae43f85430e928", "relations": [{"rule": 2, "type": "equivalent", "target": "36d163f66a9547a06695af730291f2c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5aba7cc58e9448274e3b19ac4bb3fead01664880d10c5378aae43f85430e928"}}, {"rule": 2, "type": "equivalent", "target": "4e4a68abe07a7b26e6364073aeb52f4f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5aba7cc58e9448274e3b19ac4bb3fead01664880d10c5378aae43f85430e928"}}, {"rule": 2, "type": "equivalent", "target": "f818b18649961b8a146ae214059f6113", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5aba7cc58e9448274e3b19ac4bb3fead01664880d10c5378aae43f85430e928"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "36d163f66a9547a06695af730291f2c7", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "确保 contrib/pgcrypto 的 crypt() 函数可被查询取消中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5aba7cc58e9448274e3b19ac4bb3fead01664880d10c5378aae43f85430e928"}, "url": "/docs/compare/?release=9.4.6#9.4.6-3fc60742b8cf2759", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "f818b18649961b8a146ae214059f6113", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "确保contrib/pgcrypto的crypt()函数可以被查询取消中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5aba7cc58e9448274e3b19ac4bb3fead01664880d10c5378aae43f85430e928"}, "url": "/docs/compare/?release=9.2.15#9.2.15-816aca1be8409695", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "4e4a68abe07a7b26e6364073aeb52f4f", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "确保contrib/pgcrypto的crypt()函数可以被查询取消中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d5aba7cc58e9448274e3b19ac4bb3fead01664880d10c5378aae43f85430e928"}, "url": "/docs/compare/?release=9.1.20#9.1.20-816aca1be8409695", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-36715e8c85c0a3ef", "cves": [], "html": "<p>接受晚于 2.5.x 的<span>flex</span>版本（Tom Lane、Michael Paquier）</p>\n<p>由于 flex 2.6.0 已发布，需要调整构建脚本中的版本检查。</p>", "text": "接受晚于 2.5.x 的flex版本（Tom Lane、Michael Paquier） 由于 flex 2.6.0 已发布，需要调整构建脚本中的版本检查。", "title": "接受晚于 2.5.x 的flex版本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "a26c9ab366197ea5af9c122c84d76b775441ef32059f336b1ace009f7532749e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Accept flex versions later than 2.5.x (Tom Lane, Michael Paquier) Now that flex 2.6.0 has been released, the version checks in our build scripts needed to be adjusted.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/051", "db_id": "8a0495dc8bcbd35f65151fffd05ec57d", "patch_ids": [], "statement_hash": "64c451275012077edec5617571e4a00e75916d692cf2207b84f1343651cba057", "relations": [{"rule": 2, "type": "equivalent", "target": "21af7d9d2bbb4b0700a874ad548b49dc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64c451275012077edec5617571e4a00e75916d692cf2207b84f1343651cba057"}}, {"rule": 2, "type": "equivalent", "target": "810de2d9ab88c5ef9d847a8f42e8b5ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64c451275012077edec5617571e4a00e75916d692cf2207b84f1343651cba057"}}, {"rule": 2, "type": "equivalent", "target": "cf08c0a4cd2bb213b067a24b32cfb765", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64c451275012077edec5617571e4a00e75916d692cf2207b84f1343651cba057"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "810de2d9ab88c5ef9d847a8f42e8b5ea", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "接受晚于 2.5.x 的flex版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64c451275012077edec5617571e4a00e75916d692cf2207b84f1343651cba057"}, "url": "/docs/compare/?release=9.4.6#9.4.6-36715e8c85c0a3ef", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "cf08c0a4cd2bb213b067a24b32cfb765", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "接受晚于 2.5.x 的flex版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64c451275012077edec5617571e4a00e75916d692cf2207b84f1343651cba057"}, "url": "/docs/compare/?release=9.2.15#9.2.15-36715e8c85c0a3ef", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "21af7d9d2bbb4b0700a874ad548b49dc", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "接受晚于 2.5.x 的flex版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "64c451275012077edec5617571e4a00e75916d692cf2207b84f1343651cba057"}, "url": "/docs/compare/?release=9.1.20#9.1.20-36715e8c85c0a3ef", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-e403ee59d1b1487c", "cves": [], "html": "<p>通过确保以固定顺序向链接器提供文件名，提高构建输出的可重现性（Christoph Berg）</p>\n<p>这避免了产生的可执行文件在不同构建之间可能出现按位差异。</p>", "text": "通过确保以固定顺序向链接器提供文件名，提高构建输出的可重现性（Christoph Berg） 这避免了产生的可执行文件在不同构建之间可能出现按位差异。", "title": "通过确保以固定顺序向链接器提供文件名，提高构建输出的可重现性", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "199fdef18ba63db71265f40385e6d5746ff6dcde6f83d902e00915b4855978e3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve reproducibility of build output by ensuring filenames are given to the linker in a fixed order (Christoph Berg) This avoids possible bitwise differences in the produced executable files from one build to the next.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/052", "db_id": "6c585d6778a3d2697d5dcc424f1d350c", "patch_ids": [], "statement_hash": "6f3f8d895e1f4d6fe829ed428f3184029a3c175fcb43a82fed9db6214a5c25c2", "relations": [{"rule": 2, "type": "equivalent", "target": "7866311e30659f5004aabe65ed6de911", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3f8d895e1f4d6fe829ed428f3184029a3c175fcb43a82fed9db6214a5c25c2"}}, {"rule": 2, "type": "equivalent", "target": "f7e1414cc27ba5e639b640d4543e7178", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3f8d895e1f4d6fe829ed428f3184029a3c175fcb43a82fed9db6214a5c25c2"}}], "version": "9.3.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7e1414cc27ba5e639b640d4543e7178", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "通过确保以固定顺序向链接器提供文件名，提高构建输出的可重现性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3f8d895e1f4d6fe829ed428f3184029a3c175fcb43a82fed9db6214a5c25c2"}, "url": "/docs/compare/?release=9.5.1#9.5.1-e403ee59d1b1487c", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "7866311e30659f5004aabe65ed6de911", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "通过确保以固定顺序向链接器提供文件名，提高构建输出的可重现性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3f8d895e1f4d6fe829ed428f3184029a3c175fcb43a82fed9db6214a5c25c2"}, "url": "/docs/compare/?release=9.4.6#9.4.6-e403ee59d1b1487c", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}]}, {"id": "9.3.11-a12a91658dfce79a", "cves": [], "html": "<p>将我们的<code>missing</code>脚本安装到 PGXS 构建能找到的位置（Jim Nasby）</p>\n<p>这使得在缺少<span>bison</span>等构建工具的机器上进行 PGXS 构建时能有合理的行为。</p>", "text": "将我们的missing脚本安装到 PGXS 构建能找到的位置（Jim Nasby） 这使得在缺少bison等构建工具的机器上进行 PGXS 构建时能有合理的行为。", "title": "将我们的missing脚本安装到 PGXS 构建能找到的位置", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "7b2b1c81c7ef5ed5ab385730a0a92df78b2604bb4ffebc4fe4887375d0d4b87d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Install our missing script where PGXS builds can find it (Jim Nasby) This allows sane behavior in a PGXS build done on a machine where build tools such as bison are missing.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/053", "db_id": "fd08a31e743464a85e16e2d20143c96e", "patch_ids": [], "statement_hash": "e259256dcdad6e7a7c80962e25df103d90bb0fff4855fa10ea1978fbe718a80d", "relations": [{"rule": 2, "type": "equivalent", "target": "275e93f5a756d47f0363e038c636234f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e259256dcdad6e7a7c80962e25df103d90bb0fff4855fa10ea1978fbe718a80d"}}, {"rule": 2, "type": "equivalent", "target": "399319a63d71f37295a6f4de7ce9335c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e259256dcdad6e7a7c80962e25df103d90bb0fff4855fa10ea1978fbe718a80d"}}, {"rule": 2, "type": "equivalent", "target": "8afb0953e59f0ba75f121de3072efb3c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e259256dcdad6e7a7c80962e25df103d90bb0fff4855fa10ea1978fbe718a80d"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8afb0953e59f0ba75f121de3072efb3c", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "将我们的missing脚本安装到 PGXS 构建能找到的位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e259256dcdad6e7a7c80962e25df103d90bb0fff4855fa10ea1978fbe718a80d"}, "url": "/docs/compare/?release=9.4.6#9.4.6-a12a91658dfce79a", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "275e93f5a756d47f0363e038c636234f", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "将我们的missing脚本安装到 PGXS 构建能找到的位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e259256dcdad6e7a7c80962e25df103d90bb0fff4855fa10ea1978fbe718a80d"}, "url": "/docs/compare/?release=9.2.15#9.2.15-a12a91658dfce79a", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "399319a63d71f37295a6f4de7ce9335c", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "将我们的missing脚本安装到 PGXS 构建能找到的位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e259256dcdad6e7a7c80962e25df103d90bb0fff4855fa10ea1978fbe718a80d"}, "url": "/docs/compare/?release=9.1.20#9.1.20-a12a91658dfce79a", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-a9f19425bc6a02bc", "cves": [], "html": "<p>确保 <code>dynloader.h</code> 包含在 MSVC 构建安装的头文件中（Bruce Momjian、Michael Paquier）</p>", "text": "确保 dynloader.h 包含在 MSVC 构建安装的头文件中（Bruce Momjian、Michael Paquier）", "title": "确保 dynloader.h 包含在 MSVC 构建安装的头文件中", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "aeda060b735fbc220542de8d385a4decdba8f6d898707cb355495b9cb3e1fa7d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that dynloader.h is included in the installed header files in MSVC builds (Bruce Momjian, Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/054", "db_id": "24615ed3777f4cc8415f1be5cb3c6886", "patch_ids": [], "statement_hash": "eb43a65f20af59d1229f53f762d7a70750b26fc149366d58b3dd6099d368dd83", "relations": [{"rule": 2, "type": "equivalent", "target": "3620494c7d45e6dfc1d177208fe06745", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb43a65f20af59d1229f53f762d7a70750b26fc149366d58b3dd6099d368dd83"}}, {"rule": 2, "type": "equivalent", "target": "d7a602e7b3be1c6f91455ba18fac8ae3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb43a65f20af59d1229f53f762d7a70750b26fc149366d58b3dd6099d368dd83"}}, {"rule": 2, "type": "equivalent", "target": "da1850390a9c1f327882277c4eb3def9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb43a65f20af59d1229f53f762d7a70750b26fc149366d58b3dd6099d368dd83"}}, {"rule": 2, "type": "equivalent", "target": "f15b775bc084b37a970dbfe86e6aba76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb43a65f20af59d1229f53f762d7a70750b26fc149366d58b3dd6099d368dd83"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "da1850390a9c1f327882277c4eb3def9", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "确保 dynloader.h 包含在 MSVC 构建安装的头文件中", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb43a65f20af59d1229f53f762d7a70750b26fc149366d58b3dd6099d368dd83"}, "url": "/docs/compare/?release=9.5.1#9.5.1-a9f19425bc6a02bc", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "d7a602e7b3be1c6f91455ba18fac8ae3", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "确保 MSVC 构建中安装的头文件包含dynloader.h", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb43a65f20af59d1229f53f762d7a70750b26fc149366d58b3dd6099d368dd83"}, "url": "/docs/compare/?release=9.4.6#9.4.6-4bace5f9003e475f", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "3620494c7d45e6dfc1d177208fe06745", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "确保 dynloader.h 包含在 MSVC 构建安装的头文件中", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb43a65f20af59d1229f53f762d7a70750b26fc149366d58b3dd6099d368dd83"}, "url": "/docs/compare/?release=9.2.15#9.2.15-a9f19425bc6a02bc", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "f15b775bc084b37a970dbfe86e6aba76", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "确保 dynloader.h 包含在 MSVC 构建安装的头文件中", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb43a65f20af59d1229f53f762d7a70750b26fc149366d58b3dd6099d368dd83"}, "url": "/docs/compare/?release=9.1.20#9.1.20-a9f19425bc6a02bc", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-7110ad0033f27e27", "cves": ["CVE-2015-7499"], "html": "<p>新增变体回归测试期望输出文件，以匹配当前<span>libxml2</span>的行为（Tom Lane）</p>\n<p><span>libxml2</span>对 CVE-2015-7499 的修复导致它在某些过去会输出错误上下文报告的情况下不再输出。这似乎是一个缺陷，但我们可能不得不在一段时间内接受它，因此做了变通处理。</p>", "text": "新增变体回归测试期望输出文件，以匹配当前libxml2的行为（Tom Lane） libxml2对 CVE-2015-7499 的修复导致它在某些过去会输出错误上下文报告的情况下不再输出。这似乎是一个缺陷，但我们可能不得不在一段时间内接受它，因此做了变通处理。", "title": "新增变体回归测试期望输出文件，以匹配当前libxml2的行为", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "62a43ffc293498cf47455f4a9d456c78449b983d0954bd5c9e390924436bf254", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add variant regression test expected-output file to match behavior of current libxml2 (Tom Lane) The fix for libxml2's CVE-2015-7499 causes it not to output error context reports in some cases where it used to do so. This seems to be a bug, but we'll probably have to live with it for some time, so work around it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/055", "db_id": "f170c0a6d2f825e1703e30d22ba3afc1", "patch_ids": [], "statement_hash": "4e9998b11c8ae5678c7c35e18046aabbd878497c12ef0e622032a73524726d32", "relations": [{"rule": 2, "type": "equivalent", "target": "6e4463eeaf593e5a1065da9c33ba9f7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e9998b11c8ae5678c7c35e18046aabbd878497c12ef0e622032a73524726d32"}}, {"rule": 2, "type": "equivalent", "target": "a97feb129ece72a5fcdac009e274bcdb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e9998b11c8ae5678c7c35e18046aabbd878497c12ef0e622032a73524726d32"}}, {"rule": 2, "type": "equivalent", "target": "dcebfb5ac7f7f9520d59041656980bcf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e9998b11c8ae5678c7c35e18046aabbd878497c12ef0e622032a73524726d32"}}], "version": "9.3.11", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "a97feb129ece72a5fcdac009e274bcdb", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "新增变体回归测试期望输出文件，以匹配当前libxml2的行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e9998b11c8ae5678c7c35e18046aabbd878497c12ef0e622032a73524726d32"}, "url": "/docs/compare/?release=9.4.6#9.4.6-7110ad0033f27e27", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "dcebfb5ac7f7f9520d59041656980bcf", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "新增变体回归测试期望输出文件，以匹配当前libxml2的行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e9998b11c8ae5678c7c35e18046aabbd878497c12ef0e622032a73524726d32"}, "url": "/docs/compare/?release=9.2.15#9.2.15-7110ad0033f27e27", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "6e4463eeaf593e5a1065da9c33ba9f7b", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "新增变体回归测试期望输出文件，以匹配当前libxml2的行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e9998b11c8ae5678c7c35e18046aabbd878497c12ef0e622032a73524726d32"}, "url": "/docs/compare/?release=9.1.20#9.1.20-7110ad0033f27e27", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}, {"id": "9.3.11-4a8856bb6c168e90", "cves": [], "html": "<p>把时区数据文件更新到 <span>tzdata</span> 2016a 版，涉及开曼群岛、梅特拉卡特拉和外贝加尔边疆区的夏令时法规变更，以及巴基斯坦的历史数据修正。</p>", "text": "把时区数据文件更新到 tzdata 2016a 版，涉及开曼群岛、梅特拉卡特拉和外贝加尔边疆区的夏令时法规变更，以及巴基斯坦的历史数据修正。", "title": "把时区数据文件更新到 tzdata 2016a 版，涉及开曼群岛、梅特拉卡特拉和外贝加尔边疆区的夏令时法规变更，以及巴基斯坦的历史数据修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.11/#id-1.11.6.19.5", "source_hash": "0de04b7c71cb7bf3b6c6f53e7740a355957f07616d0fef41ee07fc13a33efe77", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2016a for DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.11/changes/056", "db_id": "2dd502f3961a7bc4d19efd4ee63e9da5", "patch_ids": [], "statement_hash": "638399189025dc0c121b79118fc69a6e45ded5ed4e52b9f4393ef2458a3201c8", "relations": [{"rule": 2, "type": "equivalent", "target": "5597e80195585ed30008c59306886b22", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "638399189025dc0c121b79118fc69a6e45ded5ed4e52b9f4393ef2458a3201c8"}}, {"rule": 2, "type": "equivalent", "target": "dcb5b295c36a7627a763f51c946763ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "638399189025dc0c121b79118fc69a6e45ded5ed4e52b9f4393ef2458a3201c8"}}, {"rule": 2, "type": "equivalent", "target": "dfb917d07e1c239db68c9dd1bf24ca9a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "638399189025dc0c121b79118fc69a6e45ded5ed4e52b9f4393ef2458a3201c8"}}, {"rule": 2, "type": "equivalent", "target": "f08f6b2c87032eb0ae56d29afd228106", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "638399189025dc0c121b79118fc69a6e45ded5ed4e52b9f4393ef2458a3201c8"}}], "version": "9.3.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5597e80195585ed30008c59306886b22", "kind": "equivalent", "version": "9.5.1", "label": "9.5.1", "title": "把时区数据文件更新到 tzdata 2016a 版，涉及开曼群岛、梅特拉卡特拉和外贝加尔边疆区的夏令时法规变更，以及巴基斯坦的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "638399189025dc0c121b79118fc69a6e45ded5ed4e52b9f4393ef2458a3201c8"}, "url": "/docs/compare/?release=9.5.1#9.5.1-4a8856bb6c168e90", "source_url": "/docs/release/9.5.1/#id-1.11.6.29.5"}, {"db_id": "f08f6b2c87032eb0ae56d29afd228106", "kind": "equivalent", "version": "9.4.6", "label": "9.4.6", "title": "将时区数据文件更新到tzdata发行版 2016a，以反映开曼群岛、梅特拉卡特拉和外贝加尔边疆区的夏令时法规变更，以及巴基斯坦的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "638399189025dc0c121b79118fc69a6e45ded5ed4e52b9f4393ef2458a3201c8"}, "url": "/docs/compare/?release=9.4.6#9.4.6-e5191de67210fcce", "source_url": "/docs/release/9.4.6/#id-1.11.6.25.5"}, {"db_id": "dcb5b295c36a7627a763f51c946763ec", "kind": "equivalent", "version": "9.2.15", "label": "9.2.15", "title": "把时区数据文件更新到 tzdata 2016a 版，涉及开曼群岛、梅特拉卡特拉和外贝加尔边疆区的夏令时法规变更，以及巴基斯坦的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "638399189025dc0c121b79118fc69a6e45ded5ed4e52b9f4393ef2458a3201c8"}, "url": "/docs/compare/?release=9.2.15#9.2.15-4a8856bb6c168e90", "source_url": "/docs/release/9.2.15/#id-1.11.6.14.5"}, {"db_id": "dfb917d07e1c239db68c9dd1bf24ca9a", "kind": "equivalent", "version": "9.1.20", "label": "9.1.20", "title": "把时区数据文件更新到 tzdata 2016a 版，涉及开曼群岛、梅特拉卡特拉和外贝加尔边疆区的夏令时法规变更，以及巴基斯坦的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "638399189025dc0c121b79118fc69a6e45ded5ed4e52b9f4393ef2458a3201c8"}, "url": "/docs/compare/?release=9.1.20#9.1.20-4a8856bb6c168e90", "source_url": "/docs/release/9.1.20/#id-1.11.6.9.5"}]}]}, {"date": "2015-10-08", "build": "9.3.10", "major": "9.3", "minor": 10, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.10", "eol_date": "2018-11-08", "date_text": "2015-10-08", "supported": false, "manual_url": "/docs/9.3/release-9-3-10.html", "source_url": "/docs/release/9.3.10/", "entry_count": 62, "placeholder": false, "content_hash": "b408aa58525b9d0b2cb4e4a41e8825ffb79cd23ec151b1ed4ab0adbea7bc9e16", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 62, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.3.9 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-9.html\" title=\"E.17. 版本 9.3.9\">第 E.17 节</a>。</p>", "compatibility_count": 0, "label": "9.3.10", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4010, "support_days": -2883, "entries": [{"id": "9.3.10-bda64c7b3d317532", "cves": ["CVE-2015-5289"], "html": "<p>防御<code>json</code>解析中的栈溢出（Oskari Saarenmaa）</p>\n<p>如果应用程序从任意用户输入构造 PostgreSQL <code>json</code>或<code>jsonb</code>值，应用程序的用户就能可靠地使 PostgreSQL 服务器崩溃，造成短暂的服务拒绝。（CVE-2015-5289）</p>", "text": "防御json解析中的栈溢出（Oskari Saarenmaa） 如果应用程序从任意用户输入构造 PostgreSQL json或jsonb值，应用程序的用户就能可靠地使 PostgreSQL 服务器崩溃，造成短暂的服务拒绝。（CVE-2015-5289）", "title": "防御json解析中的栈溢出", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "cd8685df05ad36a9fa6c325cbcc38ed3222694ffa8867f9736eb788cf7619a96", "section_path": ["变更"], "commit_groups": [], "identity_text": "Guard against stack overflows in json parsing (Oskari Saarenmaa) If an application constructs PostgreSQL json or jsonb values from arbitrary user input, the application's users can reliably crash the PostgreSQL server, causing momentary denial of service. (CVE-2015-5289)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/001", "db_id": "9591fd7f0272927c793159e8354fab42", "patch_ids": [], "statement_hash": "d3c886dbf7f30b7ca712c3d9f1e1a80b085085352f94ca4a2429a255df915b73", "relations": [{"rule": 2, "type": "equivalent", "target": "98cfbe9c0ee2aae172dbcc32f59f8bbf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3c886dbf7f30b7ca712c3d9f1e1a80b085085352f94ca4a2429a255df915b73"}}], "version": "9.3.10", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "98cfbe9c0ee2aae172dbcc32f59f8bbf", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "防御json解析中的栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3c886dbf7f30b7ca712c3d9f1e1a80b085085352f94ca4a2429a255df915b73"}, "url": "/docs/compare/?release=9.4.5#9.4.5-bda64c7b3d317532", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}]}, {"id": "9.3.10-f6d5fd9c0b0fa047", "cves": ["CVE-2015-5288"], "html": "<p>修复<code>contrib/pgcrypto</code>以检测并报告过短的<code>crypt()</code>盐值（Josh Kupershmidt）</p>\n<p>某些无效的盐值参数会导致服务器崩溃或泄露少量服务器内存字节。我们尚未排除通过安排让泄露字节中出现机密信息实施攻击的可行性，但这种攻击似乎不太可能。（CVE-2015-5288）</p>", "text": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值（Josh Kupershmidt） 某些无效的盐值参数会导致服务器崩溃或泄露少量服务器内存字节。我们尚未排除通过安排让泄露字节中出现机密信息实施攻击的可行性，但这种攻击似乎不太可能。（CVE-2015-5288）", "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "d4e9723ce1f9fbb8f73de7da9f7546bc34804df5113085fea4cfb3904440f9ce", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/pgcrypto to detect and report too-short crypt() salts (Josh Kupershmidt) Certain invalid salt arguments crashed the server or disclosed a few bytes of server memory. We have not ruled out the viability of attacks that arrange for presence of confidential information in the disclosed bytes, but they seem unlikely. (CVE-2015-5288)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/002", "db_id": "4e8af8c24be51bf8965c3d4f3cd9023f", "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849", "relations": [{"rule": 2, "type": "equivalent", "target": "023971ce213db745811080467a147da5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}}, {"rule": 2, "type": "equivalent", "target": "09f590d22c6967162e3c8e7655021e8c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}}, {"rule": 2, "type": "equivalent", "target": "5c8d7e71c4ba5874e51f9ef1f2f6b446", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}}, {"rule": 2, "type": "equivalent", "target": "d955d1abe6e6e279632d815a8759c127", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}}], "version": "9.3.10", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "5c8d7e71c4ba5874e51f9ef1f2f6b446", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}, "url": "/docs/compare/?release=9.4.5#9.4.5-f6d5fd9c0b0fa047", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "023971ce213db745811080467a147da5", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}, "url": "/docs/compare/?release=9.2.14#9.2.14-f6d5fd9c0b0fa047", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "d955d1abe6e6e279632d815a8759c127", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}, "url": "/docs/compare/?release=9.1.19#9.1.19-f6d5fd9c0b0fa047", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "09f590d22c6967162e3c8e7655021e8c", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a234bf621fcfcffa2cc89841dc444c39420ad13fdd09fcc48f6f91c441772849"}, "url": "/docs/compare/?release=9.0.23#9.0.23-f6d5fd9c0b0fa047", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-11fa2086c9cecc13", "cves": [], "html": "<p>修复属于外部子事务的门户（游标）失败后的子事务清理问题（Tom Lane、Michael Paquier）</p>\n<p>在外部子事务游标中执行的函数可能因引用在内部子事务中创建的关系而导致断言失败或崩溃。</p>", "text": "修复属于外部子事务的门户（游标）失败后的子事务清理问题（Tom Lane、Michael Paquier） 在外部子事务游标中执行的函数可能因引用在内部子事务中创建的关系而导致断言失败或崩溃。", "title": "修复属于外部子事务的门户（游标）失败后的子事务清理问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "bea5a8bfe4f2321ada94c973352b782b797d27c9862e5a8e5282fec1f1b0575c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix subtransaction cleanup after a portal (cursor) belonging to an outer subtransaction fails (Tom Lane, Michael Paquier) A function executed in an outer-subtransaction cursor could cause an assertion failure or crash by referencing a relation created within an inner subtransaction.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/003", "db_id": "da7cb39314ff628774b9077464dec997", "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5", "relations": [{"rule": 2, "type": "equivalent", "target": "839757c8fdc8f6ba56622f7cd3c1e54a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}}, {"rule": 2, "type": "equivalent", "target": "94727363730560e355182e09b0eb64e6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}}, {"rule": 2, "type": "equivalent", "target": "9c97416d4a2f038c6ae822c7406d44e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}}, {"rule": 2, "type": "equivalent", "target": "a26a163b498feea73aba821c37843b81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9c97416d4a2f038c6ae822c7406d44e1", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复属于外部子事务的门户（游标）失败后的子事务清理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}, "url": "/docs/compare/?release=9.4.5#9.4.5-11fa2086c9cecc13", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "839757c8fdc8f6ba56622f7cd3c1e54a", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复属于外部子事务的门户（游标）失败后的子事务清理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}, "url": "/docs/compare/?release=9.2.14#9.2.14-11fa2086c9cecc13", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "a26a163b498feea73aba821c37843b81", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复属于外部子事务的门户（游标）失败后的子事务清理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}, "url": "/docs/compare/?release=9.1.19#9.1.19-11fa2086c9cecc13", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "94727363730560e355182e09b0eb64e6", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复属于外部子事务的门户（游标）失败后的子事务清理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "af81d0941acffc00a731e1e617e596c508dfdccb8fd51ef00f686904b2779db5"}, "url": "/docs/compare/?release=9.0.23#9.0.23-11fa2086c9cecc13", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-5262155059480b64", "cves": [], "html": "<p>确保在更新语句期间正确锁定可更新视图引用的所有关系（Dean Rasheed）</p>", "text": "确保在更新语句期间正确锁定可更新视图引用的所有关系（Dean Rasheed）", "title": "确保在更新语句期间正确锁定可更新视图引用的所有关系", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "6cda15d78fc81330b120b438405dd5bdc003c5594f26f6fe78bca72f3f68c03b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure all relations referred to by an updatable view are properly locked during an update statement (Dean Rasheed)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/004", "db_id": "65f068e47f710b9872979eb24818125b", "patch_ids": [], "statement_hash": "eaf690245a2f1438d3803d09096cb506c26bf182e5757b292c273f18e48cc630", "relations": [{"rule": 2, "type": "equivalent", "target": "af644e7e3379e05c476a1d3e90f9d390", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaf690245a2f1438d3803d09096cb506c26bf182e5757b292c273f18e48cc630"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "af644e7e3379e05c476a1d3e90f9d390", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "确保更新语句期间对可更新视图引用的所有关系正确加锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaf690245a2f1438d3803d09096cb506c26bf182e5757b292c273f18e48cc630"}, "url": "/docs/compare/?release=9.4.5#9.4.5-9531d55fa38bb6b8", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}]}, {"id": "9.3.10-4b6caa96288d390a", "cves": [], "html": "<p>修复关系插入关系缓存<span>“<span>init 文件</span>”</span>的问题（Tom Lane）</p>\n<p>最近几个小版本中一个补丁的疏忽导致<code>pg_trigger_tgrelid_tgname_index</code>被遗漏在 init 文件之外。后续会话检测到这一点后认定 init 文件已损坏并静默忽略它，导致会话启动时间显著退化。除修复该缺陷外，还加入了一些防护，使未来任何类似错误更明显。</p>", "text": "修复关系插入关系缓存“init 文件”的问题（Tom Lane） 最近几个小版本中一个补丁的疏忽导致pg_trigger_tgrelid_tgname_index被遗漏在 init 文件之外。后续会话检测到这一点后认定 init 文件已损坏并静默忽略它，导致会话启动时间显著退化。除修复该缺陷外，还加入了一些防护，使未来任何类似错误更明显。", "title": "修复关系插入关系缓存“init 文件”的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "adc042a4849996aa538b138c48e7f790cf49f8a47f92b489de14b93488303847", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix insertion of relations into the relation cache init file (Tom Lane) An oversight in a patch in the most recent minor releases caused pg_trigger_tgrelid_tgname_index to be omitted from the init file. Subsequent sessions detected this, then deemed the init file to be broken and silently ignored it, resulting in a significant degradation in session startup time. In addition to fixing the bug, install some guards so that any similar future mistake will be more obvious.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/005", "db_id": "99944d7e0ae20b23dd7b275bf460d607", "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c", "relations": [{"rule": 2, "type": "equivalent", "target": "61692501788aaceb31ddad400e61bbcd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}}, {"rule": 2, "type": "equivalent", "target": "7b8f13be5e717f3e0828c7949d8bd380", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}}, {"rule": 2, "type": "equivalent", "target": "98c88ab03618ab451f3ac23148b16707", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}}, {"rule": 2, "type": "equivalent", "target": "f1ed4b512fa43344dc1b27427c01664f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "61692501788aaceb31ddad400e61bbcd", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复关系插入关系缓存“init 文件”的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}, "url": "/docs/compare/?release=9.4.5#9.4.5-4b6caa96288d390a", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "7b8f13be5e717f3e0828c7949d8bd380", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复关系插入关系缓存“init 文件”的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}, "url": "/docs/compare/?release=9.2.14#9.2.14-4b6caa96288d390a", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "f1ed4b512fa43344dc1b27427c01664f", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复关系插入关系缓存“init 文件”的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}, "url": "/docs/compare/?release=9.1.19#9.1.19-4b6caa96288d390a", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "98c88ab03618ab451f3ac23148b16707", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复关系插入关系缓存“init 文件”的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca2ca49868e752e81564376cd0cdd0dc49319e455a2654a8d1759934f33f7e5c"}, "url": "/docs/compare/?release=9.0.23#9.0.23-4b6caa96288d390a", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-d3c5f0a400989c3a", "cves": [], "html": "<p>避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为（Neil Conway）</p>", "text": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为（Neil Conway）", "title": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "cb262d2cda9ad6e192d53241855b146ef602c6223edd7b8c27a49186cfd7e387", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid O(N^2) behavior when inserting many tuples into a SPI query result (Neil Conway)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/006", "db_id": "42665046f8921ee2cb564cacf4b04bf5", "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6", "relations": [{"rule": 2, "type": "equivalent", "target": "7e133ac0846653b21e325c503d0647c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}}, {"rule": 2, "type": "equivalent", "target": "ad508996ce70ab783648766dd9917f32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}}, {"rule": 2, "type": "equivalent", "target": "b36ce3b829b20f058574f19c41196450", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}}, {"rule": 2, "type": "equivalent", "target": "e8341192d7e0259308ae4f89de77f112", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ad508996ce70ab783648766dd9917f32", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}, "url": "/docs/compare/?release=9.4.5#9.4.5-d3c5f0a400989c3a", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "7e133ac0846653b21e325c503d0647c3", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}, "url": "/docs/compare/?release=9.2.14#9.2.14-d3c5f0a400989c3a", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "b36ce3b829b20f058574f19c41196450", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}, "url": "/docs/compare/?release=9.1.19#9.1.19-d3c5f0a400989c3a", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "e8341192d7e0259308ae4f89de77f112", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c21d5f0f2d1589ec56e8d595f44daf9997e8e3927e2e25ce07a6549210fa24b6"}, "url": "/docs/compare/?release=9.0.23#9.0.23-d3c5f0a400989c3a", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-6e0dfb80f0b78715", "cves": [], "html": "<p>改进存在大量未读通知时<code>LISTEN</code>的启动时间（Matt Newell）</p>", "text": "改进存在大量未读通知时LISTEN的启动时间（Matt Newell）", "title": "改进存在大量未读通知时LISTEN的启动时间", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "c05b9b44b6cd56907b71c8bf7adb1100373d2b11fede919487a6e8ef5a10b50c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve LISTEN startup time when there are many unread notifications (Matt Newell)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/007", "db_id": "eaf59084e6d1cdf68284337913e0cfe1", "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf", "relations": [{"rule": 2, "type": "equivalent", "target": "49617164dd58b0c32c44e1be173c91e6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}}, {"rule": 2, "type": "equivalent", "target": "7416578426fe5fb880075a18b8b734c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}}, {"rule": 2, "type": "equivalent", "target": "c12c81c90eff79e8c5bde28c085b1263", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}}, {"rule": 2, "type": "equivalent", "target": "c19ffcaa837c4dcb69af0854e6f1818b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c12c81c90eff79e8c5bde28c085b1263", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "改进存在大量未读通知时 LISTEN 的启动时间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}, "url": "/docs/compare/?release=9.4.5#9.4.5-16227e07c265bf9b", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "49617164dd58b0c32c44e1be173c91e6", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "改进存在大量未读通知时LISTEN的启动时间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}, "url": "/docs/compare/?release=9.2.14#9.2.14-6e0dfb80f0b78715", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "c19ffcaa837c4dcb69af0854e6f1818b", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "改进存在大量未读通知时LISTEN的启动时间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}, "url": "/docs/compare/?release=9.1.19#9.1.19-6e0dfb80f0b78715", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "7416578426fe5fb880075a18b8b734c5", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "改进存在大量未读通知时LISTEN的启动时间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "496fc16ccdbdecbc733b1d80533755907f696d0531952a2d7d79bc70f8e4fdcf"}, "url": "/docs/compare/?release=9.0.23#9.0.23-6e0dfb80f0b78715", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-2cb4167cab127170", "cves": [], "html": "<p>修复会话更改大量外键约束时的性能问题（Jan Wieck、Tom Lane）</p>\n<p>这主要在还原拥有数千张表的数据库的<span>pg_dump</span>输出时出现。</p>", "text": "修复会话更改大量外键约束时的性能问题（Jan Wieck、Tom Lane） 这主要在还原拥有数千张表的数据库的pg_dump输出时出现。", "title": "修复会话更改大量外键约束时的性能问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "a33bdddaf2785eb3f886b36f1c346acac143a8b685f8f81fbaf00c9aa5beacd0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix performance problem when a session alters large numbers of foreign key constraints (Jan Wieck, Tom Lane) This was seen primarily when restoring pg_dump output for databases with many thousands of tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/008", "db_id": "c31b17d4f9b5704e35c418051d10b396", "patch_ids": [], "statement_hash": "30a2660434096e2a55f4d8bb66c9238ea610adb61526c14ff7393205846053d9", "relations": [{"rule": 2, "type": "equivalent", "target": "9c3d53c6bb784b41b30b6ebb8e3243ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30a2660434096e2a55f4d8bb66c9238ea610adb61526c14ff7393205846053d9"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9c3d53c6bb784b41b30b6ebb8e3243ad", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复会话更改大量外键约束时的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30a2660434096e2a55f4d8bb66c9238ea610adb61526c14ff7393205846053d9"}, "url": "/docs/compare/?release=9.4.5#9.4.5-2cb4167cab127170", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}]}, {"id": "9.3.10-09699f683f48c936", "cves": [], "html": "<p>默认禁用 SSL 重新协商（Michael Paquier、Andres Freund）</p>\n<p>虽然使用 SSL 重新协商在理论上是个好主意，但实践中我们看到了太多缺陷，无论是底层 OpenSSL 库中还是我们对它的使用中。重新协商将在 9.5 及更高版本中完全移除。在较旧的分支中，只是把<code>ssl_renegotiation_limit</code>的默认值改为零（禁用）。</p>", "text": "默认禁用 SSL 重新协商（Michael Paquier、Andres Freund） 虽然使用 SSL 重新协商在理论上是个好主意，但实践中我们看到了太多缺陷，无论是底层 OpenSSL 库中还是我们对它的使用中。重新协商将在 9.5 及更高版本中完全移除。在较旧的分支中，只是把ssl_renegotiation_limit的默认值改为零（禁用）。", "title": "默认禁用 SSL 重新协商", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "99a1437eeb56f818ce3f302d2d2061d508e11513179d861295d6c3f8eb6c21d8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disable SSL renegotiation by default (Michael Paquier, Andres Freund) While use of SSL renegotiation is a good idea in theory, we have seen too many bugs in practice, both in the underlying OpenSSL library and in our usage of it. Renegotiation will be removed entirely in 9.5 and later. In the older branches, just change the default value of ssl_renegotiation_limit to zero (disabled).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/009", "db_id": "83ec0f3c7a8302177c216fecc429cc95", "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5", "relations": [{"rule": 2, "type": "equivalent", "target": "13ed9c5c66dae3c0189d0ff55a7aebe2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}}, {"rule": 2, "type": "equivalent", "target": "8374057133fda4900775cef6cd9dc201", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}}, {"rule": 2, "type": "equivalent", "target": "a0616a46d6f32209f2523632d7815d18", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}}, {"rule": 2, "type": "equivalent", "target": "d26b895676096d19b8d3f0e5cd3529d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "13ed9c5c66dae3c0189d0ff55a7aebe2", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "默认禁用 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}, "url": "/docs/compare/?release=9.4.5#9.4.5-09699f683f48c936", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "d26b895676096d19b8d3f0e5cd3529d7", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "默认禁用 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}, "url": "/docs/compare/?release=9.2.14#9.2.14-09699f683f48c936", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "a0616a46d6f32209f2523632d7815d18", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "默认禁用 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}, "url": "/docs/compare/?release=9.1.19#9.1.19-09699f683f48c936", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "8374057133fda4900775cef6cd9dc201", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "默认禁用 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc12f79347924d968c8511c23571fe8ed22d33cc49f2f4b7fb9af14432e77bb5"}, "url": "/docs/compare/?release=9.0.23#9.0.23-09699f683f48c936", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-ab785dfd161f565c", "cves": [], "html": "<p>降低<code>*_freeze_max_age</code>参数的最小值（Andres Freund）</p>\n<p>这主要是为了使相关行为的测试不那么耗时，但对磁盘空间有限的安装也可能有价值。</p>", "text": "降低*_freeze_max_age参数的最小值（Andres Freund） 这主要是为了使相关行为的测试不那么耗时，但对磁盘空间有限的安装也可能有价值。", "title": "降低*_freeze_max_age参数的最小值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "2b4f80371a91f32770f1a790081565621cccc044117f7bbe5d64582b0214a2fd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Lower the minimum values of the *_freeze_max_age parameters (Andres Freund) This is mainly to make tests of related behavior less time-consuming, but it may also be of value for installations with limited disk space.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/010", "db_id": "85f9bf66588d9dee780b47a5f1e61b95", "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e", "relations": [{"rule": 2, "type": "equivalent", "target": "06ade0f8f704600dddc2d0c6549c52d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}}, {"rule": 2, "type": "equivalent", "target": "6190a4f6cb903cf97f22576381f04c41", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}}, {"rule": 2, "type": "equivalent", "target": "93e66ee1b1279d2cc9a8b4144f864a83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}}, {"rule": 2, "type": "equivalent", "target": "d52a0ef2cbc43bd2579b8119ed898943", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "93e66ee1b1279d2cc9a8b4144f864a83", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "降低*_freeze_max_age参数的最小值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}, "url": "/docs/compare/?release=9.4.5#9.4.5-ab785dfd161f565c", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "6190a4f6cb903cf97f22576381f04c41", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "降低*_freeze_max_age参数的最小值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}, "url": "/docs/compare/?release=9.2.14#9.2.14-ab785dfd161f565c", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "d52a0ef2cbc43bd2579b8119ed898943", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "降低*_freeze_max_age参数的最小值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}, "url": "/docs/compare/?release=9.1.19#9.1.19-ab785dfd161f565c", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "06ade0f8f704600dddc2d0c6549c52d3", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "降低*_freeze_max_age参数的最小值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be34687f5ad0cb53e280b4edc83d7cd361de54a77383eedf29d75efaf10ffb8e"}, "url": "/docs/compare/?release=9.0.23#9.0.23-ab785dfd161f565c", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-cbbb18cea7f79e9a", "cves": [], "html": "<p>将<code>wal_buffers</code>的最大值限制为 2GB 以避免服务器崩溃（Josh Berkus）</p>", "text": "将wal_buffers的最大值限制为 2GB 以避免服务器崩溃（Josh Berkus）", "title": "将wal_buffers的最大值限制为 2GB 以避免服务器崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "7acb495540738b189d62e071eeab0137e64f81a740454885f72244064f2ed89f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Limit the maximum value of wal_buffers to 2GB to avoid server crashes (Josh Berkus)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/011", "db_id": "688c241a736ca3a6337f246f416cd2ec", "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30", "relations": [{"rule": 2, "type": "equivalent", "target": "01d1082a047d332948a79d8390a2ff28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}}, {"rule": 2, "type": "equivalent", "target": "67c8909a29ecc6167cfd5cbde0f3e9ef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}}, {"rule": 2, "type": "equivalent", "target": "787ec49c1b4032722e54547c3a46053a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}}, {"rule": 2, "type": "equivalent", "target": "89d56b6dcaa31b1ea3efc46437384555", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "67c8909a29ecc6167cfd5cbde0f3e9ef", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "将 wal_buffers 的最大值限制为 2GB 以避免服务器崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}, "url": "/docs/compare/?release=9.4.5#9.4.5-5e55b492958dfdc4", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "89d56b6dcaa31b1ea3efc46437384555", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "将wal_buffers的最大值限制为 2GB 以避免服务器崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}, "url": "/docs/compare/?release=9.2.14#9.2.14-cbbb18cea7f79e9a", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "01d1082a047d332948a79d8390a2ff28", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "将wal_buffers的最大值限制为 2GB 以避免服务器崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}, "url": "/docs/compare/?release=9.1.19#9.1.19-cbbb18cea7f79e9a", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "787ec49c1b4032722e54547c3a46053a", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "将wal_buffers的最大值限制为 2GB 以避免服务器崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bda8dc09315f60226e7d3a2b147721318b865983ad054a04e0cea9bbe0323a30"}, "url": "/docs/compare/?release=9.0.23#9.0.23-cbbb18cea7f79e9a", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-5478091b45fbe764", "cves": [], "html": "<p>当只能在服务器启动时设置的参数在<code>postgresql.conf</code>中多次出现时，不再记录抱怨日志；并修复<code>include_dir</code>指令之后行号计数错误的问题（Tom Lane）</p>", "text": "当只能在服务器启动时设置的参数在postgresql.conf中多次出现时，不再记录抱怨日志；并修复include_dir指令之后行号计数错误的问题（Tom Lane）", "title": "当只能在服务器启动时设置的参数在postgresql.conf中多次出现时，不再记录抱怨日志；并修复include_dir指令之后行号计数错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "f62f5c8580b41d2f27f01588e188834f71ade2235ac4e6cfeb6b74b427d2ddc0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid logging complaints when a parameter that can only be set at server start appears multiple times in postgresql.conf, and fix counting of line numbers after an include_dir directive (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/012", "db_id": "33bc48586ecffac08f93a8dafb0dcb5f", "patch_ids": [], "statement_hash": "95c5db16866e79c60a1c9f4d8dc3cbb4da14d6bab9428a387b1ee111f10ad40d", "relations": [{"rule": 2, "type": "equivalent", "target": "1381b7bece36f27875782d9a09353539", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95c5db16866e79c60a1c9f4d8dc3cbb4da14d6bab9428a387b1ee111f10ad40d"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1381b7bece36f27875782d9a09353539", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "避免当只能在服务器启动时设置的参数在 postgresql.conf 中多次出现时记录抱怨日志，并修复 include_dir 指令之后的行号计数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95c5db16866e79c60a1c9f4d8dc3cbb4da14d6bab9428a387b1ee111f10ad40d"}, "url": "/docs/compare/?release=9.4.5#9.4.5-b9ff58afe457d8a9", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}]}, {"id": "9.3.10-5ab40998afc40591", "cves": [], "html": "<p>修复<code>numeric</code>值相乘时罕见的内部溢出（Dean Rasheed）</p>", "text": "修复numeric值相乘时罕见的内部溢出（Dean Rasheed）", "title": "修复numeric值相乘时罕见的内部溢出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "e36b95abc5c616833bbacef86130af97cda3c68d235862bb54e855907fee05ea", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix rare internal overflow in multiplication of numeric values (Dean Rasheed)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/013", "db_id": "b322d02f29d70ba46f6dfe2bee7b74a7", "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e", "relations": [{"rule": 2, "type": "equivalent", "target": "4886f433ebe331decda4fe091ac47825", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}}, {"rule": 2, "type": "equivalent", "target": "48b0d72f2d21ee198d97e42f737192ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}}, {"rule": 2, "type": "equivalent", "target": "5502408247c918ed511b18a820bedbf6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}}, {"rule": 2, "type": "equivalent", "target": "8b831bcf5529479b8cf75162380c68b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b831bcf5529479b8cf75162380c68b9", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 numeric 值乘法中罕见的内部溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}, "url": "/docs/compare/?release=9.4.5#9.4.5-f329b7a3c5a751bc", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "48b0d72f2d21ee198d97e42f737192ce", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复numeric值相乘时罕见的内部溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}, "url": "/docs/compare/?release=9.2.14#9.2.14-5ab40998afc40591", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "4886f433ebe331decda4fe091ac47825", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复numeric值相乘时罕见的内部溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}, "url": "/docs/compare/?release=9.1.19#9.1.19-5ab40998afc40591", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "5502408247c918ed511b18a820bedbf6", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复numeric值相乘时罕见的内部溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05deb5897b8df4af1be5e0ade77d0f342c64495e62d83e62803af1decf8cf37e"}, "url": "/docs/compare/?release=9.0.23#9.0.23-5ab40998afc40591", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-8100bad273f60224", "cves": [], "html": "<p>防御涉及记录类型、范围类型、<code>json</code>、<code>jsonb</code>、<code>tsquery</code>、<code>ltxtquery</code>和<code>query_int</code>的难以触发的栈溢出（Noah Misch）</p>", "text": "防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出（Noah Misch）", "title": "防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "8b968dd9d281af74b0d9d091e2fd9e106b20a61874e1693440a211468707cd1e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Guard against hard-to-reach stack overflows involving record types, range types, json, jsonb, tsquery, ltxtquery and query_int (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/014", "db_id": "acdeb71eaf4e3e4f487e6bbe3cf2858e", "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249", "relations": [{"rule": 2, "type": "equivalent", "target": "0f19e1e89543fb6a02605f737f84e6d8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}}, {"rule": 2, "type": "equivalent", "target": "448cc116f84055189ca00d97c7c221d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}}, {"rule": 2, "type": "equivalent", "target": "94c672bfb1491ed006e73ea4d593cc01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}}, {"rule": 2, "type": "equivalent", "target": "c4ebf4355c4dc6b78b3d850807e2a110", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c4ebf4355c4dc6b78b3d850807e2a110", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "防范涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery 和 query_int 的难以触发的栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}, "url": "/docs/compare/?release=9.4.5#9.4.5-37de803dae4265c4", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "94c672bfb1491ed006e73ea4d593cc01", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}, "url": "/docs/compare/?release=9.2.14#9.2.14-8100bad273f60224", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "0f19e1e89543fb6a02605f737f84e6d8", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}, "url": "/docs/compare/?release=9.1.19#9.1.19-8100bad273f60224", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "448cc116f84055189ca00d97c7c221d7", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2caac7a754e254046f5ce76a761e2a06ed4c5c87ccf2350fe83e6fb908dfd249"}, "url": "/docs/compare/?release=9.0.23#9.0.23-8100bad273f60224", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-e3b09b3da48aaee2", "cves": [], "html": "<p>修复日期时间输入中<code>DOW</code>和<code>DOY</code>的处理（Greg Stark）</p>\n<p>这些记号本不应在日期时间值中使用，但过去它们导致的是难懂的内部错误消息，而不是<span>“<span>无效的输入语法</span>”</span>。</p>", "text": "修复日期时间输入中DOW和DOY的处理（Greg Stark） 这些记号本不应在日期时间值中使用，但过去它们导致的是难懂的内部错误消息，而不是“无效的输入语法”。", "title": "修复日期时间输入中DOW和DOY的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "1fdedf1e28ad2ec6723b2f889c003c56ddbc73ac13f8d2da440a4efa992e04d3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix handling of DOW and DOY in datetime input (Greg Stark) These tokens aren't meant to be used in datetime values, but previously they resulted in opaque internal error messages rather than invalid input syntax.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/015", "db_id": "550277d2b6e5ec7889815ee2a22a9c68", "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0", "relations": [{"rule": 2, "type": "equivalent", "target": "a5e76c5c33fc0a737dac299dad0a217e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}}, {"rule": 2, "type": "equivalent", "target": "afd07277e2b605eeee4173bbc9e65be9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}}, {"rule": 2, "type": "equivalent", "target": "b8c8c2b6a6a1518b538d10da2965040a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}}, {"rule": 2, "type": "equivalent", "target": "e956398d9a072b0e752e96000aa59eb0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e956398d9a072b0e752e96000aa59eb0", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复日期时间输入中DOW和DOY的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}, "url": "/docs/compare/?release=9.4.5#9.4.5-e3b09b3da48aaee2", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "a5e76c5c33fc0a737dac299dad0a217e", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复日期时间输入中DOW和DOY的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}, "url": "/docs/compare/?release=9.2.14#9.2.14-e3b09b3da48aaee2", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "afd07277e2b605eeee4173bbc9e65be9", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复日期时间输入中DOW和DOY的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}, "url": "/docs/compare/?release=9.1.19#9.1.19-e3b09b3da48aaee2", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "b8c8c2b6a6a1518b538d10da2965040a", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复日期时间输入中DOW和DOY的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a60683eab520756350b91e272b353000ae5c8f978ed2523e29be38e220a7aec0"}, "url": "/docs/compare/?release=9.0.23#9.0.23-e3b09b3da48aaee2", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-73d05fdc9193cd00", "cves": [], "html": "<p>在正则表达式匹配中增加更多查询取消检查（Tom Lane）</p>", "text": "在正则表达式匹配中增加更多查询取消检查（Tom Lane）", "title": "在正则表达式匹配中增加更多查询取消检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "8a7afc43fed40ce0df3f3379b70fef1d12153e00b54e8c7dc9ca50e4046be25f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add more query-cancel checks to regular expression matching (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/016", "db_id": "d38f19226a31e1d2de199dd83b700c32", "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341", "relations": [{"rule": 2, "type": "equivalent", "target": "7266256a7131960af28efd9fd98aa274", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}}, {"rule": 2, "type": "equivalent", "target": "92d4603af387a83116b858ea9acc69c2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}}, {"rule": 2, "type": "equivalent", "target": "abd3dbc49f67062d6bbf29f35756bcdb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}}, {"rule": 2, "type": "equivalent", "target": "e7ffed1e8f2bd8d7d1f83087fdce5e49", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7266256a7131960af28efd9fd98aa274", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "为正则表达式匹配添加更多查询取消检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}, "url": "/docs/compare/?release=9.4.5#9.4.5-93260934408f43ce", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "abd3dbc49f67062d6bbf29f35756bcdb", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "在正则表达式匹配中增加更多查询取消检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}, "url": "/docs/compare/?release=9.2.14#9.2.14-73d05fdc9193cd00", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "e7ffed1e8f2bd8d7d1f83087fdce5e49", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "在正则表达式匹配中增加更多查询取消检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}, "url": "/docs/compare/?release=9.1.19#9.1.19-73d05fdc9193cd00", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "92d4603af387a83116b858ea9acc69c2", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "在正则表达式匹配中增加更多查询取消检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d587adedff3b3cdea732e6835afc76902fb01483b956e50f4161de6fbe64341"}, "url": "/docs/compare/?release=9.0.23#9.0.23-73d05fdc9193cd00", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-40187d5a1ef2a1fa", "cves": [], "html": "<p>为正则表达式、<code>SIMILAR TO</code>和<code>LIKE</code>匹配增加递归深度保护（Tom Lane）</p>\n<p>合适的搜索模式加上较低的栈深度限制可能导致栈越界崩溃。</p>", "text": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护（Tom Lane） 合适的搜索模式加上较低的栈深度限制可能导致栈越界崩溃。", "title": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "1653398412eba78a8892b25dec344935c4dde2674cac5da962c584275e4677c9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add recursion depth protections to regular expression, SIMILAR TO, and LIKE matching (Tom Lane) Suitable search patterns and a low stack depth limit could lead to stack-overrun crashes.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/017", "db_id": "a89e2f1a91f1ae30849a12b8b96cac26", "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f", "relations": [{"rule": 2, "type": "equivalent", "target": "7679459797be8fb01e2a810f5dc40f04", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}}, {"rule": 2, "type": "equivalent", "target": "818306610d3baa973fd21dbff001ffc6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}}, {"rule": 2, "type": "equivalent", "target": "c2d846a592e8a9443247bd5eca581dae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}}, {"rule": 2, "type": "equivalent", "target": "cdd7ae2408686e21de864f9162eae3de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cdd7ae2408686e21de864f9162eae3de", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}, "url": "/docs/compare/?release=9.4.5#9.4.5-40187d5a1ef2a1fa", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "818306610d3baa973fd21dbff001ffc6", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}, "url": "/docs/compare/?release=9.2.14#9.2.14-40187d5a1ef2a1fa", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "c2d846a592e8a9443247bd5eca581dae", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}, "url": "/docs/compare/?release=9.1.19#9.1.19-40187d5a1ef2a1fa", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "7679459797be8fb01e2a810f5dc40f04", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "227106552953dea974aebad9e87128454bb0768a695ed1cd67e1d87357ffb70f"}, "url": "/docs/compare/?release=9.0.23#9.0.23-40187d5a1ef2a1fa", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-1ee08b25f685d25d", "cves": [], "html": "<p>修复正则表达式执行中潜在的无限循环（Tom Lane）</p>\n<p>一个表面上能匹配零长度字符串、但实际上因反向引用而不匹配的搜索模式可能导致无限循环。</p>", "text": "修复正则表达式执行中潜在的无限循环（Tom Lane） 一个表面上能匹配零长度字符串、但实际上因反向引用而不匹配的搜索模式可能导致无限循环。", "title": "修复正则表达式执行中潜在的无限循环", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "24d6425ddc8ba685291bcd76da85acf621498a57608e2c02df75f9377d09f580", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix potential infinite loop in regular expression execution (Tom Lane) A search pattern that can apparently match a zero-length string, but actually doesn't match because of a back reference, could lead to an infinite loop.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/018", "db_id": "cb2d1b3b7b5d23396456a383dc3c5d36", "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad", "relations": [{"rule": 2, "type": "equivalent", "target": "279ea9e221ed41c7e95e4a598fcf2a43", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}}, {"rule": 2, "type": "equivalent", "target": "bec69fa9ad8c58064418286eeb6c59bd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}}, {"rule": 2, "type": "equivalent", "target": "e8c724103f22fa122f7d5c8bc3670880", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}}, {"rule": 2, "type": "equivalent", "target": "fc945b07f555953774864e6926724ffe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad", "ambiguous_patch_ids": ["0dd3c9e3b1e03fd9ed50e1f8b10ea81d"]}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fc945b07f555953774864e6926724ffe", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复正则表达式执行中潜在的无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad", "ambiguous_patch_ids": ["0dd3c9e3b1e03fd9ed50e1f8b10ea81d"]}, "url": "/docs/compare/?release=9.4.5#9.4.5-1ee08b25f685d25d", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "279ea9e221ed41c7e95e4a598fcf2a43", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复正则表达式执行中潜在的无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}, "url": "/docs/compare/?release=9.2.14#9.2.14-1ee08b25f685d25d", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "e8c724103f22fa122f7d5c8bc3670880", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复正则表达式执行中潜在的无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}, "url": "/docs/compare/?release=9.1.19#9.1.19-1ee08b25f685d25d", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "bec69fa9ad8c58064418286eeb6c59bd", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复正则表达式执行中潜在的无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f11ad5b71a365b5d17b4e1ab0061b04045ecdd03d728462b07b2c0628c18cfad"}, "url": "/docs/compare/?release=9.0.23#9.0.23-1ee08b25f685d25d", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-54f61f20fae64118", "cves": [], "html": "<p>在正则表达式执行中，即使匹配长度为零，也正确记录量词内捕获括号的匹配数据（Tom Lane）</p>", "text": "在正则表达式执行中，即使匹配长度为零，也正确记录量词内捕获括号的匹配数据（Tom Lane）", "title": "在正则表达式执行中，即使匹配长度为零，也正确记录量词内捕获括号的匹配数据", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "8fd6460327703c06e26868e4051206ee891c81b3fbad8e2c77711a6a21ffc4b3", "section_path": ["变更"], "commit_groups": [], "identity_text": "In regular expression execution, correctly record match data for capturing parentheses within a quantifier even when the match is zero-length (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/019", "db_id": "dae4788a5b01d79eb295f34504163d5d", "patch_ids": [], "statement_hash": "b6169748bf811205a2833e1681740be21342255e94406e519187dd36c3e6b947", "relations": [{"rule": 2, "type": "equivalent", "target": "79fb45e4f168d400691fc8ba94db06b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6169748bf811205a2833e1681740be21342255e94406e519187dd36c3e6b947", "ambiguous_patch_ids": ["0dd3c9e3b1e03fd9ed50e1f8b10ea81d"]}}, {"rule": 2, "type": "equivalent", "target": "8da1e00d91ee77293d007e97253f9dad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6169748bf811205a2833e1681740be21342255e94406e519187dd36c3e6b947"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "79fb45e4f168d400691fc8ba94db06b9", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "在正则表达式执行中，即使匹配长度为零，也正确记录量词内捕获括号的匹配数据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6169748bf811205a2833e1681740be21342255e94406e519187dd36c3e6b947", "ambiguous_patch_ids": ["0dd3c9e3b1e03fd9ed50e1f8b10ea81d"]}, "url": "/docs/compare/?release=9.4.5#9.4.5-54f61f20fae64118", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "8da1e00d91ee77293d007e97253f9dad", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "在正则表达式执行中，即使匹配长度为零，也正确记录量词内捕获括号的匹配数据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6169748bf811205a2833e1681740be21342255e94406e519187dd36c3e6b947"}, "url": "/docs/compare/?release=9.2.14#9.2.14-54f61f20fae64118", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}]}, {"id": "9.3.10-7ed3287f6e8031db", "cves": [], "html": "<p>修复正则表达式编译中的内存不足失败（Andreas Seltenreich）</p>", "text": "修复正则表达式编译中的内存不足失败（Andreas Seltenreich）", "title": "修复正则表达式编译中的内存不足失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "040e27e49f5bca6065e93a67676a29e3de591083bc6f9ffe7912a419613aadc9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix low-memory failures in regular expression compilation (Andreas Seltenreich)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/020", "db_id": "9a1d01050e60d0cff4be1a32e9507491", "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5", "relations": [{"rule": 2, "type": "equivalent", "target": "2ee5b0aab07dc97baea7e3eee703c8c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}}, {"rule": 2, "type": "equivalent", "target": "5375f6fcf20c490dc15305cb7c95d551", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}}, {"rule": 2, "type": "equivalent", "target": "689562c2656643e9f67a2e9cd4446ccb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}}, {"rule": 2, "type": "equivalent", "target": "dd579e7a3fb0d2443ce86a0fd6af62c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "689562c2656643e9f67a2e9cd4446ccb", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复正则表达式编译中的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}, "url": "/docs/compare/?release=9.4.5#9.4.5-7ed3287f6e8031db", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "dd579e7a3fb0d2443ce86a0fd6af62c3", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复正则表达式编译中的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}, "url": "/docs/compare/?release=9.2.14#9.2.14-7ed3287f6e8031db", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "2ee5b0aab07dc97baea7e3eee703c8c0", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复正则表达式编译中的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}, "url": "/docs/compare/?release=9.1.19#9.1.19-7ed3287f6e8031db", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "5375f6fcf20c490dc15305cb7c95d551", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复正则表达式编译中的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8e3e6024e650366b752c07a9312ff54d03aeadc91c41b9d6690002c43b3aae5"}, "url": "/docs/compare/?release=9.0.23#9.0.23-7ed3287f6e8031db", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-820fa1702d3933dd", "cves": [], "html": "<p>修复正则表达式执行期间低概率的内存泄漏（Tom Lane）</p>", "text": "修复正则表达式执行期间低概率的内存泄漏（Tom Lane）", "title": "修复正则表达式执行期间低概率的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "a6cba07efef60b3c44de825318ce3448ae6166866eb932ffe1241728f4d2de24", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix low-probability memory leak during regular expression execution (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/021", "db_id": "7729fa3ac73c1f361c40a4653e5b31af", "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312", "relations": [{"rule": 2, "type": "equivalent", "target": "3569baaf6ccd7c0326212a9ca5fe9266", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}}, {"rule": 2, "type": "equivalent", "target": "5620480a02a777838ffdbdd9eeb14f2a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}}, {"rule": 2, "type": "equivalent", "target": "8b182f146aa3144f27f78c2f2c53a138", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}}, {"rule": 2, "type": "equivalent", "target": "cb7f77ef521bd8e4fa7fcbcebd7f69f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5620480a02a777838ffdbdd9eeb14f2a", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复正则表达式执行期间低概率的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}, "url": "/docs/compare/?release=9.4.5#9.4.5-820fa1702d3933dd", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "3569baaf6ccd7c0326212a9ca5fe9266", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复正则表达式执行期间低概率的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}, "url": "/docs/compare/?release=9.2.14#9.2.14-820fa1702d3933dd", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "8b182f146aa3144f27f78c2f2c53a138", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复正则表达式执行期间低概率的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}, "url": "/docs/compare/?release=9.1.19#9.1.19-820fa1702d3933dd", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "cb7f77ef521bd8e4fa7fcbcebd7f69f2", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复正则表达式执行期间低概率的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1aeca37f50f07ff2163425fc1dc5b5bce78a83ded44c6097d4aadfb43350312"}, "url": "/docs/compare/?release=9.0.23#9.0.23-820fa1702d3933dd", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-882837d9208aba2c", "cves": [], "html": "<p>修复事务中止期间锁清理中罕见的内存不足失败（Tom Lane）</p>", "text": "修复事务中止期间锁清理中罕见的内存不足失败（Tom Lane）", "title": "修复事务中止期间锁清理中罕见的内存不足失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "b20b4037f7eb64d11bb45d698af078fcb1d627f64ce59bdace35dfc23d54b43e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix rare low-memory failure in lock cleanup during transaction abort (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/022", "db_id": "e1d79e9551a39f2d3e07aca62d21fec0", "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321", "relations": [{"rule": 2, "type": "equivalent", "target": "1c80328fe1bf3212080956e2cd5d357c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}}, {"rule": 2, "type": "equivalent", "target": "2d0858f9af159c52152a2bd72148cad1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}}, {"rule": 2, "type": "equivalent", "target": "398b10e6c4fd6ee177fd18f0f7842100", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}}, {"rule": 2, "type": "equivalent", "target": "e8c60673cd2c09b5df1303638c5b7952", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e8c60673cd2c09b5df1303638c5b7952", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复事务中止期间锁清理中罕见的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}, "url": "/docs/compare/?release=9.4.5#9.4.5-882837d9208aba2c", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "398b10e6c4fd6ee177fd18f0f7842100", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复事务中止期间锁清理中罕见的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}, "url": "/docs/compare/?release=9.2.14#9.2.14-882837d9208aba2c", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "2d0858f9af159c52152a2bd72148cad1", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复事务中止期间锁清理中罕见的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}, "url": "/docs/compare/?release=9.1.19#9.1.19-882837d9208aba2c", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "1c80328fe1bf3212080956e2cd5d357c", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复事务中止期间锁清理中罕见的内存不足失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef9ff008b676cae3ddc8dad59f4cf1d9ade68b447904b78f8a4724a933834321"}, "url": "/docs/compare/?release=9.0.23#9.0.23-882837d9208aba2c", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-700b43edae0d2b89", "cves": [], "html": "<p>修复在使用较小<code>work_mem</code>设置的元组存储时出现<span>“<span>排序期间意外的内存不足情况</span>”</span>错误的问题（Tom Lane）</p>", "text": "修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题（Tom Lane）", "title": "修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "0c7f4960b1a08277332d7a2f69262ad46c9ccea5faedb945946702a6f36c9f4e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix unexpected out-of-memory situation during sort errors when using tuplestores with small work_mem settings (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/023", "db_id": "2ce2b935dc8c8afc6675f1b8594cbc7c", "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7", "relations": [{"rule": 2, "type": "equivalent", "target": "19617dfea9d462b377bd1a7e7fd60f21", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}}, {"rule": 2, "type": "equivalent", "target": "7d1d07a9b111006ce4d1c8b93e6d6006", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}}, {"rule": 2, "type": "equivalent", "target": "bb8b298f539b8ed6b225644dc8bb095e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}}, {"rule": 2, "type": "equivalent", "target": "f571ddeeb636cd240ccfc45e9583cb4c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7d1d07a9b111006ce4d1c8b93e6d6006", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复使用较小 work_mem 设置的元组存储时出现的 “unexpected out-of-memory situation during sort” 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}, "url": "/docs/compare/?release=9.4.5#9.4.5-d2105a714744e2a7", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "19617dfea9d462b377bd1a7e7fd60f21", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}, "url": "/docs/compare/?release=9.2.14#9.2.14-700b43edae0d2b89", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "f571ddeeb636cd240ccfc45e9583cb4c", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}, "url": "/docs/compare/?release=9.1.19#9.1.19-700b43edae0d2b89", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "bb8b298f539b8ed6b225644dc8bb095e", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82b18817d79024741b24ce37726d80d275a694e9d0e86ea05fdd3fb7bf55abe7"}, "url": "/docs/compare/?release=9.0.23#9.0.23-700b43edae0d2b89", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-fc08df29ee185ac7", "cves": [], "html": "<p>修复<code>qsort</code>中极低概率的栈越界（Tom Lane）</p>", "text": "修复qsort中极低概率的栈越界（Tom Lane）", "title": "修复qsort中极低概率的栈越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "347002ed17daea8b2a248019c4b75aed10807e692f942d956ff64aa9836d60f3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix very-low-probability stack overrun in qsort (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/024", "db_id": "80ffb6efa145b4f90987b6bc47189fae", "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568", "relations": [{"rule": 2, "type": "equivalent", "target": "2eb1ed0bc1a3fd4a1ec0f04f426eb8d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}}, {"rule": 2, "type": "equivalent", "target": "5cd89e6b2f86dbefb5a19049e778eea4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}}, {"rule": 2, "type": "equivalent", "target": "7042a4b028a4cedfae626b921d273ca7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}}, {"rule": 2, "type": "equivalent", "target": "ff46f74d394152bd0ac33ec2f0ab7de0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7042a4b028a4cedfae626b921d273ca7", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 qsort 中概率极低的栈越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}, "url": "/docs/compare/?release=9.4.5#9.4.5-072e3e992090ff1d", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "2eb1ed0bc1a3fd4a1ec0f04f426eb8d6", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复qsort中极低概率的栈越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}, "url": "/docs/compare/?release=9.2.14#9.2.14-fc08df29ee185ac7", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "5cd89e6b2f86dbefb5a19049e778eea4", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复qsort中极低概率的栈越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}, "url": "/docs/compare/?release=9.1.19#9.1.19-fc08df29ee185ac7", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "ff46f74d394152bd0ac33ec2f0ab7de0", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复qsort中极低概率的栈越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3b499664f8fb62e376103d3d50ea6a0699384578ff8fd661652b0445a5c7568"}, "url": "/docs/compare/?release=9.0.23#9.0.23-fc08df29ee185ac7", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-6763689d1f8fe56f", "cves": [], "html": "<p>修复在使用较大<code>work_mem</code>设置的哈希连接中出现<span>“<span>无效的内存分配请求大小</span>”</span>失败的问题（Tomas Vondra, Tom Lane）</p>", "text": "修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题（Tomas Vondra, Tom Lane）", "title": "修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "cad8a3637e9f19db0b1d4ad631dedc5c9db4ebd041c1df2aa56e959a8b2bc533", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix invalid memory alloc request size failure in hash joins with large work_mem settings (Tomas Vondra, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/025", "db_id": "899bf404646744816ec749decde09389", "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b", "relations": [{"rule": 2, "type": "equivalent", "target": "065d9414db1d95492b8172513fd89307", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}}, {"rule": 2, "type": "equivalent", "target": "72eb05bbdce2127867fbe2b288c23160", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}}, {"rule": 2, "type": "equivalent", "target": "98189d3a6f8f14946986342f6c0b7f96", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}}, {"rule": 2, "type": "equivalent", "target": "f362c103f4b53650392849472c55a2eb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f362c103f4b53650392849472c55a2eb", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复使用较大 work_mem 设置的哈希连接中出现的 “invalid memory alloc request size” 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}, "url": "/docs/compare/?release=9.4.5#9.4.5-5b7d691ff7dcf7d1", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "72eb05bbdce2127867fbe2b288c23160", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}, "url": "/docs/compare/?release=9.2.14#9.2.14-6763689d1f8fe56f", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "98189d3a6f8f14946986342f6c0b7f96", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}, "url": "/docs/compare/?release=9.1.19#9.1.19-6763689d1f8fe56f", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "065d9414db1d95492b8172513fd89307", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1fcd8dacb9d4d61daa6e284a81b62e58797afb90983ef458a6629510b810567b"}, "url": "/docs/compare/?release=9.0.23#9.0.23-6763689d1f8fe56f", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-d211afb454701ad5", "cves": [], "html": "<p>修复若干规划器缺陷（Tom Lane）</p>\n<p>这些错误可能导致给出错误结果的错误查询计划、启用断言的构建中的断言失败，或奇怪的规划器错误，例如<span>“<span>could not devise a query plan for the given query</span>”</span>、<span>“<span>could not find pathkey item to sort</span>”</span>、<span>“<span>plan should not reference subplan's variable</span>”</span>或<span>“<span>failed to assign all NestLoopParams to plan nodes</span>”</span>。感谢 Andreas Seltenreich 和 Piotr Stefaniak 通过模糊测试暴露了这些问题。</p>", "text": "修复若干规划器缺陷（Tom Lane） 这些错误可能导致给出错误结果的错误查询计划、启用断言的构建中的断言失败，或奇怪的规划器错误，例如“could not devise a query plan for the given query”、“could not find pathkey item to sort”、“plan should not reference subplan's variable”或“failed to assign all NestLoopParams to plan nodes”。感谢 Andreas Seltenreich 和 Piotr Stefaniak 通过模糊测试暴露了这些问题。", "title": "修复若干规划器缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "cbcd7a12c91d32e0b8f712d902bb0405ff8a2b398514c30b0a939d77c324a392", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix assorted planner bugs (Tom Lane) These mistakes could lead to incorrect query plans that would give wrong answers, or to assertion failures in assert-enabled builds, or to odd planner errors such as could not devise a query plan for the given query, could not find pathkey item to sort, plan should not reference subplan's variable, or failed to assign all NestLoopParams to plan nodes. Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz testing that exposed these problems.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/026", "db_id": "f42938d940ea6405d0b147d1ea386823", "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18", "relations": [{"rule": 2, "type": "equivalent", "target": "03265e524f1a5d7d030d8521d387f7b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}}, {"rule": 2, "type": "equivalent", "target": "0d4c56b3be3cd3a0ea07c0418296c330", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}}, {"rule": 2, "type": "equivalent", "target": "9876a1ba5f4a978f6224e72391017450", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}}, {"rule": 2, "type": "equivalent", "target": "f3094de8f2f0e1950bbaf1448c49b82f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9876a1ba5f4a978f6224e72391017450", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复若干规划器缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}, "url": "/docs/compare/?release=9.4.5#9.4.5-d211afb454701ad5", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "03265e524f1a5d7d030d8521d387f7b0", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复若干规划器缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}, "url": "/docs/compare/?release=9.2.14#9.2.14-d211afb454701ad5", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "0d4c56b3be3cd3a0ea07c0418296c330", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复若干规划器缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}, "url": "/docs/compare/?release=9.1.19#9.1.19-d211afb454701ad5", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "f3094de8f2f0e1950bbaf1448c49b82f", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复若干规划器缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d3846439546a9941457d4bd59e0d4b0b2cb677b935bbeaeee5bd664c9e2dc18"}, "url": "/docs/compare/?release=9.0.23#9.0.23-d211afb454701ad5", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-787a30d3fa10710d", "cves": [], "html": "<p>改进规划器在大型继承集合上执行<code>UPDATE</code>/<code>DELETE</code>的性能（Tom Lane, Dean Rasheed）</p>", "text": "改进规划器在大型继承集合上执行UPDATE/DELETE的性能（Tom Lane, Dean Rasheed）", "title": "改进规划器在大型继承集合上执行UPDATE/DELETE的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "53a9d121e09e204a5adb5643463718dd9521aa64263e2eb67045dbe3d56ff7b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve planner's performance for UPDATE/DELETE on large inheritance sets (Tom Lane, Dean Rasheed)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/027", "db_id": "1cc17784c98e2503d0cc5715a4491e7b", "patch_ids": [], "statement_hash": "86b8de26024a739d35b8eafca994337b985661036403a0e05f28784c3a6a70bd", "relations": [{"rule": 2, "type": "equivalent", "target": "55e04ce488d6f7e53e8d6cb2bf14f913", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86b8de26024a739d35b8eafca994337b985661036403a0e05f28784c3a6a70bd"}}, {"rule": 2, "type": "equivalent", "target": "d1b4a849d53bdd2c2bc4ae5113bed7e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86b8de26024a739d35b8eafca994337b985661036403a0e05f28784c3a6a70bd"}}], "version": "9.3.10", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d1b4a849d53bdd2c2bc4ae5113bed7e5", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "改进规划器在大型继承集上执行 UPDATE/DELETE 的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86b8de26024a739d35b8eafca994337b985661036403a0e05f28784c3a6a70bd"}, "url": "/docs/compare/?release=9.4.5#9.4.5-8f53f9f362d9f5bf", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "55e04ce488d6f7e53e8d6cb2bf14f913", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "改进规划器在大型继承集合上执行UPDATE/DELETE的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86b8de26024a739d35b8eafca994337b985661036403a0e05f28784c3a6a70bd"}, "url": "/docs/compare/?release=9.2.14#9.2.14-787a30d3fa10710d", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}]}, {"id": "9.3.10-1308810568a26fe0", "cves": [], "html": "<p>确保在 postmaster 启动时移除备库提升触发文件（Michael Paquier、Fujii Masao）</p>\n<p>这可以防止这些文件出现在用于初始化新备库服务器的数据库备份中时发生不需要的提升。</p>", "text": "确保在 postmaster 启动时移除备库提升触发文件（Michael Paquier、Fujii Masao） 这可以防止这些文件出现在用于初始化新备库服务器的数据库备份中时发生不需要的提升。", "title": "确保在 postmaster 启动时移除备库提升触发文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "922df03b5bf6a08aa682225b5ff6651c7d485e85c96041e4e86a0a39336379a9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure standby promotion trigger files are removed at postmaster startup (Michael Paquier, Fujii Masao) This prevents unwanted promotion from occurring if these files appear in a database backup that is used to initialize a new standby server.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/028", "db_id": "9e310159bc458727f2b3339a646b573e", "patch_ids": [], "statement_hash": "962f7210d34c183572587ad6f1616b0843f7cb60d2cdd363d9bd82644afabeae", "relations": [{"rule": 2, "type": "equivalent", "target": "482b8b583aa87ac74e17c2f09b1bac5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "962f7210d34c183572587ad6f1616b0843f7cb60d2cdd363d9bd82644afabeae"}}, {"rule": 2, "type": "equivalent", "target": "87e36e5b59c6c92e9e7de8d396ca5fa2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "962f7210d34c183572587ad6f1616b0843f7cb60d2cdd363d9bd82644afabeae"}}, {"rule": 2, "type": "equivalent", "target": "d70c2d41347985126bf7c67713145b33", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "962f7210d34c183572587ad6f1616b0843f7cb60d2cdd363d9bd82644afabeae"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d70c2d41347985126bf7c67713145b33", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "确保在 postmaster 启动时移除备库提升触发文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "962f7210d34c183572587ad6f1616b0843f7cb60d2cdd363d9bd82644afabeae"}, "url": "/docs/compare/?release=9.4.5#9.4.5-1308810568a26fe0", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "87e36e5b59c6c92e9e7de8d396ca5fa2", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "确保在 postmaster 启动时移除备库提升触发文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "962f7210d34c183572587ad6f1616b0843f7cb60d2cdd363d9bd82644afabeae"}, "url": "/docs/compare/?release=9.2.14#9.2.14-1308810568a26fe0", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "482b8b583aa87ac74e17c2f09b1bac5a", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "确保在 postmaster 启动时移除备库提升触发文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "962f7210d34c183572587ad6f1616b0843f7cb60d2cdd363d9bd82644afabeae"}, "url": "/docs/compare/?release=9.1.19#9.1.19-1308810568a26fe0", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.3.10-96e309f35492ba59", "cves": [], "html": "<p>在 postmaster 关闭期间，确保在移除<code>postmaster.pid</code>文件之前移除各套接字的锁文件并关闭监听套接字（Tom Lane）</p>\n<p>这可以避免外部脚本在<code>pg_ctl stop</code>一返回就尝试启动新 postmaster 时出现竞争条件失败。</p>", "text": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字（Tom Lane） 这可以避免外部脚本在pg_ctl stop一返回就尝试启动新 postmaster 时出现竞争条件失败。", "title": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "c719a79e7449e6ffadf447302e95cd41bacae44fbdd30eca2433e8f64c00d596", "section_path": ["变更"], "commit_groups": [], "identity_text": "During postmaster shutdown, ensure that per-socket lock files are removed and listen sockets are closed before we remove the postmaster.pid file (Tom Lane) This avoids race-condition failures if an external script attempts to start a new postmaster as soon as pg_ctl stop returns.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/029", "db_id": "6123c5a01534e99b41b4f08852b3b872", "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e", "relations": [{"rule": 2, "type": "equivalent", "target": "2238916f99c9b444daffc307da86fa64", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}}, {"rule": 2, "type": "equivalent", "target": "58b1e3ac6ef0ced8f5b51d6cc6c7b616", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}}, {"rule": 2, "type": "equivalent", "target": "6ee99a9a9afda8e05099240c354ed0b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}}, {"rule": 2, "type": "equivalent", "target": "c5d7876ac5d25aaad8b84a620e40bb6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "58b1e3ac6ef0ced8f5b51d6cc6c7b616", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}, "url": "/docs/compare/?release=9.4.5#9.4.5-96e309f35492ba59", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "6ee99a9a9afda8e05099240c354ed0b6", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}, "url": "/docs/compare/?release=9.2.14#9.2.14-96e309f35492ba59", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "c5d7876ac5d25aaad8b84a620e40bb6b", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}, "url": "/docs/compare/?release=9.1.19#9.1.19-96e309f35492ba59", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "2238916f99c9b444daffc307da86fa64", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "在 postmaster 关闭期间，确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33b77933e3cb5e7fb1eed774f3daba97a8094d5c59e9ea16d71814730a4d696e"}, "url": "/docs/compare/?release=9.0.23#9.0.23-96e309f35492ba59", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-4f1a4657f143b745", "cves": [], "html": "<p>修复 postmaster 对崩溃恢复期间启动进程崩溃的处理（Tom Lane）</p>\n<p>如果在崩溃恢复周期中，启动进程在尚未恢复数据库一致性时崩溃，我们会尝试启动一个新的启动进程，而这通常只会再次崩溃，导致无限循环。</p>", "text": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理（Tom Lane） 如果在崩溃恢复周期中，启动进程在尚未恢复数据库一致性时崩溃，我们会尝试启动一个新的启动进程，而这通常只会再次崩溃，导致无限循环。", "title": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "b299cc8e1d02cc9138c76c99ab0a97c01d3cd88acb8001d52099c9d05a95bfcd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix postmaster's handling of a startup-process crash during crash recovery (Tom Lane) If, during a crash recovery cycle, the startup process crashes without having restored database consistency, we'd try to launch a new startup process, which typically would just crash again, leading to an infinite loop.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/030", "db_id": "5bdee0d295cd97f41219f89a71522161", "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890", "relations": [{"rule": 2, "type": "equivalent", "target": "25b4b1b33ec87d27c23ed570ea8c969d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}}, {"rule": 2, "type": "equivalent", "target": "3743a74fa2cd46e18b726f09011e3b2e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}}, {"rule": 2, "type": "equivalent", "target": "aacd27be04e3de394eb4d1893a79d564", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}}, {"rule": 2, "type": "equivalent", "target": "e5404104bc0c281b3f794671d3496883", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "aacd27be04e3de394eb4d1893a79d564", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}, "url": "/docs/compare/?release=9.4.5#9.4.5-4f1a4657f143b745", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "3743a74fa2cd46e18b726f09011e3b2e", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}, "url": "/docs/compare/?release=9.2.14#9.2.14-4f1a4657f143b745", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "e5404104bc0c281b3f794671d3496883", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}, "url": "/docs/compare/?release=9.1.19#9.1.19-4f1a4657f143b745", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "25b4b1b33ec87d27c23ed570ea8c969d", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复 postmaster 对崩溃恢复期间启动进程崩溃的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "91ae74edce87d6db363944c5f1d900a55d4c04b4397e1b5c6b3721c164e7f890"}, "url": "/docs/compare/?release=9.0.23#9.0.23-4f1a4657f143b745", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-4eb3b9c4c7a1d626", "cves": [], "html": "<p>使针对多事务 ID 回卷的紧急自动清理更加健壮（Andres Freund）</p>", "text": "使针对多事务 ID 回卷的紧急自动清理更加健壮（Andres Freund）", "title": "使针对多事务 ID 回卷的紧急自动清理更加健壮", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "c0ca894f9dc5ac0a64bf1667291985adb8f135d42597b01cd59426d8eac99ebb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make emergency autovacuuming for multixact wraparound more robust (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/031", "db_id": "5589df09c2f3906265851d4a88942798", "patch_ids": [], "statement_hash": "55a3f9c84d2b7c51b124bb7972a7b453ad0e631f8ee01b7e9d28b8fd8b740ae3", "relations": [{"rule": 2, "type": "equivalent", "target": "a3f0d2dba03aa3bf1cfa527a62d317e6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55a3f9c84d2b7c51b124bb7972a7b453ad0e631f8ee01b7e9d28b8fd8b740ae3"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a3f0d2dba03aa3bf1cfa527a62d317e6", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "使针对多事务 ID 回卷的紧急自动清理更加健壮", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55a3f9c84d2b7c51b124bb7972a7b453ad0e631f8ee01b7e9d28b8fd8b740ae3"}, "url": "/docs/compare/?release=9.4.5#9.4.5-4eb3b9c4c7a1d626", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}]}, {"id": "9.3.10-fa84f99ff7bf9801", "cves": [], "html": "<p>当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印<code>WARNING</code>，并降低此类信号的日志详细程度（Tom Lane）</p>", "text": "当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印WARNING，并降低此类信号的日志详细程度（Tom Lane）", "title": "当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印WARNING，并降低此类信号的日志详细程度", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "bf99127b3973181b4aa4656ec99c4041ee24e19392aa57e9905f59615437f7d3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Do not print a WARNING when an autovacuum worker is already gone when we attempt to signal it, and reduce log verbosity for such signals (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/032", "db_id": "c5871d2aa1f7a6e689e67a406dd73300", "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b", "relations": [{"rule": 2, "type": "equivalent", "target": "08ac87c7db0f9ff929faa21ac8815d32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}}, {"rule": 2, "type": "equivalent", "target": "26b07f6a12369987232cf19cea71b5ab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}}, {"rule": 2, "type": "equivalent", "target": "66b81ba56f49b4a29abaaf9ce628e95a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}}, {"rule": 2, "type": "equivalent", "target": "df8e63855d7f7fab6c1d5f176ac4fdf1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "26b07f6a12369987232cf19cea71b5ab", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "当我们试图向某个自动清理工作进程发送信号而它已经不在时，不再打印 WARNING，并降低此类信号的日志详细程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}, "url": "/docs/compare/?release=9.4.5#9.4.5-d6c19e210c0f3a86", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "08ac87c7db0f9ff929faa21ac8815d32", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印WARNING，并降低此类信号的日志详细程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}, "url": "/docs/compare/?release=9.2.14#9.2.14-fa84f99ff7bf9801", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "df8e63855d7f7fab6c1d5f176ac4fdf1", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印WARNING，并降低此类信号的日志详细程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}, "url": "/docs/compare/?release=9.1.19#9.1.19-fa84f99ff7bf9801", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "66b81ba56f49b4a29abaaf9ce628e95a", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "当我们尝试向某个自动清理工作进程发送信号而它已经消失时，不再打印WARNING，并降低此类信号的日志详细程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f67d0c08d798b32ba2c67f57d6d3ef1aa5fed95a2df62e8edc0c36a58989804b"}, "url": "/docs/compare/?release=9.0.23#9.0.23-fa84f99ff7bf9801", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-547a194aca56d331", "cves": [], "html": "<p>防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长（Álvaro Herrera）</p>", "text": "防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长（Álvaro Herrera）", "title": "防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "7533061f0984a3e2e7906c7580c5031c818080802cfa60a5d128f887a8738030", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent autovacuum launcher from sleeping unduly long if the server clock is moved backwards a large amount (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/033", "db_id": "4432abe6dc96abdc817e209ab3bb6b68", "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa", "relations": [{"rule": 2, "type": "equivalent", "target": "1f82f0763370b9c2c06c168e1efe8084", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}}, {"rule": 2, "type": "equivalent", "target": "85315a815226b58761d94c1be6655b14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}}, {"rule": 2, "type": "equivalent", "target": "996848fcaade4346513456e73346e401", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}}, {"rule": 2, "type": "equivalent", "target": "d40893693c1360676fc3b7acc438a690", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "85315a815226b58761d94c1be6655b14", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "防止自动清理启动器在服务器时钟被大幅回拨时睡眠过长时间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}, "url": "/docs/compare/?release=9.4.5#9.4.5-a3b5dfc2d6d29d1a", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "996848fcaade4346513456e73346e401", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}, "url": "/docs/compare/?release=9.2.14#9.2.14-547a194aca56d331", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "1f82f0763370b9c2c06c168e1efe8084", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}, "url": "/docs/compare/?release=9.1.19#9.1.19-547a194aca56d331", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "d40893693c1360676fc3b7acc438a690", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5f386cc991e5f602efa7585835a4dd9990aa0ab159b24b225f6f8f181cc1bfa"}, "url": "/docs/compare/?release=9.0.23#9.0.23-547a194aca56d331", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-04e23441e5e4cdc8", "cves": [], "html": "<p>确保 GIN 索引待插入列表的清理可被取消请求中断（Jeff Janes）</p>", "text": "确保 GIN 索引待插入列表的清理可被取消请求中断（Jeff Janes）", "title": "确保 GIN 索引待插入列表的清理可被取消请求中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "421d8ce3b26043343c0bcb7fa46194bdf0e93dd4ea22581389b3e5448b098c03", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that cleanup of a GIN index's pending-insertions list is interruptable by cancel requests (Jeff Janes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/034", "db_id": "272eba457c81dbfb258f54eb8da9febe", "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f", "relations": [{"rule": 2, "type": "equivalent", "target": "36ebe8bf4a1fdf882927d34c20b6cdab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}}, {"rule": 2, "type": "equivalent", "target": "3dc7b3c5a20c9b9bf3a44e4962a884aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}}, {"rule": 2, "type": "equivalent", "target": "477476d67ec7dea390beeadb1da8ac99", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}}, {"rule": 2, "type": "equivalent", "target": "f3cc6b65ed4320c6692f20fc53416e5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3dc7b3c5a20c9b9bf3a44e4962a884aa", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "确保 GIN 索引的待处理插入列表清理可被取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}, "url": "/docs/compare/?release=9.4.5#9.4.5-b8afe1ed78febe5c", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "36ebe8bf4a1fdf882927d34c20b6cdab", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "确保 GIN 索引待插入列表的清理可被取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}, "url": "/docs/compare/?release=9.2.14#9.2.14-04e23441e5e4cdc8", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "f3cc6b65ed4320c6692f20fc53416e5a", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "确保 GIN 索引待插入列表的清理可被取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}, "url": "/docs/compare/?release=9.1.19#9.1.19-04e23441e5e4cdc8", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "477476d67ec7dea390beeadb1da8ac99", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "确保 GIN 索引待插入列表的清理可被取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bb25948e9712bfecf2ab57f309def29599303198bbd68fc6216e75ae3bd53b6f"}, "url": "/docs/compare/?release=9.0.23#9.0.23-04e23441e5e4cdc8", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-5d139d856ac077d8", "cves": [], "html": "<p>允许重用 GIN 索引中的全零页（Heikki Linnakangas）</p>\n<p>崩溃之后可能遗留这样的页。</p>", "text": "允许重用 GIN 索引中的全零页（Heikki Linnakangas） 崩溃之后可能遗留这样的页。", "title": "允许重用 GIN 索引中的全零页", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "d3523b3a1bb0c96575d6c88b8024bbc8c065cc0a8c1ff1fd9e9cf772446dee61", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas) Such a page might be left behind after a crash.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/035", "db_id": "188cb3ac83ecaf2ae5cbfe06668a30f5", "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26", "relations": [{"rule": 2, "type": "equivalent", "target": "99de94d6254a369aacaefc6ae48c5716", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}}, {"rule": 2, "type": "equivalent", "target": "ae553bc4a039aeedb2a8188e890774cb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}}, {"rule": 2, "type": "equivalent", "target": "eb2cea0e499dcfee7bcedac19fb19257", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}}, {"rule": 2, "type": "equivalent", "target": "f7eb2ac7e191c96d40b1e7e592a9ebe9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "99de94d6254a369aacaefc6ae48c5716", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "允许重用 GIN 索引中的全零页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}, "url": "/docs/compare/?release=9.4.5#9.4.5-5d139d856ac077d8", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "ae553bc4a039aeedb2a8188e890774cb", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "允许重用 GIN 索引中的全零页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}, "url": "/docs/compare/?release=9.2.14#9.2.14-5d139d856ac077d8", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "eb2cea0e499dcfee7bcedac19fb19257", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "允许重用 GIN 索引中的全零页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}, "url": "/docs/compare/?release=9.1.19#9.1.19-5d139d856ac077d8", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "f7eb2ac7e191c96d40b1e7e592a9ebe9", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "允许重用 GIN 索引中的全零页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ac23149da533d4f780029d553d21b95c46f8983a02eed726949a3b14da14d26"}, "url": "/docs/compare/?release=9.0.23#9.0.23-5d139d856ac077d8", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-5f6467d6752ffde5", "cves": [], "html": "<p>修复 SP-GiST 索引中对全零页的处理（Heikki Linnakangas）</p>\n<p><code>VACUUM</code> 曾试图回收此类页，但方式并非崩溃安全。</p>", "text": "修复 SP-GiST 索引中对全零页的处理（Heikki Linnakangas） VACUUM 曾试图回收此类页，但方式并非崩溃安全。", "title": "修复 SP-GiST 索引中对全零页的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "084118a434a723c3a7c64b738f1e4e0ae2979896cd198d276ff4b2b2b4fd04b4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix handling of all-zeroes pages in SP-GiST indexes (Heikki Linnakangas) VACUUM attempted to recycle such pages, but did so in a way that wasn't crash-safe.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/036", "db_id": "9782435105db087156949816e4013955", "patch_ids": [], "statement_hash": "3a32368a5f80ab828d004a02bebe6ed9e6c60446e92ea6dbfb96890742401da7", "relations": [{"rule": 2, "type": "equivalent", "target": "46bdc0de7cbf3f6d120f8b0ac7058f42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a32368a5f80ab828d004a02bebe6ed9e6c60446e92ea6dbfb96890742401da7"}}, {"rule": 2, "type": "equivalent", "target": "ce4cb8639f5d63b9edabf64f55841ec9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a32368a5f80ab828d004a02bebe6ed9e6c60446e92ea6dbfb96890742401da7"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ce4cb8639f5d63b9edabf64f55841ec9", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 SP-GiST 索引中对全零页的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a32368a5f80ab828d004a02bebe6ed9e6c60446e92ea6dbfb96890742401da7"}, "url": "/docs/compare/?release=9.4.5#9.4.5-5f6467d6752ffde5", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "46bdc0de7cbf3f6d120f8b0ac7058f42", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复 SP-GiST 索引中对全零页的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a32368a5f80ab828d004a02bebe6ed9e6c60446e92ea6dbfb96890742401da7"}, "url": "/docs/compare/?release=9.2.14#9.2.14-5f6467d6752ffde5", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}]}, {"id": "9.3.10-1e03f510c689d2f0", "cves": [], "html": "<p>修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的<span>“<span>表面回卷</span>”</span>警告（Thomas Munro）</p>", "text": "修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告（Thomas Munro）", "title": "修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "f5eb89ad094bfdc727c2d812c7365606dfbbe936e7cb5f72f187d2edefbbe71b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix off-by-one error that led to otherwise-harmless warnings about apparent wraparound in subtrans/multixact truncation (Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/037", "db_id": "b7dad80ce673e6dd1076b9330f43ec4f", "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4", "relations": [{"rule": 2, "type": "equivalent", "target": "57fb4b6a309d6355e51ff526e42d34cb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}}, {"rule": 2, "type": "equivalent", "target": "849a7ba160a2bdd3f3609780d167e642", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}}, {"rule": 2, "type": "equivalent", "target": "88a05fbed4b44cfa4bc508234381f876", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}}, {"rule": 2, "type": "equivalent", "target": "c64b593aef030fdd469179036eddb43b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "88a05fbed4b44cfa4bc508234381f876", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复一个差一错误，该错误导致子事务/多事务截断中出现关于 “apparent wraparound” 的原本无害的警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}, "url": "/docs/compare/?release=9.4.5#9.4.5-1a71bd70c34be1ff", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "57fb4b6a309d6355e51ff526e42d34cb", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}, "url": "/docs/compare/?release=9.2.14#9.2.14-1e03f510c689d2f0", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "849a7ba160a2bdd3f3609780d167e642", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}, "url": "/docs/compare/?release=9.1.19#9.1.19-1e03f510c689d2f0", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "c64b593aef030fdd469179036eddb43b", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复一个差一错误，该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "edceeb0986fe1310a8a07a53b708fac21809e16ee52a04ff979f1c47520809a4"}, "url": "/docs/compare/?release=9.0.23#9.0.23-1e03f510c689d2f0", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-21f415a2fd0b9794", "cves": [], "html": "<p>修复<span>PL/pgSQL</span>错误上下文消息中<code>CONTINUE</code>和<code>MOVE</code>语句类型误报的问题（Pavel Stehule, Tom Lane）</p>", "text": "修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题（Pavel Stehule, Tom Lane）", "title": "修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "23e93454498c21955fd7f896d29a8b6a306536252dddead755b21020f2a3ba4b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misreporting of CONTINUE and MOVE statement types in PL/pgSQL's error context messages (Pavel Stehule, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/038", "db_id": "34762483eb37f7fc111ea86ef58fc37c", "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b", "relations": [{"rule": 2, "type": "equivalent", "target": "01aa249524b9831a1297d29a4b51125a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}}, {"rule": 2, "type": "equivalent", "target": "125e84128aafc51dd0727636c39f8d4e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}}, {"rule": 2, "type": "equivalent", "target": "7bb773e16e19bec67e80952c0aadfef1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}}, {"rule": 2, "type": "equivalent", "target": "edb94b34177d94efaad905a27b76a609", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "125e84128aafc51dd0727636c39f8d4e", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 PL/pgSQL 错误上下文消息中对 CONTINUE 和 MOVE 语句类型的误报", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}, "url": "/docs/compare/?release=9.4.5#9.4.5-1dddd26b0b730679", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "7bb773e16e19bec67e80952c0aadfef1", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}, "url": "/docs/compare/?release=9.2.14#9.2.14-21f415a2fd0b9794", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "edb94b34177d94efaad905a27b76a609", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}, "url": "/docs/compare/?release=9.1.19#9.1.19-21f415a2fd0b9794", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "01aa249524b9831a1297d29a4b51125a", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e333c8e1546e5b1f101a8ce430cb9240161483dbfcd422e2c75fa07bd99d0b"}, "url": "/docs/compare/?release=9.0.23#9.0.23-21f415a2fd0b9794", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-53ca6c7b4fbd20aa", "cves": [], "html": "<p>修复<span>PL/Perl</span>以正确处理非<acronym>ASCII</acronym>错误消息文本（Alex Hunsaker）</p>", "text": "修复PL/Perl以正确处理非ASCII错误消息文本（Alex Hunsaker）", "title": "修复PL/Perl以正确处理非ASCII错误消息文本", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "a800b1cec979da9e144ca14cdbb75f0dbe35cacceeee7b894e38cf43b8c7e9a9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PL/Perl to handle non-ASCII error message texts correctly (Alex Hunsaker)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/039", "db_id": "93ceb6cbcb03b2aa0f0cb23eab3667ab", "patch_ids": [], "statement_hash": "3f3872d4339135ba38f4c09401b8c57d4eabfb92a2313b3e220c1b8e301ac647", "relations": [{"rule": 2, "type": "equivalent", "target": "27126d8baf761a74162ba09048afbd3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f3872d4339135ba38f4c09401b8c57d4eabfb92a2313b3e220c1b8e301ac647"}}, {"rule": 2, "type": "equivalent", "target": "9b7d119655e25a8a1727cbce83105065", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f3872d4339135ba38f4c09401b8c57d4eabfb92a2313b3e220c1b8e301ac647"}}, {"rule": 2, "type": "equivalent", "target": "d0ec84df5bb08537baba0833284460d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f3872d4339135ba38f4c09401b8c57d4eabfb92a2313b3e220c1b8e301ac647"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9b7d119655e25a8a1727cbce83105065", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 PL/Perl 使其正确处理非 ASCII 的错误消息文本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f3872d4339135ba38f4c09401b8c57d4eabfb92a2313b3e220c1b8e301ac647"}, "url": "/docs/compare/?release=9.4.5#9.4.5-eb326bab6a749c57", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "d0ec84df5bb08537baba0833284460d6", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复PL/Perl以正确处理非ASCII错误消息文本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f3872d4339135ba38f4c09401b8c57d4eabfb92a2313b3e220c1b8e301ac647"}, "url": "/docs/compare/?release=9.2.14#9.2.14-53ca6c7b4fbd20aa", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "27126d8baf761a74162ba09048afbd3a", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复PL/Perl以正确处理非ASCII错误消息文本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f3872d4339135ba38f4c09401b8c57d4eabfb92a2313b3e220c1b8e301ac647"}, "url": "/docs/compare/?release=9.1.19#9.1.19-53ca6c7b4fbd20aa", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.3.10-2570262f0178b8f9", "cves": [], "html": "<p>修复<span>PL/Python</span>在返回<code>record</code>结果的字符串表示时崩溃的问题（Tom Lane）</p>", "text": "修复PL/Python在返回record结果的字符串表示时崩溃的问题（Tom Lane）", "title": "修复PL/Python在返回record结果的字符串表示时崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "1e1e8d0e33620979e8154207cadf4c74c92a7d44bd8ea7f6d0f707a7a5696fa6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix PL/Python crash when returning the string representation of a record result (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/040", "db_id": "b2a737fdb48eb39385c5adc967f829ae", "patch_ids": [], "statement_hash": "561e7a4dd87c61a2a79eccfabc54a44efa2a4f1f88f09fabf8896acdd15f4b59", "relations": [{"rule": 2, "type": "equivalent", "target": "744061501a631376c3a1de120b7b4fca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "561e7a4dd87c61a2a79eccfabc54a44efa2a4f1f88f09fabf8896acdd15f4b59"}}, {"rule": 2, "type": "equivalent", "target": "bf087da1231ffa6e8d68c5f88036e644", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "561e7a4dd87c61a2a79eccfabc54a44efa2a4f1f88f09fabf8896acdd15f4b59"}}, {"rule": 2, "type": "equivalent", "target": "e617d661d3be7721d8aa4ce373e1bc48", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "561e7a4dd87c61a2a79eccfabc54a44efa2a4f1f88f09fabf8896acdd15f4b59"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bf087da1231ffa6e8d68c5f88036e644", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 PL/Python 返回 record 结果的字符串表示时的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "561e7a4dd87c61a2a79eccfabc54a44efa2a4f1f88f09fabf8896acdd15f4b59"}, "url": "/docs/compare/?release=9.4.5#9.4.5-9f15b521df5395e5", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "e617d661d3be7721d8aa4ce373e1bc48", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复PL/Python在返回record结果的字符串表示时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "561e7a4dd87c61a2a79eccfabc54a44efa2a4f1f88f09fabf8896acdd15f4b59"}, "url": "/docs/compare/?release=9.2.14#9.2.14-2570262f0178b8f9", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "744061501a631376c3a1de120b7b4fca", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复PL/Python在返回record结果的字符串表示时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "561e7a4dd87c61a2a79eccfabc54a44efa2a4f1f88f09fabf8896acdd15f4b59"}, "url": "/docs/compare/?release=9.1.19#9.1.19-2570262f0178b8f9", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.3.10-53e9aa96fb6b2bcd", "cves": [], "html": "<p>修复<span>PL/Tcl</span>中一些未检查<code>malloc()</code>调用失败的位置（Michael Paquier, Álvaro Herrera）</p>", "text": "修复PL/Tcl中一些未检查malloc()调用失败的位置（Michael Paquier, Álvaro Herrera）", "title": "修复PL/Tcl中一些未检查malloc()调用失败的位置", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "3546aa0c967cadf7b240eb8c520db775e3b9853c38b5da5ec2ec033c2580277b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix some places in PL/Tcl that neglected to check for failure of malloc() calls (Michael Paquier, Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/041", "db_id": "7b3c88e8cc089dc7ea27d1e62085ab32", "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513", "relations": [{"rule": 2, "type": "equivalent", "target": "1539acb72bcb37ff79538e05a0bb0526", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}}, {"rule": 2, "type": "equivalent", "target": "1cf1bb72d3c6b39723fe53022aa23bbf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}}, {"rule": 2, "type": "equivalent", "target": "4da2d4dd759481f20ee79ea076c77538", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}}, {"rule": 2, "type": "equivalent", "target": "9e92468d22dc93ec5ab850e41e60f9c2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1539acb72bcb37ff79538e05a0bb0526", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 PL/Tcl 中一些未检查 malloc() 调用失败之处", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}, "url": "/docs/compare/?release=9.4.5#9.4.5-3253bd59821361b7", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "4da2d4dd759481f20ee79ea076c77538", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复PL/Tcl中一些未检查malloc()调用失败的位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}, "url": "/docs/compare/?release=9.2.14#9.2.14-53e9aa96fb6b2bcd", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "1cf1bb72d3c6b39723fe53022aa23bbf", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复PL/Tcl中一些未检查malloc()调用失败的位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}, "url": "/docs/compare/?release=9.1.19#9.1.19-53e9aa96fb6b2bcd", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "9e92468d22dc93ec5ab850e41e60f9c2", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复PL/Tcl中一些未检查malloc()调用失败的位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7f9fd72a58456240c83d9a084e64b5a262f595df87d4c9a3473f43d4821e513"}, "url": "/docs/compare/?release=9.0.23#9.0.23-53e9aa96fb6b2bcd", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-6a524e1efdc829d1", "cves": [], "html": "<p>在 <code>contrib/isn</code> 中，修复以 979 开头的 ISBN-13 号码的输出（Fabien Coelho）</p>\n<p>以 979（但不以 9790）开头的 EAN 被视为 ISBN，但它们必须以新的 13 位格式而非 10 位格式打印。</p>", "text": "在 contrib/isn 中，修复以 979 开头的 ISBN-13 号码的输出（Fabien Coelho） 以 979（但不以 9790）开头的 EAN 被视为 ISBN，但它们必须以新的 13 位格式而非 10 位格式打印。", "title": "在 contrib/isn 中，修复以 979 开头的 ISBN-13 号码的输出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "9459aae98c1e6ea964c0a68ceb77dc9d5b7a7cbf6137fd6a0225374def84f446", "section_path": ["变更"], "commit_groups": [], "identity_text": "In contrib/isn, fix output of ISBN-13 numbers that begin with 979 (Fabien Coelho) EANs beginning with 979 (but not 9790) are considered ISBNs, but they must be printed in the new 13-digit format, not the 10-digit format.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/042", "db_id": "a5d616e346045ac679b146478c03c05f", "patch_ids": [], "statement_hash": "4c10c2af19f3b9acfd793e76d72fae780e64ea2c5843a4513449028212bc77e2", "relations": [{"rule": 2, "type": "equivalent", "target": "82ae2dd5c8e1fc0260ab711cc39394e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c10c2af19f3b9acfd793e76d72fae780e64ea2c5843a4513449028212bc77e2"}}, {"rule": 2, "type": "equivalent", "target": "addc78cc7389654f26107e6a1b311d86", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c10c2af19f3b9acfd793e76d72fae780e64ea2c5843a4513449028212bc77e2"}}, {"rule": 2, "type": "equivalent", "target": "de1114139059f61e3e3a570557ee4563", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c10c2af19f3b9acfd793e76d72fae780e64ea2c5843a4513449028212bc77e2"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "addc78cc7389654f26107e6a1b311d86", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "在 contrib/isn 中，修复以 979 开头的 ISBN-13 号码的输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c10c2af19f3b9acfd793e76d72fae780e64ea2c5843a4513449028212bc77e2"}, "url": "/docs/compare/?release=9.4.5#9.4.5-6a524e1efdc829d1", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "de1114139059f61e3e3a570557ee4563", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "在 contrib/isn 中，修复以 979 开头的 ISBN-13 号码的输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c10c2af19f3b9acfd793e76d72fae780e64ea2c5843a4513449028212bc77e2"}, "url": "/docs/compare/?release=9.2.14#9.2.14-6a524e1efdc829d1", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "82ae2dd5c8e1fc0260ab711cc39394e2", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "在 contrib/isn 中，修复以 979 开头的 ISBN-13 号码的输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c10c2af19f3b9acfd793e76d72fae780e64ea2c5843a4513449028212bc77e2"}, "url": "/docs/compare/?release=9.1.19#9.1.19-6a524e1efdc829d1", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.3.10-84b0b1338267c323", "cves": [], "html": "<p>改进 <code>contrib/postgres_fdw</code> 对排序规则相关决策的处理（Tom Lane）</p>\n<p>预期主要的用户可见效果是：涉及 <code>varchar</code> 列的比较将比以前在更多情况下被发送到远程服务器执行。</p>", "text": "改进 contrib/postgres_fdw 对排序规则相关决策的处理（Tom Lane） 预期主要的用户可见效果是：涉及 varchar 列的比较将比以前在更多情况下被发送到远程服务器执行。", "title": "改进 contrib/postgres_fdw 对排序规则相关决策的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "5cf3aa4d37276b24c9b5c6c2fa41c5eca9b0e76ce98a5395cb371d8930aa4a5d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve contrib/postgres_fdw's handling of collation-related decisions (Tom Lane) The main user-visible effect is expected to be that comparisons involving varchar columns will be sent to the remote server for execution in more cases than before.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/043", "db_id": "69e113140bdb85c941f656b2d9e2d1df", "patch_ids": [], "statement_hash": "7b2b4734dfbd61fea116717a37a66062d7362c217deb385a78b8aa64dda62d6c", "relations": [{"rule": 2, "type": "equivalent", "target": "5e786afc81df8a67681662d274032c2a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7b2b4734dfbd61fea116717a37a66062d7362c217deb385a78b8aa64dda62d6c"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e786afc81df8a67681662d274032c2a", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "改进 contrib/postgres_fdw 对排序规则相关决策的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7b2b4734dfbd61fea116717a37a66062d7362c217deb385a78b8aa64dda62d6c"}, "url": "/docs/compare/?release=9.4.5#9.4.5-84b0b1338267c323", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}]}, {"id": "9.3.10-325b5407b34583a4", "cves": [], "html": "<p>改进<span>libpq</span>对内存耗尽情况的处理（Michael Paquier, Heikki Linnakangas）</p>", "text": "改进libpq对内存耗尽情况的处理（Michael Paquier, Heikki Linnakangas）", "title": "改进libpq对内存耗尽情况的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "8296dc20746294fa0e668a3bcabeab9f986399d221ddcc26803cd829a76d82ef", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve libpq's handling of out-of-memory conditions (Michael Paquier, Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/044", "db_id": "71a1550edddf7958d1bf54bd7fdace9b", "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8", "relations": [{"rule": 2, "type": "equivalent", "target": "164b020c132e3503d524602e7cc9ab1b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}}, {"rule": 2, "type": "equivalent", "target": "7be63bfecbb0d6e4d18e2f8705a5b5b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}}, {"rule": 2, "type": "equivalent", "target": "a4349112ebfa074e60ed3bd78173d84c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}}, {"rule": 2, "type": "equivalent", "target": "b848bc2065846783fa346a5c909debd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b848bc2065846783fa346a5c909debd3", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "改进 libpq 对内存不足情况的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}, "url": "/docs/compare/?release=9.4.5#9.4.5-28d5e03370026ec7", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "164b020c132e3503d524602e7cc9ab1b", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "改进libpq对内存耗尽情况的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}, "url": "/docs/compare/?release=9.2.14#9.2.14-325b5407b34583a4", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "7be63bfecbb0d6e4d18e2f8705a5b5b5", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "改进libpq对内存耗尽情况的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}, "url": "/docs/compare/?release=9.1.19#9.1.19-325b5407b34583a4", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "a4349112ebfa074e60ed3bd78173d84c", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "改进libpq对内存耗尽情况的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbb5d0a163d1b469b732354722f1ef5c1281417cb03a108708763c6cce1195c8"}, "url": "/docs/compare/?release=9.0.23#9.0.23-325b5407b34583a4", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-a61d4bfe7a814bb2", "cves": [], "html": "<p>修复<span>ecpg</span>中的内存泄漏和缺失的内存不足检查（Michael Paquier）</p>", "text": "修复ecpg中的内存泄漏和缺失的内存不足检查（Michael Paquier）", "title": "修复ecpg中的内存泄漏和缺失的内存不足检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "9ea7eb29eb7e9ca2541b679ecb05135e19d7ea495b071deb027090bbbfeb8392", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leaks and missing out-of-memory checks in ecpg (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/045", "db_id": "1a506d9f1b14dd22d62da216856ed7e4", "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409", "relations": [{"rule": 2, "type": "equivalent", "target": "1d02943b02efd930bc9b6286e1942fce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}}, {"rule": 2, "type": "equivalent", "target": "44b54422babf71885b31c8a6ffbcc4d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}}, {"rule": 2, "type": "equivalent", "target": "8ecb30327ca588c34d375ba7b88b1651", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}}, {"rule": 2, "type": "equivalent", "target": "b6da92e4f833265944981baddf18676f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b6da92e4f833265944981baddf18676f", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 ecpg 中的内存泄漏和缺失的内存不足检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}, "url": "/docs/compare/?release=9.4.5#9.4.5-2d8997631ab7cabb", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "8ecb30327ca588c34d375ba7b88b1651", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复ecpg中的内存泄漏和缺失的内存不足检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}, "url": "/docs/compare/?release=9.2.14#9.2.14-a61d4bfe7a814bb2", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "44b54422babf71885b31c8a6ffbcc4d3", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复ecpg中的内存泄漏和缺失的内存不足检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}, "url": "/docs/compare/?release=9.1.19#9.1.19-a61d4bfe7a814bb2", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "1d02943b02efd930bc9b6286e1942fce", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复ecpg中的内存泄漏和缺失的内存不足检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8968deea2d7743cec3254d89e5959c92d4b7fb23f87bbbc16d72a292ef321409"}, "url": "/docs/compare/?release=9.0.23#9.0.23-a61d4bfe7a814bb2", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-502f4ffa259324e6", "cves": [], "html": "<p>修复 <span>psql</span> 中对数字输出的区域感知格式化代码（Tom Lane）</p>\n<p><code>\\pset numericlocale on</code> 所调用的格式化代码在一些不常见的情况下会出错，例如带指数但没有小数点的数字。它还可能破坏 <code>money</code> 数据类型已经区域化的输出。</p>", "text": "修复 psql 中对数字输出的区域感知格式化代码（Tom Lane） \\pset numericlocale on 所调用的格式化代码在一些不常见的情况下会出错，例如带指数但没有小数点的数字。它还可能破坏 money 数据类型已经区域化的输出。", "title": "修复 psql 中对数字输出的区域感知格式化代码", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "b057cf5c9756cfa5bb1cc67687433cb074f3283d7f1737361c8c931cc89441cc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql's code for locale-aware formatting of numeric output (Tom Lane) The formatting code invoked by \\pset numericlocale on did the wrong thing for some uncommon cases such as numbers with an exponent but no decimal point. It could also mangle already-localized output from the money data type.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/046", "db_id": "e31c8abb870b833b1ba281d19c9c75e2", "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140", "relations": [{"rule": 2, "type": "equivalent", "target": "6bbd8516d50d23130322a4077c3bacd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}}, {"rule": 2, "type": "equivalent", "target": "97d3344d69061a9d13dc597dbba1d86e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}}, {"rule": 2, "type": "equivalent", "target": "9aec20995312f7a0fef49e0b1f325441", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}}, {"rule": 2, "type": "equivalent", "target": "a161596e4ccb2bf08d7ad90edbe42232", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "97d3344d69061a9d13dc597dbba1d86e", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 psql 中对数字输出的区域感知格式化代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}, "url": "/docs/compare/?release=9.4.5#9.4.5-502f4ffa259324e6", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "a161596e4ccb2bf08d7ad90edbe42232", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复 psql 中对数字输出的区域感知格式化代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}, "url": "/docs/compare/?release=9.2.14#9.2.14-502f4ffa259324e6", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "9aec20995312f7a0fef49e0b1f325441", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复 psql 中对数字输出的区域感知格式化代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}, "url": "/docs/compare/?release=9.1.19#9.1.19-502f4ffa259324e6", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "6bbd8516d50d23130322a4077c3bacd3", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复 psql 中对数字输出的区域感知格式化代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1bbeb677e6fa67b6c73062c664c9ae00cbe37d786833aec5ee8222e8c1b51140"}, "url": "/docs/compare/?release=9.0.23#9.0.23-502f4ffa259324e6", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-68026d1560e0c660", "cves": [], "html": "<p>防止在没有当前连接时<span>psql</span>的<code>\\c</code>命令崩溃（Noah Misch）</p>", "text": "防止在没有当前连接时psql的\\c命令崩溃（Noah Misch）", "title": "防止在没有当前连接时psql的\\c命令崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "b7e5de13a403fc31ed838f6eb1f2bb846086e14356c9b79e0e2f294bc7948cb3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent crash in psql's \\c command when there is no current connection (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/047", "db_id": "037355a920788444f71451b448afdde5", "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870", "relations": [{"rule": 2, "type": "equivalent", "target": "24f27d8dd0940b97582248e168589628", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}}, {"rule": 2, "type": "equivalent", "target": "a93dbd0cca9380e52edb2566cc3c7887", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}}, {"rule": 2, "type": "equivalent", "target": "c365dba95542bedb74af489f5fc311c4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}}, {"rule": 2, "type": "equivalent", "target": "f224415e83a4512f5308a0484cc2b109", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f224415e83a4512f5308a0484cc2b109", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "防止 psql 的 \\c 命令在没有当前连接时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}, "url": "/docs/compare/?release=9.4.5#9.4.5-0b628be16e0700c2", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "24f27d8dd0940b97582248e168589628", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "防止在没有当前连接时psql的\\c命令崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}, "url": "/docs/compare/?release=9.2.14#9.2.14-68026d1560e0c660", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "c365dba95542bedb74af489f5fc311c4", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "防止在没有当前连接时psql的\\c命令崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}, "url": "/docs/compare/?release=9.1.19#9.1.19-68026d1560e0c660", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "a93dbd0cca9380e52edb2566cc3c7887", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "防止在没有当前连接时psql的\\c命令崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8bb375f8dd28afaa91ab8873c6fc9acd784f50f3904f2da2023934559093870"}, "url": "/docs/compare/?release=9.0.23#9.0.23-68026d1560e0c660", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-86a640a1971d8365", "cves": [], "html": "<p>使<span>pg_dump</span>正确处理继承的<code>NOT VALID</code>检查约束（Tom Lane）</p>", "text": "使pg_dump正确处理继承的NOT VALID检查约束（Tom Lane）", "title": "使pg_dump正确处理继承的NOT VALID检查约束", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "3a289e65fd61acf3a2577f50ec0f1b7a98de2f1d7764b645e6292907c2e1c9e9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_dump handle inherited NOT VALID check constraints correctly (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/048", "db_id": "02a491d123420c2d2dfc29c0c89b8322", "patch_ids": [], "statement_hash": "5e0aae2365fdb32db685eb0a34e9590d5a4f1ca7107f1889ac3f3b5f2b3a1856", "relations": [{"rule": 2, "type": "equivalent", "target": "1a5b85e6ab9a8bb1bafa9372003e268d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e0aae2365fdb32db685eb0a34e9590d5a4f1ca7107f1889ac3f3b5f2b3a1856"}}, {"rule": 2, "type": "equivalent", "target": "4802b1cf24ce89c50b058099b7c93ffd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e0aae2365fdb32db685eb0a34e9590d5a4f1ca7107f1889ac3f3b5f2b3a1856"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4802b1cf24ce89c50b058099b7c93ffd", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "使 pg_dump 正确处理继承的 NOT VALID 检查约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e0aae2365fdb32db685eb0a34e9590d5a4f1ca7107f1889ac3f3b5f2b3a1856"}, "url": "/docs/compare/?release=9.4.5#9.4.5-83eb4e651c6222d4", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "1a5b85e6ab9a8bb1bafa9372003e268d", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "使pg_dump正确处理继承的NOT VALID检查约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e0aae2365fdb32db685eb0a34e9590d5a4f1ca7107f1889ac3f3b5f2b3a1856"}, "url": "/docs/compare/?release=9.2.14#9.2.14-86a640a1971d8365", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}]}, {"id": "9.3.10-ac2ec4f9a8e5b3fc", "cves": [], "html": "<p>修复<span>pg_dump</span>目录输出格式中默认<span>zlib</span>压缩级别的选择问题（Andrew Dunstan）</p>", "text": "修复pg_dump目录输出格式中默认zlib压缩级别的选择问题（Andrew Dunstan）", "title": "修复pg_dump目录输出格式中默认zlib压缩级别的选择问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "ad78f58b983c141be429dbb979e79f36c9f2126a7587ddb7884ecc85a32338ac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix selection of default zlib compression level in pg_dump's directory output format (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/049", "db_id": "94bd59f01d62cdeeb55e167b725b0595", "patch_ids": [], "statement_hash": "9c72d4e074219a04a6858085d6b562bad38c1ef189af164547240c8e1cb5c994", "relations": [{"rule": 2, "type": "equivalent", "target": "330f4a02ebea2e8894eb459060026e57", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c72d4e074219a04a6858085d6b562bad38c1ef189af164547240c8e1cb5c994"}}, {"rule": 2, "type": "equivalent", "target": "61ecbcaabfe78f5617d2b1c75b4cd626", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c72d4e074219a04a6858085d6b562bad38c1ef189af164547240c8e1cb5c994"}}, {"rule": 2, "type": "equivalent", "target": "8018db73f4222903c19075c1c3df98a7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c72d4e074219a04a6858085d6b562bad38c1ef189af164547240c8e1cb5c994"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "61ecbcaabfe78f5617d2b1c75b4cd626", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 pg_dump 目录输出格式中默认 zlib 压缩级别的选择", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c72d4e074219a04a6858085d6b562bad38c1ef189af164547240c8e1cb5c994"}, "url": "/docs/compare/?release=9.4.5#9.4.5-629203dc5beb65f2", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "8018db73f4222903c19075c1c3df98a7", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复pg_dump目录输出格式中默认zlib压缩级别的选择问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c72d4e074219a04a6858085d6b562bad38c1ef189af164547240c8e1cb5c994"}, "url": "/docs/compare/?release=9.2.14#9.2.14-ac2ec4f9a8e5b3fc", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "330f4a02ebea2e8894eb459060026e57", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复pg_dump目录输出格式中默认zlib压缩级别的选择问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c72d4e074219a04a6858085d6b562bad38c1ef189af164547240c8e1cb5c994"}, "url": "/docs/compare/?release=9.1.19#9.1.19-ac2ec4f9a8e5b3fc", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.3.10-e538a1f15ed29882", "cves": [], "html": "<p>确保<span>pg_dump</span>以<acronym>tar</acronym>格式输出运行期间创建的临时文件不被全局可读（Michael Paquier）</p>", "text": "确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读（Michael Paquier）", "title": "确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "35e5c5ac563951ac45457b9d959422849f9053a0de89c29f2bfb89f27fe0edce", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that temporary files created during a pg_dump run with tar-format output are not world-readable (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/050", "db_id": "9fdf7145c5a66cb77868c61f0982b87d", "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e", "relations": [{"rule": 2, "type": "equivalent", "target": "1f59f5f9ee2687ef559c6f9b39e75257", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}}, {"rule": 2, "type": "equivalent", "target": "bf9cd4eccd055394cfd69fecdc575cf1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}}, {"rule": 2, "type": "equivalent", "target": "d2fcc056bd31b6450ff11687e5dcdf14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}}, {"rule": 2, "type": "equivalent", "target": "ff023c79b1135d35838320e5c1d60cb7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d2fcc056bd31b6450ff11687e5dcdf14", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "确保 pg_dump 以 tar 格式输出运行期间创建的临时文件不会被所有用户读取", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}, "url": "/docs/compare/?release=9.4.5#9.4.5-72ab3db27e1270e5", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "bf9cd4eccd055394cfd69fecdc575cf1", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}, "url": "/docs/compare/?release=9.2.14#9.2.14-e538a1f15ed29882", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "1f59f5f9ee2687ef559c6f9b39e75257", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}, "url": "/docs/compare/?release=9.1.19#9.1.19-e538a1f15ed29882", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "ff023c79b1135d35838320e5c1d60cb7", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5cdcd054fcdcf39cfb17f4bbd59a8065cd1967958fa05f73d867e20520ddab4e"}, "url": "/docs/compare/?release=9.0.23#9.0.23-e538a1f15ed29882", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-1bf8ec2045b41148", "cves": [], "html": "<p>修复<span>pg_dump</span>和<span>pg_upgrade</span>以支持<code>postgres</code>或<code>template1</code>数据库位于非默认表空间的情况（Marti Raudsepp, Bruce Momjian）</p>", "text": "修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况（Marti Raudsepp, Bruce Momjian）", "title": "修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "ee3a1c7846be87835094389cc57b2668c9f18be1ac87e5826f32b9ee8d706e80", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump and pg_upgrade to support cases where the postgres or template1 database is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/051", "db_id": "9f857298c69fcf23eba991d66fdc78d8", "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74", "relations": [{"rule": 2, "type": "equivalent", "target": "bb9a3ad00d9072acdd6cdd96ae9df1d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}}, {"rule": 2, "type": "equivalent", "target": "cc7ea040b5ec367fce2e93855ea1f77e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}}, {"rule": 2, "type": "equivalent", "target": "cced232ba12f47ffb89e47fceed601b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}}, {"rule": 2, "type": "equivalent", "target": "f6d4cc27aaca23c602e544bafdf27dba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc7ea040b5ec367fce2e93855ea1f77e", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 pg_dump 和 pg_upgrade，以支持 postgres 或 template1 数据库位于非默认表空间的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}, "url": "/docs/compare/?release=9.4.5#9.4.5-35e7f65e0fe7a63d", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "f6d4cc27aaca23c602e544bafdf27dba", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}, "url": "/docs/compare/?release=9.2.14#9.2.14-1bf8ec2045b41148", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "bb9a3ad00d9072acdd6cdd96ae9df1d1", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}, "url": "/docs/compare/?release=9.1.19#9.1.19-1bf8ec2045b41148", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "cced232ba12f47ffb89e47fceed601b3", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cefd8b5dcb7f0d0fed021f38327ec6f7a537823620aec5f7cd423677f4063c74"}, "url": "/docs/compare/?release=9.0.23#9.0.23-1bf8ec2045b41148", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-385ed6c617071f0a", "cves": [], "html": "<p>修复 <span>pg_dump</span> 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理（Tom Lane）</p>\n<p>从 9.2 之前的服务器转储数据类型，以及从 7.3 之前的服务器转储函数或过程语言时，<span>pg_dump</span> 会生成撤销所有者可授予权限、转而将所有权限授予 <code>PUBLIC</code> 的 <code>GRANT</code>/<code>REVOKE</code> 命令。由于所涉及的权限只是 <code>USAGE</code> 和 <code>EXECUTE</code>，这不构成安全问题，但这种表示与旧系统的行为明显不符。现已修复，在这些情况下保持默认权限状态不变。</p>", "text": "修复 pg_dump 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理（Tom Lane） 从 9.2 之前的服务器转储数据类型，以及从 7.3 之前的服务器转储函数或过程语言时，pg_dump 会生成撤销所有者可授予权限、转而将所有权限授予 PUBLIC 的 GRANT/REVOKE 命令。由于所涉及的权限只是 USAGE 和 EXECUTE，这不构成安全问题，但这种表示与旧系统的行为明显不符。现已修复，在这些情况下保持默认权限状态不变。", "title": "修复 pg_dump 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "1364bb7cdd4cc14eece2243cc8ae3f2e0cb69ef8f5af65908fc1f962e9954e61", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump to handle object privileges sanely when dumping from a server too old to have a particular privilege type (Tom Lane) When dumping data types from pre-9.2 servers, and when dumping functions or procedural languages from pre-7.3 servers, pg_dump would produce GRANT/REVOKE commands that revoked the owner's grantable privileges and instead granted all privileges to PUBLIC. Since the privileges involved are just USAGE and EXECUTE, this isn't a security problem, but it's certainly a surprising representation of the older systems' behavior. Fix it to leave the default privilege state alone in these cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/052", "db_id": "93d4ca5d89a2bcf8587a043e05d410bc", "patch_ids": [], "statement_hash": "c014332396af93904c91866f7b6c9e4e47c387a5435c734701cfdecd38eb02ae", "relations": [{"rule": 2, "type": "equivalent", "target": "a20078d2602fed9fb13ae6f5c04ab95f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c014332396af93904c91866f7b6c9e4e47c387a5435c734701cfdecd38eb02ae"}}, {"rule": 2, "type": "equivalent", "target": "c879940ebe4174b10ab29ccc1ce0009b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c014332396af93904c91866f7b6c9e4e47c387a5435c734701cfdecd38eb02ae"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c879940ebe4174b10ab29ccc1ce0009b", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 pg_dump 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c014332396af93904c91866f7b6c9e4e47c387a5435c734701cfdecd38eb02ae"}, "url": "/docs/compare/?release=9.4.5#9.4.5-385ed6c617071f0a", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "a20078d2602fed9fb13ae6f5c04ab95f", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复 pg_dump 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c014332396af93904c91866f7b6c9e4e47c387a5435c734701cfdecd38eb02ae"}, "url": "/docs/compare/?release=9.2.14#9.2.14-385ed6c617071f0a", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}]}, {"id": "9.3.10-b3b153200af7901b", "cves": [], "html": "<p>修复<span>pg_dump</span>以转储 shell 类型（Tom Lane）</p>\n<p>shell 类型（即尚未完全定义的类型）用处不大，但<span>pg_dump</span>仍应转储它们。</p>", "text": "修复pg_dump以转储 shell 类型（Tom Lane） shell 类型（即尚未完全定义的类型）用处不大，但pg_dump仍应转储它们。", "title": "修复pg_dump以转储 shell 类型", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "7e9bf1e7bd0ecd55196fb95ebced19f3656128399f9f32d8f544549b3f7cac75", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump to dump shell types (Tom Lane) Shell types (that is, not-yet-fully-defined types) aren't useful for much, but nonetheless pg_dump should dump them.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/053", "db_id": "cd6ff460aebbecc60caf6b4b080171f0", "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408", "relations": [{"rule": 2, "type": "equivalent", "target": "198cd89efe91ccc05b58a6b783f09f70", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}}, {"rule": 2, "type": "equivalent", "target": "1b5d70d8b6be98bebcfde68fc4adb9a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}}, {"rule": 2, "type": "equivalent", "target": "ab7f74ddc545d2f6f54da12b74bc5573", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}}, {"rule": 2, "type": "equivalent", "target": "dcb47328a1d1764927180d40868b7d67", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "198cd89efe91ccc05b58a6b783f09f70", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复pg_dump以转储 shell 类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}, "url": "/docs/compare/?release=9.4.5#9.4.5-b3b153200af7901b", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "1b5d70d8b6be98bebcfde68fc4adb9a0", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复pg_dump以转储 shell 类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}, "url": "/docs/compare/?release=9.2.14#9.2.14-b3b153200af7901b", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "dcb47328a1d1764927180d40868b7d67", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复pg_dump以转储 shell 类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}, "url": "/docs/compare/?release=9.1.19#9.1.19-b3b153200af7901b", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "ab7f74ddc545d2f6f54da12b74bc5573", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复pg_dump以转储 shell 类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3842f9e8524734ef3ff6776f31bde69a2fba74e0f13dc37e8efdde35a1068408"}, "url": "/docs/compare/?release=9.0.23#9.0.23-b3b153200af7901b", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-01258499676c8bb9", "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.3.10/#id-1.11.6.20.5", "source_hash": "6de8cc0db0eb9e25d46b4b2dfa4ae12741f42ba2abe0eda4918bc1fe4e8a0360", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix assorted minor memory leaks in pg_dump and other client-side programs (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/054", "db_id": "e9ed74d6a504a160674a2cacc2e1445c", "patch_ids": [], "statement_hash": "47f8bd347b6013c7d43cc8d99b4589e8b661c09d9ba7d14ed086103e1828ece4", "relations": [{"rule": 2, "type": "equivalent", "target": "7446c203120802ec8382340475c5747b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f8bd347b6013c7d43cc8d99b4589e8b661c09d9ba7d14ed086103e1828ece4"}}, {"rule": 2, "type": "equivalent", "target": "9f232daf6263acce3211c0345a7a1c78", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f8bd347b6013c7d43cc8d99b4589e8b661c09d9ba7d14ed086103e1828ece4"}}, {"rule": 2, "type": "equivalent", "target": "c93ec9cbab57f33d9a0e3b208916f471", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f8bd347b6013c7d43cc8d99b4589e8b661c09d9ba7d14ed086103e1828ece4"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9f232daf6263acce3211c0345a7a1c78", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 pg_dump 和其他客户端程序中的各种轻微内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f8bd347b6013c7d43cc8d99b4589e8b661c09d9ba7d14ed086103e1828ece4"}, "url": "/docs/compare/?release=9.4.5#9.4.5-71c66128d4fda6ac", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "c93ec9cbab57f33d9a0e3b208916f471", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复pg_dump及其他客户端程序中的若干小内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f8bd347b6013c7d43cc8d99b4589e8b661c09d9ba7d14ed086103e1828ece4"}, "url": "/docs/compare/?release=9.2.14#9.2.14-01258499676c8bb9", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "7446c203120802ec8382340475c5747b", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复pg_dump及其他客户端程序中的若干小内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f8bd347b6013c7d43cc8d99b4589e8b661c09d9ba7d14ed086103e1828ece4"}, "url": "/docs/compare/?release=9.1.19#9.1.19-01258499676c8bb9", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}]}, {"id": "9.3.10-19960d87a0be9b0f", "cves": [], "html": "<p>修复 PPC 硬件的自旋锁汇编代码使其与<acronym>AIX</acronym>本机汇编器兼容（Tom Lane）</p>\n<p>如果<span>gcc</span>被配置为使用本机汇编器（这正变得越来越普遍），则用<span>gcc</span>构建无法工作。</p>", "text": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容（Tom Lane） 如果gcc被配置为使用本机汇编器（这正变得越来越普遍），则用gcc构建无法工作。", "title": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "1099c6e767f4c6e6eb4a3e6d8bd72b49c64755503c02663c5389d28d74ab6294", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix spinlock assembly code for PPC hardware to be compatible with AIX's native assembler (Tom Lane) Building with gcc didn't work if gcc had been configured to use the native assembler, which is becoming more common.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/055", "db_id": "2053606d8ce631ced9d2a927696bbcba", "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382", "relations": [{"rule": 2, "type": "equivalent", "target": "08722d0b58627909bc9f53b8719359d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}}, {"rule": 2, "type": "equivalent", "target": "22ce4141ea7a2d4259ae42bcf1f79a1a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}}, {"rule": 2, "type": "equivalent", "target": "88d1a5e3e1cda3976eb97d2f02e3b6d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}}, {"rule": 2, "type": "equivalent", "target": "ee5930d6b766b9749efaddd9c3cc5f4c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "22ce4141ea7a2d4259ae42bcf1f79a1a", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}, "url": "/docs/compare/?release=9.4.5#9.4.5-19960d87a0be9b0f", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "88d1a5e3e1cda3976eb97d2f02e3b6d3", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}, "url": "/docs/compare/?release=9.2.14#9.2.14-19960d87a0be9b0f", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "08722d0b58627909bc9f53b8719359d3", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}, "url": "/docs/compare/?release=9.1.19#9.1.19-19960d87a0be9b0f", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "ee5930d6b766b9749efaddd9c3cc5f4c", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1b1165e75b01634dea27bed0b57f6cccf0b1020d746b4a5ef935bee7a5d92382"}, "url": "/docs/compare/?release=9.0.23#9.0.23-19960d87a0be9b0f", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-d99afd964efabbd7", "cves": [], "html": "<p>在<acronym>AIX</acronym>上，测试<code>-qlonglong</code>编译器选项，而不是直接假定它可以安全使用（Noah Misch）</p>", "text": "在AIX上，测试-qlonglong编译器选项，而不是直接假定它可以安全使用（Noah Misch）", "title": "在AIX上，测试-qlonglong编译器选项，而不是直接假定它可以安全使用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "c02fa835a0c930063520397f24f1953fde6d306f4bad2cb0a9a9975c8acfb7ad", "section_path": ["变更"], "commit_groups": [], "identity_text": "On AIX, test the -qlonglong compiler option rather than just assuming it's safe to use (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/056", "db_id": "f43a95263da908bd3c3bf2ce74809e5c", "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff", "relations": [{"rule": 2, "type": "equivalent", "target": "568dfa6e89c6639fa12ac119790807aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}}, {"rule": 2, "type": "equivalent", "target": "6a2f7a5d970f41298c516e2d6993f1f1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}}, {"rule": 2, "type": "equivalent", "target": "8dfcc185ebbb8d9b450a386f73553b84", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}}, {"rule": 2, "type": "equivalent", "target": "c00323995f0b6ae45556947d8a9e3505", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c00323995f0b6ae45556947d8a9e3505", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "在 AIX 上，测试 -qlonglong 编译器选项，而不是仅仅假定可以安全使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}, "url": "/docs/compare/?release=9.4.5#9.4.5-582cb3ddeafa8431", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "6a2f7a5d970f41298c516e2d6993f1f1", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "在AIX上，测试-qlonglong编译器选项，而不是直接假定它可以安全使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}, "url": "/docs/compare/?release=9.2.14#9.2.14-d99afd964efabbd7", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "568dfa6e89c6639fa12ac119790807aa", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "在AIX上，测试-qlonglong编译器选项，而不是直接假定它可以安全使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}, "url": "/docs/compare/?release=9.1.19#9.1.19-d99afd964efabbd7", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "8dfcc185ebbb8d9b450a386f73553b84", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "在AIX上，测试-qlonglong编译器选项，而不是直接假定它可以安全使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc165bf194d65990d80eba308680b15ef43c28c6bbb9d7001d5b04e816834fff"}, "url": "/docs/compare/?release=9.0.23#9.0.23-d99afd964efabbd7", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-b77bed39928ffbe9", "cves": [], "html": "<p>在<acronym>AIX</acronym>上，使用<code>-Wl,-brtllib</code>链接选项以允许符号在运行时解析（Noah Misch）</p>\n<p>Perl 5.8.0 及更高版本依赖这一能力。</p>", "text": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析（Noah Misch） Perl 5.8.0 及更高版本依赖这一能力。", "title": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "359c0e0820174e6b0106125372d70ce8f90edc57ee9e2efb429471b6e0f7cfda", "section_path": ["变更"], "commit_groups": [], "identity_text": "On AIX, use -Wl,-brtllib link option to allow symbols to be resolved at runtime (Noah Misch) Perl relies on this ability in 5.8.0 and later.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/057", "db_id": "a81be841fc994304a694cdfc03638283", "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5", "relations": [{"rule": 2, "type": "equivalent", "target": "1c471a9d8bab5c55ebd8141bdc0c545c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}}, {"rule": 2, "type": "equivalent", "target": "702a7f1c8f7a8410baa8a62ff10c6dd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}}, {"rule": 2, "type": "equivalent", "target": "86d8b90f4c61aafb7a7fb2189c44d402", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}}, {"rule": 2, "type": "equivalent", "target": "8f1708238b550f84182c44af3d3c0b82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c471a9d8bab5c55ebd8141bdc0c545c", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}, "url": "/docs/compare/?release=9.4.5#9.4.5-b77bed39928ffbe9", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "702a7f1c8f7a8410baa8a62ff10c6dd3", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}, "url": "/docs/compare/?release=9.2.14#9.2.14-b77bed39928ffbe9", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "86d8b90f4c61aafb7a7fb2189c44d402", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}, "url": "/docs/compare/?release=9.1.19#9.1.19-b77bed39928ffbe9", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "8f1708238b550f84182c44af3d3c0b82", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "在AIX上，使用-Wl,-brtllib链接选项以允许符号在运行时解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4a8a2748e95297e0fc15c46824099d3958d8d6c815e2dfd010bd9b7661210c5"}, "url": "/docs/compare/?release=9.0.23#9.0.23-b77bed39928ffbe9", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-2079635a1865c234", "cves": [], "html": "<p>由于编译器缺陷，在使用 32 位<span>xlc</span>编译时避免使用内联函数（Noah Misch）</p>", "text": "由于编译器缺陷，在使用 32 位xlc编译时避免使用内联函数（Noah Misch）", "title": "由于编译器缺陷，在使用 32 位xlc编译时避免使用内联函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "844943335464d4ee474c3f73667a13bc4fe93d923c5029c480b2d1c69b6c1977", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid use of inline functions when compiling with 32-bit xlc, due to compiler bugs (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/058", "db_id": "3d670e76d42c19d3aaec94c33efa2ef1", "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8", "relations": [{"rule": 2, "type": "equivalent", "target": "48f15fe9b20c6994a95a807b98ec35bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}}, {"rule": 2, "type": "equivalent", "target": "758e12ef578cbeb1823776e365470049", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}}, {"rule": 2, "type": "equivalent", "target": "876020ff4ceebd981830b752b8cf086f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}}, {"rule": 2, "type": "equivalent", "target": "ba1b33efb41d54081600d29fc597454e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "48f15fe9b20c6994a95a807b98ec35bb", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "使用 32 位 xlc 编译时避免使用内联函数，因为编译器存在缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}, "url": "/docs/compare/?release=9.4.5#9.4.5-a8fff0424fa4307c", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "876020ff4ceebd981830b752b8cf086f", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "由于编译器缺陷，在使用 32 位xlc编译时避免使用内联函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}, "url": "/docs/compare/?release=9.2.14#9.2.14-2079635a1865c234", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "758e12ef578cbeb1823776e365470049", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "由于编译器缺陷，在使用 32 位xlc编译时避免使用内联函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}, "url": "/docs/compare/?release=9.1.19#9.1.19-2079635a1865c234", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "ba1b33efb41d54081600d29fc597454e", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "由于编译器缺陷，在使用 32 位xlc编译时避免使用内联函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "145f012e8d72f366304e35b0f86eb96441bde62f8d43077520a1dc99c0f81cb8"}, "url": "/docs/compare/?release=9.0.23#9.0.23-2079635a1865c234", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-c5b84c55a849b496", "cves": [], "html": "<p>必要时使用<code>librt</code>提供<code>sched_yield()</code>，某些 Solaris 版本即是如此（Oskari Saarenmaa）</p>", "text": "必要时使用librt提供sched_yield()，某些 Solaris 版本即是如此（Oskari Saarenmaa）", "title": "必要时使用librt提供sched_yield()，某些 Solaris 版本即是如此", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "1c63156636d12289eefcd36ce516cec2c3d6057ac02f8f6cad207711d8d911ca", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use librt for sched_yield() when necessary, which it is on some Solaris versions (Oskari Saarenmaa)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/059", "db_id": "367ba659cb5305339233fa74c73c909f", "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813", "relations": [{"rule": 2, "type": "equivalent", "target": "07cc0a1005b6962cde2372e9f9368b21", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}}, {"rule": 2, "type": "equivalent", "target": "28d4a8ee80331047799b18a48644e0ba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}}, {"rule": 2, "type": "equivalent", "target": "640c578e3035e1922f5aeaf519c9e8ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}}, {"rule": 2, "type": "equivalent", "target": "b10009add7519a9b2ba6ee201651ed9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "07cc0a1005b6962cde2372e9f9368b21", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "必要时使用 librt 提供 sched_yield()，在某些 Solaris 版本上正是如此", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}, "url": "/docs/compare/?release=9.4.5#9.4.5-c82c3c5848e8ae19", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "b10009add7519a9b2ba6ee201651ed9e", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "必要时使用librt提供sched_yield()，某些 Solaris 版本即是如此", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}, "url": "/docs/compare/?release=9.2.14#9.2.14-c5b84c55a849b496", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "28d4a8ee80331047799b18a48644e0ba", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "必要时使用librt提供sched_yield()，某些 Solaris 版本即是如此", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}, "url": "/docs/compare/?release=9.1.19#9.1.19-c5b84c55a849b496", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "640c578e3035e1922f5aeaf519c9e8ce", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "必要时使用librt提供sched_yield()，某些 Solaris 版本即是如此", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f3bf634e61cbc1999279e3da5421becfeefcc5d86dd5353a17619da09938813"}, "url": "/docs/compare/?release=9.0.23#9.0.23-c5b84c55a849b496", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-ab87fa4f5d7affe5", "cves": [], "html": "<p>修复 Windows<code>install.bat</code>脚本以处理包含空格的目标目录名（Heikki Linnakangas）</p>", "text": "修复 Windowsinstall.bat脚本以处理包含空格的目标目录名（Heikki Linnakangas）", "title": "修复 Windowsinstall.bat脚本以处理包含空格的目标目录名", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "055bad70218f110bc06ec240c080eb474a3a2f86b4b52c96f87ce3ec789dc897", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix Windows install.bat script to handle target directory names that contain spaces (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/060", "db_id": "20abc2c5303e78b897918c6b0787d6e0", "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5", "relations": [{"rule": 2, "type": "equivalent", "target": "28c9d0f663c7d40194eb73fb31a0c3bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}}, {"rule": 2, "type": "equivalent", "target": "2ab7366931eca415ea81477cdaf50977", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}}, {"rule": 2, "type": "equivalent", "target": "7c0e915caa622e816a95f71b331a99b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}}, {"rule": 2, "type": "equivalent", "target": "8178eb6232fd972850e1261471abbe2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}}], "version": "9.3.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7c0e915caa622e816a95f71b331a99b8", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "修复 Windows install.bat 脚本以处理包含空格的目标目录名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}, "url": "/docs/compare/?release=9.4.5#9.4.5-27ca82cd1452b2e3", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "28c9d0f663c7d40194eb73fb31a0c3bf", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "修复 Windowsinstall.bat脚本以处理包含空格的目标目录名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}, "url": "/docs/compare/?release=9.2.14#9.2.14-ab87fa4f5d7affe5", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "8178eb6232fd972850e1261471abbe2c", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "修复 Windowsinstall.bat脚本以处理包含空格的目标目录名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}, "url": "/docs/compare/?release=9.1.19#9.1.19-ab87fa4f5d7affe5", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "2ab7366931eca415ea81477cdaf50977", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "修复 Windowsinstall.bat脚本以处理包含空格的目标目录名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aed701e47d9fea2fc3f4468e294c897ad336ec1542cae0693ae80fafdd100f5"}, "url": "/docs/compare/?release=9.0.23#9.0.23-ab87fa4f5d7affe5", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-13376f8ec69d0ac3", "cves": [], "html": "<p>使<span>PostgreSQL</span>版本号的数字形式（例如<code>90405</code>）以名为<code>VERSION_NUM</code>的变量方便地提供给扩展 Makefile 使用（Michael Paquier）</p>", "text": "使PostgreSQL版本号的数字形式（例如90405）以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用（Michael Paquier）", "title": "使PostgreSQL版本号的数字形式（例如90405）以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "5959fbd39edc6d90ceb04f417b68d3808976e82b2e4d58974f530a42e51b0d68", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make the numeric form of the PostgreSQL version number (e.g., 90405) readily available to extension Makefiles, as a variable named VERSION_NUM (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/061", "db_id": "0c57541666ec0cce94e6def17ed48342", "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965", "relations": [{"rule": 2, "type": "equivalent", "target": "3b8975527a21b7d7d5623b9a190723b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}}, {"rule": 2, "type": "equivalent", "target": "8aef9c56b83c6445e74788a14336c07f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}}, {"rule": 2, "type": "equivalent", "target": "b6a53bd4e874ed0d250f3685a5016a87", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}}, {"rule": 2, "type": "equivalent", "target": "f60461d369dd6c92d50478705906a207", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f60461d369dd6c92d50478705906a207", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "使 PostgreSQL 版本号的数字形式（例如 90405）以名为 VERSION_NUM 的变量方便地供扩展 Makefile 使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}, "url": "/docs/compare/?release=9.4.5#9.4.5-5ee43f800ffd792d", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "8aef9c56b83c6445e74788a14336c07f", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "使PostgreSQL版本号的数字形式（例如90405）以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}, "url": "/docs/compare/?release=9.2.14#9.2.14-13376f8ec69d0ac3", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "b6a53bd4e874ed0d250f3685a5016a87", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "使PostgreSQL版本号的数字形式（例如90405）以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}, "url": "/docs/compare/?release=9.1.19#9.1.19-13376f8ec69d0ac3", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "3b8975527a21b7d7d5623b9a190723b0", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "使PostgreSQL版本号的数字形式（例如90405）以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "484060ca2a9408a8cf77ff226efaf1da79595db7b09616726d77ba2163df1965"}, "url": "/docs/compare/?release=9.0.23#9.0.23-13376f8ec69d0ac3", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}, {"id": "9.3.10-5a7b80cf37914d87", "cves": [], "html": "<p>将时区数据文件更新到<span>tzdata</span>发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名<code>America/Fort_Nelson</code>。</p>", "text": "将时区数据文件更新到tzdata发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。", "title": "将时区数据文件更新到tzdata发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.10/#id-1.11.6.20.5", "source_hash": "d99a81058168caa22d8a41fef82b608e536eab728d64fc44392f18ba60d29a15", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2015g for DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk Island, North Korea, Turkey, and Uruguay. There is a new zone name America/Fort_Nelson for the Canadian Northern Rockies.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.10/changes/062", "db_id": "344574c08c0ea148baed85e08eb62e7a", "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59", "relations": [{"rule": 2, "type": "equivalent", "target": "34a3f0ed3ee346eada29462e320dd286", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}}, {"rule": 2, "type": "equivalent", "target": "510de35fcf64345dcecff12334bb64e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}}, {"rule": 2, "type": "equivalent", "target": "6c36282afead4d03a462ad37adcbf939", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}}, {"rule": 2, "type": "equivalent", "target": "bbf6a37d073d738034730fd70cbb8adb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}}], "version": "9.3.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "510de35fcf64345dcecff12334bb64e3", "kind": "equivalent", "version": "9.4.5", "label": "9.4.5", "title": "将时区数据文件更新到 tzdata 发行版 2015g，涵盖开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北部落基山脉新增了时区名 America/Fort_Nelson。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}, "url": "/docs/compare/?release=9.4.5#9.4.5-0c2086ccc354a5b3", "source_url": "/docs/release/9.4.5/#id-1.11.6.26.5"}, {"db_id": "6c36282afead4d03a462ad37adcbf939", "kind": "equivalent", "version": "9.2.14", "label": "9.2.14", "title": "将时区数据文件更新到tzdata发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}, "url": "/docs/compare/?release=9.2.14#9.2.14-5a7b80cf37914d87", "source_url": "/docs/release/9.2.14/#id-1.11.6.15.5"}, {"db_id": "34a3f0ed3ee346eada29462e320dd286", "kind": "equivalent", "version": "9.1.19", "label": "9.1.19", "title": "将时区数据文件更新到tzdata发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}, "url": "/docs/compare/?release=9.1.19#9.1.19-5a7b80cf37914d87", "source_url": "/docs/release/9.1.19/#id-1.11.6.10.5"}, {"db_id": "bbf6a37d073d738034730fd70cbb8adb", "kind": "equivalent", "version": "9.0.23", "label": "9.0.23", "title": "将时区数据文件更新到tzdata发行版 2015g，以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d15de3da93624597b911098ac15b151147ba4c257e70bfcae8ff609fb75de59"}, "url": "/docs/compare/?release=9.0.23#9.0.23-5a7b80cf37914d87", "source_url": "/docs/release/9.0.23/#id-1.11.6.5.6"}]}]}, {"date": "2015-06-12", "build": "9.3.9", "major": "9.3", "minor": 9, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.9", "eol_date": "2018-11-08", "date_text": "2015-06-12", "supported": false, "manual_url": "/docs/9.3/release-9-3-9.html", "source_url": "/docs/release/9.3.9/", "entry_count": 4, "placeholder": false, "content_hash": "fc934a9b0e188f0ed4e4e2f1d28b766ebbc85a19d9621dae710febca85ad10ca", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 4, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>但是，如果你要升级的安装此前曾使用 9.3.0 到 9.3.4（含）之间的<span>pg_upgrade</span>版本升级过，请参见下面的第一条变更日志条目。</p>\n<p>不过，如果你是从早于 9.3.7 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-7.html\" title=\"E.19. 版本 9.3.7\">第 E.19 节</a>。</p>", "compatibility_count": 0, "label": "9.3.9", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4128, "support_days": -2883, "entries": [{"id": "9.3.9-73b7d5f1a2438a4d", "cves": [], "html": "<p>修复从不一致数据库状态恢复时可能失败的问题（Robert Haas）</p>\n<p>最近的<span>PostgreSQL</span>发行版引入了防御多事务 ID 回卷的机制，但其中一些代码没有考虑到可能需要在崩溃恢复期间（数据库可能不处于一致状态时）运行。这可能导致崩溃后无法重启或无法启动辅助服务器。在曾使用 9.3.0 到 9.3.4 之间<span>pg_upgrade</span>版本的安装中，<span>pg_upgrade</span>一个已修复缺陷的残留影响也可能导致这种失败。</p>\n<p>所涉及的<span>pg_upgrade</span>缺陷是：即使真实值应该更高，它也会把<code>pg_control</code>中的<code>oldestMultiXid</code>设为 1。有了本发行版引入的修复，这种情况将导致立即进行紧急自动清理，直到能够确定正确的<code>oldestMultiXid</code>值。如果这会造成困难，用户可以在升级到本发行版<span><em>之前</em></span>进行手工清理来避免。具体步骤如下：</p>\n<div>\n<ol type=\"1\">\n<li>\n<p>检查<span>pg_controldata</span>报告的<span>“<span>Latest checkpoint's oldestMultiXid</span>”</span>是否为 1。如果不是，则无需任何操作。</p>\n</li>\n<li>\n<p>查看<code>PGDATA/pg_multixact/offsets</code>中是否有名为<code>0000</code>的文件。如果有，则无需任何操作。</p>\n</li>\n<li>\n<p>否则，对于 <code>pg_class</code>.<code>relminmxid</code> 等于 1 的每个表，在把<a href=\"/docs/9.3/runtime-config-client.html#GUC-VACUUM-MULTIXACT-FREEZE-MIN-AGE\">vacuum_multixact_freeze_min_age</a>和<a href=\"/docs/9.3/runtime-config-client.html#GUC-VACUUM-MULTIXACT-FREEZE-TABLE-AGE\">vacuum_multixact_freeze_table_age</a>都设为零的情况下对该表执行 <code>VACUUM</code>。（可以使用<a href=\"/docs/9.3/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-VACUUM-COST\" title=\"18.4.4. 基于代价的清理延迟\">第 18.4.4 节</a>中描述的清理代价延迟参数，来降低对并发会话的性能影响。）执行这一步必须使用 <span>PostgreSQL</span> 9.3.5 或更高版本。</p>\n</li>\n</ol>\n</div>", "text": "修复从不一致数据库状态恢复时可能失败的问题（Robert Haas） 最近的PostgreSQL发行版引入了防御多事务 ID 回卷的机制，但其中一些代码没有考虑到可能需要在崩溃恢复期间（数据库可能不处于一致状态时）运行。这可能导致崩溃后无法重启或无法启动辅助服务器。在曾使用 9.3.0 到 9.3.4 之间pg_upgrade版本的安装中，pg_upgrade一个已修复缺陷的残留影响也可能导致这种失败。 所涉及的pg_upgrade缺陷是：即使真实值应该更高，它也会把pg_control中的oldestMultiXid设为 1。有了本发行版引入的修复，这种情况将导致立即进行紧急自动清理，直到能够确定正确的oldestMultiXid值。如果这会造成困难，用户可以在升级到本发行版之前进行手工清理来避免。具体步骤如下： 检查pg_controldata报告的“Latest checkpoint's oldestMultiXid”是否为 1。如果不是，则无需任何操作。 查看PGDATA/pg_multixact/offsets中是否有名为0000的文件。如果有，则无需任何操作。 否则，对于 pg_class.relminmxid 等于 1 的每个表，在把vacuum_multixact_freeze_min_age和vacuum_multixact_freeze_table_age都设为零的情况下对该表执行 VACUUM。（可以使用第 18.4.4 节中描述的清理代价延迟参数，来降低对并发会话的性能影响。）执行这一步必须使用 PostgreSQL 9.3.5 或更高版本。", "title": "修复从不一致数据库状态恢复时可能失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.9/#id-1.11.6.21.5", "source_hash": "eb0b7bbb05bfd13cf30111535121cb17a9587c3dec5266669e4f84dfac921285", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible failure to recover from an inconsistent database state (Robert Haas) Recent PostgreSQL releases introduced mechanisms to protect against multixact wraparound, but some of that code did not account for the possibility that it would need to run during crash recovery, when the database may not be in a consistent state. This could result in failure to restart after a crash, or failure to start up a secondary server. The lingering effects of a previously-fixed bug in pg_upgrade could also cause such a failure, in installations that had used pg_upgrade versions between 9.3.0 and 9.3.4. The pg_upgrade bug in question was that it would set oldestMultiXid to 1 in pg_control even if the true value should be higher. With the fixes introduced in this release, such a situation will result in immediate emergency autovacuuming until a correct oldestMultiXid value can be determined. If that would pose a hardship, users can avoid it by doing manual vacuuming before upgrading to this release. In detail: Check whether pg_controldata reports Latest checkpoint's oldestMultiXid to be 1. If not, there's nothing to do. Look in PGDATA/pg_multixact/offsets to see if there's a file named 0000. If there is, there's nothing to do. Otherwise, for each table that has pg_class.relminmxid equal to 1, VACUUM that table with both guc-vacuum-multixact-freeze-min-age and guc-vacuum-multixact-freeze-table-age set to zero. (You can use the vacuum cost delay parameters described in runtime-config-resource-vacuum-cost to reduce the performance consequences for concurrent sessions.) You must use PostgreSQL 9.3.5 or later to perform this step.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.9/changes/001", "db_id": "6d4b9a9c2e16d7002435d0f045729b49", "patch_ids": [], "statement_hash": "8753f4ac1defc2340c44d0cf4316819e6498b118a2ef97a0f74ffc9f03273b85", "relations": [], "version": "9.3.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.9-2138cf0f137fffce", "cves": [], "html": "<p>修复罕见的未能使关系缓存 init 文件失效的问题（Tom Lane）</p>\n<p>在并发活动时序恰好不对的情况下，对系统目录执行<code>VACUUM FULL</code>可能无法更新用于避免新会话缓存加载工作的<span>“<span>init 文件</span>”</span>。这将导致后续会话完全无法访问该目录。这是一个非常古老的缺陷，但它极难触发，直到最近才出现可复现的案例。</p>", "text": "修复罕见的未能使关系缓存 init 文件失效的问题（Tom Lane） 在并发活动时序恰好不对的情况下，对系统目录执行VACUUM FULL可能无法更新用于避免新会话缓存加载工作的“init 文件”。这将导致后续会话完全无法访问该目录。这是一个非常古老的缺陷，但它极难触发，直到最近才出现可复现的案例。", "title": "修复罕见的未能使关系缓存 init 文件失效的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.9/#id-1.11.6.21.5", "source_hash": "6bec1b27e4a7c93b00f27640abe8cfeea45f0bff3dcdb265af25580efcb2a989", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix rare failure to invalidate relation cache init file (Tom Lane) With just the wrong timing of concurrent activity, a VACUUM FULL on a system catalog might fail to update the init file that's used to avoid cache-loading work for new sessions. This would result in later sessions being unable to access that catalog at all. This is a very ancient bug, but it's so hard to trigger that no reproducible case had been seen until recently.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.9/changes/002", "db_id": "d00ab3b80fd0fe3a84d1b02a94bfcd79", "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d", "relations": [{"rule": 2, "type": "equivalent", "target": "421f0e5f53c1b534c1a5d7e5c3ddaeb1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}}, {"rule": 2, "type": "equivalent", "target": "56559e80e5e318ceb4a1514c01179a96", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}}, {"rule": 2, "type": "equivalent", "target": "62f6eb8f9354ed2084e2a04aba92b9a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}}, {"rule": 2, "type": "equivalent", "target": "e08881035a5c62a2921de58daddb199c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}}], "version": "9.3.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e08881035a5c62a2921de58daddb199c", "kind": "equivalent", "version": "9.4.4", "label": "9.4.4", "title": "修复罕见的未能使关系缓存 init 文件失效的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}, "url": "/docs/compare/?release=9.4.4#9.4.4-2138cf0f137fffce", "source_url": "/docs/release/9.4.4/#id-1.11.6.27.5"}, {"db_id": "62f6eb8f9354ed2084e2a04aba92b9a4", "kind": "equivalent", "version": "9.2.13", "label": "9.2.13", "title": "修复罕见的未能使关系缓存 init 文件失效的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}, "url": "/docs/compare/?release=9.2.13#9.2.13-2138cf0f137fffce", "source_url": "/docs/release/9.2.13/#id-1.11.6.16.5"}, {"db_id": "421f0e5f53c1b534c1a5d7e5c3ddaeb1", "kind": "equivalent", "version": "9.1.18", "label": "9.1.18", "title": "修复罕见的未能使关系缓存 init 文件失效的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}, "url": "/docs/compare/?release=9.1.18#9.1.18-2138cf0f137fffce", "source_url": "/docs/release/9.1.18/#id-1.11.6.11.5"}, {"db_id": "56559e80e5e318ceb4a1514c01179a96", "kind": "equivalent", "version": "9.0.22", "label": "9.0.22", "title": "修复罕见的未能使关系缓存 init 文件失效的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbd29ab3677162dd8eee0c8fdae7218663c03b789800db751346403cb4a7e91d"}, "url": "/docs/compare/?release=9.0.22#9.0.22-2138cf0f137fffce", "source_url": "/docs/release/9.0.22/#id-1.11.6.6.6"}]}, {"id": "9.3.9-bf7732cf950a1492", "cves": [], "html": "<p>避免传入会话与<code>CREATE/DROP DATABASE</code>之间的死锁（Tom Lane）</p>\n<p>在作为<code>DROP DATABASE</code>命令目标或<code>CREATE DATABASE</code>命令模板的数据库中启动的新会话，可能导致该命令等待五秒后失败，即使新会话本会在此之前退出。</p>", "text": "避免传入会话与CREATE/DROP DATABASE之间的死锁（Tom Lane） 在作为DROP DATABASE命令目标或CREATE DATABASE命令模板的数据库中启动的新会话，可能导致该命令等待五秒后失败，即使新会话本会在此之前退出。", "title": "避免传入会话与CREATE/DROP DATABASE之间的死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.9/#id-1.11.6.21.5", "source_hash": "5955b77e7598b41a798cbf651d54231093f0a28da1857ce4d5be305b763ca703", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid deadlock between incoming sessions and CREATE/DROP DATABASE (Tom Lane) A new session starting in a database that is the target of a DROP DATABASE command, or is the template for a CREATE DATABASE command, could cause the command to wait for five seconds and then fail, even if the new session would have exited before that.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.9/changes/003", "db_id": "324abd755d98fe477c7962eab7502c58", "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496", "relations": [{"rule": 2, "type": "equivalent", "target": "29b698d5466f021dc8611d5d25ef7a31", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}}, {"rule": 2, "type": "equivalent", "target": "7f208fa7a3abd0837b1466c4a8f65e61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}}, {"rule": 2, "type": "equivalent", "target": "9bfc180a71dd7d167b27c33f605fed9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}}, {"rule": 2, "type": "equivalent", "target": "c17918b133f9aac5297f7d0675245278", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}}], "version": "9.3.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c17918b133f9aac5297f7d0675245278", "kind": "equivalent", "version": "9.4.4", "label": "9.4.4", "title": "避免传入会话与CREATE/DROP DATABASE之间的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}, "url": "/docs/compare/?release=9.4.4#9.4.4-bf7732cf950a1492", "source_url": "/docs/release/9.4.4/#id-1.11.6.27.5"}, {"db_id": "29b698d5466f021dc8611d5d25ef7a31", "kind": "equivalent", "version": "9.2.13", "label": "9.2.13", "title": "避免传入会话与CREATE/DROP DATABASE之间的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}, "url": "/docs/compare/?release=9.2.13#9.2.13-bf7732cf950a1492", "source_url": "/docs/release/9.2.13/#id-1.11.6.16.5"}, {"db_id": "7f208fa7a3abd0837b1466c4a8f65e61", "kind": "equivalent", "version": "9.1.18", "label": "9.1.18", "title": "避免传入会话与CREATE/DROP DATABASE之间的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}, "url": "/docs/compare/?release=9.1.18#9.1.18-bf7732cf950a1492", "source_url": "/docs/release/9.1.18/#id-1.11.6.11.5"}, {"db_id": "9bfc180a71dd7d167b27c33f605fed9e", "kind": "equivalent", "version": "9.0.22", "label": "9.0.22", "title": "避免传入会话与CREATE/DROP DATABASE之间的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cfac8d41ed5419bd18a7efcbaf8feb78254029ffd3c6f0dd8c9d0f63a21a496"}, "url": "/docs/compare/?release=9.0.22#9.0.22-bf7732cf950a1492", "source_url": "/docs/release/9.0.22/#id-1.11.6.6.6"}]}, {"id": "9.3.9-1589ac17a237ca7b", "cves": [], "html": "<p>改进规划器对带内层索引扫描的半连接和反连接的代价估计（Tom Lane、Tomas Vondra）</p>\n<p>当所有连接子句都被用作索引扫描条件时，这种计划相当廉价，即使内层扫描名义上会取回很多行，因为执行器在取得一行后就会停止。规划器只部分考虑了这一效应，因此会高估代价，从而可能选择其他效率低得多的计划类型。</p>", "text": "改进规划器对带内层索引扫描的半连接和反连接的代价估计（Tom Lane、Tomas Vondra） 当所有连接子句都被用作索引扫描条件时，这种计划相当廉价，即使内层扫描名义上会取回很多行，因为执行器在取得一行后就会停止。规划器只部分考虑了这一效应，因此会高估代价，从而可能选择其他效率低得多的计划类型。", "title": "改进规划器对带内层索引扫描的半连接和反连接的代价估计", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.9/#id-1.11.6.21.5", "source_hash": "f322cfa8327a0f509d300f9ab59a5f532671a568c4f8da13c4db1899c8996e73", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve planner's cost estimates for semi-joins and anti-joins with inner indexscans (Tom Lane, Tomas Vondra) This type of plan is quite cheap when all the join clauses are used as index scan conditions, even if the inner scan would nominally fetch many rows, because the executor will stop after obtaining one row. The planner only partially accounted for that effect, and would therefore overestimate the cost, leading it to possibly choose some other much less efficient plan type.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.9/changes/004", "db_id": "7144805ffe7016753eda2f00a46bdd61", "patch_ids": [], "statement_hash": "b7b5fc9512cfeae1b89fb392931193ad2c07a0a22d2eca615fcafaef29101555", "relations": [{"rule": 2, "type": "equivalent", "target": "7916bee9ba56604ad86289b59ee36aa3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7b5fc9512cfeae1b89fb392931193ad2c07a0a22d2eca615fcafaef29101555"}}], "version": "9.3.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7916bee9ba56604ad86289b59ee36aa3", "kind": "equivalent", "version": "9.4.4", "label": "9.4.4", "title": "改进规划器对带内层索引扫描的半连接和反连接的代价估计", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7b5fc9512cfeae1b89fb392931193ad2c07a0a22d2eca615fcafaef29101555"}, "url": "/docs/compare/?release=9.4.4#9.4.4-1589ac17a237ca7b", "source_url": "/docs/release/9.4.4/#id-1.11.6.27.5"}]}]}, {"date": "2015-06-04", "build": "9.3.8", "major": "9.3", "minor": 8, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.8", "eol_date": "2018-11-08", "date_text": "2015-06-04", "supported": false, "manual_url": "/docs/9.3/release-9-3-8.html", "source_url": "/docs/release/9.3.8/", "entry_count": 4, "placeholder": false, "content_hash": "9ab9586a09873f3ac89093ee30b8a9ca5ba6440df7d7284a601e3f59de37e633", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 4, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.3.7 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-7.html\" title=\"E.19. 版本 9.3.7\">第 E.19 节</a>。</p>", "compatibility_count": 0, "label": "9.3.8", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4136, "support_days": -2883, "entries": [{"id": "9.3.8-2f7a640e37ebd9b9", "cves": [], "html": "<p>避免崩溃重启期间对数据目录执行<code>fsync</code>时失败（Abhijit Menon-Sen、Tom Lane）</p>\n<p>在前几个小版本中，我们加入了一个补丁，在崩溃后对数据目录中的所有内容执行<code>fsync</code>。遗憾的是，它对任何错误情况的响应都是失败，从而阻止服务器启动，即使问题相当无害。例如，数据目录中一个不可写的文件在某些平台上会阻止重启；但把 SSL 证书文件设为服务器不可写是很常见的做法。我们修改了这一行为：权限失败被完全忽略，其他类型的失败会被记录但不会阻止继续。</p>\n<p>在<code>initdb --sync-only</code>中也应用同样的规则。这种情况不那么关键，但行为应当类似。</p>", "text": "避免崩溃重启期间对数据目录执行fsync时失败（Abhijit Menon-Sen、Tom Lane） 在前几个小版本中，我们加入了一个补丁，在崩溃后对数据目录中的所有内容执行fsync。遗憾的是，它对任何错误情况的响应都是失败，从而阻止服务器启动，即使问题相当无害。例如，数据目录中一个不可写的文件在某些平台上会阻止重启；但把 SSL 证书文件设为服务器不可写是很常见的做法。我们修改了这一行为：权限失败被完全忽略，其他类型的失败会被记录但不会阻止继续。 在initdb --sync-only中也应用同样的规则。这种情况不那么关键，但行为应当类似。", "title": "避免崩溃重启期间对数据目录执行fsync时失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.8/#id-1.11.6.22.5", "source_hash": "40baded796e410618651f39b47ecd03cc3b713653c2485208be8c781ce7b3452", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid failures while fsync'ing data directory during crash restart (Abhijit Menon-Sen, Tom Lane) In the previous minor releases we added a patch to fsync everything in the data directory after a crash. Unfortunately its response to any error condition was to fail, thereby preventing the server from starting up, even when the problem was quite harmless. An example is that an unwritable file in the data directory would prevent restart on some platforms; but it is common to make SSL certificate files unwritable by the server. Revise this behavior so that permissions failures are ignored altogether, and other types of failures are logged but do not prevent continuing. Also apply the same rules in initdb --sync-only. This case is less critical but it should act similarly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.8/changes/001", "db_id": "62a11d7fe086e63393f6dda7c39fc3bc", "patch_ids": [], "statement_hash": "1a8337d64ec0a7e8a02879cb4b52f5b762174c11767221f9393b82dba22b0932", "relations": [{"rule": 2, "type": "equivalent", "target": "f15990ec6bd551a438c69bc2f906adcb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1a8337d64ec0a7e8a02879cb4b52f5b762174c11767221f9393b82dba22b0932"}}], "version": "9.3.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f15990ec6bd551a438c69bc2f906adcb", "kind": "equivalent", "version": "9.4.3", "label": "9.4.3", "title": "避免崩溃重启期间对数据目录执行fsync时失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1a8337d64ec0a7e8a02879cb4b52f5b762174c11767221f9393b82dba22b0932"}, "url": "/docs/compare/?release=9.4.3#9.4.3-2f7a640e37ebd9b9", "source_url": "/docs/release/9.4.3/#id-1.11.6.28.5"}]}, {"id": "9.3.8-09e3e9d395afa412", "cves": [], "html": "<p>修复<code>pg_get_functiondef()</code>以在设置了<code>LEAKPROOF</code>属性时显示该属性（Jeevan Chalke）</p>", "text": "修复pg_get_functiondef()以在设置了LEAKPROOF属性时显示该属性（Jeevan Chalke）", "title": "修复pg_get_functiondef()以在设置了LEAKPROOF属性时显示该属性", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.8/#id-1.11.6.22.5", "source_hash": "8117e90d3e7b25b803a2c1767f5667b4aaaeb28a77a0ecad2ce727f3e290aab8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_get_functiondef() to show functions' LEAKPROOF property, if set (Jeevan Chalke)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.8/changes/002", "db_id": "db451542379bdb561ad23857143b49b1", "patch_ids": [], "statement_hash": "6779d1236077b9c72d597d4631c017dca37b19d22f3e032a888ed81a3bd53a43", "relations": [{"rule": 2, "type": "equivalent", "target": "31c0f1e019f4b9db01b461fb9b665407", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6779d1236077b9c72d597d4631c017dca37b19d22f3e032a888ed81a3bd53a43"}}, {"rule": 2, "type": "equivalent", "target": "32d3565e5928977c53bd58dcd2b7fe44", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6779d1236077b9c72d597d4631c017dca37b19d22f3e032a888ed81a3bd53a43"}}], "version": "9.3.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "31c0f1e019f4b9db01b461fb9b665407", "kind": "equivalent", "version": "9.4.3", "label": "9.4.3", "title": "修复 pg_get_functiondef()，使其在设置了函数的 LEAKPROOF 属性时加以显示", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6779d1236077b9c72d597d4631c017dca37b19d22f3e032a888ed81a3bd53a43"}, "url": "/docs/compare/?release=9.4.3#9.4.3-52a190ea0381bb5c", "source_url": "/docs/release/9.4.3/#id-1.11.6.28.5"}, {"db_id": "32d3565e5928977c53bd58dcd2b7fe44", "kind": "equivalent", "version": "9.2.12", "label": "9.2.12", "title": "修复pg_get_functiondef()以在设置了LEAKPROOF属性时显示该属性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6779d1236077b9c72d597d4631c017dca37b19d22f3e032a888ed81a3bd53a43"}, "url": "/docs/compare/?release=9.2.12#9.2.12-09e3e9d395afa412", "source_url": "/docs/release/9.2.12/#id-1.11.6.17.5"}]}, {"id": "9.3.8-84bd20edf1411571", "cves": [], "html": "<p>移除<span>configure</span>中对在<span>OpenBSD</span>上链接线程版<span>libpython</span>的禁止性检查（Tom Lane）</p>\n<p>这一限制原本要防止的失败在当前的<span>OpenBSD</span>版本上似乎已不再是问题。</p>", "text": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查（Tom Lane） 这一限制原本要防止的失败在当前的OpenBSD版本上似乎已不再是问题。", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.8/#id-1.11.6.22.5", "source_hash": "4829477f3642c35fd183079bd3b0d9180b6b0d01ef3c6c7bda9fdd1569d09d84", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove configure's check prohibiting linking to a threaded libpython on OpenBSD (Tom Lane) The failure this restriction was meant to prevent seems to not be a problem anymore on current OpenBSD versions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.8/changes/003", "db_id": "10f39cf4b186eb685734a9facee64db2", "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f", "relations": [{"rule": 2, "type": "equivalent", "target": "1e93d1263f6654a9f810f95db30e9629", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}, {"rule": 2, "type": "equivalent", "target": "8ce60f049896e6069362812ad897b3f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}, {"rule": 2, "type": "equivalent", "target": "90ce555f635b5854723e082d7618f9e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}, {"rule": 2, "type": "equivalent", "target": "eccce48eb13e0f65df91e2c5e930e4a7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}], "version": "9.3.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e93d1263f6654a9f810f95db30e9629", "kind": "equivalent", "version": "9.4.3", "label": "9.4.3", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.4.3#9.4.3-84bd20edf1411571", "source_url": "/docs/release/9.4.3/#id-1.11.6.28.5"}, {"db_id": "eccce48eb13e0f65df91e2c5e930e4a7", "kind": "equivalent", "version": "9.2.12", "label": "9.2.12", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.2.12#9.2.12-84bd20edf1411571", "source_url": "/docs/release/9.2.12/#id-1.11.6.17.5"}, {"db_id": "8ce60f049896e6069362812ad897b3f3", "kind": "equivalent", "version": "9.1.17", "label": "9.1.17", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.1.17#9.1.17-84bd20edf1411571", "source_url": "/docs/release/9.1.17/#id-1.11.6.12.5"}, {"db_id": "90ce555f635b5854723e082d7618f9e5", "kind": "equivalent", "version": "9.0.21", "label": "9.0.21", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.0.21#9.0.21-84bd20edf1411571", "source_url": "/docs/release/9.0.21/#id-1.11.6.7.6"}]}, {"id": "9.3.8-255c84fcb54cc418", "cves": [], "html": "<p>允许 <span>libpq</span> 使用高于 v1 的 TLS 协议版本（Noah Misch）</p>\n<p>长期以来，<span>libpq</span> 的代码只允许使用 TLS v1 这一种 SSL 协议。随着较新的 TLS 版本日益普及，现在允许它与服务器协商双方共同支持的最高 TLS 版本。（<span>PostgreSQL</span> 服务器早已支持这种协商，因此服务器端无需更改。）这是对 9.4.0 中已发布变更的回移植。</p>", "text": "允许 libpq 使用高于 v1 的 TLS 协议版本（Noah Misch） 长期以来，libpq 的代码只允许使用 TLS v1 这一种 SSL 协议。随着较新的 TLS 版本日益普及，现在允许它与服务器协商双方共同支持的最高 TLS 版本。（PostgreSQL 服务器早已支持这种协商，因此服务器端无需更改。）这是对 9.4.0 中已发布变更的回移植。", "title": "允许 libpq 使用高于 v1 的 TLS 协议版本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.8/#id-1.11.6.22.5", "source_hash": "6f7cca693ca86c2fb1dcc179656b0a1b75ef5a77bef86cb24a0afff1a9825270", "section_path": ["变更"], "commit_groups": [["2c2c5f0e0", "4dddf8552", "b78fbfe65", "c6b7b9a9c"]], "identity_text": "Allow libpq to use TLS protocol versions beyond v1 (Noah Misch) For a long time, libpq was coded so that the only SSL protocol it would allow was TLS v1. Now that newer TLS versions are becoming popular, allow it to negotiate the highest commonly-supported TLS version with the server. (PostgreSQL servers were already capable of such negotiation, so no change is needed on the server side.) This is a back-patch of a change already released in 9.4.0.", "commit_aliases": ["2c2c5f0e0", "4dddf8552", "b78fbfe65", "c6b7b9a9c"], "source_commits": ["c6b7b9a9c"], "source_entry_id": "9.3.8/changes/004", "db_id": "1daf8e2295ac336ff6c33b27c7a9be9f", "patch_ids": ["2de5927e8b4dbe90c1eb5e0d5770ed29"], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d", "relations": [{"rule": 2, "type": "equivalent", "target": "28741ee10e8b433a8aeb115ce6d15396", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}}, {"rule": 2, "type": "equivalent", "target": "9c6e7ee4cfa8d800c33954d1209311e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}}, {"rule": 2, "type": "equivalent", "target": "b06ddb7790a178ed05796c42bfebc6de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}}], "version": "9.3.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9c6e7ee4cfa8d800c33954d1209311e4", "kind": "equivalent", "version": "9.2.12", "label": "9.2.12", "title": "允许 libpq 使用高于 v1 的 TLS 协议版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}, "url": "/docs/compare/?release=9.2.12#9.2.12-255c84fcb54cc418", "source_url": "/docs/release/9.2.12/#id-1.11.6.17.5"}, {"db_id": "b06ddb7790a178ed05796c42bfebc6de", "kind": "equivalent", "version": "9.1.17", "label": "9.1.17", "title": "允许 libpq 使用高于 v1 的 TLS 协议版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}, "url": "/docs/compare/?release=9.1.17#9.1.17-255c84fcb54cc418", "source_url": "/docs/release/9.1.17/#id-1.11.6.12.5"}, {"db_id": "28741ee10e8b433a8aeb115ce6d15396", "kind": "equivalent", "version": "9.0.21", "label": "9.0.21", "title": "允许 libpq 使用高于 v1 的 TLS 协议版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5166e3ffeedb78ec7475a28d0c97a87af4f3fd59758bcc4f8a9925eded75358d"}, "url": "/docs/compare/?release=9.0.21#9.0.21-255c84fcb54cc418", "source_url": "/docs/release/9.0.21/#id-1.11.6.7.6"}]}]}, {"date": "2015-05-22", "build": "9.3.7", "major": "9.3", "minor": 7, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.7", "eol_date": "2018-11-08", "date_text": "2015-05-22", "supported": false, "manual_url": "/docs/9.3/release-9-3-7.html", "source_url": "/docs/release/9.3.7/", "entry_count": 47, "placeholder": false, "content_hash": "2efa6ce8814e5b73e17217b6875b1bcca98ea80392d8d65e94d6c0aa2106aced", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 47, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>但是，如果你使用<code>contrib/citext</code>的<code>regexp_matches()</code>函数，请参见下面相关的变更日志条目。</p>\n<p>不过，如果你是从早于 9.3.6 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-6.html\" title=\"E.20. 版本 9.3.6\">第 E.20 节</a>。</p>", "compatibility_count": 0, "label": "9.3.7", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4149, "support_days": -2883, "entries": [{"id": "9.3.7-f137684634296f0b", "cves": ["CVE-2015-3165"], "html": "<p>避免客户端恰在认证超时到期前断开时可能出现的崩溃（Benkocs Norbert Attila）</p>\n<p>如果超时中断在会话关闭序列进行到一半时触发，SSL 相关状态会被释放两次，通常导致崩溃并对其他会话造成服务拒绝。实验表明，未经认证的远程攻击者能够相当稳定地触发此缺陷，因此按安全问题处理。（CVE-2015-3165）</p>", "text": "避免客户端恰在认证超时到期前断开时可能出现的崩溃（Benkocs Norbert Attila） 如果超时中断在会话关闭序列进行到一半时触发，SSL 相关状态会被释放两次，通常导致崩溃并对其他会话造成服务拒绝。实验表明，未经认证的远程攻击者能够相当稳定地触发此缺陷，因此按安全问题处理。（CVE-2015-3165）", "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "3ee9edf8bd5825c3c82040ef4c8395dd3945118b72602c7c6b11f818001f7e5e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid possible crash when client disconnects just before the authentication timeout expires (Benkocs Norbert Attila) If the timeout interrupt fired partway through the session shutdown sequence, SSL-related state would be freed twice, typically causing a crash and hence denial of service to other sessions. Experimentation shows that an unauthenticated remote attacker could trigger the bug somewhat consistently, hence treat as security issue. (CVE-2015-3165)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/001", "db_id": "1f011ca3bdf0c55f16f7d70b05ccaa63", "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4", "relations": [{"rule": 2, "type": "equivalent", "target": "166a058331aa92169d3c993ccc78a6f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}}, {"rule": 2, "type": "equivalent", "target": "33653fc5cbb1d58de707f58e51339ffa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}}, {"rule": 2, "type": "equivalent", "target": "7bd6b2445702e22a6706e79ceac6febd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}}, {"rule": 2, "type": "equivalent", "target": "a8137ac3737dfa85692bd256b8de569a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}}], "version": "9.3.7", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "a8137ac3737dfa85692bd256b8de569a", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}, "url": "/docs/compare/?release=9.4.2#9.4.2-f137684634296f0b", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "7bd6b2445702e22a6706e79ceac6febd", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}, "url": "/docs/compare/?release=9.2.11#9.2.11-f137684634296f0b", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "166a058331aa92169d3c993ccc78a6f8", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}, "url": "/docs/compare/?release=9.1.16#9.1.16-f137684634296f0b", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "33653fc5cbb1d58de707f58e51339ffa", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2516c54774fb7acc56302560aed0d0712c87b04832b25e27926b22fcf82991e4"}, "url": "/docs/compare/?release=9.0.20#9.0.20-f137684634296f0b", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-72654f8666dd7a43", "cves": ["CVE-2015-3166"], "html": "<p>改进对系统调用失败的检测（Noah Misch）</p>\n<p>我们替换实现的<code>snprintf()</code>未检查底层系统库调用报告的错误；可能被遗漏的主要情况是内存耗尽。在最坏情况下，由于我们的代码假定缓冲区已被覆写而实际未覆写，这可能导致信息暴露。此外，还有少数地方对安全相关的其他系统库函数调用未检查失败。</p>\n<p>仍有可能某些对<code>*printf()</code>族函数的调用在恰逢内存耗尽错误时存在信息泄露风险。我们判断风险不大，但将继续在此领域进行分析。（CVE-2015-3166）</p>", "text": "改进对系统调用失败的检测（Noah Misch） 我们替换实现的snprintf()未检查底层系统库调用报告的错误；可能被遗漏的主要情况是内存耗尽。在最坏情况下，由于我们的代码假定缓冲区已被覆写而实际未覆写，这可能导致信息暴露。此外，还有少数地方对安全相关的其他系统库函数调用未检查失败。 仍有可能某些对*printf()族函数的调用在恰逢内存耗尽错误时存在信息泄露风险。我们判断风险不大，但将继续在此领域进行分析。（CVE-2015-3166）", "title": "改进对系统调用失败的检测", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "b68213a8b411c8003f749cdb3fb2d958214ad379c2abca42e0866a6ff37f65dc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve detection of system-call failures (Noah Misch) Our replacement implementation of snprintf() failed to check for errors reported by the underlying system library calls; the main case that might be missed is out-of-memory situations. In the worst case this might lead to information exposure, due to our code assuming that a buffer had been overwritten when it hadn't been. Also, there were a few places in which security-relevant calls of other system library functions did not check for failure. It remains possible that some calls of the *printf() family of functions are vulnerable to information disclosure if an out-of-memory error occurs at just the wrong time. We judge the risk to not be large, but will continue analysis in this area. (CVE-2015-3166)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/002", "db_id": "5417e7cbb4c646adff2745f83e060216", "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b", "relations": [{"rule": 2, "type": "equivalent", "target": "0b9f2a2344cc7de8caf2ff5d03e7dbd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}}, {"rule": 2, "type": "equivalent", "target": "1edcc40df2a2fb58eb20cb9ca4bcfb82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}}, {"rule": 2, "type": "equivalent", "target": "311cd6e151a473c82bf7bb526eea7fec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}}, {"rule": 2, "type": "equivalent", "target": "79fe5e14ad1b277e6f385e35c8a79593", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}}], "version": "9.3.7", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "1edcc40df2a2fb58eb20cb9ca4bcfb82", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "改进对系统调用失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}, "url": "/docs/compare/?release=9.4.2#9.4.2-72654f8666dd7a43", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "311cd6e151a473c82bf7bb526eea7fec", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "改进对系统调用失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}, "url": "/docs/compare/?release=9.2.11#9.2.11-72654f8666dd7a43", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "79fe5e14ad1b277e6f385e35c8a79593", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "改进对系统调用失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}, "url": "/docs/compare/?release=9.1.16#9.1.16-72654f8666dd7a43", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "0b9f2a2344cc7de8caf2ff5d03e7dbd3", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "改进对系统调用失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c698deb914a9a5816deed3947f2bcd9a20cfa6b171e610e37d784fbdd873820b"}, "url": "/docs/compare/?release=9.0.20#9.0.20-72654f8666dd7a43", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-8a218bb3e4c24db0", "cves": ["CVE-2015-3167"], "html": "<p>在<code>contrib/pgcrypto</code>中，统一将解密失败报告为<span>“<span>Wrong key or corrupt data</span>”</span>（Noah Misch）</p>\n<p>此前，某些使用错误密钥解密的情况可能报告其他错误消息文本。已经证明，这种错误报告的差异可能帮助攻击者从其他系统恢复密钥。虽然尚不清楚<code>pgcrypto</code>的具体行为是否同样可被利用，但使用统一消息来避免风险似乎更好。（CVE-2015-3167）</p>", "text": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”（Noah Misch） 此前，某些使用错误密钥解密的情况可能报告其他错误消息文本。已经证明，这种错误报告的差异可能帮助攻击者从其他系统恢复密钥。虽然尚不清楚pgcrypto的具体行为是否同样可被利用，但使用统一消息来避免风险似乎更好。（CVE-2015-3167）", "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "aa9c79cb08c5aad8934504277b3315aaa698abb73b69b58523df54006d11d344", "section_path": ["变更"], "commit_groups": [], "identity_text": "In contrib/pgcrypto, uniformly report decryption failures as Wrong key or corrupt data (Noah Misch) Previously, some cases of decryption with an incorrect key could report other error message texts. It has been shown that such variance in error reports can aid attackers in recovering keys from other systems. While it's unknown whether pgcrypto's specific behaviors are likewise exploitable, it seems better to avoid the risk by using a one-size-fits-all message. (CVE-2015-3167)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/003", "db_id": "cabb81c799794e7072965ee000ffc04e", "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90", "relations": [{"rule": 2, "type": "equivalent", "target": "10208ac2f278c8245a7ba81456d582d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}}, {"rule": 2, "type": "equivalent", "target": "523a69900b6f8db69b5e69bb05e6a0f5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}}, {"rule": 2, "type": "equivalent", "target": "ad89594613755a731085c914f5bbb531", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}}, {"rule": 2, "type": "equivalent", "target": "eaec3858fa48da9f0487784eab499edd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}}], "version": "9.3.7", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "523a69900b6f8db69b5e69bb05e6a0f5", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}, "url": "/docs/compare/?release=9.4.2#9.4.2-8a218bb3e4c24db0", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "10208ac2f278c8245a7ba81456d582d2", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}, "url": "/docs/compare/?release=9.2.11#9.2.11-8a218bb3e4c24db0", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "eaec3858fa48da9f0487784eab499edd", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}, "url": "/docs/compare/?release=9.1.16#9.1.16-8a218bb3e4c24db0", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "ad89594613755a731085c914f5bbb531", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "db603ffaca3458776f52933484ab11548522a4e78e3a5fec6a775e8e006a7b90"}, "url": "/docs/compare/?release=9.0.20#9.0.20-8a218bb3e4c24db0", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-4bda405989b64096", "cves": [], "html": "<p>防御多事务成员 ID 的回卷（Álvaro Herrera、Robert Haas、Thomas Munro）</p>\n<p>在某些使用模式下，现有的防御措施可能不够，导致<code>pg_multixact/members</code>文件被过早移除，造成数据丢失。修复包括：修改服务器使会导致覆写旧多事务成员 ID 数据的事务失败，并改进自动清理以确保它能像防御事务 ID 回卷那样主动防御多事务成员 ID 回卷。</p>", "text": "防御多事务成员 ID 的回卷（Álvaro Herrera、Robert Haas、Thomas Munro） 在某些使用模式下，现有的防御措施可能不够，导致pg_multixact/members文件被过早移除，造成数据丢失。修复包括：修改服务器使会导致覆写旧多事务成员 ID 数据的事务失败，并改进自动清理以确保它能像防御事务 ID 回卷那样主动防御多事务成员 ID 回卷。", "title": "防御多事务成员 ID 的回卷", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "32d250c347924b749655028423abb981e6bbe36459d613f9f38d05a6b5db6c7d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Protect against wraparound of multixact member IDs (Álvaro Herrera, Robert Haas, Thomas Munro) Under certain usage patterns, the existing defenses against this might be insufficient, allowing pg_multixact/members files to be removed too early, resulting in data loss. The fix for this includes modifying the server to fail transactions that would result in overwriting old multixact member ID data, and improving autovacuum to ensure it will act proactively to prevent multixact member ID wraparound, as it does for transaction ID wraparound.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/004", "db_id": "7d57dd6f8fe6489c68a8fc09966a76f3", "patch_ids": [], "statement_hash": "b54cf253c2065c0a63f4ecd9fab103c33c6e1ba9412116070b7b82a5cba20360", "relations": [{"rule": 2, "type": "equivalent", "target": "ff0ed2e9f4c51063d04664a36fa07ffe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b54cf253c2065c0a63f4ecd9fab103c33c6e1ba9412116070b7b82a5cba20360"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ff0ed2e9f4c51063d04664a36fa07ffe", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "防御多事务成员 ID 的回卷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b54cf253c2065c0a63f4ecd9fab103c33c6e1ba9412116070b7b82a5cba20360"}, "url": "/docs/compare/?release=9.4.2#9.4.2-4bda405989b64096", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}]}, {"id": "9.3.7-8258862c5d4ab0df", "cves": [], "html": "<p>修复<code>contrib/citext</code>的<code>regexp_matches()</code>函数的错误声明（Tom Lane）</p>\n<p>这些函数应当像它们所包装的核心函数一样返回<code>setof text[]</code>；但它们被错误地声明为只返回<code>text[]</code>。这一错误有两个后果：第一，如果没有匹配，得到的是标量 null 结果，而正确的应该是空集（零行）。第二，<code>g</code>标志实际上被忽略了，因为即使有多个匹配也只会得到一个结果数组。</p>\n<p>虽然后一种行为显然是缺陷，但可能有应用程序依赖前一种行为；因此在<span>PostgreSQL</span> 9.5 之前默认不会更改函数声明。在 9.5 之前的分支中，旧行为存在于<code>citext</code>扩展的版本 1.0 中，而我们在版本 1.1 中提供了修正后的声明（<span><em>不</em></span>默认安装）。要在 9.5 之前的分支中采用修复，请在安装了<code>citext</code>的每个数据库中执行<code>ALTER EXTENSION citext UPDATE TO '1.1'</code>。（如果需要撤销，也可以<span>“<span>更新</span>”</span>回 1.0。）请注意，任一更新方向都需要删除并重新创建所有使用<code>citext</code>的<code>regexp_matches()</code>函数的视图或规则。</p>", "text": "修复contrib/citext的regexp_matches()函数的错误声明（Tom Lane） 这些函数应当像它们所包装的核心函数一样返回setof text[]；但它们被错误地声明为只返回text[]。这一错误有两个后果：第一，如果没有匹配，得到的是标量 null 结果，而正确的应该是空集（零行）。第二，g标志实际上被忽略了，因为即使有多个匹配也只会得到一个结果数组。 虽然后一种行为显然是缺陷，但可能有应用程序依赖前一种行为；因此在PostgreSQL 9.5 之前默认不会更改函数声明。在 9.5 之前的分支中，旧行为存在于citext扩展的版本 1.0 中，而我们在版本 1.1 中提供了修正后的声明（不默认安装）。要在 9.5 之前的分支中采用修复，请在安装了citext的每个数据库中执行ALTER EXTENSION citext UPDATE TO '1.1'。（如果需要撤销，也可以“更新”回 1.0。）请注意，任一更新方向都需要删除并重新创建所有使用citext的regexp_matches()函数的视图或规则。", "title": "修复contrib/citext的regexp_matches()函数的错误声明", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "de7df32fe202f94f8f62eb992658e116fe29b1db9fd4c03aabb406105156ffa1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect declaration of contrib/citext's regexp_matches() functions (Tom Lane) These functions should return setof text[], like the core functions they are wrappers for; but they were incorrectly declared as returning just text[]. This mistake had two results: first, if there was no match you got a scalar null result, whereas what you should get is an empty set (zero rows). Second, the g flag was effectively ignored, since you would get only one result array even if there were multiple matches. While the latter behavior is clearly a bug, there might be applications depending on the former behavior; therefore the function declarations will not be changed by default until PostgreSQL 9.5. In pre-9.5 branches, the old behavior exists in version 1.0 of the citext extension, while we have provided corrected declarations in version 1.1 (which is not installed by default). To adopt the fix in pre-9.5 branches, execute ALTER EXTENSION citext UPDATE TO '1.1' in each database in which citext is installed. (You can also update back to 1.0 if you need to undo that.) Be aware that either update direction will require dropping and recreating any views or rules that use citext's regexp_matches() functions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/005", "db_id": "0dd364915620bdc5a624315bc36c8273", "patch_ids": [], "statement_hash": "116f9549ad994e5ad9ffab4ed649d61c605912cec1d818a5b83b4d055097cf61", "relations": [{"rule": 2, "type": "equivalent", "target": "24b89adf3b27f5daabdffe0a9be1a23e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "116f9549ad994e5ad9ffab4ed649d61c605912cec1d818a5b83b4d055097cf61"}}, {"rule": 2, "type": "equivalent", "target": "94f52f1c4c1ad587b8738bf0394bc81b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "116f9549ad994e5ad9ffab4ed649d61c605912cec1d818a5b83b4d055097cf61"}}, {"rule": 2, "type": "equivalent", "target": "c50b7a9a12142eb6cb274f3cbb9b2ef9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "116f9549ad994e5ad9ffab4ed649d61c605912cec1d818a5b83b4d055097cf61"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "24b89adf3b27f5daabdffe0a9be1a23e", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复contrib/citext的regexp_matches()函数的错误声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "116f9549ad994e5ad9ffab4ed649d61c605912cec1d818a5b83b4d055097cf61"}, "url": "/docs/compare/?release=9.4.2#9.4.2-8258862c5d4ab0df", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "c50b7a9a12142eb6cb274f3cbb9b2ef9", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复contrib/citext的regexp_matches()函数的错误声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "116f9549ad994e5ad9ffab4ed649d61c605912cec1d818a5b83b4d055097cf61"}, "url": "/docs/compare/?release=9.2.11#9.2.11-8258862c5d4ab0df", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "94f52f1c4c1ad587b8738bf0394bc81b", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复contrib/citext的regexp_matches()函数的错误声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "116f9549ad994e5ad9ffab4ed649d61c605912cec1d818a5b83b4d055097cf61"}, "url": "/docs/compare/?release=9.1.16#9.1.16-8258862c5d4ab0df", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.3.7-c45d554899b0e684", "cves": [], "html": "<p>修复 HOT 更新后延迟排他约束检查不正确的问题（Tom Lane）</p>\n<p>如果同一事务中稍后对一条可能违反延迟排他约束的新行进行了 HOT 更新（即没有索引列发生变化，且该行可以存回同一表页），那么最终执行检查时将报告排他约束被违反，即使新行最初与之冲突的行已被删除。</p>", "text": "修复 HOT 更新后延迟排他约束检查不正确的问题（Tom Lane） 如果同一事务中稍后对一条可能违反延迟排他约束的新行进行了 HOT 更新（即没有索引列发生变化，且该行可以存回同一表页），那么最终执行检查时将报告排他约束被违反，即使新行最初与之冲突的行已被删除。", "title": "修复 HOT 更新后延迟排他约束检查不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "9e747a3ba560462fced3073dd8aa468163f74a06511849d14af79bd19880205a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect checking of deferred exclusion constraints after a HOT update (Tom Lane) If a new row that potentially violates a deferred exclusion constraint is HOT-updated (that is, no indexed columns change and the row can be stored back onto the same table page) later in the same transaction, the exclusion constraint would be reported as violated when the check finally occurred, even if the row(s) the new row originally conflicted with had been deleted.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/006", "db_id": "07775680f670a05e3e8144cb67cfde44", "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4", "relations": [{"rule": 2, "type": "equivalent", "target": "40891a5506cd745b5ea879b7a6862f8d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}}, {"rule": 2, "type": "equivalent", "target": "7f743fbd069c78714688327ab8601b4c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}}, {"rule": 2, "type": "equivalent", "target": "ca6244438e133080e91b825acd23b928", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}}, {"rule": 2, "type": "equivalent", "target": "dad10dac68bc002e2bbb6ff2f3f64f29", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7f743fbd069c78714688327ab8601b4c", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 HOT 更新后延迟排他约束检查不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}, "url": "/docs/compare/?release=9.4.2#9.4.2-c45d554899b0e684", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "40891a5506cd745b5ea879b7a6862f8d", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复 HOT 更新后延迟排他约束检查不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}, "url": "/docs/compare/?release=9.2.11#9.2.11-c45d554899b0e684", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "dad10dac68bc002e2bbb6ff2f3f64f29", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复 HOT 更新后延迟排他约束检查不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}, "url": "/docs/compare/?release=9.1.16#9.1.16-c45d554899b0e684", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "ca6244438e133080e91b825acd23b928", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复 HOT 更新后延迟排他约束检查不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3407bb49af9d35e49653ac770696c98e3a175327e14282c85241ac4b9f6f7ba4"}, "url": "/docs/compare/?release=9.0.20#9.0.20-c45d554899b0e684", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-d1d5c7d69ae27656", "cves": [], "html": "<p>修复星型模式风格查询的规划（Tom Lane）</p>\n<p>有时，对大表的高效扫描要求索引参数来自不止一个其他表（通常是维度表，其键用于对大型事实表建立索引）。规划器应当能找到此类计划，但一个过于严苛的搜索启发式阻止了这一点。</p>", "text": "修复星型模式风格查询的规划（Tom Lane） 有时，对大表的高效扫描要求索引参数来自不止一个其他表（通常是维度表，其键用于对大型事实表建立索引）。规划器应当能找到此类计划，但一个过于严苛的搜索启发式阻止了这一点。", "title": "修复星型模式风格查询的规划", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "92e035c07aa8622876738be7864d98afea1d15c5695b7c5a48e6ece1aeec7c7d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planning of star-schema-style queries (Tom Lane) Sometimes, efficient scanning of a large table requires that index parameters be provided from more than one other table (commonly, dimension tables whose keys are needed to index a large fact table). The planner should be able to find such plans, but an overly restrictive search heuristic prevented it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/007", "db_id": "200db31fde44fb400a9b7986a488717f", "patch_ids": [], "statement_hash": "6fbd0a2416f33eaf90cb8ffd0ddb0ff8add9482651492898f9b6b7940364394c", "relations": [{"rule": 2, "type": "equivalent", "target": "0854c95fa38aaa7653f1e2d6a33f82ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fbd0a2416f33eaf90cb8ffd0ddb0ff8add9482651492898f9b6b7940364394c"}}, {"rule": 2, "type": "equivalent", "target": "949502ec4e7c5fb9308097b3e6839b97", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fbd0a2416f33eaf90cb8ffd0ddb0ff8add9482651492898f9b6b7940364394c"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "949502ec4e7c5fb9308097b3e6839b97", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复星型模式风格查询的规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fbd0a2416f33eaf90cb8ffd0ddb0ff8add9482651492898f9b6b7940364394c"}, "url": "/docs/compare/?release=9.4.2#9.4.2-d1d5c7d69ae27656", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "0854c95fa38aaa7653f1e2d6a33f82ea", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复星型模式风格查询的规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6fbd0a2416f33eaf90cb8ffd0ddb0ff8add9482651492898f9b6b7940364394c"}, "url": "/docs/compare/?release=9.2.11#9.2.11-d1d5c7d69ae27656", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}]}, {"id": "9.3.7-cd5ec8431ddab473", "cves": [], "html": "<p>防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序（Tom Lane）</p>\n<p>已知规划器中的这一疏忽会导致 <span>“<span>could not find RelOptInfo for given relids</span>”</span> 错误，但有时错误的查询计划似乎有可能通过该一致性检查并导致静默错误的查询输出。</p>", "text": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序（Tom Lane） 已知规划器中的这一疏忽会导致 “could not find RelOptInfo for given relids” 错误，但有时错误的查询计划似乎有可能通过该一致性检查并导致静默错误的查询输出。", "title": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "457fadfd6cf1f64b7d68096fe314cc184cfb17e87123ae134d606c431b61b892", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent improper reordering of antijoins (NOT EXISTS joins) versus other outer joins (Tom Lane) This oversight in the planner has been observed to cause could not find RelOptInfo for given relids errors, but it seems possible that sometimes an incorrect query plan might get past that consistency check and result in silently-wrong query output.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/008", "db_id": "7a4896aacad821c9c1cfe8e1878f86b8", "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942", "relations": [{"rule": 2, "type": "equivalent", "target": "126bc41728ec97609af268614ce53fda", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}}, {"rule": 2, "type": "equivalent", "target": "431618e516df11110ea732ef08878644", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}}, {"rule": 2, "type": "equivalent", "target": "90c25daa896d2207070e9b58676babac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}}, {"rule": 2, "type": "equivalent", "target": "e3a46fc16623b3791c67ec4b2b13e03c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "90c25daa896d2207070e9b58676babac", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}, "url": "/docs/compare/?release=9.4.2#9.4.2-cd5ec8431ddab473", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "431618e516df11110ea732ef08878644", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}, "url": "/docs/compare/?release=9.2.11#9.2.11-cd5ec8431ddab473", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "e3a46fc16623b3791c67ec4b2b13e03c", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}, "url": "/docs/compare/?release=9.1.16#9.1.16-cd5ec8431ddab473", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "126bc41728ec97609af268614ce53fda", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "防止反连接（NOT EXISTS 连接）与其他外连接之间的不当重排序", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b459ac33cca05105b91959aabf7f8bc947fd341934b81137459564f5fdb1942"}, "url": "/docs/compare/?release=9.0.20#9.0.20-cd5ec8431ddab473", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-584e773a80c48685", "cves": [], "html": "<p>修复外连接计划节点中子表达式匹配不正确的问题（Tom Lane）</p>\n<p>此前，如果文本相同的非严格子表达式在外连接的上、下方都被使用，规划器可能试图重用在连接下方计算的值，但这是不正确的，因为对于未匹配的外部行，执行器会将该值强制置为 NULL。</p>", "text": "修复外连接计划节点中子表达式匹配不正确的问题（Tom Lane） 此前，如果文本相同的非严格子表达式在外连接的上、下方都被使用，规划器可能试图重用在连接下方计算的值，但这是不正确的，因为对于未匹配的外部行，执行器会将该值强制置为 NULL。", "title": "修复外连接计划节点中子表达式匹配不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "3eec2aeb6cf09e9396fdda1806cd0f00d020bee3d2efeee528f821de8ae598fe", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect matching of subexpressions in outer-join plan nodes (Tom Lane) Previously, if textually identical non-strict subexpressions were used both above and below an outer join, the planner might try to re-use the value computed below the join, which would be incorrect because the executor would force the value to NULL in case of an unmatched outer row.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/009", "db_id": "b24d8d88773ff9f52c14c8afaf20339a", "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8", "relations": [{"rule": 2, "type": "equivalent", "target": "1a03887d5d91fb7fb6c191215abfb4d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}}, {"rule": 2, "type": "equivalent", "target": "27c954bdb756e0b7f856235b8bd2fe62", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}}, {"rule": 2, "type": "equivalent", "target": "6045f9df05d02dab3ea14f2512b826d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}}, {"rule": 2, "type": "equivalent", "target": "ac300d5c74bdfa2a3e6ab6d216adec3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6045f9df05d02dab3ea14f2512b826d2", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复外连接计划节点中子表达式匹配不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}, "url": "/docs/compare/?release=9.4.2#9.4.2-584e773a80c48685", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "1a03887d5d91fb7fb6c191215abfb4d5", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复外连接计划节点中子表达式匹配不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}, "url": "/docs/compare/?release=9.2.11#9.2.11-584e773a80c48685", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "27c954bdb756e0b7f856235b8bd2fe62", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复外连接计划节点中子表达式匹配不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}, "url": "/docs/compare/?release=9.1.16#9.1.16-584e773a80c48685", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "ac300d5c74bdfa2a3e6ab6d216adec3a", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复外连接计划节点中子表达式匹配不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc895d09cc2bd57ff41743b7f7f287d650bc259713ee6e4223ee5527856f3e8"}, "url": "/docs/compare/?release=9.0.20#9.0.20-584e773a80c48685", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-e40383cc7c2c6ccc", "cves": [], "html": "<p>修复 GEQO 规划器以应对其连接顺序启发式的失败（Tom Lane）</p>\n<p>已知这一疏忽会在涉及 <code>LATERAL</code> 的查询中导致 <span>“<span>failed to join all relations together</span>”</span> 错误，其他情况下也可能发生。</p>", "text": "修复 GEQO 规划器以应对其连接顺序启发式的失败（Tom Lane） 已知这一疏忽会在涉及 LATERAL 的查询中导致 “failed to join all relations together” 错误，其他情况下也可能发生。", "title": "修复 GEQO 规划器以应对其连接顺序启发式的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "ca7621ce4654fa43efcffa86839acfbea2a9af0c7feb023512b19c55a5a4beb6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix GEQO planner to cope with failure of its join order heuristic (Tom Lane) This oversight has been seen to lead to failed to join all relations together errors in queries involving LATERAL, and that might happen in other cases as well.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/010", "db_id": "06082e91ccd167eea7a0d88c4b1d116c", "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06", "relations": [{"rule": 2, "type": "equivalent", "target": "131c22437e0c97ce393074e1cbfb0041", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}}, {"rule": 2, "type": "equivalent", "target": "238081d53ab9a86ed1b10e7f26330763", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}}, {"rule": 2, "type": "equivalent", "target": "bdca3b4a3d6e2a066838b5a4d71efe20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}}, {"rule": 2, "type": "equivalent", "target": "cc7d56d2278108e6e8e168d5c132e71b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "238081d53ab9a86ed1b10e7f26330763", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 GEQO 规划器以应对其连接顺序启发式的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}, "url": "/docs/compare/?release=9.4.2#9.4.2-e40383cc7c2c6ccc", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "cc7d56d2278108e6e8e168d5c132e71b", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复 GEQO 规划器以应对其连接顺序启发式的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}, "url": "/docs/compare/?release=9.2.11#9.2.11-e40383cc7c2c6ccc", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "bdca3b4a3d6e2a066838b5a4d71efe20", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复 GEQO 规划器以应对其连接顺序启发式的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}, "url": "/docs/compare/?release=9.1.16#9.1.16-e40383cc7c2c6ccc", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "131c22437e0c97ce393074e1cbfb0041", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复 GEQO 规划器以应对其连接顺序启发式的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3f0fe53c792a7539eec419e2a0fd6979fd6a48e659e6639e7da15335fbe0a06"}, "url": "/docs/compare/?release=9.0.20#9.0.20-e40383cc7c2c6ccc", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-7e8bab9b2af34ac1", "cves": [], "html": "<p>修复<code>max_prepared_transactions</code>过小时启动阶段可能出现的死锁（Heikki Linnakangas）</p>", "text": "修复max_prepared_transactions过小时启动阶段可能出现的死锁（Heikki Linnakangas）", "title": "修复max_prepared_transactions过小时启动阶段可能出现的死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "139b772e8ccca7af28fa17eb3f78747a42cee094286ad24f486a91ad6e5b693e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible deadlock at startup when max_prepared_transactions is too small (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/011", "db_id": "93bfd1244962db0595b122605fcd540b", "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6", "relations": [{"rule": 2, "type": "equivalent", "target": "4bf63d58692331238cd24cb0be030d87", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}}, {"rule": 2, "type": "equivalent", "target": "b352c9c7512d69238ea8cee1dd405742", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}}, {"rule": 2, "type": "equivalent", "target": "b3955990a44b26057a027b675f7d1911", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}}, {"rule": 2, "type": "equivalent", "target": "f717ca265213b395324ec960a97cbd7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4bf63d58692331238cd24cb0be030d87", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 max_prepared_transactions 过小时启动阶段可能的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}, "url": "/docs/compare/?release=9.4.2#9.4.2-00e0f849435697aa", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "f717ca265213b395324ec960a97cbd7b", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复max_prepared_transactions过小时启动阶段可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}, "url": "/docs/compare/?release=9.2.11#9.2.11-7e8bab9b2af34ac1", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "b352c9c7512d69238ea8cee1dd405742", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复max_prepared_transactions过小时启动阶段可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}, "url": "/docs/compare/?release=9.1.16#9.1.16-7e8bab9b2af34ac1", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "b3955990a44b26057a027b675f7d1911", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复max_prepared_transactions过小时启动阶段可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "508c7b77d875de684a3332648b6b69713bd64f58c9ebebc44d7603bfb6ff95d6"}, "url": "/docs/compare/?release=9.0.20#9.0.20-7e8bab9b2af34ac1", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-3e07853b7651185e", "cves": [], "html": "<p>时间线切换后不再归档无用的预分配 WAL 文件（Heikki Linnakangas）</p>", "text": "时间线切换后不再归档无用的预分配 WAL 文件（Heikki Linnakangas）", "title": "时间线切换后不再归档无用的预分配 WAL 文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "46c1223fd68bbeb166cb2a1a8a9d103165ddfb81000aa2b5946352238043e184", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't archive useless preallocated WAL files after a timeline switch (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/012", "db_id": "7daa4b478dbdeeb387957ac183e4a98f", "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f", "relations": [{"rule": 2, "type": "equivalent", "target": "1398ce5b2512930c2108ae12ee998917", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}}, {"rule": 2, "type": "equivalent", "target": "5a3253a10ef49a3749debaf9c0957ba2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}}, {"rule": 2, "type": "equivalent", "target": "c5dda7c8fc9aa6f43893a488642ffe66", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}}, {"rule": 2, "type": "equivalent", "target": "ccce4b2d2be7c7761b8a825990e2555b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ccce4b2d2be7c7761b8a825990e2555b", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "时间线切换后不再归档无用的预分配 WAL 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}, "url": "/docs/compare/?release=9.4.2#9.4.2-3e07853b7651185e", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "5a3253a10ef49a3749debaf9c0957ba2", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "时间线切换后不再归档无用的预分配 WAL 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}, "url": "/docs/compare/?release=9.2.11#9.2.11-3e07853b7651185e", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "1398ce5b2512930c2108ae12ee998917", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "时间线切换后不再归档无用的预分配 WAL 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}, "url": "/docs/compare/?release=9.1.16#9.1.16-3e07853b7651185e", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "c5dda7c8fc9aa6f43893a488642ffe66", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "时间线切换后不再归档无用的预分配 WAL 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa09957b207f8d4b4d111cbcbd72a51bd7ea633c5cd38e4baeb77deb45102e4f"}, "url": "/docs/compare/?release=9.0.20#9.0.20-3e07853b7651185e", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-f7e737e703b9ed81", "cves": [], "html": "<p>崩溃之后递归地对数据目录执行 <code>fsync()</code>（Abhijit Menon-Sen、Robert Haas）</p>\n<p>这确保了若随后不久再发生崩溃时数据仍保持一致。（要有问题的话，第二次崩溃必须是系统级崩溃，而不只是数据库崩溃。）</p>", "text": "崩溃之后递归地对数据目录执行 fsync()（Abhijit Menon-Sen、Robert Haas） 这确保了若随后不久再发生崩溃时数据仍保持一致。（要有问题的话，第二次崩溃必须是系统级崩溃，而不只是数据库崩溃。）", "title": "崩溃之后递归地对数据目录执行 fsync()", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "fefbc5b4020a2fa84446204cbbdbf3382b2cc9eb2656cb78fcd8c8ee1bc6abb2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Recursively fsync() the data directory after a crash (Abhijit Menon-Sen, Robert Haas) This ensures consistency if another crash occurs shortly later. (The second crash would have to be a system-level crash, not just a database crash, for there to be a problem.)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/013", "db_id": "a53900503e7d12df84a3af58fb496e0d", "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe", "relations": [{"rule": 2, "type": "equivalent", "target": "0b945ffb0da3b0a65c72522b467e4253", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}}, {"rule": 2, "type": "equivalent", "target": "a393e5ceb46cf5a5ae61e4d70c9df6b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}}, {"rule": 2, "type": "equivalent", "target": "bac8f274079f5c6b205e47dda5aec2b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}}, {"rule": 2, "type": "equivalent", "target": "d840df60b5b46bc061f2307c00cbdc74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0b945ffb0da3b0a65c72522b467e4253", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "崩溃之后递归地对数据目录执行 fsync()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}, "url": "/docs/compare/?release=9.4.2#9.4.2-f7e737e703b9ed81", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "a393e5ceb46cf5a5ae61e4d70c9df6b4", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "崩溃之后递归地对数据目录执行 fsync()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}, "url": "/docs/compare/?release=9.2.11#9.2.11-f7e737e703b9ed81", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "d840df60b5b46bc061f2307c00cbdc74", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "崩溃之后递归地对数据目录执行 fsync()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}, "url": "/docs/compare/?release=9.1.16#9.1.16-f7e737e703b9ed81", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "bac8f274079f5c6b205e47dda5aec2b4", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "崩溃之后递归地对数据目录执行 fsync()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe53ea00eaba5beb1d000ce50943a0522ad62e9df1b29ad57ddb0ed4c45efabe"}, "url": "/docs/compare/?release=9.0.20#9.0.20-f7e737e703b9ed81", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-04230eb45851aa99", "cves": [], "html": "<p>修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题（Álvaro Herrera）</p>", "text": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题（Álvaro Herrera）", "title": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "40e079db99c36279043e4f870e5661f0373518e774977e30d625c973a84387df", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix autovacuum launcher's possible failure to shut down, if an error occurs after it receives SIGTERM (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/014", "db_id": "fec34da65d0270a1dbb0ac428c81209e", "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d", "relations": [{"rule": 2, "type": "equivalent", "target": "2907434b67c5e663b2cec9768758c7cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}}, {"rule": 2, "type": "equivalent", "target": "2bebaa5b592740bad166a98b77c44a39", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}}, {"rule": 2, "type": "equivalent", "target": "3633176e64e976754643f60fe3720561", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}}, {"rule": 2, "type": "equivalent", "target": "7164c644b697a169c37cc7ac895f0c63", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2bebaa5b592740bad166a98b77c44a39", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}, "url": "/docs/compare/?release=9.4.2#9.4.2-04230eb45851aa99", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "3633176e64e976754643f60fe3720561", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}, "url": "/docs/compare/?release=9.2.11#9.2.11-04230eb45851aa99", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "2907434b67c5e663b2cec9768758c7cd", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}, "url": "/docs/compare/?release=9.1.16#9.1.16-04230eb45851aa99", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "7164c644b697a169c37cc7ac895f0c63", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "337d9fed9d6d39509deb19901b075af3e14f8a93bcb5b00c82c8e8a82bf8008d"}, "url": "/docs/compare/?release=9.0.20#9.0.20-04230eb45851aa99", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-6a88d9655a7c43f8", "cves": [], "html": "<p>处理 <code>LockBufferForCleanup()</code> 中的意外信号（Andres Freund）</p>\n<p>这一疏忽可能导致有关 <span>“<span>multiple backends attempting to wait for pincount 1</span>”</span> 的虚假错误。</p>", "text": "处理 LockBufferForCleanup() 中的意外信号（Andres Freund） 这一疏忽可能导致有关 “multiple backends attempting to wait for pincount 1” 的虚假错误。", "title": "处理 LockBufferForCleanup() 中的意外信号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "6788531a7a1baa66cf48dc5cdfab3f6c1607b20fdaae9b7201c0329c90661aca", "section_path": ["变更"], "commit_groups": [], "identity_text": "Cope with unexpected signals in LockBufferForCleanup() (Andres Freund) This oversight could result in spurious errors about multiple backends attempting to wait for pincount 1.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/015", "db_id": "ffd314040e912cd01e38f715e25a9398", "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875", "relations": [{"rule": 2, "type": "equivalent", "target": "5a96819f7c7463d771611df11984338d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}}, {"rule": 2, "type": "equivalent", "target": "7298d999afc5a3fbaf35a51719b74a83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}}, {"rule": 2, "type": "equivalent", "target": "ab0756bc9cc77def5e1593a352093d53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}}, {"rule": 2, "type": "equivalent", "target": "c8c12ec0f614d56016653efc7a6686e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c8c12ec0f614d56016653efc7a6686e4", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "处理 LockBufferForCleanup() 中的意外信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}, "url": "/docs/compare/?release=9.4.2#9.4.2-6a88d9655a7c43f8", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "7298d999afc5a3fbaf35a51719b74a83", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "处理 LockBufferForCleanup() 中的意外信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}, "url": "/docs/compare/?release=9.2.11#9.2.11-6a88d9655a7c43f8", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "ab0756bc9cc77def5e1593a352093d53", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "处理 LockBufferForCleanup() 中的意外信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}, "url": "/docs/compare/?release=9.1.16#9.1.16-6a88d9655a7c43f8", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "5a96819f7c7463d771611df11984338d", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "处理 LockBufferForCleanup() 中的意外信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ef3bbf2ca81c00533d8802dcf24c987b766bc87054fc51843db44fa6e4cb875"}, "url": "/docs/compare/?release=9.0.20#9.0.20-6a88d9655a7c43f8", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-849d1b8396f757fa", "cves": [], "html": "<p>修复向带有包含整行引用的检查约束的表执行 <code>COPY IN</code> 时的崩溃（Tom Lane）</p>\n<p>已知的失败情形只在 9.4 及以上版本中崩溃，但 9.3 和 9.2 中也有非常相似的代码，因此这些分支也被向后修补。</p>", "text": "修复向带有包含整行引用的检查约束的表执行 COPY IN 时的崩溃（Tom Lane） 已知的失败情形只在 9.4 及以上版本中崩溃，但 9.3 和 9.2 中也有非常相似的代码，因此这些分支也被向后修补。", "title": "修复向带有包含整行引用的检查约束的表执行 COPY IN 时的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "e9991fae14e8e48f61064a837dad8d2591901c1921bc761ea4de107351dfb2a2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash when doing COPY IN to a table with check constraints that contain whole-row references (Tom Lane) The known failure case only crashes in 9.4 and up, but there is very similar code in 9.3 and 9.2, so back-patch those branches as well.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/016", "db_id": "98bc2c7a61b12346eea0293f40dc3906", "patch_ids": [], "statement_hash": "dfcf402e4040d11735acb03c646226ea0a0485bc3e9f6dcd3796e860df470944", "relations": [{"rule": 2, "type": "equivalent", "target": "689437e99f1f2847a439fa75f55ea571", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfcf402e4040d11735acb03c646226ea0a0485bc3e9f6dcd3796e860df470944"}}, {"rule": 2, "type": "equivalent", "target": "f3e8e5615ed71704ca1112d9ea7deea8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfcf402e4040d11735acb03c646226ea0a0485bc3e9f6dcd3796e860df470944"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f3e8e5615ed71704ca1112d9ea7deea8", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复向带有包含整行引用的检查约束的表执行 COPY IN 时的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfcf402e4040d11735acb03c646226ea0a0485bc3e9f6dcd3796e860df470944"}, "url": "/docs/compare/?release=9.4.2#9.4.2-849d1b8396f757fa", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "689437e99f1f2847a439fa75f55ea571", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复向带有包含整行引用的检查约束的表执行 COPY IN 时的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfcf402e4040d11735acb03c646226ea0a0485bc3e9f6dcd3796e860df470944"}, "url": "/docs/compare/?release=9.2.11#9.2.11-849d1b8396f757fa", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}]}, {"id": "9.3.7-6a99dc05b3b64c84", "cves": [], "html": "<p>就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制（Andres Freund）</p>\n<p>此前，由于 HOT 页清理而写入了 WAL 的事务在提交时可能出现延迟，导致不良影响，例如所有同步副本都停机时会话在启动时卡住。还观察到使用同步复制时会话卡在追赶中断处理中；此修复也将解决该问题。</p>", "text": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制（Andres Freund） 此前，由于 HOT 页清理而写入了 WAL 的事务在提交时可能出现延迟，导致不良影响，例如所有同步副本都停机时会话在启动时卡住。还观察到使用同步复制时会话卡在追赶中断处理中；此修复也将解决该问题。", "title": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "89afd6faa304af33ef0fad396d6bf88131aae341163cdadf3366c3c10f693a59", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid waiting for WAL flush or synchronous replication during commit of a transaction that was read-only so far as the user is concerned (Andres Freund) Previously, a delay could occur at commit in transactions that had written WAL due to HOT page pruning, leading to undesirable effects such as sessions getting stuck at startup if all synchronous replicas are down. Sessions have also been observed to get stuck in catchup interrupt processing when using synchronous replication; this will fix that problem as well.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/017", "db_id": "5fca350a779e22fb595a98f3e656d8f5", "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa", "relations": [{"rule": 2, "type": "equivalent", "target": "1703eb6a3d2dde2da387f41e5b6db0ae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}}, {"rule": 2, "type": "equivalent", "target": "1f55018574827d62eaa0a7d02c06d428", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}}, {"rule": 2, "type": "equivalent", "target": "4ef86d5ef84925aa1a6556589c580f2a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}}, {"rule": 2, "type": "equivalent", "target": "81e902dcbd700041abb5f86d9aad8043", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4ef86d5ef84925aa1a6556589c580f2a", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}, "url": "/docs/compare/?release=9.4.2#9.4.2-6a99dc05b3b64c84", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "1703eb6a3d2dde2da387f41e5b6db0ae", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}, "url": "/docs/compare/?release=9.2.11#9.2.11-6a99dc05b3b64c84", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "81e902dcbd700041abb5f86d9aad8043", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}, "url": "/docs/compare/?release=9.1.16#9.1.16-6a99dc05b3b64c84", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "1f55018574827d62eaa0a7d02c06d428", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "就用户而言是只读的事务，在提交期间不再等待 WAL 刷写或同步复制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fe6fb7b909d60369a5cf82fd5dfa3aa24fa4924835fd1082b531abd3951b0fa"}, "url": "/docs/compare/?release=9.0.20#9.0.20-6a99dc05b3b64c84", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-b154b5454ae82db8", "cves": [], "html": "<p>修复在临时表上操作哈希索引时崩溃的问题（Heikki Linnakangas）</p>", "text": "修复在临时表上操作哈希索引时崩溃的问题（Heikki Linnakangas）", "title": "修复在临时表上操作哈希索引时崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "de25ca846d7b70b4057bda77f404ce7e1af23129e488ecf9218dd43d7ffda947", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash when manipulating hash indexes on temporary tables (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/018", "db_id": "64efb7a2859ce882c54f6fc3fa5d8c7d", "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303", "relations": [{"rule": 2, "type": "equivalent", "target": "238753d97f89f975fe687a5e18363b20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}}, {"rule": 2, "type": "equivalent", "target": "99c6bd8b24a80ae75853ce449fd73f16", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}}, {"rule": 2, "type": "equivalent", "target": "9bb388c48f9019d84a58b271ac87c654", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}}, {"rule": 2, "type": "equivalent", "target": "bd193a101e0b4aa66a0dc0f072cb3480", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "238753d97f89f975fe687a5e18363b20", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复操作临时表上的哈希索引时的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}, "url": "/docs/compare/?release=9.4.2#9.4.2-4c79a54f395e3c54", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "9bb388c48f9019d84a58b271ac87c654", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复在临时表上操作哈希索引时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}, "url": "/docs/compare/?release=9.2.11#9.2.11-b154b5454ae82db8", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "99c6bd8b24a80ae75853ce449fd73f16", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复在临时表上操作哈希索引时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}, "url": "/docs/compare/?release=9.1.16#9.1.16-b154b5454ae82db8", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "bd193a101e0b4aa66a0dc0f072cb3480", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复在临时表上操作哈希索引时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4aceca7f709f56ca1d1642cd6ca107476d6895ea412e528a794ea25af4de9303"}, "url": "/docs/compare/?release=9.0.20#9.0.20-b154b5454ae82db8", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-f9b4eb05d815c6fb", "cves": [], "html": "<p>修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题（Tom Lane）</p>", "text": "修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题（Tom Lane）", "title": "修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "03e33526579ad292f9f818cbf07ae7dd40ff15a313b954ecbd6de17cecf39254", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible failure during hash index bucket split, if other processes are modifying the index concurrently (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/019", "db_id": "b306cb76f618a786cf92fa07fc25d7d1", "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5", "relations": [{"rule": 2, "type": "equivalent", "target": "48f0785f2286d2d155fc4235fb4aae6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}}, {"rule": 2, "type": "equivalent", "target": "7e2c2ebe69963a993399b8ece8cd37b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}}, {"rule": 2, "type": "equivalent", "target": "cf0e9f6ffc4a3cc69a511ab6fed34aac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}}, {"rule": 2, "type": "equivalent", "target": "d0b1e0a06967f5cf81c6e17a7697e28c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cf0e9f6ffc4a3cc69a511ab6fed34aac", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复其他进程并发修改索引时哈希索引桶分裂可能失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}, "url": "/docs/compare/?release=9.4.2#9.4.2-8e621cc6b697e607", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "7e2c2ebe69963a993399b8ece8cd37b3", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}, "url": "/docs/compare/?release=9.2.11#9.2.11-f9b4eb05d815c6fb", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "d0b1e0a06967f5cf81c6e17a7697e28c", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}, "url": "/docs/compare/?release=9.1.16#9.1.16-f9b4eb05d815c6fb", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "48f0785f2286d2d155fc4235fb4aae6b", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复哈希索引桶分裂期间（若其他进程正在并发修改该索引）可能失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e97b06d2d0f336ebdd18f0a202d01998680c40acb62d2ea94570baa29a11dcd5"}, "url": "/docs/compare/?release=9.0.20#9.0.20-f9b4eb05d815c6fb", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-ffa3732ae7f7e25f", "cves": [], "html": "<p>在分析索引表达式期间检查中断（Jeff Janes）</p>\n<p><code>ANALYZE</code> 会多次执行索引表达式；如果此类表达式中存在慢速函数，就希望能在此循环结束之前取消 <code>ANALYZE</code>。</p>", "text": "在分析索引表达式期间检查中断（Jeff Janes） ANALYZE 会多次执行索引表达式；如果此类表达式中存在慢速函数，就希望能在此循环结束之前取消 ANALYZE。", "title": "在分析索引表达式期间检查中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "cd3b8e508ed71dfaaa7ff63ae62514ee05a87a4dcaa9b6d88af9ea1c4a10a4b1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Check for interrupts while analyzing index expressions (Jeff Janes) ANALYZE executes index expressions many times; if there are slow functions in such an expression, it's desirable to be able to cancel the ANALYZE before that loop finishes.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/020", "db_id": "fc23337037477fe7e3ab9fb0eaf5d9dd", "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c", "relations": [{"rule": 2, "type": "equivalent", "target": "517ce452235635e590a685da50366bf0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}}, {"rule": 2, "type": "equivalent", "target": "5975ba512fac6bc4408bb449ba0c2c8f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}}, {"rule": 2, "type": "equivalent", "target": "5b9a34b5b9737fe2325169083a6316b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}}, {"rule": 2, "type": "equivalent", "target": "ca8b63abd73a22488bba9b2f312ddfbb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "517ce452235635e590a685da50366bf0", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在分析索引表达式期间检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}, "url": "/docs/compare/?release=9.4.2#9.4.2-ffa3732ae7f7e25f", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "ca8b63abd73a22488bba9b2f312ddfbb", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在分析索引表达式期间检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}, "url": "/docs/compare/?release=9.2.11#9.2.11-ffa3732ae7f7e25f", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "5b9a34b5b9737fe2325169083a6316b4", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在分析索引表达式期间检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}, "url": "/docs/compare/?release=9.1.16#9.1.16-ffa3732ae7f7e25f", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "5975ba512fac6bc4408bb449ba0c2c8f", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "在分析索引表达式期间检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c8749ce60b4bcae5d1a7ad1990cec02be503466f156682e8a1eaac339a74a4c"}, "url": "/docs/compare/?release=9.0.20#9.0.20-ffa3732ae7f7e25f", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-5a0c3cbf728df7a6", "cves": [], "html": "<p>确保在通过<code>SELECT FOR UPDATE</code>、<code>UPDATE</code>或<code>DELETE</code>锁定行之后发生<code>READ COMMITTED</code>复查时，外部表的<code>tableoid</code>被正确报告（Etsuro Fujita）</p>", "text": "确保在通过SELECT FOR UPDATE、UPDATE或DELETE锁定行之后发生READ COMMITTED复查时，外部表的tableoid被正确报告（Etsuro Fujita）", "title": "确保在通过SELECT FOR UPDATE、UPDATE或DELETE锁定行之后发生READ COMMITTED复查时，外部表的tableoid被正确报告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "a904bab7948fbe4b20e26c9839a68a2fbe287f200e6d9b34e30066b8b58ee6d1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure tableoid of a foreign table is reported correctly when a READ COMMITTED recheck occurs after locking rows in SELECT FOR UPDATE, UPDATE, or DELETE (Etsuro Fujita)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/021", "db_id": "341c83bdd0673f5ec5a26ffa7d2cdbb8", "patch_ids": [], "statement_hash": "4d7246b485b9a5e4a0ac3d25fc12759e2402ef2bce0fcf5bee50b1552f34ec1e", "relations": [{"rule": 2, "type": "equivalent", "target": "286b1373982e6938e7cc4baa42c16fbf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d7246b485b9a5e4a0ac3d25fc12759e2402ef2bce0fcf5bee50b1552f34ec1e"}}, {"rule": 2, "type": "equivalent", "target": "296a562961797b4d2e74e2b8e2538e62", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d7246b485b9a5e4a0ac3d25fc12759e2402ef2bce0fcf5bee50b1552f34ec1e"}}, {"rule": 2, "type": "equivalent", "target": "7b310d0b58f2782e18d854d910615879", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d7246b485b9a5e4a0ac3d25fc12759e2402ef2bce0fcf5bee50b1552f34ec1e"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "296a562961797b4d2e74e2b8e2538e62", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "确保在 SELECT FOR UPDATE、UPDATE 或 DELETE 锁定行之后发生 READ COMMITTED 重新检查时，正确报告外部表的 tableoid", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d7246b485b9a5e4a0ac3d25fc12759e2402ef2bce0fcf5bee50b1552f34ec1e"}, "url": "/docs/compare/?release=9.4.2#9.4.2-097cebfbdeeb6f88", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "286b1373982e6938e7cc4baa42c16fbf", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "确保在通过SELECT FOR UPDATE、UPDATE或DELETE锁定行之后发生READ COMMITTED复查时，外部表的tableoid被正确报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d7246b485b9a5e4a0ac3d25fc12759e2402ef2bce0fcf5bee50b1552f34ec1e"}, "url": "/docs/compare/?release=9.2.11#9.2.11-5a0c3cbf728df7a6", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "7b310d0b58f2782e18d854d910615879", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "确保在通过SELECT FOR UPDATE、UPDATE或DELETE锁定行之后发生READ COMMITTED复查时，外部表的tableoid被正确报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d7246b485b9a5e4a0ac3d25fc12759e2402ef2bce0fcf5bee50b1552f34ec1e"}, "url": "/docs/compare/?release=9.1.16#9.1.16-5a0c3cbf728df7a6", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.3.7-fd85f35343d1b9cf", "cves": [], "html": "<p>在外部服务器用户映射的对象描述字符串中加入目标服务器的名称（Álvaro Herrera）</p>", "text": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称（Álvaro Herrera）", "title": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "036423ceb08d50328e7e960ef03c1c1f7e4df07572678692cfe90c607617dc58", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add the name of the target server to object description strings for foreign-server user mappings (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/022", "db_id": "438d356a6d062a6b50701d4d4ac668eb", "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5", "relations": [{"rule": 2, "type": "equivalent", "target": "2635e9a621efd20c402056c15ce14581", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}}, {"rule": 2, "type": "equivalent", "target": "6a129bcf00c27d76d440dddd170b5222", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}}, {"rule": 2, "type": "equivalent", "target": "8fac4b063aaee1f6402977e3916d67b2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}}, {"rule": 2, "type": "equivalent", "target": "cafcf7239615ae13e287fe4a0ec6c519", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6a129bcf00c27d76d440dddd170b5222", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}, "url": "/docs/compare/?release=9.4.2#9.4.2-fd85f35343d1b9cf", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "8fac4b063aaee1f6402977e3916d67b2", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}, "url": "/docs/compare/?release=9.2.11#9.2.11-fd85f35343d1b9cf", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "2635e9a621efd20c402056c15ce14581", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}, "url": "/docs/compare/?release=9.1.16#9.1.16-fd85f35343d1b9cf", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "cafcf7239615ae13e287fe4a0ec6c519", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "在外部服务器用户映射的对象描述字符串中加入目标服务器的名称", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e82bb0096b5d87075e1e7eb34d8576a7e349fbd2850cec3dee18c43a1b757ca5"}, "url": "/docs/compare/?release=9.0.20#9.0.20-fd85f35343d1b9cf", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-d3390bcde997b7d0", "cves": [], "html": "<p>在编码转换的对象标识字符串中包含模式名（Álvaro Herrera）</p>", "text": "在编码转换的对象标识字符串中包含模式名（Álvaro Herrera）", "title": "在编码转换的对象标识字符串中包含模式名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "df6b78dd39713aed3128b235c0abb7f21436f63ae69bb76fb7dbefc4a3f038a3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Include the schema name in object identity strings for conversions (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/023", "db_id": "b97752036830bce81b14c3687baa9d36", "patch_ids": [], "statement_hash": "d8bb93410838bd7289e41bc9dcdc6b9676f1af70c2a9295bf0db3c6ee6590079", "relations": [{"rule": 2, "type": "equivalent", "target": "c62df7b2a11b6af355a8abc4b943ee38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8bb93410838bd7289e41bc9dcdc6b9676f1af70c2a9295bf0db3c6ee6590079"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c62df7b2a11b6af355a8abc4b943ee38", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在转换的对象标识字符串中包含模式名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8bb93410838bd7289e41bc9dcdc6b9676f1af70c2a9295bf0db3c6ee6590079"}, "url": "/docs/compare/?release=9.4.2#9.4.2-466c42581a868dae", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}]}, {"id": "9.3.7-63c5acc5d3477d92", "cves": [], "html": "<p>建议在使用 Kerberos/GSSAPI/SSPI 认证时将 <code>include_realm</code> 设置为 1（Stephen Frost）</p>\n<p>不这样设置的话，来自不同领域的同名用户无法区分。目前这只是文档变更，但在 <span>PostgreSQL</span> 9.5 中它将成为默认设置。</p>", "text": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1（Stephen Frost） 不这样设置的话，来自不同领域的同名用户无法区分。目前这只是文档变更，但在 PostgreSQL 9.5 中它将成为默认设置。", "title": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "ee079eef50e529aa15c9d23065701fc6cfca7db7339db835bd60cc010f8ad4b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Recommend setting include_realm to 1 when using Kerberos/GSSAPI/SSPI authentication (Stephen Frost) Without this, identically-named users from different realms cannot be distinguished. For the moment this is only a documentation change, but it will become the default setting in PostgreSQL 9.5.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/024", "db_id": "94d71396bb476432bd27a130fb3080d7", "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6", "relations": [{"rule": 2, "type": "equivalent", "target": "68e509e66e0501cb7b3bce6adf195245", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}}, {"rule": 2, "type": "equivalent", "target": "7049fbf9736dd97a51c4882824ddd3c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}}, {"rule": 2, "type": "equivalent", "target": "c5908043270a29e8ccec22cb9cb95842", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}}, {"rule": 2, "type": "equivalent", "target": "c9490086c3d7d2fc8b8214a2b1d219b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7049fbf9736dd97a51c4882824ddd3c0", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}, "url": "/docs/compare/?release=9.4.2#9.4.2-63c5acc5d3477d92", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "c9490086c3d7d2fc8b8214a2b1d219b0", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}, "url": "/docs/compare/?release=9.2.11#9.2.11-63c5acc5d3477d92", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "c5908043270a29e8ccec22cb9cb95842", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}, "url": "/docs/compare/?release=9.1.16#9.1.16-63c5acc5d3477d92", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "68e509e66e0501cb7b3bce6adf195245", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d312a6dbb8f3a1282c4fdb4057d998c0d840c4d88c7d158359c7c2e448cc4c6"}, "url": "/docs/compare/?release=9.0.20#9.0.20-63c5acc5d3477d92", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-cfc199310123cc11", "cves": [], "html": "<p>移除将 IPv4 <code>pg_hba.conf</code> 条目匹配到 IPv4-in-IPv6 地址的代码（Tom Lane）</p>\n<p>这段应急代码于 2003 年添加，起因是当时的某些 Linux 内核会把 IPv4 连接报告为 IPv4-in-IPv6 地址。然而该逻辑在 9.0 中被意外破坏。此后没有任何现场投诉，说明它已不再需要。现在反而有报告称被破坏的代码在某些系统上导致崩溃，因此我们选择直接移除而不是修复它。（如果选择修复，将会使 IPv4 <code>pg_hba.conf</code> 条目的实际含义发生微妙且可能涉及安全性的变化，在次版本中这样做似乎并不妥当。）</p>", "text": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码（Tom Lane） 这段应急代码于 2003 年添加，起因是当时的某些 Linux 内核会把 IPv4 连接报告为 IPv4-in-IPv6 地址。然而该逻辑在 9.0 中被意外破坏。此后没有任何现场投诉，说明它已不再需要。现在反而有报告称被破坏的代码在某些系统上导致崩溃，因此我们选择直接移除而不是修复它。（如果选择修复，将会使 IPv4 pg_hba.conf 条目的实际含义发生微妙且可能涉及安全性的变化，在次版本中这样做似乎并不妥当。）", "title": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "7e1e4c70fc877c72426b178657a16fa30e6c18713cb3a65ecf77fa280b07e1c4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove code for matching IPv4 pg_hba.conf entries to IPv4-in-IPv6 addresses (Tom Lane) This hack was added in 2003 in response to a report that some Linux kernels of the time would report IPv4 connections as having IPv4-in-IPv6 addresses. However, the logic was accidentally broken in 9.0. The lack of any field complaints since then shows that it's not needed anymore. Now we have reports that the broken code causes crashes on some systems, so let's just remove it rather than fix it. (Had we chosen to fix it, that would make for a subtle and potentially security-sensitive change in the effective meaning of IPv4 pg_hba.conf entries, which does not seem like a good thing to do in minor releases.)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/025", "db_id": "be842d6f022a1420f9452dbf76b51575", "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0", "relations": [{"rule": 2, "type": "equivalent", "target": "315b2f049a390603d743856bf7ff3f25", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}}, {"rule": 2, "type": "equivalent", "target": "55e5271a5a31329e5dcc80f8c7f7d8b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}}, {"rule": 2, "type": "equivalent", "target": "93c7cb6fd80c60bd21e2f73dfcdf77c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}}, {"rule": 2, "type": "equivalent", "target": "d990bd0322b6274a64b008242157b9db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "315b2f049a390603d743856bf7ff3f25", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}, "url": "/docs/compare/?release=9.4.2#9.4.2-cfc199310123cc11", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "93c7cb6fd80c60bd21e2f73dfcdf77c9", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}, "url": "/docs/compare/?release=9.2.11#9.2.11-cfc199310123cc11", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "55e5271a5a31329e5dcc80f8c7f7d8b5", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}, "url": "/docs/compare/?release=9.1.16#9.1.16-cfc199310123cc11", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "d990bd0322b6274a64b008242157b9db", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "00ffe51e77acf6b358670bc0289d47f8a06df9cbab5b1472e583f5789cd5cec0"}, "url": "/docs/compare/?release=9.0.20#9.0.20-cfc199310123cc11", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-b894428fa41ef6ee", "cves": [], "html": "<p>在<code>IDENTIFY_SYSTEM</code>复制命令中报告 WAL 刷写位置而非插入位置（Heikki Linnakangas）</p>\n<p>这避免了<span>pg_receivexlog</span>可能出现的启动失败。</p>", "text": "在IDENTIFY_SYSTEM复制命令中报告 WAL 刷写位置而非插入位置（Heikki Linnakangas） 这避免了pg_receivexlog可能出现的启动失败。", "title": "在IDENTIFY_SYSTEM复制命令中报告 WAL 刷写位置而非插入位置", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "fd56d3ed9229ce0703627afcfceed1928dc243418d8de5ee13a617ff4573dad9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Report WAL flush, not insert, position in IDENTIFY_SYSTEM replication command (Heikki Linnakangas) This avoids a possible startup failure in pg_receivexlog.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/026", "db_id": "8355bd83ffd5bc18631eb367ba007202", "patch_ids": [], "statement_hash": "60148ecac8e99ef0a4cf4426fe1422788f1f2b34b95bb45742852a4144611568", "relations": [{"rule": 2, "type": "equivalent", "target": "4bc6330e046d1595562becb52bc05f9b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60148ecac8e99ef0a4cf4426fe1422788f1f2b34b95bb45742852a4144611568"}}, {"rule": 2, "type": "equivalent", "target": "a2f70046f3493ec205231d413803bba7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60148ecac8e99ef0a4cf4426fe1422788f1f2b34b95bb45742852a4144611568"}}, {"rule": 2, "type": "equivalent", "target": "ae8fb802626b2e18351a1730c6dc05ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60148ecac8e99ef0a4cf4426fe1422788f1f2b34b95bb45742852a4144611568"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2f70046f3493ec205231d413803bba7", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在IDENTIFY_SYSTEM复制命令中报告 WAL 刷写位置而非插入位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60148ecac8e99ef0a4cf4426fe1422788f1f2b34b95bb45742852a4144611568"}, "url": "/docs/compare/?release=9.4.2#9.4.2-b894428fa41ef6ee", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "ae8fb802626b2e18351a1730c6dc05ca", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在IDENTIFY_SYSTEM复制命令中报告 WAL 刷写位置而非插入位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60148ecac8e99ef0a4cf4426fe1422788f1f2b34b95bb45742852a4144611568"}, "url": "/docs/compare/?release=9.2.11#9.2.11-b894428fa41ef6ee", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "4bc6330e046d1595562becb52bc05f9b", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在IDENTIFY_SYSTEM复制命令中报告 WAL 刷写位置而非插入位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60148ecac8e99ef0a4cf4426fe1422788f1f2b34b95bb45742852a4144611568"}, "url": "/docs/compare/?release=9.1.16#9.1.16-b894428fa41ef6ee", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.3.7-e4ba3d9cf2f1fe41", "cves": [], "html": "<p>在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保<span>pg_ctl</span>会等待关闭完成（Krystian Bigaj）</p>", "text": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保pg_ctl会等待关闭完成（Krystian Bigaj）", "title": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保pg_ctl会等待关闭完成", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "54b23dd1a7b6c27e57be2dc285a8699ea10fd050307e4e0aaeb1fb6fa8b5bd21", "section_path": ["变更"], "commit_groups": [], "identity_text": "While shutting down service on Windows, periodically send status updates to the Service Control Manager to prevent it from killing the service too soon; and ensure that pg_ctl will wait for shutdown (Krystian Bigaj)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/027", "db_id": "6a0367fa3a3ea35b135054053c88081b", "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc", "relations": [{"rule": 2, "type": "equivalent", "target": "5f50118a61c42a6bbd7abfb11ce6d0ef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}}, {"rule": 2, "type": "equivalent", "target": "af1aa707cb7f644b6704a634f9a165d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}}, {"rule": 2, "type": "equivalent", "target": "cda54d9a90f62d45b8c486111841b44e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}}, {"rule": 2, "type": "equivalent", "target": "d6668b99df7b79843bdb87678f3af48a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "af1aa707cb7f644b6704a634f9a165d0", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新以防它过早终止服务；并确保 pg_ctl 会等待关闭完成", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}, "url": "/docs/compare/?release=9.4.2#9.4.2-eec758cfffebf426", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "5f50118a61c42a6bbd7abfb11ce6d0ef", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保pg_ctl会等待关闭完成", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}, "url": "/docs/compare/?release=9.2.11#9.2.11-e4ba3d9cf2f1fe41", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "cda54d9a90f62d45b8c486111841b44e", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保pg_ctl会等待关闭完成", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}, "url": "/docs/compare/?release=9.1.16#9.1.16-e4ba3d9cf2f1fe41", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "d6668b99df7b79843bdb87678f3af48a", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "在 Windows 上关闭服务期间，定期向服务控制管理器发送状态更新，以防止它过早终止服务；并确保pg_ctl会等待关闭完成", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "952b4eb145e6a9745e6c84ab5159eec4d0eb9ff40d96e62626fcffa4fc1661dc"}, "url": "/docs/compare/?release=9.0.20#9.0.20-e4ba3d9cf2f1fe41", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-88f3422e6619fc15", "cves": [], "html": "<p>降低使用<span>libpq</span>非阻塞模式时网络死锁的风险（Heikki Linnakangas）</p>\n<p>在发送大量数据时，定期排空输入缓冲区很重要，以防服务器已发送足够的响应数据导致其在输出上阻塞。（典型场景是服务器在<code>COPY FROM STDIN</code>期间发送一连串 NOTICE 消息。）这在普通阻塞模式下工作正常，但在非阻塞模式下则不然。我们修改了<span>libpq</span>，使其在可能时顺便排空输入，但要完全防御此问题需要应用程序配合：应用程序应同时监视套接字的读就绪和写就绪条件，并确保在读就绪时调用<code>PQconsumeInput()</code>。</p>", "text": "降低使用libpq非阻塞模式时网络死锁的风险（Heikki Linnakangas） 在发送大量数据时，定期排空输入缓冲区很重要，以防服务器已发送足够的响应数据导致其在输出上阻塞。（典型场景是服务器在COPY FROM STDIN期间发送一连串 NOTICE 消息。）这在普通阻塞模式下工作正常，但在非阻塞模式下则不然。我们修改了libpq，使其在可能时顺便排空输入，但要完全防御此问题需要应用程序配合：应用程序应同时监视套接字的读就绪和写就绪条件，并确保在读就绪时调用PQconsumeInput()。", "title": "降低使用libpq非阻塞模式时网络死锁的风险", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "15d985762ff68b28f1742b34201d7804e2cead79e40866b8318f644f10ae6065", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce risk of network deadlock when using libpq's non-blocking mode (Heikki Linnakangas) When sending large volumes of data, it's important to drain the input buffer every so often, in case the server has sent enough response data to cause it to block on output. (A typical scenario is that the server is sending a stream of NOTICE messages during COPY FROM STDIN.) This worked properly in the normal blocking mode, but not so much in non-blocking mode. We've modified libpq to opportunistically drain input when it can, but a full defense against this problem requires application cooperation: the application should watch for socket read-ready as well as write-ready conditions, and be sure to call PQconsumeInput() upon read-ready.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/028", "db_id": "9039c22f9f4b61c617b21747e614cfc7", "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d", "relations": [{"rule": 2, "type": "equivalent", "target": "2c882ae1699ea8b2abd06940bf24f98a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}}, {"rule": 2, "type": "equivalent", "target": "498fc7d668d0aa8b1bc6d1db737152e6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}}, {"rule": 2, "type": "equivalent", "target": "598e1b253718bbf1c3282c8fc9b516a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}}, {"rule": 2, "type": "equivalent", "target": "f899cf33925a19a1df8247d18d84d6c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f899cf33925a19a1df8247d18d84d6c3", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "降低使用libpq非阻塞模式时网络死锁的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}, "url": "/docs/compare/?release=9.4.2#9.4.2-88f3422e6619fc15", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "598e1b253718bbf1c3282c8fc9b516a1", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "降低使用libpq非阻塞模式时网络死锁的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}, "url": "/docs/compare/?release=9.2.11#9.2.11-88f3422e6619fc15", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "498fc7d668d0aa8b1bc6d1db737152e6", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "降低使用libpq非阻塞模式时网络死锁的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}, "url": "/docs/compare/?release=9.1.16#9.1.16-88f3422e6619fc15", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "2c882ae1699ea8b2abd06940bf24f98a", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "降低使用libpq非阻塞模式时网络死锁的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dccd34a978cc19a1e6ab89ce309085702a8cadad1f2296788b6de88cf436940d"}, "url": "/docs/compare/?release=9.0.20#9.0.20-88f3422e6619fc15", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-1c3352c5b59a903d", "cves": [], "html": "<p>修复<span>libpq</span>中 URI 连接串空值解析错误的问题（Thomas Fanghaenel）</p>", "text": "修复libpq中 URI 连接串空值解析错误的问题（Thomas Fanghaenel）", "title": "修复libpq中 URI 连接串空值解析错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "c2a3339969155aad1e888ddbacbe00e90263ba0ba5e13e0a2d847acb8e4d8f0c", "section_path": ["变更"], "commit_groups": [], "identity_text": "In libpq, fix misparsing of empty values in URI connection strings (Thomas Fanghaenel)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/029", "db_id": "00af98eb5cd073bdd89d04c9004b429e", "patch_ids": [], "statement_hash": "bc89bebf9d87cbbf31d2c73d7216c61f950cf13da77cb15361ee7fb6ce77cad5", "relations": [{"rule": 2, "type": "equivalent", "target": "320f9014f45b2b3169a1363cab552f95", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc89bebf9d87cbbf31d2c73d7216c61f950cf13da77cb15361ee7fb6ce77cad5"}}, {"rule": 2, "type": "equivalent", "target": "833191d8af6f1c474cdd7874acc4192a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc89bebf9d87cbbf31d2c73d7216c61f950cf13da77cb15361ee7fb6ce77cad5"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "320f9014f45b2b3169a1363cab552f95", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 libpq 中 URI 连接串空值的误解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc89bebf9d87cbbf31d2c73d7216c61f950cf13da77cb15361ee7fb6ce77cad5"}, "url": "/docs/compare/?release=9.4.2#9.4.2-4333f4405ab57a27", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "833191d8af6f1c474cdd7874acc4192a", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复libpq中 URI 连接串空值解析错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc89bebf9d87cbbf31d2c73d7216c61f950cf13da77cb15361ee7fb6ce77cad5"}, "url": "/docs/compare/?release=9.2.11#9.2.11-1c3352c5b59a903d", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}]}, {"id": "9.3.7-d8f3430f52e99661", "cves": [], "html": "<p>修复<span>ecpg</span>中的数组处理（Michael Meskes）</p>", "text": "修复ecpg中的数组处理（Michael Meskes）", "title": "修复ecpg中的数组处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "b8ece0c2c945bce7c64031c2f9b7ef4881f818bf8148ddf8f227aac218d73d28", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix array handling in ecpg (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/030", "db_id": "03222f3e547f37dd099b40c61bc90005", "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b", "relations": [{"rule": 2, "type": "equivalent", "target": "5270ee966420c546d77693211747865a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}}, {"rule": 2, "type": "equivalent", "target": "75e6a09d7c33c7cd877ff01c3199e91b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}}, {"rule": 2, "type": "equivalent", "target": "9e1a1a4055145909d00a4b6f8b28bdd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}}, {"rule": 2, "type": "equivalent", "target": "c3fa157509c3cf0cb743b44aac5a8bcf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "75e6a09d7c33c7cd877ff01c3199e91b", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 ecpg 中的数组处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}, "url": "/docs/compare/?release=9.4.2#9.4.2-12d6b2c443b62fce", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "5270ee966420c546d77693211747865a", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复ecpg中的数组处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}, "url": "/docs/compare/?release=9.2.11#9.2.11-d8f3430f52e99661", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "9e1a1a4055145909d00a4b6f8b28bdd3", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复ecpg中的数组处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}, "url": "/docs/compare/?release=9.1.16#9.1.16-d8f3430f52e99661", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "c3fa157509c3cf0cb743b44aac5a8bcf", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复ecpg中的数组处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "420293c570790548a81057536c1fa185df07534cc86fc2708c9467d360a5a19b"}, "url": "/docs/compare/?release=9.0.20#9.0.20-d8f3430f52e99661", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-c2b0e63e91a475bd", "cves": [], "html": "<p>修复<span>psql</span>以合理处理作为<code>\\connect</code>第一个参数的 URI 和 conninfo 串（David Fetter、Andrew Dunstan, Álvaro Herrera）</p>\n<p>这一语法已被接受（但未写入文档）很长时间，但此前某些参数可能取自旧连接而非给定字符串，这被认为是不合适的。</p>", "text": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串（David Fetter、Andrew Dunstan, Álvaro Herrera） 这一语法已被接受（但未写入文档）很长时间，但此前某些参数可能取自旧连接而非给定字符串，这被认为是不合适的。", "title": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "9d630b9634b001b7b54fff34d24526273de4f3704a0af063a5a19accecaa9395", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql to sanely handle URIs and conninfo strings as the first parameter to \\connect (David Fetter, Andrew Dunstan, Álvaro Herrera) This syntax has been accepted (but undocumented) for a long time, but previously some parameters might be taken from the old connection instead of the given string, which was agreed to be undesirable.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/031", "db_id": "52da617b8596bc4937f27599b5b78eab", "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d", "relations": [{"rule": 2, "type": "equivalent", "target": "1ba3837708d73f5af49dc354077ff447", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}}, {"rule": 2, "type": "equivalent", "target": "6f12320508c57791ad764a622d299c0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}}, {"rule": 2, "type": "equivalent", "target": "b1fa934bb2dd5f07cb00fce7003c0399", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}}, {"rule": 2, "type": "equivalent", "target": "f16bd4c2fd15211edf741ef3a1f6c6a9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b1fa934bb2dd5f07cb00fce7003c0399", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}, "url": "/docs/compare/?release=9.4.2#9.4.2-c2b0e63e91a475bd", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "1ba3837708d73f5af49dc354077ff447", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}, "url": "/docs/compare/?release=9.2.11#9.2.11-c2b0e63e91a475bd", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "f16bd4c2fd15211edf741ef3a1f6c6a9", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}, "url": "/docs/compare/?release=9.1.16#9.1.16-c2b0e63e91a475bd", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "6f12320508c57791ad764a622d299c0f", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复psql以合理处理作为\\connect第一个参数的 URI 和 conninfo 串", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3eb2388095e380964329c047b09e86551cf29d5987b13c0c70ffb0ef1bd83c4d"}, "url": "/docs/compare/?release=9.0.20#9.0.20-c2b0e63e91a475bd", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-d227cea86329c725", "cves": [], "html": "<p>抑制<span>psql</span>在某些平台上关于退出时未能写入<code>~/.psql_history</code>的错误抱怨（Tom Lane）</p>\n<p>这一不当行为源自针对非常老（2006 年之前）的<span>libedit</span>版本中一个缺陷的变通方案。我们通过移除该变通方案修复了问题，但这会使仍在使用此类<span>libedit</span>版本的用户出现类似失败。建议：升级该库，或改用<span>libreadline</span>。</p>", "text": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨（Tom Lane） 这一不当行为源自针对非常老（2006 年之前）的libedit版本中一个缺陷的变通方案。我们通过移除该变通方案修复了问题，但这会使仍在使用此类libedit版本的用户出现类似失败。建议：升级该库，或改用libreadline。", "title": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "75d04d1da35091f800ad382ea92828cf71218eaf65af39f4421cb78d433723ea", "section_path": ["变更"], "commit_groups": [], "identity_text": "Suppress incorrect complaints from psql on some platforms that it failed to write ~/.psql_history at exit (Tom Lane) This misbehavior was caused by a workaround for a bug in very old (pre-2006) versions of libedit. We fixed it by removing the workaround, which will cause a similar failure to appear for anyone still using such versions of libedit. Recommendation: upgrade that library, or use libreadline.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/032", "db_id": "e52fbd69057eccf214de2172b41331bb", "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088", "relations": [{"rule": 2, "type": "equivalent", "target": "49a43eebdf83f7aa058ec222f1385585", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}}, {"rule": 2, "type": "equivalent", "target": "b5362eb4c369741eec484b03391f5fff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}}, {"rule": 2, "type": "equivalent", "target": "eb5dae8c61bba8b98862c6cd93d6307f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}}, {"rule": 2, "type": "equivalent", "target": "fa74617d6f3b1414c2cef44a7bad5c60", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa74617d6f3b1414c2cef44a7bad5c60", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}, "url": "/docs/compare/?release=9.4.2#9.4.2-d227cea86329c725", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "b5362eb4c369741eec484b03391f5fff", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}, "url": "/docs/compare/?release=9.2.11#9.2.11-d227cea86329c725", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "49a43eebdf83f7aa058ec222f1385585", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}, "url": "/docs/compare/?release=9.1.16#9.1.16-d227cea86329c725", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "eb5dae8c61bba8b98862c6cd93d6307f", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de356d2c07dafe55e04e761481754950d45efe102ba79a0473795127e2c6b088"}, "url": "/docs/compare/?release=9.0.20#9.0.20-d227cea86329c725", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-e3cbc04bb40225cc", "cves": [], "html": "<p>修复<span>pg_dump</span>判定哪些转换是不应转储的系统提供转换的规则（Tom Lane）</p>", "text": "修复pg_dump判定哪些转换是不应转储的系统提供转换的规则（Tom Lane）", "title": "修复pg_dump判定哪些转换是不应转储的系统提供转换的规则", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "d59d4e253c027e0ec234d04ce5dbbdc41ece65b47789269c94f82fb2532b35e8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump's rule for deciding which casts are system-provided casts that should not be dumped (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/033", "db_id": "d0d7c2d04b5e6a6ec53e6b6ee3ba14f9", "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b", "relations": [{"rule": 2, "type": "equivalent", "target": "4a07f150b25353bc15f3e6aae96f0624", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}}, {"rule": 2, "type": "equivalent", "target": "68ac0592c21dc4bd805081964e00df52", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}}, {"rule": 2, "type": "equivalent", "target": "b508de042a3c64fefa8a9c89a8726010", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}}, {"rule": 2, "type": "equivalent", "target": "bfb78023172514429b27c225f6b00a4e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b508de042a3c64fefa8a9c89a8726010", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 pg_dump 判断哪些转换是不应转储的系统提供转换的规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}, "url": "/docs/compare/?release=9.4.2#9.4.2-1e725ffa4aa0048d", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "bfb78023172514429b27c225f6b00a4e", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复pg_dump判定哪些转换是不应转储的系统提供转换的规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}, "url": "/docs/compare/?release=9.2.11#9.2.11-e3cbc04bb40225cc", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "4a07f150b25353bc15f3e6aae96f0624", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复pg_dump判定哪些转换是不应转储的系统提供转换的规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}, "url": "/docs/compare/?release=9.1.16#9.1.16-e3cbc04bb40225cc", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "68ac0592c21dc4bd805081964e00df52", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复pg_dump判定哪些转换是不应转储的系统提供转换的规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8705f6329a62d6f84deb40e5a5b76549c12982d1e70e53b69c6a4122bb2bc35b"}, "url": "/docs/compare/?release=9.0.20#9.0.20-e3cbc04bb40225cc", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-ec677b166167629e", "cves": [], "html": "<p>修复<span>pg_dump</span>在<code>-Fd</code>下未遵循<code>-Z</code>压缩级别选项的问题（Michael Paquier）</p>", "text": "修复pg_dump在-Fd下未遵循-Z压缩级别选项的问题（Michael Paquier）", "title": "修复pg_dump在-Fd下未遵循-Z压缩级别选项的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "0b953a740d5c8780f7524532442e7d7c491d77c1d803da7f0a2d4b9202c6562c", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_dump, fix failure to honor -Z compression level option together with -Fd (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/034", "db_id": "9a36c452dbb10277e634b4cb0d71ec06", "patch_ids": [], "statement_hash": "ead6b304ec33630455c137d70864e769a57cf07196a0e04043b1416c61269925", "relations": [{"rule": 2, "type": "equivalent", "target": "064809e364056a912a9a4f40f13e66fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ead6b304ec33630455c137d70864e769a57cf07196a0e04043b1416c61269925"}}, {"rule": 2, "type": "equivalent", "target": "695d3cc3d176635ed967cee52f33b649", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ead6b304ec33630455c137d70864e769a57cf07196a0e04043b1416c61269925"}}, {"rule": 2, "type": "equivalent", "target": "b84d23a974506f1f2673eb22c5339d65", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ead6b304ec33630455c137d70864e769a57cf07196a0e04043b1416c61269925"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "064809e364056a912a9a4f40f13e66fe", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 pg_dump 中 -Z 压缩级别选项与 -Fd 一起使用时未被遵循的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ead6b304ec33630455c137d70864e769a57cf07196a0e04043b1416c61269925"}, "url": "/docs/compare/?release=9.4.2#9.4.2-bcb8106afdc1191c", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "695d3cc3d176635ed967cee52f33b649", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复pg_dump在-Fd下未遵循-Z压缩级别选项的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ead6b304ec33630455c137d70864e769a57cf07196a0e04043b1416c61269925"}, "url": "/docs/compare/?release=9.2.11#9.2.11-ec677b166167629e", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "b84d23a974506f1f2673eb22c5339d65", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复pg_dump在-Fd下未遵循-Z压缩级别选项的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ead6b304ec33630455c137d70864e769a57cf07196a0e04043b1416c61269925"}, "url": "/docs/compare/?release=9.1.16#9.1.16-ec677b166167629e", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.3.7-9a4af7483615b22e", "cves": [], "html": "<p>使<span>pg_dump</span>在选择转储顺序时考虑扩展配置表之间的外键关系（Gilles Darold、Michael Paquier、Stephen Frost）</p>\n<p>这一疏忽可能导致生成的转储无法重新加载，因为外键约束会被瞬时违反。</p>", "text": "使pg_dump在选择转储顺序时考虑扩展配置表之间的外键关系（Gilles Darold、Michael Paquier、Stephen Frost） 这一疏忽可能导致生成的转储无法重新加载，因为外键约束会被瞬时违反。", "title": "使pg_dump在选择转储顺序时考虑扩展配置表之间的外键关系", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "a9400db47e5487b88c29b51b733a4637e4d6478546aeabfad7da074ce0ce26bd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_dump consider foreign key relationships between extension configuration tables while choosing dump order (Gilles Darold, Michael Paquier, Stephen Frost) This oversight could result in producing dumps that fail to reload because foreign key constraints are transiently violated.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/035", "db_id": "c55a1ddab377ddf60532cc2e6e29cac0", "patch_ids": [], "statement_hash": "9270308a21ff1daf64ebebcc3ac3578f51d0f40969de78de6b1ccf37d7c37461", "relations": [{"rule": 2, "type": "equivalent", "target": "0d0a0a071440f5c916f2904270b689ba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9270308a21ff1daf64ebebcc3ac3578f51d0f40969de78de6b1ccf37d7c37461"}}, {"rule": 2, "type": "equivalent", "target": "2bb8cf7326c19998181e47c91ad20671", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9270308a21ff1daf64ebebcc3ac3578f51d0f40969de78de6b1ccf37d7c37461"}}, {"rule": 2, "type": "equivalent", "target": "96b8c3aa654de420c81a51125b0c0ac8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9270308a21ff1daf64ebebcc3ac3578f51d0f40969de78de6b1ccf37d7c37461"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0d0a0a071440f5c916f2904270b689ba", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "使pg_dump在选择转储顺序时考虑扩展配置表之间的外键关系", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9270308a21ff1daf64ebebcc3ac3578f51d0f40969de78de6b1ccf37d7c37461"}, "url": "/docs/compare/?release=9.4.2#9.4.2-9a4af7483615b22e", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "2bb8cf7326c19998181e47c91ad20671", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "使pg_dump在选择转储顺序时考虑扩展配置表之间的外键关系", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9270308a21ff1daf64ebebcc3ac3578f51d0f40969de78de6b1ccf37d7c37461"}, "url": "/docs/compare/?release=9.2.11#9.2.11-9a4af7483615b22e", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "96b8c3aa654de420c81a51125b0c0ac8", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "使pg_dump在选择转储顺序时考虑扩展配置表之间的外键关系", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9270308a21ff1daf64ebebcc3ac3578f51d0f40969de78de6b1ccf37d7c37461"}, "url": "/docs/compare/?release=9.1.16#9.1.16-9a4af7483615b22e", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.3.7-c680f1493e331fe6", "cves": [], "html": "<p>避免并发会话创建和删除临时函数时<span>pg_dump</span>可能失败的问题（Tom Lane）</p>", "text": "避免并发会话创建和删除临时函数时pg_dump可能失败的问题（Tom Lane）", "title": "避免并发会话创建和删除临时函数时pg_dump可能失败的问题", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "ad2e99e814043200592873c0604d802ea0943b3a60748ff976ae0b629e0c1484", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid possible pg_dump failure when concurrent sessions are creating and dropping temporary functions (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/036", "db_id": "5d018e8adf5e2dff08e5763d93ef879f", "patch_ids": [], "statement_hash": "f3d29c31ecd4ee4aa37945b77f7ad97bd543948689c6cd8758634e28a06be897", "relations": [{"rule": 2, "type": "equivalent", "target": "4ccf03e310b43574a6b465f451a00983", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f3d29c31ecd4ee4aa37945b77f7ad97bd543948689c6cd8758634e28a06be897"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4ccf03e310b43574a6b465f451a00983", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "避免并发会话创建和删除临时函数时 pg_dump 可能失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f3d29c31ecd4ee4aa37945b77f7ad97bd543948689c6cd8758634e28a06be897"}, "url": "/docs/compare/?release=9.4.2#9.4.2-4d528e46edf86100", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}]}, {"id": "9.3.7-0c84064cc1d9166a", "cves": [], "html": "<p>修复对仅由<code>VALUES(...)</code>构成但带有列别名的视图的转储（Tom Lane）</p>", "text": "修复对仅由VALUES(...)构成但带有列别名的视图的转储（Tom Lane）", "title": "修复对仅由VALUES(...)构成但带有列别名的视图的转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "c14c7878ce14f118b174197940a757dcb4079f24b1a95c97b462eb9448ebdd68", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix dumping of views that are just VALUES(...) but have column aliases (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/037", "db_id": "8fedc436dd8b8faf5b520b757035c88b", "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76", "relations": [{"rule": 2, "type": "equivalent", "target": "0419643d23e4a4dcf485f3d67a1a8ca9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}}, {"rule": 2, "type": "equivalent", "target": "6893d83c75aab30522f2ba58ea38ae7c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}}, {"rule": 2, "type": "equivalent", "target": "a14a9740c72bc906d1fba16e9c1cb4cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}}, {"rule": 2, "type": "equivalent", "target": "c4f3706c97d656d20e7d60825a6aed85", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c4f3706c97d656d20e7d60825a6aed85", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复仅由 VALUES(...) 构成但带有列别名的视图的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}, "url": "/docs/compare/?release=9.4.2#9.4.2-3a80b9109301d2c3", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "a14a9740c72bc906d1fba16e9c1cb4cd", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复对仅由VALUES(...)构成但带有列别名的视图的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}, "url": "/docs/compare/?release=9.2.11#9.2.11-0c84064cc1d9166a", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "0419643d23e4a4dcf485f3d67a1a8ca9", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复对仅由VALUES(...)构成但带有列别名的视图的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}, "url": "/docs/compare/?release=9.1.16#9.1.16-0c84064cc1d9166a", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "6893d83c75aab30522f2ba58ea38ae7c", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复对仅由VALUES(...)构成但带有列别名的视图的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1d07aefbe69f76fbfd7bdfcd778a2ebfe007c1ddd6821421f482699ae9046a76"}, "url": "/docs/compare/?release=9.0.20#9.0.20-0c84064cc1d9166a", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-85a36f5791bb8c13", "cves": [], "html": "<p>在<span>pg_upgrade</span>中，强制新集簇使用时间线 1（Bruce Momjian）</p>\n<p>此变更可防止因错误抱怨缺少 WAL 历史文件而导致的升级失败。</p>", "text": "在pg_upgrade中，强制新集簇使用时间线 1（Bruce Momjian） 此变更可防止因错误抱怨缺少 WAL 历史文件而导致的升级失败。", "title": "在pg_upgrade中，强制新集簇使用时间线 1", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "08fa131a63577019561e2427527ff8b1c4ae0140357e1736c7f20e9deb311f42", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_upgrade, force timeline 1 in the new cluster (Bruce Momjian) This change prevents upgrade failures caused by bogus complaints about missing WAL history files.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/038", "db_id": "264e70366e463566e591358479b0662e", "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a", "relations": [{"rule": 2, "type": "equivalent", "target": "32add2a745591c8459a411546ba2e115", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}}, {"rule": 2, "type": "equivalent", "target": "c987857809faf03056aa6d67b18891ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}}, {"rule": 2, "type": "equivalent", "target": "f0ae4f13ab1ab379b88d9739e247631f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}}, {"rule": 2, "type": "equivalent", "target": "f373f2b37669d9e6f05d88219713420c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c987857809faf03056aa6d67b18891ce", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在pg_upgrade中，强制新集簇使用时间线 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}, "url": "/docs/compare/?release=9.4.2#9.4.2-85a36f5791bb8c13", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "f373f2b37669d9e6f05d88219713420c", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在pg_upgrade中，强制新集簇使用时间线 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}, "url": "/docs/compare/?release=9.2.11#9.2.11-85a36f5791bb8c13", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "f0ae4f13ab1ab379b88d9739e247631f", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在pg_upgrade中，强制新集簇使用时间线 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}, "url": "/docs/compare/?release=9.1.16#9.1.16-85a36f5791bb8c13", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "32add2a745591c8459a411546ba2e115", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "在pg_upgrade中，强制新集簇使用时间线 1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbc1aa2d5d4c053c61455d419604f84ff0d39042453f2f23317cda66dd0a871a"}, "url": "/docs/compare/?release=9.0.20#9.0.20-85a36f5791bb8c13", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-0eddc16ada22ddc4", "cves": [], "html": "<p>在<span>pg_upgrade</span>中，继续之前先检查是否存在不当不可连接的数据库（Bruce Momjian）</p>", "text": "在pg_upgrade中，继续之前先检查是否存在不当不可连接的数据库（Bruce Momjian）", "title": "在pg_upgrade中，继续之前先检查是否存在不当不可连接的数据库", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "d7856a21ad94a5a61adc50a5d720c1f88e15c8872b35dbd485cd3dac70ff484b", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_upgrade, check for improperly non-connectable databases before proceeding (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/039", "db_id": "f5b8584278763862dc6a8e1da5d17312", "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d", "relations": [{"rule": 2, "type": "equivalent", "target": "68233c9d057b5735545722ba667a7b56", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}}, {"rule": 2, "type": "equivalent", "target": "77a7fb9e2de57a40c3f80d37778ef12e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}}, {"rule": 2, "type": "equivalent", "target": "86fc86cc859f76fb4d06c2c326a0e37b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}}, {"rule": 2, "type": "equivalent", "target": "a073ace5a59bd86a378804b08cae5862", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a073ace5a59bd86a378804b08cae5862", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在 pg_upgrade 中，继续之前检查是否存在不可正常连接的数据库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}, "url": "/docs/compare/?release=9.4.2#9.4.2-18f7887a04608191", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "86fc86cc859f76fb4d06c2c326a0e37b", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在pg_upgrade中，继续之前先检查是否存在不当不可连接的数据库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}, "url": "/docs/compare/?release=9.2.11#9.2.11-0eddc16ada22ddc4", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "77a7fb9e2de57a40c3f80d37778ef12e", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在pg_upgrade中，继续之前先检查是否存在不当不可连接的数据库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}, "url": "/docs/compare/?release=9.1.16#9.1.16-0eddc16ada22ddc4", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "68233c9d057b5735545722ba667a7b56", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "在pg_upgrade中，继续之前先检查是否存在不当不可连接的数据库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c441f7d317feeeb5d1d4216d0d65330c089bce47819fee5b9cfeab4f6dc879d"}, "url": "/docs/compare/?release=9.0.20#9.0.20-0eddc16ada22ddc4", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-c019bc62e67c9b11", "cves": [], "html": "<p>在<span>pg_upgrade</span>中，在生成的<code>delete_old_cluster</code>脚本中对目录路径正确加引号（Bruce Momjian）</p>", "text": "在pg_upgrade中，在生成的delete_old_cluster脚本中对目录路径正确加引号（Bruce Momjian）", "title": "在pg_upgrade中，在生成的delete_old_cluster脚本中对目录路径正确加引号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "c3796d7bc41a9621c2db8f0e0d5a08f0c813c643aa276e5505ff97c9dd46d5fa", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_upgrade, quote directory paths properly in the generated delete_old_cluster script (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/040", "db_id": "3ae2ddd23ebc636e0f8bde95932fbbc7", "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845", "relations": [{"rule": 2, "type": "equivalent", "target": "16467afcb13ce31ba8cf25d6e2530023", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}}, {"rule": 2, "type": "equivalent", "target": "423a6dfd053d57308644d32c12d347b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}}, {"rule": 2, "type": "equivalent", "target": "471a3f4462d18ff899f9ba42e8b02f39", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}}, {"rule": 2, "type": "equivalent", "target": "def1df828e57b17a3ba49adf79b6033b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "def1df828e57b17a3ba49adf79b6033b", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在 pg_upgrade 中，在生成的 delete_old_cluster 脚本中正确引用目录路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}, "url": "/docs/compare/?release=9.4.2#9.4.2-748f589a42626cc9", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "423a6dfd053d57308644d32c12d347b1", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在pg_upgrade中，在生成的delete_old_cluster脚本中对目录路径正确加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}, "url": "/docs/compare/?release=9.2.11#9.2.11-c019bc62e67c9b11", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "471a3f4462d18ff899f9ba42e8b02f39", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在pg_upgrade中，在生成的delete_old_cluster脚本中对目录路径正确加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}, "url": "/docs/compare/?release=9.1.16#9.1.16-c019bc62e67c9b11", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "16467afcb13ce31ba8cf25d6e2530023", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "在pg_upgrade中，在生成的delete_old_cluster脚本中对目录路径正确加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8912eb64c7011065c2063368a5bb8f5367d03e89b61d581686ed76e8b01c845"}, "url": "/docs/compare/?release=9.0.20#9.0.20-c019bc62e67c9b11", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-46b29efe37a5a32c", "cves": [], "html": "<p>在<span>pg_upgrade</span>中正确保留数据库级冻结信息（Bruce Momjian）</p>\n<p>这一疏忽可能导致<code>postgres</code>和<code>template1</code>数据库中的表出现缺少 clog 文件的错误。</p>", "text": "在pg_upgrade中正确保留数据库级冻结信息（Bruce Momjian） 这一疏忽可能导致postgres和template1数据库中的表出现缺少 clog 文件的错误。", "title": "在pg_upgrade中正确保留数据库级冻结信息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "435063410ce7d672b4720a96384e2554972619b8a7761e3a8d8414c26414f627", "section_path": ["变更"], "commit_groups": [], "identity_text": "In pg_upgrade, preserve database-level freezing info properly (Bruce Momjian) This oversight could cause missing-clog-file errors for tables within the postgres and template1 databases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/041", "db_id": "43d98539b4680389246cf32f7b86160a", "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd", "relations": [{"rule": 2, "type": "equivalent", "target": "176a00afcee6210be72b7c408f3b71ac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}}, {"rule": 2, "type": "equivalent", "target": "270287647c524d3508e29e8b3f14f0e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}}, {"rule": 2, "type": "equivalent", "target": "8d85de9533530cab682b95682f20a29a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}}, {"rule": 2, "type": "equivalent", "target": "af437421bc4312f8319d13bef3c5a337", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "270287647c524d3508e29e8b3f14f0e4", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在pg_upgrade中正确保留数据库级冻结信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}, "url": "/docs/compare/?release=9.4.2#9.4.2-46b29efe37a5a32c", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "af437421bc4312f8319d13bef3c5a337", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在pg_upgrade中正确保留数据库级冻结信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}, "url": "/docs/compare/?release=9.2.11#9.2.11-46b29efe37a5a32c", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "176a00afcee6210be72b7c408f3b71ac", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在pg_upgrade中正确保留数据库级冻结信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}, "url": "/docs/compare/?release=9.1.16#9.1.16-46b29efe37a5a32c", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "8d85de9533530cab682b95682f20a29a", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "在pg_upgrade中正确保留数据库级冻结信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75dd48b07dbe6fbedfac804a5a9307403f267f063a9b0088180044ec3c0da8fd"}, "url": "/docs/compare/?release=9.0.20#9.0.20-46b29efe37a5a32c", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-baa1aa72925fc091", "cves": [], "html": "<p>在 Windows 上以受限权限运行<span>pg_upgrade</span>和<span>pg_resetxlog</span>，使它们在由管理员运行时不会失败（Muhammad Asif Naeem）</p>", "text": "在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog，使它们在由管理员运行时不会失败（Muhammad Asif Naeem）", "title": "在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog，使它们在由管理员运行时不会失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "5977a57458436342dd3687aff45c397db01df8db163dd369480a036e26e345b8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Run pg_upgrade and pg_resetxlog with restricted privileges on Windows, so that they don't fail when run by an administrator (Muhammad Asif Naeem)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/042", "db_id": "906d84c770cda4fc43a0034b7e197e1e", "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17", "relations": [{"rule": 2, "type": "equivalent", "target": "4e16455126bb16c3ed6c614052916905", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}}, {"rule": 2, "type": "equivalent", "target": "5a5425367afbc98edcb0ee897d3d7efa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}}, {"rule": 2, "type": "equivalent", "target": "9d04c1a220d59b87d7f3fcf2300022f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}}, {"rule": 2, "type": "equivalent", "target": "d207956864a3b3471462c3e92f808f52", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d04c1a220d59b87d7f3fcf2300022f2", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "在 Windows 上以受限权限运行 pg_upgrade 和 pg_resetxlog，使它们被管理员运行时不会失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}, "url": "/docs/compare/?release=9.4.2#9.4.2-0e30634e13e1a711", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "d207956864a3b3471462c3e92f808f52", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog，使它们在由管理员运行时不会失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}, "url": "/docs/compare/?release=9.2.11#9.2.11-baa1aa72925fc091", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "4e16455126bb16c3ed6c614052916905", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog，使它们在由管理员运行时不会失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}, "url": "/docs/compare/?release=9.1.16#9.1.16-baa1aa72925fc091", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "5a5425367afbc98edcb0ee897d3d7efa", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog，使它们在由管理员运行时不会失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "218fb66da766fe6b77120d0a6e11ec94904f1e88ce9b6d9ed84084e7a378ee17"}, "url": "/docs/compare/?release=9.0.20#9.0.20-baa1aa72925fc091", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-964ad16233ca26e3", "cves": [], "html": "<p>改进<span>initdb</span>和<span>pg_basebackup</span>扫描目录时对<code>readdir()</code>失败的处理（Marco Nenciarini）</p>", "text": "改进initdb和pg_basebackup扫描目录时对readdir()失败的处理（Marco Nenciarini）", "title": "改进initdb和pg_basebackup扫描目录时对readdir()失败的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "bb2f3d13f94219b457a2cc123d05742e650d5caf03153e72fc1d68eef8148537", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve handling of readdir() failures when scanning directories in initdb and pg_basebackup (Marco Nenciarini)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/043", "db_id": "45e59a64fd13072c65338c452ee9633d", "patch_ids": [], "statement_hash": "3c6bd78cde05c6137403b2e0e1b7b4e25a644c9859c310308bf0d4f754d48071", "relations": [{"rule": 2, "type": "equivalent", "target": "05772fd16bbdf06b6afabf46d9119ade", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6bd78cde05c6137403b2e0e1b7b4e25a644c9859c310308bf0d4f754d48071"}}, {"rule": 2, "type": "equivalent", "target": "097d5af9737c244bad503a682f585850", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6bd78cde05c6137403b2e0e1b7b4e25a644c9859c310308bf0d4f754d48071"}}, {"rule": 2, "type": "equivalent", "target": "3002e7bb7c63e5bad0270f2496377536", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6bd78cde05c6137403b2e0e1b7b4e25a644c9859c310308bf0d4f754d48071"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3002e7bb7c63e5bad0270f2496377536", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "改进 initdb 和 pg_basebackup 扫描目录时对 readdir() 失败的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6bd78cde05c6137403b2e0e1b7b4e25a644c9859c310308bf0d4f754d48071"}, "url": "/docs/compare/?release=9.4.2#9.4.2-737a00ab72bfa610", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "097d5af9737c244bad503a682f585850", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "改进initdb和pg_basebackup扫描目录时对readdir()失败的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6bd78cde05c6137403b2e0e1b7b4e25a644c9859c310308bf0d4f754d48071"}, "url": "/docs/compare/?release=9.2.11#9.2.11-964ad16233ca26e3", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "05772fd16bbdf06b6afabf46d9119ade", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "改进initdb和pg_basebackup扫描目录时对readdir()失败的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6bd78cde05c6137403b2e0e1b7b4e25a644c9859c310308bf0d4f754d48071"}, "url": "/docs/compare/?release=9.1.16#9.1.16-964ad16233ca26e3", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}]}, {"id": "9.3.7-84a59f93e121843c", "cves": [], "html": "<p>修复<code>contrib/intarray</code>中缓慢的排序算法（Tom Lane）</p>", "text": "修复contrib/intarray中缓慢的排序算法（Tom Lane）", "title": "修复contrib/intarray中缓慢的排序算法", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "5fd6eeafed34c93cfb1ca60d1ddbf6f65ab71284c08d0111bd72125ebd1dd864", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix slow sorting algorithm in contrib/intarray (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/044", "db_id": "46a207039ebfc20468ca3465d3fe1b1a", "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f", "relations": [{"rule": 2, "type": "equivalent", "target": "4376a2b0acf1a1e4703192ba949eb3f4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}}, {"rule": 2, "type": "equivalent", "target": "45a74e7e9dcd440b365eeaba283c4884", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}}, {"rule": 2, "type": "equivalent", "target": "d9f46d752b016f506e7ad54fe58281ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}}, {"rule": 2, "type": "equivalent", "target": "f0dab024f4747558c6df4643a77769d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "45a74e7e9dcd440b365eeaba283c4884", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 contrib/intarray 中缓慢的排序算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}, "url": "/docs/compare/?release=9.4.2#9.4.2-a2b5602bf1b4f1b7", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "4376a2b0acf1a1e4703192ba949eb3f4", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复contrib/intarray中缓慢的排序算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}, "url": "/docs/compare/?release=9.2.11#9.2.11-84a59f93e121843c", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "d9f46d752b016f506e7ad54fe58281ed", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复contrib/intarray中缓慢的排序算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}, "url": "/docs/compare/?release=9.1.16#9.1.16-84a59f93e121843c", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "f0dab024f4747558c6df4643a77769d7", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复contrib/intarray中缓慢的排序算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6eed0c0dcde4b752c6b4d46b14e70e645fe8e7d097220244f509ffc50509399f"}, "url": "/docs/compare/?release=9.0.20#9.0.20-84a59f93e121843c", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-26f630e691422e4b", "cves": [], "html": "<p>修复 Sparc V8 机器上的编译失败（Rob Rowan）</p>", "text": "修复 Sparc V8 机器上的编译失败（Rob Rowan）", "title": "修复 Sparc V8 机器上的编译失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "e001d55da46459c8309387a3cef5b4ea5a7a3980d8e6d0d5aa685379994a9977", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix compile failure on Sparc V8 machines (Rob Rowan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/045", "db_id": "fe5a58217a305e52ae92597bca54b5d1", "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8", "relations": [{"rule": 2, "type": "equivalent", "target": "37a0fe5b1907093e80b812d12473dd21", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}}, {"rule": 2, "type": "equivalent", "target": "6c4854aeb8bbf5df9944f49e02298861", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}}, {"rule": 2, "type": "equivalent", "target": "7c782e8ba80584ae96536cd90c57e2b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}}, {"rule": 2, "type": "equivalent", "target": "ac883f4f044813e2f88aa14897570ffc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}}], "version": "9.3.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7c782e8ba80584ae96536cd90c57e2b4", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "修复 Sparc V8 机器上的编译失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}, "url": "/docs/compare/?release=9.4.2#9.4.2-26f630e691422e4b", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "ac883f4f044813e2f88aa14897570ffc", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "修复 Sparc V8 机器上的编译失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}, "url": "/docs/compare/?release=9.2.11#9.2.11-26f630e691422e4b", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "6c4854aeb8bbf5df9944f49e02298861", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "修复 Sparc V8 机器上的编译失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}, "url": "/docs/compare/?release=9.1.16#9.1.16-26f630e691422e4b", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "37a0fe5b1907093e80b812d12473dd21", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "修复 Sparc V8 机器上的编译失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0da98d5b5415f8b3f624ec4f8ce60d22e1ed704973096ce59f21770c20605bc8"}, "url": "/docs/compare/?release=9.0.20#9.0.20-26f630e691422e4b", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}, {"id": "9.3.7-648bb629325527ae", "cves": [], "html": "<p>消除 macOS 上的一些构建警告（Tom Lane）</p>", "text": "消除 macOS 上的一些构建警告（Tom Lane）", "title": "消除 macOS 上的一些构建警告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "b8b94a30b6effebbd2fa533dfb46958e0487d3a9a21f9e94cf92d09d3d4ea604", "section_path": ["变更"], "commit_groups": [], "identity_text": "Silence some build warnings on macOS (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/046", "db_id": "60e100a6e0d1d76ac2087e1259f8e8c8", "patch_ids": [], "statement_hash": "8b7d0729cc50c8b10c8568daab772f2f685fd7051588eafe22c048c738dc746f", "relations": [{"rule": 2, "type": "equivalent", "target": "fad754e4bff3916de3fd2d1f7b2afd60", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b7d0729cc50c8b10c8568daab772f2f685fd7051588eafe22c048c738dc746f"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fad754e4bff3916de3fd2d1f7b2afd60", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "消除 macOS 上的一些构建警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b7d0729cc50c8b10c8568daab772f2f685fd7051588eafe22c048c738dc746f"}, "url": "/docs/compare/?release=9.4.2#9.4.2-648bb629325527ae", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}]}, {"id": "9.3.7-25ab2870eecab69e", "cves": [], "html": "<p>将时区数据文件更新到<span>tzdata</span>发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。</p>", "text": "将时区数据文件更新到tzdata发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "title": "将时区数据文件更新到tzdata发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.7/#id-1.11.6.23.5", "source_hash": "55c795f0e02da929e3c0676d41cae4d0ffe7a4ea59408185bc24688132cd342c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2015d for DST law changes in Egypt, Mongolia, and Palestine, plus historical changes in Canada and Chile. Also adopt revised zone abbreviations for the America/Adak zone (HST/HDT not HAST/HADT).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.7/changes/047", "db_id": "cdc52c1500bb531545df3ea10fabff01", "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29", "relations": [{"rule": 2, "type": "equivalent", "target": "3afcee3546435d442f498388deeeee2e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}}, {"rule": 2, "type": "equivalent", "target": "51a3e2c04f3d93fe1ea5593e70b08250", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}}, {"rule": 2, "type": "equivalent", "target": "7d888050235ee7d60909cf8a6b02ff1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}}, {"rule": 2, "type": "equivalent", "target": "998c30b7419eca8d2d44aadb815835ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}}], "version": "9.3.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7d888050235ee7d60909cf8a6b02ff1c", "kind": "equivalent", "version": "9.4.2", "label": "9.4.2", "title": "将时区数据文件更新到 tzdata 发行版 2015d，涵盖埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时为 America/Adak 时区采用修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}, "url": "/docs/compare/?release=9.4.2#9.4.2-55f2895bcfcf37a2", "source_url": "/docs/release/9.4.2/#id-1.11.6.29.5"}, {"db_id": "3afcee3546435d442f498388deeeee2e", "kind": "equivalent", "version": "9.2.11", "label": "9.2.11", "title": "将时区数据文件更新到tzdata发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}, "url": "/docs/compare/?release=9.2.11#9.2.11-25ab2870eecab69e", "source_url": "/docs/release/9.2.11/#id-1.11.6.18.5"}, {"db_id": "51a3e2c04f3d93fe1ea5593e70b08250", "kind": "equivalent", "version": "9.1.16", "label": "9.1.16", "title": "将时区数据文件更新到tzdata发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}, "url": "/docs/compare/?release=9.1.16#9.1.16-25ab2870eecab69e", "source_url": "/docs/release/9.1.16/#id-1.11.6.13.5"}, {"db_id": "998c30b7419eca8d2d44aadb815835ed", "kind": "equivalent", "version": "9.0.20", "label": "9.0.20", "title": "将时区数据文件更新到tzdata发行版 2015d，以反映埃及、蒙古和巴勒斯坦的夏令时法规变更，以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写（HST/HDT 而非 HAST/HADT）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36c53b9eaf81fc6f1b94a1473114ce519c2a5d5775e361d6daab8e899b89de29"}, "url": "/docs/compare/?release=9.0.20#9.0.20-25ab2870eecab69e", "source_url": "/docs/release/9.0.20/#id-1.11.6.8.6"}]}]}, {"date": "2015-02-05", "build": "9.3.6", "major": "9.3", "minor": 6, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.6", "eol_date": "2018-11-08", "date_text": "2015-02-05", "supported": false, "manual_url": "/docs/9.3/release-9-3-6.html", "source_url": "/docs/release/9.3.6/", "entry_count": 90, "placeholder": false, "content_hash": "3cc0c8db94d16e054f0b4a2d1001289fbf8922ce7a51bcbda96845fb832ea686", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 90, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>但是，如果你是 Windows 用户且使用<span>“<span>Norwegian (Bokmål)</span>”</span>区域，升级后需要手工将<span>PostgreSQL</span>系统目录中存储的任何 <span>“<span>Norwegian (Bokmål)_Norway</span>”</span> 区域名替换为纯 ASCII 别名<span>“<span>Norwegian_Norway</span>”</span>。详情参见<a href=\"http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale\">http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale</a></p>\n<p>不过，如果你是从早于 9.3.5 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-5.html\" title=\"E.21. 版本 9.3.5\">第 E.21 节</a>。</p>", "compatibility_count": 0, "label": "9.3.6", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4255, "support_days": -2883, "entries": [{"id": "9.3.6-5abdf545382b956d", "cves": ["CVE-2015-0241"], "html": "<p>修复<code>to_char()</code>中的缓冲区越界（Bruce Momjian）</p>\n<p>当<code>to_char()</code>处理要求数字位数很多的数字格式模板时，<span>PostgreSQL</span>会读取越过缓冲区末尾。当处理恶意构造的时间戳格式模板时，<span>PostgreSQL</span>会写入越过缓冲区末尾。两种情况都可能导致服务器崩溃。我们尚未排除导致权限提升攻击的可能性，尽管这种攻击似乎不太可能。（CVE-2015-0241）</p>", "text": "修复to_char()中的缓冲区越界（Bruce Momjian） 当to_char()处理要求数字位数很多的数字格式模板时，PostgreSQL会读取越过缓冲区末尾。当处理恶意构造的时间戳格式模板时，PostgreSQL会写入越过缓冲区末尾。两种情况都可能导致服务器崩溃。我们尚未排除导致权限提升攻击的可能性，尽管这种攻击似乎不太可能。（CVE-2015-0241）", "title": "修复to_char()中的缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "a157f7c661ad1795b8f502da571420c55546c4ef56ac40f33766f0c94b1ec064", "section_path": ["变更"], "commit_groups": [["0150ab567", "037529a11", "1628a0bbf", "5ae3bf1af", "611e110aa", "b8b580147"], ["2ceb63deb", "56b970f2e", "56d2bee9d", "9241c84cb", "e09651e9d", "fe2526990"]], "identity_text": "Fix buffer overruns in to_char() (Bruce Momjian) When to_char() processes a numeric formatting template calling for a large number of digits, PostgreSQL would read past the end of a buffer. When processing a crafted timestamp formatting template, PostgreSQL would write past the end of a buffer. Either case could crash the server. We have not ruled out the possibility of attacks that lead to privilege escalation, though they seem unlikely. (CVE-2015-0241)", "commit_aliases": ["0150ab567", "037529a11", "1628a0bbf", "2ceb63deb", "56b970f2e", "56d2bee9d", "5ae3bf1af", "611e110aa", "9241c84cb", "b8b580147", "e09651e9d", "fe2526990"], "source_commits": ["b8b580147", "fe2526990"], "source_entry_id": "9.3.6/changes/001", "db_id": "c631a08d16c113f5569d11ae86171cd7", "patch_ids": ["67c5e10ca1e46e70537e1a196bf6031d", "c5415403471cc7c37b6cef38e869d2b2"], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc", "relations": [{"rule": 2, "type": "equivalent", "target": "00433c31ad068919dad0d185b0e0830b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}}, {"rule": 2, "type": "equivalent", "target": "7fbcc218f6fcc168e6abdb0c1a7eada0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}}, {"rule": 2, "type": "equivalent", "target": "990e692bca9e900ed4c908bc797fc663", "evidence": {"same_day": true, "patch_ids": ["67c5e10ca1e46e70537e1a196bf6031d", "c5415403471cc7c37b6cef38e869d2b2"], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}}, {"rule": 2, "type": "equivalent", "target": "b9ffdfeacae629cd4f9feb83065e7139", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}}], "version": "9.3.6", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "990e692bca9e900ed4c908bc797fc663", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复to_char()中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": ["67c5e10ca1e46e70537e1a196bf6031d", "c5415403471cc7c37b6cef38e869d2b2"], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}, "url": "/docs/compare/?release=9.4.1#9.4.1-5abdf545382b956d", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "b9ffdfeacae629cd4f9feb83065e7139", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复to_char()中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}, "url": "/docs/compare/?release=9.2.10#9.2.10-5abdf545382b956d", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "7fbcc218f6fcc168e6abdb0c1a7eada0", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复to_char()中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}, "url": "/docs/compare/?release=9.1.15#9.1.15-5abdf545382b956d", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "00433c31ad068919dad0d185b0e0830b", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复to_char()中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b49ca898c6d415c3166eb73b67fa5eaf5f0fe783bf9f1382d2b0d585d9412bc"}, "url": "/docs/compare/?release=9.0.19#9.0.19-5abdf545382b956d", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-5682fb8f3ee1ede9", "cves": ["CVE-2015-0242"], "html": "<p>修复替换实现的<code>*printf()</code>函数中的缓冲区越界（Tom Lane）</p>\n<p><span>PostgreSQL</span>包含<code>printf</code>及相关函数的替换实现。当代码格式化浮点数（转换说明符<code>e</code>、<code>E</code>、<code>f</code>、<code>F</code>、<code>g</code>或<code>G</code>）且请求的精度超过约 500 时，会发生栈缓冲区越界。这会导致服务器崩溃，我们尚未排除导致权限提升攻击的可能性。数据库用户可以通过<code>to_char()</code>SQL 函数触发这种缓冲区越界。虽然这是唯一受影响的核心<span>PostgreSQL</span>功能，但使用 printf 族函数的扩展模块也可能存在风险。</p>\n<p>此问题主要影响 Windows 上的<span>PostgreSQL</span>。<span>PostgreSQL</span>在系统实现足够完善时会使用系统实现，而其他现代平台上正是如此。（CVE-2015-0242）</p>", "text": "修复替换实现的*printf()函数中的缓冲区越界（Tom Lane） PostgreSQL包含printf及相关函数的替换实现。当代码格式化浮点数（转换说明符e、E、f、F、g或G）且请求的精度超过约 500 时，会发生栈缓冲区越界。这会导致服务器崩溃，我们尚未排除导致权限提升攻击的可能性。数据库用户可以通过to_char()SQL 函数触发这种缓冲区越界。虽然这是唯一受影响的核心PostgreSQL功能，但使用 printf 族函数的扩展模块也可能存在风险。 此问题主要影响 Windows 上的PostgreSQL。PostgreSQL在系统实现足够完善时会使用系统实现，而其他现代平台上正是如此。（CVE-2015-0242）", "title": "修复替换实现的*printf()函数中的缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "5f47e489d7749693fe5aa1a29c694d7974a60dd1287f042f49b84c30616a8a3e", "section_path": ["变更"], "commit_groups": [["29725b3db", "2ac95c83c", "98f2479d8", "9e05c5063", "bc4d5f2e5", "c6c6aa288"]], "identity_text": "Fix buffer overrun in replacement *printf() functions (Tom Lane) PostgreSQL includes a replacement implementation of printf and related functions. This code will overrun a stack buffer when formatting a floating point number (conversion specifiers e, E, f, F, g or G) with requested precision greater than about 500. This will crash the server, and we have not ruled out the possibility of attacks that lead to privilege escalation. A database user can trigger such a buffer overrun through the to_char() SQL function. While that is the only affected core PostgreSQL functionality, extension modules that use printf-family functions may be at risk as well. This issue primarily affects PostgreSQL on Windows. PostgreSQL uses the system implementation of these functions where adequate, which it is on other modern platforms. (CVE-2015-0242)", "commit_aliases": ["29725b3db", "2ac95c83c", "98f2479d8", "9e05c5063", "bc4d5f2e5", "c6c6aa288"], "source_commits": ["bc4d5f2e5"], "source_entry_id": "9.3.6/changes/002", "db_id": "d75d745b8f5d780f4c0162a00c5eaabd", "patch_ids": ["c221a358d134358905c06b24e9af8e5e"], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd", "relations": [{"rule": 2, "type": "equivalent", "target": "20377b1aff86d05b63b56759b510d2ee", "evidence": {"same_day": true, "patch_ids": ["c221a358d134358905c06b24e9af8e5e"], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}}, {"rule": 2, "type": "equivalent", "target": "258b89db478fc51a49887ec39072dadd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}}, {"rule": 2, "type": "equivalent", "target": "b0c008a254ec058d02a2618bd567cf4c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}}, {"rule": 2, "type": "equivalent", "target": "e8f6fe7647398f6730a6866289021746", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}}], "version": "9.3.6", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "20377b1aff86d05b63b56759b510d2ee", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复替换实现的*printf()函数中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": ["c221a358d134358905c06b24e9af8e5e"], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}, "url": "/docs/compare/?release=9.4.1#9.4.1-5682fb8f3ee1ede9", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "258b89db478fc51a49887ec39072dadd", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复替换实现的*printf()函数中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}, "url": "/docs/compare/?release=9.2.10#9.2.10-5682fb8f3ee1ede9", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "e8f6fe7647398f6730a6866289021746", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复替换实现的*printf()函数中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}, "url": "/docs/compare/?release=9.1.15#9.1.15-5682fb8f3ee1ede9", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "b0c008a254ec058d02a2618bd567cf4c", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复替换实现的*printf()函数中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6facd7936457ceefa6a83c5c66eca1a3f1ad14d6f02936eb2b530f3aa0f72fdd"}, "url": "/docs/compare/?release=9.0.19#9.0.19-5682fb8f3ee1ede9", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-ba8a921637c059ee", "cves": ["CVE-2015-0243"], "html": "<p>修复<code>contrib/pgcrypto</code>中的缓冲区越界（Marko Tiikkaja、Noah Misch）</p>\n<p><code>pgcrypto</code>模块中内存大小跟踪的错误导致了栈缓冲区越界和对未初始化内存内容的不当依赖。缓冲区越界情况可能导致服务器崩溃，我们尚未排除导致权限提升攻击的可能性。（CVE-2015-0243）</p>", "text": "修复contrib/pgcrypto中的缓冲区越界（Marko Tiikkaja、Noah Misch） pgcrypto模块中内存大小跟踪的错误导致了栈缓冲区越界和对未初始化内存内容的不当依赖。缓冲区越界情况可能导致服务器崩溃，我们尚未排除导致权限提升攻击的可能性。（CVE-2015-0243）", "title": "修复contrib/pgcrypto中的缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "86edd1b7baf7d6ad7e9d4a8aa8a78d09fa3b30d46d8468ac4d8ba0e4557aac63", "section_path": ["变更"], "commit_groups": [["0a3ee8a5f", "258e294db", "8b59672d8", "8d412e02e", "a558ad3a7", "d1972da8c"], ["11f738a8a", "1dc755158", "6994f0790", "82806cf4e", "ce6f261cd", "d95ebe0ac"]], "identity_text": "Fix buffer overruns in contrib/pgcrypto (Marko Tiikkaja, Noah Misch) Errors in memory size tracking within the pgcrypto module permitted stack buffer overruns and improper dependence on the contents of uninitialized memory. The buffer overrun cases can crash the server, and we have not ruled out the possibility of attacks that lead to privilege escalation. (CVE-2015-0243)", "commit_aliases": ["0a3ee8a5f", "11f738a8a", "1dc755158", "258e294db", "6994f0790", "82806cf4e", "8b59672d8", "8d412e02e", "a558ad3a7", "ce6f261cd", "d1972da8c", "d95ebe0ac"], "source_commits": ["6994f0790", "a558ad3a7"], "source_entry_id": "9.3.6/changes/003", "db_id": "6a3ee8f85359a8b979be3eb7a4ca87d6", "patch_ids": ["92d27031b9a5fd06aa30421558b20208", "ca4aadac13ce7ba06d5b76c994420951"], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a", "relations": [{"rule": 2, "type": "equivalent", "target": "33a5647981837b909c2bb075f8f38a0b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}}, {"rule": 2, "type": "equivalent", "target": "3ed48b6f2719f35041f836ac6e215fb0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}}, {"rule": 2, "type": "equivalent", "target": "b63889e55d5fcf7ed29673a3f75e4ffb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}}, {"rule": 2, "type": "equivalent", "target": "f5f49269e786e76501353fb6c32e22bb", "evidence": {"same_day": true, "patch_ids": ["92d27031b9a5fd06aa30421558b20208", "ca4aadac13ce7ba06d5b76c994420951"], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}}], "version": "9.3.6", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "f5f49269e786e76501353fb6c32e22bb", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复contrib/pgcrypto中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": ["92d27031b9a5fd06aa30421558b20208", "ca4aadac13ce7ba06d5b76c994420951"], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}, "url": "/docs/compare/?release=9.4.1#9.4.1-ba8a921637c059ee", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "33a5647981837b909c2bb075f8f38a0b", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复contrib/pgcrypto中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}, "url": "/docs/compare/?release=9.2.10#9.2.10-ba8a921637c059ee", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "b63889e55d5fcf7ed29673a3f75e4ffb", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复contrib/pgcrypto中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}, "url": "/docs/compare/?release=9.1.15#9.1.15-ba8a921637c059ee", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "3ed48b6f2719f35041f836ac6e215fb0", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复contrib/pgcrypto中的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd8a10aa11b9ca6eafb69e0e4b9559deb38d5d2794efb5dedec97ae522d4da7a"}, "url": "/docs/compare/?release=9.0.19#9.0.19-ba8a921637c059ee", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-5c8ec36fd01bef35", "cves": ["CVE-2015-0244"], "html": "<p>修复出错后前端/后端协议可能失去同步的问题（Heikki Linnakangas）</p>\n<p>如果服务器在从客户端读取协议消息中途发生任何错误，它可能失去同步，错误地把消息数据的一部分解释为新的协议消息。能够在命令参数中提交恶意构造二进制数据的攻击者可能借此注入自己的 SQL 命令。语句超时和查询取消是触发此场景最可能的错误来源。尤其容易受影响的是既使用超时又将任意用户构造数据作为二进制查询参数提交的应用程序。禁用语句超时会降低但不能消除被利用的风险。感谢 Emil Lenngren 报告此问题。（CVE-2015-0244）</p>", "text": "修复出错后前端/后端协议可能失去同步的问题（Heikki Linnakangas） 如果服务器在从客户端读取协议消息中途发生任何错误，它可能失去同步，错误地把消息数据的一部分解释为新的协议消息。能够在命令参数中提交恶意构造二进制数据的攻击者可能借此注入自己的 SQL 命令。语句超时和查询取消是触发此场景最可能的错误来源。尤其容易受影响的是既使用超时又将任意用户构造数据作为二进制查询参数提交的应用程序。禁用语句超时会降低但不能消除被利用的风险。感谢 Emil Lenngren 报告此问题。（CVE-2015-0244）", "title": "修复出错后前端/后端协议可能失去同步的问题", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "b6ba8159ac979144f6bc22585121f572db487e2f39a79a3d7069c31aaf961002", "section_path": ["变更"], "commit_groups": [["289592b23", "2b3a8b20c", "47ba0fbd7", "57ec87c6b", "af9c5c074", "cd19848bd"]], "identity_text": "Fix possible loss of frontend/backend protocol synchronization after an error (Heikki Linnakangas) If any error occurred while the server was in the middle of reading a protocol message from the client, it could lose synchronization and incorrectly try to interpret part of the message's data as a new protocol message. An attacker able to submit crafted binary data within a command parameter might succeed in injecting his own SQL commands this way. Statement timeout and query cancellation are the most likely sources of errors triggering this scenario. Particularly vulnerable are applications that use a timeout and also submit arbitrary user-crafted data as binary query parameters. Disabling statement timeout will reduce, but not eliminate, the risk of exploit. Our thanks to Emil Lenngren for reporting this issue. (CVE-2015-0244)", "commit_aliases": ["289592b23", "2b3a8b20c", "47ba0fbd7", "57ec87c6b", "af9c5c074", "cd19848bd"], "source_commits": ["cd19848bd"], "source_entry_id": "9.3.6/changes/004", "db_id": "f341e3494142a5b46900f555e822f4b3", "patch_ids": ["54805dff1be23f2867fabd8fcd864b6f"], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0", "relations": [{"rule": 2, "type": "equivalent", "target": "1c2e17a917530e1056e37a0fd57770c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}}, {"rule": 2, "type": "equivalent", "target": "52fd0db7fb421f3b0015c80774055b74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}}, {"rule": 2, "type": "equivalent", "target": "58ef80e95adca1b234c4943ae030d777", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}}, {"rule": 2, "type": "equivalent", "target": "c30f7e4786dc10d32b60a9b2623b0f1b", "evidence": {"same_day": true, "patch_ids": ["54805dff1be23f2867fabd8fcd864b6f"], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}}], "version": "9.3.6", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "c30f7e4786dc10d32b60a9b2623b0f1b", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复出错后前端/后端协议可能失去同步的问题", "evidence": {"same_day": true, "patch_ids": ["54805dff1be23f2867fabd8fcd864b6f"], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}, "url": "/docs/compare/?release=9.4.1#9.4.1-5c8ec36fd01bef35", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "52fd0db7fb421f3b0015c80774055b74", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复出错后前端/后端协议可能失去同步的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}, "url": "/docs/compare/?release=9.2.10#9.2.10-5c8ec36fd01bef35", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "58ef80e95adca1b234c4943ae030d777", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复出错后前端/后端协议可能失去同步的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}, "url": "/docs/compare/?release=9.1.15#9.1.15-5c8ec36fd01bef35", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "1c2e17a917530e1056e37a0fd57770c8", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复出错后前端/后端协议可能失去同步的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ad257f35f4224a927c2505d1745f6abd99f358e996b644e00ab7263992a1c0"}, "url": "/docs/compare/?release=9.0.19#9.0.19-5c8ec36fd01bef35", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-d6dd48b9aef647b0", "cves": ["CVE-2014-8161"], "html": "<p>修复通过约束违反错误消息的信息泄露（Stephen Frost）</p>\n<p>某些服务器错误消息会显示违反约束（如唯一约束）的列的值。如果用户对该表的所有列没有<code>SELECT</code>权限，这可能意味着暴露用户不应看到的值。我们调整了代码，使值仅在来自 SQL 命令本身或用户可以查询到时才显示。（CVE-2014-8161）</p>", "text": "修复通过约束违反错误消息的信息泄露（Stephen Frost） 某些服务器错误消息会显示违反约束（如唯一约束）的列的值。如果用户对该表的所有列没有SELECT权限，这可能意味着暴露用户不应看到的值。我们调整了代码，使值仅在来自 SQL 命令本身或用户可以查询到时才显示。（CVE-2014-8161）", "title": "修复通过约束违反错误消息的信息泄露", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "32f79c1afb24b91afe4cb279d629760313d220027dfc3787501c33dd579b449e", "section_path": ["变更"], "commit_groups": [["3a2063369", "3cc74a3d6", "4b9874216", "804b6b6db", "9406884af", "d49f84b08"]], "identity_text": "Fix information leak via constraint-violation error messages (Stephen Frost) Some server error messages show the values of columns that violate a constraint, such as a unique constraint. If the user does not have SELECT privilege on all columns of the table, this could mean exposing values that the user should not be able to see. Adjust the code so that values are displayed only when they came from the SQL command or could be selected by the user. (CVE-2014-8161)", "commit_aliases": ["3a2063369", "3cc74a3d6", "4b9874216", "804b6b6db", "9406884af", "d49f84b08"], "source_commits": ["4b9874216"], "source_entry_id": "9.3.6/changes/005", "db_id": "707992cea29a842212624b2871eda46f", "patch_ids": ["db4ccd8340162a53fee0ae6e4356a7ad"], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c", "relations": [{"rule": 2, "type": "equivalent", "target": "258c224c072d8571536846c0f589715b", "evidence": {"same_day": true, "patch_ids": ["db4ccd8340162a53fee0ae6e4356a7ad"], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}}, {"rule": 2, "type": "equivalent", "target": "2ba0e0820371c50e724133f60a0846df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}}, {"rule": 2, "type": "equivalent", "target": "b5b170039eff8c708d777a87cc56f4ee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}}, {"rule": 2, "type": "equivalent", "target": "cb23b2e67a0393165767d5061c7ff291", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}}], "version": "9.3.6", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "258c224c072d8571536846c0f589715b", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复通过约束违反错误消息的信息泄露", "evidence": {"same_day": true, "patch_ids": ["db4ccd8340162a53fee0ae6e4356a7ad"], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}, "url": "/docs/compare/?release=9.4.1#9.4.1-d6dd48b9aef647b0", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "cb23b2e67a0393165767d5061c7ff291", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复通过约束违反错误消息的信息泄露", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}, "url": "/docs/compare/?release=9.2.10#9.2.10-d6dd48b9aef647b0", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "b5b170039eff8c708d777a87cc56f4ee", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复通过约束违反错误消息的信息泄露", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}, "url": "/docs/compare/?release=9.1.15#9.1.15-d6dd48b9aef647b0", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "2ba0e0820371c50e724133f60a0846df", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复通过约束违反错误消息的信息泄露", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2b73b11818dd3a1fff35706b46ac7cadcadcaa414dd330a192424304534f7c"}, "url": "/docs/compare/?release=9.0.19#9.0.19-d6dd48b9aef647b0", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-f18a20a2bec524ef", "cves": ["CVE-2014-0067"], "html": "<p>锁定 Windows 上回归测试的临时安装（Noah Misch）</p>\n<p>使用 SSPI 认证，只允许启动测试套件的操作系统用户连接。这在 Windows 上关闭了此前已在其他平台上关闭的同一漏洞，即其他用户可能连接到测试 postmaster。（CVE-2014-0067）</p>", "text": "锁定 Windows 上回归测试的临时安装（Noah Misch） 使用 SSPI 认证，只允许启动测试套件的操作系统用户连接。这在 Windows 上关闭了此前已在其他平台上关闭的同一漏洞，即其他用户可能连接到测试 postmaster。（CVE-2014-0067）", "title": "锁定 Windows 上回归测试的临时安装", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "b9e8d9bca46e10d5d0eba76f0382cf1347dcb30daad63a5f9e1ba659b291cea0", "section_path": ["变更"], "commit_groups": [["0046f651d", "442dc2c35", "6aa98e957", "6b87d423d", "6d45ee572", "f6dc6dd5b"]], "identity_text": "Lock down regression testing's temporary installations on Windows (Noah Misch) Use SSPI authentication to allow connections only from the OS user who launched the test suite. This closes on Windows the same vulnerability previously closed on other platforms, namely that other users might be able to connect to the test postmaster. (CVE-2014-0067)", "commit_aliases": ["0046f651d", "442dc2c35", "6aa98e957", "6b87d423d", "6d45ee572", "f6dc6dd5b"], "source_commits": ["442dc2c35"], "source_entry_id": "9.3.6/changes/006", "db_id": "d1316adb0f1a83d10b6bceddd551ca7d", "patch_ids": ["91810f7f65814f11f573d6b3d6d77227"], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d", "relations": [{"rule": 2, "type": "equivalent", "target": "779b293b81f06e9a89366b402c92716f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}}, {"rule": 2, "type": "equivalent", "target": "c55d12255d904c843b58f7491c8c32f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}}, {"rule": 2, "type": "equivalent", "target": "c9e6817fa33417170bff26fa71630be0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}}, {"rule": 2, "type": "equivalent", "target": "e40096ec33c08b11ceda62b0eeaed41b", "evidence": {"same_day": true, "patch_ids": ["91810f7f65814f11f573d6b3d6d77227"], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}}], "version": "9.3.6", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "e40096ec33c08b11ceda62b0eeaed41b", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "锁定 Windows 上回归测试的临时安装", "evidence": {"same_day": true, "patch_ids": ["91810f7f65814f11f573d6b3d6d77227"], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}, "url": "/docs/compare/?release=9.4.1#9.4.1-f18a20a2bec524ef", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "779b293b81f06e9a89366b402c92716f", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "锁定 Windows 上回归测试的临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}, "url": "/docs/compare/?release=9.2.10#9.2.10-f18a20a2bec524ef", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "c9e6817fa33417170bff26fa71630be0", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "锁定 Windows 上回归测试的临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}, "url": "/docs/compare/?release=9.1.15#9.1.15-f18a20a2bec524ef", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "c55d12255d904c843b58f7491c8c32f0", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "锁定 Windows 上回归测试的临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a634794025e560be39918325339ff67cd524350a326f395531d18ad3ef17869d"}, "url": "/docs/compare/?release=9.0.19#9.0.19-f18a20a2bec524ef", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-b30a144447e3dc30", "cves": [], "html": "<p>处理名为<span>“<span>Norwegian (Bokmål)</span>”</span>的 Windows 区域（Heikki Linnakangas）</p>\n<p>非 ASCII 区域名是有问题的，因为不清楚应该用什么编码表示它们。将这个麻烦的区域名映射为纯 ASCII 别名<span>“<span>Norwegian_Norway</span>”</span>。</p>", "text": "处理名为“Norwegian (Bokmål)”的 Windows 区域（Heikki Linnakangas） 非 ASCII 区域名是有问题的，因为不清楚应该用什么编码表示它们。将这个麻烦的区域名映射为纯 ASCII 别名“Norwegian_Norway”。", "title": "处理名为“Norwegian (Bokmål)”的 Windows 区域", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "d81ad8d06fd212b9b3b3569607cd2ec7c3336d44ac3775be52bae467a0a2b776", "section_path": ["变更"], "commit_groups": [["1619442a1", "2049a7d82", "6bf343c6e", "aa1d2fc5e"], ["2a1b34959", "737ae3fc7"], ["8f80dcf3c", "d440c4b55"]], "identity_text": "Cope with the Windows locale named Norwegian (Bokmål) (Heikki Linnakangas) Non-ASCII locale names are problematic since it's not clear what encoding they should be represented in. Map the troublesome locale name to a plain-ASCII alias, Norwegian_Norway.", "commit_aliases": ["1619442a1", "2049a7d82", "2a1b34959", "6bf343c6e", "737ae3fc7", "8f80dcf3c", "aa1d2fc5e", "d440c4b55"], "source_commits": ["1619442a1", "2a1b34959", "8f80dcf3c"], "source_entry_id": "9.3.6/changes/007", "db_id": "3d09100a497b27ee2c4ee12c45dfb973", "patch_ids": ["2eaa5486be16c3f9353f385f397f8a77", "5a46bae12f3db15b90989e5e7c26d828", "abd8dc4c942f9b19083ca0145e2e0e58"], "statement_hash": "995acba5e36194565137c162849efef8c36fbc7baf0e82c4ab497a170f28dcc5", "relations": [{"rule": 2, "type": "equivalent", "target": "2a8276c76cab9a2063c174e8fe3c3d5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "995acba5e36194565137c162849efef8c36fbc7baf0e82c4ab497a170f28dcc5"}}, {"rule": 2, "type": "equivalent", "target": "dab55905cfec1ad1206d743256cb7e87", "evidence": {"same_day": true, "patch_ids": ["2eaa5486be16c3f9353f385f397f8a77", "5a46bae12f3db15b90989e5e7c26d828", "abd8dc4c942f9b19083ca0145e2e0e58"]}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dab55905cfec1ad1206d743256cb7e87", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "处理名为“Norwegian (Bokmål)”的 Windows 区域", "evidence": {"same_day": true, "patch_ids": ["2eaa5486be16c3f9353f385f397f8a77", "5a46bae12f3db15b90989e5e7c26d828", "abd8dc4c942f9b19083ca0145e2e0e58"]}, "url": "/docs/compare/?release=9.4.1#9.4.1-b30a144447e3dc30", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "2a8276c76cab9a2063c174e8fe3c3d5a", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "处理名为“Norwegian (Bokmål)”的 Windows 区域", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "995acba5e36194565137c162849efef8c36fbc7baf0e82c4ab497a170f28dcc5"}, "url": "/docs/compare/?release=9.2.10#9.2.10-b30a144447e3dc30", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}]}, {"id": "9.3.6-582ea016fa9f4158", "cves": [], "html": "<p>避免在使用 <code>ALTER DATABASE SET TABLESPACE</code> 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏（Tom Lane）</p>", "text": "避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏（Tom Lane）", "title": "避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "70fd72b4ea72ba4029d67c8f13d3080081900c59f6ad4e2cc8a6548c6ba47dcc", "section_path": ["变更"], "commit_groups": [["45a607d5c", "7c6f55e9e", "db72ad02e", "f88300168"]], "identity_text": "Avoid possible data corruption if ALTER DATABASE SET TABLESPACE is used to move a database to a new tablespace and then shortly later move it back to its original tablespace (Tom Lane)", "commit_aliases": ["45a607d5c", "7c6f55e9e", "db72ad02e", "f88300168"], "source_commits": ["f88300168"], "source_entry_id": "9.3.6/changes/008", "db_id": "7278db76e96b7e107724639fc17e62da", "patch_ids": ["ec9773631c28bac4aad03373c5e1a2f6"], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea", "relations": [{"rule": 2, "type": "equivalent", "target": "34a819efecd6cbded98343eed96ecd44", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}}, {"rule": 2, "type": "equivalent", "target": "413d24efd179754607333c77f109c91c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}}, {"rule": 2, "type": "equivalent", "target": "45486756689bc9c137b3abbd2a8866d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "45486756689bc9c137b3abbd2a8866d4", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}, "url": "/docs/compare/?release=9.2.10#9.2.10-582ea016fa9f4158", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "34a819efecd6cbded98343eed96ecd44", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}, "url": "/docs/compare/?release=9.1.15#9.1.15-582ea016fa9f4158", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "413d24efd179754607333c77f109c91c", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdbacc0c7248772ecfddc674160c2748a9f5ee110d9ce2119b4e78bfa7c2bfea"}, "url": "/docs/compare/?release=9.0.19#9.0.19-582ea016fa9f4158", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-421e116b5aef5c99", "cves": [], "html": "<p>避免当事务内的 <code>ANALYZE</code> 被回滚时损坏表（Andres Freund、Tom Lane、Michael Paquier）</p>\n<p>如果失败的事务此前删除了表上的最后一个索引、规则或触发器，该表会处于损坏状态：相关的 <code>pg_class</code> 标志本应设置却未被设置。</p>", "text": "避免当事务内的 ANALYZE 被回滚时损坏表（Andres Freund、Tom Lane、Michael Paquier） 如果失败的事务此前删除了表上的最后一个索引、规则或触发器，该表会处于损坏状态：相关的 pg_class 标志本应设置却未被设置。", "title": "避免当事务内的 ANALYZE 被回滚时损坏表", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "9fea2c6377c3768797cd70e9f60c884679a8e254b6345821ba5fc33d5d503490", "section_path": ["变更"], "commit_groups": [["38cb8687a", "73f950fc8", "e65b550b3", "fcf0246b2"], ["40058fbce", "6ec1c3ef8", "81f0a5e38", "9d06da58e"]], "identity_text": "Avoid corrupting tables when ANALYZE inside a transaction is rolled back (Andres Freund, Tom Lane, Michael Paquier) If the failing transaction had earlier removed the last index, rule, or trigger from the table, the table would be left in a corrupted state with the relevant pg_class flags not set though they should be.", "commit_aliases": ["38cb8687a", "40058fbce", "6ec1c3ef8", "73f950fc8", "81f0a5e38", "9d06da58e", "e65b550b3", "fcf0246b2"], "source_commits": ["81f0a5e38", "e65b550b3"], "source_entry_id": "9.3.6/changes/009", "db_id": "8caf71bc52ba8ad5f05273584f0dddd5", "patch_ids": ["46771db7a4b8f1cf9e523fbef2e1e1c4", "af72d15bc7b01234dac80ea52febba7e"], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e", "relations": [{"rule": 2, "type": "equivalent", "target": "23b53ecd652d84dd2dd413294fd6521d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}}, {"rule": 2, "type": "equivalent", "target": "9a9d0dcf2f63e759f5380b51fd62a4ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}}, {"rule": 2, "type": "equivalent", "target": "e8e57e07476a94a6d6d8d7584f04f055", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9a9d0dcf2f63e759f5380b51fd62a4ca", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "避免当事务内的 ANALYZE 被回滚时损坏表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}, "url": "/docs/compare/?release=9.2.10#9.2.10-421e116b5aef5c99", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "23b53ecd652d84dd2dd413294fd6521d", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "避免当事务内的 ANALYZE 被回滚时损坏表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}, "url": "/docs/compare/?release=9.1.15#9.1.15-421e116b5aef5c99", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "e8e57e07476a94a6d6d8d7584f04f055", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "避免当事务内的 ANALYZE 被回滚时损坏表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "316139d0974234907cd01c27df24264c574ded69c2b48264a6b98e2ddd03575e"}, "url": "/docs/compare/?release=9.0.19#9.0.19-421e116b5aef5c99", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-a081faedbba32dd8", "cves": [], "html": "<p>确保在 <code>CREATE DATABASE</code> 或 <code>ALTER DATABASE SET TABLESPACE</code> 期间正确复制不记录日志的表（Pavan Deolasee、Andres Freund）</p>", "text": "确保在 CREATE DATABASE 或 ALTER DATABASE SET TABLESPACE 期间正确复制不记录日志的表（Pavan Deolasee、Andres Freund）", "title": "确保在 CREATE DATABASE 或 ALTER DATABASE SET TABLESPACE 期间正确复制不记录日志的表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "06bce4418dde73ea1cf562383261324343226e0e860b5cfeee215152cc052d85", "section_path": ["变更"], "commit_groups": [["d5fef87e9", "d7624e562", "fd29810d1"]], "identity_text": "Ensure that unlogged tables are copied correctly during CREATE DATABASE or ALTER DATABASE SET TABLESPACE (Pavan Deolasee, Andres Freund)", "commit_aliases": ["d5fef87e9", "d7624e562", "fd29810d1"], "source_commits": ["d7624e562"], "source_entry_id": "9.3.6/changes/010", "db_id": "7920aa42c426337455a425f3a1380d61", "patch_ids": ["99a341f1a67d364bd253c8dcb629f321"], "statement_hash": "1765d291e11bf9b9242104dfe85a372abcbf1e5e8b3534708eaf02f64e356ebf", "relations": [{"rule": 2, "type": "equivalent", "target": "43d598433928f4bdb36c22af6ef3fd4b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1765d291e11bf9b9242104dfe85a372abcbf1e5e8b3534708eaf02f64e356ebf"}}, {"rule": 2, "type": "equivalent", "target": "bfc54c05d73c99f569d6a48ede51b9e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1765d291e11bf9b9242104dfe85a372abcbf1e5e8b3534708eaf02f64e356ebf"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bfc54c05d73c99f569d6a48ede51b9e1", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "确保在 CREATE DATABASE 或 ALTER DATABASE SET TABLESPACE 期间正确复制不记录日志的表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1765d291e11bf9b9242104dfe85a372abcbf1e5e8b3534708eaf02f64e356ebf"}, "url": "/docs/compare/?release=9.2.10#9.2.10-a081faedbba32dd8", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "43d598433928f4bdb36c22af6ef3fd4b", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "确保在 CREATE DATABASE 或 ALTER DATABASE SET TABLESPACE 期间正确复制不记录日志的表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1765d291e11bf9b9242104dfe85a372abcbf1e5e8b3534708eaf02f64e356ebf"}, "url": "/docs/compare/?release=9.1.15#9.1.15-a081faedbba32dd8", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.3.6-29355d5fdcdd25f2", "cves": [], "html": "<p>修复对 <code>CreateEventTrigStmt</code>.<code>eventname</code> 的错误处理（Petr Jelinek）</p>\n<p>如果 <code>CREATE EVENT TRIGGER</code> 作为预备查询执行，或通过扩展查询协议执行，这可能导致错误行为。</p>", "text": "修复对 CreateEventTrigStmt.eventname 的错误处理（Petr Jelinek） 如果 CREATE EVENT TRIGGER 作为预备查询执行，或通过扩展查询协议执行，这可能导致错误行为。", "title": "修复对 CreateEventTrigStmt.eventname 的错误处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "6fda39631e585f1bf594077f8326542c8b0ecdf55272eec2e892b9b3541aad4d", "section_path": ["变更"], "commit_groups": [["e35db342a"]], "identity_text": "Fix incorrect processing of CreateEventTrigStmt.eventname (Petr Jelinek) This could result in misbehavior if CREATE EVENT TRIGGER were executed as a prepared query, or via extended query protocol.", "commit_aliases": ["e35db342a"], "source_commits": ["e35db342a"], "source_entry_id": "9.3.6/changes/011", "db_id": "7f95d0c88fd8299218a0149b7a8af4c7", "patch_ids": ["cfe8cdf0a438b4b7de431c742ff2d74b"], "statement_hash": "1c5a3c92427599a818fa8400a3ae79e354ccfd26f45fca2ef173865be3171e8d", "relations": [], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-c6ef98f2f9d4787c", "cves": [], "html": "<p>修复 <code>DROP</code> 的依赖搜索，使其正确处理表的列在其所属表之前被递归访问的情况（Petr Jelinek、Tom Lane）</p>\n<p>目前已知这种情况只在扩展同时创建一种数据类型和使用该数据类型的表时出现。有问题的代码可能会拒绝 <code>DROP EXTENSION</code>，除非指定 <code>CASCADE</code>，而这本不应该是必需的。</p>", "text": "修复 DROP 的依赖搜索，使其正确处理表的列在其所属表之前被递归访问的情况（Petr Jelinek、Tom Lane） 目前已知这种情况只在扩展同时创建一种数据类型和使用该数据类型的表时出现。有问题的代码可能会拒绝 DROP EXTENSION，除非指定 CASCADE，而这本不应该是必需的。", "title": "修复 DROP 的依赖搜索，使其正确处理表的列在其所属表之前被递归访问的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "db2a590b27063749efb1f4c80b161c4a1503041992c100bf67af1563d7adf544", "section_path": ["变更"], "commit_groups": [["1c2f9a4f6", "2a83e0349", "94d5d57d5"]], "identity_text": "Fix DROP's dependency searching to correctly handle the case where a table column is recursively visited before its table (Petr Jelinek, Tom Lane) This case is only known to arise when an extension creates both a datatype and a table using that datatype. The faulty code might refuse a DROP EXTENSION unless CASCADE is specified, which should not be required.", "commit_aliases": ["1c2f9a4f6", "2a83e0349", "94d5d57d5"], "source_commits": ["2a83e0349"], "source_entry_id": "9.3.6/changes/012", "db_id": "c8dd553fbb303c1aba44f4e7eb876826", "patch_ids": ["7ef62f2b6d9634972fece6f527c1bc47"], "statement_hash": "c6d6640c8f1ec0ca181f63c6cc48501c04afcfc27087522bfcae8634243e3900", "relations": [{"rule": 2, "type": "equivalent", "target": "8893c22d1c28aeb5aa71ff5a98b0fc93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6d6640c8f1ec0ca181f63c6cc48501c04afcfc27087522bfcae8634243e3900"}}, {"rule": 2, "type": "equivalent", "target": "d73f6423d6a396667a57ae5e63a97aff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6d6640c8f1ec0ca181f63c6cc48501c04afcfc27087522bfcae8634243e3900"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8893c22d1c28aeb5aa71ff5a98b0fc93", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 DROP 的依赖搜索，使其正确处理表的列在其所属表之前被递归访问的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6d6640c8f1ec0ca181f63c6cc48501c04afcfc27087522bfcae8634243e3900"}, "url": "/docs/compare/?release=9.2.10#9.2.10-c6ef98f2f9d4787c", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "d73f6423d6a396667a57ae5e63a97aff", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 DROP 的依赖搜索，使其正确处理表的列在其所属表之前被递归访问的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6d6640c8f1ec0ca181f63c6cc48501c04afcfc27087522bfcae8634243e3900"}, "url": "/docs/compare/?release=9.1.15#9.1.15-c6ef98f2f9d4787c", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.3.6-c8abbaf7927fce95", "cves": [], "html": "<p>修复 EvalPlanQual 处理中使用已释放内存的问题（Tom Lane）</p>\n<p>在<code>READ COMMITTED</code>模式下，锁定或更新最近更新过的行的查询可能因此缺陷崩溃。</p>", "text": "修复 EvalPlanQual 处理中使用已释放内存的问题（Tom Lane） 在READ COMMITTED模式下，锁定或更新最近更新过的行的查询可能因此缺陷崩溃。", "title": "修复 EvalPlanQual 处理中使用已释放内存的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "36d067ad9cfb32b16eadf51fcf4be023de02358ae07224d1d7cc7509035c6f18", "section_path": ["变更"], "commit_groups": [["0acb32efb", "34668c8ec", "450530fce", "5308e085b", "b75d18bd4", "c480cb9d2"]], "identity_text": "Fix use-of-already-freed-memory problem in EvalPlanQual processing (Tom Lane) In READ COMMITTED mode, queries that lock or update recently-updated rows could crash as a result of this bug.", "commit_aliases": ["0acb32efb", "34668c8ec", "450530fce", "5308e085b", "b75d18bd4", "c480cb9d2"], "source_commits": ["34668c8ec"], "source_entry_id": "9.3.6/changes/013", "db_id": "086c756fd0e9397971b54d7a28c49444", "patch_ids": ["7760ee10e3ad6d602bbef70a44b85398"], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910", "relations": [{"rule": 2, "type": "equivalent", "target": "0f099841cca4b33405c3ddc8f4fead00", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}}, {"rule": 2, "type": "equivalent", "target": "518b6f89d70c4bd72f57e27b1c90c8aa", "evidence": {"same_day": true, "patch_ids": ["7760ee10e3ad6d602bbef70a44b85398"], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}}, {"rule": 2, "type": "equivalent", "target": "897dbd23f31c45b407d751eaf85051d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}}, {"rule": 2, "type": "equivalent", "target": "c232791f560eab5b20a7fd1cced3be9c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "518b6f89d70c4bd72f57e27b1c90c8aa", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复 EvalPlanQual 处理中使用已释放内存的问题", "evidence": {"same_day": true, "patch_ids": ["7760ee10e3ad6d602bbef70a44b85398"], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}, "url": "/docs/compare/?release=9.4.1#9.4.1-c8abbaf7927fce95", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "c232791f560eab5b20a7fd1cced3be9c", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 EvalPlanQual 处理中使用已释放内存的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}, "url": "/docs/compare/?release=9.2.10#9.2.10-c8abbaf7927fce95", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "897dbd23f31c45b407d751eaf85051d7", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 EvalPlanQual 处理中使用已释放内存的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}, "url": "/docs/compare/?release=9.1.15#9.1.15-c8abbaf7927fce95", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "0f099841cca4b33405c3ddc8f4fead00", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 EvalPlanQual 处理中使用已释放内存的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26c0a7d85f5805b580b6a294fb05aed11b824299101debe409c4d1842cd97910"}, "url": "/docs/compare/?release=9.0.19#9.0.19-c8abbaf7927fce95", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-a8d981817f45b986", "cves": [], "html": "<p>避免 EvalPlanQual 处理中尝试获取元组锁时可能出现的死锁（Álvaro Herrera, Mark Kirkwood）</p>", "text": "避免 EvalPlanQual 处理中尝试获取元组锁时可能出现的死锁（Álvaro Herrera, Mark Kirkwood）", "title": "避免 EvalPlanQual 处理中尝试获取元组锁时可能出现的死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "962edc54416adbda3f7679e8f5597270b418a54bc310cfeeeaaaf70219ae1d66", "section_path": ["变更"], "commit_groups": [["048912386", "0e3a1f71d", "0e5680f47"]], "identity_text": "Avoid possible deadlock while trying to acquire tuple locks in EvalPlanQual processing (Álvaro Herrera, Mark Kirkwood)", "commit_aliases": ["048912386", "0e3a1f71d", "0e5680f47"], "source_commits": ["048912386"], "source_entry_id": "9.3.6/changes/014", "db_id": "66fc9eff3619ec09ac81ddde99476ab3", "patch_ids": ["1f035c72a3ee431e4e6d913847bb3788"], "statement_hash": "0a84b90ee93e3d449e6e1c5e80f39109f17c4919484dfff17f4f68187708f025", "relations": [{"rule": 2, "type": "equivalent", "target": "d33c3e69cb37fb77e80868970de73b53", "evidence": {"same_day": true, "patch_ids": ["1f035c72a3ee431e4e6d913847bb3788"], "statement_hash": "0a84b90ee93e3d449e6e1c5e80f39109f17c4919484dfff17f4f68187708f025"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d33c3e69cb37fb77e80868970de73b53", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "避免在 EvalPlanQual 处理中试图获取元组锁时可能出现的死锁", "evidence": {"same_day": true, "patch_ids": ["1f035c72a3ee431e4e6d913847bb3788"], "statement_hash": "0a84b90ee93e3d449e6e1c5e80f39109f17c4919484dfff17f4f68187708f025"}, "url": "/docs/compare/?release=9.4.1#9.4.1-7a69a1da7e500183", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}]}, {"id": "9.3.6-5b8daad7e5f74c40", "cves": [], "html": "<p>修复当一个事务尝试获取<code>FOR NO KEY EXCLUSIVE</code>元组锁而多个其他事务当前持有<code>FOR SHARE</code>锁时未能等待的问题（Álvaro Herrera）</p>", "text": "修复当一个事务尝试获取FOR NO KEY EXCLUSIVE元组锁而多个其他事务当前持有FOR SHARE锁时未能等待的问题（Álvaro Herrera）", "title": "修复当一个事务尝试获取FOR NO KEY EXCLUSIVE元组锁而多个其他事务当前持有FOR SHARE锁时未能等待的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "af6680a8aebbdaf793c71001c2c550b7e6b69d3252bc8eb015e45bcbca9e4ea1", "section_path": ["变更"], "commit_groups": [["51742063b", "54a8abc2b", "d5e3d1e96"]], "identity_text": "Fix failure to wait when a transaction tries to acquire a FOR NO KEY EXCLUSIVE tuple lock, while multiple other transactions currently hold FOR SHARE locks (Álvaro Herrera)", "commit_aliases": ["51742063b", "54a8abc2b", "d5e3d1e96"], "source_commits": ["54a8abc2b"], "source_entry_id": "9.3.6/changes/015", "db_id": "635c4fb22bac6f189ca48bb68dfebf07", "patch_ids": ["92295a7e76f21c116b8f6044ddb44d82"], "statement_hash": "a94a748f3adf572cc5cc8decab9dc3f87659522c41754453f7db20c1c81486c3", "relations": [{"rule": 2, "type": "equivalent", "target": "de480c35248b57e1ba10be3829f39df3", "evidence": {"same_day": true, "patch_ids": ["92295a7e76f21c116b8f6044ddb44d82"], "statement_hash": "a94a748f3adf572cc5cc8decab9dc3f87659522c41754453f7db20c1c81486c3"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "de480c35248b57e1ba10be3829f39df3", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复当某事务试图获取 FOR NO KEY EXCLUSIVE 元组锁而多个其他事务当前持有 FOR SHARE 锁时不等待的问题", "evidence": {"same_day": true, "patch_ids": ["92295a7e76f21c116b8f6044ddb44d82"], "statement_hash": "a94a748f3adf572cc5cc8decab9dc3f87659522c41754453f7db20c1c81486c3"}, "url": "/docs/compare/?release=9.4.1#9.4.1-1407ddec17ca907a", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}]}, {"id": "9.3.6-b1d55e83cf4cc95d", "cves": [], "html": "<p>修复在子表上使用部分索引时 <code>SELECT FOR UPDATE</code> 的规划问题（Kyotaro Horiguchi）</p>\n<p>在 <code>READ COMMITTED</code> 模式下，<code>SELECT FOR UPDATE</code> 在重新检查最近更新的行以确认它是否仍满足查询的 <code>WHERE</code> 条件时，还必须重新检查部分索引的 <code>WHERE</code> 条件。如果索引属于继承子表，就会遗漏这一要求，因此有可能错误地返回已不再满足查询条件的行。</p>", "text": "修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题（Kyotaro Horiguchi） 在 READ COMMITTED 模式下，SELECT FOR UPDATE 在重新检查最近更新的行以确认它是否仍满足查询的 WHERE 条件时，还必须重新检查部分索引的 WHERE 条件。如果索引属于继承子表，就会遗漏这一要求，因此有可能错误地返回已不再满足查询条件的行。", "title": "修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "bc996767707e2361bc3f18f596c9eec0ee1d5fe39e8ae19435f9f7dae5624418", "section_path": ["变更"], "commit_groups": [["2ae8a01ca", "662eebdc6", "bca39b578", "cd63c57e5"]], "identity_text": "Fix planning of SELECT FOR UPDATE when using a partial index on a child table (Kyotaro Horiguchi) In READ COMMITTED mode, SELECT FOR UPDATE must also recheck the partial index's WHERE condition when rechecking a recently-updated row to see if it still satisfies the query's WHERE condition. This requirement was missed if the index belonged to an inheritance child table, so that it was possible to incorrectly return rows that no longer satisfy the query condition.", "commit_aliases": ["2ae8a01ca", "662eebdc6", "bca39b578", "cd63c57e5"], "source_commits": ["2ae8a01ca"], "source_entry_id": "9.3.6/changes/016", "db_id": "146aec752b81b2b4395318ac831a802d", "patch_ids": ["0562479435795701641b23685c66cc47"], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435", "relations": [{"rule": 2, "type": "equivalent", "target": "59fd481145887a120dad83abb8869791", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}}, {"rule": 2, "type": "equivalent", "target": "5ddd034f28b89f798a4c7c670c6c478b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}}, {"rule": 2, "type": "equivalent", "target": "d7be3c4335349cd5c1a397c0f662487b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "59fd481145887a120dad83abb8869791", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}, "url": "/docs/compare/?release=9.2.10#9.2.10-b1d55e83cf4cc95d", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "5ddd034f28b89f798a4c7c670c6c478b", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}, "url": "/docs/compare/?release=9.1.15#9.1.15-b1d55e83cf4cc95d", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "d7be3c4335349cd5c1a397c0f662487b", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "36908b6ff0ae3603effb5d580a33f80dbaf095b34c33a38ec0653a51e0c34435"}, "url": "/docs/compare/?release=9.0.19#9.0.19-b1d55e83cf4cc95d", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-6b6979e576d5a10f", "cves": [], "html": "<p>修复 <code>SELECT FOR UPDATE</code> 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case（Tom Lane）</p>\n<p>在 <code>READ COMMITTED</code> 模式下，扫描继承树的 <code>SELECT FOR UPDATE</code> 可能错误地返回来自前一个子表的行，而不是本应从后一个子表返回的行。</p>", "text": "修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case（Tom Lane） 在 READ COMMITTED 模式下，扫描继承树的 SELECT FOR UPDATE 可能错误地返回来自前一个子表的行，而不是本应从后一个子表返回的行。", "title": "修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "84021473aab8be3d6294dcc7737c996fe92227622d5116af873f28b26affa75d", "section_path": ["变更"], "commit_groups": [["21946ac9b", "deadbf4f3", "f14196c35", "f5e4e92fb"]], "identity_text": "Fix corner case wherein SELECT FOR UPDATE could return a row twice, and possibly miss returning other rows (Tom Lane) In READ COMMITTED mode, a SELECT FOR UPDATE that is scanning an inheritance tree could incorrectly return a row from a prior child table instead of the one it should return from a later child table.", "commit_aliases": ["21946ac9b", "deadbf4f3", "f14196c35", "f5e4e92fb"], "source_commits": ["f14196c35"], "source_entry_id": "9.3.6/changes/017", "db_id": "fbef46d750d950e659efa4e806de3441", "patch_ids": ["99d0f3e23baeb411c87354455a4d3acd"], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6", "relations": [{"rule": 2, "type": "equivalent", "target": "aaeaed3b9b37367a610922fde7031533", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}}, {"rule": 2, "type": "equivalent", "target": "d2306970eb0b897986d601c730f7f559", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}}, {"rule": 2, "type": "equivalent", "target": "fe162f08321da551b1a14893a637f697", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "aaeaed3b9b37367a610922fde7031533", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}, "url": "/docs/compare/?release=9.2.10#9.2.10-6b6979e576d5a10f", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "d2306970eb0b897986d601c730f7f559", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}, "url": "/docs/compare/?release=9.1.15#9.1.15-6b6979e576d5a10f", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "fe162f08321da551b1a14893a637f697", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50e0848c1827ba8c6efc14c54fba1123fe9547b2c4df6757f3537d4a8131b9d6"}, "url": "/docs/compare/?release=9.0.19#9.0.19-6b6979e576d5a10f", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-2d94403ddc92cf4c", "cves": [], "html": "<p>改进<code>EXPLAIN</code>在大型范围表下的性能（Tom Lane）</p>", "text": "改进EXPLAIN在大型范围表下的性能（Tom Lane）", "title": "改进EXPLAIN在大型范围表下的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "c12ff966bf3d1dae97cea7b5988a01611d0890855ffa018ada0c192e3be4d67d", "section_path": ["变更"], "commit_groups": [["939f0fb67", "a5cd70dcb", "d25192892"]], "identity_text": "Improve performance of EXPLAIN with large range tables (Tom Lane)", "commit_aliases": ["939f0fb67", "a5cd70dcb", "d25192892"], "source_commits": ["939f0fb67"], "source_entry_id": "9.3.6/changes/018", "db_id": "b96fed99b3cf112d4f530488ecad5697", "patch_ids": ["3f9498208a16bb2134647308bd20a8d8"], "statement_hash": "129e74871e54430ddf1ce405d2a0b5a6733ac8d7b3b146abd8bf92114d9dc3ce", "relations": [{"rule": 2, "type": "equivalent", "target": "3a9c53b21f560dd4514e81c768154d81", "evidence": {"same_day": true, "patch_ids": ["3f9498208a16bb2134647308bd20a8d8"], "statement_hash": "129e74871e54430ddf1ce405d2a0b5a6733ac8d7b3b146abd8bf92114d9dc3ce"}}], "version": "9.3.6", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3a9c53b21f560dd4514e81c768154d81", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "改进 EXPLAIN 在大型范围表上的性能", "evidence": {"same_day": true, "patch_ids": ["3f9498208a16bb2134647308bd20a8d8"], "statement_hash": "129e74871e54430ddf1ce405d2a0b5a6733ac8d7b3b146abd8bf92114d9dc3ce"}, "url": "/docs/compare/?release=9.4.1#9.4.1-f09120e6c0e495a4", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}]}, {"id": "9.3.6-be10ee78f9d706c7", "cves": [], "html": "<p>拒绝 <code>FOREIGN KEY</code> 声明的被引用列列表中出现重复的列名（David Rowley）</p>\n<p>这一限制符合 SQL 标准。此前我们并未显式拒绝这种情况，但之后代码会以看起来很怪异的错误失败。</p>", "text": "拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名（David Rowley） 这一限制符合 SQL 标准。此前我们并未显式拒绝这种情况，但之后代码会以看起来很怪异的错误失败。", "title": "拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "a5194c55b9935e8f3a4d3ba5b355c816e136d16dc69954da1365317a6d486145", "section_path": ["变更"], "commit_groups": [["4ff49746e", "7a9c8cefb", "b4dacab12", "bbe826f21"]], "identity_text": "Reject duplicate column names in the referenced-columns list of a FOREIGN KEY declaration (David Rowley) This restriction is per SQL standard. Previously we did not reject the case explicitly, but later on the code would fail with bizarre-looking errors.", "commit_aliases": ["4ff49746e", "7a9c8cefb", "b4dacab12", "bbe826f21"], "source_commits": ["7a9c8cefb"], "source_entry_id": "9.3.6/changes/019", "db_id": "b0ae638906d62ba0cb7e686757b226b9", "patch_ids": ["2991c8d1861676800ab99720236d8209"], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f", "relations": [{"rule": 2, "type": "equivalent", "target": "14d041c9b061879311a6d5818de548cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}}, {"rule": 2, "type": "equivalent", "target": "41f72220da3db16a17eaec14c2e627a5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}}, {"rule": 2, "type": "equivalent", "target": "c35e86e1c1b6302743853aada4360120", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "41f72220da3db16a17eaec14c2e627a5", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}, "url": "/docs/compare/?release=9.2.10#9.2.10-be10ee78f9d706c7", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "c35e86e1c1b6302743853aada4360120", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}, "url": "/docs/compare/?release=9.1.15#9.1.15-be10ee78f9d706c7", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "14d041c9b061879311a6d5818de548cd", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f94d513bde91f1a555ed53315658e982a8ac98d877b83f0919f02d3e28d9a8f"}, "url": "/docs/compare/?release=9.0.19#9.0.19-be10ee78f9d706c7", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-82b33a967be45fd7", "cves": [], "html": "<p>重新启用对 <code>SELECT ... OFFSET -1</code> 的报错（Tom Lane）</p>\n<p>负的偏移量值自 8.4 起就是错误，但 9.3 中新增的一项优化意外地把这种情况变成了无操作。现已恢复预期行为。</p>", "text": "重新启用对 SELECT ... OFFSET -1 的报错（Tom Lane） 负的偏移量值自 8.4 起就是错误，但 9.3 中新增的一项优化意外地把这种情况变成了无操作。现已恢复预期行为。", "title": "重新启用对 SELECT ... OFFSET -1 的报错", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "f13e5c3a72b8403b1a31034f01f894a24dcc215c6146a951b7583f85cc693465", "section_path": ["变更"], "commit_groups": [["6306d0712"]], "identity_text": "Re-enable error for SELECT ... OFFSET -1 (Tom Lane) A negative offset value has been an error since 8.4, but an optimization added in 9.3 accidentally turned the case into a no-op. Restore the expected behavior.", "commit_aliases": ["6306d0712"], "source_commits": ["6306d0712"], "source_entry_id": "9.3.6/changes/020", "db_id": "b76afa332df8fec0e2610eacb8d7438c", "patch_ids": ["9f3a143db441e985ad34ff34580b184f"], "statement_hash": "628a43cc4e7c379fef97da22b8f2e8676d5dbf7b6d08f8801ec656f8892d41ab", "relations": [], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-63578ff9387a6061", "cves": [], "html": "<p>恢复域转换为 JSON 的原有行为（Tom Lane）</p>\n<p>此变更使基于 numeric 和 boolean 的域在转换为 JSON 时被视为其基础类型。在 9.3.5 和 9.2.9 之前就是这样工作的，但在修复一个相关问题时不慎改变了行为。</p>", "text": "恢复域转换为 JSON 的原有行为（Tom Lane） 此变更使基于 numeric 和 boolean 的域在转换为 JSON 时被视为其基础类型。在 9.3.5 和 9.2.9 之前就是这样工作的，但在修复一个相关问题时不慎改变了行为。", "title": "恢复域转换为 JSON 的原有行为", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "a06486c9cb7e1cee9db67aa9bf168cf6b01ead87a2661be2c862c1f8a2f67557", "section_path": ["变更"], "commit_groups": [["15026ab97", "8b65e0a33"]], "identity_text": "Restore previous behavior of conversion of domains to JSON (Tom Lane) This change causes domains over numeric and boolean to be treated like their base types for purposes of conversion to JSON. It worked like that before 9.3.5 and 9.2.9, but was unintentionally changed while fixing a related problem.", "commit_aliases": ["15026ab97", "8b65e0a33"], "source_commits": ["8b65e0a33"], "source_entry_id": "9.3.6/changes/021", "db_id": "11a382fbe75366c6921922d17152d03c", "patch_ids": ["f61c00fba717f688d492662ff2c56daf"], "statement_hash": "fdc34453fee8b7611d4d28303bbaeca82791037b8e0cde6f3e159b7e4a39d59b", "relations": [{"rule": 2, "type": "equivalent", "target": "a9cfacac20e5fde587987299335775f6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdc34453fee8b7611d4d28303bbaeca82791037b8e0cde6f3e159b7e4a39d59b"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a9cfacac20e5fde587987299335775f6", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "恢复域转换为 JSON 的原有行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fdc34453fee8b7611d4d28303bbaeca82791037b8e0cde6f3e159b7e4a39d59b"}, "url": "/docs/compare/?release=9.2.10#9.2.10-63578ff9387a6061", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}]}, {"id": "9.3.6-6a273551e124fad1", "cves": [], "html": "<p>修复 <code>json_agg()</code>，使其结果中不再返回多余的尾部右括号（Tom Lane）</p>", "text": "修复 json_agg()，使其结果中不再返回多余的尾部右括号（Tom Lane）", "title": "修复 json_agg()，使其结果中不再返回多余的尾部右括号", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "f6fcf189e99e645890b27e8950e16e83ca29d6085909aa449694ed54942d43e2", "section_path": ["变更"], "commit_groups": [["8571ecb24"]], "identity_text": "Fix json_agg() to not return extra trailing right brackets in its result (Tom Lane)", "commit_aliases": ["8571ecb24"], "source_commits": ["8571ecb24"], "source_entry_id": "9.3.6/changes/022", "db_id": "0e36169094ed573b90cb399b7d68a03c", "patch_ids": ["7da30c8f4a3d437b3a9f327ba963fac0"], "statement_hash": "97eb8e456f179aa5f6c568ff62a179cd393dba761f11f96fdd9e6577f37566a4", "relations": [], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-346213b07b974f37", "cves": [], "html": "<p>修复 <code>numeric</code> 值求大整数次幂时的缺陷（Tom Lane）</p>\n<p>之前的代码可能得到错误答案，或者在意识到结果必然溢出之前消耗过多的时间和内存。</p>", "text": "修复 numeric 值求大整数次幂时的缺陷（Tom Lane） 之前的代码可能得到错误答案，或者在意识到结果必然溢出之前消耗过多的时间和内存。", "title": "修复 numeric 值求大整数次幂时的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "88168a773634c7ac151c23e83993e58b44c4ecbe58aa122c49b13e3fe6ad1f5f", "section_path": ["变更"], "commit_groups": [["228ed4370", "25bf13fe1", "26f8a4691", "cf5c20b06"]], "identity_text": "Fix bugs in raising a numeric value to a large integral power (Tom Lane) The previous code could get a wrong answer, or consume excessive amounts of time and memory before realizing that the answer must overflow.", "commit_aliases": ["228ed4370", "25bf13fe1", "26f8a4691", "cf5c20b06"], "source_commits": ["25bf13fe1"], "source_entry_id": "9.3.6/changes/023", "db_id": "c30ea11602d9305c6c10179bf6a5819f", "patch_ids": ["a94d12b41d721be2668ef62bbf8b3bac"], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180", "relations": [{"rule": 2, "type": "equivalent", "target": "226b0d2f03397d7dbf0638a08d8da624", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}}, {"rule": 2, "type": "equivalent", "target": "7d0d18ac69223d1468f26a28418eefe6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}}, {"rule": 2, "type": "equivalent", "target": "ca1d795c6c39392c30dcb77106377778", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7d0d18ac69223d1468f26a28418eefe6", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 numeric 值求大整数次幂时的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}, "url": "/docs/compare/?release=9.2.10#9.2.10-346213b07b974f37", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "ca1d795c6c39392c30dcb77106377778", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 numeric 值求大整数次幂时的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}, "url": "/docs/compare/?release=9.1.15#9.1.15-346213b07b974f37", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "226b0d2f03397d7dbf0638a08d8da624", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 numeric 值求大整数次幂时的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6285d1d3128b3d16a0317de5d824d9cf7270ce1dd2bf93afdea25e3d34e180"}, "url": "/docs/compare/?release=9.0.19#9.0.19-346213b07b974f37", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-c2c0a9e71f032555", "cves": [], "html": "<p>在 <code>numeric_recv()</code> 中，按照值的 <code>dscale</code> 字段截去会被隐藏的小数位（Tom Lane）</p>\n<p><code>numeric</code> 值的显示标度（<code>dscale</code>）绝不应小于非零小数位的位数；但显然至少存在一个有缺陷的客户端应用，它发送的二进制 <code>numeric</code> 值违反了这一点。这会导致奇怪的行为，因为多余的数字位虽然不会被打印出来，却会被算术运算考虑在内。风险最小的修复方法似乎是在接收时把这类<span>“<span>隐藏的</span>”</span>数字位截去，使值确实与它打印出来的一致。</p>", "text": "在 numeric_recv() 中，按照值的 dscale 字段截去会被隐藏的小数位（Tom Lane） numeric 值的显示标度（dscale）绝不应小于非零小数位的位数；但显然至少存在一个有缺陷的客户端应用，它发送的二进制 numeric 值违反了这一点。这会导致奇怪的行为，因为多余的数字位虽然不会被打印出来，却会被算术运算考虑在内。风险最小的修复方法似乎是在接收时把这类“隐藏的”数字位截去，使值确实与它打印出来的一致。", "title": "在 numeric_recv() 中，按照值的 dscale 字段截去会被隐藏的小数位", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "266ed7ecc62946f2d9b7be44c50ab48c100cb08ece5dcaea758eac79caa8a631", "section_path": ["变更"], "commit_groups": [["10b81fbdc", "2e3cc3955", "e640042e9", "e6550626c"]], "identity_text": "In numeric_recv(), truncate away any fractional digits that would be hidden according to the value's dscale field (Tom Lane) A numeric value's display scale (dscale) should never be less than the number of nonzero fractional digits; but apparently there's at least one broken client application that transmits binary numeric values in which that's true. This leads to strange behavior since the extra digits are taken into account by arithmetic operations even though they aren't printed. The least risky fix seems to be to truncate away such hidden digits on receipt, so that the value is indeed what it prints as.", "commit_aliases": ["10b81fbdc", "2e3cc3955", "e640042e9", "e6550626c"], "source_commits": ["10b81fbdc"], "source_entry_id": "9.3.6/changes/024", "db_id": "4834f26d14365fb568228674fbec047d", "patch_ids": ["628d71668708df0bd84e0b69b1e4dee1"], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6", "relations": [{"rule": 2, "type": "equivalent", "target": "21fb91e361458197ee38691243863b4b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}}, {"rule": 2, "type": "equivalent", "target": "845e86021abbcc7c1b02acb5271bd874", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}}, {"rule": 2, "type": "equivalent", "target": "dd6854dbfb0e874f5cb956a1ec05afb5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "845e86021abbcc7c1b02acb5271bd874", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "在 numeric_recv() 中，按照值的 dscale 字段截去会被隐藏的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}, "url": "/docs/compare/?release=9.2.10#9.2.10-c2c0a9e71f032555", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "dd6854dbfb0e874f5cb956a1ec05afb5", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "在 numeric_recv() 中，按照值的 dscale 字段截去会被隐藏的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}, "url": "/docs/compare/?release=9.1.15#9.1.15-c2c0a9e71f032555", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "21fb91e361458197ee38691243863b4b", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "在 numeric_recv() 中，按照值的 dscale 字段截去会被隐藏的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d3bce8c380d14c365384a17ea6e41dfc2e4cd35690f37cc861cfbb0916d3c6c6"}, "url": "/docs/compare/?release=9.0.19#9.0.19-c2c0a9e71f032555", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-3e8f34f23a866f9e", "cves": [], "html": "<p>修复正则表达式最短优先匹配搜索不正确的问题（Tom Lane）</p>\n<p>当允许的迭代次数受到 <code>?</code> 量词或边界表达式限制时，匹配常常会失败。</p>", "text": "修复正则表达式最短优先匹配搜索不正确的问题（Tom Lane） 当允许的迭代次数受到 ? 量词或边界表达式限制时，匹配常常会失败。", "title": "修复正则表达式最短优先匹配搜索不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "1087b050d5749a5762b7bac328b7943c76fde3209ea2a90f0012c1257eeaec96", "section_path": ["变更"], "commit_groups": [["3359a818c", "bbfdf5d75"]], "identity_text": "Fix incorrect search for shortest-first regular expression matches (Tom Lane) Matching would often fail when the number of allowed iterations is limited by a ? quantifier or a bound expression.", "commit_aliases": ["3359a818c", "bbfdf5d75"], "source_commits": ["bbfdf5d75"], "source_entry_id": "9.3.6/changes/025", "db_id": "a508592cbf600888783ee5ce60e6c398", "patch_ids": ["aab1a23a8ff49b8671c2c9d07b0e7054"], "statement_hash": "b6b9a64f51909c124665057135cbff0a59c7738b67816df12a76c531f425aeb2", "relations": [{"rule": 2, "type": "equivalent", "target": "00f93d88627f4357f03d8a6895f0b6c2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6b9a64f51909c124665057135cbff0a59c7738b67816df12a76c531f425aeb2"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "00f93d88627f4357f03d8a6895f0b6c2", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复正则表达式最短优先匹配搜索不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6b9a64f51909c124665057135cbff0a59c7738b67816df12a76c531f425aeb2"}, "url": "/docs/compare/?release=9.2.10#9.2.10-3e8f34f23a866f9e", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}]}, {"id": "9.3.6-72077f08360f6c25", "cves": [], "html": "<p>拒绝超出范围的数字时区规范（Tom Lane）</p>\n<p>超过 +/- 168 小时（一周）的简单数字时区规范此前会被接受，但随后可能在某些操作中导致空指针解引用崩溃。如此大的 UTC 偏移没有实际使用场景，因此予以拒绝。</p>", "text": "拒绝超出范围的数字时区规范（Tom Lane） 超过 +/- 168 小时（一周）的简单数字时区规范此前会被接受，但随后可能在某些操作中导致空指针解引用崩溃。如此大的 UTC 偏移没有实际使用场景，因此予以拒绝。", "title": "拒绝超出范围的数字时区规范", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "41abc2abc81d19f9928d7d157c7e472f6b1e1f2cdf41e4189c66ac8507f3c290", "section_path": ["变更"], "commit_groups": [["124331b61", "6e5a39c9e", "7672bbca0", "f54d97c5e"]], "identity_text": "Reject out-of-range numeric timezone specifications (Tom Lane) Simple numeric timezone specifications exceeding +/- 168 hours (one week) would be accepted, but could then cause null-pointer dereference crashes in certain operations. There's no use-case for such large UTC offsets, so reject them.", "commit_aliases": ["124331b61", "6e5a39c9e", "7672bbca0", "f54d97c5e"], "source_commits": ["7672bbca0"], "source_entry_id": "9.3.6/changes/026", "db_id": "616840fcef2dec6122d552f0c0182a76", "patch_ids": ["924904827856600ae143891c6ea81970"], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491", "relations": [{"rule": 2, "type": "equivalent", "target": "339967c45fa7f4dcd7b22794dae2b3be", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}}, {"rule": 2, "type": "equivalent", "target": "e8f6b0bd9c7bc0ac116bfb195304c0e6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}}, {"rule": 2, "type": "equivalent", "target": "ec3e5c8b8132753010f98027b961bf1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec3e5c8b8132753010f98027b961bf1c", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "拒绝超出范围的数字时区规范", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}, "url": "/docs/compare/?release=9.2.10#9.2.10-72077f08360f6c25", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "e8f6b0bd9c7bc0ac116bfb195304c0e6", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "拒绝超出范围的数字时区规范", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}, "url": "/docs/compare/?release=9.1.15#9.1.15-72077f08360f6c25", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "339967c45fa7f4dcd7b22794dae2b3be", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "拒绝超出范围的数字时区规范", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e9cfd0353b581050111091b8a05b8dda8f193ffb78ec52305943659206a1491"}, "url": "/docs/compare/?release=9.0.19#9.0.19-72077f08360f6c25", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-3646836441105e34", "cves": [], "html": "<p>修复 <code>tsquery</code> <code>@&gt;</code> <code>tsquery</code> 操作符中的缺陷（Heikki Linnakangas）</p>\n<p>两个不同的词如果 CRC 相同，就会被认为匹配。此外，如果第二个操作数的词条比第一个多，就会被假定不包含于第一个；这是错误的，因为它可能包含重复词条。</p>", "text": "修复 tsquery @> tsquery 操作符中的缺陷（Heikki Linnakangas） 两个不同的词如果 CRC 相同，就会被认为匹配。此外，如果第二个操作数的词条比第一个多，就会被假定不包含于第一个；这是错误的，因为它可能包含重复词条。", "title": "修复 tsquery @> tsquery 操作符中的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "b0d33c96b2d6d490b313d4a9c43af74e09000b73db3c5fbdcdb9ea5078902a7b", "section_path": ["变更"], "commit_groups": [["10059c2da", "1aa526f3f", "4d1c738d1", "604d94d4c"]], "identity_text": "Fix bugs in tsquery @> tsquery operator (Heikki Linnakangas) Two different terms would be considered to match if they had the same CRC. Also, if the second operand had more terms than the first, it would be assumed not to be contained in the first; which is wrong since it might contain duplicate terms.", "commit_aliases": ["10059c2da", "1aa526f3f", "4d1c738d1", "604d94d4c"], "source_commits": ["1aa526f3f"], "source_entry_id": "9.3.6/changes/027", "db_id": "073908f63316621ce9f92daf5cd1cf99", "patch_ids": ["951178982c4acf51077b3ebc2961cb51"], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c", "relations": [{"rule": 2, "type": "equivalent", "target": "0b356da5acc14069e9074d5617ae6eb5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}}, {"rule": 2, "type": "equivalent", "target": "593eb443e8f3a2f59e5a0a7ff457e9a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}}, {"rule": 2, "type": "equivalent", "target": "8b4d94e9c711372745f6e4bde08b6260", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0b356da5acc14069e9074d5617ae6eb5", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 tsquery @> tsquery 操作符中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}, "url": "/docs/compare/?release=9.2.10#9.2.10-3646836441105e34", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "593eb443e8f3a2f59e5a0a7ff457e9a0", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 tsquery @> tsquery 操作符中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}, "url": "/docs/compare/?release=9.1.15#9.1.15-3646836441105e34", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "8b4d94e9c711372745f6e4bde08b6260", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 tsquery @> tsquery 操作符中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f57753b4271a1bf7953422aa3a6f3bf14abae9655079807c17ebed56df3e18c"}, "url": "/docs/compare/?release=9.0.19#9.0.19-3646836441105e34", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-17572e8fc6e28797", "cves": [], "html": "<p>增强 ispell 词典对有问题的词缀文件的防御（Tom Lane）</p>", "text": "增强 ispell 词典对有问题的词缀文件的防御（Tom Lane）", "title": "增强 ispell 词典对有问题的词缀文件的防御", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "d9cfebb08027ff8d459138adc40bc0ce0dbbc1c91f5580beaa4bb69acca89ef6", "section_path": ["变更"], "commit_groups": [["21fa26b65", "385f0d98a", "94de3a679", "f09369da8"]], "identity_text": "Improve ispell dictionary's defenses against bad affix files (Tom Lane)", "commit_aliases": ["21fa26b65", "385f0d98a", "94de3a679", "f09369da8"], "source_commits": ["385f0d98a"], "source_entry_id": "9.3.6/changes/028", "db_id": "8e5a4722ccc9e5ab562e61c96a54009e", "patch_ids": ["b7a6ac1636568722085d7018de975ac6"], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b", "relations": [{"rule": 2, "type": "equivalent", "target": "6069d8e7563f29922ec06939c7c0cb97", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}}, {"rule": 2, "type": "equivalent", "target": "7a03301f2c1d0351aad964b6396bc43c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}}, {"rule": 2, "type": "equivalent", "target": "87198737c4c8031534103083ea445bd6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6069d8e7563f29922ec06939c7c0cb97", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "增强 ispell 词典对有问题的词缀文件的防御", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}, "url": "/docs/compare/?release=9.2.10#9.2.10-17572e8fc6e28797", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "87198737c4c8031534103083ea445bd6", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "增强 ispell 词典对有问题的词缀文件的防御", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}, "url": "/docs/compare/?release=9.1.15#9.1.15-17572e8fc6e28797", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "7a03301f2c1d0351aad964b6396bc43c", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "增强 ispell 词典对有问题的词缀文件的防御", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a6e2bb64a9d55946b95c6c16c51a92ec875e069f33efc63ecb9fb66403aea6b"}, "url": "/docs/compare/?release=9.0.19#9.0.19-17572e8fc6e28797", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-73efaff769c7f010", "cves": [], "html": "<p>允许词典（thesaurus）包含超过 64K 个短语（David Boutin）</p>\n<p>之前的代码在词典过大时会崩溃，因此这被视为一个可回移植的缺陷修复，而不是新特性。</p>", "text": "允许词典（thesaurus）包含超过 64K 个短语（David Boutin） 之前的代码在词典过大时会崩溃，因此这被视为一个可回移植的缺陷修复，而不是新特性。", "title": "允许词典（thesaurus）包含超过 64K 个短语", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "8ddc2c7bf4eca3c0d8cf5f4dcdb2ab3a5cd9fcbded0b3891cab194911491cd8d", "section_path": ["变更"], "commit_groups": [["076688084", "0bb318595", "39493e4d9", "5a74ff373"]], "identity_text": "Allow more than 64K phrases in a thesaurus dictionary (David Boutin) The previous coding could crash on an oversize dictionary, so this was deemed a back-patchable bug fix rather than a feature addition.", "commit_aliases": ["076688084", "0bb318595", "39493e4d9", "5a74ff373"], "source_commits": ["5a74ff373"], "source_entry_id": "9.3.6/changes/029", "db_id": "c2458801a6ce67d19f1f06934babf983", "patch_ids": ["e4b20a8cb178263aff082453f0af4da6"], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90", "relations": [{"rule": 2, "type": "equivalent", "target": "cbd68185635558db05c9a186c164dd54", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}}, {"rule": 2, "type": "equivalent", "target": "dcd9cf15046d50a017d352f989a52ab0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}}, {"rule": 2, "type": "equivalent", "target": "e199b788726a407a7bf779038ca7a189", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e199b788726a407a7bf779038ca7a189", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "允许词典（thesaurus）包含超过 64K 个短语", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}, "url": "/docs/compare/?release=9.2.10#9.2.10-73efaff769c7f010", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "dcd9cf15046d50a017d352f989a52ab0", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "允许词典（thesaurus）包含超过 64K 个短语", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}, "url": "/docs/compare/?release=9.1.15#9.1.15-73efaff769c7f010", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "cbd68185635558db05c9a186c164dd54", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "允许词典（thesaurus）包含超过 64K 个短语", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cddc90bbe8355fb1d2f6f42bc9c7be15e6551770a751e7afa7958447c89f9b90"}, "url": "/docs/compare/?release=9.0.19#9.0.19-73efaff769c7f010", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-0017727b7307a437", "cves": [], "html": "<p>修复<code>xpath()</code>中的命名空间处理（Ali Akbar）</p>\n<p>此前，如果命名空间声明附在输入<code>xml</code>值的祖先元素上而非被返回的特定元素上，<code>xpath()</code>调用产生的<code>xml</code>值就不会包含命名空间声明。我们将祖先声明传播下来，使结果在孤立考虑时也是正确的。</p>", "text": "修复xpath()中的命名空间处理（Ali Akbar） 此前，如果命名空间声明附在输入xml值的祖先元素上而非被返回的特定元素上，xpath()调用产生的xml值就不会包含命名空间声明。我们将祖先声明传播下来，使结果在孤立考虑时也是正确的。", "title": "修复xpath()中的命名空间处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "7ac603500dfc58d6564df309d6da3d444c956764581d16f3181a2aee86c5fcfb", "section_path": ["变更"], "commit_groups": [["6bbf75192", "79af9a1d2", "c8ef5b1ac", "c975fa471", "cebb3f032", "e32cb8d0e"]], "identity_text": "Fix namespace handling in xpath() (Ali Akbar) Previously, the xml value resulting from an xpath() call would not have namespace declarations if the namespace declarations were attached to an ancestor element in the input xml value, rather than to the specific element being returned. Propagate the ancestral declaration so that the result is correct when considered in isolation.", "commit_aliases": ["6bbf75192", "79af9a1d2", "c8ef5b1ac", "c975fa471", "cebb3f032", "e32cb8d0e"], "source_commits": ["e32cb8d0e"], "source_entry_id": "9.3.6/changes/030", "db_id": "6f9cd2c1e9b116425ea46c74fab68a9b", "patch_ids": ["61de259a1e0e5320f2146cd012cdc2b2"], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4", "relations": [{"rule": 2, "type": "equivalent", "target": "4f5d5dacfc520d2589717a919c2fcd88", "evidence": {"same_day": true, "patch_ids": ["61de259a1e0e5320f2146cd012cdc2b2"], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}}, {"rule": 2, "type": "equivalent", "target": "5fa736d394abe62f83fa3c9db7f944fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}}, {"rule": 2, "type": "equivalent", "target": "757dff59c4efdb461302def83729216c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}}, {"rule": 2, "type": "equivalent", "target": "e02e7ae3730aeb589ddb39a776a2c0bd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f5d5dacfc520d2589717a919c2fcd88", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复xpath()中的命名空间处理", "evidence": {"same_day": true, "patch_ids": ["61de259a1e0e5320f2146cd012cdc2b2"], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}, "url": "/docs/compare/?release=9.4.1#9.4.1-0017727b7307a437", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "757dff59c4efdb461302def83729216c", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复xpath()中的命名空间处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}, "url": "/docs/compare/?release=9.2.10#9.2.10-0017727b7307a437", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "5fa736d394abe62f83fa3c9db7f944fe", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复xpath()中的命名空间处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}, "url": "/docs/compare/?release=9.1.15#9.1.15-0017727b7307a437", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "e02e7ae3730aeb589ddb39a776a2c0bd", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复xpath()中的命名空间处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1095981c5514e207fc476a0e5c243c61b068273f93b3c2c5f2b54b0a9a5cba4"}, "url": "/docs/compare/?release=9.0.19#9.0.19-0017727b7307a437", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-53d3817229400a49", "cves": [], "html": "<p>确保整行变量向关注组合参数内列名的函数暴露预期的列名（Tom Lane）</p>\n<p>在某些上下文中，<code>row_to_json(tab.*)</code> 这类构造可能不会产生预期的列名。这个问题在 9.4 中已正确修复；在较旧的分支中，只是确保产生某个非空名称。（某些情况下，这个名称会是底层表的列名，而不是理论上应该可见的由查询赋予的别名。）</p>", "text": "确保整行变量向关注组合参数内列名的函数暴露预期的列名（Tom Lane） 在某些上下文中，row_to_json(tab.*) 这类构造可能不会产生预期的列名。这个问题在 9.4 中已正确修复；在较旧的分支中，只是确保产生某个非空名称。（某些情况下，这个名称会是底层表的列名，而不是理论上应该可见的由查询赋予的别名。）", "title": "确保整行变量向关注组合参数内列名的函数暴露预期的列名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "cfbe90115eea3767e90b53393c89f75a0a298942e786223a38fbf736536f116c", "section_path": ["变更"], "commit_groups": [["07ab4ec4c", "19ccaf9d4"]], "identity_text": "Ensure that whole-row variables expose nonempty column names to functions that pay attention to column names within composite arguments (Tom Lane) In some contexts, constructs like row_to_json(tab.*) may not produce the expected column names. This is fixed properly as of 9.4; in older branches, just ensure that we produce some nonempty name. (In some cases this will be the underlying table's column name rather than the query-assigned alias that should theoretically be visible.)", "commit_aliases": ["07ab4ec4c", "19ccaf9d4"], "source_commits": ["07ab4ec4c"], "source_entry_id": "9.3.6/changes/031", "db_id": "0887ab970065542f614875a883834fc0", "patch_ids": ["3bbd86260e347cb8fdf40a1e89a029a1"], "statement_hash": "8a32a5fee72e6bf2eb8e50366b5c633e7110abb643060aeee0c1060e2a25f0b8", "relations": [{"rule": 2, "type": "equivalent", "target": "2b0dceaf1dcdfa6aa21210a35f3717e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a32a5fee72e6bf2eb8e50366b5c633e7110abb643060aeee0c1060e2a25f0b8"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2b0dceaf1dcdfa6aa21210a35f3717e9", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "确保整行变量向关注组合参数内列名的函数暴露预期的列名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a32a5fee72e6bf2eb8e50366b5c633e7110abb643060aeee0c1060e2a25f0b8"}, "url": "/docs/compare/?release=9.2.10#9.2.10-53d3817229400a49", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}]}, {"id": "9.3.6-1df19c07b88077a5", "cves": [], "html": "<p>修复 FDW 查询中对系统列（特别是 <code>tableoid</code>）的错误处理（Etsuro Fujita）</p>", "text": "修复 FDW 查询中对系统列（特别是 tableoid）的错误处理（Etsuro Fujita）", "title": "修复 FDW 查询中对系统列（特别是 tableoid）的错误处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "c3ba445d442baaab4666e09e03c60289181c788d8e479db534daee4f4491e7a3", "section_path": ["变更"], "commit_groups": [["906599f65", "c57cdc9c1"]], "identity_text": "Fix mishandling of system columns, particularly tableoid, in FDW queries (Etsuro Fujita)", "commit_aliases": ["906599f65", "c57cdc9c1"], "source_commits": ["c57cdc9c1"], "source_entry_id": "9.3.6/changes/032", "db_id": "0bb9e5b96be9284ba57a66f6676506d1", "patch_ids": ["cbc36dc969128e371a50514a402a80c0"], "statement_hash": "0756f67d4d3a125665bd3d678dfafbf96b8c8a31138ef0bdd0a68a23d86a57e1", "relations": [{"rule": 2, "type": "equivalent", "target": "302155ddcb1d88a7be87ceeb8b87f80c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756f67d4d3a125665bd3d678dfafbf96b8c8a31138ef0bdd0a68a23d86a57e1"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "302155ddcb1d88a7be87ceeb8b87f80c", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 FDW 查询中对系统列（特别是 tableoid）的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756f67d4d3a125665bd3d678dfafbf96b8c8a31138ef0bdd0a68a23d86a57e1"}, "url": "/docs/compare/?release=9.2.10#9.2.10-1df19c07b88077a5", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}]}, {"id": "9.3.6-fac591390192b14e", "cves": [], "html": "<p>修复范围操作符选择率估计中的各种疏漏（Emre Hasegeli）</p>\n<p>此补丁修复了极端情况下 <span>“<span>unexpected operator NNNN</span>”</span> 规划器错误，并改进了其他一些情况下的选择率估计。</p>", "text": "修复范围操作符选择率估计中的各种疏漏（Emre Hasegeli） 此补丁修复了极端情况下 “unexpected operator NNNN” 规划器错误，并改进了其他一些情况下的选择率估计。", "title": "修复范围操作符选择率估计中的各种疏漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "bfd6bfdb5eba056e80dfa0e33de3bd8dc3275a9b2dec79dafc994f372835cf8f", "section_path": ["变更"], "commit_groups": [["3d660d33a", "527ff8baf", "b6a164e5c"]], "identity_text": "Fix assorted oversights in range-operator selectivity estimation (Emre Hasegeli) This patch fixes corner-case unexpected operator NNNN planner errors, and improves the selectivity estimates for some other cases.", "commit_aliases": ["3d660d33a", "527ff8baf", "b6a164e5c"], "source_commits": ["527ff8baf"], "source_entry_id": "9.3.6/changes/033", "db_id": "f27a9e9d0611bc7c5d3936236583fae3", "patch_ids": ["ccf640ab730cca4e15d68295f202f55d"], "statement_hash": "2c57ae838c920b2a8c0a61da93111820dbe0ccebf135f2043f9f577c6766a1bf", "relations": [{"rule": 2, "type": "equivalent", "target": "a07aa97593fb26929ee19f3099859acd", "evidence": {"same_day": true, "patch_ids": ["ccf640ab730cca4e15d68295f202f55d"], "statement_hash": "2c57ae838c920b2a8c0a61da93111820dbe0ccebf135f2043f9f577c6766a1bf"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a07aa97593fb26929ee19f3099859acd", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复范围操作符选择率估计中的各种疏漏", "evidence": {"same_day": true, "patch_ids": ["ccf640ab730cca4e15d68295f202f55d"], "statement_hash": "2c57ae838c920b2a8c0a61da93111820dbe0ccebf135f2043f9f577c6766a1bf"}, "url": "/docs/compare/?release=9.4.1#9.4.1-fac591390192b14e", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}]}, {"id": "9.3.6-9b06fcce111657a7", "cves": [], "html": "<p>当把 <code><em><code>indexed_column</code></em> = ANY (<em><code>array</code></em>)</code> 用作索引限定条件会导致更差的计划时，避免这样做（Andrew Gierth）</p>\n<p>某些情况下，作用于非首个索引列的 <code>= ANY</code> 条件会被当作索引条件执行，尽管把它们用作简单的过滤条件会更好。</p>", "text": "当把 indexed_column = ANY (array) 用作索引限定条件会导致更差的计划时，避免这样做（Andrew Gierth） 某些情况下，作用于非首个索引列的 = ANY 条件会被当作索引条件执行，尽管把它们用作简单的过滤条件会更好。", "title": "当把 indexed_column = ANY (array) 用作索引限定条件会导致更差的计划时，避免这样做", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "04547f609fbc217ae8f07b41ba8fe029646eabf14d3996bc43c0d7484f56a072", "section_path": ["变更"], "commit_groups": [["4586572d7", "f6abf8f08"]], "identity_text": "Avoid doing indexed_column = ANY (array) as an index qualifier if that leads to an inferior plan (Andrew Gierth) In some cases, = ANY conditions applied to non-first index columns would be done as index conditions even though it would be better to use them as simple filter conditions.", "commit_aliases": ["4586572d7", "f6abf8f08"], "source_commits": ["f6abf8f08"], "source_entry_id": "9.3.6/changes/034", "db_id": "d778b94112bee2406232aacea023f83c", "patch_ids": ["a43d431c6d8162f3cd8929a62936e311"], "statement_hash": "fe4d58fedbf3f19fc57eaca582a6002b755ddb9939f7b07fdb4ced3db86e4815", "relations": [{"rule": 2, "type": "equivalent", "target": "81ae3b90338e5dfe1ba95a23e9e7bcab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe4d58fedbf3f19fc57eaca582a6002b755ddb9939f7b07fdb4ced3db86e4815"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "81ae3b90338e5dfe1ba95a23e9e7bcab", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "当把 indexed_column = ANY (array) 用作索引限定条件会导致更差的计划时，避免这样做", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fe4d58fedbf3f19fc57eaca582a6002b755ddb9939f7b07fdb4ced3db86e4815"}, "url": "/docs/compare/?release=9.2.10#9.2.10-9b06fcce111657a7", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}]}, {"id": "9.3.6-b43c5c52c205aebb", "cves": [], "html": "<p>修复当接受组合类型参数的可内联 SQL 函数用于 <code>LATERAL</code> 子查询、且该组合类型参数是一个横向引用时，规划器报 <span>“<span>variable not found in subplan target list</span>”</span> 失败的问题（Tom Lane）</p>", "text": "修复当接受组合类型参数的可内联 SQL 函数用于 LATERAL 子查询、且该组合类型参数是一个横向引用时，规划器报 “variable not found in subplan target list” 失败的问题（Tom Lane）", "title": "修复当接受组合类型参数的可内联 SQL 函数用于 LATERAL 子查询、且该组合类型参数是一个横向引用时，规划器报 “variable not found in subplan target list” 失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "c7113e1162bee6549e23d90c87e6e94a4baba1c05feed6acb92fb8793a53e4b5", "section_path": ["变更"], "commit_groups": [["4e54685d0"]], "identity_text": "Fix variable not found in subplan target list planner failure when an inline-able SQL function taking a composite argument is used in a LATERAL subselect and the composite argument is a lateral reference (Tom Lane)", "commit_aliases": ["4e54685d0"], "source_commits": ["4e54685d0"], "source_entry_id": "9.3.6/changes/035", "db_id": "f1bc00feb4b140f4393d63b2a18d44d1", "patch_ids": ["5d66d92d9c967ecd17fda0ec0e89461a"], "statement_hash": "db786b9726f6e18e64a3dbcaa6201b6e12d8893ded1f6d06c7add102cb31dd76", "relations": [], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-6dccd35019b5d86d", "cves": [], "html": "<p>修复嵌套 append 关系（例如 <code>UNION ALL</code> 子查询中的继承表）的规划器问题（Tom Lane）</p>", "text": "修复嵌套 append 关系（例如 UNION ALL 子查询中的继承表）的规划器问题（Tom Lane）", "title": "修复嵌套 append 关系（例如 UNION ALL 子查询中的继承表）的规划器问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "8156e38f210636e9025a8cc5c62a660e6c43dacd4d472fb8657c10fcf08670da", "section_path": ["变更"], "commit_groups": [["288f15b7c", "477023e94", "71b88cf52", "b2b95de61"]], "identity_text": "Fix planner problems with nested append relations, such as inherited tables within UNION ALL subqueries (Tom Lane)", "commit_aliases": ["288f15b7c", "477023e94", "71b88cf52", "b2b95de61"], "source_commits": ["b2b95de61"], "source_entry_id": "9.3.6/changes/036", "db_id": "578b2c370af1a37ba126b76d6f8d3c2a", "patch_ids": ["9cba3bf4ca1d24ae1988177c7c4ad753"], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc", "relations": [{"rule": 2, "type": "equivalent", "target": "6786a15e534b5f80e0a3500d1dc889ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}}, {"rule": 2, "type": "equivalent", "target": "d35026742dc052608b333f774e064754", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}}, {"rule": 2, "type": "equivalent", "target": "e4a28641d3f94493cc6a014bf16ab7a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4a28641d3f94493cc6a014bf16ab7a4", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复嵌套 append 关系（例如 UNION ALL 子查询中的继承表）的规划器问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}, "url": "/docs/compare/?release=9.2.10#9.2.10-6dccd35019b5d86d", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "d35026742dc052608b333f774e064754", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复嵌套 append 关系（例如 UNION ALL 子查询中的继承表）的规划器问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}, "url": "/docs/compare/?release=9.1.15#9.1.15-6dccd35019b5d86d", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "6786a15e534b5f80e0a3500d1dc889ff", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复嵌套 append 关系（例如 UNION ALL 子查询中的继承表）的规划器问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a72a900e52604a6102568e9f327b239341cc465b13a30da5ae99135a6e327fc"}, "url": "/docs/compare/?release=9.0.19#9.0.19-6dccd35019b5d86d", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-323ce84089ff3d42", "cves": [], "html": "<p>当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归（Andrew Gierth）</p>", "text": "当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归（Andrew Gierth）", "title": "当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "de8a5a9c086b08c080ccbfc16fea13314ece31f14ea1ada035bf4a1fb1dfc1fa", "section_path": ["变更"], "commit_groups": [["8e137b075", "ef8ac584e", "f04b112d5", "f270a1611"]], "identity_text": "Fail cleanly when a GiST index tuple doesn't fit on a page, rather than going into infinite recursion (Andrew Gierth)", "commit_aliases": ["8e137b075", "ef8ac584e", "f04b112d5", "f270a1611"], "source_commits": ["ef8ac584e"], "source_entry_id": "9.3.6/changes/037", "db_id": "a2c1f03fa4e2ce0cae9abf5f3f8aa6e1", "patch_ids": ["e1370cefa00e0acccb4c54df8ea811bf"], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202", "relations": [{"rule": 2, "type": "equivalent", "target": "2a89c2a630bfe3801c6decd95a8602bd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}}, {"rule": 2, "type": "equivalent", "target": "8ff81901ffd63447d66288aace0171c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}}, {"rule": 2, "type": "equivalent", "target": "c037035d6e4e6a7175e2e60b010a2a9a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c037035d6e4e6a7175e2e60b010a2a9a", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}, "url": "/docs/compare/?release=9.2.10#9.2.10-323ce84089ff3d42", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "2a89c2a630bfe3801c6decd95a8602bd", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}, "url": "/docs/compare/?release=9.1.15#9.1.15-323ce84089ff3d42", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "8ff81901ffd63447d66288aace0171c9", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "当 GiST 索引元组放不进一个页面时干净地报错，而不是陷入无限递归", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b59a6887fad265effd526836171db8562e60058729064be2f54fcd778904202"}, "url": "/docs/compare/?release=9.0.19#9.0.19-323ce84089ff3d42", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-b0f7f57a000a8576", "cves": [], "html": "<p>把设有逐表 <code>cost_limit</code> 和/或 <code>cost_delay</code> 设置的表排除在自动清理的全局代价平衡规则之外（Álvaro Herrera）</p>\n<p>先前的行为实质上忽略了这些逐表设置，这并非本意。现在，拥有这类设置的表将按照这些设置进行清理，独立于其他自动清理工作进程的状况。这可能导致比以前更重的总 I/O 负载，因此应当重新审视这类设置是否合理。</p>", "text": "把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外（Álvaro Herrera） 先前的行为实质上忽略了这些逐表设置，这并非本意。现在，拥有这类设置的表将按照这些设置进行清理，独立于其他自动清理工作进程的状况。这可能导致比以前更重的总 I/O 负载，因此应当重新审视这类设置是否合理。", "title": "把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "160140f905ffb989e5b71071d037d891413a45ae4c137f99fdb42585097b48cf", "section_path": ["变更"], "commit_groups": [["06646f52e", "50a757698", "67ed9d531", "769d6815e"]], "identity_text": "Exempt tables that have per-table cost_limit and/or cost_delay settings from autovacuum's global cost balancing rules (Álvaro Herrera) The previous behavior resulted in basically ignoring these per-table settings, which was unintended. Now, a table having such settings will be vacuumed using those settings, independently of what is going on in other autovacuum workers. This may result in heavier total I/O load than before, so such settings should be re-examined for sanity.", "commit_aliases": ["06646f52e", "50a757698", "67ed9d531", "769d6815e"], "source_commits": ["67ed9d531"], "source_entry_id": "9.3.6/changes/038", "db_id": "6fa7ebcd4913be2aaf2b370d81141ccd", "patch_ids": ["94aa23c7df617fe2989538ddd2d2e593"], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd", "relations": [{"rule": 2, "type": "equivalent", "target": "56d5db1144cfc063b85f91bc6a0d7bf5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}}, {"rule": 2, "type": "equivalent", "target": "752436ccd6f81cb8be968c3b7e60ac30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}}, {"rule": 2, "type": "equivalent", "target": "ecfffbd33f49c11764c0f639e106a243", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ecfffbd33f49c11764c0f639e106a243", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}, "url": "/docs/compare/?release=9.2.10#9.2.10-b0f7f57a000a8576", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "56d5db1144cfc063b85f91bc6a0d7bf5", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}, "url": "/docs/compare/?release=9.1.15#9.1.15-b0f7f57a000a8576", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "752436ccd6f81cb8be968c3b7e60ac30", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05ab5ca671c5fa63a75076111bedf822445ddefbfb6dc509f760fded9dc027dd"}, "url": "/docs/compare/?release=9.0.19#9.0.19-b0f7f57a000a8576", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-d1130ea15074dac2", "cves": [], "html": "<p>避免在自动清理名义上被关闭时仍然进行全面的自动清理（Tom Lane）</p>\n<p>即使自动清理名义上被关闭，我们仍会启动自动清理工作进程，去清理有 XID 回卷风险的表。然而，这样的工作进程随后会继续清理目标数据库中所有满足常规自动清理阈值的表。这往好里说是相当出乎意料，往坏里说会延误对回卷威胁的响应。现已修复：如果自动清理被关闭，工作进程<span><em>只</em></span>执行防回卷清理，不做任何其他工作。</p>", "text": "避免在自动清理名义上被关闭时仍然进行全面的自动清理（Tom Lane） 即使自动清理名义上被关闭，我们仍会启动自动清理工作进程，去清理有 XID 回卷风险的表。然而，这样的工作进程随后会继续清理目标数据库中所有满足常规自动清理阈值的表。这往好里说是相当出乎意料，往坏里说会延误对回卷威胁的响应。现已修复：如果自动清理被关闭，工作进程只执行防回卷清理，不做任何其他工作。", "title": "避免在自动清理名义上被关闭时仍然进行全面的自动清理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "97fa61d66728343e4c897c17eb67417cb0321f322b0e52ee10c332b3b652f985", "section_path": ["变更"], "commit_groups": [["4cbecdaaa", "91b4a881c", "c83aed34b", "f21afe421"]], "identity_text": "Avoid wholesale autovacuuming when autovacuum is nominally off (Tom Lane) Even when autovacuum is nominally off, we will still launch autovacuum worker processes to vacuum tables that are at risk of XID wraparound. However, such a worker process then proceeded to vacuum all tables in the target database, if they met the usual thresholds for autovacuuming. This is at best pretty unexpected; at worst it delays response to the wraparound threat. Fix it so that if autovacuum is turned off, workers only do anti-wraparound vacuums and not any other work.", "commit_aliases": ["4cbecdaaa", "91b4a881c", "c83aed34b", "f21afe421"], "source_commits": ["4cbecdaaa"], "source_entry_id": "9.3.6/changes/039", "db_id": "c851c1ab8a2dc9e8932b5f25e7417219", "patch_ids": ["fb309defcbd1069f1532954aabc29a79"], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0", "relations": [{"rule": 2, "type": "equivalent", "target": "4021bf65a4b3bf1ea4f6bfdb6dc900e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}}, {"rule": 2, "type": "equivalent", "target": "82cf724f9159190d006bc1596327a197", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}}, {"rule": 2, "type": "equivalent", "target": "aee4d00422aeaf5bd89e855f09b8a5d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "aee4d00422aeaf5bd89e855f09b8a5d2", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "避免在自动清理名义上被关闭时仍然进行全面的自动清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}, "url": "/docs/compare/?release=9.2.10#9.2.10-d1130ea15074dac2", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "4021bf65a4b3bf1ea4f6bfdb6dc900e9", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "避免在自动清理名义上被关闭时仍然进行全面的自动清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}, "url": "/docs/compare/?release=9.1.15#9.1.15-d1130ea15074dac2", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "82cf724f9159190d006bc1596327a197", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "避免在自动清理名义上被关闭时仍然进行全面的自动清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f6a0932ed1423c95a0f69c862e00f9185b4444c11eb989bd7686cab28244de0"}, "url": "/docs/compare/?release=9.0.19#9.0.19-d1130ea15074dac2", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-89523f453698bcc3", "cves": [], "html": "<p>在崩溃恢复期间，确保不记录日志的关系被重写为空并在恢复被视为完成之前同步到磁盘（Abhijit Menon-Sen、Andres Freund）</p>\n<p>这可以避免数据库崩溃恢复之后不记录日志的关系中残留垃圾数据的情形。</p>", "text": "在崩溃恢复期间，确保不记录日志的关系被重写为空并在恢复被视为完成之前同步到磁盘（Abhijit Menon-Sen、Andres Freund） 这可以避免数据库崩溃恢复之后不记录日志的关系中残留垃圾数据的情形。", "title": "在崩溃恢复期间，确保不记录日志的关系被重写为空并在恢复被视为完成之前同步到磁盘", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "41d280bdf7bcb9fa95085c0a183c7baf5856eaf96440618c48ca9b7d95035dcc", "section_path": ["变更"], "commit_groups": [["2c3ebfd1a", "d85b646d0", "ea8b3833e"], ["672b43e68", "c5baa708f", "fde9994bc"], ["86673a44a", "b0a48e996", "c7299d32f"]], "identity_text": "During crash recovery, ensure that unlogged relations are rewritten as empty and are synced to disk before recovery is considered complete (Abhijit Menon-Sen, Andres Freund) This prevents scenarios in which unlogged relations might contain garbage data following database crash recovery.", "commit_aliases": ["2c3ebfd1a", "672b43e68", "86673a44a", "b0a48e996", "c5baa708f", "c7299d32f", "d85b646d0", "ea8b3833e", "fde9994bc"], "source_commits": ["2c3ebfd1a", "672b43e68", "c7299d32f"], "source_entry_id": "9.3.6/changes/040", "db_id": "d01fc65f390d9bf6719082fe6336e305", "patch_ids": ["32fa22dc6071ae5f8f6f643f41c7dd67", "92376f0c2b90034bb83c1ce65cb9db70", "a8f9ac9c438da1e30ecf400d52d5ed8e"], "statement_hash": "b99073c05b245440c5c52ce338e0dc2f1961e77d833229ed40d92a1661651174", "relations": [{"rule": 2, "type": "equivalent", "target": "61787cb1f7ddb3bcdb9ec0901a518b9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b99073c05b245440c5c52ce338e0dc2f1961e77d833229ed40d92a1661651174"}}, {"rule": 2, "type": "equivalent", "target": "9512919e849c098edd3edad79e7b18ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b99073c05b245440c5c52ce338e0dc2f1961e77d833229ed40d92a1661651174"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "61787cb1f7ddb3bcdb9ec0901a518b9e", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "在崩溃恢复期间，确保不记录日志的关系被重写为空并在恢复被视为完成之前同步到磁盘", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b99073c05b245440c5c52ce338e0dc2f1961e77d833229ed40d92a1661651174"}, "url": "/docs/compare/?release=9.2.10#9.2.10-89523f453698bcc3", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "9512919e849c098edd3edad79e7b18ea", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "在崩溃恢复期间，确保不记录日志的关系被重写为空并在恢复被视为完成之前同步到磁盘", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b99073c05b245440c5c52ce338e0dc2f1961e77d833229ed40d92a1661651174"}, "url": "/docs/compare/?release=9.1.15#9.1.15-89523f453698bcc3", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.3.6-ccf4e5cf65943d4b", "cves": [], "html": "<p>修复热备查询与重放整页镜像之间的竞态条件（Heikki Linnakangas）</p>\n<p>这一失误可能导致热备中正在执行的查询出现瞬时错误。</p>", "text": "修复热备查询与重放整页镜像之间的竞态条件（Heikki Linnakangas） 这一失误可能导致热备中正在执行的查询出现瞬时错误。", "title": "修复热备查询与重放整页镜像之间的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "ff75b1bc136cc42321b14804a857bf50e9029ec861166b372ad7e18e2d360db9", "section_path": ["变更"], "commit_groups": [["5f1d931cf", "681dbe7d4", "7eab804c2", "861d3aa43"]], "identity_text": "Fix race condition between hot standby queries and replaying a full-page image (Heikki Linnakangas) This mistake could result in transient errors in queries being executed in hot standby.", "commit_aliases": ["5f1d931cf", "681dbe7d4", "7eab804c2", "861d3aa43"], "source_commits": ["861d3aa43"], "source_entry_id": "9.3.6/changes/041", "db_id": "1bd1bad09b77ea48409873a7eeea80d1", "patch_ids": ["5162380885d62ed3a40a9d530f94f923"], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593", "relations": [{"rule": 2, "type": "equivalent", "target": "4b29a174aae1beeef99fc80afd93f64c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}}, {"rule": 2, "type": "equivalent", "target": "4b5dfc49ec998d2fc465eb58c75d725e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}}, {"rule": 2, "type": "equivalent", "target": "5ea44d80df5105bfd05afc6f9c39e246", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b29a174aae1beeef99fc80afd93f64c", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复热备查询与重放整页镜像之间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}, "url": "/docs/compare/?release=9.2.10#9.2.10-ccf4e5cf65943d4b", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "5ea44d80df5105bfd05afc6f9c39e246", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复热备查询与重放整页镜像之间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}, "url": "/docs/compare/?release=9.1.15#9.1.15-ccf4e5cf65943d4b", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "4b5dfc49ec998d2fc465eb58c75d725e", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复热备查询与重放整页镜像之间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "efc7aa39025dfeb03323743ae1e06ffaf163edec3cad5d324d6ffd19caf31593"}, "url": "/docs/compare/?release=9.0.19#9.0.19-ccf4e5cf65943d4b", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-b44a747ebd454cc6", "cves": [], "html": "<p>修复若干恢复逻辑不当忽略 <code>COMMIT/ABORT PREPARED</code> WAL 记录的情况（Heikki Linnakangas）</p>\n<p>最值得注意的疏漏是 <code>recovery_target_xid</code> 无法用于在两阶段提交处停止。</p>", "text": "修复若干恢复逻辑不当忽略 COMMIT/ABORT PREPARED WAL 记录的情况（Heikki Linnakangas） 最值得注意的疏漏是 recovery_target_xid 无法用于在两阶段提交处停止。", "title": "修复若干恢复逻辑不当忽略 COMMIT/ABORT PREPARED WAL 记录的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "2824f9bf9fd3961557f00d4fbc0f81c04251137ae7bafd90de1fd873a38463c3", "section_path": ["变更"], "commit_groups": [["1578d13dc", "804983961", "a2a718b22", "de88ec6bf"]], "identity_text": "Fix several cases where recovery logic improperly ignored WAL records for COMMIT/ABORT PREPARED (Heikki Linnakangas) The most notable oversight was that recovery_target_xid could not be used to stop at a two-phase commit.", "commit_aliases": ["1578d13dc", "804983961", "a2a718b22", "de88ec6bf"], "source_commits": ["a2a718b22"], "source_entry_id": "9.3.6/changes/042", "db_id": "09d4561021808a1ed734d6ef2764f905", "patch_ids": ["88db819cb817d3e6eb8f47276b7fc970"], "statement_hash": "a61320b4fa04e5e2d2bfdb5789c601a9c38013b0ffbf6274192ef3de932ed7c2", "relations": [{"rule": 2, "type": "equivalent", "target": "b516663cc01b3ef97c89b733a8012d95", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61320b4fa04e5e2d2bfdb5789c601a9c38013b0ffbf6274192ef3de932ed7c2"}}, {"rule": 2, "type": "equivalent", "target": "c7083f8b0373a3b3e89eb120425b5f30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61320b4fa04e5e2d2bfdb5789c601a9c38013b0ffbf6274192ef3de932ed7c2"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b516663cc01b3ef97c89b733a8012d95", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复若干恢复逻辑不当忽略 COMMIT/ABORT PREPARED WAL 记录的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61320b4fa04e5e2d2bfdb5789c601a9c38013b0ffbf6274192ef3de932ed7c2"}, "url": "/docs/compare/?release=9.2.10#9.2.10-b44a747ebd454cc6", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "c7083f8b0373a3b3e89eb120425b5f30", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复若干恢复逻辑不当忽略 COMMIT/ABORT PREPARED WAL 记录的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61320b4fa04e5e2d2bfdb5789c601a9c38013b0ffbf6274192ef3de932ed7c2"}, "url": "/docs/compare/?release=9.1.15#9.1.15-b44a747ebd454cc6", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.3.6-284ea96c3997977f", "cves": [], "html": "<p>防止在崩溃恢复完成时把最新的 WAL 文件再次归档（Fujii Masao）</p>", "text": "防止在崩溃恢复完成时把最新的 WAL 文件再次归档（Fujii Masao）", "title": "防止在崩溃恢复完成时把最新的 WAL 文件再次归档", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "b8df57fd91187371c9dc9915be23b21f561b32ca2301de0f43812f53f8eeda28", "section_path": ["变更"], "commit_groups": [["d45cd9e19", "f904e9afd"]], "identity_text": "Prevent latest WAL file from being archived a second time at completion of crash recovery (Fujii Masao)", "commit_aliases": ["d45cd9e19", "f904e9afd"], "source_commits": ["d45cd9e19"], "source_entry_id": "9.3.6/changes/043", "db_id": "a25ea9f184445720466affed6837ab43", "patch_ids": ["9a0d27fe85b778952c56b448f7d99afb"], "statement_hash": "449de99a394b5a39b0988b6d1c5c0318571c8fb1885ad7e9bfc02dd97fef7e38", "relations": [{"rule": 2, "type": "equivalent", "target": "af570da8eecdd986c6cb000f4040dea9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "449de99a394b5a39b0988b6d1c5c0318571c8fb1885ad7e9bfc02dd97fef7e38"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "af570da8eecdd986c6cb000f4040dea9", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "防止在崩溃恢复完成时把最新的 WAL 文件再次归档", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "449de99a394b5a39b0988b6d1c5c0318571c8fb1885ad7e9bfc02dd97fef7e38"}, "url": "/docs/compare/?release=9.2.10#9.2.10-284ea96c3997977f", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}]}, {"id": "9.3.6-99aa1bdc6e571fca", "cves": [], "html": "<p>避免为时间线历史文件创建不必要的 <code>.ready</code> 标记文件（Fujii Masao）</p>", "text": "避免为时间线历史文件创建不必要的 .ready 标记文件（Fujii Masao）", "title": "避免为时间线历史文件创建不必要的 .ready 标记文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "2da8e8677e411b584cbc684e4318e194875efeac1f55f6dc1a0ada95eec759b7", "section_path": ["变更"], "commit_groups": [["38eb5d9e8", "3a3b7e316", "4e7468074", "83c7bfb9a"]], "identity_text": "Avoid creating unnecessary .ready marker files for timeline history files (Fujii Masao)", "commit_aliases": ["38eb5d9e8", "3a3b7e316", "4e7468074", "83c7bfb9a"], "source_commits": ["3a3b7e316"], "source_entry_id": "9.3.6/changes/044", "db_id": "d058ab05f49b8043e2f2c69c112629db", "patch_ids": ["b8171a07a49ab8bc5386348cc84ab99b"], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73", "relations": [{"rule": 2, "type": "equivalent", "target": "5626ddd890f9da57afc15adf99201eb6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}}, {"rule": 2, "type": "equivalent", "target": "5dda04433a1fdbb90a67624a8cf43bb8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}}, {"rule": 2, "type": "equivalent", "target": "9f6159c73a83f3abd22d7549db8622fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5626ddd890f9da57afc15adf99201eb6", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "避免为时间线历史文件创建不必要的 .ready 标记文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}, "url": "/docs/compare/?release=9.2.10#9.2.10-99aa1bdc6e571fca", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "5dda04433a1fdbb90a67624a8cf43bb8", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "避免为时间线历史文件创建不必要的 .ready 标记文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}, "url": "/docs/compare/?release=9.1.15#9.1.15-99aa1bdc6e571fca", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "9f6159c73a83f3abd22d7549db8622fd", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "避免为时间线历史文件创建不必要的 .ready 标记文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05b47e6f45e602e3981b081d13456b0b2f12eda9da59db4f7918011a600a4e73"}, "url": "/docs/compare/?release=9.0.19#9.0.19-99aa1bdc6e571fca", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-11b141fe12caa562", "cves": [], "html": "<p>修复当使用空的预备语句且 <code>log_statement</code> 设置为 <code>mod</code> 或 <code>ddl</code> 时可能出现的空指针解引用（Fujii Masao）</p>", "text": "修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用（Fujii Masao）", "title": "修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "2d7a0be309fb5f7b2b9051f9311d7fd205573ec8d8830224f67429c31bbb465d", "section_path": ["变更"], "commit_groups": [["52eed3d42", "78b1228ef", "81bffe63c", "857a5d6b5"]], "identity_text": "Fix possible null pointer dereference when an empty prepared statement is used and the log_statement setting is mod or ddl (Fujii Masao)", "commit_aliases": ["52eed3d42", "78b1228ef", "81bffe63c", "857a5d6b5"], "source_commits": ["52eed3d42"], "source_entry_id": "9.3.6/changes/045", "db_id": "c94832afdf3c4a7eeb0b3f20b4963e53", "patch_ids": ["b86c0aaddb6cf06de08f19e8e12d4af4"], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509", "relations": [{"rule": 2, "type": "equivalent", "target": "43a4b956b83b1f3782c8fb2999348d92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}}, {"rule": 2, "type": "equivalent", "target": "aee5363880e440aa1fae90fda8e97ef5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}}, {"rule": 2, "type": "equivalent", "target": "b2864447ef6fc392d6814fff230bd635", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2864447ef6fc392d6814fff230bd635", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}, "url": "/docs/compare/?release=9.2.10#9.2.10-11b141fe12caa562", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "43a4b956b83b1f3782c8fb2999348d92", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}, "url": "/docs/compare/?release=9.1.15#9.1.15-11b141fe12caa562", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "aee5363880e440aa1fae90fda8e97ef5", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05c556fc9b663c22641cad8eac80810450ad172e09f19a15867bf3c09b3b3509"}, "url": "/docs/compare/?release=9.0.19#9.0.19-11b141fe12caa562", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-973a1a096e7244ed", "cves": [], "html": "<p>将 <span>“<span>pgstat wait timeout</span>”</span> 警告消息改为 LOG 级别，并重新措辞使其更易理解（Tom Lane）</p>\n<p>这条消息最初被认为基本属于不可能发生的情况，但它在我们较慢的 buildfarm 成员上出现得足够频繁，成了干扰。现已将其降为 LOG 级别，并在措辞上多下了一点功夫：现在它的内容为 <span>“<span>using stale statistics instead of current ones because stats collector is not responding</span>”</span>。</p>", "text": "将 “pgstat wait timeout” 警告消息改为 LOG 级别，并重新措辞使其更易理解（Tom Lane） 这条消息最初被认为基本属于不可能发生的情况，但它在我们较慢的 buildfarm 成员上出现得足够频繁，成了干扰。现已将其降为 LOG 级别，并在措辞上多下了一点功夫：现在它的内容为 “using stale statistics instead of current ones because stats collector is not responding”。", "title": "将 “pgstat wait timeout” 警告消息改为 LOG 级别，并重新措辞使其更易理解", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "ac8bc74e7f55b25d3daa5736d86a507fab2aa80715cbb1e8ed4017359881f17d", "section_path": ["变更"], "commit_groups": [["19794e997", "3387cbbcb", "33b723538", "75b48e1ff", "a1a8d0249", "b87c1dcef"]], "identity_text": "Change pgstat wait timeout warning message to be LOG level, and rephrase it to be more understandable (Tom Lane) This message was originally thought to be essentially a can't-happen case, but it occurs often enough on our slower buildfarm members to be a nuisance. Reduce it to LOG level, and expend a bit more effort on the wording: it now reads using stale statistics instead of current ones because stats collector is not responding.", "commit_aliases": ["19794e997", "3387cbbcb", "33b723538", "75b48e1ff", "a1a8d0249", "b87c1dcef"], "source_commits": ["19794e997"], "source_entry_id": "9.3.6/changes/046", "db_id": "0b651e33c4d526e69e239435ca24fcf9", "patch_ids": ["ea68a9e94a4d1df7198fad1057181116"], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf", "relations": [{"rule": 2, "type": "equivalent", "target": "0474cd50c0922f5a041997400d962d1e", "evidence": {"same_day": true, "patch_ids": ["ea68a9e94a4d1df7198fad1057181116"], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}}, {"rule": 2, "type": "equivalent", "target": "35162f08ef3a72d38987f0163e12f3e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}}, {"rule": 2, "type": "equivalent", "target": "62eb1e3aaeb610d31969b8496b7dd78a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}}, {"rule": 2, "type": "equivalent", "target": "6eab481f0c4e8b30bf398f7471b58468", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0474cd50c0922f5a041997400d962d1e", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "将 “pgstat wait timeout” 警告消息改为 LOG 级别，并重新措辞使其更易理解", "evidence": {"same_day": true, "patch_ids": ["ea68a9e94a4d1df7198fad1057181116"], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}, "url": "/docs/compare/?release=9.4.1#9.4.1-973a1a096e7244ed", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "6eab481f0c4e8b30bf398f7471b58468", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "将“pgstat wait timeout”警告消息改为 LOG 级别，并重新措辞使其更易理解", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}, "url": "/docs/compare/?release=9.2.10#9.2.10-e24a6e1f6f169995", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "35162f08ef3a72d38987f0163e12f3e5", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "将 “pgstat wait timeout” 警告消息改为 LOG 级别，并重新措辞使其更易理解", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}, "url": "/docs/compare/?release=9.1.15#9.1.15-973a1a096e7244ed", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "62eb1e3aaeb610d31969b8496b7dd78a", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "将 “pgstat wait timeout” 警告消息改为 LOG 级别，并重新措辞使其更易理解", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be09e2d0ef78836a7fcb6aa09f4095f35050152d08f7e9bc5a4060e5ae30b2cf"}, "url": "/docs/compare/?release=9.0.19#9.0.19-973a1a096e7244ed", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-edc764f91f40c4e8", "cves": [], "html": "<p>修复 postmaster 的动态后台工作进程列表可能损坏的问题（Andres Freund）</p>", "text": "修复 postmaster 的动态后台工作进程列表可能损坏的问题（Andres Freund）", "title": "修复 postmaster 的动态后台工作进程列表可能损坏的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "001a4714fc7e909147b5a5f8f4fb6910ccc83f4238413ea4b1caa9bac6ebf112", "section_path": ["变更"], "commit_groups": [["cbd9619ac"]], "identity_text": "Fix possible corruption of postmaster's list of dynamic background workers (Andres Freund)", "commit_aliases": ["cbd9619ac"], "source_commits": ["cbd9619ac"], "source_entry_id": "9.3.6/changes/047", "db_id": "7fcbabf07de1b536f4d183f6ea1c7751", "patch_ids": ["bef3e5e44a3846b69f34a17865e02fc0"], "statement_hash": "f952db0385368fcba822c6bb9bb0c4c3cdbff2a3b7ad83d72f6a516610e1cddc", "relations": [], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-c9bca5fd9c2c817f", "cves": [], "html": "<p>修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性（Andres Freund）</p>", "text": "修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性（Andres Freund）", "title": "修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "2d92a2b21b738d8c0219817ba530673c22c9c1168b95b0cab4d2793775466bd4", "section_path": ["变更"], "commit_groups": [["27ef6b653", "5af508f66", "d0b7ffc0f", "f25e89601"]], "identity_text": "Fix SPARC spinlock implementation to ensure correctness if the CPU is being run in a non-TSO coherency mode, as some non-Solaris kernels do (Andres Freund)", "commit_aliases": ["27ef6b653", "5af508f66", "d0b7ffc0f", "f25e89601"], "source_commits": ["27ef6b653"], "source_entry_id": "9.3.6/changes/048", "db_id": "319eef87dc40a316cd10ec86f5d885c3", "patch_ids": ["9e1bd0b16877452aaf9fe76cff229e0a"], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a", "relations": [{"rule": 2, "type": "equivalent", "target": "c353e481398d01be81553c69bf39bfdd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}}, {"rule": 2, "type": "equivalent", "target": "d10959407e154f7adf545eadb49401bd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}}, {"rule": 2, "type": "equivalent", "target": "d5b8d25a68184225b1d75e10b77d2a0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d10959407e154f7adf545eadb49401bd", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}, "url": "/docs/compare/?release=9.2.10#9.2.10-c9bca5fd9c2c817f", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "c353e481398d01be81553c69bf39bfdd", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}, "url": "/docs/compare/?release=9.1.15#9.1.15-c9bca5fd9c2c817f", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "d5b8d25a68184225b1d75e10b77d2a0f", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 SPARC 自旋锁实现，确保当 CPU 以非 TSO 一致性模式运行时（如某些非 Solaris 内核所做的那样）其正确性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff3d1bf2e727091664f6bf0db072a5c7550fe8a243ada6ef095494b74968508a"}, "url": "/docs/compare/?release=9.0.19#9.0.19-c9bca5fd9c2c817f", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-e43269b78dfb3dee", "cves": [], "html": "<p>当 macOS 的<code>setlocale()</code>在 postmaster 内启动多余的线程时发出警告（Noah Misch）</p>", "text": "当 macOS 的setlocale()在 postmaster 内启动多余的线程时发出警告（Noah Misch）", "title": "当 macOS 的setlocale()在 postmaster 内启动多余的线程时发出警告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "68d16761a408fa50cd116708cc1d7cdaaa60db6eb7754c73a0a403405caa24d4", "section_path": ["变更"], "commit_groups": [["1a366d51e", "2e4946169", "5ca4e444c", "83fb1ca5c", "894459e59", "8dc83104e"]], "identity_text": "Warn if macOS's setlocale() starts an unwanted extra thread inside the postmaster (Noah Misch)", "commit_aliases": ["1a366d51e", "2e4946169", "5ca4e444c", "83fb1ca5c", "894459e59", "8dc83104e"], "source_commits": ["1a366d51e"], "source_entry_id": "9.3.6/changes/049", "db_id": "280cd3c47ac48d99b82e537149509cc8", "patch_ids": ["498a4b2a58dff86458a7948a89baafbd"], "statement_hash": "04baeba120c58a8529c6a98d7656feb8715d40cd5e5024ad4b70de417f372f77", "relations": [{"rule": 2, "type": "equivalent", "target": "361e0cf1a49a0793420573a3a470712c", "evidence": {"same_day": true, "patch_ids": ["498a4b2a58dff86458a7948a89baafbd"], "statement_hash": "04baeba120c58a8529c6a98d7656feb8715d40cd5e5024ad4b70de417f372f77"}}, {"rule": 2, "type": "equivalent", "target": "76c638badda1373ddd9539e8143b24d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04baeba120c58a8529c6a98d7656feb8715d40cd5e5024ad4b70de417f372f77"}}, {"rule": 2, "type": "equivalent", "target": "a20ef697cf014a8231a41b82ec46bbfe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04baeba120c58a8529c6a98d7656feb8715d40cd5e5024ad4b70de417f372f77"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "361e0cf1a49a0793420573a3a470712c", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "当 macOS 的 setlocale() 在 postmaster 内部启动多余的额外线程时发出警告", "evidence": {"same_day": true, "patch_ids": ["498a4b2a58dff86458a7948a89baafbd"], "statement_hash": "04baeba120c58a8529c6a98d7656feb8715d40cd5e5024ad4b70de417f372f77"}, "url": "/docs/compare/?release=9.4.1#9.4.1-145f54c04491106f", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "a20ef697cf014a8231a41b82ec46bbfe", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "当 macOS 的setlocale()在 postmaster 内启动多余的线程时发出警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04baeba120c58a8529c6a98d7656feb8715d40cd5e5024ad4b70de417f372f77"}, "url": "/docs/compare/?release=9.2.10#9.2.10-e43269b78dfb3dee", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "76c638badda1373ddd9539e8143b24d0", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "当 macOS 的setlocale()在 postmaster 内启动多余的线程时发出警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04baeba120c58a8529c6a98d7656feb8715d40cd5e5024ad4b70de417f372f77"}, "url": "/docs/compare/?release=9.1.15#9.1.15-e43269b78dfb3dee", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.3.6-9695d3d49e5eb963", "cves": [], "html": "<p>修复 <code>PQconnectdbParams()</code> 中重复 <code>dbname</code> 参数的处理（Alex Shulgin）</p>\n<p>如果第一个 <code>dbname</code> 出现处包含要展开的连接串或 URI，就会出现意外行为。</p>", "text": "修复 PQconnectdbParams() 中重复 dbname 参数的处理（Alex Shulgin） 如果第一个 dbname 出现处包含要展开的连接串或 URI，就会出现意外行为。", "title": "修复 PQconnectdbParams() 中重复 dbname 参数的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "22df625bd9028a602c1d1f3b3de6d6828f9de7afe3906f333a60e8164af2c980", "section_path": ["变更"], "commit_groups": [["08cd4d9a6", "95be34362", "9880fea4f", "9b468bcec"]], "identity_text": "Fix processing of repeated dbname parameters in PQconnectdbParams() (Alex Shulgin) Unexpected behavior ensued if the first occurrence of dbname contained a connection string or URI to be expanded.", "commit_aliases": ["08cd4d9a6", "95be34362", "9880fea4f", "9b468bcec"], "source_commits": ["08cd4d9a6"], "source_entry_id": "9.3.6/changes/050", "db_id": "429fd1863dbd274ded147132bf138eb0", "patch_ids": ["802bbe21c68abb2ed6663216c71e734e"], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67", "relations": [{"rule": 2, "type": "equivalent", "target": "1ec13702362288c8cb7b3540e0deb270", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}}, {"rule": 2, "type": "equivalent", "target": "36c1a4788f4f14522706fd9200223785", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}}, {"rule": 2, "type": "equivalent", "target": "5535075e605e8c0c19c566809fa3e5c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1ec13702362288c8cb7b3540e0deb270", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 PQconnectdbParams() 中重复 dbname 参数的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}, "url": "/docs/compare/?release=9.2.10#9.2.10-9695d3d49e5eb963", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "36c1a4788f4f14522706fd9200223785", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 PQconnectdbParams() 中重复 dbname 参数的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}, "url": "/docs/compare/?release=9.1.15#9.1.15-9695d3d49e5eb963", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "5535075e605e8c0c19c566809fa3e5c8", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 PQconnectdbParams() 中重复 dbname 参数的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ceba4bea8d0240359e4d29bc7b986d4a07d7763a8674fb1270a10dc82ef3a67"}, "url": "/docs/compare/?release=9.0.19#9.0.19-9695d3d49e5eb963", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-aebb5023702b7acf", "cves": [], "html": "<p>确保 <span>libpq</span> 在遇到意外的套接字 EOF 时报告合适的错误消息（Marko Tiikkaja、Tom Lane）</p>\n<p>取决于内核行为，当服务器意外关闭套接字时，<span>libpq</span> 可能返回空的错误字符串而不是有用的信息。</p>", "text": "确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息（Marko Tiikkaja、Tom Lane） 取决于内核行为，当服务器意外关闭套接字时，libpq 可能返回空的错误字符串而不是有用的信息。", "title": "确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "8ce9a73ce34980fbc611fa3388fc103d48d4fa4c262d9b046e82a3c436ff64d8", "section_path": ["变更"], "commit_groups": [["52ef33f72", "6fa31d8d1", "98144378c", "ac6e87537"]], "identity_text": "Ensure that libpq reports a suitable error message on unexpected socket EOF (Marko Tiikkaja, Tom Lane) Depending on kernel behavior, libpq might return an empty error string rather than something useful when the server unexpectedly closed the socket.", "commit_aliases": ["52ef33f72", "6fa31d8d1", "98144378c", "ac6e87537"], "source_commits": ["52ef33f72"], "source_entry_id": "9.3.6/changes/051", "db_id": "69925bd3fcd0c10bffa088f121766ee3", "patch_ids": ["0b77a9f9e98f3ec952f9486f85ea1b48"], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2", "relations": [{"rule": 2, "type": "equivalent", "target": "905c10a90927728d9e7a58be115b5bda", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}}, {"rule": 2, "type": "equivalent", "target": "931a577f6233c9dfa0b9f4a5b46f450e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}}, {"rule": 2, "type": "equivalent", "target": "bc1eee2995ef4bc97ef72bd0bb83f7d9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "931a577f6233c9dfa0b9f4a5b46f450e", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}, "url": "/docs/compare/?release=9.2.10#9.2.10-aebb5023702b7acf", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "905c10a90927728d9e7a58be115b5bda", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}, "url": "/docs/compare/?release=9.1.15#9.1.15-aebb5023702b7acf", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "bc1eee2995ef4bc97ef72bd0bb83f7d9", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd98673f71e6e40941059ed0738c306eb878019708436b45c80c4e60121809f2"}, "url": "/docs/compare/?release=9.0.19#9.0.19-aebb5023702b7acf", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-7a4f1e67fc561bce", "cves": [], "html": "<p>在 <code>PQreset()</code> 期间清除任何旧的错误消息（Heikki Linnakangas）</p>\n<p>如果反复调用 <code>PQreset()</code> 而连接始终无法重建，失败连接尝试的错误消息会在 <code>PGconn</code> 的错误字符串中不断累积。</p>", "text": "在 PQreset() 期间清除任何旧的错误消息（Heikki Linnakangas） 如果反复调用 PQreset() 而连接始终无法重建，失败连接尝试的错误消息会在 PGconn 的错误字符串中不断累积。", "title": "在 PQreset() 期间清除任何旧的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "f78be59e7f7ef3bf6357424c81dd6b82ad11644fbcbfc4b55b81e4aa1332834b", "section_path": ["变更"], "commit_groups": [["1325b239b", "1a27fbd07", "49ef4eba2", "8f7bd8e91"]], "identity_text": "Clear any old error message during PQreset() (Heikki Linnakangas) If PQreset() is called repeatedly, and the connection cannot be re-established, error messages from the failed connection attempts kept accumulating in the PGconn's error string.", "commit_aliases": ["1325b239b", "1a27fbd07", "49ef4eba2", "8f7bd8e91"], "source_commits": ["1325b239b"], "source_entry_id": "9.3.6/changes/052", "db_id": "b98cf3c852159bab7dc0775181034270", "patch_ids": ["646978b8dad5d974a49a39c883afe100"], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0", "relations": [{"rule": 2, "type": "equivalent", "target": "960e6797c9197011d2898fc9e8d85a05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}}, {"rule": 2, "type": "equivalent", "target": "c30ff216bec4a74e7f470d4d01042034", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}}, {"rule": 2, "type": "equivalent", "target": "cab90edf3b85ffb5926159fe7de57166", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c30ff216bec4a74e7f470d4d01042034", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "在 PQreset() 期间清除任何旧的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}, "url": "/docs/compare/?release=9.2.10#9.2.10-7a4f1e67fc561bce", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "960e6797c9197011d2898fc9e8d85a05", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "在 PQreset() 期间清除任何旧的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}, "url": "/docs/compare/?release=9.1.15#9.1.15-7a4f1e67fc561bce", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "cab90edf3b85ffb5926159fe7de57166", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "在 PQreset() 期间清除任何旧的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "df696ebc08e23ce5c97d0ca0762046fa6b86f96c3d6dac650584e2552935aee0"}, "url": "/docs/compare/?release=9.0.19#9.0.19-7a4f1e67fc561bce", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-1d46455402260c7d", "cves": [], "html": "<p>正确处理 <span>libpq</span> 解析连接选项期间的内存不足情况（Alex Shulgin、Heikki Linnakangas）</p>", "text": "正确处理 libpq 解析连接选项期间的内存不足情况（Alex Shulgin、Heikki Linnakangas）", "title": "正确处理 libpq 解析连接选项期间的内存不足情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "7f87a53c8703966808084fe0d7d9776552cf04171dbfca83796e7dc0b3952a83", "section_path": ["变更"], "commit_groups": [["1f3517039", "5053ad206", "abcab2a64", "d3b162a3d"]], "identity_text": "Properly handle out-of-memory conditions while parsing connection options in libpq (Alex Shulgin, Heikki Linnakangas)", "commit_aliases": ["1f3517039", "5053ad206", "abcab2a64", "d3b162a3d"], "source_commits": ["d3b162a3d"], "source_entry_id": "9.3.6/changes/053", "db_id": "ff2ff23fd845e95265615670699b5e33", "patch_ids": ["454f94065bdd1deb11b25a7c0a8443f6"], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a", "relations": [{"rule": 2, "type": "equivalent", "target": "73293bd1607fa18a4bd43ec76539c423", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}}, {"rule": 2, "type": "equivalent", "target": "9213565e1e2863749f4433b0c32824ab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}}, {"rule": 2, "type": "equivalent", "target": "c5207154e564cef8a9fa0e50944287d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9213565e1e2863749f4433b0c32824ab", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "正确处理 libpq 解析连接选项期间的内存不足情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}, "url": "/docs/compare/?release=9.2.10#9.2.10-1d46455402260c7d", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "73293bd1607fa18a4bd43ec76539c423", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "正确处理 libpq 解析连接选项期间的内存不足情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}, "url": "/docs/compare/?release=9.1.15#9.1.15-1d46455402260c7d", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "c5207154e564cef8a9fa0e50944287d6", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "正确处理 libpq 解析连接选项期间的内存不足情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a996d059f0db0ccf017af25a0fe1db34242e8579fba35c6aa295f8f485254a9a"}, "url": "/docs/compare/?release=9.0.19#9.0.19-1d46455402260c7d", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-85752a1d91670ed8", "cves": [], "html": "<p>修复 <span>ecpg</span> 版 <code>ParseDateTime()</code> 中的数组越界（Michael Paquier）</p>", "text": "修复 ecpg 版 ParseDateTime() 中的数组越界（Michael Paquier）", "title": "修复 ecpg 版 ParseDateTime() 中的数组越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "238484a2b1dc772e720cabf1f217b466f21b46d09e8ac42a929a32222cf44967", "section_path": ["变更"], "commit_groups": [["037b912ec", "b513205bc", "d3cfe20c6", "d9a1e9de5"]], "identity_text": "Fix array overrun in ecpg's version of ParseDateTime() (Michael Paquier)", "commit_aliases": ["037b912ec", "b513205bc", "d3cfe20c6", "d9a1e9de5"], "source_commits": ["d3cfe20c6"], "source_entry_id": "9.3.6/changes/054", "db_id": "7fba479cce1339bd2f646da92c078d50", "patch_ids": ["5c6315c183708737c24b419e7c370e93"], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2", "relations": [{"rule": 2, "type": "equivalent", "target": "908c54fd4ec279884f38ce05b0d2ad88", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}}, {"rule": 2, "type": "equivalent", "target": "ac56a52bc22f77a1933b82006ef42391", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}}, {"rule": 2, "type": "equivalent", "target": "dcf9b81abf48d31da8d984f4426fc7ac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "dcf9b81abf48d31da8d984f4426fc7ac", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 ecpg 版 ParseDateTime() 中的数组越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}, "url": "/docs/compare/?release=9.2.10#9.2.10-85752a1d91670ed8", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "908c54fd4ec279884f38ce05b0d2ad88", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 ecpg 版 ParseDateTime() 中的数组越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}, "url": "/docs/compare/?release=9.1.15#9.1.15-85752a1d91670ed8", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "ac56a52bc22f77a1933b82006ef42391", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 ecpg 版 ParseDateTime() 中的数组越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "81e3afc68d041031ef42e2ffb3a26b68f9f989de4e82eedc2118f5f2cd0cf9f2"}, "url": "/docs/compare/?release=9.0.19#9.0.19-85752a1d91670ed8", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-d3f661f7c0807dfc", "cves": [], "html": "<p>在 <span>initdb</span> 中，当指定的密码文件为空时给出更清晰的错误消息（Mats Erik Andersson）</p>", "text": "在 initdb 中，当指定的密码文件为空时给出更清晰的错误消息（Mats Erik Andersson）", "title": "在 initdb 中，当指定的密码文件为空时给出更清晰的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "1ad618638095695b91078a2b82d92ed2d7df08c384a65af83bcfe06cb6766527", "section_path": ["变更"], "commit_groups": [["2b53d583d", "2df66f01a", "729202754", "d67be559e"]], "identity_text": "In initdb, give a clearer error message if a password file is specified but is empty (Mats Erik Andersson)", "commit_aliases": ["2b53d583d", "2df66f01a", "729202754", "d67be559e"], "source_commits": ["2df66f01a"], "source_entry_id": "9.3.6/changes/055", "db_id": "ae26abaab93a54279a6ce7f8e136ad07", "patch_ids": ["33da551f04a1da56db724a1d5e01a909"], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8", "relations": [{"rule": 2, "type": "equivalent", "target": "974589163a17c6bb747036121730c0c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}}, {"rule": 2, "type": "equivalent", "target": "a795460f251295767d33e073790eed3d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}}, {"rule": 2, "type": "equivalent", "target": "a9559aee91978fd59ff877e9805a2c45", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "974589163a17c6bb747036121730c0c6", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "在 initdb 中，当指定的密码文件为空时给出更清晰的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}, "url": "/docs/compare/?release=9.2.10#9.2.10-d3f661f7c0807dfc", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "a795460f251295767d33e073790eed3d", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "在 initdb 中，当指定的密码文件为空时给出更清晰的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}, "url": "/docs/compare/?release=9.1.15#9.1.15-d3f661f7c0807dfc", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "a9559aee91978fd59ff877e9805a2c45", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "在 initdb 中，当指定的密码文件为空时给出更清晰的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5dccae8c244bb531458ce2d6b4b4ba44277e009c5f640307de6e660b0cc53f8"}, "url": "/docs/compare/?release=9.0.19#9.0.19-d3f661f7c0807dfc", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-22c5dc5d1b423d32", "cves": [], "html": "<p>修复 <span>psql</span> 的 <code>\\s</code> 命令，使其与 libedit 良好配合，并新增分页器支持（Stepan Rutz、Tom Lane）</p>\n<p>使用 libedit 而非 readline 时，<code>\\s</code> 会以一种相当难读的编码格式打印命令历史，而且在较新的 libedit 版本上可能完全失败。现已改为由我们自己打印历史而不是让库来做。一个令人愉快的副作用是，在合适的时候会使用分页器。</p>\n<p>此补丁还修复了一个在使用 libedit 保存命令历史时换行编码不一致的缺陷。旧版 <span>psql</span> 写出的多行历史条目在此补丁后可以干净地读取，但反过来未必可行，具体取决于所涉及的 libedit 版本。</p>", "text": "修复 psql 的 \\s 命令，使其与 libedit 良好配合，并新增分页器支持（Stepan Rutz、Tom Lane） 使用 libedit 而非 readline 时，\\s 会以一种相当难读的编码格式打印命令历史，而且在较新的 libedit 版本上可能完全失败。现已改为由我们自己打印历史而不是让库来做。一个令人愉快的副作用是，在合适的时候会使用分页器。 此补丁还修复了一个在使用 libedit 保存命令历史时换行编码不一致的缺陷。旧版 psql 写出的多行历史条目在此补丁后可以干净地读取，但反过来未必可行，具体取决于所涉及的 libedit 版本。", "title": "修复 psql 的 \\s 命令，使其与 libedit 良好配合，并新增分页器支持", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "e9a663c41108f759cd2de57b8d49aa014ac0f875d24f47886c0f5147d8d05d2b", "section_path": ["变更"], "commit_groups": [["440fcc568", "44c518328", "886b58b47", "b0fd5c552"]], "identity_text": "Fix psql's \\s command to work nicely with libedit, and add pager support (Stepan Rutz, Tom Lane) When using libedit rather than readline, \\s printed the command history in a fairly unreadable encoded format, and on recent libedit versions might fail altogether. Fix that by printing the history ourselves rather than having the library do it. A pleasant side-effect is that the pager is used if appropriate. This patch also fixes a bug that caused newline encoding to be applied inconsistently when saving the command history with libedit. Multiline history entries written by older psql versions will be read cleanly with this patch, but perhaps not vice versa, depending on the exact libedit versions involved.", "commit_aliases": ["440fcc568", "44c518328", "886b58b47", "b0fd5c552"], "source_commits": ["b0fd5c552"], "source_entry_id": "9.3.6/changes/056", "db_id": "290ba69d6a7bf963e6ff4eea69530d6a", "patch_ids": ["6a6969ebf2bc57f4c2268ce199f78fb5"], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5", "relations": [{"rule": 2, "type": "equivalent", "target": "02964a88cdd4606e839eeff016bf8979", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}}, {"rule": 2, "type": "equivalent", "target": "27a012123eafccd78fd4148b7d003897", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}}, {"rule": 2, "type": "equivalent", "target": "d0b653e8011bfcc7e5d6bf63673fcb2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "27a012123eafccd78fd4148b7d003897", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 psql 的 \\s 命令，使其与 libedit 良好配合，并新增分页器支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}, "url": "/docs/compare/?release=9.2.10#9.2.10-22c5dc5d1b423d32", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "02964a88cdd4606e839eeff016bf8979", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 psql 的 \\s 命令，使其与 libedit 良好配合，并新增分页器支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}, "url": "/docs/compare/?release=9.1.15#9.1.15-22c5dc5d1b423d32", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "d0b653e8011bfcc7e5d6bf63673fcb2c", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 psql 的 \\s 命令，使其与 libedit 良好配合，并新增分页器支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "13c163b3c2affe207fece28813d56bf5fbadecdb5f69210129e68bf5a11498f5"}, "url": "/docs/compare/?release=9.0.19#9.0.19-22c5dc5d1b423d32", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-933ba28d99ae0cad", "cves": [], "html": "<p>改进 <span>psql</span> 特殊变量解析的一致性（Tom Lane）</p>\n<p>允许 <code>ECHO_HIDDEN</code> 和 <code>ON_ERROR_ROLLBACK</code> 使用 <code>on</code> 和 <code>off</code> 的变体拼写（如 <code>1</code>/<code>0</code>）。对 <code>COMP_KEYWORD_CASE</code>、<code>ECHO</code>、<code>ECHO_HIDDEN</code>、<code>HISTCONTROL</code>、<code>ON_ERROR_ROLLBACK</code> 和 <code>VERBOSITY</code> 的无法识别的值发出警告。对所有这些变量的所有值进行不区分大小写的识别；此前大小写敏感与不敏感的行为混杂在一起。</p>", "text": "改进 psql 特殊变量解析的一致性（Tom Lane） 允许 ECHO_HIDDEN 和 ON_ERROR_ROLLBACK 使用 on 和 off 的变体拼写（如 1/0）。对 COMP_KEYWORD_CASE、ECHO、ECHO_HIDDEN、HISTCONTROL、ON_ERROR_ROLLBACK 和 VERBOSITY 的无法识别的值发出警告。对所有这些变量的所有值进行不区分大小写的识别；此前大小写敏感与不敏感的行为混杂在一起。", "title": "改进 psql 特殊变量解析的一致性", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "befee15c5e3c14ceb2fd186d2f000e46dc5ba17cb987b7c48491cc5be7fb8cf5", "section_path": ["变更"], "commit_groups": [["1773e0702", "2600e4436", "28551797a", "64c506535", "7582cce56", "c35249939"]], "identity_text": "Improve consistency of parsing of psql's special variables (Tom Lane) Allow variant spellings of on and off (such as 1/0) for ECHO_HIDDEN and ON_ERROR_ROLLBACK. Report a warning for unrecognized values for COMP_KEYWORD_CASE, ECHO, ECHO_HIDDEN, HISTCONTROL, ON_ERROR_ROLLBACK, and VERBOSITY. Recognize all values for all these variables case-insensitively; previously there was a mishmash of case-sensitive and case-insensitive behaviors.", "commit_aliases": ["1773e0702", "2600e4436", "28551797a", "64c506535", "7582cce56", "c35249939"], "source_commits": ["7582cce56"], "source_entry_id": "9.3.6/changes/057", "db_id": "d59d691cdb6b5319e9be7cab3e536274", "patch_ids": ["df8133cf502fe3e5255ae973b91aad3b"], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13", "relations": [{"rule": 2, "type": "equivalent", "target": "6b862f27f186fc8fdf2591fac34b4934", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}}, {"rule": 2, "type": "equivalent", "target": "8457f5bc11a38b4a799092ba2f1545b6", "evidence": {"same_day": true, "patch_ids": ["df8133cf502fe3e5255ae973b91aad3b"], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}}, {"rule": 2, "type": "equivalent", "target": "af5039a683c6a7e653cce3887d3626d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}}, {"rule": 2, "type": "equivalent", "target": "d1293e0760f984f1b45e41b61d4b70d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8457f5bc11a38b4a799092ba2f1545b6", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "改进 psql 特殊变量解析的一致性", "evidence": {"same_day": true, "patch_ids": ["df8133cf502fe3e5255ae973b91aad3b"], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}, "url": "/docs/compare/?release=9.4.1#9.4.1-933ba28d99ae0cad", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "af5039a683c6a7e653cce3887d3626d2", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "改进 psql 特殊变量解析的一致性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}, "url": "/docs/compare/?release=9.2.10#9.2.10-933ba28d99ae0cad", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "6b862f27f186fc8fdf2591fac34b4934", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "改进 psql 特殊变量解析的一致性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}, "url": "/docs/compare/?release=9.1.15#9.1.15-933ba28d99ae0cad", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "d1293e0760f984f1b45e41b61d4b70d2", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "改进 psql 特殊变量解析的一致性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab61658ff899e3c5d3d9358baf98c7bac86ab1b118ca97ffdb2776457dd6ba13"}, "url": "/docs/compare/?release=9.0.19#9.0.19-933ba28d99ae0cad", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-0b73345209c9821c", "cves": [], "html": "<p>让 <span>psql</span> 的 <code>\\watch</code> 命令按照 <code>\\pset null</code> 的设置显示空值（Fujii Masao）</p>", "text": "让 psql 的 \\watch 命令按照 \\pset null 的设置显示空值（Fujii Masao）", "title": "让 psql 的 \\watch 命令按照 \\pset null 的设置显示空值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "0b5ad5af132ed333acb6f4e05ae803d9810c540550e4e20077a263afd366b1a6", "section_path": ["变更"], "commit_groups": [["4b1953079"]], "identity_text": "Make psql's \\watch command display nulls as specified by \\pset null (Fujii Masao)", "commit_aliases": ["4b1953079"], "source_commits": ["4b1953079"], "source_entry_id": "9.3.6/changes/058", "db_id": "3ed6703757225392665151d4e561e011", "patch_ids": ["5756cb3555453eff4fcd247527edfe7c"], "statement_hash": "ad1e550d65017823f71bb03498871c1a727b97dbcdeaa169d85e01ab91d5b8a2", "relations": [], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-4eba2ab45b7b3c33", "cves": [], "html": "<p>修复 <span>psql</span> 扩展模式显示在使用 <code>border</code> = 3 且 <code>linestyle</code> = <code>ascii</code> 或 <code>unicode</code> 时的一致性问题（Stephen Frost）</p>", "text": "修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题（Stephen Frost）", "title": "修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "7217e4604421c4804e435236b7f090020278bf8a00a7447d17f16fc98a0a50a8", "section_path": ["变更"], "commit_groups": [["1f89fc218", "4d96e93cb", "5d63f2159", "7ec399094"]], "identity_text": "Fix psql's expanded-mode display to work consistently when using border = 3 and linestyle = ascii or unicode (Stephen Frost)", "commit_aliases": ["1f89fc218", "4d96e93cb", "5d63f2159", "7ec399094"], "source_commits": ["7ec399094"], "source_entry_id": "9.3.6/changes/059", "db_id": "b359ff590bc99913ca7a1b4bd65f094d", "patch_ids": ["d9e8e7fe3de677f43832fd6a8d2bb8ef"], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9", "relations": [{"rule": 2, "type": "equivalent", "target": "2c3da90d7164c9dd244aa36b890d1216", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}}, {"rule": 2, "type": "equivalent", "target": "34c1f1a9ca9bb94fd0844d7522b0f57f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}}, {"rule": 2, "type": "equivalent", "target": "e1cecfa2bf0dbfc22ff01487c60201a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e1cecfa2bf0dbfc22ff01487c60201a4", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}, "url": "/docs/compare/?release=9.2.10#9.2.10-4eba2ab45b7b3c33", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "34c1f1a9ca9bb94fd0844d7522b0f57f", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}, "url": "/docs/compare/?release=9.1.15#9.1.15-4eba2ab45b7b3c33", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "2c3da90d7164c9dd244aa36b890d1216", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d05d54b7763f502c0c7e58a17c5a696fac6cc527045a69af075629f66fe4edb9"}, "url": "/docs/compare/?release=9.0.19#9.0.19-4eba2ab45b7b3c33", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-6ded55368119fb4c", "cves": [], "html": "<p>修复<span>pg_dump</span>处理事件触发器注释时失败的问题（Tom Lane）</p>", "text": "修复pg_dump处理事件触发器注释时失败的问题（Tom Lane）", "title": "修复pg_dump处理事件触发器注释时失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "5259588d45a4b09c4149e3d5365a8ca1ce5e3d69ee3e98aa64bc02e470c36dcf", "section_path": ["变更"], "commit_groups": [["adfc157dd", "bb1e2426b", "c99e41f68"]], "identity_text": "Fix pg_dump to handle comments on event triggers without failing (Tom Lane)", "commit_aliases": ["adfc157dd", "bb1e2426b", "c99e41f68"], "source_commits": ["bb1e2426b"], "source_entry_id": "9.3.6/changes/060", "db_id": "127b0c8fc0411b87b5886aad3eca0eea", "patch_ids": ["e9df00c356a365cdd6c1c0f3b6ee19d7"], "statement_hash": "bdce89206462959957177c49d66aabbc23d92dc5aad3bb1b7df73963f1e98e01", "relations": [{"rule": 2, "type": "equivalent", "target": "030504b8b230dfcf9a44229d9de48381", "evidence": {"same_day": true, "patch_ids": ["e9df00c356a365cdd6c1c0f3b6ee19d7"], "statement_hash": "bdce89206462959957177c49d66aabbc23d92dc5aad3bb1b7df73963f1e98e01"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "030504b8b230dfcf9a44229d9de48381", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "修复 pg_dump 使其处理事件触发器上的注释时不失败", "evidence": {"same_day": true, "patch_ids": ["e9df00c356a365cdd6c1c0f3b6ee19d7"], "statement_hash": "bdce89206462959957177c49d66aabbc23d92dc5aad3bb1b7df73963f1e98e01"}, "url": "/docs/compare/?release=9.4.1#9.4.1-6ea3653a26a25fb3", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}]}, {"id": "9.3.6-ab1d5d6da270d189", "cves": [], "html": "<p>允许并行<span>pg_dump</span>使用<code>--serializable-deferrable</code>（Kevin Grittner）</p>", "text": "允许并行pg_dump使用--serializable-deferrable（Kevin Grittner）", "title": "允许并行pg_dump使用--serializable-deferrable", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "ad43b17b51b280e50c9ff7ddc92a2e12e1145cc44300ffacc158172eb7954bf0", "section_path": ["变更"], "commit_groups": [["cb0168528", "cc609c46f", "cff1bd2a3"]], "identity_text": "Allow parallel pg_dump to use --serializable-deferrable (Kevin Grittner)", "commit_aliases": ["cb0168528", "cc609c46f", "cff1bd2a3"], "source_commits": ["cc609c46f"], "source_entry_id": "9.3.6/changes/061", "db_id": "3d924c7904664bb6145d97dc378f3ada", "patch_ids": ["4555591fd637b4e0613c5c3ecf056547"], "statement_hash": "093555a88a08660c2e71f4068f564da3e60bd4480b821f0362e2b33fdfb6a71c", "relations": [{"rule": 2, "type": "equivalent", "target": "496d3d6007a653c65906920b1b565af5", "evidence": {"same_day": true, "patch_ids": ["4555591fd637b4e0613c5c3ecf056547"], "statement_hash": "093555a88a08660c2e71f4068f564da3e60bd4480b821f0362e2b33fdfb6a71c"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "496d3d6007a653c65906920b1b565af5", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "允许并行 pg_dump 使用 --serializable-deferrable", "evidence": {"same_day": true, "patch_ids": ["4555591fd637b4e0613c5c3ecf056547"], "statement_hash": "093555a88a08660c2e71f4068f564da3e60bd4480b821f0362e2b33fdfb6a71c"}, "url": "/docs/compare/?release=9.4.1#9.4.1-24d7704a6c2802c7", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}]}, {"id": "9.3.6-ebc995b024c13347", "cves": [], "html": "<p>改进当数据库中大量存在同一对对象之间的多条依赖路径时 <span>pg_dump</span> 的性能（Tom Lane）</p>", "text": "改进当数据库中大量存在同一对对象之间的多条依赖路径时 pg_dump 的性能（Tom Lane）", "title": "改进当数据库中大量存在同一对对象之间的多条依赖路径时 pg_dump 的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "1c698de3b57a82b590d9921085b71f6f15f6cf60f390284d3935f4ad4d4c3ce8", "section_path": ["变更"], "commit_groups": [["40c333c39", "51fc61334", "a6c567437"]], "identity_text": "Improve performance of pg_dump when the database contains many instances of multiple dependency paths between the same two objects (Tom Lane)", "commit_aliases": ["40c333c39", "51fc61334", "a6c567437"], "source_commits": ["51fc61334"], "source_entry_id": "9.3.6/changes/062", "db_id": "ae9390ac2a359e1e38c9fa9fea5acc3b", "patch_ids": ["11fd8ab9d7730a458ce39d867b14d5ab"], "statement_hash": "ca37bf5434e420ab3d67760741b3e6dccbb35362044088d2e2483ec111ecb2ef", "relations": [{"rule": 2, "type": "equivalent", "target": "18537692103d8ad806c3a2a4f1f89d52", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca37bf5434e420ab3d67760741b3e6dccbb35362044088d2e2483ec111ecb2ef"}}, {"rule": 2, "type": "equivalent", "target": "317b2d7b9fb00ccec2fc8eda11078224", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca37bf5434e420ab3d67760741b3e6dccbb35362044088d2e2483ec111ecb2ef"}}], "version": "9.3.6", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "317b2d7b9fb00ccec2fc8eda11078224", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "改进当数据库中大量存在同一对对象之间的多条依赖路径时 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca37bf5434e420ab3d67760741b3e6dccbb35362044088d2e2483ec111ecb2ef"}, "url": "/docs/compare/?release=9.2.10#9.2.10-ebc995b024c13347", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "18537692103d8ad806c3a2a4f1f89d52", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "改进当数据库中大量存在同一对对象之间的多条依赖路径时 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca37bf5434e420ab3d67760741b3e6dccbb35362044088d2e2483ec111ecb2ef"}, "url": "/docs/compare/?release=9.1.15#9.1.15-ebc995b024c13347", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.3.6-5623d0736e805469", "cves": [], "html": "<p>修复 <span>pg_dumpall</span>，恢复其从 8.1 之前服务器转储的能力（Gilles Darold）</p>", "text": "修复 pg_dumpall，恢复其从 8.1 之前服务器转储的能力（Gilles Darold）", "title": "修复 pg_dumpall，恢复其从 8.1 之前服务器转储的能力", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "859f7a550ca42fe9743a7e722c4bbe8e635e37f72c6a0d7815e02efc24a344ec", "section_path": ["变更"], "commit_groups": [["3c5ce5102", "9fc887121"]], "identity_text": "Fix pg_dumpall to restore its ability to dump from pre-8.1 servers (Gilles Darold)", "commit_aliases": ["3c5ce5102", "9fc887121"], "source_commits": ["9fc887121"], "source_entry_id": "9.3.6/changes/063", "db_id": "43361231967d4ad9587eadb84608e9a6", "patch_ids": ["69dac09563bc0d81ff6d6f4015e258db"], "statement_hash": "8be762bd6fdf12151e810f7359646a9e2183c769f8aba7d937330ca1937e6ac8", "relations": [{"rule": 2, "type": "equivalent", "target": "b0acb50fdcf41fe41c43c55ef8d51cb6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8be762bd6fdf12151e810f7359646a9e2183c769f8aba7d937330ca1937e6ac8"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b0acb50fdcf41fe41c43c55ef8d51cb6", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 pg_dumpall，恢复其从 8.1 之前服务器转储的能力", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8be762bd6fdf12151e810f7359646a9e2183c769f8aba7d937330ca1937e6ac8"}, "url": "/docs/compare/?release=9.2.10#9.2.10-5623d0736e805469", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}]}, {"id": "9.3.6-6bf477ecafdf9b4b", "cves": [], "html": "<p>修复并行恢复纯模式转储时可能出现的死锁（Robert Haas、Tom Lane）</p>", "text": "修复并行恢复纯模式转储时可能出现的死锁（Robert Haas、Tom Lane）", "title": "修复并行恢复纯模式转储时可能出现的死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "8d904175b3bbe0c6f45766b497b7de864a7090cc217e652d94ea16a1b375df1f", "section_path": ["变更"], "commit_groups": [["a97c8c393", "bbe3c069a", "d1844c21b", "d72ecc91c"]], "identity_text": "Fix possible deadlock during parallel restore of a schema-only dump (Robert Haas, Tom Lane)", "commit_aliases": ["a97c8c393", "bbe3c069a", "d1844c21b", "d72ecc91c"], "source_commits": ["d72ecc91c"], "source_entry_id": "9.3.6/changes/064", "db_id": "9f2c83b34e3cfe73bfcab264d8e2e926", "patch_ids": ["7b30f1bc43a916c874e9aece0160c076"], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45", "relations": [{"rule": 2, "type": "equivalent", "target": "58ee380475fa28f09ecaf41e43f74d8b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}}, {"rule": 2, "type": "equivalent", "target": "6eb333d11c6d582ce3dd202a37f4194b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}}, {"rule": 2, "type": "equivalent", "target": "dbcddf562b2cbe77538f45f2edf102f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "58ee380475fa28f09ecaf41e43f74d8b", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复并行恢复纯模式转储时可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}, "url": "/docs/compare/?release=9.2.10#9.2.10-6bf477ecafdf9b4b", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "6eb333d11c6d582ce3dd202a37f4194b", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复并行恢复纯模式转储时可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}, "url": "/docs/compare/?release=9.1.15#9.1.15-6bf477ecafdf9b4b", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "dbcddf562b2cbe77538f45f2edf102f3", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复并行恢复纯模式转储时可能出现的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2e0364e74e9a24ea45a95351481921cc85a67dbbd150f19038e5f0b3d6efa45"}, "url": "/docs/compare/?release=9.0.19#9.0.19-6bf477ecafdf9b4b", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-6671c8e45449c597", "cves": [], "html": "<p>修复 <code>pg_dump --binary-upgrade</code> 在零列组合类型上的核心转储（Rushabh Lathia）</p>", "text": "修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储（Rushabh Lathia）", "title": "修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "a5997f21a089dd290ff24dfcecb02dca0b8c9c33429843bbe189c40ae5adb347", "section_path": ["变更"], "commit_groups": [["0c9391e52", "31021e7ba", "787e20bd4", "9a540c1ef"]], "identity_text": "Fix core dump in pg_dump --binary-upgrade on zero-column composite type (Rushabh Lathia)", "commit_aliases": ["0c9391e52", "31021e7ba", "787e20bd4", "9a540c1ef"], "source_commits": ["9a540c1ef"], "source_entry_id": "9.3.6/changes/065", "db_id": "864879357283b1121b56454d7dc1c48e", "patch_ids": ["9498f885bf8ade1fc2f3cadf578fd2df"], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c", "relations": [{"rule": 2, "type": "equivalent", "target": "23179df9ec3dbbf3bc4bcadaed80f32e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}}, {"rule": 2, "type": "equivalent", "target": "7937c4ae1b68553949f2a704ff0a8b15", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}}, {"rule": 2, "type": "equivalent", "target": "a42c556b4c8ae7a58ee8036468a35823", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7937c4ae1b68553949f2a704ff0a8b15", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}, "url": "/docs/compare/?release=9.2.10#9.2.10-6671c8e45449c597", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "23179df9ec3dbbf3bc4bcadaed80f32e", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}, "url": "/docs/compare/?release=9.1.15#9.1.15-6671c8e45449c597", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "a42c556b4c8ae7a58ee8036468a35823", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cef21de2b663b8fcb5b1907b9258fb7bbd2d377c304de74be1ebba790f6657c"}, "url": "/docs/compare/?release=9.0.19#9.0.19-6671c8e45449c597", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-316aecf9ff83566a", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 期间未对非默认表空间中的表执行 fsync 的错误（Abhijit Menon-Sen、Andres Freund）</p>\n<p>如果操作系统崩溃再加上一点坏运气，这可能导致升级期间的数据丢失。</p>", "text": "修复 pg_upgrade 期间未对非默认表空间中的表执行 fsync 的错误（Abhijit Menon-Sen、Andres Freund） 如果操作系统崩溃再加上一点坏运气，这可能导致升级期间的数据丢失。", "title": "修复 pg_upgrade 期间未对非默认表空间中的表执行 fsync 的错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "dd69d472034be486ca0d7d500c4423443de2a74de10f4961737579025a400d39", "section_path": ["变更"], "commit_groups": [["26a4e0ed7"]], "identity_text": "Fix failure to fsync tables in nondefault tablespaces during pg_upgrade (Abhijit Menon-Sen, Andres Freund) With an operating system crash and some bad luck, this could result in data loss during an upgrade.", "commit_aliases": ["26a4e0ed7"], "source_commits": ["26a4e0ed7"], "source_entry_id": "9.3.6/changes/066", "db_id": "1b83ee8f9b868af1ad6335b1df7d30d4", "patch_ids": ["7616e9974c87cd74d24bb5d0007f34a4"], "statement_hash": "3ae51987945eaf10ccba680c8b23e0dc720b98e2e602550db4ef8fad62a9be0e", "relations": [], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-86d3419027962b84", "cves": [], "html": "<p>在 <span>pg_upgrade</span> 中，处理新集簇为以前没有 TOAST 表的表创建 TOAST 表的情况（Bruce Momjian）</p>\n<p>此前这可能因 OID 冲突而导致失败。</p>", "text": "在 pg_upgrade 中，处理新集簇为以前没有 TOAST 表的表创建 TOAST 表的情况（Bruce Momjian） 此前这可能因 OID 冲突而导致失败。", "title": "在 pg_upgrade 中，处理新集簇为以前没有 TOAST 表的表创建 TOAST 表的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "0823b21dc9c31b68ddd19532ef55e1c9d41b737dc9161db880e179536a1b9f89", "section_path": ["变更"], "commit_groups": [["fca9f349b"]], "identity_text": "In pg_upgrade, cope with cases where the new cluster creates a TOAST table for a table that didn't previously have one (Bruce Momjian) Previously this could result in failures due to OID conflicts.", "commit_aliases": ["fca9f349b"], "source_commits": ["fca9f349b"], "source_entry_id": "9.3.6/changes/067", "db_id": "f64ce157c5f6f5f7f1107523a40fcc05", "patch_ids": ["9bfbde473168948c31279b843969f358"], "statement_hash": "e8ce9dc81b61628ed09035921016cf5280e946a93c7690e16c2447524ca62b74", "relations": [], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-5a0f7e16c24c7e18", "cves": [], "html": "<p>在 <span>pg_upgrade</span> 中，不再尝试为旧集簇设置 <code>autovacuum_multixact_freeze_max_age</code>（Bruce Momjian）</p>\n<p>这可能失败，因为并非所有 9.3.X 版本都有该参数。幸运的是，我们实际上完全不需要设置它。</p>", "text": "在 pg_upgrade 中，不再尝试为旧集簇设置 autovacuum_multixact_freeze_max_age（Bruce Momjian） 这可能失败，因为并非所有 9.3.X 版本都有该参数。幸运的是，我们实际上完全不需要设置它。", "title": "在 pg_upgrade 中，不再尝试为旧集簇设置 autovacuum_multixact_freeze_max_age", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "f655aa4c8d32bf2c68bf48af70e302c8bb6012da5909a62165915dca0af01fc2", "section_path": ["变更"], "commit_groups": [["24ae44914"]], "identity_text": "In pg_upgrade, don't try to set autovacuum_multixact_freeze_max_age for the old cluster (Bruce Momjian) This could result in failure because not all 9.3.X versions have that parameter. Fortunately, we don't actually need to set it at all.", "commit_aliases": ["24ae44914"], "source_commits": ["24ae44914"], "source_entry_id": "9.3.6/changes/068", "db_id": "624152bd56ef0ef3f38a862551ecd3c4", "patch_ids": ["86b393e9bff63bbb8c4668fc80cb1d14"], "statement_hash": "77260a3e6e91e4e2d99a093965caaa77e2218ed96814c32cc2d2ae126ff43a55", "relations": [], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-417ae012d1b3c6fb", "cves": [], "html": "<p>在 <span>pg_upgrade</span> 中，保留事务 ID 的纪元（epoch）（Bruce Momjian）</p>\n<p>这一疏忽并不影响 <span>PostgreSQL</span> 本身，但可能干扰某些外部复制工具。</p>", "text": "在 pg_upgrade 中，保留事务 ID 的纪元（epoch）（Bruce Momjian） 这一疏忽并不影响 PostgreSQL 本身，但可能干扰某些外部复制工具。", "title": "在 pg_upgrade 中，保留事务 ID 的纪元（epoch）", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "836dd6153725267a03c4da31812b11ff03962edd4afc1d47abb83ecffc693805", "section_path": ["变更"], "commit_groups": [["5724f491d"]], "identity_text": "In pg_upgrade, preserve the transaction ID epoch (Bruce Momjian) This oversight did not bother PostgreSQL proper, but could confuse some external replication tools.", "commit_aliases": ["5724f491d"], "source_commits": ["5724f491d"], "source_entry_id": "9.3.6/changes/069", "db_id": "6ab3e9d418cdcad1bba2ebffb7e7391c", "patch_ids": ["aeb888c35a8ef3476a0fc19f55455fdc"], "statement_hash": "f6a6aafc1f35d878aa23046cc69a21622f28190bc7a569582806abfa6ba31c17", "relations": [], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-16cefcefa593e0d8", "cves": [], "html": "<p>防止由<code>pg_basebackup -x/-X</code>创建的 WAL 文件在备库提升后被再次归档（Andres Freund）</p>", "text": "防止由pg_basebackup -x/-X创建的 WAL 文件在备库提升后被再次归档（Andres Freund）", "title": "防止由pg_basebackup -x/-X创建的 WAL 文件在备库提升后被再次归档", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "c3bd049c28c395fda460739b8e13b5d4d4624e6163519fd236ddced29f02adbf", "section_path": ["变更"], "commit_groups": [["2a0bfa4d6", "2c0a48589", "90e4a2bf9", "f6cea4502", "f961ad479"]], "identity_text": "Prevent WAL files created by pg_basebackup -x/-X from being archived again when the standby is promoted (Andres Freund)", "commit_aliases": ["2a0bfa4d6", "2c0a48589", "90e4a2bf9", "f6cea4502", "f961ad479"], "source_commits": ["f6cea4502"], "source_entry_id": "9.3.6/changes/070", "db_id": "1fa016f6402c7f3db3fb9a3f43ff1f40", "patch_ids": ["cbdbeed7fea4e852e3710142e8eef678"], "statement_hash": "7a22fda7a5998f2d560a1d2473f27e45dff1d56e5912c9bef22ce9bdb6d2dcbb", "relations": [{"rule": 2, "type": "equivalent", "target": "0992c99442353c726c5ec5c3c95afcc6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a22fda7a5998f2d560a1d2473f27e45dff1d56e5912c9bef22ce9bdb6d2dcbb"}}, {"rule": 2, "type": "equivalent", "target": "a797e860b2b98a442a6af2c958faafe0", "evidence": {"same_day": true, "patch_ids": ["cbdbeed7fea4e852e3710142e8eef678"], "statement_hash": "7a22fda7a5998f2d560a1d2473f27e45dff1d56e5912c9bef22ce9bdb6d2dcbb"}}, {"rule": 2, "type": "equivalent", "target": "bd65e05ffdfcc52803baeb984e770928", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a22fda7a5998f2d560a1d2473f27e45dff1d56e5912c9bef22ce9bdb6d2dcbb"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a797e860b2b98a442a6af2c958faafe0", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "防止备库提升为主库后 pg_basebackup -x/-X 创建的 WAL 文件被再次归档", "evidence": {"same_day": true, "patch_ids": ["cbdbeed7fea4e852e3710142e8eef678"], "statement_hash": "7a22fda7a5998f2d560a1d2473f27e45dff1d56e5912c9bef22ce9bdb6d2dcbb"}, "url": "/docs/compare/?release=9.4.1#9.4.1-a7a0b10f490b146f", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "bd65e05ffdfcc52803baeb984e770928", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "防止由pg_basebackup -x/-X创建的 WAL 文件在备库提升后被再次归档", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a22fda7a5998f2d560a1d2473f27e45dff1d56e5912c9bef22ce9bdb6d2dcbb"}, "url": "/docs/compare/?release=9.2.10#9.2.10-16cefcefa593e0d8", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "0992c99442353c726c5ec5c3c95afcc6", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "防止由pg_basebackup -x/-X创建的 WAL 文件在备库提升后被再次归档", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a22fda7a5998f2d560a1d2473f27e45dff1d56e5912c9bef22ce9bdb6d2dcbb"}, "url": "/docs/compare/?release=9.1.15#9.1.15-16cefcefa593e0d8", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.3.6-672ae0506b315289", "cves": [], "html": "<p>修复 <span>pg_receivexlog</span> 中的内存泄漏（Fujii Masao）</p>", "text": "修复 pg_receivexlog 中的内存泄漏（Fujii Masao）", "title": "修复 pg_receivexlog 中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "5cbcb27ee0d45ff0bebb500690fbf952ba8acc8f74c28379d81f559c3512f078", "section_path": ["变更"], "commit_groups": [["9747a9898"]], "identity_text": "Fix memory leak in pg_receivexlog (Fujii Masao)", "commit_aliases": ["9747a9898"], "source_commits": ["9747a9898"], "source_entry_id": "9.3.6/changes/071", "db_id": "6883b38bce2292a7575e0789dce012ed", "patch_ids": ["65b3a816e612c783565d46f1858cb709"], "statement_hash": "d3a28539a595e02719dca1ee38ea1736af42dbd0e87dc96a6fcb7d3513189e21", "relations": [], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-1cc34c3a8d827967", "cves": [], "html": "<p>修复 <span>pg_receivexlog</span> 详细消息被意外抑制的问题（Fujii Masao）</p>", "text": "修复 pg_receivexlog 详细消息被意外抑制的问题（Fujii Masao）", "title": "修复 pg_receivexlog 详细消息被意外抑制的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "5953dac6d8f57b8f352fe57aa1b6401be22060b0073133206711f2b7d7fe6e96", "section_path": ["变更"], "commit_groups": [["39217ce41"]], "identity_text": "Fix unintended suppression of pg_receivexlog verbose messages (Fujii Masao)", "commit_aliases": ["39217ce41"], "source_commits": ["39217ce41"], "source_entry_id": "9.3.6/changes/072", "db_id": "e72caf4db6fe81ad1c55986daa58a63a", "patch_ids": ["e52987da1475fc85dcdea2a8cc38928e"], "statement_hash": "d78734f5f2249e81e60772d6f0dad4ba7fc1484eacf36c99c5d435dff22ebbd4", "relations": [], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-a51a63589af32bfd", "cves": [], "html": "<p>修复 <code>contrib/auto_explain</code> 在执行 <code>EXPLAIN ANALYZE</code> 时未能打印逐节点计时信息的问题（Tom Lane）</p>", "text": "修复 contrib/auto_explain 在执行 EXPLAIN ANALYZE 时未能打印逐节点计时信息的问题（Tom Lane）", "title": "修复 contrib/auto_explain 在执行 EXPLAIN ANALYZE 时未能打印逐节点计时信息的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "49a7b7656837d671aa5682b72de0372ab169114615f9c4b2b3687bb759c7f6c2", "section_path": ["变更"], "commit_groups": [["5ff8c2d7d", "9474c9d81"]], "identity_text": "Fix failure of contrib/auto_explain to print per-node timing information when doing EXPLAIN ANALYZE (Tom Lane)", "commit_aliases": ["5ff8c2d7d", "9474c9d81"], "source_commits": ["9474c9d81"], "source_entry_id": "9.3.6/changes/073", "db_id": "31ca19cb0f3fd0bbb6e1832df8abf199", "patch_ids": ["ded10681b0659c4151e6a3b57e443f85"], "statement_hash": "374e81c0cfe393edb5ef7dd21ad005eb0d6149bdfedfb006b82e3f1b9b84a892", "relations": [{"rule": 2, "type": "equivalent", "target": "1e1d664f289760f1fd406f4a0120561d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "374e81c0cfe393edb5ef7dd21ad005eb0d6149bdfedfb006b82e3f1b9b84a892"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e1d664f289760f1fd406f4a0120561d", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 contrib/auto_explain 在执行 EXPLAIN ANALYZE 时未能打印逐节点计时信息的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "374e81c0cfe393edb5ef7dd21ad005eb0d6149bdfedfb006b82e3f1b9b84a892"}, "url": "/docs/compare/?release=9.2.10#9.2.10-a51a63589af32bfd", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}]}, {"id": "9.3.6-913308a12150d67d", "cves": [], "html": "<p>修复 <code>contrib/citext</code> 的从非打包升级脚本（Tom Lane）</p>", "text": "修复 contrib/citext 的从非打包升级脚本（Tom Lane）", "title": "修复 contrib/citext 的从非打包升级脚本", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "7cd26efe3e2bdbcc4b8150acfdb2b4ec07f178fd845ba81e873ff8288b5d8d0f", "section_path": ["变更"], "commit_groups": [["0ad403c98", "9807c8220", "f3998521f"]], "identity_text": "Fix upgrade-from-unpackaged script for contrib/citext (Tom Lane)", "commit_aliases": ["0ad403c98", "9807c8220", "f3998521f"], "source_commits": ["0ad403c98"], "source_entry_id": "9.3.6/changes/074", "db_id": "e331f7ddf5b80d07cee538e297d0e5b6", "patch_ids": ["5b331120bda23204630fcb88936226cf"], "statement_hash": "ec6e11bde94bf287e02fe4b7ff71d1882fbb3a13a68b9c360503fc94c5d3b414", "relations": [{"rule": 2, "type": "equivalent", "target": "0443ed736eb38d6c9ee693368cb03591", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ec6e11bde94bf287e02fe4b7ff71d1882fbb3a13a68b9c360503fc94c5d3b414"}}, {"rule": 2, "type": "equivalent", "target": "d725b12085f2a3a8f8731eced81b152b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ec6e11bde94bf287e02fe4b7ff71d1882fbb3a13a68b9c360503fc94c5d3b414"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0443ed736eb38d6c9ee693368cb03591", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 contrib/citext 的从非打包升级脚本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ec6e11bde94bf287e02fe4b7ff71d1882fbb3a13a68b9c360503fc94c5d3b414"}, "url": "/docs/compare/?release=9.2.10#9.2.10-913308a12150d67d", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "d725b12085f2a3a8f8731eced81b152b", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 contrib/citext 的从非打包升级脚本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ec6e11bde94bf287e02fe4b7ff71d1882fbb3a13a68b9c360503fc94c5d3b414"}, "url": "/docs/compare/?release=9.1.15#9.1.15-913308a12150d67d", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.3.6-29f7e5ea937d1200", "cves": [], "html": "<p>避免 <code>contrib/hstore</code> 的 <code>hstore_to_json()</code> 中的整数溢出和缓冲区越界（Heikki Linnakangas）</p>", "text": "避免 contrib/hstore 的 hstore_to_json() 中的整数溢出和缓冲区越界（Heikki Linnakangas）", "title": "避免 contrib/hstore 的 hstore_to_json() 中的整数溢出和缓冲区越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "c941553aa392235bc53eb509bb4e201e921eb27e5f2fc0b3aa577657409c1c6b", "section_path": ["变更"], "commit_groups": [["f44290b7b"]], "identity_text": "Avoid integer overflow and buffer overrun in contrib/hstore's hstore_to_json() (Heikki Linnakangas)", "commit_aliases": ["f44290b7b"], "source_commits": ["f44290b7b"], "source_entry_id": "9.3.6/changes/075", "db_id": "a3f0c7191dd84aa64be797953a36e063", "patch_ids": ["5b43f7cfe7d58deddefaf51aa3d2ce0e"], "statement_hash": "39b98792c73cae2fc2b3aef557946b13f120426b1fd171da38d45af0f682cf1c", "relations": [], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-c50bfdf503c0162a", "cves": [], "html": "<p>修复 <code>hstore_to_json_loose()</code> 中的数字识别，使 JSON 数字和字符串得以正确区分（Andrew Dunstan）</p>", "text": "修复 hstore_to_json_loose() 中的数字识别，使 JSON 数字和字符串得以正确区分（Andrew Dunstan）", "title": "修复 hstore_to_json_loose() 中的数字识别，使 JSON 数字和字符串得以正确区分", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "f384b231f654715db055c5e9c8fafa04505e049f5f220e102eb361e7dad79416", "section_path": ["变更"], "commit_groups": [["55c880797"]], "identity_text": "Fix recognition of numbers in hstore_to_json_loose(), so that JSON numbers and strings are correctly distinguished (Andrew Dunstan)", "commit_aliases": ["55c880797"], "source_commits": ["55c880797"], "source_entry_id": "9.3.6/changes/076", "db_id": "5325278e0f4ad3294c513a5a6de65dd4", "patch_ids": ["54cb43fbf9e8dbcc161476e3471984d5"], "statement_hash": "a4fda92ebee10539dc53fd08b8a01e58f8aafec7d465c40afc9011e3e8bab415", "relations": [], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-04f05895e1d6bbd6", "cves": [], "html": "<p>修复 <code>contrib/pageinspect</code> 的 <code>get_raw_page()</code> 中的块号检查（Tom Lane）</p>\n<p>错误的检查逻辑可能阻止访问非主关系分支中的某些页面。</p>", "text": "修复 contrib/pageinspect 的 get_raw_page() 中的块号检查（Tom Lane） 错误的检查逻辑可能阻止访问非主关系分支中的某些页面。", "title": "修复 contrib/pageinspect 的 get_raw_page() 中的块号检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "4de281b058e4b28da441fa4f7a4bc9dc1211f749a4f0e3921750e70913d83d4d", "section_path": ["变更"], "commit_groups": [["3c5232ae8", "810f0d2a2", "9dc2a3fd0", "f59c8eff7"]], "identity_text": "Fix block number checking in contrib/pageinspect's get_raw_page() (Tom Lane) The incorrect checking logic could prevent access to some pages in non-main relation forks.", "commit_aliases": ["3c5232ae8", "810f0d2a2", "9dc2a3fd0", "f59c8eff7"], "source_commits": ["f59c8eff7"], "source_entry_id": "9.3.6/changes/077", "db_id": "f0995d643272cf222f23311a0cccbac8", "patch_ids": ["cb9d01057d0788c1569b0d990e155827"], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a", "relations": [{"rule": 2, "type": "equivalent", "target": "9e217fbd497cec2831c099fa83a38b5c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}}, {"rule": 2, "type": "equivalent", "target": "ba48e31797b3b09a0b2d9a3d707b4c53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}}, {"rule": 2, "type": "equivalent", "target": "f0339297b7e6afe8e77c299dbb905dfc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ba48e31797b3b09a0b2d9a3d707b4c53", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 contrib/pageinspect 的 get_raw_page() 中的块号检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}, "url": "/docs/compare/?release=9.2.10#9.2.10-04f05895e1d6bbd6", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "9e217fbd497cec2831c099fa83a38b5c", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 contrib/pageinspect 的 get_raw_page() 中的块号检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}, "url": "/docs/compare/?release=9.1.15#9.1.15-04f05895e1d6bbd6", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "f0339297b7e6afe8e77c299dbb905dfc", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 contrib/pageinspect 的 get_raw_page() 中的块号检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9cf7939f3b575d0c96ced6029d1c43059b8d6bd02bfd6c43656cb2dda598b9a"}, "url": "/docs/compare/?release=9.0.19#9.0.19-04f05895e1d6bbd6", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-26694b0787ba2682", "cves": [], "html": "<p>修复 <code>contrib/pgcrypto</code> 的 <code>pgp_sym_decrypt()</code>，使其在消息长度比 2 的幂小 6 时不再失败（Marko Tiikkaja）</p>", "text": "修复 contrib/pgcrypto 的 pgp_sym_decrypt()，使其在消息长度比 2 的幂小 6 时不再失败（Marko Tiikkaja）", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt()，使其在消息长度比 2 的幂小 6 时不再失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "884ccc9a0990fb25587ad9dce1cd2ededacd91aceb2d5fc62b896f3e744a96db", "section_path": ["变更"], "commit_groups": [["419de696a", "4a9710e6e", "4ddd9e72f", "ef5a3b957"]], "identity_text": "Fix contrib/pgcrypto's pgp_sym_decrypt() to not fail on messages whose length is 6 less than a power of 2 (Marko Tiikkaja)", "commit_aliases": ["419de696a", "4a9710e6e", "4ddd9e72f", "ef5a3b957"], "source_commits": ["419de696a"], "source_entry_id": "9.3.6/changes/078", "db_id": "ee61fdabf015150c1a79b27a40eae0cb", "patch_ids": ["dc90a76a365ffd0a6654c03f2bffeb6d"], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4", "relations": [{"rule": 2, "type": "equivalent", "target": "5471e9acf040392515f6c47d09bbff7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}}, {"rule": 2, "type": "equivalent", "target": "5e7d1d638b65429f916f7bfbe132d440", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}}, {"rule": 2, "type": "equivalent", "target": "d5d6f1e8428e9b7961a20fbdf71e1891", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e7d1d638b65429f916f7bfbe132d440", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt()，使其在消息长度比 2 的幂小 6 时不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}, "url": "/docs/compare/?release=9.2.10#9.2.10-26694b0787ba2682", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "5471e9acf040392515f6c47d09bbff7b", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt()，使其在消息长度比 2 的幂小 6 时不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}, "url": "/docs/compare/?release=9.1.15#9.1.15-26694b0787ba2682", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "d5d6f1e8428e9b7961a20fbdf71e1891", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt()，使其在消息长度比 2 的幂小 6 时不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b10794c6f34ab3b038e7b46005d31d86c769d27695d9d3e2070fca3ccbb2d4"}, "url": "/docs/compare/?release=9.0.19#9.0.19-26694b0787ba2682", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-e5f1e9113b8da860", "cves": [], "html": "<p>修复 <code>contrib/pg_test_fsync</code> 中的文件描述符泄漏（Jeff Janes）</p>\n<p>这可能导致 Windows 上无法删除临时文件。</p>", "text": "修复 contrib/pg_test_fsync 中的文件描述符泄漏（Jeff Janes） 这可能导致 Windows 上无法删除临时文件。", "title": "修复 contrib/pg_test_fsync 中的文件描述符泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "8a8653df69eec10835c690737c54287089145fd76d4ec1e2eba7b5cd44e2b4c8", "section_path": ["变更"], "commit_groups": [["57ce74661", "8cf825974", "a855c90a7"]], "identity_text": "Fix file descriptor leak in contrib/pg_test_fsync (Jeff Janes) This could cause failure to remove temporary files on Windows.", "commit_aliases": ["57ce74661", "8cf825974", "a855c90a7"], "source_commits": ["8cf825974"], "source_entry_id": "9.3.6/changes/079", "db_id": "11fdd86bd0f7cca2713955fb570506df", "patch_ids": ["872edd74e699067a2c326dfe7e0d0a5a"], "statement_hash": "9387df12da214654707d3fb4041663e67d40589fed416a16d62eb84b519077b8", "relations": [{"rule": 2, "type": "equivalent", "target": "3a86cc1445b328c4269f5d7634130b5c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9387df12da214654707d3fb4041663e67d40589fed416a16d62eb84b519077b8"}}, {"rule": 2, "type": "equivalent", "target": "8ac78be25e02c807cc73377e71bd3914", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9387df12da214654707d3fb4041663e67d40589fed416a16d62eb84b519077b8"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8ac78be25e02c807cc73377e71bd3914", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "修复 contrib/pg_test_fsync 中的文件描述符泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9387df12da214654707d3fb4041663e67d40589fed416a16d62eb84b519077b8"}, "url": "/docs/compare/?release=9.2.10#9.2.10-e5f1e9113b8da860", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "3a86cc1445b328c4269f5d7634130b5c", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "修复 contrib/pg_test_fsync 中的文件描述符泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9387df12da214654707d3fb4041663e67d40589fed416a16d62eb84b519077b8"}, "url": "/docs/compare/?release=9.1.15#9.1.15-e5f1e9113b8da860", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.3.6-bd7b14c67353f4dd", "cves": [], "html": "<p>安全地处理 <code>contrib/tablefunc</code> 的 <code>connectby()</code> 中的意外查询结果，尤其是 NULL（Michael Paquier）</p>\n<p>此前 <code>connectby()</code> 遇到 NULL 键值时会崩溃。现在它会打印该行但不再进一步递归。</p>", "text": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL（Michael Paquier） 此前 connectby() 遇到 NULL 键值时会崩溃。现在它会打印该行但不再进一步递归。", "title": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "fe58586e3f0b43cae1ff17c5ae4a0a6bf9aad38683b3c934f15d4fdaa6456865", "section_path": ["变更"], "commit_groups": [["202621d04", "290c2daad", "37507962c", "53ae24692", "66cc74680", "dc9a506e6"]], "identity_text": "Handle unexpected query results, especially NULLs, safely in contrib/tablefunc's connectby() (Michael Paquier) connectby() previously crashed if it encountered a NULL key value. It now prints that row but doesn't recurse further.", "commit_aliases": ["202621d04", "290c2daad", "37507962c", "53ae24692", "66cc74680", "dc9a506e6"], "source_commits": ["53ae24692"], "source_entry_id": "9.3.6/changes/080", "db_id": "5189b93a8cf6cb0e00c3fcf1dbab030d", "patch_ids": ["0152b1ae50dec4b5fc3f60b4f35c9475"], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544", "relations": [{"rule": 2, "type": "equivalent", "target": "067eb3e6a757e657b3b5527615fcb4ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}}, {"rule": 2, "type": "equivalent", "target": "2c6aca44c0dcee7e3437799520e1e667", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}}, {"rule": 2, "type": "equivalent", "target": "490569980196c2e8fc0b80c5f5022562", "evidence": {"same_day": true, "patch_ids": ["0152b1ae50dec4b5fc3f60b4f35c9475"], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}}, {"rule": 2, "type": "equivalent", "target": "80b793a52a226eb5e5ae486e51a6bca3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "490569980196c2e8fc0b80c5f5022562", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL", "evidence": {"same_day": true, "patch_ids": ["0152b1ae50dec4b5fc3f60b4f35c9475"], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}, "url": "/docs/compare/?release=9.4.1#9.4.1-bd7b14c67353f4dd", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "2c6aca44c0dcee7e3437799520e1e667", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}, "url": "/docs/compare/?release=9.2.10#9.2.10-bd7b14c67353f4dd", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "80b793a52a226eb5e5ae486e51a6bca3", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}, "url": "/docs/compare/?release=9.1.15#9.1.15-bd7b14c67353f4dd", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "067eb3e6a757e657b3b5527615fcb4ec", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果，尤其是 NULL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c8e178e32c521ec5f76336818de13a8dd8a1c4826cb40f74b746e87c1094544"}, "url": "/docs/compare/?release=9.0.19#9.0.19-bd7b14c67353f4dd", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-16bd96d1b5443a9e", "cves": [], "html": "<p>避免 <code>contrib/xml2</code> 的 <code>xslt_process()</code> 中可能出现的崩溃（Mark Simonetti）</p>\n<p><span>libxslt</span> 似乎对资源释放顺序存在未记载的依赖；重新排列我们的调用以避免崩溃。</p>", "text": "避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃（Mark Simonetti） libxslt 似乎对资源释放顺序存在未记载的依赖；重新排列我们的调用以避免崩溃。", "title": "避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "51e7e7a6b7cae368a3be510b5548e6a4630007cd71d43efd23c78418b1ddb16d", "section_path": ["变更"], "commit_groups": [["168636a99", "6a694bbab", "a1cd04cd0", "c393847a1"]], "identity_text": "Avoid a possible crash in contrib/xml2's xslt_process() (Mark Simonetti) libxslt seems to have an undocumented dependency on the order in which resources are freed; reorder our calls to avoid a crash.", "commit_aliases": ["168636a99", "6a694bbab", "a1cd04cd0", "c393847a1"], "source_commits": ["c393847a1"], "source_entry_id": "9.3.6/changes/081", "db_id": "29cf6c481771d774d265144eae224bd8", "patch_ids": ["589a5acd415e75d8aca4af059d3ef653"], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4", "relations": [{"rule": 2, "type": "equivalent", "target": "48853351ecacaed5d6768613fbf3e7cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}}, {"rule": 2, "type": "equivalent", "target": "5af728f73487987279bb4143394ed5c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}}, {"rule": 2, "type": "equivalent", "target": "bc4ee3cc962cb26439a428b20a1904b2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bc4ee3cc962cb26439a428b20a1904b2", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}, "url": "/docs/compare/?release=9.2.10#9.2.10-16bd96d1b5443a9e", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "48853351ecacaed5d6768613fbf3e7cf", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}, "url": "/docs/compare/?release=9.1.15#9.1.15-16bd96d1b5443a9e", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "5af728f73487987279bb4143394ed5c7", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b6793b5c6b6c7ea8509b5eedd285785cfce1ab0c45c109f3fb0da2d87a9a65b4"}, "url": "/docs/compare/?release=9.0.19#9.0.19-16bd96d1b5443a9e", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-937c1688ec26f8e8", "cves": [], "html": "<p>为一些 <code>contrib</code> I/O 函数标记正确的易变性属性（Tom Lane）</p>\n<p>先前过于保守的标记在正常使用中无关紧要，但可能导致优化问题或拒绝有效的索引表达式定义。由于影响不大，我们只是调整了扩展模块脚本中的函数定义，未更改版本号。</p>", "text": "为一些 contrib I/O 函数标记正确的易变性属性（Tom Lane） 先前过于保守的标记在正常使用中无关紧要，但可能导致优化问题或拒绝有效的索引表达式定义。由于影响不大，我们只是调整了扩展模块脚本中的函数定义，未更改版本号。", "title": "为一些 contrib I/O 函数标记正确的易变性属性", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "2148f82e5969dbd969b80af2a82fc1d077ade30370299cbcee635a4682a67ff4", "section_path": ["变更"], "commit_groups": [["0247935c7", "0ef754cad", "7225abf00"]], "identity_text": "Mark some contrib I/O functions with correct volatility properties (Tom Lane) The previous over-conservative marking was immaterial in normal use, but could cause optimization problems or rejection of valid index expression definitions. Since the consequences are not large, we've just adjusted the function definitions in the extension modules' scripts, without changing version numbers.", "commit_aliases": ["0247935c7", "0ef754cad", "7225abf00"], "source_commits": ["0247935c7"], "source_entry_id": "9.3.6/changes/082", "db_id": "3d4b903a27f4b06f43b3a114644c4c67", "patch_ids": ["1babfd5b131a102ab60862ca67b55496"], "statement_hash": "c3971be2babcb7f43085cda29cbf5723b863e1cfbf8bc1d7e0823bfc197a019f", "relations": [{"rule": 2, "type": "equivalent", "target": "a298c361f874e67445b3836a6e9aaf7d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3971be2babcb7f43085cda29cbf5723b863e1cfbf8bc1d7e0823bfc197a019f"}}, {"rule": 2, "type": "equivalent", "target": "dec6132ce2064557e4801a9fcdcd73e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3971be2babcb7f43085cda29cbf5723b863e1cfbf8bc1d7e0823bfc197a019f"}}], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a298c361f874e67445b3836a6e9aaf7d", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "为一些 contrib I/O 函数标记正确的易变性属性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3971be2babcb7f43085cda29cbf5723b863e1cfbf8bc1d7e0823bfc197a019f"}, "url": "/docs/compare/?release=9.2.10#9.2.10-937c1688ec26f8e8", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "dec6132ce2064557e4801a9fcdcd73e1", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "为一些 contrib I/O 函数标记正确的易变性属性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3971be2babcb7f43085cda29cbf5723b863e1cfbf8bc1d7e0823bfc197a019f"}, "url": "/docs/compare/?release=9.1.15#9.1.15-937c1688ec26f8e8", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}]}, {"id": "9.3.6-210d95847fc2d9c5", "cves": [], "html": "<p>大量清理 Coverity 静态代码分析器的警告（Andres Freund、Tatsuo Ishii、Marko Kreen、Tom Lane、Michael Paquier）</p>\n<p>这些变更大多只是表面性的，但在某些情况下修复了极端情况的缺陷，例如内存不足失败后崩溃而不是正确报告错误。据信它们都不构成安全问题。</p>", "text": "大量清理 Coverity 静态代码分析器的警告（Andres Freund、Tatsuo Ishii、Marko Kreen、Tom Lane、Michael Paquier） 这些变更大多只是表面性的，但在某些情况下修复了极端情况的缺陷，例如内存不足失败后崩溃而不是正确报告错误。据信它们都不构成安全问题。", "title": "大量清理 Coverity 静态代码分析器的警告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "446a1dd7e2e6dfd1abff77145b75741c6dc93ddf88272da460b23d612413aff3", "section_path": ["变更"], "commit_groups": [["029e41afd", "17797e18d", "2d8411a0a", "39cdf365a", "58bc4747b", "d33f36f16"], ["0398ece4c", "ec14f1601", "f4060db11", "ff7d46b85"], ["0a67c0018", "0b49642b9", "151fb75b0", "7b65f194e", "d452bfd1b", "ebbef4f39"], ["383d224a0", "53960e7eb", "5c784d96a", "66709133c", "a2969bd72", "e92c67ddc"], ["3a3ee655c", "502e5f9c3", "586dd5d6a", "7240f9200", "b00a08859", "d51d4ff31"], ["3b5a89c48", "458e8bc65", "4c136b0b6", "4db7eaae0", "9b74f3574", "ed0e03283"], ["3b750ec15", "5b2c8f04a", "6c75384ee", "926da211a", "961df1853", "d38e8d30c"], ["4ebb3494e", "e37d474f9"], ["6f9b84a40", "7ced1b6c5", "8cadeb792", "a68b8aec7"], ["70da7aeba", "7c41a32b3", "8f51c432c", "a59ee8819", "a97dfdfd9", "f08cf8ad9"], ["8824bae87"]], "identity_text": "Numerous cleanups of warnings from Coverity static code analyzer (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier) These changes are mostly cosmetic but in some cases fix corner-case bugs, for example a crash rather than a proper error report after an out-of-memory failure. None are believed to represent security issues.", "commit_aliases": ["029e41afd", "0398ece4c", "0a67c0018", "0b49642b9", "151fb75b0", "17797e18d", "2d8411a0a", "383d224a0", "39cdf365a", "3a3ee655c", "3b5a89c48", "3b750ec15", "458e8bc65", "4c136b0b6", "4db7eaae0", "4ebb3494e", "502e5f9c3", "53960e7eb", "586dd5d6a", "58bc4747b", "5b2c8f04a", "5c784d96a", "66709133c", "6c75384ee", "6f9b84a40", "70da7aeba", "7240f9200", "7b65f194e", "7c41a32b3", "7ced1b6c5", "8824bae87", "8cadeb792", "8f51c432c", "926da211a", "961df1853", "9b74f3574", "a2969bd72", "a59ee8819", "a68b8aec7", "a97dfdfd9", "b00a08859", "d33f36f16", "d38e8d30c", "d452bfd1b", "d51d4ff31", "e37d474f9", "e92c67ddc", "ebbef4f39", "ec14f1601", "ed0e03283", "f08cf8ad9", "f4060db11", "ff7d46b85"], "source_commits": ["3b750ec15", "53960e7eb", "7240f9200", "8824bae87", "a68b8aec7", "d33f36f16", "e37d474f9", "ebbef4f39", "ec14f1601", "ed0e03283", "f08cf8ad9"], "source_entry_id": "9.3.6/changes/083", "db_id": "12e33c2f4f0e430ce044b6c5ba7659e9", "patch_ids": ["175bc98efacf982d45fd97a95b26544f", "1dbf2fd4c35c82bb85765a66b59d325f", "392bbbb51d860a5ad65f1e33a8eb9abc", "4192536e0ae6893d51dbf6fcc4244db6", "4da90619f177c2712e522d91eb84f5dd", "6437dbc9cd2e92da1325909d7686cf9a", "6ef87a9d4c68476d4941917b8f2f5135", "779aa41ac8f9c9c36df95551889f996a", "95c09f5f6d9cf7d8cde63c4f6ccab8df", "ad537491a3b8587282919277029aa0b5", "e733d40d1de2ef1b107f235a07828fd1"], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16", "relations": [{"rule": 2, "type": "equivalent", "target": "4c8bc0c63a589cdc2848abaf2c856854", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}}, {"rule": 2, "type": "equivalent", "target": "52c3d51c1d613490a4737cc67d575159", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}}, {"rule": 2, "type": "equivalent", "target": "c0dea398485ffb3ab2ee0b2344343d54", "evidence": {"same_day": true, "patch_ids": ["175bc98efacf982d45fd97a95b26544f", "1dbf2fd4c35c82bb85765a66b59d325f", "392bbbb51d860a5ad65f1e33a8eb9abc", "4192536e0ae6893d51dbf6fcc4244db6", "4da90619f177c2712e522d91eb84f5dd", "6437dbc9cd2e92da1325909d7686cf9a", "6ef87a9d4c68476d4941917b8f2f5135", "779aa41ac8f9c9c36df95551889f996a", "95c09f5f6d9cf7d8cde63c4f6ccab8df", "ad537491a3b8587282919277029aa0b5", "e733d40d1de2ef1b107f235a07828fd1"], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}}, {"rule": 2, "type": "equivalent", "target": "ee40bf4e7114e983b86aef19f50a756d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c0dea398485ffb3ab2ee0b2344343d54", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "大量清理 Coverity 静态代码分析器的警告", "evidence": {"same_day": true, "patch_ids": ["175bc98efacf982d45fd97a95b26544f", "1dbf2fd4c35c82bb85765a66b59d325f", "392bbbb51d860a5ad65f1e33a8eb9abc", "4192536e0ae6893d51dbf6fcc4244db6", "4da90619f177c2712e522d91eb84f5dd", "6437dbc9cd2e92da1325909d7686cf9a", "6ef87a9d4c68476d4941917b8f2f5135", "779aa41ac8f9c9c36df95551889f996a", "95c09f5f6d9cf7d8cde63c4f6ccab8df", "ad537491a3b8587282919277029aa0b5", "e733d40d1de2ef1b107f235a07828fd1"], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}, "url": "/docs/compare/?release=9.4.1#9.4.1-210d95847fc2d9c5", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "ee40bf4e7114e983b86aef19f50a756d", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "大量清理 Coverity 静态代码分析器的警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}, "url": "/docs/compare/?release=9.2.10#9.2.10-210d95847fc2d9c5", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "4c8bc0c63a589cdc2848abaf2c856854", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "大量清理 Coverity 静态代码分析器的警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}, "url": "/docs/compare/?release=9.1.15#9.1.15-210d95847fc2d9c5", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "52c3d51c1d613490a4737cc67d575159", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "大量清理 Coverity 静态代码分析器的警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e56a1015631e5a567dbe6b36b79f66bbf141543885654fc4906a0126c90f8e16"}, "url": "/docs/compare/?release=9.0.19#9.0.19-210d95847fc2d9c5", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-99a1bf0cfa961047", "cves": [], "html": "<p>修复 EXEC_BACKEND 构建（例如 Windows）中后台工作进程的设置（Robert Haas）</p>", "text": "修复 EXEC_BACKEND 构建（例如 Windows）中后台工作进程的设置（Robert Haas）", "title": "修复 EXEC_BACKEND 构建（例如 Windows）中后台工作进程的设置", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "90179fdc3dfb68fa2bf63d1324d38d30b74e6da4ee474c16011bc6e5934fb328", "section_path": ["变更"], "commit_groups": [["05c0059b3"]], "identity_text": "Fix setup of background workers in EXEC_BACKEND builds, eg Windows (Robert Haas)", "commit_aliases": ["05c0059b3"], "source_commits": ["05c0059b3"], "source_entry_id": "9.3.6/changes/084", "db_id": "c8e80bb862375f6e124a1b3459419a37", "patch_ids": ["fd98ba09f62a1bbfedfee35ae04be59d"], "statement_hash": "be2c3ba1aa5fc36c5fdd88764e3679f5642ec33937dd4e0fb2f7b48efb9eb6b0", "relations": [], "version": "9.3.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.6-39cf90228ff2c6d6", "cves": [], "html": "<p>在构建期间检测不兼容的 OpenLDAP 版本（Noah Misch）</p>\n<p>对于 2.4.24 到 2.4.31（含）之间的 OpenLDAP 版本，<span>PostgreSQL</span> 后端进程可能在退出时崩溃。现在会根据编译时的 OpenLDAP 版本号在 <span>configure</span> 期间发出警告，并在 <code>contrib/dblink</code> 回归测试中测试该崩溃场景。</p>", "text": "在构建期间检测不兼容的 OpenLDAP 版本（Noah Misch） 对于 2.4.24 到 2.4.31（含）之间的 OpenLDAP 版本，PostgreSQL 后端进程可能在退出时崩溃。现在会根据编译时的 OpenLDAP 版本号在 configure 期间发出警告，并在 contrib/dblink 回归测试中测试该崩溃场景。", "title": "在构建期间检测不兼容的 OpenLDAP 版本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "5fb7429dfd885c4d994f69d56c40132191dd154ef7d13a64e5359bc75afbf085", "section_path": ["变更"], "commit_groups": [["07115248f", "4c6d0abde", "81af4185a", "cec0c2182"]], "identity_text": "Detect incompatible OpenLDAP versions during build (Noah Misch) With OpenLDAP versions 2.4.24 through 2.4.31, inclusive, PostgreSQL backends can crash at exit. Raise a warning during configure based on the compile-time OpenLDAP version number, and test the crashing scenario in the contrib/dblink regression test.", "commit_aliases": ["07115248f", "4c6d0abde", "81af4185a", "cec0c2182"], "source_commits": ["07115248f"], "source_entry_id": "9.3.6/changes/085", "db_id": "dd89a54e049b842da00d4fe92a80425a", "patch_ids": ["785c44f8ebed2423f7ef976182f65c53"], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1", "relations": [{"rule": 2, "type": "equivalent", "target": "683140e5c1ecc12f0ea43d872bd098ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}}, {"rule": 2, "type": "equivalent", "target": "79ac97dd69845b99033f6ee8bcc77cb1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}}, {"rule": 2, "type": "equivalent", "target": "c24848632f8fe17c9f5cfb8c353abc23", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "79ac97dd69845b99033f6ee8bcc77cb1", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "在构建期间检测不兼容的 OpenLDAP 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}, "url": "/docs/compare/?release=9.2.10#9.2.10-39cf90228ff2c6d6", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "c24848632f8fe17c9f5cfb8c353abc23", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "在构建期间检测不兼容的 OpenLDAP 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}, "url": "/docs/compare/?release=9.1.15#9.1.15-39cf90228ff2c6d6", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "683140e5c1ecc12f0ea43d872bd098ea", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "在构建期间检测不兼容的 OpenLDAP 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d065bbeb86f700a618de8e8d237089a131521696632720be7a6ac97377a41d1"}, "url": "/docs/compare/?release=9.0.19#9.0.19-39cf90228ff2c6d6", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-0c0d4359830e76b8", "cves": [], "html": "<p>在非 MSVC 的 Windows 构建中，确保安装的 <code>libpq.dll</code> 带有执行权限（Noah Misch）</p>", "text": "在非 MSVC 的 Windows 构建中，确保安装的 libpq.dll 带有执行权限（Noah Misch）", "title": "在非 MSVC 的 Windows 构建中，确保安装的 libpq.dll 带有执行权限", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "7b278a93af318f4ccb7ecd85bf145d1889e6c511f2d3877e52ebcfad7e5beb17", "section_path": ["变更"], "commit_groups": [["318fe2321", "ba72fc054", "e6841c4d6", "ebd4d9cdd"]], "identity_text": "In non-MSVC Windows builds, ensure libpq.dll is installed with execute permissions (Noah Misch)", "commit_aliases": ["318fe2321", "ba72fc054", "e6841c4d6", "ebd4d9cdd"], "source_commits": ["318fe2321"], "source_entry_id": "9.3.6/changes/086", "db_id": "226af100e754c994ca40d8f93abcdd6f", "patch_ids": ["162a7619414ca02c762c641dd506d3e9"], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e", "relations": [{"rule": 2, "type": "equivalent", "target": "7556256b3c127b4489aa25e04b1ae5d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}}, {"rule": 2, "type": "equivalent", "target": "9d39c42de62004fc65b9ee9ae06eda1d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}}, {"rule": 2, "type": "equivalent", "target": "e377f519b858553b153c1e7082d3a479", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7556256b3c127b4489aa25e04b1ae5d6", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "在非 MSVC 的 Windows 构建中，确保安装的 libpq.dll 带有执行权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}, "url": "/docs/compare/?release=9.2.10#9.2.10-0c0d4359830e76b8", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "9d39c42de62004fc65b9ee9ae06eda1d", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "在非 MSVC 的 Windows 构建中，确保安装的 libpq.dll 带有执行权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}, "url": "/docs/compare/?release=9.1.15#9.1.15-0c0d4359830e76b8", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "e377f519b858553b153c1e7082d3a479", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "在非 MSVC 的 Windows 构建中，确保安装的 libpq.dll 带有执行权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba116a1a91d979fda4e6a890869fb980d0832321c68478e928f711046b37739e"}, "url": "/docs/compare/?release=9.0.19#9.0.19-0c0d4359830e76b8", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-f47c85fceb5543ce", "cves": [], "html": "<p>使 <span>pg_regress</span> 成功退出时删除其创建的任何临时安装（Tom Lane）</p>\n<p>这使 <code>make check-world</code> 期间的磁盘空间用量大幅减少，因为该序列会创建大量临时安装。</p>", "text": "使 pg_regress 成功退出时删除其创建的任何临时安装（Tom Lane） 这使 make check-world 期间的磁盘空间用量大幅减少，因为该序列会创建大量临时安装。", "title": "使 pg_regress 成功退出时删除其创建的任何临时安装", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "fbcebfcbdaa9df663aac90e74851baf3e3e1ce4773d9210434ab8e653e351f20", "section_path": ["变更"], "commit_groups": [["1681e2f74", "338ff75fc", "3de9f22ac", "89b6a19e1", "aa719391d", "f4f522deb"]], "identity_text": "Make pg_regress remove any temporary installation it created upon successful exit (Tom Lane) This results in a very substantial reduction in disk space usage during make check-world, since that sequence involves creation of numerous temporary installations.", "commit_aliases": ["1681e2f74", "338ff75fc", "3de9f22ac", "89b6a19e1", "aa719391d", "f4f522deb"], "source_commits": ["1681e2f74"], "source_entry_id": "9.3.6/changes/087", "db_id": "90cf5b9ee2356d5408f6174d793511a2", "patch_ids": ["9bc55c1024621f71865be614cffd1997"], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03", "relations": [{"rule": 2, "type": "equivalent", "target": "0f21fd45378823224fb8cd2c35018e1d", "evidence": {"same_day": true, "patch_ids": ["9bc55c1024621f71865be614cffd1997"], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}}, {"rule": 2, "type": "equivalent", "target": "4a7e136d6a905f01773a4c148760dc26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}}, {"rule": 2, "type": "equivalent", "target": "f80a99586906e281b180c32f9f1f8305", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}}, {"rule": 2, "type": "equivalent", "target": "f93cb3800fc70d52a0eaf7ac3db017d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0f21fd45378823224fb8cd2c35018e1d", "kind": "equivalent", "version": "9.4.1", "label": "9.4.1", "title": "使 pg_regress 成功退出时删除其创建的任何临时安装", "evidence": {"same_day": true, "patch_ids": ["9bc55c1024621f71865be614cffd1997"], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}, "url": "/docs/compare/?release=9.4.1#9.4.1-f47c85fceb5543ce", "source_url": "/docs/release/9.4.1/#id-1.11.6.30.5"}, {"db_id": "f80a99586906e281b180c32f9f1f8305", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "使 pg_regress 成功退出时删除其创建的任何临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}, "url": "/docs/compare/?release=9.2.10#9.2.10-f47c85fceb5543ce", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "4a7e136d6a905f01773a4c148760dc26", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "使 pg_regress 成功退出时删除其创建的任何临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}, "url": "/docs/compare/?release=9.1.15#9.1.15-f47c85fceb5543ce", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "f93cb3800fc70d52a0eaf7ac3db017d0", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "使 pg_regress 成功退出时删除其创建的任何临时安装", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee2f2ab7ad29356e5dddb6ffb4676a5c8faf6faac6f66444faf34c6a824c8f03"}, "url": "/docs/compare/?release=9.0.19#9.0.19-f47c85fceb5543ce", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-77723f91da6d14c0", "cves": [], "html": "<p>支持随时间改变 UTC 偏移的时区缩写（Tom Lane）</p>\n<p>此前，<span>PostgreSQL</span> 假定时区缩写（如 <code>EST</code>）关联的 UTC 偏移在任何特定区域设置的用法中永不改变。然而这一假设在现实世界中并不成立，因此引入了让区域缩写表示有时会变化的 UTC 偏移的能力。更新了时区缩写定义文件，在自 1970 年以来缩写的 UTC 偏移发生过变化的时区区域设置中使用此功能（依据 IANA 时区数据库）。在此类时区中，<span>PostgreSQL</span> 现在会根据给定日期为缩写关联正确的 UTC 偏移。</p>", "text": "支持随时间改变 UTC 偏移的时区缩写（Tom Lane） 此前，PostgreSQL 假定时区缩写（如 EST）关联的 UTC 偏移在任何特定区域设置的用法中永不改变。然而这一假设在现实世界中并不成立，因此引入了让区域缩写表示有时会变化的 UTC 偏移的能力。更新了时区缩写定义文件，在自 1970 年以来缩写的 UTC 偏移发生过变化的时区区域设置中使用此功能（依据 IANA 时区数据库）。在此类时区中，PostgreSQL 现在会根据给定日期为缩写关联正确的 UTC 偏移。", "title": "支持随时间改变 UTC 偏移的时区缩写", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "37f5837e4d94ff2d4f597952bf4e68071d256cf607472d8da905c8f70d95a36d", "section_path": ["变更"], "commit_groups": [["137e7c164", "2784b68b3", "7c67b9365", "870a980aa"]], "identity_text": "Support time zone abbreviations that change UTC offset from time to time (Tom Lane) Previously, PostgreSQL assumed that the UTC offset associated with a time zone abbreviation (such as EST) never changes in the usage of any particular locale. However this assumption fails in the real world, so introduce the ability for a zone abbreviation to represent a UTC offset that sometimes changes. Update the zone abbreviation definition files to make use of this feature in timezone locales that have changed the UTC offset of their abbreviations since 1970 (according to the IANA timezone database). In such timezones, PostgreSQL will now associate the correct UTC offset with the abbreviation depending on the given date.", "commit_aliases": ["137e7c164", "2784b68b3", "7c67b9365", "870a980aa"], "source_commits": ["137e7c164"], "source_entry_id": "9.3.6/changes/088", "db_id": "854ddf984dcdb9921b26d5ae0ee9de60", "patch_ids": ["ad15ff2e7457fbbc410de3eea2dff439"], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff", "relations": [{"rule": 2, "type": "equivalent", "target": "9231b02c97705c0ca64095e3e093c6de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}}, {"rule": 2, "type": "equivalent", "target": "b4cdc7057684904bbb5e7ccbfa582405", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}}, {"rule": 2, "type": "equivalent", "target": "f08e49dc6b542196f8383acd3b0b9c65", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9231b02c97705c0ca64095e3e093c6de", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "支持随时间改变 UTC 偏移的时区缩写", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}, "url": "/docs/compare/?release=9.2.10#9.2.10-77723f91da6d14c0", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "f08e49dc6b542196f8383acd3b0b9c65", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "支持随时间改变 UTC 偏移的时区缩写", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}, "url": "/docs/compare/?release=9.1.15#9.1.15-77723f91da6d14c0", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "b4cdc7057684904bbb5e7ccbfa582405", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "支持随时间改变 UTC 偏移的时区缩写", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff"}, "url": "/docs/compare/?release=9.0.19#9.0.19-77723f91da6d14c0", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-032540b2097e4592", "cves": [], "html": "<p>更新时区缩写列表（Tom Lane）</p>\n<p>把 CST（中国标准时间）加入列表。移除 ADT 作为<span>“<span>阿拉伯夏令时</span>”</span>的引用——这个缩写自 2007 年起已不再使用；因此，声称它与<span>“<span>大西洋夏令时</span>”</span>冲突似乎没有特别的帮助。修正 CKT（库克群岛）、FJT 和 FJST（斐济）完全错误的 GMT 偏移；此前我们甚至把它们放到了日期变更线的错误一侧。</p>", "text": "更新时区缩写列表（Tom Lane） 把 CST（中国标准时间）加入列表。移除 ADT 作为“阿拉伯夏令时”的引用——这个缩写自 2007 年起已不再使用；因此，声称它与“大西洋夏令时”冲突似乎没有特别的帮助。修正 CKT（库克群岛）、FJT 和 FJST（斐济）完全错误的 GMT 偏移；此前我们甚至把它们放到了日期变更线的错误一侧。", "title": "更新时区缩写列表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "62eb29478137c34690e7bfb0f041a9d373272d8140386f23cf3181bd5c015219", "section_path": ["变更"], "commit_groups": [["0190f0a76", "310597e31", "5c8665892", "8b70023af"], ["252af79d9", "9701f238b", "cc7bad30c", "d7d546bbc"]], "identity_text": "Update time zone abbreviations lists (Tom Lane) Add CST (China Standard Time) to our lists. Remove references to ADT as Arabia Daylight Time, an abbreviation that's been out of use since 2007; therefore, claiming there is a conflict with Atlantic Daylight Time doesn't seem especially helpful. Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST (Fiji); we didn't even have them on the proper side of the date line.", "commit_aliases": ["0190f0a76", "252af79d9", "310597e31", "5c8665892", "8b70023af", "9701f238b", "cc7bad30c", "d7d546bbc"], "source_commits": ["0190f0a76", "9701f238b"], "source_entry_id": "9.3.6/changes/089", "db_id": "92a800a5f70e680321cac35d4c4bd97e", "patch_ids": ["0e17dd8407e5df7fe81d64ea0ce3c706", "d1102a31f9736f3c693214a8589eb437"], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c", "relations": [{"rule": 2, "type": "equivalent", "target": "25cb740945059a2a5b40cb5773d4c0b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}}, {"rule": 2, "type": "equivalent", "target": "494c4fbd0c9ea7e750866c69da07da6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}}, {"rule": 2, "type": "equivalent", "target": "f4166fde9bded9b1fc5f96fb69019308", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "494c4fbd0c9ea7e750866c69da07da6b", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "更新时区缩写列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}, "url": "/docs/compare/?release=9.2.10#9.2.10-032540b2097e4592", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "25cb740945059a2a5b40cb5773d4c0b1", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "更新时区缩写列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}, "url": "/docs/compare/?release=9.1.15#9.1.15-032540b2097e4592", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "f4166fde9bded9b1fc5f96fb69019308", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "更新时区缩写列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e01d16beb0301981dff1bb6ff34c6f2da9b0baeb108e73d27dbe4698e6b8bc4c"}, "url": "/docs/compare/?release=9.0.19#9.0.19-032540b2097e4592", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}, {"id": "9.3.6-75a4e432b9ec73f2", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2015a。</p>\n<p>IANA 时区数据库为所有澳大利亚时区采用了 <code>A<em><code>x</code></em>ST</code>/<code>A<em><code>x</code></em>DT</code> 形式的缩写，以反映他们认为的当地当前多数用法。这些名称与其他地方的用法不冲突（唯一例外是表示 Acre 夏令时的 ACST，该用法自 1994 年起已废弃）。因此，我们把这些名称采纳进<span>“<span>默认</span>”</span>时区缩写集。<span>“<span>澳大利亚</span>”</span>缩写集现在只包含 CST、EAST、EST、SAST、SAT 和 WST，这些被认为主要是历史用法。注意，在<span>“<span>默认</span>”</span>缩写集中，SAST 也已改为南非标准时间。</p>\n<p>此外，新增时区缩写 SRET（Asia/Srednekolymsk）和 XJT（Asia/Urumqi），并对西萨摩亚使用 WSST/WSDT。同时，智利、墨西哥、特克斯和凯科斯群岛（America/Grand_Turk）以及斐济的夏令时法规有变更。还为巴布亚新几内亚部分地区新增了时区 Pacific/Bougainville。另外还有大量针对历史（1970 年以前）时区数据的修正。</p>", "text": "把时区数据文件更新为 tzdata 版本 2015a。 IANA 时区数据库为所有澳大利亚时区采用了 AxST/AxDT 形式的缩写，以反映他们认为的当地当前多数用法。这些名称与其他地方的用法不冲突（唯一例外是表示 Acre 夏令时的 ACST，该用法自 1994 年起已废弃）。因此，我们把这些名称采纳进“默认”时区缩写集。“澳大利亚”缩写集现在只包含 CST、EAST、EST、SAST、SAT 和 WST，这些被认为主要是历史用法。注意，在“默认”缩写集中，SAST 也已改为南非标准时间。 此外，新增时区缩写 SRET（Asia/Srednekolymsk）和 XJT（Asia/Urumqi），并对西萨摩亚使用 WSST/WSDT。同时，智利、墨西哥、特克斯和凯科斯群岛（America/Grand_Turk）以及斐济的夏令时法规有变更。还为巴布亚新几内亚部分地区新增了时区 Pacific/Bougainville。另外还有大量针对历史（1970 年以前）时区数据的修正。", "title": "把时区数据文件更新为 tzdata 版本 2015a。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.6/#id-1.11.6.24.5", "source_hash": "83e5ecb974e959239ee6a7726116927441ffa698206fe7f5b4a8c88068ac90d4", "section_path": ["变更"], "commit_groups": [["3553d9c6e", "8470cd473", "c9048d353", "cb24cd3f4"], ["745723c9e", "8f75d7a25", "b6391f587", "c66199151"], ["92979576e", "ab45d907b", "b1e996035", "b96c47a3d"]], "identity_text": "Update time zone data files to tzdata release 2015a. The IANA timezone database has adopted abbreviations of the form AxST/AxDT for all Australian time zones, reflecting what they believe to be current majority practice Down Under. These names do not conflict with usage elsewhere (other than ACST for Acre Summer Time, which has been in disuse since 1994). Accordingly, adopt these names into our Default timezone abbreviation set. The Australia abbreviation set now contains only CST, EAST, EST, SAST, SAT, and WST, all of which are thought to be mostly historical usage. Note that SAST has also been changed to be South Africa Standard Time in the Default abbreviation set. Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT (Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were DST law changes in Chile, Mexico, the Turks & Caicos Islands (America/Grand_Turk), and Fiji. There is a new zone Pacific/Bougainville for portions of Papua New Guinea. Also, numerous corrections for historical (pre-1970) time zone data.", "commit_aliases": ["3553d9c6e", "745723c9e", "8470cd473", "8f75d7a25", "92979576e", "ab45d907b", "b1e996035", "b6391f587", "b96c47a3d", "c66199151", "c9048d353", "cb24cd3f4"], "source_commits": ["8470cd473", "ab45d907b", "c66199151"], "source_entry_id": "9.3.6/changes/090", "db_id": "87ee59fa9d13e6f01840f0900a31de50", "patch_ids": ["19b0fc874d3ab3bf7d8847df904a4e56", "1ceb838abaf41ebc501daebd4210220f", "6a7228167bc2579ba6d9a813b91a9096"], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346", "relations": [{"rule": 2, "type": "equivalent", "target": "1bea67b9bb186fcda99a837258183e3c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}}, {"rule": 2, "type": "equivalent", "target": "3e80abb929ccd280ce8be6e8d43d4b7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}}, {"rule": 2, "type": "equivalent", "target": "4fd9baa5e7f7c8b8ac2b40971340517c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}}], "version": "9.3.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1bea67b9bb186fcda99a837258183e3c", "kind": "equivalent", "version": "9.2.10", "label": "9.2.10", "title": "把时区数据文件更新为 tzdata 版本 2015a。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}, "url": "/docs/compare/?release=9.2.10#9.2.10-75a4e432b9ec73f2", "source_url": "/docs/release/9.2.10/#id-1.11.6.19.5"}, {"db_id": "4fd9baa5e7f7c8b8ac2b40971340517c", "kind": "equivalent", "version": "9.1.15", "label": "9.1.15", "title": "把时区数据文件更新为 tzdata 版本 2015a。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}, "url": "/docs/compare/?release=9.1.15#9.1.15-75a4e432b9ec73f2", "source_url": "/docs/release/9.1.15/#id-1.11.6.14.5"}, {"db_id": "3e80abb929ccd280ce8be6e8d43d4b7b", "kind": "equivalent", "version": "9.0.19", "label": "9.0.19", "title": "把时区数据文件更新为 tzdata 版本 2015a。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6fa98831ae8effbbe330002e232775d03710e117ba2b88169925b7e86f63346"}, "url": "/docs/compare/?release=9.0.19#9.0.19-75a4e432b9ec73f2", "source_url": "/docs/release/9.0.19/#id-1.11.6.9.5"}]}]}, {"date": "2014-07-24", "build": "9.3.5", "major": "9.3", "minor": 5, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.5", "eol_date": "2018-11-08", "date_text": "2014-07-24", "supported": false, "manual_url": "/docs/9.3/release-9-3-5.html", "source_url": "/docs/release/9.3.5/", "entry_count": 54, "placeholder": false, "content_hash": "743accb01d2d5dda760db12f66748caafd7fc6ad5597609a1da19dca9da598bd", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 54, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，本版本纠正了 <span>pg_upgrade</span> 中的一个逻辑错误，以及某些 GiST 索引的索引损坏问题。请参见下面前两条变更日志，以确认你的安装是否受影响以及应采取的步骤。</p>\n<p>不过，如果你是从早于 9.3.4 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-4.html\" title=\"E.22. 版本 9.3.4\">第 E.22 节</a>。</p>", "compatibility_count": 0, "label": "9.3.5", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4451, "support_days": -2883, "entries": [{"id": "9.3.5-9b841504b6305f6a", "cves": [], "html": "<p>在 <span>pg_upgrade</span> 中，删除 <span>initdb</span> 遗留的 <code>pg_multixact</code> 文件（Bruce Momjian）</p>\n<p>如果你使用了 9.3.5 之前版本的 <span>pg_upgrade</span> 把数据库集簇升级到 9.3，它可能遗留了一个本不应存在的文件 <code>$PGDATA/pg_multixact/offsets/0000</code>，该文件最终会在 <code>VACUUM</code> 中引发问题。<span><em>然而，在常见情况下这个文件实际上是有效的，绝不能删除。</em></span>要判断你的安装是否存在此问题，请以超级用户身份在集簇的任意数据库中运行以下查询：</p>\n<pre>WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets'))\nSELECT EXISTS (SELECT * FROM list WHERE file = '0000')\n AND NOT EXISTS (SELECT * FROM list WHERE file = '0001')\n AND NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF')\n AND EXISTS (SELECT * FROM list WHERE file != '0000')\nAS file_0000_removal_required;\n</pre>\n<p>如果该查询返回 <code>t</code>，请手工删除文件 <code>$PGDATA/pg_multixact/offsets/0000</code>。如果查询返回 <code>f</code>，则无需任何操作。</p>", "text": "在 pg_upgrade 中，删除 initdb 遗留的 pg_multixact 文件（Bruce Momjian） 如果你使用了 9.3.5 之前版本的 pg_upgrade 把数据库集簇升级到 9.3，它可能遗留了一个本不应存在的文件 $PGDATA/pg_multixact/offsets/0000，该文件最终会在 VACUUM 中引发问题。然而，在常见情况下这个文件实际上是有效的，绝不能删除。要判断你的安装是否存在此问题，请以超级用户身份在集簇的任意数据库中运行以下查询： WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets')) SELECT EXISTS (SELECT * FROM list WHERE file = '0000') AND NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND EXISTS (SELECT * FROM list WHERE file != '0000') AS file_0000_removal_required; 如果该查询返回 t，请手工删除文件 $PGDATA/pg_multixact/offsets/0000。如果查询返回 f，则无需任何操作。", "title": "在 pg_upgrade 中，删除 initdb 遗留的 pg_multixact 文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "de1628ca71c91b8579fa3793ce0598d8527ce78b8a712f116dfd3813becb7319", "section_path": ["变更"], "commit_groups": [["0f7482733", "cc5841809", "dd5369047"]], "identity_text": "In pg_upgrade, remove pg_multixact files left behind by initdb (Bruce Momjian) If you used a pre-9.3.5 version of pg_upgrade to upgrade a database cluster to 9.3, it might have left behind a file $PGDATA/pg_multixact/offsets/0000 that should not be there and will eventually cause problems in VACUUM. However, in common cases this file is actually valid and must not be removed. To determine whether your installation has this problem, run this query as superuser, in any database of the cluster: WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets')) SELECT EXISTS (SELECT * FROM list WHERE file = '0000') AND NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND EXISTS (SELECT * FROM list WHERE file != '0000') AS file_0000_removal_required; If this query returns t, manually remove the file $PGDATA/pg_multixact/offsets/0000. Do nothing if the query returns f.", "commit_aliases": ["0f7482733", "cc5841809", "dd5369047"], "source_commits": ["cc5841809"], "source_entry_id": "9.3.5/changes/001", "db_id": "72715be972cf2aaad5c9cfc89231d612", "patch_ids": ["0d78774302292602bfaada7d902ba4d0"], "statement_hash": "ff7aebda71582817f6406048b9e7122de47837a1e06b7fc486d95f860db7d142", "relations": [], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-d2c6d31db7b8f554", "cves": [], "html": "<p>正确初始化 <code>contrib/btree_gist</code> 在 <code>bit</code> 列上索引的填充字节（Heikki Linnakangas）</p>\n<p>这一错误可能导致本应比较相等的值不被视为相等，从而产生错误的查询结果。在 <code>bit</code> 或 <code>bit varying</code> 列上建有 GiST 索引的用户，在安装此更新后应对这些索引执行 <code>REINDEX</code>。</p>", "text": "正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节（Heikki Linnakangas） 这一错误可能导致本应比较相等的值不被视为相等，从而产生错误的查询结果。在 bit 或 bit varying 列上建有 GiST 索引的用户，在安装此更新后应对这些索引执行 REINDEX。", "title": "正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "709d713e12d304166f987b54c4dce9fb04d23a1afead525014a2a3ee1f10e32f", "section_path": ["变更"], "commit_groups": [["0d8d0d027", "1913d0f28", "540ac7cea", "c87c43f08", "d5b912c90", "e31d77c96"]], "identity_text": "Correctly initialize padding bytes in contrib/btree_gist indexes on bit columns (Heikki Linnakangas) This error could result in incorrect query results due to values that should compare equal not being seen as equal. Users with GiST indexes on bit or bit varying columns should REINDEX those indexes after installing this update.", "commit_aliases": ["0d8d0d027", "1913d0f28", "540ac7cea", "c87c43f08", "d5b912c90", "e31d77c96"], "source_commits": ["d5b912c90"], "source_entry_id": "9.3.5/changes/002", "db_id": "5d8b301dac7ea946159414f417b80e20", "patch_ids": ["c9664c6a684af10fa9dd057232b79dfd"], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11", "relations": [{"rule": 2, "type": "equivalent", "target": "bb8c4a129b84f2137f55859616c7a7c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}}, {"rule": 2, "type": "equivalent", "target": "c08b5ee3c4feadbdf794e02f47e53d44", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}}, {"rule": 2, "type": "equivalent", "target": "c4f7127cc64d8fe10e55c425915ade36", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bb8c4a129b84f2137f55859616c7a7c6", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}, "url": "/docs/compare/?release=9.2.9#9.2.9-d2c6d31db7b8f554", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "c4f7127cc64d8fe10e55c425915ade36", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}, "url": "/docs/compare/?release=9.1.14#9.1.14-d2c6d31db7b8f554", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "c08b5ee3c4feadbdf794e02f47e53d44", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5ec7f05650e8d35c9b6ce456cec4314dd5b264d089fd9a8a65ddb5c8d01bf11"}, "url": "/docs/compare/?release=9.0.18#9.0.18-d2c6d31db7b8f554", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-18682773bb8a060c", "cves": [], "html": "<p>在删除 GIN 列表页时防止残缺页（torn page）（Heikki Linnakangas）</p>\n<p>此修复可防止在页面更新写入磁盘期间发生系统崩溃时可能出现的索引损坏。</p>", "text": "在删除 GIN 列表页时防止残缺页（torn page）（Heikki Linnakangas） 此修复可防止在页面更新写入磁盘期间发生系统崩溃时可能出现的索引损坏。", "title": "在删除 GIN 列表页时防止残缺页（torn page）", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "afcb91dde071d7de5a6c7fcbe1316c8991d363ec78826005a4d89b02863e4d4a", "section_path": ["变更"], "commit_groups": [["31633f992", "34572920c", "4f7bb4b2a", "686a7194e", "8b4efe1f3", "be7830596"]], "identity_text": "Protect against torn pages when deleting GIN list pages (Heikki Linnakangas) This fix prevents possible index corruption if a system crash occurs while the page update is being written to disk.", "commit_aliases": ["31633f992", "34572920c", "4f7bb4b2a", "686a7194e", "8b4efe1f3", "be7830596"], "source_commits": ["34572920c"], "source_entry_id": "9.3.5/changes/003", "db_id": "9c3944d9105c97482a4dc2fb8776b26f", "patch_ids": ["c20841a63b3d8ed03a2f66546d670e37"], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc", "relations": [{"rule": 2, "type": "equivalent", "target": "8329b9d263d6d6befba8bbe22cd17322", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}}, {"rule": 2, "type": "equivalent", "target": "b73f1e86dca122120bdb13fac7f9140e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}}, {"rule": 2, "type": "equivalent", "target": "ee04033d30f9bad8474c949135bf2bef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ee04033d30f9bad8474c949135bf2bef", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在删除 GIN 列表页时防止残缺页（torn page）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}, "url": "/docs/compare/?release=9.2.9#9.2.9-18682773bb8a060c", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "b73f1e86dca122120bdb13fac7f9140e", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在删除 GIN 列表页时防止残缺页（torn page）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}, "url": "/docs/compare/?release=9.1.14#9.1.14-18682773bb8a060c", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "8329b9d263d6d6befba8bbe22cd17322", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "在删除 GIN 列表页时防止残缺页（torn page）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3069a09e51a039b54312df352e46e435116f1aab6749579fa61617bc1036c4dc"}, "url": "/docs/compare/?release=9.0.18#9.0.18-18682773bb8a060c", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-3f8b30812c5bc055", "cves": [], "html": "<p>在从 WAL 重放更新时不清除 GiST 索引页的右链接（Heikki Linnakangas）</p>\n<p>这一错误可能导致热备中执行的 GiST 索引扫描出现瞬时错误的结果。</p>", "text": "在从 WAL 重放更新时不清除 GiST 索引页的右链接（Heikki Linnakangas） 这一错误可能导致热备中执行的 GiST 索引扫描出现瞬时错误的结果。", "title": "在从 WAL 重放更新时不清除 GiST 索引页的右链接", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "a5857dd9de60f280e88715cfdfa6c6cf03562cd2eb6799d62bee57c753c789df", "section_path": ["变更"], "commit_groups": [["02b9fd73e", "601c01e08", "7ca32e255", "ac0078c1d", "d034e9b3b"]], "identity_text": "Don't clear the right-link of a GiST index page while replaying updates from WAL (Heikki Linnakangas) This error could lead to transiently wrong answers from GiST index scans performed in Hot Standby.", "commit_aliases": ["02b9fd73e", "601c01e08", "7ca32e255", "ac0078c1d", "d034e9b3b"], "source_commits": ["601c01e08"], "source_entry_id": "9.3.5/changes/004", "db_id": "fedab52c93a87fca93f07ce5578f54d9", "patch_ids": ["be63ecf3ca60bc501865f95b1a663210"], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19", "relations": [{"rule": 2, "type": "equivalent", "target": "5425fcaaa9bd29ad257e597861d9667b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}}, {"rule": 2, "type": "equivalent", "target": "5a9b0ae5835cea90e10cdfaf0e83b577", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}}, {"rule": 2, "type": "equivalent", "target": "979dc6be64dc95c5598f2e4eb26071f6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5425fcaaa9bd29ad257e597861d9667b", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在从 WAL 重放更新时不清除 GiST 索引页的右链接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}, "url": "/docs/compare/?release=9.2.9#9.2.9-3f8b30812c5bc055", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "5a9b0ae5835cea90e10cdfaf0e83b577", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在从 WAL 重放更新时不清除 GiST 索引页的右链接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}, "url": "/docs/compare/?release=9.1.14#9.1.14-3f8b30812c5bc055", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "979dc6be64dc95c5598f2e4eb26071f6", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "在从 WAL 重放更新时不清除 GiST 索引页的右链接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "def835604a6dace9bf61c26a054e374964e1352d8428f232acb25e794b113b19"}, "url": "/docs/compare/?release=9.0.18#9.0.18-3f8b30812c5bc055", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-0ba643c9eb7f14d6", "cves": [], "html": "<p>修复向 SP-GiST 文本索引插入时极端情况下的无限循环（Tom Lane）</p>", "text": "修复向 SP-GiST 文本索引插入时极端情况下的无限循环（Tom Lane）", "title": "修复向 SP-GiST 文本索引插入时极端情况下的无限循环", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "bab566d99881200bd3ffdd03d690b57c42b725c66209ac47d6d2c43d15449f48", "section_path": ["变更"], "commit_groups": [["717c116f1", "93328b2df", "c170655cc"]], "identity_text": "Fix corner-case infinite loop during insertion into an SP-GiST text index (Tom Lane)", "commit_aliases": ["717c116f1", "93328b2df", "c170655cc"], "source_commits": ["717c116f1"], "source_entry_id": "9.3.5/changes/005", "db_id": "b1c7bceaf36d10d7b51d6c06c18c6a65", "patch_ids": ["412d3eecadc981cd90268b71e6fe525f"], "statement_hash": "32152d4528e8561a4549a029ccc18a16a7372bdd7ce8db4d8c6298fdc9d4a2e0", "relations": [{"rule": 2, "type": "equivalent", "target": "b4d9612e11b01921602c7b39aef2f076", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "32152d4528e8561a4549a029ccc18a16a7372bdd7ce8db4d8c6298fdc9d4a2e0"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b4d9612e11b01921602c7b39aef2f076", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复向 SP-GiST 文本索引插入时极端情况下的无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "32152d4528e8561a4549a029ccc18a16a7372bdd7ce8db4d8c6298fdc9d4a2e0"}, "url": "/docs/compare/?release=9.2.9#9.2.9-0ba643c9eb7f14d6", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}]}, {"id": "9.3.5-f37efddaabeacdce", "cves": [], "html": "<p>修复 SP-GiST 索引搜索在使用 <code>-|-</code>（范围相邻）操作符时结果错误的问题（Heikki Linnakangas）</p>", "text": "修复 SP-GiST 索引搜索在使用 -|-（范围相邻）操作符时结果错误的问题（Heikki Linnakangas）", "title": "修复 SP-GiST 索引搜索在使用 -|-（范围相邻）操作符时结果错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "271f203f3ee25dd9971cedf15a49e866873d1a266b733f3b520a3dee0c030612", "section_path": ["变更"], "commit_groups": [["1264ef31a", "9b3ef66af", "a4867d041"]], "identity_text": "Fix incorrect answers from SP-GiST index searches with -|- (range adjacency) operator (Heikki Linnakangas)", "commit_aliases": ["1264ef31a", "9b3ef66af", "a4867d041"], "source_commits": ["a4867d041"], "source_entry_id": "9.3.5/changes/006", "db_id": "fded549efa16387b3abcf5c44e73d76b", "patch_ids": ["6bc355fc67d053a11732ca4f0e5f501a"], "statement_hash": "a44dab89f5ef0d082a10e2af7c192d3919d525f3dcd0fe7a0bfcc17e88fcd705", "relations": [], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-70dadc97c1fe686d", "cves": [], "html": "<p>修复 <code>pg_multixact/members</code> 的回卷处理（Álvaro Herrera）</p>", "text": "修复 pg_multixact/members 的回卷处理（Álvaro Herrera）", "title": "修复 pg_multixact/members 的回卷处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "12fcdfd793741e6d46daa67e64f439cea69b1c400c877c2639d6178b91b8ac74", "section_path": ["变更"], "commit_groups": [["167a2535f", "b0b263baa"]], "identity_text": "Fix wraparound handling for pg_multixact/members (Álvaro Herrera)", "commit_aliases": ["167a2535f", "b0b263baa"], "source_commits": ["167a2535f"], "source_entry_id": "9.3.5/changes/007", "db_id": "e3c7e81269b7cb866b3916b403fc69dd", "patch_ids": ["b24b3eaf3fd8b0e893ac8a08458e3dac"], "statement_hash": "ea25d13cd6c3282c816b9180aeda9865e0204c813829fa31515124a39b029bf2", "relations": [], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-dee71683f56b72c3", "cves": [], "html": "<p>在检查点期间而不是 <code>VACUUM</code> 期间截断 <code>pg_multixact</code>（Álvaro Herrera）</p>\n<p>此变更确保 <code>pg_multixact</code> 段不会在崩溃后 WAL 重放期间仍被需要时就被删除。</p>", "text": "在检查点期间而不是 VACUUM 期间截断 pg_multixact（Álvaro Herrera） 此变更确保 pg_multixact 段不会在崩溃后 WAL 重放期间仍被需要时就被删除。", "title": "在检查点期间而不是 VACUUM 期间截断 pg_multixact", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "68a1809e359b6cec8a98fdf99249c9d64102fd123bd8cc8045448e46a636ca8f", "section_path": ["变更"], "commit_groups": [["56f86bb76", "9a28c3752", "f741300c9"]], "identity_text": "Truncate pg_multixact during checkpoints, not during VACUUM (Álvaro Herrera) This change ensures that pg_multixact segments can't be removed if they'd still be needed during WAL replay after a crash.", "commit_aliases": ["56f86bb76", "9a28c3752", "f741300c9"], "source_commits": ["9a28c3752"], "source_entry_id": "9.3.5/changes/008", "db_id": "162bb83877dad11a2097460b7b11b8eb", "patch_ids": ["b4293433cb0d5e0a46d763fa4072ffde"], "statement_hash": "888727f14045defb326a785cd35dcf9a854c6f23aee581dde85aacc790bf9160", "relations": [], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-e7886afa5a8401b0", "cves": [], "html": "<p>修复 WAL 恢复后全可见标志可能不一致的问题（Heikki Linnakangas）</p>", "text": "修复 WAL 恢复后全可见标志可能不一致的问题（Heikki Linnakangas）", "title": "修复 WAL 恢复后全可见标志可能不一致的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "9883c2bcf6bbbbd919a951aa2eb0dba0536a15a9f476b5ea71f45e337c50b483", "section_path": ["变更"], "commit_groups": [["2a8e1ac59", "95aa823eb"]], "identity_text": "Fix possible inconsistency of all-visible flags after WAL recovery (Heikki Linnakangas)", "commit_aliases": ["2a8e1ac59", "95aa823eb"], "source_commits": ["95aa823eb"], "source_entry_id": "9.3.5/changes/009", "db_id": "55667e0de6bb68f6b173d23f7ea3dbf4", "patch_ids": ["45c4e2edb313f3e86c4fc37540822b5f"], "statement_hash": "97e7cdc6d4f3fac63942061372ebb0e8ff9ace98aba07057bfb3193e7f06e5f2", "relations": [], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-e12dc053d193646e", "cves": [], "html": "<p>修复嵌套调用 <code>ReceiveSharedInvalidMessages</code> 期间缓存失效可能不正确的问题（Andres Freund）</p>", "text": "修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题（Andres Freund）", "title": "修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "6a910cc9ef7a11b0825eb563239fa192a2dc2fee8e6b26b736d1f76b5f1966c2", "section_path": ["变更"], "commit_groups": [["0f928a85e", "2f4ee3a2f", "3ada1fab8", "4f4ef042f", "7d5b68621", "c8fbeeb45"]], "identity_text": "Fix possibly-incorrect cache invalidation during nested calls to ReceiveSharedInvalidMessages (Andres Freund)", "commit_aliases": ["0f928a85e", "2f4ee3a2f", "3ada1fab8", "4f4ef042f", "7d5b68621", "c8fbeeb45"], "source_commits": ["4f4ef042f"], "source_entry_id": "9.3.5/changes/010", "db_id": "273c053f34944a528604aa28cc9e7f17", "patch_ids": ["c41cfc5e61f5f2179d717934232e289a"], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c", "relations": [{"rule": 2, "type": "equivalent", "target": "1aaf0201a17b65d2b48c799e55a1bf9a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}}, {"rule": 2, "type": "equivalent", "target": "941fc67f41deef8bb58899550331ab9f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}}, {"rule": 2, "type": "equivalent", "target": "abb57a6802c3d73430cc1045e10305f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "abb57a6802c3d73430cc1045e10305f7", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}, "url": "/docs/compare/?release=9.2.9#9.2.9-e12dc053d193646e", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "941fc67f41deef8bb58899550331ab9f", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}, "url": "/docs/compare/?release=9.1.14#9.1.14-e12dc053d193646e", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "1aaf0201a17b65d2b48c799e55a1bf9a", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e020f62903dfedf2fadcff8225d57b0c2bf17ac13944c0a4442718d8c344c26c"}, "url": "/docs/compare/?release=9.0.18#9.0.18-e12dc053d193646e", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-bccff164fa08bfcd", "cves": [], "html": "<p>修复更新被其他进程并发锁定的元组时的竞态条件（Andres Freund、Álvaro Herrera）</p>", "text": "修复更新被其他进程并发锁定的元组时的竞态条件（Andres Freund、Álvaro Herrera）", "title": "修复更新被其他进程并发锁定的元组时的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "2681e12f7b8ed6ea74fee59addb97b1038da88210f1a7943609c40fe0e1898c5", "section_path": ["变更"], "commit_groups": [["1a917ae86", "c0bd128c8"]], "identity_text": "Fix race condition when updating a tuple concurrently locked by another process (Andres Freund, Álvaro Herrera)", "commit_aliases": ["1a917ae86", "c0bd128c8"], "source_commits": ["c0bd128c8"], "source_entry_id": "9.3.5/changes/011", "db_id": "a2a7194f85e1e8b1ee6c2b144edb5746", "patch_ids": ["13c2be202c9aed3efa0567bdce5aaee3"], "statement_hash": "e38f733c5f48f7aea89076d6840cee7e665282cb71959568e9eebd8f4304bc91", "relations": [], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-22a620da2325978e", "cves": [], "html": "<p>修复对从带继承子表的表读取的子查询执行 <code>UNION ALL</code> 时规划器报 <span>“<span>could not find pathkey item to sort</span>”</span> 失败的问题（Tom Lane）</p>", "text": "修复对从带继承子表的表读取的子查询执行 UNION ALL 时规划器报 “could not find pathkey item to sort” 失败的问题（Tom Lane）", "title": "修复对从带继承子表的表读取的子查询执行 UNION ALL 时规划器报 “could not find pathkey item to sort” 失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "f2f761f70854a0a3b4670c3e4745ae224af0cfa4b83cedcd457e7f11d44ad88c", "section_path": ["变更"], "commit_groups": [["0cf16686b", "555d0b200", "a2db7b7d0"]], "identity_text": "Fix could not find pathkey item to sort planner failures with UNION ALL over subqueries reading from tables with inheritance children (Tom Lane)", "commit_aliases": ["0cf16686b", "555d0b200", "a2db7b7d0"], "source_commits": ["a2db7b7d0"], "source_entry_id": "9.3.5/changes/012", "db_id": "19ad847390bbccd2556bd202966fe736", "patch_ids": ["75b8ba42f30411d144bb6d57151d2481"], "statement_hash": "1c3a3b845c2829e8b7e7b646d7f2fa9b6d65f769c183643981b22e4bbec939fc", "relations": [{"rule": 2, "type": "equivalent", "target": "4b8b73c22f7dc41abb2dd702bebf1e01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1c3a3b845c2829e8b7e7b646d7f2fa9b6d65f769c183643981b22e4bbec939fc"}}, {"rule": 2, "type": "equivalent", "target": "f5fd1221762c82e9a95f2d0fe6e0f23a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1c3a3b845c2829e8b7e7b646d7f2fa9b6d65f769c183643981b22e4bbec939fc"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f5fd1221762c82e9a95f2d0fe6e0f23a", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复对从带继承子表的表读取的子查询执行 UNION ALL 时规划器报“could not find pathkey item to sort”失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1c3a3b845c2829e8b7e7b646d7f2fa9b6d65f769c183643981b22e4bbec939fc"}, "url": "/docs/compare/?release=9.2.9#9.2.9-bd84f068c0948d9a", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "4b8b73c22f7dc41abb2dd702bebf1e01", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复对从带继承子表的表读取的子查询执行 UNION ALL 时规划器报 “could not find pathkey item to sort” 失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1c3a3b845c2829e8b7e7b646d7f2fa9b6d65f769c183643981b22e4bbec939fc"}, "url": "/docs/compare/?release=9.1.14#9.1.14-22a620da2325978e", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.3.5-faf4c8b633519c08", "cves": [], "html": "<p>当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的（David Rowley）</p>\n<p>这一疏忽可能导致诸如 <code>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP BY y)</code> 之类的构造被错误优化。</p>", "text": "当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的（David Rowley） 这一疏忽可能导致诸如 WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP BY y) 之类的构造被错误优化。", "title": "当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "e3cdb5e885713fbb6e916a461cea8a5edd6d8b8eca4f8d00b6d8d07c14c51ad3", "section_path": ["变更"], "commit_groups": [["189bd09cb", "2865d5952", "2e7469dc8", "6d36aee5b", "9e2f2d7a0", "ac45aa1dd", "fa21a760b"]], "identity_text": "Don't assume a subquery's output is unique if there's a set-returning function in its targetlist (David Rowley) This oversight could lead to misoptimization of constructs like WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP BY y).", "commit_aliases": ["189bd09cb", "2865d5952", "2e7469dc8", "6d36aee5b", "9e2f2d7a0", "ac45aa1dd", "fa21a760b"], "source_commits": ["6d36aee5b"], "source_entry_id": "9.3.5/changes/013", "db_id": "84948cbdcbf960a5938ea2bb5322a55f", "patch_ids": ["730b6738a71084712b6c3e7a69efc5fb"], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f", "relations": [{"rule": 2, "type": "equivalent", "target": "11db6efc9d4ec2ae33c51444e0bb7f14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}}, {"rule": 2, "type": "equivalent", "target": "3f0de4ee4478bf34317072fe1e1d1d75", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}}, {"rule": 2, "type": "equivalent", "target": "4091f69cd098522abf12a3f99c116f25", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4091f69cd098522abf12a3f99c116f25", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}, "url": "/docs/compare/?release=9.2.9#9.2.9-faf4c8b633519c08", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "3f0de4ee4478bf34317072fe1e1d1d75", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}, "url": "/docs/compare/?release=9.1.14#9.1.14-faf4c8b633519c08", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "11db6efc9d4ec2ae33c51444e0bb7f14", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "当子查询的目标列表中存在集合返回函数时，不再假定其输出是唯一的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3826bda5d95d5a7ef8820f8e0f7a01f1b7473cb23bd437ff1eb481ac76cd8f"}, "url": "/docs/compare/?release=9.0.18#9.0.18-faf4c8b633519c08", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-c45f375f04314996", "cves": [], "html": "<p>改进规划器，使其在可能时丢弃 <code>AND</code>/<code>OR</code> 的常量 NULL 输入（Tom Lane）</p>\n<p>此变更修复了一些 9.2 及之后版本更激进的参数替换导致比旧版本生成的计划更差的情况。</p>", "text": "改进规划器，使其在可能时丢弃 AND/OR 的常量 NULL 输入（Tom Lane） 此变更修复了一些 9.2 及之后版本更激进的参数替换导致比旧版本生成的计划更差的情况。", "title": "改进规划器，使其在可能时丢弃 AND/OR 的常量 NULL 输入", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "58af886fa15f716f4de13e39688e39c0bcf5bbc7930745f1fade0206ec585f61", "section_path": ["变更"], "commit_groups": [["0901dbab3", "150a44e83", "95811032d"]], "identity_text": "Improve planner to drop constant-NULL inputs of AND/OR when possible (Tom Lane) This change fixes some cases where the more aggressive parameter substitution done by 9.2 and later can lead to a worse plan than older versions produced.", "commit_aliases": ["0901dbab3", "150a44e83", "95811032d"], "source_commits": ["150a44e83"], "source_entry_id": "9.3.5/changes/014", "db_id": "f8cc8bde41a89cf1bbbd3110ccf9ad45", "patch_ids": ["ebff781a7ac87222192db7534ca91d11"], "statement_hash": "30e6c742d1b2e76fb7e5465108675e5a8100382d8df30e6232e16a4aa7a61249", "relations": [{"rule": 2, "type": "equivalent", "target": "ba501da22c351fce63fa7d3c61f8960b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e6c742d1b2e76fb7e5465108675e5a8100382d8df30e6232e16a4aa7a61249"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ba501da22c351fce63fa7d3c61f8960b", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "改进规划器，使其在可能时丢弃 AND/OR 的常量 NULL 输入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e6c742d1b2e76fb7e5465108675e5a8100382d8df30e6232e16a4aa7a61249"}, "url": "/docs/compare/?release=9.2.9#9.2.9-c45f375f04314996", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}]}, {"id": "9.3.5-2c47a69f90b612f0", "cves": [], "html": "<p>确保规划器把等价的 <code>VARIADIC</code> 与非 <code>VARIADIC</code> 函数调用视为相同（Tom Lane）</p>\n<p>例如，这一缺陷可能导致无法使用涉及可变参数函数的表达式索引。要让此修复对现有 9.3 安装生效，可能需要重建这类索引，和/或重建包含应与索引匹配的可变参数函数调用的视图。</p>", "text": "确保规划器把等价的 VARIADIC 与非 VARIADIC 函数调用视为相同（Tom Lane） 例如，这一缺陷可能导致无法使用涉及可变参数函数的表达式索引。要让此修复对现有 9.3 安装生效，可能需要重建这类索引，和/或重建包含应与索引匹配的可变参数函数调用的视图。", "title": "确保规划器把等价的 VARIADIC 与非 VARIADIC 函数调用视为相同", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "161549eb4bde9f818571b2ef8be6f8b76873bb7124699833cde545e90ee531a8", "section_path": ["变更"], "commit_groups": [["c7b353959", "d359f71ac"]], "identity_text": "Ensure that the planner sees equivalent VARIADIC and non-VARIADIC function calls as equivalent (Tom Lane) This bug could for example result in failure to use expression indexes involving variadic functions. It might be necessary to re-create such indexes, and/or re-create views including variadic function calls that should match the indexes, for the fix to be effective for existing 9.3 installations.", "commit_aliases": ["c7b353959", "d359f71ac"], "source_commits": ["d359f71ac"], "source_entry_id": "9.3.5/changes/015", "db_id": "0f747306dd4b8c4a96175fd82dc61444", "patch_ids": ["0c7ca875b0eb838718cb245c05954a86"], "statement_hash": "f4701c19fa992c8ea9aa60a5efccc4aa59baeacb4b07a2c44129a08198fd3d92", "relations": [], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-25faaa09c479b4c1", "cves": [], "html": "<p>修复 <code>json_populate_recordset()</code> 及相关函数对嵌套 <code>JSON</code> 对象的处理（Michael Paquier、Tom Lane）</p>\n<p>嵌套的 <code>JSON</code> 对象可能导致父对象先前的字段未出现在输出中。</p>", "text": "修复 json_populate_recordset() 及相关函数对嵌套 JSON 对象的处理（Michael Paquier、Tom Lane） 嵌套的 JSON 对象可能导致父对象先前的字段未出现在输出中。", "title": "修复 json_populate_recordset() 及相关函数对嵌套 JSON 对象的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "1d6500d2a31549e0e7d4cab6386b599ac5758b7095a7b01f8e81018e9e96fe7c", "section_path": ["变更"], "commit_groups": [["57d8c1270", "a1fc36495", "a331512de"]], "identity_text": "Fix handling of nested JSON objects in json_populate_recordset() and friends (Michael Paquier, Tom Lane) A nested JSON object could result in previous fields of the parent object not being shown in the output.", "commit_aliases": ["57d8c1270", "a1fc36495", "a331512de"], "source_commits": ["a1fc36495"], "source_entry_id": "9.3.5/changes/016", "db_id": "41c3cec18c5aed70809162aa32f1cddb", "patch_ids": ["e8b2ea1c1f0f797ef3884a42a9e9aa91"], "statement_hash": "db2b02ba468fc5359d6564c76fe8d3268c0325a863b31bcd677c5f0f99bbe076", "relations": [], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-2cbf42a337e43e85", "cves": [], "html": "<p>修复 <code>to_json()</code> 及相关函数对输入类型类别的识别（Tom Lane）</p>\n<p>已知这曾导致 <code>JSON</code> 结果中 <code>money</code> 字段加引号不当，其他数据类型也可能出现错误结果。</p>", "text": "修复 to_json() 及相关函数对输入类型类别的识别（Tom Lane） 已知这曾导致 JSON 结果中 money 字段加引号不当，其他数据类型也可能出现错误结果。", "title": "修复 to_json() 及相关函数对输入类型类别的识别", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "abde78964a68266340dbed611e9f2cfc9d6b0a8b9a5801964fd4906d5f66849e", "section_path": ["变更"], "commit_groups": [["0ca6bda8e", "13c679995", "25c933c5c"]], "identity_text": "Fix identification of input type category in to_json() and friends (Tom Lane) This is known to have led to inadequate quoting of money fields in the JSON result, and there may have been wrong results for other data types as well.", "commit_aliases": ["0ca6bda8e", "13c679995", "25c933c5c"], "source_commits": ["13c679995"], "source_entry_id": "9.3.5/changes/017", "db_id": "a8cb266fd3926dcba458a79e89f190ea", "patch_ids": ["e9c6180c20dc089b222b2bd2934c20db"], "statement_hash": "d36c02c46b4612d9d671e59c20a3e3c9653a335301fc897fbda1a28e9ca9abb3", "relations": [{"rule": 2, "type": "equivalent", "target": "eed7da4ff3cf10798fdd66dccbb65d09", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d36c02c46b4612d9d671e59c20a3e3c9653a335301fc897fbda1a28e9ca9abb3"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "eed7da4ff3cf10798fdd66dccbb65d09", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 to_json() 及相关函数对输入类型类别的识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d36c02c46b4612d9d671e59c20a3e3c9653a335301fc897fbda1a28e9ca9abb3"}, "url": "/docs/compare/?release=9.2.9#9.2.9-2cbf42a337e43e85", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}]}, {"id": "9.3.5-3b2656e08e941538", "cves": [], "html": "<p>修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误（Tom Lane）</p>\n<p>这纠正了 TOAST 指针可能未经解引用就被复制到其他表的情况。如果原始数据随后被删除，当这个已悬空的指针被使用时，会导致诸如 <span>“<span>missing chunk number 0 for toast value ...</span>”</span> 之类的错误。</p>", "text": "修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误（Tom Lane） 这纠正了 TOAST 指针可能未经解引用就被复制到其他表的情况。如果原始数据随后被删除，当这个已悬空的指针被使用时，会导致诸如 “missing chunk number 0 for toast value ...” 之类的错误。", "title": "修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "38154f67a0e2975afbac7fb88e7afa4b9f409aa658c945df42c14da9fab43137", "section_path": ["变更"], "commit_groups": [["3f8c8e3c6", "70debcf09", "7a4f114f3", "8c43980a1", "b72e90bc3", "db1fdc945"]], "identity_text": "Fix failure to detoast fields in composite elements of structured types (Tom Lane) This corrects cases where TOAST pointers could be copied into other tables without being dereferenced. If the original data is later deleted, it would lead to errors like missing chunk number 0 for toast value ... when the now-dangling pointer is used.", "commit_aliases": ["3f8c8e3c6", "70debcf09", "7a4f114f3", "8c43980a1", "b72e90bc3", "db1fdc945"], "source_commits": ["b72e90bc3"], "source_entry_id": "9.3.5/changes/018", "db_id": "bb5e5d0ca78271a17828f482f87c7451", "patch_ids": ["a441d535c1efd6f6c59999ccf14f1349"], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204", "relations": [{"rule": 2, "type": "equivalent", "target": "7df54a2467eba0e9a74d4a38f1f98353", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}}, {"rule": 2, "type": "equivalent", "target": "d5cdc42fb546efa978e3758bf6fabe38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}}, {"rule": 2, "type": "equivalent", "target": "eaec842655e68490e08ca8bb73072d29", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7df54a2467eba0e9a74d4a38f1f98353", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}, "url": "/docs/compare/?release=9.2.9#9.2.9-3b2656e08e941538", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "d5cdc42fb546efa978e3758bf6fabe38", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}, "url": "/docs/compare/?release=9.1.14#9.1.14-3b2656e08e941538", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "eaec842655e68490e08ca8bb73072d29", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a0e8b940d866af211905ef8b5188ad06eeeb9f6d59793cca6810091274d49204"}, "url": "/docs/compare/?release=9.0.18#9.0.18-3b2656e08e941538", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-851a3705c038d7af", "cves": [], "html": "<p>修复对 Append 计划节点输出的整行引用导致 <span>“<span>record type has not been registered</span>”</span> 失败的问题（Tom Lane）</p>", "text": "修复对 Append 计划节点输出的整行引用导致 “record type has not been registered” 失败的问题（Tom Lane）", "title": "修复对 Append 计划节点输出的整行引用导致 “record type has not been registered” 失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "0424902d4b6849536a3cbce8fc811183ae475434144c17ff46a02dbd01b5b845", "section_path": ["变更"], "commit_groups": [["261f954e7", "a81fbcfb3", "b77e6b959", "c45841f9e", "cd8ba91a0", "d68581483", "f280eff94"]], "identity_text": "Fix record type has not been registered failures with whole-row references to the output of Append plan nodes (Tom Lane)", "commit_aliases": ["261f954e7", "a81fbcfb3", "b77e6b959", "c45841f9e", "cd8ba91a0", "d68581483", "f280eff94"], "source_commits": ["b77e6b959"], "source_entry_id": "9.3.5/changes/019", "db_id": "a5bff8c32cfcc751d43d2d9715dbfc69", "patch_ids": ["8dd6ecdf6fd56bfe113db40fbb0a64ef"], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c", "relations": [{"rule": 2, "type": "equivalent", "target": "943f89e82d9b9416e4544d7a538b55cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}}, {"rule": 2, "type": "equivalent", "target": "b6b468de37aae5bd9ac064219792b112", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}}, {"rule": 2, "type": "equivalent", "target": "e13b6c867000757d183dd0b92153c3c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "943f89e82d9b9416e4544d7a538b55cf", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复对 Append 计划节点输出的整行引用导致“record type has not been registered”失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}, "url": "/docs/compare/?release=9.2.9#9.2.9-b89988ddcd2b22c4", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "e13b6c867000757d183dd0b92153c3c0", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复对 Append 计划节点输出的整行引用导致 “record type has not been registered” 失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}, "url": "/docs/compare/?release=9.1.14#9.1.14-851a3705c038d7af", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "b6b468de37aae5bd9ac064219792b112", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复对 Append 计划节点输出的整行引用导致 “record type has not been registered” 失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "907e00465ed3de22da88d87431176f161c3e33879f9d1561a047130e5f1d128c"}, "url": "/docs/compare/?release=9.0.18#9.0.18-851a3705c038d7af", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-c4131253432ef97c", "cves": [], "html": "<p>修复在回卷游标时调用用户定义函数可能崩溃的问题（Tom Lane）</p>", "text": "修复在回卷游标时调用用户定义函数可能崩溃的问题（Tom Lane）", "title": "修复在回卷游标时调用用户定义函数可能崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "94abbbcfa564b8a44185412e42da300f7c31a6ad876e090f3b2672ced904f489", "section_path": ["变更"], "commit_groups": [["022b5f2b2", "04e5025be", "229101db4", "2a527baa3", "7f66ade71", "fc58c39d4"]], "identity_text": "Fix possible crash when invoking a user-defined function while rewinding a cursor (Tom Lane)", "commit_aliases": ["022b5f2b2", "04e5025be", "229101db4", "2a527baa3", "7f66ade71", "fc58c39d4"], "source_commits": ["fc58c39d4"], "source_entry_id": "9.3.5/changes/020", "db_id": "03176a786830cf8e48a92ec1d8f49cd5", "patch_ids": ["0b56454471885c7b44f40767a72cd06b"], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a", "relations": [{"rule": 2, "type": "equivalent", "target": "6794b5b236dec9c71441bd8d31d2de11", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}}, {"rule": 2, "type": "equivalent", "target": "7a33bc45d19644a4fa8bacb9cd4cde75", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}}, {"rule": 2, "type": "equivalent", "target": "f0683b60085c78c315c325a0a29373b7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6794b5b236dec9c71441bd8d31d2de11", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复在回卷游标时调用用户定义函数可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}, "url": "/docs/compare/?release=9.2.9#9.2.9-c4131253432ef97c", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "f0683b60085c78c315c325a0a29373b7", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复在回卷游标时调用用户定义函数可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}, "url": "/docs/compare/?release=9.1.14#9.1.14-c4131253432ef97c", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "7a33bc45d19644a4fa8bacb9cd4cde75", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复在回卷游标时调用用户定义函数可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e47f72c2cb634cac94f6dda8abf3e611183e97495532a610813a79492b4f80a"}, "url": "/docs/compare/?release=9.0.18#9.0.18-c4131253432ef97c", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-37755a9034281f01", "cves": [], "html": "<p>修复为 <code>FROM</code> 中的函数求值参数时查询级内存泄漏的问题（Tom Lane）</p>", "text": "修复为 FROM 中的函数求值参数时查询级内存泄漏的问题（Tom Lane）", "title": "修复为 FROM 中的函数求值参数时查询级内存泄漏的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "ec6ab20fb05aaf60ca7ba16dd99a583f75f065994fdcda495c91fb83fac0abcb", "section_path": ["变更"], "commit_groups": [["06d5eacbc", "1044e79a0", "45b0f3572", "83131e634", "b568d3836", "c1f8fb9bf", "d297c91d4"]], "identity_text": "Fix query-lifespan memory leak while evaluating the arguments for a function in FROM (Tom Lane)", "commit_aliases": ["06d5eacbc", "1044e79a0", "45b0f3572", "83131e634", "b568d3836", "c1f8fb9bf", "d297c91d4"], "source_commits": ["c1f8fb9bf"], "source_entry_id": "9.3.5/changes/021", "db_id": "41cd78a1fbcdab8a53229962882ca0b4", "patch_ids": ["e89723b778c58a3e776fb321802adc3b"], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999", "relations": [{"rule": 2, "type": "equivalent", "target": "1a048d9e7e109fe833d9e6a9e0540084", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}}, {"rule": 2, "type": "equivalent", "target": "2c789e694ad162374eea2a3cecb509a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}}, {"rule": 2, "type": "equivalent", "target": "c32372665831e6929e90b6d8512dcbee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2c789e694ad162374eea2a3cecb509a4", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复为 FROM 中的函数求值参数时查询级内存泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}, "url": "/docs/compare/?release=9.2.9#9.2.9-37755a9034281f01", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "1a048d9e7e109fe833d9e6a9e0540084", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复为 FROM 中的函数求值参数时查询级内存泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}, "url": "/docs/compare/?release=9.1.14#9.1.14-37755a9034281f01", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "c32372665831e6929e90b6d8512dcbee", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复为 FROM 中的函数求值参数时查询级内存泄漏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "86384f1f46f7632ad7228fd92790058d972a5e5b6f320f413866e3c433795999"}, "url": "/docs/compare/?release=9.0.18#9.0.18-37755a9034281f01", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-a5b49a0dc9a0b81e", "cves": [], "html": "<p>修复正则表达式处理中的会话级内存泄漏（Tom Lane、Arthur O'Dwyer、Greg Stark）</p>", "text": "修复正则表达式处理中的会话级内存泄漏（Tom Lane、Arthur O'Dwyer、Greg Stark）", "title": "修复正则表达式处理中的会话级内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "9aaead3bfbaf099a0fe7b9fdd4175a27c0f4a84924180f8a75e516025da25d4b", "section_path": ["变更"], "commit_groups": [["1567e659a", "4a66f0f2d", "5ef588b22", "8a817785a", "a223b9e36", "b8c24f7ab", "e0a233744"]], "identity_text": "Fix session-lifespan memory leaks in regular-expression processing (Tom Lane, Arthur O'Dwyer, Greg Stark)", "commit_aliases": ["1567e659a", "4a66f0f2d", "5ef588b22", "8a817785a", "a223b9e36", "b8c24f7ab", "e0a233744"], "source_commits": ["5ef588b22"], "source_entry_id": "9.3.5/changes/022", "db_id": "eeb0bf25c9ae2d48c7186e65ae9b1ff9", "patch_ids": ["3b857b32bc3201bdd9749ab88ba4a01a"], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0", "relations": [{"rule": 2, "type": "equivalent", "target": "0b4fd6206cb4bbf88806d495bbf3cc90", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}}, {"rule": 2, "type": "equivalent", "target": "25991b347a474942acebc8de0eaff080", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}}, {"rule": 2, "type": "equivalent", "target": "383752e01bb4550a7f1914986b8e0c3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "25991b347a474942acebc8de0eaff080", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复正则表达式处理中的会话级内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}, "url": "/docs/compare/?release=9.2.9#9.2.9-a5b49a0dc9a0b81e", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "0b4fd6206cb4bbf88806d495bbf3cc90", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复正则表达式处理中的会话级内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}, "url": "/docs/compare/?release=9.1.14#9.1.14-a5b49a0dc9a0b81e", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "383752e01bb4550a7f1914986b8e0c3a", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复正则表达式处理中的会话级内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5be82c5605f010d5bbba9389d1e8e446f5d64d76581c451a8d6256265a3758a0"}, "url": "/docs/compare/?release=9.0.18#9.0.18-a5b49a0dc9a0b81e", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-36e0d9edc5a219a4", "cves": [], "html": "<p>修复 <code>hungarian.stop</code> 中的数据编码错误（Tom Lane）</p>", "text": "修复 hungarian.stop 中的数据编码错误（Tom Lane）", "title": "修复 hungarian.stop 中的数据编码错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "48803e15e50bc09f82d0b004425a9f1eee128e173863da1282cb3111b1bd2921", "section_path": ["变更"], "commit_groups": [["4d5ea4290", "62f134954", "7f9fbb842", "802323535", "87db9534a", "f3f40434b", "fd90b5d57"]], "identity_text": "Fix data encoding error in hungarian.stop (Tom Lane)", "commit_aliases": ["4d5ea4290", "62f134954", "7f9fbb842", "802323535", "87db9534a", "f3f40434b", "fd90b5d57"], "source_commits": ["87db9534a"], "source_entry_id": "9.3.5/changes/023", "db_id": "264f904d5d08ad625ac4fe46a29711e1", "patch_ids": ["63be7b008802dcac89b344d3178bc87e"], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee", "relations": [{"rule": 2, "type": "equivalent", "target": "38ba3cd0011d5007ee11a447df513fa0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}}, {"rule": 2, "type": "equivalent", "target": "84ff1fd0250a21afab5aeeb41175a0a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}}, {"rule": 2, "type": "equivalent", "target": "d02b618f97b84480c63ea8f630a9a517", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "38ba3cd0011d5007ee11a447df513fa0", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 hungarian.stop 中的数据编码错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}, "url": "/docs/compare/?release=9.2.9#9.2.9-36e0d9edc5a219a4", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "84ff1fd0250a21afab5aeeb41175a0a0", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复 hungarian.stop 中的数据编码错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}, "url": "/docs/compare/?release=9.1.14#9.1.14-36e0d9edc5a219a4", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "d02b618f97b84480c63ea8f630a9a517", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复 hungarian.stop 中的数据编码错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f036016e3ff0dd160b1087e2ecde2a6826685336921ee4cdd4fdcdbc9d06bdee"}, "url": "/docs/compare/?release=9.0.18#9.0.18-36e0d9edc5a219a4", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-ecf35a4345e9fe13", "cves": [], "html": "<p>防止在<a href=\"/docs/9.3/runtime-config-compatible.html#GUC-DEFAULT-WITH-OIDS\">default_with_oids</a>为真时创建带 OIDS 的外部表（Etsuro Fujita）</p>", "text": "防止在default_with_oids为真时创建带 OIDS 的外部表（Etsuro Fujita）", "title": "防止在default_with_oids为真时创建带 OIDS 的外部表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "3570a586b71a647903ae03bfdc9612c8eb55d9591cb0b0e58095672e8540f386", "section_path": ["变更"], "commit_groups": [["1818ae0a7", "1c9f9e888", "2a7512bc7", "a87a7dc8b", "dd1a5b09b"]], "identity_text": "Prevent foreign tables from being created with OIDS when guc-default-with-oids is true (Etsuro Fujita)", "commit_aliases": ["1818ae0a7", "1c9f9e888", "2a7512bc7", "a87a7dc8b", "dd1a5b09b"], "source_commits": ["2a7512bc7"], "source_entry_id": "9.3.5/changes/024", "db_id": "6e736cb3322b1f55e6dd7ad1a49ba51e", "patch_ids": ["3a11f770a5dcc909f1c0be690544f9e9"], "statement_hash": "0c5d6924e91115d2c06ede70d3eace773034fdcf29191aa60f505d152021f943", "relations": [{"rule": 2, "type": "equivalent", "target": "6e264876511a90aa898b99cbf552379e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0c5d6924e91115d2c06ede70d3eace773034fdcf29191aa60f505d152021f943"}}, {"rule": 2, "type": "equivalent", "target": "9ac3a9d83688f1efb8ed6afac4f6db50", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0c5d6924e91115d2c06ede70d3eace773034fdcf29191aa60f505d152021f943"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ac3a9d83688f1efb8ed6afac4f6db50", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "防止在default_with_oids为真时创建带 OIDS 的外部表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0c5d6924e91115d2c06ede70d3eace773034fdcf29191aa60f505d152021f943"}, "url": "/docs/compare/?release=9.2.9#9.2.9-ecf35a4345e9fe13", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "6e264876511a90aa898b99cbf552379e", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "防止在default_with_oids为真时创建带 OIDS 的外部表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0c5d6924e91115d2c06ede70d3eace773034fdcf29191aa60f505d152021f943"}, "url": "/docs/compare/?release=9.1.14#9.1.14-ecf35a4345e9fe13", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.3.5-c686dfa617ceb9a1", "cves": [], "html": "<p>修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查（Andres Freund）</p>\n<p>如果同一事务中稍后执行了 <code>CREATE INDEX</code> 或 <code>CLUSTER</code>，这可能导致问题（至少是虚假警告，最坏是无限循环）。</p>", "text": "修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查（Andres Freund） 如果同一事务中稍后执行了 CREATE INDEX 或 CLUSTER，这可能导致问题（至少是虚假警告，最坏是无限循环）。", "title": "修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "7ae6868be95d9b4b8faa9b7d554e6deed0d34639df495ea2a884011b04019cf0", "section_path": ["变更"], "commit_groups": [["037c6fb9f", "315442c01", "621a99a66", "6bf6e528a", "80d45ae4e", "edde59db1"]], "identity_text": "Fix liveness checks for rows that were inserted in the current transaction and then deleted by a now-rolled-back subtransaction (Andres Freund) This could cause problems (at least spurious warnings, and at worst an infinite loop) if CREATE INDEX or CLUSTER were done later in the same transaction.", "commit_aliases": ["037c6fb9f", "315442c01", "621a99a66", "6bf6e528a", "80d45ae4e", "edde59db1"], "source_commits": ["edde59db1"], "source_entry_id": "9.3.5/changes/025", "db_id": "116d8d34d4d0b4eff3945173d9a62e51", "patch_ids": ["1fddd448e2a854ce0097d6b37c84fa3e"], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31", "relations": [{"rule": 2, "type": "equivalent", "target": "434f2385f9554696517f8f50bb5ecccd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}}, {"rule": 2, "type": "equivalent", "target": "b5fe3b8610961d74024c709d4db93170", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}}, {"rule": 2, "type": "equivalent", "target": "baf0f18b7d66cdd113769591a089af77", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "baf0f18b7d66cdd113769591a089af77", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}, "url": "/docs/compare/?release=9.2.9#9.2.9-c686dfa617ceb9a1", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "434f2385f9554696517f8f50bb5ecccd", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}, "url": "/docs/compare/?release=9.1.14#9.1.14-c686dfa617ceb9a1", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "b5fe3b8610961d74024c709d4db93170", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0407dc03f159e299ade1fec7314eb1de83d6c6fc23777bc71894d8ba15944a31"}, "url": "/docs/compare/?release=9.0.18#9.0.18-c686dfa617ceb9a1", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-195ea8badae0b582", "cves": [], "html": "<p>在 <code>PREPARE TRANSACTION</code> 期间清除 <code>pg_stat_activity</code>.<code>xact_start</code>（Andres Freund）</p>\n<p>在 <code>PREPARE</code> 之后，发起会话已不在事务中，因此不应继续显示事务开始时间。</p>", "text": "在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start（Andres Freund） 在 PREPARE 之后，发起会话已不在事务中，因此不应继续显示事务开始时间。", "title": "在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "d95f549ef943b1661189002e146bccb045f8593853dc88180c9edf9b760ab3ea", "section_path": ["变更"], "commit_groups": [["12e41a5d7", "70e7be264", "82fbd88a7", "b7a3e1173", "d19bd29f0", "ea9ac7741"]], "identity_text": "Clear pg_stat_activity.xact_start during PREPARE TRANSACTION (Andres Freund) After the PREPARE, the originating session is no longer in a transaction, so it should not continue to display a transaction start time.", "commit_aliases": ["12e41a5d7", "70e7be264", "82fbd88a7", "b7a3e1173", "d19bd29f0", "ea9ac7741"], "source_commits": ["12e41a5d7"], "source_entry_id": "9.3.5/changes/026", "db_id": "d20b9d109f7e0a680be94af055771645", "patch_ids": ["e1f06bd083b2db8dc8b5a9125172680d"], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c", "relations": [{"rule": 2, "type": "equivalent", "target": "53fed2609faead97a15f4688071e57af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}}, {"rule": 2, "type": "equivalent", "target": "66c6ffb4b1967b64700194b1fe3ca2aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}}, {"rule": 2, "type": "equivalent", "target": "fc5f7050ba78e0c05e9e87fac8f1df45", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fc5f7050ba78e0c05e9e87fac8f1df45", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}, "url": "/docs/compare/?release=9.2.9#9.2.9-195ea8badae0b582", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "53fed2609faead97a15f4688071e57af", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}, "url": "/docs/compare/?release=9.1.14#9.1.14-195ea8badae0b582", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "66c6ffb4b1967b64700194b1fe3ca2aa", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "642ef4bdb94b619d66e23824a190f24539619a99612365fbf4681bbc2a7a4e4c"}, "url": "/docs/compare/?release=9.0.18#9.0.18-195ea8badae0b582", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-ecebf2c19d4efb8e", "cves": [], "html": "<p>修复 <code>REASSIGN OWNED</code> 对文本搜索对象失败的问题（Álvaro Herrera）</p>", "text": "修复 REASSIGN OWNED 对文本搜索对象失败的问题（Álvaro Herrera）", "title": "修复 REASSIGN OWNED 对文本搜索对象失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "c18ab5ab3b27be5baa6c7b0d9d8b12414aad251b94ab9a772eeeb4c49a14779c", "section_path": ["变更"], "commit_groups": [["12c5bbdcb", "4b767789d", "6bdf4b9c7", "a41dc7321", "b42f09fc8", "bf08864b8", "e45229bb6"]], "identity_text": "Fix REASSIGN OWNED to not fail for text search objects (Álvaro Herrera)", "commit_aliases": ["12c5bbdcb", "4b767789d", "6bdf4b9c7", "a41dc7321", "b42f09fc8", "bf08864b8", "e45229bb6"], "source_commits": ["12c5bbdcb"], "source_entry_id": "9.3.5/changes/027", "db_id": "bc2a550a6fbef954d308390070d59d44", "patch_ids": ["625429fc9887735d34b89a44296d4434"], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74", "relations": [{"rule": 2, "type": "equivalent", "target": "315ae6f5bb995c0e6d88f41345b36cb6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}}, {"rule": 2, "type": "equivalent", "target": "d9fb0682c8c03fe0a2b49ad032bc8328", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}}, {"rule": 2, "type": "equivalent", "target": "ed417d10032b5dce01be16e2497fba90", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d9fb0682c8c03fe0a2b49ad032bc8328", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 REASSIGN OWNED 对文本搜索对象失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}, "url": "/docs/compare/?release=9.2.9#9.2.9-ecebf2c19d4efb8e", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "315ae6f5bb995c0e6d88f41345b36cb6", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复 REASSIGN OWNED 对文本搜索对象失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}, "url": "/docs/compare/?release=9.1.14#9.1.14-ecebf2c19d4efb8e", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "ed417d10032b5dce01be16e2497fba90", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复 REASSIGN OWNED 对文本搜索对象失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "30e7cf5ee800fa2df1c69283465239aff305f90a0f0f10286e1e4a077ac09f74"}, "url": "/docs/compare/?release=9.0.18#9.0.18-ecebf2c19d4efb8e", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-57fab4cf954327e3", "cves": [], "html": "<p>防止 <code>pg_class</code>.<code>relminmxid</code> 的值在 <code>VACUUM FULL</code> 期间倒退（Álvaro Herrera）</p>", "text": "防止 pg_class.relminmxid 的值在 VACUUM FULL 期间倒退（Álvaro Herrera）", "title": "防止 pg_class.relminmxid 的值在 VACUUM FULL 期间倒退", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "e96bcd695acd9c9ec1943d0d1c91ede638e7f8140ba8c9a3e308edccb259eb04", "section_path": ["变更"], "commit_groups": [["9eecc8a7c", "b7e51d9c0", "e86cfc4bb"]], "identity_text": "Prevent pg_class.relminmxid values from going backwards during VACUUM FULL (Álvaro Herrera)", "commit_aliases": ["9eecc8a7c", "b7e51d9c0", "e86cfc4bb"], "source_commits": ["e86cfc4bb"], "source_entry_id": "9.3.5/changes/028", "db_id": "4b0ca4b5e7382e6ee14e4e101cecdcd6", "patch_ids": ["f12c5f1ceb9eaa1bc6440b4824c727d1"], "statement_hash": "94f7b749a636d18f142362c68b903abc8214d7ac7f56ae891bff0fcff7d73bc2", "relations": [], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-d42006dfe117eae6", "cves": [], "html": "<p>减少规则/视图转储中的缩进，以提高可读性并避免过多空白（Greg Stark、Tom Lane）</p>\n<p>此变更减少了对嵌套构造所施加的缩进量，包括一些用户可能并不认为是嵌套的情况，例如 UNION 列表。此前，深度嵌套的构造会以 O(N^2) 增长的空白打印，造成性能问题甚至有内存不足失败的风险。现在缩进以 40 为模缩减，乍看有些古怪，但相比简单限制缩进，似乎更好地保留了可读性。UNION 列表的冗余括号化也已减少。</p>", "text": "减少规则/视图转储中的缩进，以提高可读性并避免过多空白（Greg Stark、Tom Lane） 此变更减少了对嵌套构造所施加的缩进量，包括一些用户可能并不认为是嵌套的情况，例如 UNION 列表。此前，深度嵌套的构造会以 O(N^2) 增长的空白打印，造成性能问题甚至有内存不足失败的风险。现在缩进以 40 为模缩减，乍看有些古怪，但相比简单限制缩进，似乎更好地保留了可读性。UNION 列表的冗余括号化也已减少。", "title": "减少规则/视图转储中的缩进，以提高可读性并避免过多空白", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "9f773c36fe3f6622c97309c41a3394c3fe52e21e67846670d37cbf23a73d53eb", "section_path": ["变更"], "commit_groups": [["0652d77fb", "41de93c53"]], "identity_text": "Reduce indentation in rule/view dumps to improve readability and avoid excessive whitespace (Greg Stark, Tom Lane) This change reduces the amount of indentation applied to nested constructs, including some cases that the user probably doesn't think of as nested, such as UNION lists. Previously, deeply nested constructs were printed with an amount of whitespace growing as O(N^2), which created a performance problem and even risk of out-of-memory failures. Now the indentation is reduced modulo 40, which is initially odd to look at but seems to preserve readability better than simply limiting the indentation would do. Redundant parenthesization of UNION lists has been reduced as well.", "commit_aliases": ["0652d77fb", "41de93c53"], "source_commits": ["0652d77fb"], "source_entry_id": "9.3.5/changes/029", "db_id": "1250445d61174b41d2a58fc9fd97175f", "patch_ids": ["1d98ce5e1e8bb7464d20466991d1016e"], "statement_hash": "350296c916a3e8dc0e3eb19ca616292ae0d28a4b1c79e865667373c3802d9fa0", "relations": [], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-984c142074946852", "cves": [], "html": "<p>修复当后续添加的列导致多个输入列与 <code>USING</code> 说明匹配时规则/视图的转储问题（Tom Lane）</p>", "text": "修复当后续添加的列导致多个输入列与 USING 说明匹配时规则/视图的转储问题（Tom Lane）", "title": "修复当后续添加的列导致多个输入列与 USING 说明匹配时规则/视图的转储问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "9f5aae45a2c47da9346a99a596fba6b870a4562bba9e022bf11d5a6742466b91", "section_path": ["变更"], "commit_groups": [["91e16b980", "e31193d49"]], "identity_text": "Fix dumping of rules/views when subsequent addition of a column has resulted in multiple input columns matching a USING specification (Tom Lane)", "commit_aliases": ["91e16b980", "e31193d49"], "source_commits": ["e31193d49"], "source_entry_id": "9.3.5/changes/030", "db_id": "5bd680f91bf3e45fd2e7ef12bd8eac41", "patch_ids": ["901a6b916275ba2760b4bb0da35c23a9"], "statement_hash": "897ff72ab132ae820009c03acb04a2461462438ee970f8a50d47ac0e8423da91", "relations": [], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-fe3bcb3ff7b6e980", "cves": [], "html": "<p>修复某些涉及 <code>FROM</code> 中返回包含已删除列的组合类型的函数的情况下的视图打印（Tom Lane）</p>", "text": "修复某些涉及 FROM 中返回包含已删除列的组合类型的函数的情况下的视图打印（Tom Lane）", "title": "修复某些涉及 FROM 中返回包含已删除列的组合类型的函数的情况下的视图打印", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "33fa4e545c87fded84b13b256683558706edbb2296dcc1cb04e73e82609bee49", "section_path": ["变更"], "commit_groups": [["9b35ddce9", "b978ab5f6", "f0a497e4c"]], "identity_text": "Repair view printing for some cases involving functions in FROM that return a composite type containing dropped columns (Tom Lane)", "commit_aliases": ["9b35ddce9", "b978ab5f6", "f0a497e4c"], "source_commits": ["b978ab5f6"], "source_entry_id": "9.3.5/changes/031", "db_id": "d7b2f602ed192fa2318bfbbb946fa925", "patch_ids": ["3b8944540059a49ae09f86be3c53885e"], "statement_hash": "7065e92733f8708560cd561fc3c69be6ff09a247fca828258e161df0d6bdc37f", "relations": [], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-da396940f9d861b9", "cves": [], "html": "<p>在 postmaster 启动期间阻塞信号（Tom Lane）</p>\n<p>这确保了 postmaster 在例如启动过程中收到 <span>SIGINT</span> 时能够正确清理自身。</p>", "text": "在 postmaster 启动期间阻塞信号（Tom Lane） 这确保了 postmaster 在例如启动过程中收到 SIGINT 时能够正确清理自身。", "title": "在 postmaster 启动期间阻塞信号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "905feabf83e6b988a13f32c82e3fe3a42c35ecd996f5da819c42361a076b1445", "section_path": ["变更"], "commit_groups": [["093d3da1d", "21aa47d01", "53463e247", "5c26ab659", "5d8117e1f", "969735cf1"]], "identity_text": "Block signals during postmaster startup (Tom Lane) This ensures that the postmaster will properly clean up after itself if, for example, it receives SIGINT while still starting up.", "commit_aliases": ["093d3da1d", "21aa47d01", "53463e247", "5c26ab659", "5d8117e1f", "969735cf1"], "source_commits": ["21aa47d01"], "source_entry_id": "9.3.5/changes/032", "db_id": "ea67567d42c2f81930ebd68ee20d1666", "patch_ids": ["2674a2e8c76aad48d98b960e6fc33fa5"], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56", "relations": [{"rule": 2, "type": "equivalent", "target": "008dd7c42f272dcfed2925215fe3e960", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}}, {"rule": 2, "type": "equivalent", "target": "69cca2f3deeea63837fbbd935c27ec06", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}}, {"rule": 2, "type": "equivalent", "target": "fe83700f9afe7966cb2db312f46f5dc8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "008dd7c42f272dcfed2925215fe3e960", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 postmaster 启动期间阻塞信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}, "url": "/docs/compare/?release=9.2.9#9.2.9-da396940f9d861b9", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "69cca2f3deeea63837fbbd935c27ec06", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 postmaster 启动期间阻塞信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}, "url": "/docs/compare/?release=9.1.14#9.1.14-da396940f9d861b9", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "fe83700f9afe7966cb2db312f46f5dc8", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "在 postmaster 启动期间阻塞信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8986f77d637b9a3105e635f5ce57c021b64961ade1d74f906871180bb6092d56"}, "url": "/docs/compare/?release=9.0.18#9.0.18-da396940f9d861b9", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-6bcc2d55fc5b756b", "cves": [], "html": "<p>修复处理 <code>pg_hba.conf</code> 中指定主机名而非 IP 地址的条目时的客户端主机名查找（Tom Lane）</p>\n<p>确保反向 DNS 查找失败会被报告，而不是只是静默地不匹配这些条目。同时确保每个连接只做一次反向 DNS 查找尝试，而不是每个主机名条目一次——如果查找尝试失败，此前发生的就是后者。</p>", "text": "修复处理 pg_hba.conf 中指定主机名而非 IP 地址的条目时的客户端主机名查找（Tom Lane） 确保反向 DNS 查找失败会被报告，而不是只是静默地不匹配这些条目。同时确保每个连接只做一次反向 DNS 查找尝试，而不是每个主机名条目一次——如果查找尝试失败，此前发生的就是后者。", "title": "修复处理 pg_hba.conf 中指定主机名而非 IP 地址的条目时的客户端主机名查找", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "1c5d08bcb27dc1509aa0af14534d193b718c3ac6a5309fc71cd0c44adfd62cda", "section_path": ["变更"], "commit_groups": [["029decfec", "65183fb78", "b7a424371", "fc752505a"]], "identity_text": "Fix client host name lookup when processing pg_hba.conf entries that specify host names instead of IP addresses (Tom Lane) Ensure that reverse-DNS lookup failures are reported, instead of just silently not matching such entries. Also ensure that we make only one reverse-DNS lookup attempt per connection, not one per host name entry, which is what previously happened if the lookup attempts failed.", "commit_aliases": ["029decfec", "65183fb78", "b7a424371", "fc752505a"], "source_commits": ["65183fb78"], "source_entry_id": "9.3.5/changes/033", "db_id": "8fad6156289231d320c05e360bda6d60", "patch_ids": ["287e10e4f66712f136e227af6642b4fc"], "statement_hash": "4274ba20c8ff3a87dff46213bc27461ce499e5ddd1a889133787a5f1f5fad4dc", "relations": [{"rule": 2, "type": "equivalent", "target": "0c31bb1f7da100c24cafaed31aa745e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4274ba20c8ff3a87dff46213bc27461ce499e5ddd1a889133787a5f1f5fad4dc"}}, {"rule": 2, "type": "equivalent", "target": "958f57b66124225bfbdd3cb36789ea94", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4274ba20c8ff3a87dff46213bc27461ce499e5ddd1a889133787a5f1f5fad4dc"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0c31bb1f7da100c24cafaed31aa745e5", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复处理 pg_hba.conf 中指定主机名而非 IP 地址的条目时的客户端主机名查找", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4274ba20c8ff3a87dff46213bc27461ce499e5ddd1a889133787a5f1f5fad4dc"}, "url": "/docs/compare/?release=9.2.9#9.2.9-6bcc2d55fc5b756b", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "958f57b66124225bfbdd3cb36789ea94", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复处理 pg_hba.conf 中指定主机名而非 IP 地址的条目时的客户端主机名查找", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4274ba20c8ff3a87dff46213bc27461ce499e5ddd1a889133787a5f1f5fad4dc"}, "url": "/docs/compare/?release=9.1.14#9.1.14-6bcc2d55fc5b756b", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.3.5-e4ea823d778378b4", "cves": [], "html": "<p>允许 root 用户使用 <code>postgres -C variable</code> 和 <code>postgres --describe-config</code>（MauMau）</p>\n<p>对以 root 身份启动服务器的禁止并不需要延伸到这些操作，放宽它可以避免 <span>pg_ctl</span> 在某些场景下的失败。</p>", "text": "允许 root 用户使用 postgres -C variable 和 postgres --describe-config（MauMau） 对以 root 身份启动服务器的禁止并不需要延伸到这些操作，放宽它可以避免 pg_ctl 在某些场景下的失败。", "title": "允许 root 用户使用 postgres -C variable 和 postgres --describe-config", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "ce4081bfed7f2914ffe20ba9fa14947625312df6b863d1cdad9edfce8a45e638", "section_path": ["变更"], "commit_groups": [["6d25eb314", "7d1a0f585", "b203c57bb"]], "identity_text": "Allow the root user to use postgres -C variable and postgres --describe-config (MauMau) The prohibition on starting the server as root does not need to extend to these operations, and relaxing it prevents failure of pg_ctl in some scenarios.", "commit_aliases": ["6d25eb314", "7d1a0f585", "b203c57bb"], "source_commits": ["7d1a0f585"], "source_entry_id": "9.3.5/changes/034", "db_id": "a996e9005aeeae369f9c0f3583547895", "patch_ids": ["9cf57a794cdb687c98932b382d41241f"], "statement_hash": "c1ed32d060e6a567bf895cec1f4e4b64b3ad1b24913c0b09e758ac037a1b423d", "relations": [{"rule": 2, "type": "equivalent", "target": "a2b4b4c700d767c1d6fcec2a42940dd9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c1ed32d060e6a567bf895cec1f4e4b64b3ad1b24913c0b09e758ac037a1b423d"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2b4b4c700d767c1d6fcec2a42940dd9", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "允许 root 用户使用 postgres -C variable 和 postgres --describe-config", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c1ed32d060e6a567bf895cec1f4e4b64b3ad1b24913c0b09e758ac037a1b423d"}, "url": "/docs/compare/?release=9.2.9#9.2.9-e4ea823d778378b4", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}]}, {"id": "9.3.5-1fe8508066777304", "cves": ["CVE-2014-0067"], "html": "<p>保护 <code>make check</code> 期间启动的临时 postmaster 的 Unix 域套接字（Noah Misch）</p>\n<p>正如我们此前在 CVE-2014-0067 中指出的，任何能够访问套接字文件的本地用户都可以以服务器的引导超级用户身份连接，进而以运行测试的操作系统用户身份执行任意代码。此变更通过把服务器的套接字放到 <code>/tmp</code> 下一个临时的、模式为 0700 的子目录中来防御这一风险。但在不支持 Unix 套接字的平台（尤其是 Windows）上风险仍然存在，因为那时临时 postmaster 必须接受本地 TCP 连接。</p>\n<p>此变更的一个有用副作用是简化了覆盖 <code>DEFAULT_PGSOCKET_DIR</code> 的构建中的 <code>make check</code> 测试。常用的非默认值（如 <code>/var/run/postgresql</code>）往往不允许构建用户写入，此前需要一些变通办法，现在不再需要了。</p>", "text": "保护 make check 期间启动的临时 postmaster 的 Unix 域套接字（Noah Misch） 正如我们此前在 CVE-2014-0067 中指出的，任何能够访问套接字文件的本地用户都可以以服务器的引导超级用户身份连接，进而以运行测试的操作系统用户身份执行任意代码。此变更通过把服务器的套接字放到 /tmp 下一个临时的、模式为 0700 的子目录中来防御这一风险。但在不支持 Unix 套接字的平台（尤其是 Windows）上风险仍然存在，因为那时临时 postmaster 必须接受本地 TCP 连接。 此变更的一个有用副作用是简化了覆盖 DEFAULT_PGSOCKET_DIR 的构建中的 make check 测试。常用的非默认值（如 /var/run/postgresql）往往不允许构建用户写入，此前需要一些变通办法，现在不再需要了。", "title": "保护 make check 期间启动的临时 postmaster 的 Unix 域套接字", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "0bebe9514a66af36ee038667af54903701b4b68d102e95beca976ca9e8d5514d", "section_path": ["变更"], "commit_groups": [["1442b426e", "453a5d91d", "481831b43", "5f09c583c", "6583a75b2", "95cefd30e", "be76a6d39"]], "identity_text": "Secure Unix-domain sockets of temporary postmasters started during make check (Noah Misch) Any local user able to access the socket file could connect as the server's bootstrap superuser, then proceed to execute arbitrary code as the operating-system user running the test, as we previously noted in CVE-2014-0067. This change defends against that risk by placing the server's socket in a temporary, mode 0700 subdirectory of /tmp. The hazard remains however on platforms where Unix sockets are not supported, notably Windows, because then the temporary postmaster must accept local TCP connections. A useful side effect of this change is to simplify make check testing in builds that override DEFAULT_PGSOCKET_DIR. Popular non-default values like /var/run/postgresql are often not writable by the build user, requiring workarounds that will no longer be necessary.", "commit_aliases": ["1442b426e", "453a5d91d", "481831b43", "5f09c583c", "6583a75b2", "95cefd30e", "be76a6d39"], "source_commits": ["1442b426e"], "source_entry_id": "9.3.5/changes/035", "db_id": "e5db1e1a4f47f7dbe939381198c5dad5", "patch_ids": ["998881a7f9ad30cb478abfb97353cebe"], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061", "relations": [{"rule": 2, "type": "equivalent", "target": "32ac210b2021f4d10180396115d807a2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}}, {"rule": 2, "type": "equivalent", "target": "4562d96c599a876fbaa708785af45cf9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}}, {"rule": 2, "type": "equivalent", "target": "a3829053c54dcf4d2636f219426f3672", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}}], "version": "9.3.5", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "32ac210b2021f4d10180396115d807a2", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "保护 make check 期间启动的临时 postmaster 的 Unix 域套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}, "url": "/docs/compare/?release=9.2.9#9.2.9-1fe8508066777304", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "a3829053c54dcf4d2636f219426f3672", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "保护 make check 期间启动的临时 postmaster 的 Unix 域套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}, "url": "/docs/compare/?release=9.1.14#9.1.14-1fe8508066777304", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "4562d96c599a876fbaa708785af45cf9", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "保护 make check 期间启动的临时 postmaster 的 Unix 域套接字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "421edc0e245507d52e97074221ccf85a880e4b1010e62e6ef47292e6fec25061"}, "url": "/docs/compare/?release=9.0.18#9.0.18-1fe8508066777304", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-b9bc5469adaffdfe", "cves": [], "html": "<p>修复表空间创建 WAL 重放在 Windows 上无法工作的问题（MauMau）</p>", "text": "修复表空间创建 WAL 重放在 Windows 上无法工作的问题（MauMau）", "title": "修复表空间创建 WAL 重放在 Windows 上无法工作的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "8496748c6fe383087db0df421a017bc32fa7b52ab32972feace597d320a41fc2", "section_path": ["变更"], "commit_groups": [["1a496a12b", "634056567", "84520f91c", "abe075dff", "af7738fe6"]], "identity_text": "Fix tablespace creation WAL replay to work on Windows (MauMau)", "commit_aliases": ["1a496a12b", "634056567", "84520f91c", "abe075dff", "af7738fe6"], "source_commits": ["84520f91c"], "source_entry_id": "9.3.5/changes/036", "db_id": "9216ca2e9821acf8d60b4ae88f36b7f0", "patch_ids": ["2056f6211d20c7a1d54deb73532916f6"], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd", "relations": [{"rule": 2, "type": "equivalent", "target": "176e76f0277971aa24026e7a9a0c0cb0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}}, {"rule": 2, "type": "equivalent", "target": "9959e561fe05f1b007aed8b129812efb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}}, {"rule": 2, "type": "equivalent", "target": "eef99bb4e5e9a46062773101dc0d1818", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "eef99bb4e5e9a46062773101dc0d1818", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复表空间创建 WAL 重放在 Windows 上无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}, "url": "/docs/compare/?release=9.2.9#9.2.9-b9bc5469adaffdfe", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "9959e561fe05f1b007aed8b129812efb", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复表空间创建 WAL 重放在 Windows 上无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}, "url": "/docs/compare/?release=9.1.14#9.1.14-b9bc5469adaffdfe", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "176e76f0277971aa24026e7a9a0c0cb0", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复表空间创建 WAL 重放在 Windows 上无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0951bd8a33873cc51b53c3191ef701e028a04a6dea63a3f266e3ab1f026b50dd"}, "url": "/docs/compare/?release=9.0.18#9.0.18-b9bc5469adaffdfe", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-e4bc31c72b46e943", "cves": [], "html": "<p>修复 Windows 上套接字创建失败的检测（Bruce Momjian）</p>", "text": "修复 Windows 上套接字创建失败的检测（Bruce Momjian）", "title": "修复 Windows 上套接字创建失败的检测", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "66d413ecf2eb396556056867c9e7d0625c1c2eb0066e52fa4e103951c83c59c3", "section_path": ["变更"], "commit_groups": [["418093465", "966f015b6", "a86b2daff", "bed499ed1", "f716c3250"]], "identity_text": "Fix detection of socket creation failures on Windows (Bruce Momjian)", "commit_aliases": ["418093465", "966f015b6", "a86b2daff", "bed499ed1", "f716c3250"], "source_commits": ["f716c3250"], "source_entry_id": "9.3.5/changes/037", "db_id": "ebe4a8d79d3ba17586c56dd3274dec04", "patch_ids": ["f97773e0ecdab3076a362fbd735ce6f6"], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a", "relations": [{"rule": 2, "type": "equivalent", "target": "17554d240e1e1bf0abcb437338abcc15", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}}, {"rule": 2, "type": "equivalent", "target": "30dc1321491065a0d4c6caa538598c6c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}}, {"rule": 2, "type": "equivalent", "target": "a9b9ce2de83b5af9746463adf52afc66", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "17554d240e1e1bf0abcb437338abcc15", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 Windows 上套接字创建失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}, "url": "/docs/compare/?release=9.2.9#9.2.9-e4bc31c72b46e943", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "a9b9ce2de83b5af9746463adf52afc66", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复 Windows 上套接字创建失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}, "url": "/docs/compare/?release=9.1.14#9.1.14-e4bc31c72b46e943", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "30dc1321491065a0d4c6caa538598c6c", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复 Windows 上套接字创建失败的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd240b5a5bbb4d5ce397d2abea8477493415a23886d10b79edf8a3570dd40d0a"}, "url": "/docs/compare/?release=9.0.18#9.0.18-e4bc31c72b46e943", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-0efc671fdd2dec76", "cves": [], "html": "<p>在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如<a href=\"/docs/9.3/runtime-config-logging.html#GUC-LOG-CONNECTIONS\">log_connections</a>）的值（Amit Kapila）</p>\n<p>此前，如果启动后在文件中更改了这类参数，更改不会生效。</p>", "text": "在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如log_connections）的值（Amit Kapila） 此前，如果启动后在文件中更改了这类参数，更改不会生效。", "title": "在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如log_connections）的值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "98f4ec758a567202a3bc664081313c2190be021ce182fccc57cd34aab87412da", "section_path": ["变更"], "commit_groups": [["18db2150c", "30e434bdf", "6862ca697", "9500d8f89", "bdc3e95c2", "cb11f4d8d"]], "identity_text": "On Windows, allow new sessions to absorb values of PGC_BACKEND parameters (such as guc-log-connections ) from the configuration file (Amit Kapila) Previously, if such a parameter were changed in the file post-startup, the change would have no effect.", "commit_aliases": ["18db2150c", "30e434bdf", "6862ca697", "9500d8f89", "bdc3e95c2", "cb11f4d8d"], "source_commits": ["18db2150c"], "source_entry_id": "9.3.5/changes/038", "db_id": "218104825d14bd97a422e9ab79b1704a", "patch_ids": ["cd2daf94bfc16548a90dc48421b68327"], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1", "relations": [{"rule": 2, "type": "equivalent", "target": "0149ee36e50d0a3426d4baddce68a3f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}}, {"rule": 2, "type": "equivalent", "target": "764a1b6cf15f0cdc425deb42a9a207e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}}, {"rule": 2, "type": "equivalent", "target": "8491d20a9cd982f29e6148ac2beec587", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0149ee36e50d0a3426d4baddce68a3f2", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如log_connections）的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}, "url": "/docs/compare/?release=9.2.9#9.2.9-0efc671fdd2dec76", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "8491d20a9cd982f29e6148ac2beec587", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如log_connections）的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}, "url": "/docs/compare/?release=9.1.14#9.1.14-0efc671fdd2dec76", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "764a1b6cf15f0cdc425deb42a9a207e3", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "在 Windows 上，允许新会话从配置文件获取 PGC_BACKEND 参数（例如log_connections）的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5765359658e9917736f21873a6a7cb64f4ecf035d9d1b7f548c72cba07f367e1"}, "url": "/docs/compare/?release=9.0.18#9.0.18-0efc671fdd2dec76", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-bd868c1d29b149bc", "cves": [], "html": "<p>在 Windows 上正确地为可执行文件路径名加引号（Nikhil Deshpande）</p>\n<p>如果安装路径同时包含空格和 <code>@</code> 符号，这一疏忽可能导致 <span>initdb</span> 和 <span>pg_upgrade</span> 在 Windows 上失败。</p>", "text": "在 Windows 上正确地为可执行文件路径名加引号（Nikhil Deshpande） 如果安装路径同时包含空格和 @ 符号，这一疏忽可能导致 initdb 和 pg_upgrade 在 Windows 上失败。", "title": "在 Windows 上正确地为可执行文件路径名加引号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "1a955431fd03266b9a33a9c717f6d123e9240427ffc50e3c5fe9f039b426cbd3", "section_path": ["变更"], "commit_groups": [["503de5462", "8a90a39b4", "94095e341", "c06b7219a", "e2558e016", "e3f273ff6"]], "identity_text": "Properly quote executable path names on Windows (Nikhil Deshpande) This oversight could cause initdb and pg_upgrade to fail on Windows, if the installation path contained both spaces and @ signs.", "commit_aliases": ["503de5462", "8a90a39b4", "94095e341", "c06b7219a", "e2558e016", "e3f273ff6"], "source_commits": ["8a90a39b4"], "source_entry_id": "9.3.5/changes/039", "db_id": "a00c57cfe7cf06a59131c5ff0d3a8612", "patch_ids": ["bada571964929922275b02b0b5a78074"], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7", "relations": [{"rule": 2, "type": "equivalent", "target": "082751823ea21e0f5ff5f2891d7639e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}}, {"rule": 2, "type": "equivalent", "target": "3b999fd58f8dc69b0e938c7f9c84d747", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}}, {"rule": 2, "type": "equivalent", "target": "b4d3f8a47b553650493ed8ee653be2a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3b999fd58f8dc69b0e938c7f9c84d747", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 Windows 上正确地为可执行文件路径名加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}, "url": "/docs/compare/?release=9.2.9#9.2.9-bd868c1d29b149bc", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "082751823ea21e0f5ff5f2891d7639e2", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 Windows 上正确地为可执行文件路径名加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}, "url": "/docs/compare/?release=9.1.14#9.1.14-bd868c1d29b149bc", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "b4d3f8a47b553650493ed8ee653be2a0", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "在 Windows 上正确地为可执行文件路径名加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "87cad73827ef54d373b81f858c97fd722e136bbe0522e3687f49130bfab547b7"}, "url": "/docs/compare/?release=9.0.18#9.0.18-bd868c1d29b149bc", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-ef86ca7ec6174e43", "cves": [], "html": "<p>修复 macOS 上 <span>libpython</span> 的链接（Tom Lane）</p>\n<p>我们先前使用的方法在 Xcode 5.0 及之后版本提供的 Python 库上可能失败。</p>", "text": "修复 macOS 上 libpython 的链接（Tom Lane） 我们先前使用的方法在 Xcode 5.0 及之后版本提供的 Python 库上可能失败。", "title": "修复 macOS 上 libpython 的链接", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "086f26fa210fbf00461002918aed95a6a499f73b2fe1d77a55a6a41c55a83e7b", "section_path": ["变更"], "commit_groups": [["20561acf9", "4f5f4da79", "4f725bbc4", "83ed4598b", "a784a39c4", "ae41bb4be"]], "identity_text": "Fix linking of libpython on macOS (Tom Lane) The method we previously used can fail with the Python library supplied by Xcode 5.0 and later.", "commit_aliases": ["20561acf9", "4f5f4da79", "4f725bbc4", "83ed4598b", "a784a39c4", "ae41bb4be"], "source_commits": ["4f5f4da79"], "source_entry_id": "9.3.5/changes/040", "db_id": "52dfed10ea11bb1fce0f9546f2fd724b", "patch_ids": ["3760c3c074ac7c718c2ef75bd2ba791d"], "statement_hash": "6a4ed094e3684b42cec1b046cffd1b0a717533f1abac539beb717951e1a8196e", "relations": [{"rule": 2, "type": "equivalent", "target": "03f943fa073c1a44ceaaa49277947867", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6a4ed094e3684b42cec1b046cffd1b0a717533f1abac539beb717951e1a8196e"}}, {"rule": 2, "type": "equivalent", "target": "734f5598eb1c3658f9210b5ba8d197c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6a4ed094e3684b42cec1b046cffd1b0a717533f1abac539beb717951e1a8196e"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "03f943fa073c1a44ceaaa49277947867", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 macOS 上 libpython 的链接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6a4ed094e3684b42cec1b046cffd1b0a717533f1abac539beb717951e1a8196e"}, "url": "/docs/compare/?release=9.2.9#9.2.9-ef86ca7ec6174e43", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "734f5598eb1c3658f9210b5ba8d197c3", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复 macOS 上 libpython 的链接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6a4ed094e3684b42cec1b046cffd1b0a717533f1abac539beb717951e1a8196e"}, "url": "/docs/compare/?release=9.1.14#9.1.14-ef86ca7ec6174e43", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}]}, {"id": "9.3.5-cedc3e92f93ff1c0", "cves": [], "html": "<p>当服务器持续以快于客户端吸收速度的速率发送数据时，避免 <span>libpq</span> 中的缓冲区膨胀（Shin-ichi Morita、Tom Lane）</p>\n<p><span>libpq</span> 可能被迫不断增大其输入缓冲区，直到内存耗尽（这会被误导性地报告为 <span>“<span>lost synchronization with server</span>”</span>）。在正常情况下，数据持续以快于 <code>recv()</code> 循环吸收速度的速率传输是相当牵强的，但在客户端因调度器约束被人为减速时曾观察到这种情况。</p>", "text": "当服务器持续以快于客户端吸收速度的速率发送数据时，避免 libpq 中的缓冲区膨胀（Shin-ichi Morita、Tom Lane） libpq 可能被迫不断增大其输入缓冲区，直到内存耗尽（这会被误导性地报告为 “lost synchronization with server”）。在正常情况下，数据持续以快于 recv() 循环吸收速度的速率传输是相当牵强的，但在客户端因调度器约束被人为减速时曾观察到这种情况。", "title": "当服务器持续以快于客户端吸收速度的速率发送数据时，避免 libpq 中的缓冲区膨胀", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "c3ac2fb824c88b6bad66d331f432dc8bfcba7f6df6083866b4f8271b9d69854b", "section_path": ["变更"], "commit_groups": [["2f557167b", "664ac3de7", "77e662827", "86888054a", "b4f9c93ce", "f7672c8ce"]], "identity_text": "Avoid buffer bloat in libpq when the server consistently sends data faster than the client can absorb it (Shin-ichi Morita, Tom Lane) libpq could be coerced into enlarging its input buffer until it runs out of memory (which would be reported misleadingly as lost synchronization with server). Under ordinary circumstances it's quite far-fetched that data could be continuously transmitted more quickly than the recv() loop can absorb it, but this has been observed when the client is artificially slowed by scheduler constraints.", "commit_aliases": ["2f557167b", "664ac3de7", "77e662827", "86888054a", "b4f9c93ce", "f7672c8ce"], "source_commits": ["b4f9c93ce"], "source_entry_id": "9.3.5/changes/041", "db_id": "7ea011af707a7ff784d436ac0914d407", "patch_ids": ["775d7e74718e9bb3bb54ed85a40a1460"], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba", "relations": [{"rule": 2, "type": "equivalent", "target": "2af5bc416b8fee46f495abe66bf53d6a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}}, {"rule": 2, "type": "equivalent", "target": "3a282e1768d453d5ffd42e3b3ee465ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}}, {"rule": 2, "type": "equivalent", "target": "8c30722f5c774771da1f408a7ff3dfd0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}}], "version": "9.3.5", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8c30722f5c774771da1f408a7ff3dfd0", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "当服务器持续以快于客户端吸收速度的速率发送数据时，避免 libpq 中的缓冲区膨胀", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}, "url": "/docs/compare/?release=9.2.9#9.2.9-cedc3e92f93ff1c0", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "3a282e1768d453d5ffd42e3b3ee465ea", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "当服务器持续以快于客户端吸收速度的速率发送数据时，避免 libpq 中的缓冲区膨胀", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}, "url": "/docs/compare/?release=9.1.14#9.1.14-cedc3e92f93ff1c0", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "2af5bc416b8fee46f495abe66bf53d6a", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "当服务器持续以快于客户端吸收速度的速率发送数据时，避免 libpq 中的缓冲区膨胀", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b15e5e25e23ac22935a0befd2cf086f3e39434d9b8e191756602d91060f2f5ba"}, "url": "/docs/compare/?release=9.0.18#9.0.18-cedc3e92f93ff1c0", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-c862c70fd3a6efe1", "cves": [], "html": "<p>确保 <span>libpq</span> 中的 LDAP 查找尝试按预期超时（Laurenz Albe）</p>", "text": "确保 libpq 中的 LDAP 查找尝试按预期超时（Laurenz Albe）", "title": "确保 libpq 中的 LDAP 查找尝试按预期超时", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "e8e508c44720b3cb9da2143fec637661b27d1bcddca7fafcbc59693708153ad7", "section_path": ["变更"], "commit_groups": [["585bca393", "96752b02d", "b4ae2e37d", "b764080ee", "c4bf15b9c", "cc269272c"]], "identity_text": "Ensure that LDAP lookup attempts in libpq time out as intended (Laurenz Albe)", "commit_aliases": ["585bca393", "96752b02d", "b4ae2e37d", "b764080ee", "c4bf15b9c", "cc269272c"], "source_commits": ["cc269272c"], "source_entry_id": "9.3.5/changes/042", "db_id": "fae35e9a2cb6f22e727f26504ec1bf29", "patch_ids": ["1ec1c054780a33b8054b72669b4e64d7"], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292", "relations": [{"rule": 2, "type": "equivalent", "target": "47a792f9478fb28694a84953205d03a3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}}, {"rule": 2, "type": "equivalent", "target": "77b8f10623b200635653a4a8e40d9023", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}}, {"rule": 2, "type": "equivalent", "target": "93e8b6c34b4b9e5c8f46e6f20483ab43", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "77b8f10623b200635653a4a8e40d9023", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "确保 libpq 中的 LDAP 查找尝试按预期超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}, "url": "/docs/compare/?release=9.2.9#9.2.9-c862c70fd3a6efe1", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "93e8b6c34b4b9e5c8f46e6f20483ab43", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "确保 libpq 中的 LDAP 查找尝试按预期超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}, "url": "/docs/compare/?release=9.1.14#9.1.14-c862c70fd3a6efe1", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "47a792f9478fb28694a84953205d03a3", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "确保 libpq 中的 LDAP 查找尝试按预期超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9dd31e73a7f7b653f065c8b0769c8fad6f56b106c355205b355057b2c66a3292"}, "url": "/docs/compare/?release=9.0.18#9.0.18-c862c70fd3a6efe1", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-711d03350e4bd689", "cves": [], "html": "<p>修复 <span>ecpg</span> 在 <code>char *</code> 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复（Ashutosh Bapat）</p>", "text": "修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复（Ashutosh Bapat）", "title": "修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "154dd8503b9fceb97107f980d27eb887ce90b6a586a1797173c466d926aa2a1f", "section_path": ["变更"], "commit_groups": [["0c2eb989e", "0de106836", "2b3136de9", "3b8fda676", "f91796853"], ["3a024c110", "8d6a07fa0", "91c8c106f", "b4eeb9d58", "fb66e88cf"]], "identity_text": "Fix ecpg to do the right thing when an array of char * is the target for a FETCH statement returning more than one row, as well as some other array-handling fixes (Ashutosh Bapat)", "commit_aliases": ["0c2eb989e", "0de106836", "2b3136de9", "3a024c110", "3b8fda676", "8d6a07fa0", "91c8c106f", "b4eeb9d58", "f91796853", "fb66e88cf"], "source_commits": ["3b8fda676", "b4eeb9d58"], "source_entry_id": "9.3.5/changes/043", "db_id": "03951a03f69cc7a7ccf5e67eaa50748e", "patch_ids": ["0e980eefb4ec2ddf3cd6395c2398fbc2", "f72f197abe3067c386dde2cbdc2ce225"], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1", "relations": [{"rule": 2, "type": "equivalent", "target": "5fe77e7c94032b304ecf46028b3be13d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}}, {"rule": 2, "type": "equivalent", "target": "60a69e69d0f9f9787bb74a801b09eced", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}}, {"rule": 2, "type": "equivalent", "target": "803965b25515c92205c976328c2eb0a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5fe77e7c94032b304ecf46028b3be13d", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}, "url": "/docs/compare/?release=9.2.9#9.2.9-711d03350e4bd689", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "60a69e69d0f9f9787bb74a801b09eced", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}, "url": "/docs/compare/?release=9.1.14#9.1.14-711d03350e4bd689", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "803965b25515c92205c976328c2eb0a4", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为，以及其他一些数组处理修复", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bbf5a7b8dea2c6d469f7cd4ddb525ccbe9be895afdc8a4c0fd2041aa66cc83c1"}, "url": "/docs/compare/?release=9.0.18#9.0.18-711d03350e4bd689", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-f6efe14c70c19847", "cves": [], "html": "<p>修复 <span>pg_dump</span> 处理依赖于表主键的物化视图的问题（Tom Lane）</p>\n<p>当视图的查询依赖函数依赖性来精简 <code>GROUP BY</code> 列表时就会发生这种情况。<span>pg_dump</span> 会困惑到把该物化视图当作普通视图转储。</p>", "text": "修复 pg_dump 处理依赖于表主键的物化视图的问题（Tom Lane） 当视图的查询依赖函数依赖性来精简 GROUP BY 列表时就会发生这种情况。pg_dump 会困惑到把该物化视图当作普通视图转储。", "title": "修复 pg_dump 处理依赖于表主键的物化视图的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "6e89374f0ebd8398dd9f66f0e174e9945da41d9b06bbfc56f39dbd03d1a05059", "section_path": ["变更"], "commit_groups": [["3080bbaa9", "62215de29"]], "identity_text": "Fix pg_dump to cope with a materialized view that depends on a table's primary key (Tom Lane) This occurs if the view's query relies on functional dependency to abbreviate a GROUP BY list. pg_dump got sufficiently confused that it dumped the materialized view as a regular view.", "commit_aliases": ["3080bbaa9", "62215de29"], "source_commits": ["3080bbaa9"], "source_entry_id": "9.3.5/changes/044", "db_id": "8ac68623b9ad1c757df0f25a37ee3b2b", "patch_ids": ["ac5b049e737590689dfba87e70138d4f"], "statement_hash": "feed8d02d02e6643104be11b975971bfb899bc883debd0b0ee3de254f374c0e6", "relations": [], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-cc65e83b9ef813d0", "cves": [], "html": "<p>修复 <span>pg_dumpall</span> 的 <code>-i</code> 开关的解析（Tom Lane）</p>", "text": "修复 pg_dumpall 的 -i 开关的解析（Tom Lane）", "title": "修复 pg_dumpall 的 -i 开关的解析", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "50c0db9894071f7e1ed4e6046f3968d98ea9704d8d08e56c7c700c62dc11d840", "section_path": ["变更"], "commit_groups": [["19f2d6cda", "63817f86b"]], "identity_text": "Fix parsing of pg_dumpall's -i switch (Tom Lane)", "commit_aliases": ["19f2d6cda", "63817f86b"], "source_commits": ["63817f86b"], "source_entry_id": "9.3.5/changes/045", "db_id": "d882c86ec40f078ff44ec620344b3cf0", "patch_ids": ["38957b0278fec42c42663445c2461163"], "statement_hash": "cb02bbd5f5adff9cb2ba010b619674d59894ee407186739f5dae8af5cb1d006c", "relations": [], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-5c2bb548ad784bfa", "cves": [], "html": "<p>修复 <span>pg_restore</span> 对旧式大对象注释的处理（Tom Lane）</p>\n<p>如果归档文件由 9.0 之前版本的 <span>pg_dump</span> 生成且包含较多大对象注释，直接恢复到数据库通常会失败。</p>", "text": "修复 pg_restore 对旧式大对象注释的处理（Tom Lane） 如果归档文件由 9.0 之前版本的 pg_dump 生成且包含较多大对象注释，直接恢复到数据库通常会失败。", "title": "修复 pg_restore 对旧式大对象注释的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "7650937f2600938e1652de97c3c00d1231de72967692ca7276a24ad7968c977c", "section_path": ["变更"], "commit_groups": [["294a48985", "3fec825f9", "6adddac8a", "a11577f47", "c3c1401ca", "c81e63d85", "ce7fc4fbb"]], "identity_text": "Fix pg_restore's processing of old-style large object comments (Tom Lane) A direct-to-database restore from an archive file generated by a pre-9.0 version of pg_dump would usually fail if the archive contained more than a few comments for large objects.", "commit_aliases": ["294a48985", "3fec825f9", "6adddac8a", "a11577f47", "c3c1401ca", "c81e63d85", "ce7fc4fbb"], "source_commits": ["a11577f47"], "source_entry_id": "9.3.5/changes/046", "db_id": "da83d1898e5b2c300cfb0fad7355a0cb", "patch_ids": ["dc09a3b50ecd4ca8497c9020f8c828df"], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0", "relations": [{"rule": 2, "type": "equivalent", "target": "82fd6a93aa95c840ae3aea81590e8700", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}}, {"rule": 2, "type": "equivalent", "target": "854416bf297531ff4f4f9015bab857f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}}, {"rule": 2, "type": "equivalent", "target": "ebf06686a05aa24118cb50052c738ec5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "82fd6a93aa95c840ae3aea81590e8700", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 pg_restore 对旧式大对象注释的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}, "url": "/docs/compare/?release=9.2.9#9.2.9-5c2bb548ad784bfa", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "854416bf297531ff4f4f9015bab857f9", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "修复 pg_restore 对旧式大对象注释的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}, "url": "/docs/compare/?release=9.1.14#9.1.14-5c2bb548ad784bfa", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "ebf06686a05aa24118cb50052c738ec5", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "修复 pg_restore 对旧式大对象注释的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "810f62d2bad25f30a19392d14d2f235e536c1310f924633aff7f134363fb5ec0"}, "url": "/docs/compare/?release=9.0.18#9.0.18-5c2bb548ad784bfa", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-8d7da8ad3d474686", "cves": [], "html": "<p>修复新服务器创建了 TOAST 表而旧版本没有创建时 <span>pg_upgrade</span> 的问题（Bruce Momjian）</p>\n<p>这种罕见情况会表现为 <span>“<span>relation OID mismatch</span>”</span> 错误。</p>", "text": "修复新服务器创建了 TOAST 表而旧版本没有创建时 pg_upgrade 的问题（Bruce Momjian） 这种罕见情况会表现为 “relation OID mismatch” 错误。", "title": "修复新服务器创建了 TOAST 表而旧版本没有创建时 pg_upgrade 的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "c22b1e9617357af92d1047f95a887c873d423c85499c6576da09d9ef7425b659", "section_path": ["变更"], "commit_groups": [["3088cc370", "759c9fb63", "f1d7ff5bb", "f64fe2cbe"]], "identity_text": "Fix pg_upgrade for cases where the new server creates a TOAST table but the old version did not (Bruce Momjian) This rare situation would manifest as relation OID mismatch errors.", "commit_aliases": ["3088cc370", "759c9fb63", "f1d7ff5bb", "f64fe2cbe"], "source_commits": ["f1d7ff5bb"], "source_entry_id": "9.3.5/changes/047", "db_id": "e1d8e96af8fc4c845a900bbfc327c8cf", "patch_ids": ["da4489878fc7ee209c94c9d53e70d248"], "statement_hash": "bc01710955da972814e716873a9f7ac2ab7fcd5ece43c34f8d3f879ec87069c5", "relations": [{"rule": 2, "type": "equivalent", "target": "cddc66904a1df9729425e072ec46abcf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc01710955da972814e716873a9f7ac2ab7fcd5ece43c34f8d3f879ec87069c5"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cddc66904a1df9729425e072ec46abcf", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复新服务器创建了 TOAST 表而旧版本没有创建时 pg_upgrade 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc01710955da972814e716873a9f7ac2ab7fcd5ece43c34f8d3f879ec87069c5"}, "url": "/docs/compare/?release=9.2.9#9.2.9-8d7da8ad3d474686", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}]}, {"id": "9.3.5-31282c2f42cb49b2", "cves": [], "html": "<p>在 <span>pg_upgrade</span> 中，保留旧集簇的 <code>pg_database</code>.<code>datminmxid</code> 和 <code>pg_class</code>.<code>relminmxid</code> 值，或者在从 9.3 之前版本升级时插入合理的值；同时让核心服务器防御不合理的值（Bruce Momjian、Álvaro Herrera、Tom Lane）</p>\n<p>这些变更防止了这样的场景：自动清理在新集簇启动后立即坚持扫描整个集簇的内容，或者对未冻结 MXID 值的跟踪被完全禁用。</p>", "text": "在 pg_upgrade 中，保留旧集簇的 pg_database.datminmxid 和 pg_class.relminmxid 值，或者在从 9.3 之前版本升级时插入合理的值；同时让核心服务器防御不合理的值（Bruce Momjian、Álvaro Herrera、Tom Lane） 这些变更防止了这样的场景：自动清理在新集簇启动后立即坚持扫描整个集簇的内容，或者对未冻结 MXID 值的跟踪被完全禁用。", "title": "在 pg_upgrade 中，保留旧集簇的 pg_database.datminmxid 和 pg_class.relminmxid 值，或者在从 9.3 之前版本升级时插入合理的值；同时让核心服务器防御不合理的值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "c180f26b0c942592c19f34810a7ce860415f33e491b262ef5cadb84c9c156f0f", "section_path": ["变更"], "commit_groups": [["3d2e18510", "a61daa14d", "b446a384b"], ["78db307bb", "d122387d7", "e7984cca0"]], "identity_text": "In pg_upgrade, preserve pg_database.datminmxid and pg_class.relminmxid values from the old cluster, or insert reasonable values when upgrading from pre-9.3; also defend against unreasonable values in the core server (Bruce Momjian, Álvaro Herrera, Tom Lane) These changes prevent scenarios in which autovacuum might insist on scanning the entire cluster's contents immediately upon starting the new cluster, or in which tracking of unfrozen MXID values might be disabled completely.", "commit_aliases": ["3d2e18510", "78db307bb", "a61daa14d", "b446a384b", "d122387d7", "e7984cca0"], "source_commits": ["3d2e18510", "e7984cca0"], "source_entry_id": "9.3.5/changes/048", "db_id": "2ef27d63bcf749604f17755bfbe0291c", "patch_ids": ["147a9b4b0a1f433f93e765910ec76d20", "b40cf1cfbd41687780d7540fe2e5a1ea"], "statement_hash": "4c3fe7297f90251df724cc2e7580135b383378c275fcf4d2d4a0e737fc6df925", "relations": [], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.5-390e3d5daba068d1", "cves": [], "html": "<p>防止 <code>contrib/auto_explain</code> 改变用户 <code>EXPLAIN</code> 命令的输出（Tom Lane）</p>\n<p>如果 <code>auto_explain</code> 处于活动状态，它可能导致 <code>EXPLAIN (ANALYZE, TIMING OFF)</code> 命令仍然打印计时信息。</p>", "text": "防止 contrib/auto_explain 改变用户 EXPLAIN 命令的输出（Tom Lane） 如果 auto_explain 处于活动状态，它可能导致 EXPLAIN (ANALYZE, TIMING OFF) 命令仍然打印计时信息。", "title": "防止 contrib/auto_explain 改变用户 EXPLAIN 命令的输出", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "7174054a047152bf74553102f124a4148c45f21292e4b2541add7fc54f99c636", "section_path": ["变更"], "commit_groups": [["0266a9c78", "31f579f09", "e416830a2"]], "identity_text": "Prevent contrib/auto_explain from changing the output of a user's EXPLAIN (Tom Lane) If auto_explain is active, it could cause an EXPLAIN (ANALYZE, TIMING OFF) command to nonetheless print timing information.", "commit_aliases": ["0266a9c78", "31f579f09", "e416830a2"], "source_commits": ["0266a9c78"], "source_entry_id": "9.3.5/changes/049", "db_id": "3df678852927dbe67ad10e05c5838d14", "patch_ids": ["df9697a6c804ae31cf7fbaf7ac0ca174"], "statement_hash": "339b402957aa04f4efaa5be2e35669293a1170c25e2eb84f558e2f307b6608e2", "relations": [{"rule": 2, "type": "equivalent", "target": "ecb207e5f03a0c87de60518e18f3f6dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "339b402957aa04f4efaa5be2e35669293a1170c25e2eb84f558e2f307b6608e2"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ecb207e5f03a0c87de60518e18f3f6dd", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "防止 contrib/auto_explain 改变用户 EXPLAIN 命令的输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "339b402957aa04f4efaa5be2e35669293a1170c25e2eb84f558e2f307b6608e2"}, "url": "/docs/compare/?release=9.2.9#9.2.9-390e3d5daba068d1", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}]}, {"id": "9.3.5-137b26b8343e2f9b", "cves": [], "html": "<p>修复 <code>contrib/dblink</code> 中的查询级内存泄漏（MauMau、Joe Conway）</p>", "text": "修复 contrib/dblink 中的查询级内存泄漏（MauMau、Joe Conway）", "title": "修复 contrib/dblink 中的查询级内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "0df80b45ae0cdbfcaf19832ceb28f6271d2a1694476353ef8868dc85d1637996", "section_path": ["变更"], "commit_groups": [["1dde5782e", "3e2cfa42f", "9d884a34c", "b3a3f3d2f"]], "identity_text": "Fix query-lifespan memory leak in contrib/dblink (MauMau, Joe Conway)", "commit_aliases": ["1dde5782e", "3e2cfa42f", "9d884a34c", "b3a3f3d2f"], "source_commits": ["b3a3f3d2f"], "source_entry_id": "9.3.5/changes/050", "db_id": "9e3cd4ee0fc5c915cd33a3c6bb673094", "patch_ids": ["e2a0c75c2a5f8f6bc1358537b0a42128"], "statement_hash": "b9d2cbbf3dc31f537e4ea94ef2f94798eeb8cdd6b28ed23dd8d6ab50cda332c4", "relations": [{"rule": 2, "type": "equivalent", "target": "0bf0da56a8be6b7a8a403cad56024e84", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b9d2cbbf3dc31f537e4ea94ef2f94798eeb8cdd6b28ed23dd8d6ab50cda332c4"}}], "version": "9.3.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0bf0da56a8be6b7a8a403cad56024e84", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "修复 contrib/dblink 中的查询级内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b9d2cbbf3dc31f537e4ea94ef2f94798eeb8cdd6b28ed23dd8d6ab50cda332c4"}, "url": "/docs/compare/?release=9.2.9#9.2.9-137b26b8343e2f9b", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}]}, {"id": "9.3.5-0016b300fbfa987e", "cves": [], "html": "<p>在 <code>contrib/pgcrypto</code> 函数中，确保返回前清除栈变量中的敏感信息（Marko Kreen）</p>", "text": "在 contrib/pgcrypto 函数中，确保返回前清除栈变量中的敏感信息（Marko Kreen）", "title": "在 contrib/pgcrypto 函数中，确保返回前清除栈变量中的敏感信息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "1025118a5bda595d60aa9795f8d47bfb0dd8391f224c66593d654eb823979ad6", "section_path": ["变更"], "commit_groups": [["9fe55259f", "a1b9c4630", "df2e62603", "ea8725a8b", "fc02b87e2", "fc72e94a1"]], "identity_text": "In contrib/pgcrypto functions, ensure sensitive information is cleared from stack variables before returning (Marko Kreen)", "commit_aliases": ["9fe55259f", "a1b9c4630", "df2e62603", "ea8725a8b", "fc02b87e2", "fc72e94a1"], "source_commits": ["fc72e94a1"], "source_entry_id": "9.3.5/changes/051", "db_id": "1950470d6df3ffce099f00fdf31d8a6e", "patch_ids": ["a50dc55c85dcf3b5e0ff72e3cba88f76"], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6", "relations": [{"rule": 2, "type": "equivalent", "target": "da3c1ef853655f747a6a5c63dbbec939", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}}, {"rule": 2, "type": "equivalent", "target": "e46ff2eeb859e50d67e0065ff01d7479", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}}, {"rule": 2, "type": "equivalent", "target": "f78027492cdf29e6121d9de1919885c4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f78027492cdf29e6121d9de1919885c4", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 contrib/pgcrypto 函数中，确保返回前清除栈变量中的敏感信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}, "url": "/docs/compare/?release=9.2.9#9.2.9-0016b300fbfa987e", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "e46ff2eeb859e50d67e0065ff01d7479", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 contrib/pgcrypto 函数中，确保返回前清除栈变量中的敏感信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}, "url": "/docs/compare/?release=9.1.14#9.1.14-0016b300fbfa987e", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "da3c1ef853655f747a6a5c63dbbec939", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "在 contrib/pgcrypto 函数中，确保返回前清除栈变量中的敏感信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5efa83f80cfe0fdc6d4ef2579cd86e4982ceb6a50ddd77a58d599dd9c3f4a9d6"}, "url": "/docs/compare/?release=9.0.18#9.0.18-0016b300fbfa987e", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-9784f08218d9675c", "cves": [], "html": "<p>防止 <code>contrib/pgstattuple</code> 的 <code>pgstat_heap()</code> 使用已释放的内存（Noah Misch）</p>", "text": "防止 contrib/pgstattuple 的 pgstat_heap() 使用已释放的内存（Noah Misch）", "title": "防止 contrib/pgstattuple 的 pgstat_heap() 使用已释放的内存", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "d2c21bc9c303ae8c34e7893f66c4e59fd51409d83d2afdef18a45093d1a84140", "section_path": ["变更"], "commit_groups": [["37a4d3d70", "9d0826c59", "f14e40852", "f6d6b7b1e"]], "identity_text": "Prevent use of already-freed memory in contrib/pgstattuple's pgstat_heap() (Noah Misch)", "commit_aliases": ["37a4d3d70", "9d0826c59", "f14e40852", "f6d6b7b1e"], "source_commits": ["f14e40852"], "source_entry_id": "9.3.5/changes/052", "db_id": "07a2da066dadf3d1d9edfcae6ea8cfee", "patch_ids": ["1a96e934269cb7ece74e2e0ebdc4ea15"], "statement_hash": "e93150675bf379583f13e65c9f9efaf0ce78811451425f9b469ca5ee7fc4f4fa", "relations": [{"rule": 2, "type": "equivalent", "target": "69a5922096908d645905101f888bf49b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e93150675bf379583f13e65c9f9efaf0ce78811451425f9b469ca5ee7fc4f4fa"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "69a5922096908d645905101f888bf49b", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "防止 contrib/pgstattuple 的 pgstat_heap() 使用已释放的内存", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e93150675bf379583f13e65c9f9efaf0ce78811451425f9b469ca5ee7fc4f4fa"}, "url": "/docs/compare/?release=9.2.9#9.2.9-9784f08218d9675c", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}]}, {"id": "9.3.5-f301465b45c606aa", "cves": [], "html": "<p>在 <code>contrib/uuid-ossp</code> 中，跨调用缓存 OSSP UUID 库的状态（Tom Lane）</p>\n<p>这提高了 UUID 生成的效率，并在有 <code>/dev/urandom</code> 的平台上减少了从中抽取的熵量。</p>", "text": "在 contrib/uuid-ossp 中，跨调用缓存 OSSP UUID 库的状态（Tom Lane） 这提高了 UUID 生成的效率，并在有 /dev/urandom 的平台上减少了从中抽取的熵量。", "title": "在 contrib/uuid-ossp 中，跨调用缓存 OSSP UUID 库的状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "8e091162a23dcadae6708f895e00dd13f63972a735bd53935ffedb7884e33ee4", "section_path": ["变更"], "commit_groups": [["2fb9fb661", "3606754da", "961dd203a", "b2f6754d2", "c941aed96", "fd785441f"]], "identity_text": "In contrib/uuid-ossp, cache the state of the OSSP UUID library across calls (Tom Lane) This improves the efficiency of UUID generation and reduces the amount of entropy drawn from /dev/urandom, on platforms that have that.", "commit_aliases": ["2fb9fb661", "3606754da", "961dd203a", "b2f6754d2", "c941aed96", "fd785441f"], "source_commits": ["961dd203a"], "source_entry_id": "9.3.5/changes/053", "db_id": "1326b033b2b56a25227df3cbe1617a36", "patch_ids": ["21d79ba79d1edb3f05bd52144ef3ceb2"], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b", "relations": [{"rule": 2, "type": "equivalent", "target": "2d2932d1495af96400c3a66a5188eb46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}}, {"rule": 2, "type": "equivalent", "target": "e76d1e6b1ab7c2cd7f6aeb6112cdd519", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}}, {"rule": 2, "type": "equivalent", "target": "f10275f87e34a2c9c4ff6de64101c8f6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2d2932d1495af96400c3a66a5188eb46", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "在 contrib/uuid-ossp 中，跨调用缓存 OSSP UUID 库的状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}, "url": "/docs/compare/?release=9.2.9#9.2.9-f301465b45c606aa", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "e76d1e6b1ab7c2cd7f6aeb6112cdd519", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "在 contrib/uuid-ossp 中，跨调用缓存 OSSP UUID 库的状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}, "url": "/docs/compare/?release=9.1.14#9.1.14-f301465b45c606aa", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "f10275f87e34a2c9c4ff6de64101c8f6", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "在 contrib/uuid-ossp 中，跨调用缓存 OSSP UUID 库的状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd095415b79f203d378a5a281e6ea63ea7822660df35fd025f8c77580c43717b"}, "url": "/docs/compare/?release=9.0.18#9.0.18-f301465b45c606aa", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}, {"id": "9.3.5-34d486e25f2c3c26", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。</p>", "text": "把时区数据文件更新为 tzdata 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。", "title": "把时区数据文件更新为 tzdata 版本 2014e，以反映克里米亚、埃及和摩洛哥的夏令时法规变更。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.5/#id-1.11.6.25.5", "source_hash": "ac45f6a95c3457f4cd1c7a5dfbb10a37b6f13c2ab6bce94dddebbc70f24137bf", "section_path": ["变更"], "commit_groups": [["40ccb6530", "7659b6913", "7d09e4854", "b1864fabf", "bd5458f52", "c51da696b", "e5ea60e80"]], "identity_text": "Update time zone data files to tzdata release 2014e for DST law changes in Crimea, Egypt, and Morocco.", "commit_aliases": ["40ccb6530", "7659b6913", "7d09e4854", "b1864fabf", "bd5458f52", "c51da696b", "e5ea60e80"], "source_commits": ["bd5458f52"], "source_entry_id": "9.3.5/changes/054", "db_id": "0be25c77e3001279f17afc62b5ad0e26", "patch_ids": ["4a0e7dad7bdb0230b538d3287552f7fd"], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a", "relations": [{"rule": 2, "type": "equivalent", "target": "40de67ee53d71ae301c40a9ffdc80562", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}}, {"rule": 2, "type": "equivalent", "target": "baaed6e0e43e79f2a9ebad4377a39a4f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}}, {"rule": 2, "type": "equivalent", "target": "f0379227a70a81072cf0b0270ac81b05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}}], "version": "9.3.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f0379227a70a81072cf0b0270ac81b05", "kind": "equivalent", "version": "9.2.9", "label": "9.2.9", "title": "把时区数据文件更新为 tzdata 版本 2014e for DST law changes in Crimea, Egypt, and Morocco。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}, "url": "/docs/compare/?release=9.2.9#9.2.9-f6411040831c229f", "source_url": "/docs/release/9.2.9/#id-1.11.6.20.5"}, {"db_id": "baaed6e0e43e79f2a9ebad4377a39a4f", "kind": "equivalent", "version": "9.1.14", "label": "9.1.14", "title": "把时区数据文件更新为 tzdata 版本 2014e for DST law changes in Crimea, Egypt, and Morocco。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}, "url": "/docs/compare/?release=9.1.14#9.1.14-f6411040831c229f", "source_url": "/docs/release/9.1.14/#id-1.11.6.15.5"}, {"db_id": "40de67ee53d71ae301c40a9ffdc80562", "kind": "equivalent", "version": "9.0.18", "label": "9.0.18", "title": "把时区数据文件更新为 tzdata 版本 2014e for DST law changes in Crimea, Egypt, and Morocco。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7abe05ad3e342400b3a6f53223c04884cf12ae063e388445fb302f2025000f1a"}, "url": "/docs/compare/?release=9.0.18#9.0.18-f6411040831c229f", "source_url": "/docs/release/9.0.18/#id-1.11.6.10.5"}]}]}, {"date": "2014-03-20", "build": "9.3.4", "major": "9.3", "minor": 4, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.4", "eol_date": "2018-11-08", "date_text": "2014-03-20", "supported": false, "manual_url": "/docs/9.3/release-9-3-4.html", "source_url": "/docs/release/9.3.4/", "entry_count": 21, "placeholder": false, "content_hash": "91142b9535359426dd81cd6fdc9a91ccbb942078c79e1ea654af36324a9d8164", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 21, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，下面第一条变更日志修复的错误可能在备库服务器上造成了损坏数据。在安装此更新后，用新的基础备份重新初始化备库服务器可能是明智的。</p>\n<p>不过，如果你是从早于 9.3.3 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-3.html\" title=\"E.23. 版本 9.3.3\">第 E.23 节</a>。</p>", "compatibility_count": 0, "label": "9.3.4", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4577, "support_days": -2883, "entries": [{"id": "9.3.4-b484621db69ad545", "cves": [], "html": "<p>修复锁定已更新元组的 WAL 重放（Andres Freund、Álvaro Herrera）</p>\n<p>这一错误导致索引扫描找不到已更新的行，使查询结果取决于是否使用索引扫描而不一致。后续处理可能导致约束冲突，因为之前更新的行不会再被后续的索引搜索找到，从而可能允许插入相互冲突的行。由于该错误位于 WAL 重放中，它只会在崩溃恢复期间或备库服务器上显现。重放不当的情况最常见于外键约束引用的表行与引用行的创建并发更新时。</p>", "text": "修复锁定已更新元组的 WAL 重放（Andres Freund、Álvaro Herrera） 这一错误导致索引扫描找不到已更新的行，使查询结果取决于是否使用索引扫描而不一致。后续处理可能导致约束冲突，因为之前更新的行不会再被后续的索引搜索找到，从而可能允许插入相互冲突的行。由于该错误位于 WAL 重放中，它只会在崩溃恢复期间或备库服务器上显现。重放不当的情况最常见于外键约束引用的表行与引用行的创建并发更新时。", "title": "修复锁定已更新元组的 WAL 重放", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "abe25b1d8a187b12f297f495b2f5c3a3e164a00a7729d2e70112fa49d3d8ae58", "section_path": ["变更"], "commit_groups": [["6bfa88acd", "9a57858f1"]], "identity_text": "Fix WAL replay of locking an already-updated tuple (Andres Freund, Álvaro Herrera) This error caused updated rows to not be found by index scans, resulting in inconsistent query results depending on whether an index scan was used. Subsequent processing could result in constraint violations, since the previously updated row would not be found by later index searches, thus possibly allowing conflicting rows to be inserted. Since this error is in WAL replay, it would only manifest during crash recovery or on standby servers. The improperly-replayed case most commonly arises when a table row that is referenced by a foreign-key constraint is updated concurrently with creation of a referencing row.", "commit_aliases": ["6bfa88acd", "9a57858f1"], "source_commits": ["9a57858f1"], "source_entry_id": "9.3.4/changes/001", "db_id": "c5cb195c248850da5c67d510296975b7", "patch_ids": ["143b9455eaa82cf4c65078ca7bbd2b17"], "statement_hash": "769ff820869af5cb273980f8580d94a5e17c3c51f1c3191abc9976b4ea628af3", "relations": [], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-111ab50ad1f2c777", "cves": [], "html": "<p>无条件恢复 GIN 元页以避免残缺页风险（Heikki Linnakangas）</p>\n<p>虽然这一疏忽理论上可能导致索引损坏，但实际上不太可能造成任何问题，因为 GIN 元页的活动部分小于标准的 512 字节磁盘扇区。</p>", "text": "无条件恢复 GIN 元页以避免残缺页风险（Heikki Linnakangas） 虽然这一疏忽理论上可能导致索引损坏，但实际上不太可能造成任何问题，因为 GIN 元页的活动部分小于标准的 512 字节磁盘扇区。", "title": "无条件恢复 GIN 元页以避免残缺页风险", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "9f27114da87bbd471358572323640279aa40a26d0e1ae5be00d0566b4b1e6817", "section_path": ["变更"], "commit_groups": [["4738cc356", "63e59c259", "91f932cf4", "9954e1f03", "e2bccdfcc", "fecfc2b91"]], "identity_text": "Restore GIN metapages unconditionally to avoid torn-page risk (Heikki Linnakangas) Although this oversight could theoretically result in a corrupted index, it is unlikely to have caused any problems in practice, since the active part of a GIN metapage is smaller than a standard 512-byte disk sector.", "commit_aliases": ["4738cc356", "63e59c259", "91f932cf4", "9954e1f03", "e2bccdfcc", "fecfc2b91"], "source_commits": ["4738cc356"], "source_entry_id": "9.3.4/changes/002", "db_id": "c39429d16018e089a092c8c72ba0d908", "patch_ids": ["e961091ede10ccd59f0019d44b0c23da"], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa", "relations": [{"rule": 2, "type": "equivalent", "target": "804a236a01382cffe4b84a219947b766", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}}, {"rule": 2, "type": "equivalent", "target": "c8123c71b2dde2669dedb8b0b8a67ff9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}}, {"rule": 2, "type": "equivalent", "target": "cc670948f13dd3b08204a893fa2e9465", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "804a236a01382cffe4b84a219947b766", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "无条件恢复 GIN 元页以避免残缺页风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}, "url": "/docs/compare/?release=9.2.8#9.2.8-111ab50ad1f2c777", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "c8123c71b2dde2669dedb8b0b8a67ff9", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "无条件恢复 GIN 元页以避免残缺页风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}, "url": "/docs/compare/?release=9.1.13#9.1.13-111ab50ad1f2c777", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "cc670948f13dd3b08204a893fa2e9465", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "无条件恢复 GIN 元页以避免残缺页风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}, "url": "/docs/compare/?release=9.0.17#9.0.17-111ab50ad1f2c777", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-abd8efd5308ef26f", "cves": [], "html": "<p>避免在接收 <code>NOTIFY</code> 消息期间检查事务提交状态时的竞态条件（Marko Tiikkaja）</p>\n<p>这防止了这样一种场景：足够快的客户端可能在通知者所做的数据库更新对接收者可见之前就响应通知。</p>", "text": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件（Marko Tiikkaja） 这防止了这样一种场景：足够快的客户端可能在通知者所做的数据库更新对接收者可见之前就响应通知。", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "23339fa877b792694fe0df13ed4f2de63cb0fdd73e530564bae71a6ee7ec73bf", "section_path": ["变更"], "commit_groups": [["0d11fed8e", "7aea1050e", "7bae0284e", "7bfdf10f5", "bbe9621a9"]], "identity_text": "Avoid race condition in checking transaction commit status during receipt of a NOTIFY message (Marko Tiikkaja) This prevents a scenario wherein a sufficiently fast client might respond to a notification before database updates made by the notifier have become visible to the recipient.", "commit_aliases": ["0d11fed8e", "7aea1050e", "7bae0284e", "7bfdf10f5", "bbe9621a9"], "source_commits": ["0d11fed8e"], "source_entry_id": "9.3.4/changes/003", "db_id": "8b8fd40d0cba0ab61b6e50ef1bdda84e", "patch_ids": ["63ed142de48a17492196ecdb96f8cb27"], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887", "relations": [{"rule": 2, "type": "equivalent", "target": "6539056a357766e0940558a25be2302e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}}, {"rule": 2, "type": "equivalent", "target": "6a217ad82f7b13649a9206b3d881d86f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}}, {"rule": 2, "type": "equivalent", "target": "a4b0d7088e6137e3df54c72da3f8ec46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a4b0d7088e6137e3df54c72da3f8ec46", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}, "url": "/docs/compare/?release=9.2.8#9.2.8-abd8efd5308ef26f", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "6539056a357766e0940558a25be2302e", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}, "url": "/docs/compare/?release=9.1.13#9.1.13-abd8efd5308ef26f", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "6a217ad82f7b13649a9206b3d881d86f", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}, "url": "/docs/compare/?release=9.0.17#9.0.17-abd8efd5308ef26f", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-278265fb17b3b0d9", "cves": [], "html": "<p>允许在 <code>UPDATE</code> 和 <code>DELETE</code> 命令中引用物化视图（Michael Paquier）</p>\n<p>此前这类查询会因无法锁定物化视图中的行而失败。</p>", "text": "允许在 UPDATE 和 DELETE 命令中引用物化视图（Michael Paquier） 此前这类查询会因无法锁定物化视图中的行而失败。", "title": "允许在 UPDATE 和 DELETE 命令中引用物化视图", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "28390e36799bea5d56d83752fdcc6b48f85c9b83de5e400f1959abfccf71e7dc", "section_path": ["变更"], "commit_groups": [["3973034e6", "bf4052faa"]], "identity_text": "Allow materialized views to be referenced in UPDATE and DELETE commands (Michael Paquier) Previously such queries failed with a complaint about not being able to lock rows in the materialized view.", "commit_aliases": ["3973034e6", "bf4052faa"], "source_commits": ["3973034e6"], "source_entry_id": "9.3.4/changes/004", "db_id": "c7ba2b690db332f801ddae86a3553c10", "patch_ids": ["affecab5885c82d7836900a1fba01dc2"], "statement_hash": "0ecef8a05751e0493302dbf3df6ddbcd658d0ac79c5e85ccc4490a1b5f684353", "relations": [], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-e70a52d44b311aa5", "cves": [], "html": "<p>允许正则表达式操作符被查询取消请求提前终止（Tom Lane）</p>\n<p>这防止了病态正则表达式长时间不可中断地锁死服务器进程的场景。</p>", "text": "允许正则表达式操作符被查询取消请求提前终止（Tom Lane） 这防止了病态正则表达式长时间不可中断地锁死服务器进程的场景。", "title": "允许正则表达式操作符被查询取消请求提前终止", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "3cf7adfa743ae1052e034ac89877ac8bf74e7b5dee7f4c96670a384e21f6fef7", "section_path": ["变更"], "commit_groups": [["03e6423fc", "43af0e8c6", "9662143f0", "a9eb4924a", "b6e143458", "f5f21315d"]], "identity_text": "Allow regular-expression operators to be terminated early by query cancel requests (Tom Lane) This prevents scenarios wherein a pathological regular expression could lock up a server process uninterruptibly for a long time.", "commit_aliases": ["03e6423fc", "43af0e8c6", "9662143f0", "a9eb4924a", "b6e143458", "f5f21315d"], "source_commits": ["f5f21315d"], "source_entry_id": "9.3.4/changes/005", "db_id": "a2767dfab452b9165a0c6d45dccb03ea", "patch_ids": ["f54f72e2563e37ee5e116d33d289707d"], "statement_hash": "f278ac472a839616411da5fe768cd951f6c31375196d5a450e1ac77f4ae7d6e4", "relations": [{"rule": 2, "type": "equivalent", "target": "163a16f802a2a29acb9e48daba0e3808", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f278ac472a839616411da5fe768cd951f6c31375196d5a450e1ac77f4ae7d6e4"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "163a16f802a2a29acb9e48daba0e3808", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "允许正则表达式操作符被查询取消请求提前终止", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f278ac472a839616411da5fe768cd951f6c31375196d5a450e1ac77f4ae7d6e4"}, "url": "/docs/compare/?release=9.2.8#9.2.8-e70a52d44b311aa5", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}]}, {"id": "9.3.4-e50f6525a9c174c4", "cves": [], "html": "<p>移除试图允许 <code>OVERLAPS</code> 接受单元素行参数的错误代码（Joshua Yanovski）</p>\n<p>这段代码从未正确工作过，而且该情况既未被 SQL 标准规定也未被记录，因此移除它似乎比修复它更好。</p>", "text": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码（Joshua Yanovski） 这段代码从未正确工作过，而且该情况既未被 SQL 标准规定也未被记录，因此移除它似乎比修复它更好。", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "d9249df782ba9a440037878b6a0fb773d36780bf2e558eee78863c5e4442709f", "section_path": ["变更"], "commit_groups": [["0aaa42241", "19d66ab05", "a222f7fda", "d7cd6a9d5", "dd378dd1e", "e6f7fe983"]], "identity_text": "Remove incorrect code that tried to allow OVERLAPS with single-element row arguments (Joshua Yanovski) This code never worked correctly, and since the case is neither specified by the SQL standard nor documented, it seemed better to remove it than fix it.", "commit_aliases": ["0aaa42241", "19d66ab05", "a222f7fda", "d7cd6a9d5", "dd378dd1e", "e6f7fe983"], "source_commits": ["0aaa42241"], "source_entry_id": "9.3.4/changes/006", "db_id": "3600c1a08ae43d562a6283a36684f323", "patch_ids": ["39ef885b70b0a4f40d6272244f34d111"], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8", "relations": [{"rule": 2, "type": "equivalent", "target": "25d0c9e174df2ed5a4ce4e6c4a64f14f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}}, {"rule": 2, "type": "equivalent", "target": "4d49f28aaa9e0fc9fdc9a3fb4b2a32e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}}, {"rule": 2, "type": "equivalent", "target": "6cdc75f2494fb4d11adfe7936f37cedf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4d49f28aaa9e0fc9fdc9a3fb4b2a32e4", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}, "url": "/docs/compare/?release=9.2.8#9.2.8-e50f6525a9c174c4", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "25d0c9e174df2ed5a4ce4e6c4a64f14f", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}, "url": "/docs/compare/?release=9.1.13#9.1.13-e50f6525a9c174c4", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "6cdc75f2494fb4d11adfe7936f37cedf", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}, "url": "/docs/compare/?release=9.0.17#9.0.17-e50f6525a9c174c4", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-8c8b1188e4f2b77c", "cves": [], "html": "<p>避免在反解析规则或视图时获取超出 <code>AccessShareLock</code> 的锁（Dean Rasheed）</p>\n<p>这一疏忽导致 <span>pg_dump</span> 对规则中作为 <code>INSERT</code>/<code>UPDATE</code>/<code>DELETE</code> 命令目标的表意外获取了 <code>RowExclusiveLock</code> 锁。虽然通常无害，但它可能干扰试图在这些表上获取例如 <code>ShareLock</code> 的并发事务。</p>", "text": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁（Dean Rasheed） 这一疏忽导致 pg_dump 对规则中作为 INSERT/UPDATE/DELETE 命令目标的表意外获取了 RowExclusiveLock 锁。虽然通常无害，但它可能干扰试图在这些表上获取例如 ShareLock 的并发事务。", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "6180d8870755b3a978adac0409b72ef7499c3b7b5266df8e9e7b7e04fe7d54f7", "section_path": ["变更"], "commit_groups": [["5ec41e345", "7c3187494", "bed1259e5", "f043bddfe", "f3e3f6c5b", "f557826f8"]], "identity_text": "Avoid getting more than AccessShareLock when de-parsing a rule or view (Dean Rasheed) This oversight resulted in pg_dump unexpectedly acquiring RowExclusiveLock locks on tables mentioned as the targets of INSERT/UPDATE/DELETE commands in rules. While usually harmless, that could interfere with concurrent transactions that tried to acquire, for example, ShareLock on those tables.", "commit_aliases": ["5ec41e345", "7c3187494", "bed1259e5", "f043bddfe", "f3e3f6c5b", "f557826f8"], "source_commits": ["f557826f8"], "source_entry_id": "9.3.4/changes/007", "db_id": "46f9989df29abdfe84460fff320c84b0", "patch_ids": ["5704fc83b2312612df60c4b4d6b5edb9"], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b", "relations": [{"rule": 2, "type": "equivalent", "target": "0b29a0dbed21e8daa433b6a8779c08d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}}, {"rule": 2, "type": "equivalent", "target": "c903c369976b55382bd5c1c61bba9c3d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}}, {"rule": 2, "type": "equivalent", "target": "ebec25fac85a8fac4b44284872aa96dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ebec25fac85a8fac4b44284872aa96dd", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}, "url": "/docs/compare/?release=9.2.8#9.2.8-8c8b1188e4f2b77c", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "0b29a0dbed21e8daa433b6a8779c08d4", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}, "url": "/docs/compare/?release=9.1.13#9.1.13-8c8b1188e4f2b77c", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "c903c369976b55382bd5c1c61bba9c3d", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}, "url": "/docs/compare/?release=9.0.17#9.0.17-8c8b1188e4f2b77c", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-14ff848fde9ce51b", "cves": [], "html": "<p>改进规划期间索引端点探测的性能（Tom Lane）</p>\n<p>此变更修复了当索引末尾存在大量尚未提交的行时的显著性能问题，这对于基于顺序赋值（如时间戳或序列生成的标识符）的索引是常见情况。</p>", "text": "改进规划期间索引端点探测的性能（Tom Lane） 此变更修复了当索引末尾存在大量尚未提交的行时的显著性能问题，这对于基于顺序赋值（如时间戳或序列生成的标识符）的索引是常见情况。", "title": "改进规划期间索引端点探测的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "255c88ce6faac4bc498d553ad8d63cecfbc76ecef3b332e5bd5b7fb2cc80fdde", "section_path": ["变更"], "commit_groups": [["00283cae1", "1e0fb6a2c", "3e2db4c80", "4162a55c7", "fccebe421"]], "identity_text": "Improve performance of index endpoint probes during planning (Tom Lane) This change fixes a significant performance problem that occurred when there were many not-yet-committed rows at the end of the index, which is a common situation for indexes on sequentially-assigned values such as timestamps or sequence-generated identifiers.", "commit_aliases": ["00283cae1", "1e0fb6a2c", "3e2db4c80", "4162a55c7", "fccebe421"], "source_commits": ["4162a55c7"], "source_entry_id": "9.3.4/changes/008", "db_id": "e94ab65837887b85ee4b809d1fe99058", "patch_ids": ["26e4ff833e48688e702c6542a7c4f7d1"], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14", "relations": [{"rule": 2, "type": "equivalent", "target": "45120680ee0f8a9477ac87e95f44d708", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}}, {"rule": 2, "type": "equivalent", "target": "4643d7b995f70cb15747faa3494c3839", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}}, {"rule": 2, "type": "equivalent", "target": "73f5853dda77eb4965b15e4f03b233c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}}], "version": "9.3.4", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "73f5853dda77eb4965b15e4f03b233c5", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "改进规划期间索引端点探测的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}, "url": "/docs/compare/?release=9.2.8#9.2.8-14ff848fde9ce51b", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "45120680ee0f8a9477ac87e95f44d708", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "改进规划期间索引端点探测的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}, "url": "/docs/compare/?release=9.1.13#9.1.13-14ff848fde9ce51b", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "4643d7b995f70cb15747faa3494c3839", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "改进规划期间索引端点探测的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}, "url": "/docs/compare/?release=9.0.17#9.0.17-14ff848fde9ce51b", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-5bddcf88eb983d06", "cves": [], "html": "<p>当右侧是稳定表达式时，对 <code><em><code>value</code></em> IN (<em><code>list</code></em>)</code> 和 <code><em><code>value</code></em> <em><code>operator</code></em> ANY (<em><code>array</code></em>)</code> 表达式使用非默认的选择率估计（Tom Lane）</p>", "text": "当右侧是稳定表达式时，对 value IN (list) 和 value operator ANY (array) 表达式使用非默认的选择率估计（Tom Lane）", "title": "当右侧是稳定表达式时，对 value IN (list) 和 value operator ANY (array) 表达式使用非默认的选择率估计", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "b4f22e92e735d52a80c91c9d151062c0f1d200cf7fa940d6c9a457a53752bcc1", "section_path": ["变更"], "commit_groups": [["77585bce0", "e8655a77f"]], "identity_text": "Use non-default selectivity estimates for value IN (list) and value operator ANY (array) expressions when the righthand side is a stable expression (Tom Lane)", "commit_aliases": ["77585bce0", "e8655a77f"], "source_commits": ["e8655a77f"], "source_entry_id": "9.3.4/changes/009", "db_id": "0eed699f2449e262319050de457ac4a7", "patch_ids": ["059b70c487e400c475fd7fe6c3d040b9"], "statement_hash": "e8e587345629673935155b1b749d2e56b4a294a6a9fb6e127d71baa862606665", "relations": [], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-baa889cfe29c6fdb", "cves": [], "html": "<p>在 <code>DROP DATABASE</code> 期间删除正确的逐数据库统计文件（Tomas Vondra）</p>\n<p>此修复防止统计文件空间的永久泄漏。自升级到 <span>PostgreSQL</span> 9.3 以来执行过许多 <code>DROP DATABASE</code> 命令的用户，可能希望检查其统计目录，并删除与任何现有数据库不对应的统计文件。请注意 <code>db_0.stat</code> 不应删除。</p>", "text": "在 DROP DATABASE 期间删除正确的逐数据库统计文件（Tomas Vondra） 此修复防止统计文件空间的永久泄漏。自升级到 PostgreSQL 9.3 以来执行过许多 DROP DATABASE 命令的用户，可能希望检查其统计目录，并删除与任何现有数据库不对应的统计文件。请注意 db_0.stat 不应删除。", "title": "在 DROP DATABASE 期间删除正确的逐数据库统计文件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "df5d57e517772c7bf57b3ff6850e8fae83e9e05779ca8fd9f65c8b39136cf349", "section_path": ["变更"], "commit_groups": [["13ea43ab8", "2b4f2ab33"]], "identity_text": "Remove the correct per-database statistics file during DROP DATABASE (Tomas Vondra) This fix prevents a permanent leak of statistics file space. Users who have done many DROP DATABASE commands since upgrading to PostgreSQL 9.3 may wish to check their statistics directory and delete statistics files that do not correspond to any existing database. Please note that db_0.stat should not be removed.", "commit_aliases": ["13ea43ab8", "2b4f2ab33"], "source_commits": ["13ea43ab8"], "source_entry_id": "9.3.4/changes/010", "db_id": "0319f4036b971fa0f119d597cef8d884", "patch_ids": ["d3395629ab95af8bba4138541e763c8a"], "statement_hash": "2fcab64e7032a3cba9c22769bcac6fa6faeb8407b047f83e8215b1f867feed05", "relations": [], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-310b5d91cf62e460", "cves": [], "html": "<p>修复 <span>walsender</span> 的 ping 逻辑，避免持续负载下不恰当的断开连接（Andres Freund、Heikki Linnakangas）</p>\n<p>如果 <span>walsender</span> 一直忙于发送 WAL 数据，它就不会向客户端发送 ping 消息；但它仍然期待收到 ping 响应，因此一旦<a href=\"/docs/9.3/runtime-config-replication.html#GUC-WAL-SENDER-TIMEOUT\">wal_sender_timeout</a>超时就会断开连接。</p>", "text": "修复 walsender 的 ping 逻辑，避免持续负载下不恰当的断开连接（Andres Freund、Heikki Linnakangas） 如果 walsender 一直忙于发送 WAL 数据，它就不会向客户端发送 ping 消息；但它仍然期待收到 ping 响应，因此一旦wal_sender_timeout超时就会断开连接。", "title": "修复 walsender 的 ping 逻辑，避免持续负载下不恰当的断开连接", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "3bd5a0b887aba1215b0cfdbc4c70f59aeab1d8f09c21ad987232c9357f61f33e", "section_path": ["变更"], "commit_groups": [["94ae6ba74", "dcd1131c8"]], "identity_text": "Fix walsender ping logic to avoid inappropriate disconnects under continuous load (Andres Freund, Heikki Linnakangas) walsender failed to send ping messages to the client if it was constantly busy sending WAL data; but it expected to see ping responses despite that, and would therefore disconnect once guc-wal-sender-timeout elapsed.", "commit_aliases": ["94ae6ba74", "dcd1131c8"], "source_commits": ["dcd1131c8"], "source_entry_id": "9.3.4/changes/011", "db_id": "2b221397e583508a0fd4bd1a97d784b2", "patch_ids": ["39c9693dc4055fdbdbe887cf67e6d538"], "statement_hash": "1a3a4d998a6be9246c757bb5fcafb64f74f8d13602e27bc6276984053c7c8baa", "relations": [], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-eb3d585ca93e68d2", "cves": [], "html": "<p>修复客户端为 <span>pg_receivexlog</span> 时 <span>walsender</span> 无法干净关闭的问题（Fujii Masao）</p>", "text": "修复客户端为 pg_receivexlog 时 walsender 无法干净关闭的问题（Fujii Masao）", "title": "修复客户端为 pg_receivexlog 时 walsender 无法干净关闭的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "4e76bea3cae47f5f3b8b2ac242186ea4da20d86a39f1e6a9127b4feed85818b2", "section_path": ["变更"], "commit_groups": [["385723405", "5c6d9fc4b", "65e8dbb18", "7899aa356"]], "identity_text": "Fix walsender's failure to shut down cleanly when client is pg_receivexlog (Fujii Masao)", "commit_aliases": ["385723405", "5c6d9fc4b", "65e8dbb18", "7899aa356"], "source_commits": ["385723405"], "source_entry_id": "9.3.4/changes/012", "db_id": "6e02dc60536883209a65e9730086816b", "patch_ids": ["3f7c6c207ba11e5833076fedee4f4e91"], "statement_hash": "5e02439f753752522874dcf92a22ee592e2fa3a3ae268e75334238a16a6d767f", "relations": [{"rule": 2, "type": "equivalent", "target": "7f6dfed417c5b4daba4501c6b4ab7076", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e02439f753752522874dcf92a22ee592e2fa3a3ae268e75334238a16a6d767f"}}, {"rule": 2, "type": "equivalent", "target": "caa29f8534137f796aca59b1acc73456", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e02439f753752522874dcf92a22ee592e2fa3a3ae268e75334238a16a6d767f"}}], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "caa29f8534137f796aca59b1acc73456", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "修复客户端为 pg_receivexlog 时 walsender 无法干净关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e02439f753752522874dcf92a22ee592e2fa3a3ae268e75334238a16a6d767f"}, "url": "/docs/compare/?release=9.2.8#9.2.8-eb3d585ca93e68d2", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "7f6dfed417c5b4daba4501c6b4ab7076", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "修复客户端为 pg_receivexlog 时 walsender 无法干净关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e02439f753752522874dcf92a22ee592e2fa3a3ae268e75334238a16a6d767f"}, "url": "/docs/compare/?release=9.1.13#9.1.13-eb3d585ca93e68d2", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.3.4-e603b8d5d0e9a9b2", "cves": [], "html": "<p>在执行将被归档恢复跟随的崩溃恢复时，正确检查 WAL 级别和热备参数（Heikki Linnakangas）</p>", "text": "在执行将被归档恢复跟随的崩溃恢复时，正确检查 WAL 级别和热备参数（Heikki Linnakangas）", "title": "在执行将被归档恢复跟随的崩溃恢复时，正确检查 WAL 级别和热备参数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "003535fb4e409303b869805ae05c811cf31427f98099c271b868e74f88ea851f", "section_path": ["变更"], "commit_groups": [["956685f82", "a5363a696", "e7ec05562"]], "identity_text": "Check WAL level and hot standby parameters correctly when doing crash recovery that will be followed by archive recovery (Heikki Linnakangas)", "commit_aliases": ["956685f82", "a5363a696", "e7ec05562"], "source_commits": ["a5363a696"], "source_entry_id": "9.3.4/changes/013", "db_id": "94279c40965c47875230b6185aed552b", "patch_ids": ["d674472595075c404e36bc04023ea22e"], "statement_hash": "384b18018079f670b1bd814c7101e70739f14785124a2b4560c0371c90fd487b", "relations": [{"rule": 2, "type": "equivalent", "target": "acbaf25cd37e0667a79099d236702536", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "384b18018079f670b1bd814c7101e70739f14785124a2b4560c0371c90fd487b"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "acbaf25cd37e0667a79099d236702536", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "在执行将被归档恢复跟随的崩溃恢复时，正确检查 WAL 级别和热备参数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "384b18018079f670b1bd814c7101e70739f14785124a2b4560c0371c90fd487b"}, "url": "/docs/compare/?release=9.2.8#9.2.8-e603b8d5d0e9a9b2", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}]}, {"id": "9.3.4-07fb6ecd8ac9a708", "cves": [], "html": "<p>修复崩溃后是否可以立即允许热备连接的测试（Heikki Linnakangas）</p>", "text": "修复崩溃后是否可以立即允许热备连接的测试（Heikki Linnakangas）", "title": "修复崩溃后是否可以立即允许热备连接的测试", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "93280034994bc21f29a7d4ea96d94ec9de7aae0a0ee3ba185ece434d18a1d316", "section_path": ["变更"], "commit_groups": [["2cd72ba42", "4521cc850", "7552d3d1a", "931dc26b0", "af246c37c"]], "identity_text": "Fix test to see if hot standby connections can be allowed immediately after a crash (Heikki Linnakangas)", "commit_aliases": ["2cd72ba42", "4521cc850", "7552d3d1a", "931dc26b0", "af246c37c"], "source_commits": ["2cd72ba42"], "source_entry_id": "9.3.4/changes/014", "db_id": "f09f61e60aecd521964080c902f60887", "patch_ids": ["30141e4c7bd6e596a88d5a60814a0064"], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2", "relations": [{"rule": 2, "type": "equivalent", "target": "3a0558657a39c770428dfac219673002", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}}, {"rule": 2, "type": "equivalent", "target": "eae7973698cbeb5b037dbe29082e6ddb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}}, {"rule": 2, "type": "equivalent", "target": "ed9c81f2dfba6fca1609b6ffc9622bfb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}}], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed9c81f2dfba6fca1609b6ffc9622bfb", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "修复崩溃后是否可以立即允许热备连接的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}, "url": "/docs/compare/?release=9.2.8#9.2.8-07fb6ecd8ac9a708", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "3a0558657a39c770428dfac219673002", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "修复崩溃后是否可以立即允许热备连接的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}, "url": "/docs/compare/?release=9.1.13#9.1.13-07fb6ecd8ac9a708", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "eae7973698cbeb5b037dbe29082e6ddb", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "修复崩溃后是否可以立即允许热备连接的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}, "url": "/docs/compare/?release=9.0.17#9.0.17-07fb6ecd8ac9a708", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-e0a218ca32da6bb9", "cves": [], "html": "<p>新增只读参数<a href=\"/docs/9.3/runtime-config-preset.html#GUC-DATA-CHECKSUMS\">data_checksums</a>，用于显示是否启用了页校验和（Heikki Linnakangas）</p>\n<p>没有这个参数，很难确定校验和处理的状态。</p>", "text": "新增只读参数data_checksums，用于显示是否启用了页校验和（Heikki Linnakangas） 没有这个参数，很难确定校验和处理的状态。", "title": "新增只读参数data_checksums，用于显示是否启用了页校验和", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "a40267ff9617cdb3c2445ebcab8764fe7769de5567470ad1b5cde60a20aadd11", "section_path": ["变更"], "commit_groups": [["5a7e75849"]], "identity_text": "Add read-only guc-data-checksums parameter to display whether page checksums are enabled (Heikki Linnakangas) Without this parameter, determining the state of checksum processing was difficult.", "commit_aliases": ["5a7e75849"], "source_commits": ["5a7e75849"], "source_entry_id": "9.3.4/changes/015", "db_id": "433421b566ff68be361b8503c66600e7", "patch_ids": ["6f43ee776362f1fdeecadb628160513a"], "statement_hash": "c39406dfab119ea6685ad32c1cb821b7bfdeed95909a12cf37e9c6788b52d5d7", "relations": [], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-b543a6bf79f6c2a5", "cves": [], "html": "<p>在报告非 <code>ERROR</code> 消息期间防止中断（Tom Lane）</p>\n<p>这可以防止因递归进入 <code>syslog()</code> 而导致的罕见服务器进程冻结，或许还能防止其他相关问题。</p>", "text": "在报告非 ERROR 消息期间防止中断（Tom Lane） 这可以防止因递归进入 syslog() 而导致的罕见服务器进程冻结，或许还能防止其他相关问题。", "title": "在报告非 ERROR 消息期间防止中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "126e77105a98e2c29ca23430194500b9d4285fc2edd80b0a1d4493614fea266f", "section_path": ["变更"], "commit_groups": [["172c53e92", "41bd2cf55", "6c461cb92", "7a289bb6d", "dad55e1e9", "f16ca9755"]], "identity_text": "Prevent interrupts while reporting non-ERROR messages (Tom Lane) This guards against rare server-process freezeups due to recursive entry to syslog(), and perhaps other related problems.", "commit_aliases": ["172c53e92", "41bd2cf55", "6c461cb92", "7a289bb6d", "dad55e1e9", "f16ca9755"], "source_commits": ["41bd2cf55"], "source_entry_id": "9.3.4/changes/016", "db_id": "e37125eb485a3bc708e39cff346bf9f9", "patch_ids": ["3ed73519d80dd23f8679635a0b38f1ba"], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea", "relations": [{"rule": 2, "type": "equivalent", "target": "b2a532f40d20ab015a472b7f4240f466", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}}, {"rule": 2, "type": "equivalent", "target": "b6ae0825bfe86c9a99a561e31b3a258d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}}, {"rule": 2, "type": "equivalent", "target": "d7a43b61f07c1ead1a5f95d5b153e16d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2a532f40d20ab015a472b7f4240f466", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "在报告非 ERROR 消息期间防止中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}, "url": "/docs/compare/?release=9.2.8#9.2.8-b543a6bf79f6c2a5", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "b6ae0825bfe86c9a99a561e31b3a258d", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "在报告非 ERROR 消息期间防止中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}, "url": "/docs/compare/?release=9.1.13#9.1.13-b543a6bf79f6c2a5", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "d7a43b61f07c1ead1a5f95d5b153e16d", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "在报告非 ERROR 消息期间防止中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}, "url": "/docs/compare/?release=9.0.17#9.0.17-b543a6bf79f6c2a5", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-c155e828e981c7e2", "cves": [], "html": "<p>修复 PL/Perl 返回组合结果（包括多 OUT 参数情况）时的内存泄漏（Alex Hunsaker）</p>", "text": "修复 PL/Perl 返回组合结果（包括多 OUT 参数情况）时的内存泄漏（Alex Hunsaker）", "title": "修复 PL/Perl 返回组合结果（包括多 OUT 参数情况）时的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "de180cd387ff74157482f5bb81740c482851398e3293e9c1ea0bd09865780d5f", "section_path": ["变更"], "commit_groups": [["60829079d", "ba5946e86", "bd1154ede", "f84997c7e"]], "identity_text": "Fix memory leak in PL/Perl when returning a composite result, including multiple-OUT-parameter cases (Alex Hunsaker)", "commit_aliases": ["60829079d", "ba5946e86", "bd1154ede", "f84997c7e"], "source_commits": ["60829079d"], "source_entry_id": "9.3.4/changes/017", "db_id": "fbd1b2777211f1ea0f7bfbe7db9eaf6d", "patch_ids": ["326b7e8ef78b886bf3d76c9ead6a9a4e"], "statement_hash": "c532546c3f294465dd5b308b123ae1d0a21529f1db8d412441c99430940506e6", "relations": [{"rule": 2, "type": "equivalent", "target": "6c3f896383eb96970d51b669ab5fa600", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c532546c3f294465dd5b308b123ae1d0a21529f1db8d412441c99430940506e6"}}, {"rule": 2, "type": "equivalent", "target": "9b0e1f3d5014ba4d74dcd812cedaf1de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c532546c3f294465dd5b308b123ae1d0a21529f1db8d412441c99430940506e6"}}], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9b0e1f3d5014ba4d74dcd812cedaf1de", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "修复 PL/Perl 返回组合结果（包括多 OUT 参数情况）时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c532546c3f294465dd5b308b123ae1d0a21529f1db8d412441c99430940506e6"}, "url": "/docs/compare/?release=9.2.8#9.2.8-c155e828e981c7e2", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "6c3f896383eb96970d51b669ab5fa600", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "修复 PL/Perl 返回组合结果（包括多 OUT 参数情况）时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c532546c3f294465dd5b308b123ae1d0a21529f1db8d412441c99430940506e6"}, "url": "/docs/compare/?release=9.1.13#9.1.13-c155e828e981c7e2", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.3.4-39190d7a9e79e25d", "cves": [], "html": "<p>修复 <code>\\copy</code> 从带外数据读取期间 <span>psql</span> 脚本行号跟踪的问题（Kumar Rajeev Rastogi、Amit Khandekar）</p>\n<p>即使数据并非来自脚本文件，<code>\\copy ... from</code> 也会为每个数据行递增脚本文件行号。这一失误导致同一脚本文件中稍后发生的任何错误报告了错误的行号。</p>", "text": "修复 \\copy 从带外数据读取期间 psql 脚本行号跟踪的问题（Kumar Rajeev Rastogi、Amit Khandekar） 即使数据并非来自脚本文件，\\copy ... from 也会为每个数据行递增脚本文件行号。这一失误导致同一脚本文件中稍后发生的任何错误报告了错误的行号。", "title": "修复 \\copy 从带外数据读取期间 psql 脚本行号跟踪的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "d6670f3489ebbae0582a5102a1d35f5e636ae1c30c8d9456097fff22dc8cb408", "section_path": ["变更"], "commit_groups": [["b315b767f", "e85a5ffba", "f64f4c370"]], "identity_text": "Fix tracking of psql script line numbers during \\copy from out-of-line data (Kumar Rajeev Rastogi, Amit Khandekar) \\copy ... from incremented the script file line number for each data line, even if the data was not coming from the script file. This mistake resulted in wrong line numbers being reported for any errors occurring later in the same script file.", "commit_aliases": ["b315b767f", "e85a5ffba", "f64f4c370"], "source_commits": ["f64f4c370"], "source_entry_id": "9.3.4/changes/018", "db_id": "51a1f8bd6cb248ae766504dc9ae819d2", "patch_ids": ["3def7fdabc0cbae8e7d5bc5ba89ab6de"], "statement_hash": "65c5d7ec657da2cdd20d9951ce082266df3324a745eb8bb63d362a2f793d0ad4", "relations": [{"rule": 2, "type": "equivalent", "target": "dd434bc6a956bb5e5235a626d1f9861e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "65c5d7ec657da2cdd20d9951ce082266df3324a745eb8bb63d362a2f793d0ad4"}}], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "dd434bc6a956bb5e5235a626d1f9861e", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "修复 \\copy 从带外数据读取期间 psql 脚本行号跟踪的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "65c5d7ec657da2cdd20d9951ce082266df3324a745eb8bb63d362a2f793d0ad4"}, "url": "/docs/compare/?release=9.2.8#9.2.8-39190d7a9e79e25d", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}]}, {"id": "9.3.4-cc73b403748e2552", "cves": [], "html": "<p>修复 <span>contrib/postgres_fdw</span> 以正确处理多个连接条件（Tom Lane）</p>\n<p>这一疏忽可能导致把 <code>WHERE</code> 子句发送到远程服务器执行，即使并不确定这些子句在远程服务器上具有相同的语义（例如使用非内建操作符的子句）。查询可能照样成功，但也可能因远程服务器报错而失败，更糟的是可能静默地给出错误答案。</p>", "text": "修复 contrib/postgres_fdw 以正确处理多个连接条件（Tom Lane） 这一疏忽可能导致把 WHERE 子句发送到远程服务器执行，即使并不确定这些子句在远程服务器上具有相同的语义（例如使用非内建操作符的子句）。查询可能照样成功，但也可能因远程服务器报错而失败，更糟的是可能静默地给出错误答案。", "title": "修复 contrib/postgres_fdw 以正确处理多个连接条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "72829b408e8ebc5f8d4a875c997db301b2b834f9c11c1e4533650b3a073b5de5", "section_path": ["变更"], "commit_groups": [["73f0483fd", "83204e100"]], "identity_text": "Fix contrib/postgres_fdw to handle multiple join conditions properly (Tom Lane) This oversight could result in sending WHERE clauses to the remote server for execution even though the clauses are not known to have the same semantics on the remote server (for example, clauses that use non-built-in operators). The query might succeed anyway, but it could also fail with errors from the remote server, or worse give silently wrong answers.", "commit_aliases": ["73f0483fd", "83204e100"], "source_commits": ["73f0483fd"], "source_entry_id": "9.3.4/changes/019", "db_id": "17860d182f11710efb326bd4903f033d", "patch_ids": ["503394a141d33470fc02b1e6205bb886"], "statement_hash": "5e43e0e85ba2d888b43047dcdb6809b4a8a0bc114b5098f0ebc415a616fdd9f9", "relations": [], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-e90f7b7a4f05d0c1", "cves": [], "html": "<p>防止在较新的 Windows 版本上间歇性出现 <span>“<span>could not reserve shared memory region</span>”</span> 失败（MauMau）</p>", "text": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败（MauMau）", "title": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "dba49d71c8b170d85c6435433656855080b430113780e807168b05e59a1dc003", "section_path": ["变更"], "commit_groups": [["062deb313", "665515539", "7f3e17b48", "b88ecb002", "fae12f331"]], "identity_text": "Prevent intermittent could not reserve shared memory region failures on recent Windows versions (MauMau)", "commit_aliases": ["062deb313", "665515539", "7f3e17b48", "b88ecb002", "fae12f331"], "source_commits": ["b88ecb002"], "source_entry_id": "9.3.4/changes/020", "db_id": "141d967ba42053ca6f0bf8116feddfe4", "patch_ids": ["3494e595b906aa87960f5aec073aec32"], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5", "relations": [{"rule": 2, "type": "equivalent", "target": "72a43aad162b172fd4809aa2c1249b57", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}}, {"rule": 2, "type": "equivalent", "target": "8aacafd98facca2ed80dcc99593cd278", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}}, {"rule": 2, "type": "equivalent", "target": "a059ecde9a0ecfc5aa530fc54a8ec8d8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "72a43aad162b172fd4809aa2c1249b57", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "防止在较新的 Windows 版本上间歇性出现“could not reserve shared memory region”失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}, "url": "/docs/compare/?release=9.2.8#9.2.8-f390f395a1a265d4", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "a059ecde9a0ecfc5aa530fc54a8ec8d8", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}, "url": "/docs/compare/?release=9.1.13#9.1.13-e90f7b7a4f05d0c1", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "8aacafd98facca2ed80dcc99593cd278", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}, "url": "/docs/compare/?release=9.0.17#9.0.17-e90f7b7a4f05d0c1", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-ca121ccaa20b87e4", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2014a，以反映斐济和土耳其的夏令时法规变更，以及以色列和乌克兰的历史变更。</p>", "text": "把时区数据文件更新为 tzdata 版本 2014a，以反映斐济和土耳其的夏令时法规变更，以及以色列和乌克兰的历史变更。", "title": "把时区数据文件更新为 tzdata 版本 2014a，以反映斐济和土耳其的夏令时法规变更，以及以色列和乌克兰的历史变更。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "e2885b45314d71f5a0ff22d4770cf67718168ae7ad6d5950ace8674eb6a128a1", "section_path": ["变更"], "commit_groups": [["0033f5324", "2df1bf21c", "6e6c2c2e1", "aba7f5677", "b5de16997", "f2063b379"]], "identity_text": "Update time zone data files to tzdata release 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine.", "commit_aliases": ["0033f5324", "2df1bf21c", "6e6c2c2e1", "aba7f5677", "b5de16997", "f2063b379"], "source_commits": ["b5de16997"], "source_entry_id": "9.3.4/changes/021", "db_id": "0930bbc266fa155f5e6dcc28ee828459", "patch_ids": ["8e12bac2acf3e6de424e9a8e488940fc"], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf", "relations": [{"rule": 2, "type": "equivalent", "target": "0fea802a76e89c51a7cfd193ad63865b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}}, {"rule": 2, "type": "equivalent", "target": "41f0ac1de3b5c64665deb1eddcf7c171", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}}, {"rule": 2, "type": "equivalent", "target": "7f51868f632146553caa1a2bea66828f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "41f0ac1de3b5c64665deb1eddcf7c171", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}, "url": "/docs/compare/?release=9.2.8#9.2.8-dfc1052b408d215b", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "7f51868f632146553caa1a2bea66828f", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}, "url": "/docs/compare/?release=9.1.13#9.1.13-dfc1052b408d215b", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "0fea802a76e89c51a7cfd193ad63865b", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}, "url": "/docs/compare/?release=9.0.17#9.0.17-dfc1052b408d215b", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}]}, {"date": "2014-02-20", "build": "9.3.3", "major": "9.3", "minor": 3, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.3", "eol_date": "2018-11-08", "date_text": "2014-02-20", "supported": false, "manual_url": "/docs/9.3/release-9-3-3.html", "source_url": "/docs/release/9.3.3/", "entry_count": 71, "placeholder": false, "content_hash": "a9b07ead63ed242db533001b03b822b955a3d46ba1c9797fd3db0007523f3dbd", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 71, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，本版本纠正的若干问题可能已经导致外键约束损坏；也就是说，现在可能存在在被引用表中没有匹配行的引用行。在安装此更新后，重新检查这类约束可能是值得的。最简单的方法是删除并重建每个可疑约束；但这需要对两个表都加排他锁，因此在生产数据库中不太可能被接受。另一种办法是对两个表手工执行连接查询来查找不匹配的行。</p>\n<p>还要注意：复制备库服务器必须先于其主库服务器升级。</p>\n<p>不过，如果你是从早于 9.3.2 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-2.html\" title=\"E.24. 版本 9.3.2\">第 E.24 节</a>。</p>", "compatibility_count": 0, "label": "9.3.3", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4605, "support_days": -2883, "entries": [{"id": "9.3.3-46d40736d76fe1e1", "cves": ["CVE-2014-0060"], "html": "<p>加固 <code>GRANT ... WITH ADMIN OPTION</code> 的限制（Noah Misch）</p>\n<p>不带 <code>ADMIN OPTION</code> 授予角色本应阻止被授予者向该角色添加或移除成员，但这一限制很容易通过先执行 <code>SET ROLE</code> 绕过。其安全影响主要在于角色成员可以撤销其他人的访问权限，这违背了授权者的意愿。未经批准添加角色成员的影响相对较小，因为不配合的角色成员本来就可以通过创建视图或 <code>SECURITY DEFINER</code> 函数把自己的大部分权限提供给他人。（CVE-2014-0060）</p>", "text": "加固 GRANT ... WITH ADMIN OPTION 的限制（Noah Misch） 不带 ADMIN OPTION 授予角色本应阻止被授予者向该角色添加或移除成员，但这一限制很容易通过先执行 SET ROLE 绕过。其安全影响主要在于角色成员可以撤销其他人的访问权限，这违背了授权者的意愿。未经批准添加角色成员的影响相对较小，因为不配合的角色成员本来就可以通过创建视图或 SECURITY DEFINER 函数把自己的大部分权限提供给他人。（CVE-2014-0060）", "title": "加固 GRANT ... WITH ADMIN OPTION 的限制", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "6e37955c412d5e32a5769e3aad865f9e898e71305a81acc6327876eb0bdd1298", "section_path": ["变更"], "commit_groups": [["15a8f97b9", "475a1fbc4", "5d320a16c", "789063697", "fea164a72", "ff35425c8"]], "identity_text": "Shore up GRANT ... WITH ADMIN OPTION restrictions (Noah Misch) Granting a role without ADMIN OPTION is supposed to prevent the grantee from adding or removing members from the granted role, but this restriction was easily bypassed by doing SET ROLE first. The security impact is mostly that a role member can revoke the access of others, contrary to the wishes of his grantor. Unapproved role member additions are a lesser concern, since an uncooperative role member could provide most of his rights to others anyway by creating views or SECURITY DEFINER functions. (CVE-2014-0060)", "commit_aliases": ["15a8f97b9", "475a1fbc4", "5d320a16c", "789063697", "fea164a72", "ff35425c8"], "source_commits": ["475a1fbc4"], "source_entry_id": "9.3.3/changes/001", "db_id": "a0af19377a8f08e1c41168da3bfc8ec2", "patch_ids": ["600f4cf2230c1ecaa25a3fcda23311d1"], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c", "relations": [{"rule": 2, "type": "equivalent", "target": "39a7228bd3692113e40d80fa360dd96f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}}, {"rule": 2, "type": "equivalent", "target": "8fed47c81bc13e310ce60e63b82d3369", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}}, {"rule": 2, "type": "equivalent", "target": "eb9eca640834341acf49af39f8eb5e82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}}], "version": "9.3.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "eb9eca640834341acf49af39f8eb5e82", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "加固 GRANT ... WITH ADMIN OPTION 的限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}, "url": "/docs/compare/?release=9.2.7#9.2.7-46d40736d76fe1e1", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "8fed47c81bc13e310ce60e63b82d3369", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "加固 GRANT ... WITH ADMIN OPTION 的限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}, "url": "/docs/compare/?release=9.1.12#9.1.12-46d40736d76fe1e1", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "39a7228bd3692113e40d80fa360dd96f", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "加固 GRANT ... WITH ADMIN OPTION 的限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7bebec02491fcbdc7bad593125aae51e83540358514e357ec791b9f99f7db0c"}, "url": "/docs/compare/?release=9.0.16#9.0.16-46d40736d76fe1e1", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-cf0ad82d2d3b3b4e", "cves": ["CVE-2014-0061"], "html": "<p>防止通过手工调用 PL 验证器函数进行权限提升（Andres Freund）</p>\n<p>PL 验证器函数的主要角色是在 <code>CREATE FUNCTION</code> 期间被隐式调用，但它们也是普通 SQL 函数，用户可以显式调用。对实际以其他语言编写的函数调用验证器此前未被检查，可能被用于权限提升。修复方法是在每个验证器函数中加入对权限检查函数的调用。非核心过程语言如果自带验证器函数，也需要做同样的修改。（CVE-2014-0061）</p>", "text": "防止通过手工调用 PL 验证器函数进行权限提升（Andres Freund） PL 验证器函数的主要角色是在 CREATE FUNCTION 期间被隐式调用，但它们也是普通 SQL 函数，用户可以显式调用。对实际以其他语言编写的函数调用验证器此前未被检查，可能被用于权限提升。修复方法是在每个验证器函数中加入对权限检查函数的调用。非核心过程语言如果自带验证器函数，也需要做同样的修改。（CVE-2014-0061）", "title": "防止通过手工调用 PL 验证器函数进行权限提升", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "996f7829e9a5f62bf0f9cd98987d27d06cbdef4f3f01686ac09857f1a68851f4", "section_path": ["变更"], "commit_groups": [["1d701d28a", "23b5a85e6", "537cbd35c", "823b9dc25", "c0ac4c75f", "fc4a04a3c"]], "identity_text": "Prevent privilege escalation via manual calls to PL validator functions (Andres Freund) The primary role of PL validator functions is to be called implicitly during CREATE FUNCTION, but they are also normal SQL functions that a user can call explicitly. Calling a validator on a function actually written in some other language was not checked for and could be exploited for privilege-escalation purposes. The fix involves adding a call to a privilege-checking function in each validator function. Non-core procedural languages will also need to make this change to their own validator functions, if any. (CVE-2014-0061)", "commit_aliases": ["1d701d28a", "23b5a85e6", "537cbd35c", "823b9dc25", "c0ac4c75f", "fc4a04a3c"], "source_commits": ["fc4a04a3c"], "source_entry_id": "9.3.3/changes/002", "db_id": "95e3f5c8f5cd2edeccb1fb4455fee2da", "patch_ids": ["c3ab414af7489aed3400d1ba66af2d8e"], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db", "relations": [{"rule": 2, "type": "equivalent", "target": "02c1da92f538c5c6ea8ef875af38da59", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}}, {"rule": 2, "type": "equivalent", "target": "a9eb85599c0056790df203d46916a55a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}}, {"rule": 2, "type": "equivalent", "target": "fae61d73481179b6c74904102e9e2d86", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}}], "version": "9.3.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "fae61d73481179b6c74904102e9e2d86", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "防止通过手工调用 PL 验证器函数进行权限提升", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}, "url": "/docs/compare/?release=9.2.7#9.2.7-cf0ad82d2d3b3b4e", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "02c1da92f538c5c6ea8ef875af38da59", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "防止通过手工调用 PL 验证器函数进行权限提升", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}, "url": "/docs/compare/?release=9.1.12#9.1.12-cf0ad82d2d3b3b4e", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "a9eb85599c0056790df203d46916a55a", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "防止通过手工调用 PL 验证器函数进行权限提升", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0915aa97bb0ab1d084da3321757774f67d891a07994d322682ceafe994ccb8db"}, "url": "/docs/compare/?release=9.0.16#9.0.16-cf0ad82d2d3b3b4e", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-76a21e41869b218b", "cves": ["CVE-2014-0062"], "html": "<p>避免在表和索引 DDL 期间进行多次名称查找（Robert Haas、Andres Freund）</p>\n<p>如果由于并发活动导致名称查找得出不同结论，我们可能会对不同的表执行 DDL 的不同部分。至少在 <code>CREATE INDEX</code> 的情况下，这可被用来让权限检查针对与索引创建不同的表执行，从而造成权限提升攻击。（CVE-2014-0062）</p>", "text": "避免在表和索引 DDL 期间进行多次名称查找（Robert Haas、Andres Freund） 如果由于并发活动导致名称查找得出不同结论，我们可能会对不同的表执行 DDL 的不同部分。至少在 CREATE INDEX 的情况下，这可被用来让权限检查针对与索引创建不同的表执行，从而造成权限提升攻击。（CVE-2014-0062）", "title": "避免在表和索引 DDL 期间进行多次名称查找", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "93deea8759038475a1db343860970300dcde0b0cc3a3d8000fbd41089dda6c4a", "section_path": ["变更"], "commit_groups": [["43d4e965e", "5f173040e", "820ab11fb", "b5c574399", "e1e0a4d79", "e46476133"]], "identity_text": "Avoid multiple name lookups during table and index DDL (Robert Haas, Andres Freund) If the name lookups come to different conclusions due to concurrent activity, we might perform some parts of the DDL on a different table than other parts. At least in the case of CREATE INDEX, this can be used to cause the permissions checks to be performed against a different table than the index creation, allowing for a privilege escalation attack. (CVE-2014-0062)", "commit_aliases": ["43d4e965e", "5f173040e", "820ab11fb", "b5c574399", "e1e0a4d79", "e46476133"], "source_commits": ["e1e0a4d79"], "source_entry_id": "9.3.3/changes/003", "db_id": "2c79866e4eaa6e21ca64fcf166ffbe34", "patch_ids": ["dbe8b2a09dc6e83c1c93615907448293"], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70", "relations": [{"rule": 2, "type": "equivalent", "target": "86482abe5b27ee8f0d69a73a4dbcf5b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}}, {"rule": 2, "type": "equivalent", "target": "8e317c93dde468d19fb18a404e9d1206", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}}, {"rule": 2, "type": "equivalent", "target": "f475983d0e117e81b5004e5573ac47a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}}], "version": "9.3.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "86482abe5b27ee8f0d69a73a4dbcf5b8", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "避免在表和索引 DDL 期间进行多次名称查找", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}, "url": "/docs/compare/?release=9.2.7#9.2.7-76a21e41869b218b", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "8e317c93dde468d19fb18a404e9d1206", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "避免在表和索引 DDL 期间进行多次名称查找", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}, "url": "/docs/compare/?release=9.1.12#9.1.12-76a21e41869b218b", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "f475983d0e117e81b5004e5573ac47a6", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "避免在表和索引 DDL 期间进行多次名称查找", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfc601d12769c86b1920b43ba7b4e414f01329425c25d55c38671a325df50f70"}, "url": "/docs/compare/?release=9.0.16#9.0.16-76a21e41869b218b", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-0b66a90264406c0c", "cves": ["CVE-2014-0063"], "html": "<p>防止长日期时间字符串造成缓冲区越界（Noah Misch）</p>\n<p><code>MAXDATELEN</code> 常量对于 <code>interval</code> 类型可能的最长值来说太小，导致 <code>interval_out()</code> 中可能出现缓冲区越界。虽然日期时间输入函数在避免缓冲区越界方面更谨慎，但该限制仍短到导致它们拒绝某些有效输入，例如包含很长时区名的输入。<span>ecpg</span> 库存在这些漏洞以及它自身的一些漏洞。（CVE-2014-0063）</p>", "text": "防止长日期时间字符串造成缓冲区越界（Noah Misch） MAXDATELEN 常量对于 interval 类型可能的最长值来说太小，导致 interval_out() 中可能出现缓冲区越界。虽然日期时间输入函数在避免缓冲区越界方面更谨慎，但该限制仍短到导致它们拒绝某些有效输入，例如包含很长时区名的输入。ecpg 库存在这些漏洞以及它自身的一些漏洞。（CVE-2014-0063）", "title": "防止长日期时间字符串造成缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "46e066b9e04ac05d8079309086ea40e096090505f44066b6a7b05ddead083213", "section_path": ["变更"], "commit_groups": [["4318daecc", "6a10e57b0", "b9c3bb1b3", "d0ed1a6c0", "e4a4fa223", "f416622be"]], "identity_text": "Prevent buffer overrun with long datetime strings (Noah Misch) The MAXDATELEN constant was too small for the longest possible value of type interval, allowing a buffer overrun in interval_out(). Although the datetime input functions were more careful about avoiding buffer overrun, the limit was short enough to cause them to reject some valid inputs, such as input containing a very long timezone name. The ecpg library contained these vulnerabilities along with some of its own. (CVE-2014-0063)", "commit_aliases": ["4318daecc", "6a10e57b0", "b9c3bb1b3", "d0ed1a6c0", "e4a4fa223", "f416622be"], "source_commits": ["e4a4fa223"], "source_entry_id": "9.3.3/changes/004", "db_id": "eaa396302537066d7d33df5fd483d229", "patch_ids": ["28dc88a032cb8ff982b84a997e239466"], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3", "relations": [{"rule": 2, "type": "equivalent", "target": "8e353e29b7ab130639fce6533f56dea2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}}, {"rule": 2, "type": "equivalent", "target": "8f6a29f411be2e570d2f9e488585081d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}}, {"rule": 2, "type": "equivalent", "target": "b733e717191113378d5efd83b0b4f2ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}}], "version": "9.3.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "b733e717191113378d5efd83b0b4f2ad", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "防止长日期时间字符串造成缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}, "url": "/docs/compare/?release=9.2.7#9.2.7-0b66a90264406c0c", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "8f6a29f411be2e570d2f9e488585081d", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "防止长日期时间字符串造成缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}, "url": "/docs/compare/?release=9.1.12#9.1.12-0b66a90264406c0c", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "8e353e29b7ab130639fce6533f56dea2", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "防止长日期时间字符串造成缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a7cb2b574435cbd471861ce714ff5285890bf353d7c97361c2642326595a07a3"}, "url": "/docs/compare/?release=9.0.16#9.0.16-0b66a90264406c0c", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-a0252db5e81ebdfb", "cves": ["CVE-2014-0064"], "html": "<p>防止大小计算中的整数溢出导致缓冲区越界（Noah Misch、Heikki Linnakangas）</p>\n<p>若干函数（大多是类型输入函数）在计算分配大小时未检查溢出。如果发生溢出，就会分配过小的缓冲区并被写越界。（CVE-2014-0064）</p>", "text": "防止大小计算中的整数溢出导致缓冲区越界（Noah Misch、Heikki Linnakangas） 若干函数（大多是类型输入函数）在计算分配大小时未检查溢出。如果发生溢出，就会分配过小的缓冲区并被写越界。（CVE-2014-0064）", "title": "防止大小计算中的整数溢出导致缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "041d07edca033259e1a23c7631e7e09f3016916b36560523c331786a069df5aa", "section_path": ["变更"], "commit_groups": [["0b7026d96", "12bbce15d", "2c3203e18", "31400a673", "7a362a176", "98be8a6ea"]], "identity_text": "Prevent buffer overrun due to integer overflow in size calculations (Noah Misch, Heikki Linnakangas) Several functions, mostly type input functions, calculated an allocation size without checking for overflow. If overflow did occur, a too-small buffer would be allocated and then written past. (CVE-2014-0064)", "commit_aliases": ["0b7026d96", "12bbce15d", "2c3203e18", "31400a673", "7a362a176", "98be8a6ea"], "source_commits": ["7a362a176"], "source_entry_id": "9.3.3/changes/005", "db_id": "b037db4e2b1ee88e92ccf73cddee5112", "patch_ids": ["673abf14fef49521b271fb1d0b558420"], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac", "relations": [{"rule": 2, "type": "equivalent", "target": "524ce52e603c56d2b6d29ce8bd8554ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}}, {"rule": 2, "type": "equivalent", "target": "ab9fc7f01fa6040e520b53dbe02bf539", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}}, {"rule": 2, "type": "equivalent", "target": "b61e618ef531b83260a118f3e710803e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}}], "version": "9.3.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "524ce52e603c56d2b6d29ce8bd8554ce", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "防止大小计算中的整数溢出导致缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}, "url": "/docs/compare/?release=9.2.7#9.2.7-a0252db5e81ebdfb", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "ab9fc7f01fa6040e520b53dbe02bf539", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "防止大小计算中的整数溢出导致缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}, "url": "/docs/compare/?release=9.1.12#9.1.12-a0252db5e81ebdfb", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "b61e618ef531b83260a118f3e710803e", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "防止大小计算中的整数溢出导致缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5bd006f6697a46f251e3d72483969d0651f8a27b0d7a508b704923f5afec00ac"}, "url": "/docs/compare/?release=9.0.16#9.0.16-a0252db5e81ebdfb", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-c669fac45788e34c", "cves": ["CVE-2014-0065"], "html": "<p>防止固定大小缓冲区越界（Peter Eisentraut、Jozef Mlich）</p>\n<p>使用 <code>strlcpy()</code> 及相关函数，以明确保证固定大小缓冲区不会被越界写入。与前面几项不同，这些情况是否真的构成现实问题尚不清楚，因为在大多数情况下，输入字符串的大小似乎已有先前约束。尽管如此，消除所有此类 Coverity 警告似乎是明智的。（CVE-2014-0065）</p>", "text": "防止固定大小缓冲区越界（Peter Eisentraut、Jozef Mlich） 使用 strlcpy() 及相关函数，以明确保证固定大小缓冲区不会被越界写入。与前面几项不同，这些情况是否真的构成现实问题尚不清楚，因为在大多数情况下，输入字符串的大小似乎已有先前约束。尽管如此，消除所有此类 Coverity 警告似乎是明智的。（CVE-2014-0065）", "title": "防止固定大小缓冲区越界", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "e4c083c1cde1324b0850c78b9c91e57d006fa1fd7ba4f6c13bece0e66b93ace1", "section_path": ["变更"], "commit_groups": [["01824385a", "45bf2404a", "4741e3160", "655b665f7", "69d2bc14a", "e3208fec3"]], "identity_text": "Prevent overruns of fixed-size buffers (Peter Eisentraut, Jozef Mlich) Use strlcpy() and related functions to provide a clear guarantee that fixed-size buffers are not overrun. Unlike the preceding items, it is unclear whether these cases really represent live issues, since in most cases there appear to be previous constraints on the size of the input string. Nonetheless it seems prudent to silence all Coverity warnings of this type. (CVE-2014-0065)", "commit_aliases": ["01824385a", "45bf2404a", "4741e3160", "655b665f7", "69d2bc14a", "e3208fec3"], "source_commits": ["e3208fec3"], "source_entry_id": "9.3.3/changes/006", "db_id": "36614e60ac7ac982d1f4efe65d9c4df8", "patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb", "relations": [{"rule": 2, "type": "equivalent", "target": "1ed5105b349baf71c428a98857eb15cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}}, {"rule": 2, "type": "equivalent", "target": "63a3d5232781e5fb91c3705fff0779a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}}, {"rule": 2, "type": "related", "target": "783d9c90c3867e10e3a26c550f9567a2", "evidence": {"same_day": true, "patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"], "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}}, {"rule": 2, "type": "equivalent", "target": "9cd052fae9c1b35526531bf64b222501", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}}], "version": "9.3.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "783d9c90c3867e10e3a26c550f9567a2", "kind": "related", "version": "9.3.3", "label": "9.3.3", "title": "避免在 crypt() 返回 NULL 时崩溃", "evidence": {"same_day": true, "patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"], "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}, "url": "/docs/compare/?release=9.3.3#9.3.3-14f78cee37d06ff3", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "1ed5105b349baf71c428a98857eb15cf", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "防止固定大小缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}, "url": "/docs/compare/?release=9.2.7#9.2.7-c669fac45788e34c", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "9cd052fae9c1b35526531bf64b222501", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "防止固定大小缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}, "url": "/docs/compare/?release=9.1.12#9.1.12-c669fac45788e34c", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "63a3d5232781e5fb91c3705fff0779a6", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "防止固定大小缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f6d25b5d79f5c83220401d8459a1934e47de7b1c50441d0aa7cd5f6d20afbcb", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}, "url": "/docs/compare/?release=9.0.16#9.0.16-c669fac45788e34c", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-14f78cee37d06ff3", "cves": ["CVE-2014-0066"], "html": "<p>避免在 <code>crypt()</code> 返回 NULL 时崩溃（Honza Horak、Bruce Momjian）</p>\n<p><code>crypt()</code> 可能返回 NULL 的场景相对较少，但如果发生，<code>contrib/chkpass</code> 就会崩溃。一个可能出问题的实际情况是 <span>libc</span> 被配置为拒绝执行未获批准的哈希算法（例如 <span>“<span>FIPS 模式</span>”</span>）。（CVE-2014-0066）</p>", "text": "避免在 crypt() 返回 NULL 时崩溃（Honza Horak、Bruce Momjian） crypt() 可能返回 NULL 的场景相对较少，但如果发生，contrib/chkpass 就会崩溃。一个可能出问题的实际情况是 libc 被配置为拒绝执行未获批准的哈希算法（例如 “FIPS 模式”）。（CVE-2014-0066）", "title": "避免在 crypt() 返回 NULL 时崩溃", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "1ae9fdb6c269b01e423effeef4d721601005e95d248f194e47608d2d3be3c387", "section_path": ["变更"], "commit_groups": [["01824385a", "45bf2404a", "4741e3160", "655b665f7", "69d2bc14a", "e3208fec3"]], "identity_text": "Avoid crashing if crypt() returns NULL (Honza Horak, Bruce Momjian) There are relatively few scenarios in which crypt() could return NULL, but contrib/chkpass would crash if it did. One practical case in which this could be an issue is if libc is configured to refuse to execute unapproved hashing algorithms (e.g., FIPS mode). (CVE-2014-0066)", "commit_aliases": ["01824385a", "45bf2404a", "4741e3160", "655b665f7", "69d2bc14a", "e3208fec3"], "source_commits": ["e3208fec3"], "source_entry_id": "9.3.3/changes/007", "db_id": "783d9c90c3867e10e3a26c550f9567a2", "patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af", "relations": [{"rule": 2, "type": "related", "target": "36614e60ac7ac982d1f4efe65d9c4df8", "evidence": {"same_day": true, "patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"], "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}}, {"rule": 2, "type": "equivalent", "target": "47f79e882acc8d75d3b6d00f09266c32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}}, {"rule": 2, "type": "equivalent", "target": "83006328c688bbe0cdd39e4c22f5f6db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}}, {"rule": 2, "type": "equivalent", "target": "eb6f4ecb26305d5a5de1728921f0e47e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}}], "version": "9.3.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "36614e60ac7ac982d1f4efe65d9c4df8", "kind": "related", "version": "9.3.3", "label": "9.3.3", "title": "防止固定大小缓冲区越界", "evidence": {"same_day": true, "patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"], "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}, "url": "/docs/compare/?release=9.3.3#9.3.3-c669fac45788e34c", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5"}, {"db_id": "eb6f4ecb26305d5a5de1728921f0e47e", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "避免在 crypt() 返回 NULL 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}, "url": "/docs/compare/?release=9.2.7#9.2.7-14f78cee37d06ff3", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "83006328c688bbe0cdd39e4c22f5f6db", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "避免在 crypt() 返回 NULL 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}, "url": "/docs/compare/?release=9.1.12#9.1.12-14f78cee37d06ff3", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "47f79e882acc8d75d3b6d00f09266c32", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "避免在 crypt() 返回 NULL 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "016fe2a828ba5eef1ed7ce7066ca9088596c6b2b74af74ff6dc0744d3d9b02af", "ambiguous_patch_ids": ["4142c4a7e713d31966f7837b92fb2b52"]}, "url": "/docs/compare/?release=9.0.16#9.0.16-14f78cee37d06ff3", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-10731528cb521bec", "cves": ["CVE-2014-0067"], "html": "<p>在回归测试说明中记录 <code>make check</code> 的风险（Noah Misch、Tom Lane）</p>\n<p>由于 <code>make check</code> 启动的临时服务器使用 <span>“<span>trust</span>”</span> 认证，同一台机器上的其他用户可以以数据库超级用户身份连接它，进而可能利用启动测试的操作系统用户的权限。未来版本可能会在测试流程中加入防止此风险的变更，但需要先进行一些公开讨论。因此目前只是警告：当同一台机器上存在不受信任的用户时，不要使用 <code>make check</code>。（CVE-2014-0067）</p>", "text": "在回归测试说明中记录 make check 的风险（Noah Misch、Tom Lane） 由于 make check 启动的临时服务器使用 “trust” 认证，同一台机器上的其他用户可以以数据库超级用户身份连接它，进而可能利用启动测试的操作系统用户的权限。未来版本可能会在测试流程中加入防止此风险的变更，但需要先进行一些公开讨论。因此目前只是警告：当同一台机器上存在不受信任的用户时，不要使用 make check。（CVE-2014-0067）", "title": "在回归测试说明中记录 make check 的风险", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "58f7fde8d209eeeb6dcff660292b11b60b6b5e0db58ad59490be114f3d497835", "section_path": ["变更"], "commit_groups": [["1ec5988f3", "369c229d2", "6ef325429", "800a3744b", "f58663ab1", "ff3d533e5"]], "identity_text": "Document risks of make check in the regression testing instructions (Noah Misch, Tom Lane) Since the temporary server started by make check uses trust authentication, another user on the same machine could connect to it as database superuser, and then potentially exploit the privileges of the operating-system user who started the tests. A future release will probably incorporate changes in the testing procedure to prevent this risk, but some public discussion is needed first. So for the moment, just warn people against using make check when there are untrusted users on the same machine. (CVE-2014-0067)", "commit_aliases": ["1ec5988f3", "369c229d2", "6ef325429", "800a3744b", "f58663ab1", "ff3d533e5"], "source_commits": ["1ec5988f3"], "source_entry_id": "9.3.3/changes/008", "db_id": "1fc7ca6d4d85f594eed0141b6b08fef5", "patch_ids": ["fe6e333c5c753f1ac3da4fc0df41c469"], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342", "relations": [{"rule": 2, "type": "equivalent", "target": "1de82313af07dfbea3232d47d8ab78b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}}, {"rule": 2, "type": "equivalent", "target": "8152bce71f31ab46c9501acebe8824b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}}, {"rule": 2, "type": "equivalent", "target": "d832db97db43a8964c530c6f3561fa82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}}], "version": "9.3.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "8152bce71f31ab46c9501acebe8824b1", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在回归测试说明中记录 make check 的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}, "url": "/docs/compare/?release=9.2.7#9.2.7-10731528cb521bec", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "d832db97db43a8964c530c6f3561fa82", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在回归测试说明中记录 make check 的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}, "url": "/docs/compare/?release=9.1.12#9.1.12-10731528cb521bec", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "1de82313af07dfbea3232d47d8ab78b1", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "在回归测试说明中记录 make check 的风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b1600cf50fe189145e8ef8dcc67fae6e6908511e41948d9e41ee5f3eac78c342"}, "url": "/docs/compare/?release=9.0.16#9.0.16-10731528cb521bec", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-d3e93e3b883b7e05", "cves": [], "html": "<p>重做元组冻结协议（Álvaro Herrera、Andres Freund）</p>\n<p>元组冻结逻辑无法处理某些涉及<a href=\"/docs/9.3/maintenance.html#VACUUM-FOR-MULTIXACT-WRAPAROUND\" title=\"23.1.5.1. 多事务与回卷\"><em>多事务</em> ID</a>冻结的情况，实际影响是共享行级锁在足够老之后可能被遗忘。</p>\n<p>修复此问题需要更改元组冻结的 WAL 记录格式。这对独立服务器不成问题，但在使用复制时意味着<span><em>备库服务器必须先于其主库升级到 9.3.3 或更高版本</em></span>。较旧的备库将无法解释较新主库生成的冻结记录，并以 PANIC 消息失败。（在这种情况下，升级备库应足以让它恢复执行。）</p>", "text": "重做元组冻结协议（Álvaro Herrera、Andres Freund） 元组冻结逻辑无法处理某些涉及多事务 ID冻结的情况，实际影响是共享行级锁在足够老之后可能被遗忘。 修复此问题需要更改元组冻结的 WAL 记录格式。这对独立服务器不成问题，但在使用复制时意味着备库服务器必须先于其主库升级到 9.3.3 或更高版本。较旧的备库将无法解释较新主库生成的冻结记录，并以 PANIC 消息失败。（在这种情况下，升级备库应足以让它恢复执行。）", "title": "重做元组冻结协议", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "464b2ff1454b5ab83260140d2e88ce3bc57f9af80caf8235c5390d17a5af0944", "section_path": ["变更"], "commit_groups": [["3b97e6823", "8e9a16ab8"]], "identity_text": "Rework tuple freezing protocol (Álvaro Herrera, Andres Freund) The logic for tuple freezing was unable to handle some cases involving freezing of multixact IDs, with the practical effect that shared row-level locks might be forgotten once old enough. Fixing this required changing the WAL record format for tuple freezing. While this is no issue for standalone servers, when using replication it means that standby servers must be upgraded to 9.3.3 or later before their masters are. An older standby will be unable to interpret freeze records generated by a newer master, and will fail with a PANIC message. (In such a case, upgrading the standby should be sufficient to let it resume execution.)", "commit_aliases": ["3b97e6823", "8e9a16ab8"], "source_commits": ["8e9a16ab8"], "source_entry_id": "9.3.3/changes/009", "db_id": "72b9ca077a92280d95e171983c8840c2", "patch_ids": ["818207a186075f0edcb6e8122cb8d65c"], "statement_hash": "54df1e5ef45edf394b34afb8dfc8b47b55e82ee9e828d6ce6ddc1e4e5c49cf49", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-f09d96da5cc35978", "cves": [], "html": "<p>创建单独的 GUC 参数来控制多事务冻结（Álvaro Herrera）</p>\n<p>9.3 要求在多事务元组标签变得过老之前将其冻结，这与普通事务 ID 标签一段时间以来的冻结方式相同。此前，事务 ID 冻结参数也用于多事务 ID；但由于事务 ID 和多事务 ID 的消耗速率可能相差很大，这种做法效果不佳。现已引入新设置<a href=\"/docs/9.3/runtime-config-client.html#GUC-VACUUM-MULTIXACT-FREEZE-MIN-AGE\">vacuum_multixact_freeze_min_age</a>、<a href=\"/docs/9.3/runtime-config-client.html#GUC-VACUUM-MULTIXACT-FREEZE-TABLE-AGE\">vacuum_multixact_freeze_table_age</a>和<a href=\"/docs/9.3/runtime-config-autovacuum.html#GUC-AUTOVACUUM-MULTIXACT-FREEZE-MAX-AGE\">autovacuum_multixact_freeze_max_age</a>来控制何时冻结多事务。</p>", "text": "创建单独的 GUC 参数来控制多事务冻结（Álvaro Herrera） 9.3 要求在多事务元组标签变得过老之前将其冻结，这与普通事务 ID 标签一段时间以来的冻结方式相同。此前，事务 ID 冻结参数也用于多事务 ID；但由于事务 ID 和多事务 ID 的消耗速率可能相差很大，这种做法效果不佳。现已引入新设置vacuum_multixact_freeze_min_age、vacuum_multixact_freeze_table_age和autovacuum_multixact_freeze_max_age来控制何时冻结多事务。", "title": "创建单独的 GUC 参数来控制多事务冻结", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "a5372ff93bbfa30a88d8ee61898750818e5b74ab38a71d1ca2fce93d0452a3c5", "section_path": ["变更"], "commit_groups": [["801c2dc72", "fb47de2be"]], "identity_text": "Create separate GUC parameters to control multixact freezing (Álvaro Herrera) 9.3 requires multixact tuple labels to be frozen before they grow too old, in the same fashion as plain transaction ID labels have been frozen for some time. Previously, the transaction ID freezing parameters were used for multixact IDs too; but since the consumption rates of transaction IDs and multixact IDs can be quite different, this did not work very well. Introduce new settings guc-vacuum-multixact-freeze-min-age , guc-vacuum-multixact-freeze-table-age , and guc-autovacuum-multixact-freeze-max-age to control when to freeze multixacts.", "commit_aliases": ["801c2dc72", "fb47de2be"], "source_commits": ["fb47de2be"], "source_entry_id": "9.3.3/changes/010", "db_id": "cf70f145a254ab85f1f5337045bf80e0", "patch_ids": ["ba7040142fd00b6fdc785193d3ebc77e"], "statement_hash": "e023ce6e84b59a5ee27e9b6ed729b596972ee81db72a3b99594a695b88b2d90e", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-d2a6097758b986ab", "cves": [], "html": "<p>把本地更新传播的远程行锁考虑在内（Álvaro Herrera）</p>\n<p>如果某行被事务 A 锁定，而事务 B 更新了它，B 创建的新行版本会被 A 锁定，却只对 B 可见。如果事务 B 随后再次更新该行，A 的锁不会被检查，从而可能允许 B 在不该完成时完成。这种情况是 9.3 新出现的，因为之前的版本没有任何允许其他事务更新被锁行的行锁类型。</p>\n<p>这一疏忽可能导致引用完整性检查给出假阳性（例如允许本应被拒绝的删除）。使用新命令 <code>SELECT FOR KEY SHARE</code> 和 <code>SELECT FOR NO KEY UPDATE</code> 的应用也可能遭遇此类锁失效。</p>", "text": "把本地更新传播的远程行锁考虑在内（Álvaro Herrera） 如果某行被事务 A 锁定，而事务 B 更新了它，B 创建的新行版本会被 A 锁定，却只对 B 可见。如果事务 B 随后再次更新该行，A 的锁不会被检查，从而可能允许 B 在不该完成时完成。这种情况是 9.3 新出现的，因为之前的版本没有任何允许其他事务更新被锁行的行锁类型。 这一疏忽可能导致引用完整性检查给出假阳性（例如允许本应被拒绝的删除）。使用新命令 SELECT FOR KEY SHARE 和 SELECT FOR NO KEY UPDATE 的应用也可能遭遇此类锁失效。", "title": "把本地更新传播的远程行锁考虑在内", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "10e6f6dd1b7d88bc88e4f098740e051706f9f49d9d4f3d90503e28a8a27d3f4b", "section_path": ["变更"], "commit_groups": [["11ac4c73c", "db1014bc4"]], "identity_text": "Account for remote row locks propagated by local updates (Álvaro Herrera) If a row was locked by transaction A, and transaction B updated it, the new version of the row created by B would be locked by A, yet visible only to B. If transaction B then again updated the row, A's lock wouldn't get checked, thus possibly allowing B to complete when it shouldn't. This case is new in 9.3 since prior versions did not have any types of row locking that would permit another transaction to update the row at all. This oversight could allow referential integrity checks to give false positives (for instance, allow deletes that should have been rejected). Applications using the new commands SELECT FOR KEY SHARE and SELECT FOR NO KEY UPDATE might also have suffered locking failures of this kind.", "commit_aliases": ["11ac4c73c", "db1014bc4"], "source_commits": ["db1014bc4"], "source_entry_id": "9.3.3/changes/011", "db_id": "be59d318059564f82c292f2af5625602", "patch_ids": ["edc07c4bbd4b830bd309a982c8f98aee"], "statement_hash": "beafb62aa75ec61052112c474a7e145a99c6779531f1bbe0bea25b93a7b58024", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-e1e64f1e6d7dbedc", "cves": [], "html": "<p>防止当某个行锁的多个持有者之一中止时<span>“<span>遗忘</span>”</span>有效的行锁（Álvaro Herrera）</p>\n<p>这是共享行锁可能丢失的又一种机制，因此可能允许本应被外键约束阻止的更新。</p>", "text": "防止当某个行锁的多个持有者之一中止时“遗忘”有效的行锁（Álvaro Herrera） 这是共享行锁可能丢失的又一种机制，因此可能允许本应被外键约束阻止的更新。", "title": "防止当某个行锁的多个持有者之一中止时“遗忘”有效的行锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "3976cdc032865f362f536ba2f1b0b0e830dd703ae390839985bf161ded76a40e", "section_path": ["变更"], "commit_groups": [["07aeb1fec", "c6cd27e36"]], "identity_text": "Prevent forgetting valid row locks when one of several holders of a row lock aborts (Álvaro Herrera) This was yet another mechanism by which a shared row lock could be lost, thus possibly allowing updates that should have been prevented by foreign-key constraints.", "commit_aliases": ["07aeb1fec", "c6cd27e36"], "source_commits": ["c6cd27e36"], "source_entry_id": "9.3.3/changes/012", "db_id": "bcdf40cc5e020a75f49ad8c2046c5b55", "patch_ids": ["4a190af0294f19ae828f1e44d0e0e2e5"], "statement_hash": "e9596678e062a838a2595a9ea2846cfa4fb8506ea6530df4d501b3bcab3a8bf6", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-66c49529f45324da", "cves": [], "html": "<p>修复更新链锁定期间的错误逻辑（Álvaro Herrera）</p>\n<p>这一失误可能导致在 <code>REPEATABLE READ</code> 和 <code>SERIALIZABLE</code> 事务隔离模式下出现虚假的 <span>“<span>could not serialize access due to concurrent update</span>”</span> 错误。</p>", "text": "修复更新链锁定期间的错误逻辑（Álvaro Herrera） 这一失误可能导致在 REPEATABLE READ 和 SERIALIZABLE 事务隔离模式下出现虚假的 “could not serialize access due to concurrent update” 错误。", "title": "修复更新链锁定期间的错误逻辑", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "047f522c7e74f040e0e2801af3138671c0f438acc457b84fdbf4d0c9f5517f95", "section_path": ["变更"], "commit_groups": [["2dcc48c35", "312bde3d4"]], "identity_text": "Fix incorrect logic during update chain locking (Álvaro Herrera) This mistake could result in spurious could not serialize access due to concurrent update errors in REPEATABLE READ and SERIALIZABLE transaction isolation modes.", "commit_aliases": ["2dcc48c35", "312bde3d4"], "source_commits": ["2dcc48c35"], "source_entry_id": "9.3.3/changes/013", "db_id": "e302c0873214d41995628dcee4d2d984", "patch_ids": ["36b7da294e1808f2b189dac69786a6b1"], "statement_hash": "8698cbd4f974d6c7de69b5ad1bf646cc27beccd93860fb158970ec9e5c334f75", "relations": [], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-6e6d76b302a18315", "cves": [], "html": "<p>在扩展或截断 <code>pg_multixact/members</code> 时正确处理回卷（Andres Freund、Álvaro Herrera）</p>", "text": "在扩展或截断 pg_multixact/members 时正确处理回卷（Andres Freund、Álvaro Herrera）", "title": "在扩展或截断 pg_multixact/members 时正确处理回卷", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "dbdc52dcec455e0707c9ef5ea07626be8b93a7d4eeb6971ee69af1f5ebbd0402", "section_path": ["变更"], "commit_groups": [["03db79459", "a50d97625"]], "identity_text": "Handle wraparound correctly during extension or truncation of pg_multixact/members (Andres Freund, Álvaro Herrera)", "commit_aliases": ["03db79459", "a50d97625"], "source_commits": ["03db79459"], "source_entry_id": "9.3.3/changes/014", "db_id": "219086f5a98b29e21e63cee6cb409775", "patch_ids": ["d4dd7a55b78c2135c2ef1eec657e528a"], "statement_hash": "8b8adf58a6ce80e14b05878164544478c09e0610c94ce4453503474f04d7734f", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-9e35e0d802c01f06", "cves": [], "html": "<p>修复 <code>pg_multixact/members</code> 中 5 位数字文件名的处理（Álvaro Herrera）</p>\n<p>从 9.3 起，这些名称可能超过 4 位数字，但目录清理代码忽略了这类文件。</p>", "text": "修复 pg_multixact/members 中 5 位数字文件名的处理（Álvaro Herrera） 从 9.3 起，这些名称可能超过 4 位数字，但目录清理代码忽略了这类文件。", "title": "修复 pg_multixact/members 中 5 位数字文件名的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "3c5f744f34e72db7d59132ee657f73794280758a02dfb66a60c9714190ac5b65", "section_path": ["变更"], "commit_groups": [["638cf09e7", "948a3dfbb"]], "identity_text": "Fix handling of 5-digit filenames in pg_multixact/members (Álvaro Herrera) As of 9.3, these names can be more than 4 digits, but the directory cleanup code ignored such files.", "commit_aliases": ["638cf09e7", "948a3dfbb"], "source_commits": ["948a3dfbb"], "source_entry_id": "9.3.3/changes/015", "db_id": "c209bf0778c7241c37e210d33d9a6e8f", "patch_ids": ["8ce332b6a04de2ae00ef301b8c54e655"], "statement_hash": "1f211ae3b225864fdb659ea4b7b4b6e2d2d5d142f8bc4237e3945b78f4ff75f8", "relations": [], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-95052c9d57ce6e40", "cves": [], "html": "<p>改进多事务缓存代码的性能（Álvaro Herrera）</p>", "text": "改进多事务缓存代码的性能（Álvaro Herrera）", "title": "改进多事务缓存代码的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "835e4406ebae977b675d361cbfd67006348893b850f9d83d3876dba079ada150", "section_path": ["变更"], "commit_groups": [["0bc00363b", "d881dd623"]], "identity_text": "Improve performance of multixact cache code (Álvaro Herrera)", "commit_aliases": ["0bc00363b", "d881dd623"], "source_commits": ["0bc00363b"], "source_entry_id": "9.3.3/changes/016", "db_id": "079cdea3651fe786b0f287b20bcff96b", "patch_ids": ["16c10d9d04e66a02956ea33e7bd3d294"], "statement_hash": "7f49bcc6fade07e3c3599885407f951ed447226456a427fef938b9bd3a16f4ba", "relations": [], "version": "9.3.3", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-d91eba944eb66734", "cves": [], "html": "<p>优化更新已被同一事务锁定的行的过程（Andres Freund、Álvaro Herrera）</p>\n<p>这修复了相比 9.3 之前版本在执行 <code>SELECT FOR UPDATE</code> 后接 <code>UPDATE/DELETE</code> 时的性能退化。</p>", "text": "优化更新已被同一事务锁定的行的过程（Andres Freund、Álvaro Herrera） 这修复了相比 9.3 之前版本在执行 SELECT FOR UPDATE 后接 UPDATE/DELETE 时的性能退化。", "title": "优化更新已被同一事务锁定的行的过程", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "43eb87feeb9429c20fb59689a99ea2c620045b54874ce68d62482f92b7b9b2d9", "section_path": ["变更"], "commit_groups": [["13aa62443", "85d3b3c3a"]], "identity_text": "Optimize updating a row that's already locked by the same transaction (Andres Freund, Álvaro Herrera) This fixes a performance regression from pre-9.3 versions when doing SELECT FOR UPDATE followed by UPDATE/DELETE.", "commit_aliases": ["13aa62443", "85d3b3c3a"], "source_commits": ["85d3b3c3a"], "source_entry_id": "9.3.3/changes/017", "db_id": "e1cd9ed03c5da7ea11f994bfd2a43d7a", "patch_ids": ["76cad24c3d339f63ba703261e7c46495"], "statement_hash": "591bb184b73c5d01d56e9a486d74cd73d79713e3b66c480a176fef3a134d8445", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-29dfc41b0e79e4aa", "cves": [], "html": "<p>在归档恢复期间，当归档和 <code>pg_xlog/</code> 中存在相同 ID 的 WAL 段时，优先选择最高时间线编号（Kyotaro Horiguchi）</p>\n<p>此前，尚未归档的段可能在恢复期间被忽略。这把 9.3.0 中一个不理想的行为变更恢复为 9.3 之前的工作方式。</p>", "text": "在归档恢复期间，当归档和 pg_xlog/ 中存在相同 ID 的 WAL 段时，优先选择最高时间线编号（Kyotaro Horiguchi） 此前，尚未归档的段可能在恢复期间被忽略。这把 9.3.0 中一个不理想的行为变更恢复为 9.3 之前的工作方式。", "title": "在归档恢复期间，当归档和 pg_xlog/ 中存在相同 ID 的 WAL 段时，优先选择最高时间线编号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "b241917050a792e730b7a7537a59c211401cd8abf5fd9d0914c8652683ae405e", "section_path": ["变更"], "commit_groups": [["4d894b41c", "762bd379a"]], "identity_text": "During archive recovery, prefer highest timeline number when WAL segments with the same ID are present in both the archive and pg_xlog/ (Kyotaro Horiguchi) Previously, not-yet-archived segments could get ignored during recovery. This reverts an undesirable behavioral change in 9.3.0 back to the way things worked pre-9.3.", "commit_aliases": ["4d894b41c", "762bd379a"], "source_commits": ["762bd379a"], "source_entry_id": "9.3.3/changes/018", "db_id": "ba0c93f1353cafc0e11ee6dd6a8a17a2", "patch_ids": ["20175a42b135a8db2b4ae4d930aca431"], "statement_hash": "be7f11c63f00b0799e2ad1007b409d20683442ff8ce6c37e6c6c1082b3ad3bc9", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-358be8d16b225d0a", "cves": [], "html": "<p>修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题（Greg Stark、Tom Lane）</p>\n<p>WAL 更新可能被应用到错误的页面，甚至可能偏后很多页。除了损坏数据外，已观察到这一错误导致备库相比主库显著<span>“<span>膨胀</span>”</span>，因为更新被应用到了远超文件末尾应在位置的地方。这种失败模式在崩溃恢复期间似乎不构成重大风险，只在初始同步从快速变化的主库基础备份创建的备库时出现。</p>", "text": "修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题（Greg Stark、Tom Lane） WAL 更新可能被应用到错误的页面，甚至可能偏后很多页。除了损坏数据外，已观察到这一错误导致备库相比主库显著“膨胀”，因为更新被应用到了远超文件末尾应在位置的地方。这种失败模式在崩溃恢复期间似乎不构成重大风险，只在初始同步从快速变化的主库基础备份创建的备库时出现。", "title": "修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "67da68ededb4274d5005277f690d441d145fbca2820fe70a583da788d40a5014", "section_path": ["变更"], "commit_groups": [["6f2aead1f", "7190f7a34", "7fedd79b7", "9620fede9", "a69cc9b2c", "bc7ab301a"]], "identity_text": "Fix possible mis-replay of WAL records when some segments of a relation aren't full size (Greg Stark, Tom Lane) The WAL update could be applied to the wrong page, potentially many pages past where it should have been. Aside from corrupting data, this error has been observed to result in significant bloat of standby servers compared to their masters, due to updates being applied far beyond where the end-of-file should have been. This failure mode does not appear to be a significant risk during crash recovery, only when initially synchronizing a standby created from a base backup taken from a quickly-changing master.", "commit_aliases": ["6f2aead1f", "7190f7a34", "7fedd79b7", "9620fede9", "a69cc9b2c", "bc7ab301a"], "source_commits": ["7190f7a34"], "source_entry_id": "9.3.3/changes/019", "db_id": "25de053281805a245fab1b676779dcc4", "patch_ids": ["60e540100256cf797c1353a2c9b71210"], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5", "relations": [{"rule": 2, "type": "equivalent", "target": "2b001c634d577b177a7b6908f8431b7e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}}, {"rule": 2, "type": "equivalent", "target": "3e5bf72839871f5d922463c0b0ae582c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}}, {"rule": 2, "type": "equivalent", "target": "6a64aabe3f3ed8e232a5d6564458bbf0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2b001c634d577b177a7b6908f8431b7e", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}, "url": "/docs/compare/?release=9.2.7#9.2.7-358be8d16b225d0a", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "3e5bf72839871f5d922463c0b0ae582c", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}, "url": "/docs/compare/?release=9.1.12#9.1.12-358be8d16b225d0a", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "6a64aabe3f3ed8e232a5d6564458bbf0", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5fa863dcde2a1d7341f36113f83ccf1ab25fb8fdfa8473169a331d534819dff5"}, "url": "/docs/compare/?release=9.0.16#9.0.16-358be8d16b225d0a", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-f8e05985761562f6", "cves": [], "html": "<p>修复判断恢复何时达到一致性的缺陷（Tomonari Katsumata、Heikki Linnakangas）</p>\n<p>某些情况下，WAL 重放会错误地在重放开始时就断定数据库已一致，从而可能在数据库真正一致之前允许热备查询。也可能出现其他症状，例如 <span>“<span>PANIC: WAL contains references to invalid pages</span>”</span>。</p>", "text": "修复判断恢复何时达到一致性的缺陷（Tomonari Katsumata、Heikki Linnakangas） 某些情况下，WAL 重放会错误地在重放开始时就断定数据库已一致，从而可能在数据库真正一致之前允许热备查询。也可能出现其他症状，例如 “PANIC: WAL contains references to invalid pages”。", "title": "修复判断恢复何时达到一致性的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "f97a0e69bebd2f647bdbfd81a857b534b0a5647167f4f9c213c624983aee0a71", "section_path": ["变更"], "commit_groups": [["425bef6ee", "5301c8395", "82c75f9dd", "d59ff6c11", "e56430c62"]], "identity_text": "Fix bug in determining when recovery has reached consistency (Tomonari Katsumata, Heikki Linnakangas) In some cases WAL replay would mistakenly conclude that the database was already consistent at the start of replay, thus possibly allowing hot-standby queries before the database was really consistent. Other symptoms such as PANIC: WAL contains references to invalid pages were also possible.", "commit_aliases": ["425bef6ee", "5301c8395", "82c75f9dd", "d59ff6c11", "e56430c62"], "source_commits": ["425bef6ee"], "source_entry_id": "9.3.3/changes/020", "db_id": "a73b9eb084d1c6ae8789d3f1839e3542", "patch_ids": ["1f603d0dfc564b097b6b6ec1b77ef430"], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07", "relations": [{"rule": 2, "type": "equivalent", "target": "0cda2f81c3b66f79b7213d869e10179f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}}, {"rule": 2, "type": "equivalent", "target": "0ff932aeacb12930c82887b483ca71f4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}}, {"rule": 2, "type": "equivalent", "target": "e27ff0865920d9d12031284f043fc2ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e27ff0865920d9d12031284f043fc2ec", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复判断恢复何时达到一致性的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}, "url": "/docs/compare/?release=9.2.7#9.2.7-f8e05985761562f6", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "0ff932aeacb12930c82887b483ca71f4", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复判断恢复何时达到一致性的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}, "url": "/docs/compare/?release=9.1.12#9.1.12-f8e05985761562f6", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "0cda2f81c3b66f79b7213d869e10179f", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复判断恢复何时达到一致性的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcc6e5bdcc8b0fe8fe62ec3a44d6cf60b5c79d95f6168601d922f962078f1a07"}, "url": "/docs/compare/?release=9.0.16#9.0.16-f8e05985761562f6", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-f4318bf0bcdedbee", "cves": [], "html": "<p>修复可见性映射变更的 WAL 记录（Heikki Linnakangas）</p>", "text": "修复可见性映射变更的 WAL 记录（Heikki Linnakangas）", "title": "修复可见性映射变更的 WAL 记录", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "d76bff993f9967d90ba3707087220460a632be3ef28e54448f0292015c0f1b63", "section_path": ["变更"], "commit_groups": [["615299cf6", "a49633d8d"]], "identity_text": "Fix WAL logging of visibility map changes (Heikki Linnakangas)", "commit_aliases": ["615299cf6", "a49633d8d"], "source_commits": ["615299cf6"], "source_entry_id": "9.3.3/changes/021", "db_id": "983ee41764fb636c17ba709424b501a2", "patch_ids": ["5e00f57f1c609901f16866b280676bd8"], "statement_hash": "01a9b4f96ccd88c284172e88364476f92f30ac9413258d088adfe7856f87e50d", "relations": [], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-30c2210ab2f0837f", "cves": [], "html": "<p>修复在热备模式下重放 <code>VACUUM</code> 操作时对 btree 索引页的不当锁定（Andres Freund、Heikki Linnakangas、Tom Lane）</p>\n<p>这一错误可能导致 <span>“<span>PANIC: WAL contains references to invalid pages</span>”</span> 失败。</p>", "text": "修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定（Andres Freund、Heikki Linnakangas、Tom Lane） 这一错误可能导致 “PANIC: WAL contains references to invalid pages” 失败。", "title": "修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "d787c4fafcac3eb72b3e53d10a3f621e0915911b193b24630cee5118b32c6ad1", "section_path": ["变更"], "commit_groups": [["061b079f8", "5d742b9ce", "ab4bb5c47", "ad2e041a3", "ebde6c401"]], "identity_text": "Fix improper locking of btree index pages while replaying a VACUUM operation in hot-standby mode (Andres Freund, Heikki Linnakangas, Tom Lane) This error could result in PANIC: WAL contains references to invalid pages failures.", "commit_aliases": ["061b079f8", "5d742b9ce", "ab4bb5c47", "ad2e041a3", "ebde6c401"], "source_commits": ["ebde6c401"], "source_entry_id": "9.3.3/changes/022", "db_id": "591dd475baa8f6028925cb450d25c233", "patch_ids": ["74c428ba076a344c0cf0c7ebda2875bc"], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55", "relations": [{"rule": 2, "type": "equivalent", "target": "267ea97c36ade4e7c3f07d9bcf5f6b19", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}}, {"rule": 2, "type": "equivalent", "target": "bc3b5b9193580c289a2ddef968dfdb5e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}}, {"rule": 2, "type": "equivalent", "target": "c7a8558d89c20ffa25ace74deb3a2c98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c7a8558d89c20ffa25ace74deb3a2c98", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}, "url": "/docs/compare/?release=9.2.7#9.2.7-30c2210ab2f0837f", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "267ea97c36ade4e7c3f07d9bcf5f6b19", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}, "url": "/docs/compare/?release=9.1.12#9.1.12-30c2210ab2f0837f", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "bc3b5b9193580c289a2ddef968dfdb5e", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa03b39766d5e4dd2f01e26c65a65c85330255de67f43dbf335d1c727bac9a55"}, "url": "/docs/compare/?release=9.0.16#9.0.16-30c2210ab2f0837f", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-81cefe057af14b8d", "cves": [], "html": "<p>确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录（Heikki Linnakangas）</p>\n<p>先前的代码在系统崩溃期间发生部分页写入时存在索引损坏风险。</p>", "text": "确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录（Heikki Linnakangas） 先前的代码在系统崩溃期间发生部分页写入时存在索引损坏风险。", "title": "确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "7d9420d051fe88e17432dbd6318eeb46d42ec0d69cef185c15c55480a1855559", "section_path": ["变更"], "commit_groups": [["06df57ac6", "22122c83f", "67fc33d3a", "760606dc5", "8fd04cb32", "e6acb956a"]], "identity_text": "Ensure that insertions into non-leaf GIN index pages write a full-page WAL record when appropriate (Heikki Linnakangas) The previous coding risked index corruption in the event of a partial-page write during a system crash.", "commit_aliases": ["06df57ac6", "22122c83f", "67fc33d3a", "760606dc5", "8fd04cb32", "e6acb956a"], "source_commits": ["8fd04cb32"], "source_entry_id": "9.3.3/changes/023", "db_id": "cb26e8d99d2182f4549767cb9f38a4d5", "patch_ids": ["78c61aa2b4e3e76425d031aed17ee3b6"], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379", "relations": [{"rule": 2, "type": "equivalent", "target": "2eff690870453ffcdb7349755715b1aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}}, {"rule": 2, "type": "equivalent", "target": "6534a8a826b2471118bd1a76206cbef0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}}, {"rule": 2, "type": "equivalent", "target": "76061ba322a8049243f49879f7e82f05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6534a8a826b2471118bd1a76206cbef0", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}, "url": "/docs/compare/?release=9.2.7#9.2.7-81cefe057af14b8d", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "76061ba322a8049243f49879f7e82f05", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}, "url": "/docs/compare/?release=9.1.12#9.1.12-81cefe057af14b8d", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "2eff690870453ffcdb7349755715b1aa", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d828353466006a075a041525d37c2813faee5d9019dcbde79e954c56062a379"}, "url": "/docs/compare/?release=9.0.16#9.0.16-81cefe057af14b8d", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-191b833b4bf2154e", "cves": [], "html": "<p>当 <code>pause_at_recovery_target</code> 和 <code>recovery_target_inclusive</code> 都被设置时，确保目标记录在暂停之前而不是之后被应用（Heikki Linnakangas）</p>", "text": "当 pause_at_recovery_target 和 recovery_target_inclusive 都被设置时，确保目标记录在暂停之前而不是之后被应用（Heikki Linnakangas）", "title": "当 pause_at_recovery_target 和 recovery_target_inclusive 都被设置时，确保目标记录在暂停之前而不是之后被应用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "00081388fc867511dc4d1fbd3c10e76e47c1a447bb4da920a272af4eb64908a7", "section_path": ["变更"], "commit_groups": [["0402f2441", "3739e5ab9", "3aefff422", "3bd8987ef"]], "identity_text": "When pause_at_recovery_target and recovery_target_inclusive are both set, ensure the target record is applied before pausing, not after (Heikki Linnakangas)", "commit_aliases": ["0402f2441", "3739e5ab9", "3aefff422", "3bd8987ef"], "source_commits": ["3aefff422"], "source_entry_id": "9.3.3/changes/024", "db_id": "ce43233e5ea76168cc7a0e5625b81c39", "patch_ids": ["241b1fe9d89241ac044a339a91dcc673"], "statement_hash": "67e22c6d9876beda430335f693f63b3cd456e3cb50c6413a432f2c263491c783", "relations": [{"rule": 2, "type": "equivalent", "target": "746ade29c4ae38898946d89dd2d5525f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67e22c6d9876beda430335f693f63b3cd456e3cb50c6413a432f2c263491c783"}}, {"rule": 2, "type": "equivalent", "target": "b058ea44777da6ac2b2c7678c15f6d88", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67e22c6d9876beda430335f693f63b3cd456e3cb50c6413a432f2c263491c783"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "746ade29c4ae38898946d89dd2d5525f", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "当 pause_at_recovery_target 和 recovery_target_inclusive 都被设置时，确保目标记录在暂停之前而不是之后被应用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67e22c6d9876beda430335f693f63b3cd456e3cb50c6413a432f2c263491c783"}, "url": "/docs/compare/?release=9.2.7#9.2.7-191b833b4bf2154e", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "b058ea44777da6ac2b2c7678c15f6d88", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "当 pause_at_recovery_target 和 recovery_target_inclusive 都被设置时，确保目标记录在暂停之前而不是之后被应用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67e22c6d9876beda430335f693f63b3cd456e3cb50c6413a432f2c263491c783"}, "url": "/docs/compare/?release=9.1.12#9.1.12-191b833b4bf2154e", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.3.3-87ac97a8bd09d848", "cves": [], "html": "<p>确保 walreceiver 即使在数据持续不断时也按时发送热备反馈消息（Andres Freund、Amit Kapila）</p>", "text": "确保 walreceiver 即使在数据持续不断时也按时发送热备反馈消息（Andres Freund、Amit Kapila）", "title": "确保 walreceiver 即使在数据持续不断时也按时发送热备反馈消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "587296b033a5b64c3552e1f0288f00e8b9faaa2f627a8cda63edc9068cdcb876", "section_path": ["变更"], "commit_groups": [["a472ae1e4", "e34acac62"]], "identity_text": "Ensure walreceiver sends hot-standby feedback messages on time even when there is a continuous stream of data (Andres Freund, Amit Kapila)", "commit_aliases": ["a472ae1e4", "e34acac62"], "source_commits": ["e34acac62"], "source_entry_id": "9.3.3/changes/025", "db_id": "fafcb322ce3135f7892cf2629aad246a", "patch_ids": ["efc4481fa9e5b56c325e642eaa3e12e6"], "statement_hash": "b192c2f8a223496a14634516cc0b62c2502a1db76336feb5f3f0ca47632766b0", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-e1cc3cee18571c44", "cves": [], "html": "<p>防止超时中断从主流程代码手中夺取控制权，除非设置了 <code>ImmediateInterruptOK</code>（Andres Freund、Tom Lane）</p>\n<p>这对任何使用语句超时的应用都是一个严重问题，因为它可能在超时发生后造成各种奇怪的失败。我们见过关于自旋锁<span>“<span>卡住</span>”</span>、ERROR 意外升级为 PANIC、无法终止的后端进程以及其他异常行为的报告。</p>", "text": "防止超时中断从主流程代码手中夺取控制权，除非设置了 ImmediateInterruptOK（Andres Freund、Tom Lane） 这对任何使用语句超时的应用都是一个严重问题，因为它可能在超时发生后造成各种奇怪的失败。我们见过关于自旋锁“卡住”、ERROR 意外升级为 PANIC、无法终止的后端进程以及其他异常行为的报告。", "title": "防止超时中断从主流程代码手中夺取控制权，除非设置了 ImmediateInterruptOK", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "aa301548188c661c14d2c3e5ab4ff2548d89569f3ea2316165a2e86116f6f577", "section_path": ["变更"], "commit_groups": [["478af9b79", "e8312b4f0"]], "identity_text": "Prevent timeout interrupts from taking control away from mainline code unless ImmediateInterruptOK is set (Andres Freund, Tom Lane) This is a serious issue for any application making use of statement timeouts, as it could cause all manner of strange failures after a timeout occurred. We have seen reports of stuck spinlocks, ERRORs being unexpectedly promoted to PANICs, unkillable backends, and other misbehaviors.", "commit_aliases": ["478af9b79", "e8312b4f0"], "source_commits": ["478af9b79"], "source_entry_id": "9.3.3/changes/026", "db_id": "00a9b820362e4916260cf1cc2dee87f4", "patch_ids": ["63d7f66f85e68ba95a4e47aecb73e40d"], "statement_hash": "ba69d0f98eaf35a43e42a6ec1e51331210ac9e5a0b6e952989b71e9e8943dd54", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-17924e3b05368ddd", "cves": [], "html": "<p>修复服务器进程退出期间的竞态条件（Robert Haas）</p>\n<p>确保信号处理程序不会在进程的 <code>MyProc</code> 指针不再有效后尝试使用它。</p>", "text": "修复服务器进程退出期间的竞态条件（Robert Haas） 确保信号处理程序不会在进程的 MyProc 指针不再有效后尝试使用它。", "title": "修复服务器进程退出期间的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "ad3f8ce4fcc8fdb33d6b94bcbfe14345132bd1f31c2e9ed59b1f5fdc0af241ab", "section_path": ["变更"], "commit_groups": [["458b20f2d", "5d807a74b", "798243a81", "8e6bfc9eb", "d1981719a", "ebe334463"]], "identity_text": "Fix race conditions during server process exit (Robert Haas) Ensure that signal handlers don't attempt to use the process's MyProc pointer after it's no longer valid.", "commit_aliases": ["458b20f2d", "5d807a74b", "798243a81", "8e6bfc9eb", "d1981719a", "ebe334463"], "source_commits": ["5d807a74b"], "source_entry_id": "9.3.3/changes/027", "db_id": "1e1a787c2b2075910db8d64413d2429b", "patch_ids": ["9d8a40d0a719962c0c7d626ebe2b9dcd"], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f", "relations": [{"rule": 2, "type": "equivalent", "target": "2253a5527cd74ada04357261a28c088d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}}, {"rule": 2, "type": "equivalent", "target": "902b0f0f92d250a77926a1cb90366ad7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}}, {"rule": 2, "type": "equivalent", "target": "f69dda79e5a071672a7388442daca1bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "902b0f0f92d250a77926a1cb90366ad7", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复服务器进程退出期间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}, "url": "/docs/compare/?release=9.2.7#9.2.7-17924e3b05368ddd", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "f69dda79e5a071672a7388442daca1bb", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复服务器进程退出期间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}, "url": "/docs/compare/?release=9.1.12#9.1.12-17924e3b05368ddd", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "2253a5527cd74ada04357261a28c088d", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复服务器进程退出期间的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e22a497e4f71c9e4081f57bad6c0f2317e85783324a5ccfdec0d7862534cf66f"}, "url": "/docs/compare/?release=9.0.16#9.0.16-17924e3b05368ddd", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-1585f80b8a559486", "cves": [], "html": "<p>修复 walsender 关闭逻辑和 walreceiver SIGHUP 信号处理程序中的竞态条件（Tom Lane）</p>", "text": "修复 walsender 关闭逻辑和 walreceiver SIGHUP 信号处理程序中的竞态条件（Tom Lane）", "title": "修复 walsender 关闭逻辑和 walreceiver SIGHUP 信号处理程序中的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "e8a38dd613a7025e536eba923e35ff27ddd069e8effcb7b20b0c753574ac59f2", "section_path": ["变更"], "commit_groups": [["03f06ff38", "214c7a4f0", "6f1a40773", "81b116d98"]], "identity_text": "Fix race conditions in walsender shutdown logic and walreceiver SIGHUP signal handler (Tom Lane)", "commit_aliases": ["03f06ff38", "214c7a4f0", "6f1a40773", "81b116d98"], "source_commits": ["6f1a40773"], "source_entry_id": "9.3.3/changes/028", "db_id": "37eb8f42fb3d8294e7fa4a4b049e9eb3", "patch_ids": ["848c5c9c393d92e3bd6770c3e5ea5e96"], "statement_hash": "919e1316855b10daa2c6c568f57a5abb1907661a3625e55c147cfa57b5e32c63", "relations": [{"rule": 2, "type": "equivalent", "target": "14e097e65db0d890cb48064641966c52", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919e1316855b10daa2c6c568f57a5abb1907661a3625e55c147cfa57b5e32c63"}}, {"rule": 2, "type": "equivalent", "target": "aa5afd581fa3c302b7744381f9c7557c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919e1316855b10daa2c6c568f57a5abb1907661a3625e55c147cfa57b5e32c63"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "aa5afd581fa3c302b7744381f9c7557c", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 walsender 关闭逻辑和 walreceiver SIGHUP 信号处理程序中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919e1316855b10daa2c6c568f57a5abb1907661a3625e55c147cfa57b5e32c63"}, "url": "/docs/compare/?release=9.2.7#9.2.7-1585f80b8a559486", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "14e097e65db0d890cb48064641966c52", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 walsender 关闭逻辑和 walreceiver SIGHUP 信号处理程序中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919e1316855b10daa2c6c568f57a5abb1907661a3625e55c147cfa57b5e32c63"}, "url": "/docs/compare/?release=9.1.12#9.1.12-1585f80b8a559486", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.3.3-49cce80b853a829d", "cves": [], "html": "<p>修复错误报告逻辑中对 <code>errno</code> 的不安全引用（Christian Kruse）</p>\n<p>这通常会导致奇怪的行为，例如 <code>HINT</code> 字段缺失或不恰当。</p>", "text": "修复错误报告逻辑中对 errno 的不安全引用（Christian Kruse） 这通常会导致奇怪的行为，例如 HINT 字段缺失或不恰当。", "title": "修复错误报告逻辑中对 errno 的不安全引用", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "caac25c70f7e301d4d2384ec0a408ae21eac194bb0d7919489123ee4c875a807", "section_path": ["变更"], "commit_groups": [["01b882fd8", "3e71ce1e9", "571addd72", "af259c691", "bf8ee6f15", "d17a667e8"]], "identity_text": "Fix unsafe references to errno within error reporting logic (Christian Kruse) This would typically lead to odd behaviors such as missing or inappropriate HINT fields.", "commit_aliases": ["01b882fd8", "3e71ce1e9", "571addd72", "af259c691", "bf8ee6f15", "d17a667e8"], "source_commits": ["bf8ee6f15"], "source_entry_id": "9.3.3/changes/029", "db_id": "37b95577ed90367c94210a79984362d9", "patch_ids": ["540cd3385c2fed8a4f7875204b785a1c"], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d", "relations": [{"rule": 2, "type": "equivalent", "target": "3e87d3f06c98ffe8bdeeefa70078a8bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}}, {"rule": 2, "type": "equivalent", "target": "7d0b30dd22b8070f126ec9141785cff7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}}, {"rule": 2, "type": "equivalent", "target": "bc3f7584e4445525d6f45b7085bf401d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bc3f7584e4445525d6f45b7085bf401d", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复错误报告逻辑中对 errno 的不安全引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}, "url": "/docs/compare/?release=9.2.7#9.2.7-49cce80b853a829d", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "3e87d3f06c98ffe8bdeeefa70078a8bf", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复错误报告逻辑中对 errno 的不安全引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}, "url": "/docs/compare/?release=9.1.12#9.1.12-49cce80b853a829d", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "7d0b30dd22b8070f126ec9141785cff7", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复错误报告逻辑中对 errno 的不安全引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e7096815c0dd616d8c8a26d360cda6ce42d6b10fbbd80f22993f4eae95c51d"}, "url": "/docs/compare/?release=9.0.16#9.0.16-49cce80b853a829d", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-d0cc9be6415fd283", "cves": [], "html": "<p>修复服务器启动期间过早使用 <code>ereport()</code> 可能导致的崩溃（Tom Lane）</p>\n<p>我们在实际中见到的主要情况是：如果服务器在一个它没有读取权限的目录中被启动，就会崩溃。</p>", "text": "修复服务器启动期间过早使用 ereport() 可能导致的崩溃（Tom Lane） 我们在实际中见到的主要情况是：如果服务器在一个它没有读取权限的目录中被启动，就会崩溃。", "title": "修复服务器启动期间过早使用 ereport() 可能导致的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "5d0ce5580bf0d0e9e5829a5e398d19d2bec6d2857c8fb0f38b1e048d5ccacddb", "section_path": ["变更"], "commit_groups": [["2de905186", "3f721588a", "5bfcc9ec5", "910bac595", "d0070ac81", "d9c4442b8"]], "identity_text": "Fix possible crashes from using ereport() too early during server startup (Tom Lane) The principal case we've seen in the field is a crash if the server is started in a directory it doesn't have permission to read.", "commit_aliases": ["2de905186", "3f721588a", "5bfcc9ec5", "910bac595", "d0070ac81", "d9c4442b8"], "source_commits": ["5bfcc9ec5"], "source_entry_id": "9.3.3/changes/030", "db_id": "df3e479eecfd2500a93eff44e9e5ab59", "patch_ids": ["0ce3146b82b45d70b95ea992e8b18df8"], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18", "relations": [{"rule": 2, "type": "equivalent", "target": "4a16d4287f4ee8452465cd646d1fd781", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}}, {"rule": 2, "type": "equivalent", "target": "e6191c20bd057498459d068ab454d4d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}}, {"rule": 2, "type": "equivalent", "target": "f162a4f736bbc4a94390f9623f33f298", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4a16d4287f4ee8452465cd646d1fd781", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复服务器启动期间过早使用 ereport() 可能导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}, "url": "/docs/compare/?release=9.2.7#9.2.7-d0cc9be6415fd283", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "e6191c20bd057498459d068ab454d4d4", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复服务器启动期间过早使用 ereport() 可能导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}, "url": "/docs/compare/?release=9.1.12#9.1.12-d0cc9be6415fd283", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "f162a4f736bbc4a94390f9623f33f298", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复服务器启动期间过早使用 ereport() 可能导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b9b84f039a5a99a9daae8e6d4ab8cd02bca48e9deda6bf23002c6d835a4e18"}, "url": "/docs/compare/?release=9.0.16#9.0.16-d0cc9be6415fd283", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-716aaa191c3cd5ee", "cves": [], "html": "<p>在 OpenSSL 套接字写函数中正确清除重试标志（Alexander Kukushkin）</p>\n<p>这一遗漏可能导致 SSL 加密连接意外断开后服务器锁死。</p>", "text": "在 OpenSSL 套接字写函数中正确清除重试标志（Alexander Kukushkin） 这一遗漏可能导致 SSL 加密连接意外断开后服务器锁死。", "title": "在 OpenSSL 套接字写函数中正确清除重试标志", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "845345a5d1efdaee2d83ea1e3684a3de8b481c13775c2dab4864b5a0c8ce2dd9", "section_path": ["变更"], "commit_groups": [["2a6e1a554", "36352ceb4", "41042970b", "74242c23c", "7635dae55", "ad910ccdc"]], "identity_text": "Clear retry flags properly in OpenSSL socket write function (Alexander Kukushkin) This omission could result in a server lockup after unexpected loss of an SSL-encrypted connection.", "commit_aliases": ["2a6e1a554", "36352ceb4", "41042970b", "74242c23c", "7635dae55", "ad910ccdc"], "source_commits": ["2a6e1a554"], "source_entry_id": "9.3.3/changes/031", "db_id": "11671fca978410389b3a726d8bea8852", "patch_ids": ["4da40c27b6513898d858272221f71688"], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a", "relations": [{"rule": 2, "type": "equivalent", "target": "0b007ab59ce736b143f3f709df9c5b30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}}, {"rule": 2, "type": "equivalent", "target": "8fef34044c53fb22630112ea37abb361", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}}, {"rule": 2, "type": "equivalent", "target": "941caa56d3c088d05a0927a7592abb33", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8fef34044c53fb22630112ea37abb361", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在 OpenSSL 套接字写函数中正确清除重试标志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}, "url": "/docs/compare/?release=9.2.7#9.2.7-716aaa191c3cd5ee", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "0b007ab59ce736b143f3f709df9c5b30", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在 OpenSSL 套接字写函数中正确清除重试标志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}, "url": "/docs/compare/?release=9.1.12#9.1.12-716aaa191c3cd5ee", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "941caa56d3c088d05a0927a7592abb33", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "在 OpenSSL 套接字写函数中正确清除重试标志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2108fafd4649cd4a43940fb84bb68314001285cbe39331fb36a2ae509a5be02a"}, "url": "/docs/compare/?release=9.0.16#9.0.16-716aaa191c3cd5ee", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-c3388e8771705baf", "cves": [], "html": "<p>修复对包含转义的 Unicode 标识符（<code>U&amp;\"...\"</code> 语法）的长度检查（Tom Lane）</p>\n<p>如果标识符的转义形式过长，就会为这类标识符打印虚假的截断警告，但标识符在反转义之后实际上并不需要截断。</p>", "text": "修复对包含转义的 Unicode 标识符（U&\"...\" 语法）的长度检查（Tom Lane） 如果标识符的转义形式过长，就会为这类标识符打印虚假的截断警告，但标识符在反转义之后实际上并不需要截断。", "title": "修复对包含转义的 Unicode 标识符（U&\"...\" 语法）的长度检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "cf406dbc8a07c48d170f04f9bacc108069fa098ee265d9d1643248aabaa54aca", "section_path": ["变更"], "commit_groups": [["148052d25", "170590261", "44c216330", "8439ee415", "a8a46d846", "ca1c17181"]], "identity_text": "Fix length checking for Unicode identifiers (U&\"...\" syntax) containing escapes (Tom Lane) A spurious truncation warning would be printed for such identifiers if the escaped form of the identifier was too long, but the identifier actually didn't need truncation after de-escaping.", "commit_aliases": ["148052d25", "170590261", "44c216330", "8439ee415", "a8a46d846", "ca1c17181"], "source_commits": ["ca1c17181"], "source_entry_id": "9.3.3/changes/032", "db_id": "f9b078f059a923d2bd5bd6cb576ab7fd", "patch_ids": ["82336ed6004f24b1b22dd4cdf8b4df2b"], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a", "relations": [{"rule": 2, "type": "equivalent", "target": "42f4b233e4f166ead5bf69f9d022b760", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}}, {"rule": 2, "type": "equivalent", "target": "65740b7941f3e9b086e8907f001022fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}}, {"rule": 2, "type": "equivalent", "target": "c0c97674783fef61838fe77fe815ef47", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c0c97674783fef61838fe77fe815ef47", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复对包含转义的 Unicode 标识符（U&\"...\" 语法）的长度检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}, "url": "/docs/compare/?release=9.2.7#9.2.7-c3388e8771705baf", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "42f4b233e4f166ead5bf69f9d022b760", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复对包含转义的 Unicode 标识符（U&\"...\" 语法）的长度检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}, "url": "/docs/compare/?release=9.1.12#9.1.12-c3388e8771705baf", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "65740b7941f3e9b086e8907f001022fc", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复对包含转义的 Unicode 标识符（U&\"...\" 语法）的长度检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "249e8b492772c6d687ab8caae44093cbe50a88dca4bea22726c0b8fcf7b3c80a"}, "url": "/docs/compare/?release=9.0.16#9.0.16-c3388e8771705baf", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-c01a56796fba5742", "cves": [], "html": "<p>修复恰好在命令字符串或函数体末尾之前的 Unicode 字面量和标识符的解析（Tom Lane）</p>", "text": "修复恰好在命令字符串或函数体末尾之前的 Unicode 字面量和标识符的解析（Tom Lane）", "title": "修复恰好在命令字符串或函数体末尾之前的 Unicode 字面量和标识符的解析", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "36c3df9ab69d22abf433dd0689c31b52f3dec3b4fb4b521cedb647a0ae8f4d9a", "section_path": ["变更"], "commit_groups": [["0c2338abb", "4c70cb1d3"]], "identity_text": "Fix parsing of Unicode literals and identifiers just before the end of a command string or function body (Tom Lane)", "commit_aliases": ["0c2338abb", "4c70cb1d3"], "source_commits": ["4c70cb1d3"], "source_entry_id": "9.3.3/changes/033", "db_id": "0bbcfc4128e15eedd953016072698fc9", "patch_ids": ["815cfadd721e215e67a4351d8a298956"], "statement_hash": "95718f4a897ac1a17f59d248edb42c0a958a26504ca2499a5cd9170960d6e15e", "relations": [], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-26b51f6387adc9b6", "cves": [], "html": "<p>允许作为类型名的关键字用于角色列表（Stephen Frost）</p>\n<p>先前的补丁允许这类关键字在角色标识符等位置不加引号使用；但漏掉了允许角色标识符列表的情况，例如 <code>DROP ROLE</code>。</p>", "text": "允许作为类型名的关键字用于角色列表（Stephen Frost） 先前的补丁允许这类关键字在角色标识符等位置不加引号使用；但漏掉了允许角色标识符列表的情况，例如 DROP ROLE。", "title": "允许作为类型名的关键字用于角色列表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "3422358a199d6c3c0f055ac6d81cf78eb7ef3839ddb980f8df92652e9d2075ae", "section_path": ["变更"], "commit_groups": [["6c36f383d", "c0e6169e1", "cbd850bf6", "d1e3070f0", "f2eede9b5"]], "identity_text": "Allow keywords that are type names to be used in lists of roles (Stephen Frost) A previous patch allowed such keywords to be used without quoting in places such as role identifiers; but it missed cases where a list of role identifiers was permitted, such as DROP ROLE.", "commit_aliases": ["6c36f383d", "c0e6169e1", "cbd850bf6", "d1e3070f0", "f2eede9b5"], "source_commits": ["d1e3070f0"], "source_entry_id": "9.3.3/changes/034", "db_id": "b669cceaac0688c3467ae4cc3bdfc5cf", "patch_ids": ["988784c136305454eaa4cd372ad51bd2"], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488", "relations": [{"rule": 2, "type": "equivalent", "target": "5fd4ec2506ed6953d713694b1bfb2ef3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}}, {"rule": 2, "type": "equivalent", "target": "f7964e61818d714c7e0529b9e3c273df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}}, {"rule": 2, "type": "equivalent", "target": "facc82e0f268cb697ef0e460cb963a03", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "facc82e0f268cb697ef0e460cb963a03", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "允许作为类型名的关键字用于角色列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}, "url": "/docs/compare/?release=9.2.7#9.2.7-26b51f6387adc9b6", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "f7964e61818d714c7e0529b9e3c273df", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "允许作为类型名的关键字用于角色列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}, "url": "/docs/compare/?release=9.1.12#9.1.12-26b51f6387adc9b6", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "5fd4ec2506ed6953d713694b1bfb2ef3", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "允许作为类型名的关键字用于角色列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ba955916ebb9facdf35bdb2cafb3584e29164785f99d246aa446b3c476a0488"}, "url": "/docs/compare/?release=9.0.16#9.0.16-26b51f6387adc9b6", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-3a6268aab3200344", "cves": [], "html": "<p>修复 <code>EXISTS(SELECT * FROM zero_column_table)</code> 的解析器崩溃（Tom Lane）</p>", "text": "修复 EXISTS(SELECT * FROM zero_column_table) 的解析器崩溃（Tom Lane）", "title": "修复 EXISTS(SELECT * FROM zero_column_table) 的解析器崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "f64a422ffff3cfdf292f695388b2ca6340c8e81429edb0b2eff831fff9ea5647", "section_path": ["变更"], "commit_groups": [["6698782f1", "7ab321404", "b44ae4893", "f67b8aeab"]], "identity_text": "Fix parser crash for EXISTS(SELECT * FROM zero_column_table) (Tom Lane)", "commit_aliases": ["6698782f1", "7ab321404", "b44ae4893", "f67b8aeab"], "source_commits": ["b44ae4893"], "source_entry_id": "9.3.3/changes/035", "db_id": "cc82a00ff7837fcf4f929f3d710075b7", "patch_ids": ["03ab2ec354d6a89c4d591ea5ce8c2dba"], "statement_hash": "4b7f15b3ba10001d28f82194fc9d8c8018472bd04189427c4745eed12b6636cc", "relations": [{"rule": 2, "type": "equivalent", "target": "a4215c04f2ec3ff54cd8dba70933efb0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4b7f15b3ba10001d28f82194fc9d8c8018472bd04189427c4745eed12b6636cc"}}, {"rule": 2, "type": "equivalent", "target": "c9a70a021e05e448e27f35f9a48362ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4b7f15b3ba10001d28f82194fc9d8c8018472bd04189427c4745eed12b6636cc"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c9a70a021e05e448e27f35f9a48362ed", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 EXISTS(SELECT * FROM zero_column_table) 的解析器崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4b7f15b3ba10001d28f82194fc9d8c8018472bd04189427c4745eed12b6636cc"}, "url": "/docs/compare/?release=9.2.7#9.2.7-3a6268aab3200344", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "a4215c04f2ec3ff54cd8dba70933efb0", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 EXISTS(SELECT * FROM zero_column_table) 的解析器崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4b7f15b3ba10001d28f82194fc9d8c8018472bd04189427c4745eed12b6636cc"}, "url": "/docs/compare/?release=9.1.12#9.1.12-3a6268aab3200344", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.3.3-0120485e2756491d", "cves": [], "html": "<p>修复嵌套子选择（例如 <code>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</code>）因无效计划而可能崩溃的问题（Tom Lane）</p>", "text": "修复嵌套子选择（例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)）因无效计划而可能崩溃的问题（Tom Lane）", "title": "修复嵌套子选择（例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)）因无效计划而可能崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "62cef334d9707163a0c7e6b4f73534f10e60c719a8fb17a11a59b482fbcd3e75", "section_path": ["变更"], "commit_groups": [["41e9990cd", "48e5cfde8", "884c6384a", "9d2e07fec", "9ec6199d1", "f5d9fdcc7"]], "identity_text": "Fix possible crash due to invalid plan for nested sub-selects, such as WHERE (... x IN (SELECT ...) ...) IN (SELECT ...) (Tom Lane)", "commit_aliases": ["41e9990cd", "48e5cfde8", "884c6384a", "9d2e07fec", "9ec6199d1", "f5d9fdcc7"], "source_commits": ["9d2e07fec"], "source_entry_id": "9.3.3/changes/036", "db_id": "3e1cf87c50929ba8621eacb7c7aa2815", "patch_ids": ["ba737cc47ae54d1dfd245b84ce9df8ce"], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606", "relations": [{"rule": 2, "type": "equivalent", "target": "4b54d1cbc23906d35a2c5cbb980cf685", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}}, {"rule": 2, "type": "equivalent", "target": "587a014707d18a9dfe4fcd7665f8ffae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}}, {"rule": 2, "type": "equivalent", "target": "c20e57bd97bb0aed81a85b2b4bb6fb2f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c20e57bd97bb0aed81a85b2b4bb6fb2f", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复嵌套子选择（例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)）因无效计划而可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}, "url": "/docs/compare/?release=9.2.7#9.2.7-0120485e2756491d", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "4b54d1cbc23906d35a2c5cbb980cf685", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复嵌套子选择（例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)）因无效计划而可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}, "url": "/docs/compare/?release=9.1.12#9.1.12-0120485e2756491d", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "587a014707d18a9dfe4fcd7665f8ffae", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复嵌套子选择（例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)）因无效计划而可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbcaca3408ecf7bc9e81a9132fabaff24655b4499d3821dc327bb607b38a6606"}, "url": "/docs/compare/?release=9.0.16#9.0.16-0120485e2756491d", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-9a99163607062423", "cves": [], "html": "<p>修复对从 <code>LATERAL</code> 子查询上拉的 <code>WHERE</code> 条件的处理不当（Tom Lane）</p>\n<p>此缺陷的典型症状是 <span>“<span>JOIN qualification cannot refer to other relations</span>”</span> 错误，不过在生成的计划中出现细微逻辑错误似乎也有可能。</p>", "text": "修复对从 LATERAL 子查询上拉的 WHERE 条件的处理不当（Tom Lane） 此缺陷的典型症状是 “JOIN qualification cannot refer to other relations” 错误，不过在生成的计划中出现细微逻辑错误似乎也有可能。", "title": "修复对从 LATERAL 子查询上拉的 WHERE 条件的处理不当", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "489d61c17d4e27ce15747ab3e7efea56c99beb10df939b9286d543c4b2bc888d", "section_path": ["变更"], "commit_groups": [["043f6ff05", "a4aa854ca"]], "identity_text": "Fix mishandling of WHERE conditions pulled up from a LATERAL subquery (Tom Lane) The typical symptom of this bug was a JOIN qualification cannot refer to other relations error, though subtle logic errors in created plans seem possible as well.", "commit_aliases": ["043f6ff05", "a4aa854ca"], "source_commits": ["a4aa854ca"], "source_entry_id": "9.3.3/changes/037", "db_id": "4e297bdce24185b58584574e6ceb9adf", "patch_ids": ["c27f9eb05949433e83b08a7c37c0353c"], "statement_hash": "1b3b689d605c626d8c4166a58a0b6cea3f3952112504ed62aef5a332de70580e", "relations": [], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-3cdc6d1c043b0bb0", "cves": [], "html": "<p>禁止对 <code>UPDATE/DELETE</code> 的目标表进行 <code>LATERAL</code> 引用（Tom Lane）</p>\n<p>虽然未来版本可能允许这样做，但它在 9.3 中是无意的，而且无论如何都不能正常工作。</p>", "text": "禁止对 UPDATE/DELETE 的目标表进行 LATERAL 引用（Tom Lane） 虽然未来版本可能允许这样做，但它在 9.3 中是无意的，而且无论如何都不能正常工作。", "title": "禁止对 UPDATE/DELETE 的目标表进行 LATERAL 引用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "13f6592d1f13f102a385eda9015784fc6bc2c75351c2f36ba3ee1cb6a951ce57", "section_path": ["变更"], "commit_groups": [["158b7fa6a", "27ff4cfe7"]], "identity_text": "Disallow LATERAL references to the target table of an UPDATE/DELETE (Tom Lane) While this might be allowed in some future release, it was unintentional in 9.3, and didn't work quite right anyway.", "commit_aliases": ["158b7fa6a", "27ff4cfe7"], "source_commits": ["27ff4cfe7"], "source_entry_id": "9.3.3/changes/038", "db_id": "2b17f603c6ad859f11affe0e6c550250", "patch_ids": ["0a66fa5f6dd9d62f0184f9eece7d7152"], "statement_hash": "b5c05620b5c2153ed9143531d38e8e9193b3d5734e1435fad24eb0304c1d23f0", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-6effe56643462844", "cves": [], "html": "<p>修复对带 <code>UNION ALL</code> 子查询的继承目标表的 <code>UPDATE/DELETE</code>（Tom Lane）</p>\n<p>如果不修复，<code>UNION ALL</code> 子查询就不能正确插入第一个之后的继承子表的更新计划中，通常导致那些子表完全没有被更新。</p>", "text": "修复对带 UNION ALL 子查询的继承目标表的 UPDATE/DELETE（Tom Lane） 如果不修复，UNION ALL 子查询就不能正确插入第一个之后的继承子表的更新计划中，通常导致那些子表完全没有被更新。", "title": "修复对带 UNION ALL 子查询的继承目标表的 UPDATE/DELETE", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "eed2f770d292fb3df5541bdf1b7e3a6ce9687eb44391df4075c390092d485449", "section_path": ["变更"], "commit_groups": [["324577f39", "5d545b7ed", "c03ad5602"]], "identity_text": "Fix UPDATE/DELETE of an inherited target table that has UNION ALL subqueries (Tom Lane) Without this fix, UNION ALL subqueries aren't correctly inserted into the update plans for inheritance child tables after the first one, typically resulting in no update happening for those child table(s).", "commit_aliases": ["324577f39", "5d545b7ed", "c03ad5602"], "source_commits": ["324577f39"], "source_entry_id": "9.3.3/changes/039", "db_id": "25519f138b80db342af36655ee28975d", "patch_ids": ["17883559d4c0d9cd22ce644ec611b49e"], "statement_hash": "4b2fa92e4cc3843a640050d2bd1649f8ca3dedcac2b4c147c3a9c8bf6d823c5a", "relations": [{"rule": 2, "type": "equivalent", "target": "fdf7c4700ffff73b7739301197429cc2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4b2fa92e4cc3843a640050d2bd1649f8ca3dedcac2b4c147c3a9c8bf6d823c5a"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fdf7c4700ffff73b7739301197429cc2", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复对带 UNION ALL 子查询的继承目标表的 UPDATE/DELETE", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4b2fa92e4cc3843a640050d2bd1649f8ca3dedcac2b4c147c3a9c8bf6d823c5a"}, "url": "/docs/compare/?release=9.2.7#9.2.7-6effe56643462844", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}]}, {"id": "9.3.3-377f722c83da5739", "cves": [], "html": "<p>修复 <code>ANALYZE</code> 在列是范围类型之上的域时失败的问题（Tom Lane）</p>", "text": "修复 ANALYZE 在列是范围类型之上的域时失败的问题（Tom Lane）", "title": "修复 ANALYZE 在列是范围类型之上的域时失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "8613bfa52abb7b10db0b5912f38f025f3f5ae267ba10d779164e3a5a72210def", "section_path": ["变更"], "commit_groups": [["4eeda92d8", "663f8419b"]], "identity_text": "Fix ANALYZE to not fail on a column that's a domain over a range type (Tom Lane)", "commit_aliases": ["4eeda92d8", "663f8419b"], "source_commits": ["663f8419b"], "source_entry_id": "9.3.3/changes/040", "db_id": "233d4effca7fab23f26fa9e99ef53460", "patch_ids": ["aa069c3c2c24722cfbf3b414ea317753"], "statement_hash": "d8e54a4a2510f740a7ff7b0d86f828f73b9ee35fc6e4383e8be4ef96b5c50f28", "relations": [], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-45d4601c41a69628", "cves": [], "html": "<p>确保即使表列中的所有值都<span>“<span>过宽</span>”</span>，<code>ANALYZE</code> 也会为该列创建统计信息（Tom Lane）</p>\n<p><code>ANALYZE</code> 有意在直方图和最常用值计算中省略非常宽的值，但在所有采样条目都过宽的情况下没有做出合理的处理。</p>", "text": "确保即使表列中的所有值都“过宽”，ANALYZE 也会为该列创建统计信息（Tom Lane） ANALYZE 有意在直方图和最常用值计算中省略非常宽的值，但在所有采样条目都过宽的情况下没有做出合理的处理。", "title": "确保即使表列中的所有值都“过宽”，ANALYZE 也会为该列创建统计信息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "fc59333f31f1c5f6ebb654d73ad1e6f5610a47afad076778531e92abfdb7b654", "section_path": ["变更"], "commit_groups": [["00b77771a", "2d76d75d9", "36785a21b", "628652620", "9387f4e1b", "f0381680f"]], "identity_text": "Ensure that ANALYZE creates statistics for a table column even when all the values in it are too wide (Tom Lane) ANALYZE intentionally omits very wide values from its histogram and most-common-values calculations, but it neglected to do something sane in the case that all the sampled entries are too wide.", "commit_aliases": ["00b77771a", "2d76d75d9", "36785a21b", "628652620", "9387f4e1b", "f0381680f"], "source_commits": ["36785a21b"], "source_entry_id": "9.3.3/changes/041", "db_id": "f3695dd10fa7b17e2c880937788ec52b", "patch_ids": ["d7d398f6dc30f300383f39a985a01cdb"], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4", "relations": [{"rule": 2, "type": "equivalent", "target": "559a553c08451fe4dcfb5586f0f99e82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}}, {"rule": 2, "type": "equivalent", "target": "75fe6c40b7de8f85e5877c5c28800ac9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}}, {"rule": 2, "type": "equivalent", "target": "e87f90c509b154f64680271a9e8604ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "559a553c08451fe4dcfb5586f0f99e82", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "确保即使表列中的所有值都“过宽”，ANALYZE 也会为该列创建统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}, "url": "/docs/compare/?release=9.2.7#9.2.7-45d4601c41a69628", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "75fe6c40b7de8f85e5877c5c28800ac9", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "确保即使表列中的所有值都“过宽”，ANALYZE 也会为该列创建统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}, "url": "/docs/compare/?release=9.1.12#9.1.12-45d4601c41a69628", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "e87f90c509b154f64680271a9e8604ff", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "确保即使表列中的所有值都“过宽”，ANALYZE 也会为该列创建统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ac10c14f9f8d5fe110b463afd1e86eb7ffcd3754b4ff42f64cc8fc9f34490e4"}, "url": "/docs/compare/?release=9.0.16#9.0.16-45d4601c41a69628", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-abe3fe7f7c1377f4", "cves": [], "html": "<p>在 <code>ALTER TABLE ... SET TABLESPACE</code> 中，允许不经权限检查就使用数据库的默认表空间（Stephen Frost）</p>\n<p><code>CREATE TABLE</code> 一直允许这种用法，但 <code>ALTER TABLE</code> 没有照做。</p>", "text": "在 ALTER TABLE ... SET TABLESPACE 中，允许不经权限检查就使用数据库的默认表空间（Stephen Frost） CREATE TABLE 一直允许这种用法，但 ALTER TABLE 没有照做。", "title": "在 ALTER TABLE ... SET TABLESPACE 中，允许不经权限检查就使用数据库的默认表空间", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "e7c7af828e141aeb095f8202e4760206ce58a87fc2740fb2616201e460f13bc1", "section_path": ["变更"], "commit_groups": [["0fb4e3ceb", "1fe06595a", "6f25c62d7", "86e58ae02", "d2636486b", "e70c42821"]], "identity_text": "In ALTER TABLE ... SET TABLESPACE, allow the database's default tablespace to be used without a permissions check (Stephen Frost) CREATE TABLE has always allowed such usage, but ALTER TABLE didn't get the memo.", "commit_aliases": ["0fb4e3ceb", "1fe06595a", "6f25c62d7", "86e58ae02", "d2636486b", "e70c42821"], "source_commits": ["86e58ae02"], "source_entry_id": "9.3.3/changes/042", "db_id": "f4ea0d64a1dc2dd78d93bdae9255c39e", "patch_ids": ["61ca926f3352265a900e12994feca337"], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300", "relations": [{"rule": 2, "type": "equivalent", "target": "4d098fa538b4f461a0bf9de881e82ee6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}}, {"rule": 2, "type": "equivalent", "target": "7ded2f3aed6eb776afe95ab57579f474", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}}, {"rule": 2, "type": "equivalent", "target": "95e0a24f610d24ea94a95e0efe62ca88", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "95e0a24f610d24ea94a95e0efe62ca88", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在 ALTER TABLE ... SET TABLESPACE 中，允许不经权限检查就使用数据库的默认表空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}, "url": "/docs/compare/?release=9.2.7#9.2.7-abe3fe7f7c1377f4", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "7ded2f3aed6eb776afe95ab57579f474", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在 ALTER TABLE ... SET TABLESPACE 中，允许不经权限检查就使用数据库的默认表空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}, "url": "/docs/compare/?release=9.1.12#9.1.12-abe3fe7f7c1377f4", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "4d098fa538b4f461a0bf9de881e82ee6", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "在 ALTER TABLE ... SET TABLESPACE 中，允许不经权限检查就使用数据库的默认表空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c6a82b8f7c102ed1bbaa42dfcc9b92f0220d24790e7deb28b84741bec1576300"}, "url": "/docs/compare/?release=9.0.16#9.0.16-abe3fe7f7c1377f4", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-9436c16878655f5c", "cves": [], "html": "<p>修复对包含事件触发器的扩展的支持（Tom Lane）</p>", "text": "修复对包含事件触发器的扩展的支持（Tom Lane）", "title": "修复对包含事件触发器的扩展的支持", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "214bd47fe95e0978b5990d49905f9ca305defc0c482dc1789cc935a2fc57b5dc", "section_path": ["变更"], "commit_groups": [["9a6e2b150", "c01bc51f8"]], "identity_text": "Fix support for extensions containing event triggers (Tom Lane)", "commit_aliases": ["9a6e2b150", "c01bc51f8"], "source_commits": ["9a6e2b150"], "source_entry_id": "9.3.3/changes/043", "db_id": "7cb7c3d3215c79ae72d59d6338477bb1", "patch_ids": ["680160795bd3795d8d0a5711010f6b2a"], "statement_hash": "9ba93ce2843e4ea68a755872ff265e963268aed02e425fd270635041435c1a44", "relations": [], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-c79e00b15c7a1b23", "cves": [], "html": "<p>修复当 <code>CASE</code> 的某些分支返回集合而另一些不返回时的 <span>“<span>cannot accept a set</span>”</span> 错误（Tom Lane）</p>", "text": "修复当 CASE 的某些分支返回集合而另一些不返回时的 “cannot accept a set” 错误（Tom Lane）", "title": "修复当 CASE 的某些分支返回集合而另一些不返回时的 “cannot accept a set” 错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "a8764b4fe1c21c34bc097b78a138576bba56daa58712464e188fd0ab1404b44c", "section_path": ["变更"], "commit_groups": [["080b7db72", "47ac4473a", "57ac7d8a7", "6c6c53d0b", "6ca712fb9", "97a39f295"]], "identity_text": "Fix cannot accept a set error when some arms of a CASE return a set and others don't (Tom Lane)", "commit_aliases": ["080b7db72", "47ac4473a", "57ac7d8a7", "6c6c53d0b", "6ca712fb9", "97a39f295"], "source_commits": ["47ac4473a"], "source_entry_id": "9.3.3/changes/044", "db_id": "5c0d749e9a869ed15f6aabb49321c1c6", "patch_ids": ["b4c1f8d0695745eeebf849b085b21d55"], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2", "relations": [{"rule": 2, "type": "equivalent", "target": "3c022e03cacf413d80f93c1250d3f8d8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}}, {"rule": 2, "type": "equivalent", "target": "58542151bd1bb3c497ae9ee5b4dafc1a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}}, {"rule": 2, "type": "equivalent", "target": "90e4474f0a8941a41cee36d029dcd7ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3c022e03cacf413d80f93c1250d3f8d8", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复当 CASE 的某些分支返回集合而另一些不返回时的“cannot accept a set”错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}, "url": "/docs/compare/?release=9.2.7#9.2.7-71848f476e985de7", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "90e4474f0a8941a41cee36d029dcd7ec", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复当 CASE 的某些分支返回集合而另一些不返回时的 “cannot accept a set” 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}, "url": "/docs/compare/?release=9.1.12#9.1.12-c79e00b15c7a1b23", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "58542151bd1bb3c497ae9ee5b4dafc1a", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复当 CASE 的某些分支返回集合而另一些不返回时的 “cannot accept a set” 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d9ea93b3ec8d5937eb3bb5e086b4e9977b111b98ced02d5e7efa3a037e0553a2"}, "url": "/docs/compare/?release=9.0.16#9.0.16-c79e00b15c7a1b23", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-10589ad7c8c71dd1", "cves": [], "html": "<p>修复 JSON 函数中的内存泄漏（Craig Ringer）</p>", "text": "修复 JSON 函数中的内存泄漏（Craig Ringer）", "title": "修复 JSON 函数中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "b5ebad305bd9bd76b9905769882191b12032ef633d5ea7b66de7286e695660ea", "section_path": ["变更"], "commit_groups": [["cdfbb78f0", "d3ee45152"]], "identity_text": "Fix memory leakage in JSON functions (Craig Ringer)", "commit_aliases": ["cdfbb78f0", "d3ee45152"], "source_commits": ["cdfbb78f0"], "source_entry_id": "9.3.3/changes/045", "db_id": "6d6476528c7de6ff7a8500914c03ff37", "patch_ids": ["c80b641985bfd6b07d4449b7e7d8d788"], "statement_hash": "aea4a6c06bede1f4b8e359fca961f08d75454c212f4f5ed956d20d90a9d8f63b", "relations": [], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-1f31bb78a4029bf1", "cves": [], "html": "<p>在生成 JSON 输出时正确区分数字与非数字（Andrew Dunstan）</p>", "text": "在生成 JSON 输出时正确区分数字与非数字（Andrew Dunstan）", "title": "在生成 JSON 输出时正确区分数字与非数字", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "0348b645326d1db7170ba753ba0672f839a1b76c4c993eccd25bc0cd563ef1dc", "section_path": ["变更"], "commit_groups": [["29dcf7ded", "4825a9e95", "7dfd9f6f5"]], "identity_text": "Properly distinguish numbers from non-numbers when generating JSON output (Andrew Dunstan)", "commit_aliases": ["29dcf7ded", "4825a9e95", "7dfd9f6f5"], "source_commits": ["7dfd9f6f5"], "source_entry_id": "9.3.3/changes/046", "db_id": "574f88ab460d539c0819a1f1ea99f8ec", "patch_ids": ["75343687ddcb2fcf2319ef8644cac0fa"], "statement_hash": "678bed02a53efccb1d29c5253df241c9d6450c551575c911442369d97b8ce86d", "relations": [{"rule": 2, "type": "equivalent", "target": "145c7c02d948a54adb722d2a993f656a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678bed02a53efccb1d29c5253df241c9d6450c551575c911442369d97b8ce86d"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "145c7c02d948a54adb722d2a993f656a", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在生成 JSON 输出时正确区分数字与非数字", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678bed02a53efccb1d29c5253df241c9d6450c551575c911442369d97b8ce86d"}, "url": "/docs/compare/?release=9.2.7#9.2.7-1f31bb78a4029bf1", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}]}, {"id": "9.3.3-37c412e7c57e6641", "cves": [], "html": "<p>修复 pgstat 函数中对全零客户端地址的检查（Kevin Grittner）</p>", "text": "修复 pgstat 函数中对全零客户端地址的检查（Kevin Grittner）", "title": "修复 pgstat 函数中对全零客户端地址的检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "078f83ab14535c851aca537dc8afd3499c5f4fb4e31ac599b11e0c2a461b07a4", "section_path": ["变更"], "commit_groups": [["150a30e19", "1f069d21d", "28b60aa23", "918d74a07", "a133bf703", "b2d80147d"]], "identity_text": "Fix checks for all-zero client addresses in pgstat functions (Kevin Grittner)", "commit_aliases": ["150a30e19", "1f069d21d", "28b60aa23", "918d74a07", "a133bf703", "b2d80147d"], "source_commits": ["28b60aa23"], "source_entry_id": "9.3.3/changes/047", "db_id": "a00f19f4a4095e9a9165e129b432db14", "patch_ids": ["a5313d621d8d95e4e204e0d4b8b8f8e7"], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27", "relations": [{"rule": 2, "type": "equivalent", "target": "bda9cb552f7456b4075e860b04842ecc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}}, {"rule": 2, "type": "equivalent", "target": "f647ad538a9bce5e0da6e05e57afcc79", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}}, {"rule": 2, "type": "equivalent", "target": "f66fb5509ed7da6955cc8611eb2490e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bda9cb552f7456b4075e860b04842ecc", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 pgstat 函数中对全零客户端地址的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}, "url": "/docs/compare/?release=9.2.7#9.2.7-37c412e7c57e6641", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "f66fb5509ed7da6955cc8611eb2490e2", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 pgstat 函数中对全零客户端地址的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}, "url": "/docs/compare/?release=9.1.12#9.1.12-37c412e7c57e6641", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "f647ad538a9bce5e0da6e05e57afcc79", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复 pgstat 函数中对全零客户端地址的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "012d8dc6ae3c6bac36fa1387a792a36627ad5c8a44ff8a122a0141f75adcaa27"}, "url": "/docs/compare/?release=9.0.16#9.0.16-37c412e7c57e6641", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-d665b6c08ce4e8d9", "cves": [], "html": "<p>修复文本搜索解析器可能错误分类多字节字符的问题（Tom Lane）</p>\n<p>在 C 区域设置下使用多字节编码时，非 ASCII 字符可能被错误分类。在 Cygwin 上，非 C 区域设置也可能失败。</p>", "text": "修复文本搜索解析器可能错误分类多字节字符的问题（Tom Lane） 在 C 区域设置下使用多字节编码时，非 ASCII 字符可能被错误分类。在 Cygwin 上，非 C 区域设置也可能失败。", "title": "修复文本搜索解析器可能错误分类多字节字符的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "d96fdef635c6f8195b28a9a30b1fccb2d9a5cec0de93b7374a04b1911d6f668c", "section_path": ["变更"], "commit_groups": [["082c0dfa1", "399d23e19", "3c7b4ef70", "56f5d3424", "8be095cea", "9beffdcc3"]], "identity_text": "Fix possible misclassification of multibyte characters by the text search parser (Tom Lane) Non-ASCII characters could be misclassified when using C locale with a multibyte encoding. On Cygwin, non-C locales could fail as well.", "commit_aliases": ["082c0dfa1", "399d23e19", "3c7b4ef70", "56f5d3424", "8be095cea", "9beffdcc3"], "source_commits": ["9beffdcc3"], "source_entry_id": "9.3.3/changes/048", "db_id": "bdec3fe347e507ce4e004c7d0c07d9b2", "patch_ids": ["6ade1bc9089508a03d077b5210f0ec56"], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee", "relations": [{"rule": 2, "type": "equivalent", "target": "0d29215af03bfacc673f9e3040747da2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}}, {"rule": 2, "type": "equivalent", "target": "5356f043efb90dba09cddfb702db2ea9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}}, {"rule": 2, "type": "equivalent", "target": "537f6a77723456e1f621b81a24ab6f9a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0d29215af03bfacc673f9e3040747da2", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复文本搜索解析器可能错误分类多字节字符的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}, "url": "/docs/compare/?release=9.2.7#9.2.7-d665b6c08ce4e8d9", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "537f6a77723456e1f621b81a24ab6f9a", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复文本搜索解析器可能错误分类多字节字符的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}, "url": "/docs/compare/?release=9.1.12#9.1.12-d665b6c08ce4e8d9", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "5356f043efb90dba09cddfb702db2ea9", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复文本搜索解析器可能错误分类多字节字符的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2c24580cfb42fb7c3c9934439a795a08627401e9cf599b45863720676b2b6aee"}, "url": "/docs/compare/?release=9.0.16#9.0.16-d665b6c08ce4e8d9", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-4d4f516a0f72070d", "cves": [], "html": "<p>修复 <code>plainto_tsquery()</code> 中可能的不当行为（Heikki Linnakangas）</p>\n<p>在复制重叠内存区域时使用 <code>memmove()</code> 而不是 <code>memcpy()</code>。尚无实际造成问题的现场报告，但这无疑是有风险的。</p>", "text": "修复 plainto_tsquery() 中可能的不当行为（Heikki Linnakangas） 在复制重叠内存区域时使用 memmove() 而不是 memcpy()。尚无实际造成问题的现场报告，但这无疑是有风险的。", "title": "修复 plainto_tsquery() 中可能的不当行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "9e959d813051444f6b8c439b538f98d3175b2c83b3898b5636db58835eb57016", "section_path": ["变更"], "commit_groups": [["5f778e644", "6141983fb", "6c2744f1d", "928aec71c", "f3807106b", "fe8a6f53e"]], "identity_text": "Fix possible misbehavior in plainto_tsquery() (Heikki Linnakangas) Use memmove() not memcpy() for copying overlapping memory regions. There have been no field reports of this actually causing trouble, but it's certainly risky.", "commit_aliases": ["5f778e644", "6141983fb", "6c2744f1d", "928aec71c", "f3807106b", "fe8a6f53e"], "source_commits": ["928aec71c"], "source_entry_id": "9.3.3/changes/049", "db_id": "3c13e80df6489c286b0b371b85fea89b", "patch_ids": ["6887b0d5d5b3e260f5a1fc5c579ae461"], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe", "relations": [{"rule": 2, "type": "equivalent", "target": "11527e9d63f3ed473939ba4be339e00b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}}, {"rule": 2, "type": "equivalent", "target": "3584d74976b07ad9c4dc56f943abc435", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}}, {"rule": 2, "type": "equivalent", "target": "91c677a48c5613d5b601edd2f050fbe4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3584d74976b07ad9c4dc56f943abc435", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 plainto_tsquery() 中可能的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}, "url": "/docs/compare/?release=9.2.7#9.2.7-4d4f516a0f72070d", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "91c677a48c5613d5b601edd2f050fbe4", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 plainto_tsquery() 中可能的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}, "url": "/docs/compare/?release=9.1.12#9.1.12-4d4f516a0f72070d", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "11527e9d63f3ed473939ba4be339e00b", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复 plainto_tsquery() 中可能的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f2b2549524e3e113908ea16e76a8718dfd1d3d0e2d3d3e05a18ae4ecea1aefe"}, "url": "/docs/compare/?release=9.0.16#9.0.16-4d4f516a0f72070d", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-0be1096a46aa88c6", "cves": [], "html": "<p>修复 <code>pg_start_backup()</code> 和 <code>pg_stop_backup()</code> 中权限检查的位置（Andres Freund、Magnus Hagander）</p>\n<p>先前的代码可能在不该访问系统目录时尝试访问。</p>", "text": "修复 pg_start_backup() 和 pg_stop_backup() 中权限检查的位置（Andres Freund、Magnus Hagander） 先前的代码可能在不该访问系统目录时尝试访问。", "title": "修复 pg_start_backup() 和 pg_stop_backup() 中权限检查的位置", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "06cb1e2e3b25a9961fe20c23e772e104961e663b153867fee8aa82a5c634cbe1", "section_path": ["变更"], "commit_groups": [["026a91f86", "61d4d14ee", "91c2755fc", "9544cc0d6"]], "identity_text": "Fix placement of permissions checks in pg_start_backup() and pg_stop_backup() (Andres Freund, Magnus Hagander) The previous coding might attempt to do catalog access when it shouldn't.", "commit_aliases": ["026a91f86", "61d4d14ee", "91c2755fc", "9544cc0d6"], "source_commits": ["91c2755fc"], "source_entry_id": "9.3.3/changes/050", "db_id": "5e2a4d76d561056c600e4138ea9de2e3", "patch_ids": ["45778237272dc65691634e34a18efe9f"], "statement_hash": "17adb5e95e11a626c7f5d55e91fd4b6371b87b21ba5e2065c93accb6042a9bb3", "relations": [{"rule": 2, "type": "equivalent", "target": "597b91daeaf6cf1100116ab5dc343844", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "17adb5e95e11a626c7f5d55e91fd4b6371b87b21ba5e2065c93accb6042a9bb3"}}, {"rule": 2, "type": "equivalent", "target": "6dc4919ce36b958cad1f8179a7c06c39", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "17adb5e95e11a626c7f5d55e91fd4b6371b87b21ba5e2065c93accb6042a9bb3"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "597b91daeaf6cf1100116ab5dc343844", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 pg_start_backup() 和 pg_stop_backup() 中权限检查的位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "17adb5e95e11a626c7f5d55e91fd4b6371b87b21ba5e2065c93accb6042a9bb3"}, "url": "/docs/compare/?release=9.2.7#9.2.7-0be1096a46aa88c6", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "6dc4919ce36b958cad1f8179a7c06c39", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 pg_start_backup() 和 pg_stop_backup() 中权限检查的位置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "17adb5e95e11a626c7f5d55e91fd4b6371b87b21ba5e2065c93accb6042a9bb3"}, "url": "/docs/compare/?release=9.1.12#9.1.12-0be1096a46aa88c6", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.3.3-180c20631458e44e", "cves": [], "html": "<p>在区域检查方面接受 <code>SHIFT_JIS</code> 作为编码名（Tatsuo Ishii）</p>", "text": "在区域检查方面接受 SHIFT_JIS 作为编码名（Tatsuo Ishii）", "title": "在区域检查方面接受 SHIFT_JIS 作为编码名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "e93f15ff444ab0f041852e7d293ab60e755ee6cd293529e99a4d5bb4c08a980e", "section_path": ["变更"], "commit_groups": [["035226c61", "0c07ef1ad", "1f0626ee4", "69f77d756", "7016d970d", "8122e6f85"]], "identity_text": "Accept SHIFT_JIS as an encoding name for locale checking purposes (Tatsuo Ishii)", "commit_aliases": ["035226c61", "0c07ef1ad", "1f0626ee4", "69f77d756", "7016d970d", "8122e6f85"], "source_commits": ["8122e6f85"], "source_entry_id": "9.3.3/changes/051", "db_id": "9771bff578b97b093217263738f5d2fa", "patch_ids": ["4252f68ae4cf6cb3eee3c4aba2f29ad2"], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d", "relations": [{"rule": 2, "type": "equivalent", "target": "866c9eaa269f0f65fb023895be9f35ee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}}, {"rule": 2, "type": "equivalent", "target": "a04d579b3f501ab201d3464ef69d04bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}}, {"rule": 2, "type": "equivalent", "target": "f6f888ec1197e21a1c8d0720e5da29fa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "866c9eaa269f0f65fb023895be9f35ee", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在区域检查方面接受 SHIFT_JIS 作为编码名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}, "url": "/docs/compare/?release=9.2.7#9.2.7-180c20631458e44e", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "f6f888ec1197e21a1c8d0720e5da29fa", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在区域检查方面接受 SHIFT_JIS 作为编码名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}, "url": "/docs/compare/?release=9.1.12#9.1.12-180c20631458e44e", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "a04d579b3f501ab201d3464ef69d04bf", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "在区域检查方面接受 SHIFT_JIS 作为编码名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f5c3694c1ae8671fa8070d5fe0319feda04bb81aa4117b1dcb50a5e6fac088d"}, "url": "/docs/compare/?release=9.0.16#9.0.16-180c20631458e44e", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-eb6c95b3a5b01721", "cves": [], "html": "<p>修复 SQL 语言函数中命名参数的 <code>*</code> 限定（Tom Lane）</p>\n<p>对于名为 <code>foo</code> 的组合类型参数，<code>$1.*</code> 工作正常，但 <code>foo.*</code> 就不行了。</p>", "text": "修复 SQL 语言函数中命名参数的 * 限定（Tom Lane） 对于名为 foo 的组合类型参数，$1.* 工作正常，但 foo.* 就不行了。", "title": "修复 SQL 语言函数中命名参数的 * 限定", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "9232cea938daca212a6982257e4374fa2c910b7a60b8b1f2d9b3ca86b35f87ce", "section_path": ["变更"], "commit_groups": [["0def2573c", "641c08041", "888b56570"]], "identity_text": "Fix *-qualification of named parameters in SQL-language functions (Tom Lane) Given a composite-type parameter named foo, $1.* worked fine, but foo.* not so much.", "commit_aliases": ["0def2573c", "641c08041", "888b56570"], "source_commits": ["641c08041"], "source_entry_id": "9.3.3/changes/052", "db_id": "6e11c5bb7da447848ebe2621fc11f308", "patch_ids": ["d3db6acfa4ebc787a6790626b0fd650d"], "statement_hash": "9eb9a231f1cd85b7fb23cc44bec90509591cbec46002b2012ac8a06389765c6d", "relations": [{"rule": 2, "type": "equivalent", "target": "4478577fc4c52332f4e32c63abdfc389", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9eb9a231f1cd85b7fb23cc44bec90509591cbec46002b2012ac8a06389765c6d"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4478577fc4c52332f4e32c63abdfc389", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 SQL 语言函数中命名参数的 * 限定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9eb9a231f1cd85b7fb23cc44bec90509591cbec46002b2012ac8a06389765c6d"}, "url": "/docs/compare/?release=9.2.7#9.2.7-eb6c95b3a5b01721", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}]}, {"id": "9.3.3-b37c8dd469f73934", "cves": [], "html": "<p>修复 <code>PQhost()</code> 在 Windows 上的不当行为（Fujii Masao）</p>\n<p>如果未指定主机，它应返回 <code>localhost</code>。</p>", "text": "修复 PQhost() 在 Windows 上的不当行为（Fujii Masao） 如果未指定主机，它应返回 localhost。", "title": "修复 PQhost() 在 Windows 上的不当行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "34c1228c9ab6b2ccbf1ac607d3a4ccb0cf8f0beda5ee53f0da604f49a621329d", "section_path": ["变更"], "commit_groups": [["1b384aff1", "5525529db", "77035fa8a", "996b21cbf", "be5d49974", "ea311bfdf"]], "identity_text": "Fix misbehavior of PQhost() on Windows (Fujii Masao) It should return localhost if no host has been specified.", "commit_aliases": ["1b384aff1", "5525529db", "77035fa8a", "996b21cbf", "be5d49974", "ea311bfdf"], "source_commits": ["be5d49974"], "source_entry_id": "9.3.3/changes/053", "db_id": "6334cd2eb111d5b2cfd0cd06ce8e5a7b", "patch_ids": ["013989e95cfce02e4dd61026b8de33fe"], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262", "relations": [{"rule": 2, "type": "equivalent", "target": "2be4fa57cd17a0243188804f11d8aeb6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}}, {"rule": 2, "type": "equivalent", "target": "5db54b36acb017ea25901f1533a95c0e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}}, {"rule": 2, "type": "equivalent", "target": "844108fae0db3a59b6f24237a7ad8720", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5db54b36acb017ea25901f1533a95c0e", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 PQhost() 在 Windows 上的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}, "url": "/docs/compare/?release=9.2.7#9.2.7-b37c8dd469f73934", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "844108fae0db3a59b6f24237a7ad8720", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 PQhost() 在 Windows 上的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}, "url": "/docs/compare/?release=9.1.12#9.1.12-b37c8dd469f73934", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "2be4fa57cd17a0243188804f11d8aeb6", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复 PQhost() 在 Windows 上的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "475827447503f9b58237112e3d4d55ba99fd44c259e8f2c3a0fd9176c9883262"}, "url": "/docs/compare/?release=9.0.16#9.0.16-b37c8dd469f73934", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-c1586eb7d0837e6d", "cves": [], "html": "<p>改进 <span>libpq</span> 和 <span>psql</span> 对 <code>COPY TO STDOUT/FROM STDIN</code> 期间失败的错误处理（Tom Lane）</p>\n<p>这尤其修复了 9.2 及更高版本中，如果服务器连接在 <code>COPY FROM STDIN</code> 期间丢失可能发生的无限循环。该场景的变体在旧版本或其他客户端应用中也可能出现。</p>", "text": "改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理（Tom Lane） 这尤其修复了 9.2 及更高版本中，如果服务器连接在 COPY FROM STDIN 期间丢失可能发生的无限循环。该场景的变体在旧版本或其他客户端应用中也可能出现。", "title": "改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "2dcb1de2aa726ba9700b939ad36d218272c3b92071ceb5e01e3dd652c530d4a5", "section_path": ["变更"], "commit_groups": [["218dd205b", "2573f08a1", "7182bd239", "7644a7bd8", "b8f00a46b", "f208fb436"]], "identity_text": "Improve error handling in libpq and psql for failures during COPY TO STDOUT/FROM STDIN (Tom Lane) In particular this fixes an infinite loop that could occur in 9.2 and up if the server connection was lost during COPY FROM STDIN. Variants of that scenario might be possible in older versions, or with other client applications.", "commit_aliases": ["218dd205b", "2573f08a1", "7182bd239", "7644a7bd8", "b8f00a46b", "f208fb436"], "source_commits": ["f208fb436"], "source_entry_id": "9.3.3/changes/054", "db_id": "1977d3f1de2078a044157f02af2d57e2", "patch_ids": ["7ea3d1ec7917e8d1c7eff55d21430571"], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703", "relations": [{"rule": 2, "type": "equivalent", "target": "18946eb065f1162c255f7a086721af24", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}}, {"rule": 2, "type": "equivalent", "target": "a87e12de3be8565fae3a0cc05ccbec93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}}, {"rule": 2, "type": "equivalent", "target": "abb33b9a9a77e4fcf26c39103d088b1d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "18946eb065f1162c255f7a086721af24", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}, "url": "/docs/compare/?release=9.2.7#9.2.7-c1586eb7d0837e6d", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "a87e12de3be8565fae3a0cc05ccbec93", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}, "url": "/docs/compare/?release=9.1.12#9.1.12-c1586eb7d0837e6d", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "abb33b9a9a77e4fcf26c39103d088b1d", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c71eb87fd3f60bb83c6f0d81938071c5b92bc25ac45379ca3ce1804cb6b92703"}, "url": "/docs/compare/?release=9.0.16#9.0.16-c1586eb7d0837e6d", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-a70858f642ad5923", "cves": [], "html": "<p>修复某些 <span>psql</span> <code>\\d</code> 命令中不正确的翻译处理（Peter Eisentraut、Tom Lane）</p>", "text": "修复某些 psql \\d 命令中不正确的翻译处理（Peter Eisentraut、Tom Lane）", "title": "修复某些 psql \\d 命令中不正确的翻译处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "8cb68967eb2e0b2aaea3c7527ee3f1b6b6c52234c95bb8c4372ca8cfadfa1918", "section_path": ["变更"], "commit_groups": [["341f0bc49", "92459e7a7", "fa28f9cba"]], "identity_text": "Fix incorrect translation handling in some psql \\d commands (Peter Eisentraut, Tom Lane)", "commit_aliases": ["341f0bc49", "92459e7a7", "fa28f9cba"], "source_commits": ["341f0bc49"], "source_entry_id": "9.3.3/changes/055", "db_id": "940e3d6ee22f2d908932076bab68b15d", "patch_ids": ["ab58b0a2dd272c4505c29615821ed9a7"], "statement_hash": "d09f7a5d5ec8a94c24e57175f816e5e50d32b78648177f4e21bc0ec482546814", "relations": [{"rule": 2, "type": "equivalent", "target": "bb8fb12a373c8038d57c13ffc8b38ce4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d09f7a5d5ec8a94c24e57175f816e5e50d32b78648177f4e21bc0ec482546814"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bb8fb12a373c8038d57c13ffc8b38ce4", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复某些 psql \\d 命令中不正确的翻译处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d09f7a5d5ec8a94c24e57175f816e5e50d32b78648177f4e21bc0ec482546814"}, "url": "/docs/compare/?release=9.2.7#9.2.7-a70858f642ad5923", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}]}, {"id": "9.3.3-01aa2d3a53e9fdee", "cves": [], "html": "<p>确保 <span>pg_basebackup</span> 的前台进程退出时其后台进程被终止（Magnus Hagander）</p>", "text": "确保 pg_basebackup 的前台进程退出时其后台进程被终止（Magnus Hagander）", "title": "确保 pg_basebackup 的前台进程退出时其后台进程被终止", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "45d4126e1cabc482a8312d66c264283937c5ab5e66b1d81687cd8e037161c4a5", "section_path": ["变更"], "commit_groups": [["0ae288d2d", "63ab2befe", "c90204c60"]], "identity_text": "Ensure pg_basebackup's background process is killed when exiting its foreground process (Magnus Hagander)", "commit_aliases": ["0ae288d2d", "63ab2befe", "c90204c60"], "source_commits": ["c90204c60"], "source_entry_id": "9.3.3/changes/056", "db_id": "4c9442f9874fa84d379711541d08e78b", "patch_ids": ["55255c88c752215cd758a9da6ad14063"], "statement_hash": "c5c3e6da592237a83efb5ebc59aff949383d4f67aed2cfe7783a198f367acc96", "relations": [{"rule": 2, "type": "equivalent", "target": "6eac62da2e4a173d161c8591f63ae9fa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5c3e6da592237a83efb5ebc59aff949383d4f67aed2cfe7783a198f367acc96"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6eac62da2e4a173d161c8591f63ae9fa", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "确保 pg_basebackup 的前台进程退出时其后台进程被终止", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5c3e6da592237a83efb5ebc59aff949383d4f67aed2cfe7783a198f367acc96"}, "url": "/docs/compare/?release=9.2.7#9.2.7-01aa2d3a53e9fdee", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}]}, {"id": "9.3.3-a1e8844c6e44b50c", "cves": [], "html": "<p>修复 <span>pg_basebackup</span> 详细模式下文件名可能打印错误的问题（Magnus Hagander）</p>", "text": "修复 pg_basebackup 详细模式下文件名可能打印错误的问题（Magnus Hagander）", "title": "修复 pg_basebackup 详细模式下文件名可能打印错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "3e359e49b7227fa489bb5bba56415a0702a2a17b596bf88ad6a24b28b1faf1ef", "section_path": ["变更"], "commit_groups": [["01025d80a", "165aa1da5", "680baa8d2", "c6e5c4dd1"]], "identity_text": "Fix possible incorrect printing of filenames in pg_basebackup's verbose mode (Magnus Hagander)", "commit_aliases": ["01025d80a", "165aa1da5", "680baa8d2", "c6e5c4dd1"], "source_commits": ["680baa8d2"], "source_entry_id": "9.3.3/changes/057", "db_id": "7076488c328bd98603d504ac2ce73912", "patch_ids": ["9328ba32be26d9fe683c80fdd6b36df0"], "statement_hash": "643643d3ffd6a9b6501ade1c0568e39dbcfb4385298e94b3ec7d1270c8664ab7", "relations": [{"rule": 2, "type": "equivalent", "target": "538e58c1ee63fcc9f649baafee474f48", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "643643d3ffd6a9b6501ade1c0568e39dbcfb4385298e94b3ec7d1270c8664ab7"}}, {"rule": 2, "type": "equivalent", "target": "f39a444482cdb28c1185e183aff8b9ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "643643d3ffd6a9b6501ade1c0568e39dbcfb4385298e94b3ec7d1270c8664ab7"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f39a444482cdb28c1185e183aff8b9ec", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 pg_basebackup 详细模式下文件名可能打印错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "643643d3ffd6a9b6501ade1c0568e39dbcfb4385298e94b3ec7d1270c8664ab7"}, "url": "/docs/compare/?release=9.2.7#9.2.7-a1e8844c6e44b50c", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "538e58c1ee63fcc9f649baafee474f48", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 pg_basebackup 详细模式下文件名可能打印错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "643643d3ffd6a9b6501ade1c0568e39dbcfb4385298e94b3ec7d1270c8664ab7"}, "url": "/docs/compare/?release=9.1.12#9.1.12-a1e8844c6e44b50c", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.3.3-968699dee9138b9c", "cves": [], "html": "<p>避免在基础备份中把 PGDATA 内的表空间包含两次（Dimitri Fontaine、Magnus Hagander）</p>", "text": "避免在基础备份中把 PGDATA 内的表空间包含两次（Dimitri Fontaine、Magnus Hagander）", "title": "避免在基础备份中把 PGDATA 内的表空间包含两次", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "2928e022b6a983c4f5f6ced00d7695a3589679cf5f05a828ebf720a0f3e79619", "section_path": ["变更"], "commit_groups": [["0463b9419", "2edf3e82c", "773e4d5e4", "b168c5ef2"]], "identity_text": "Avoid including tablespaces inside PGDATA twice in base backups (Dimitri Fontaine, Magnus Hagander)", "commit_aliases": ["0463b9419", "2edf3e82c", "773e4d5e4", "b168c5ef2"], "source_commits": ["0463b9419"], "source_entry_id": "9.3.3/changes/058", "db_id": "1f5a6456c9e4adfd9c1c368dc9a3ed71", "patch_ids": ["b7c73de8666ac4c48e613ba2ff727d67"], "statement_hash": "a8670bd07dad1206796d462e345374652f5958532e7382d833b7e5562a199df4", "relations": [{"rule": 2, "type": "equivalent", "target": "6a4f01dfa6521c8033d9ba717615091e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8670bd07dad1206796d462e345374652f5958532e7382d833b7e5562a199df4"}}, {"rule": 2, "type": "equivalent", "target": "be798cdf9948784612abe0e7bfd94691", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8670bd07dad1206796d462e345374652f5958532e7382d833b7e5562a199df4"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6a4f01dfa6521c8033d9ba717615091e", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "避免在基础备份中把 PGDATA 内的表空间包含两次", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8670bd07dad1206796d462e345374652f5958532e7382d833b7e5562a199df4"}, "url": "/docs/compare/?release=9.2.7#9.2.7-968699dee9138b9c", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "be798cdf9948784612abe0e7bfd94691", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "避免在基础备份中把 PGDATA 内的表空间包含两次", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a8670bd07dad1206796d462e345374652f5958532e7382d833b7e5562a199df4"}, "url": "/docs/compare/?release=9.1.12#9.1.12-968699dee9138b9c", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}]}, {"id": "9.3.3-64aa85b276874fb3", "cves": [], "html": "<p>修复 <span>ecpg</span> 中未对齐的描述符（MauMau）</p>", "text": "修复 ecpg 中未对齐的描述符（MauMau）", "title": "修复 ecpg 中未对齐的描述符", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "2364e38a98e9d05017b8dd013a0f2efc7dc4709783db81c7353f4d682e3ba302", "section_path": ["变更"], "commit_groups": [["28fff0ef8", "799728b0b", "9f5b3a1a1", "a29b6c342", "d685e2424", "d68a65b01"]], "identity_text": "Fix misaligned descriptors in ecpg (MauMau)", "commit_aliases": ["28fff0ef8", "799728b0b", "9f5b3a1a1", "a29b6c342", "d685e2424", "d68a65b01"], "source_commits": ["28fff0ef8"], "source_entry_id": "9.3.3/changes/059", "db_id": "6ade69ef56fb0dd48990328ce7dca6b0", "patch_ids": ["e03a09d8287b75a9efd6c0a67812b3f6"], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f", "relations": [{"rule": 2, "type": "equivalent", "target": "4d69980cad10a28e2496f4dd4cddc7e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}}, {"rule": 2, "type": "equivalent", "target": "63187688b264935a9fb8c639a9e8279c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}}, {"rule": 2, "type": "equivalent", "target": "ec5d2ade7e0c822042799186a50168ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4d69980cad10a28e2496f4dd4cddc7e8", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 ecpg 中未对齐的描述符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}, "url": "/docs/compare/?release=9.2.7#9.2.7-64aa85b276874fb3", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "ec5d2ade7e0c822042799186a50168ff", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 ecpg 中未对齐的描述符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}, "url": "/docs/compare/?release=9.1.12#9.1.12-64aa85b276874fb3", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "63187688b264935a9fb8c639a9e8279c", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复 ecpg 中未对齐的描述符", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e1db1186cbe3bdfe73043360b8f2568e87b7ba04052a239fbc39f29c728a2a0f"}, "url": "/docs/compare/?release=9.0.16#9.0.16-64aa85b276874fb3", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-5be39aaedee6747a", "cves": [], "html": "<p>在 <span>ecpg</span> 中正确处理连接参数中缺少主机名的情况（Michael Meskes）</p>", "text": "在 ecpg 中正确处理连接参数中缺少主机名的情况（Michael Meskes）", "title": "在 ecpg 中正确处理连接参数中缺少主机名的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "e446c9dd087e4e9630c8a7dd0a3dcbe6063cb3dbb4efa538ce2f1f2e2c26d176", "section_path": ["变更"], "commit_groups": [["119a59879", "17bcdd01f", "7c957ec83", "8404037d8", "948498274", "96de4939c"]], "identity_text": "In ecpg, handle lack of a hostname in the connection parameters properly (Michael Meskes)", "commit_aliases": ["119a59879", "17bcdd01f", "7c957ec83", "8404037d8", "948498274", "96de4939c"], "source_commits": ["8404037d8"], "source_entry_id": "9.3.3/changes/060", "db_id": "4afa4aeef213bb9e4d870a5d611ec8ec", "patch_ids": ["5fc097b300d6edecc744c564f8f804bc"], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c", "relations": [{"rule": 2, "type": "equivalent", "target": "9ceb30ec27e9b5568d6e7846e555febe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}}, {"rule": 2, "type": "equivalent", "target": "a9a7c28946aaa4ecbcc57c3da8a77f66", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}}, {"rule": 2, "type": "equivalent", "target": "d59fea6d312588389fd5cef530e33d24", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ceb30ec27e9b5568d6e7846e555febe", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在 ecpg 中正确处理连接参数中缺少主机名的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}, "url": "/docs/compare/?release=9.2.7#9.2.7-5be39aaedee6747a", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "d59fea6d312588389fd5cef530e33d24", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在 ecpg 中正确处理连接参数中缺少主机名的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}, "url": "/docs/compare/?release=9.1.12#9.1.12-5be39aaedee6747a", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "a9a7c28946aaa4ecbcc57c3da8a77f66", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "在 ecpg 中正确处理连接参数中缺少主机名的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d833eb55bb1b2ab0d6fbbf79549cd22d15720cb59e0aaf7e0d6dd9e7033f94c"}, "url": "/docs/compare/?release=9.0.16#9.0.16-5be39aaedee6747a", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-7a047f19a28a01d9", "cves": [], "html": "<p>修复 <code>contrib/dblink</code> 连接启动中的性能退化（Joe Conway）</p>\n<p>在客户端和服务器编码一致时避免一次不必要的往返。</p>", "text": "修复 contrib/dblink 连接启动中的性能退化（Joe Conway） 在客户端和服务器编码一致时避免一次不必要的往返。", "title": "修复 contrib/dblink 连接启动中的性能退化", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "77ea0d7446f5da04de1c791bfa39c65606d48621270de5881bca867ddea17e82", "section_path": ["变更"], "commit_groups": [["0ec530625", "6c8b16e30", "70165f25b", "7f4ef622f", "9057adc23", "d6ca510d9"]], "identity_text": "Fix performance regression in contrib/dblink connection startup (Joe Conway) Avoid an unnecessary round trip when client and server encodings match.", "commit_aliases": ["0ec530625", "6c8b16e30", "70165f25b", "7f4ef622f", "9057adc23", "d6ca510d9"], "source_commits": ["0ec530625"], "source_entry_id": "9.3.3/changes/061", "db_id": "98099b381e1ec49a7b3ab6e5a1ccdfca", "patch_ids": ["99374413eb03c5a4ad8db4510d4da7eb"], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd", "relations": [{"rule": 2, "type": "equivalent", "target": "4d74dcc2749f5c61e773a56a14b99eea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}}, {"rule": 2, "type": "equivalent", "target": "5cb1d3ba7445ae6a191f7724379570f4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}}, {"rule": 2, "type": "equivalent", "target": "775f3b33cad27f641eef2602e318afa9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "775f3b33cad27f641eef2602e318afa9", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 contrib/dblink 连接启动中的性能退化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}, "url": "/docs/compare/?release=9.2.7#9.2.7-7a047f19a28a01d9", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "5cb1d3ba7445ae6a191f7724379570f4", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 contrib/dblink 连接启动中的性能退化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}, "url": "/docs/compare/?release=9.1.12#9.1.12-7a047f19a28a01d9", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "4d74dcc2749f5c61e773a56a14b99eea", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复 contrib/dblink 连接启动中的性能退化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0028db7ac6c71f3e2d08a3afa4922ca7c475d129e825ed766c3db1bd97df59fd"}, "url": "/docs/compare/?release=9.0.16#9.0.16-7a047f19a28a01d9", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-12dc4e09c6994244", "cves": [], "html": "<p>修复 <code>contrib/isn</code> 中 ISMN 值校验位计算错误的问题（Fabien Coelho）</p>", "text": "修复 contrib/isn 中 ISMN 值校验位计算错误的问题（Fabien Coelho）", "title": "修复 contrib/isn 中 ISMN 值校验位计算错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "5010fce2bbc4a133e71f4272940db640ee8638e47352441b7663d7c75885bf10", "section_path": ["变更"], "commit_groups": [["492b68541", "50c5770ec", "5143dfd57", "6c3f040be", "866a1f092", "f6d6b42f2"]], "identity_text": "In contrib/isn, fix incorrect calculation of the check digit for ISMN values (Fabien Coelho)", "commit_aliases": ["492b68541", "50c5770ec", "5143dfd57", "6c3f040be", "866a1f092", "f6d6b42f2"], "source_commits": ["50c5770ec"], "source_entry_id": "9.3.3/changes/062", "db_id": "fd2cac0ffae045f6179466497f87b84c", "patch_ids": ["d15685548c228f14cab17d60ba6d5658"], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2", "relations": [{"rule": 2, "type": "equivalent", "target": "36f14f8752af3dfa35b013a3705d8f0b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}}, {"rule": 2, "type": "equivalent", "target": "9141a6601bbf463730fe47d298a3829b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}}, {"rule": 2, "type": "equivalent", "target": "c4ff74999ccd489cec6330b58a38053a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "36f14f8752af3dfa35b013a3705d8f0b", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 contrib/isn 中 ISMN 值校验位计算错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}, "url": "/docs/compare/?release=9.2.7#9.2.7-12dc4e09c6994244", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "9141a6601bbf463730fe47d298a3829b", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "修复 contrib/isn 中 ISMN 值校验位计算错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}, "url": "/docs/compare/?release=9.1.12#9.1.12-12dc4e09c6994244", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "c4ff74999ccd489cec6330b58a38053a", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "修复 contrib/isn 中 ISMN 值校验位计算错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e33e100fa66b59aa9020d4165cc261e4014e6efc27ebf95c341cb0c605684be2"}, "url": "/docs/compare/?release=9.0.16#9.0.16-12dc4e09c6994244", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-e7760eccc968f5b5", "cves": [], "html": "<p>修复 <code>contrib/pgbench</code> 的进度日志，避免缩放因子很大时溢出（Tatsuo Ishii）</p>", "text": "修复 contrib/pgbench 的进度日志，避免缩放因子很大时溢出（Tatsuo Ishii）", "title": "修复 contrib/pgbench 的进度日志，避免缩放因子很大时溢出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "cb3801f1de847d4fb2c53fb39e27a635484deb61917ee309e91350ebb4229979", "section_path": ["变更"], "commit_groups": [["27902bc91", "841a65482"]], "identity_text": "Fix contrib/pgbench's progress logging to avoid overflow when the scale factor is large (Tatsuo Ishii)", "commit_aliases": ["27902bc91", "841a65482"], "source_commits": ["27902bc91"], "source_entry_id": "9.3.3/changes/063", "db_id": "2ab0f96d9347ce3a0822167ad064ef89", "patch_ids": ["a85422e3e70542e8ec6c095f9d5f810e"], "statement_hash": "2999e5cfdfb4051be32cd8c6e795f02106c6ab5cc1cf36826da53ca50f4e9105", "relations": [], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-e2ba7295cc1bd643", "cves": [], "html": "<p>修复 <code>contrib/pg_stat_statement</code> 对 <code>CURRENT_DATE</code> 及相关构造的处理（Kyotaro Horiguchi）</p>", "text": "修复 contrib/pg_stat_statement 对 CURRENT_DATE 及相关构造的处理（Kyotaro Horiguchi）", "title": "修复 contrib/pg_stat_statement 对 CURRENT_DATE 及相关构造的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "e02eaed490c91e1fb56a9fce6fd3c133e2ccb8e82d2db158adb45209086761a8", "section_path": ["变更"], "commit_groups": [["0950d67ee", "27ab1eb7e", "69c7a9838"]], "identity_text": "Fix contrib/pg_stat_statement's handling of CURRENT_DATE and related constructs (Kyotaro Horiguchi)", "commit_aliases": ["0950d67ee", "27ab1eb7e", "69c7a9838"], "source_commits": ["0950d67ee"], "source_entry_id": "9.3.3/changes/064", "db_id": "517b0a2ebf1fb0debc46d837010e22b7", "patch_ids": ["864532af57c70a346dbc89c8169246c8"], "statement_hash": "478a4ad21605f5c5031abae99723b1e23b20fad08cfb9c4b76cd742c389a50c0", "relations": [{"rule": 2, "type": "equivalent", "target": "03b3ab07c5bbadb47f48bde12b038782", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "478a4ad21605f5c5031abae99723b1e23b20fad08cfb9c4b76cd742c389a50c0"}}], "version": "9.3.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "03b3ab07c5bbadb47f48bde12b038782", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "修复 contrib/pg_stat_statement 对 CURRENT_DATE 及相关构造的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "478a4ad21605f5c5031abae99723b1e23b20fad08cfb9c4b76cd742c389a50c0"}, "url": "/docs/compare/?release=9.2.7#9.2.7-e2ba7295cc1bd643", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}]}, {"id": "9.3.3-8dfd8e588e048a5f", "cves": [], "html": "<p>改进 <code>contrib/postgres_fdw</code> 对连接丢失的错误处理（Tom Lane）</p>", "text": "改进 contrib/postgres_fdw 对连接丢失的错误处理（Tom Lane）", "title": "改进 contrib/postgres_fdw 对连接丢失的错误处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "3f3c107749507021c5f014b87efe54b61f2339cff215a35c3bc03c23cc57410b", "section_path": ["变更"], "commit_groups": [["00d4f2af8", "eb3d350db"]], "identity_text": "Improve lost-connection error handling in contrib/postgres_fdw (Tom Lane)", "commit_aliases": ["00d4f2af8", "eb3d350db"], "source_commits": ["eb3d350db"], "source_entry_id": "9.3.3/changes/065", "db_id": "bef921a6a01d35774e145cf9f14840a2", "patch_ids": ["e8f6f7a0f7c701057d567d4950bb6b28"], "statement_hash": "3bb8e51ace87a4e40c6037ff31db654011accf9c96ea3cce4a82c7c71240016e", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-182deaaf76fb1a8c", "cves": [], "html": "<p>确保仅安装客户端代码的流程按文档说明工作（Peter Eisentraut）</p>", "text": "确保仅安装客户端代码的流程按文档说明工作（Peter Eisentraut）", "title": "确保仅安装客户端代码的流程按文档说明工作", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "f5e23ded6f91426b954fd0ae7245d1691dab2ce19f0cdd9e9c01825c8b994e48", "section_path": ["变更"], "commit_groups": [["15699d9bf", "2346c383a", "526e38751", "586bea612", "6d969b000", "ad6bf0291"]], "identity_text": "Ensure client-code-only installation procedure works as documented (Peter Eisentraut)", "commit_aliases": ["15699d9bf", "2346c383a", "526e38751", "586bea612", "6d969b000", "ad6bf0291"], "source_commits": ["586bea612"], "source_entry_id": "9.3.3/changes/066", "db_id": "58bd9f078f3ada69900a6b8cbbe2602d", "patch_ids": ["dabeb3e5a477cea65343e6f471110c1b"], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011", "relations": [{"rule": 2, "type": "equivalent", "target": "c303c36187628f862cebe9630133e7d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}}, {"rule": 2, "type": "equivalent", "target": "c7b6f1186ffd36c215a6e25af968b3aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}}, {"rule": 2, "type": "equivalent", "target": "d17b909c487519e35c91540ad9a14013", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d17b909c487519e35c91540ad9a14013", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "确保仅安装客户端代码的流程按文档说明工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}, "url": "/docs/compare/?release=9.2.7#9.2.7-182deaaf76fb1a8c", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "c7b6f1186ffd36c215a6e25af968b3aa", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "确保仅安装客户端代码的流程按文档说明工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}, "url": "/docs/compare/?release=9.1.12#9.1.12-182deaaf76fb1a8c", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "c303c36187628f862cebe9630133e7d7", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "确保仅安装客户端代码的流程按文档说明工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "982a22ba0c0fc9f39ed5a187a45c862a30663b01fb6f99c6e1e91f02dedab011"}, "url": "/docs/compare/?release=9.0.16#9.0.16-182deaaf76fb1a8c", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-49e072b5f4bb2a3c", "cves": [], "html": "<p>在 Mingw 和 Cygwin 构建中，把 <span>libpq</span> DLL 安装到 <code>bin</code> 目录（Andrew Dunstan）</p>\n<p>这与 MSVC 构建长期以来的做法一致。它应该能解决 <span>psql</span> 等程序因找不到 DLL 而无法启动的问题。</p>", "text": "在 Mingw 和 Cygwin 构建中，把 libpq DLL 安装到 bin 目录（Andrew Dunstan） 这与 MSVC 构建长期以来的做法一致。它应该能解决 psql 等程序因找不到 DLL 而无法启动的问题。", "title": "在 Mingw 和 Cygwin 构建中，把 libpq DLL 安装到 bin 目录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "f7d5416438508338990fb8613b75ad0fc2fab9ab994a785880e329fcdaab4396", "section_path": ["变更"], "commit_groups": [["1e9876c3b", "59d64e7f3", "6e96d4db8", "ae3c98b9b", "d587298b8", "dfb4a1a21"]], "identity_text": "In Mingw and Cygwin builds, install the libpq DLL in the bin directory (Andrew Dunstan) This duplicates what the MSVC build has long done. It should fix problems with programs like psql failing to start because they can't find the DLL.", "commit_aliases": ["1e9876c3b", "59d64e7f3", "6e96d4db8", "ae3c98b9b", "d587298b8", "dfb4a1a21"], "source_commits": ["1e9876c3b"], "source_entry_id": "9.3.3/changes/067", "db_id": "0302567255deea4d2411fab39bd02c56", "patch_ids": ["9d06b52bf2870e0983b0a028ceb19583"], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e", "relations": [{"rule": 2, "type": "equivalent", "target": "89491f71df83763d94751b95b329fa93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}}, {"rule": 2, "type": "equivalent", "target": "b6021cbbca322e4b8f2cd2271b75b619", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}}, {"rule": 2, "type": "equivalent", "target": "fee9d6a59e850baf90cda45821eecacf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fee9d6a59e850baf90cda45821eecacf", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在 Mingw 和 Cygwin 构建中，把 libpq DLL 安装到 bin 目录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}, "url": "/docs/compare/?release=9.2.7#9.2.7-49e072b5f4bb2a3c", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "b6021cbbca322e4b8f2cd2271b75b619", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在 Mingw 和 Cygwin 构建中，把 libpq DLL 安装到 bin 目录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}, "url": "/docs/compare/?release=9.1.12#9.1.12-49e072b5f4bb2a3c", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "89491f71df83763d94751b95b329fa93", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "在 Mingw 和 Cygwin 构建中，把 libpq DLL 安装到 bin 目录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3241a1ed0f7d952330d81e639844192b4a36218a5e3e61baa69a488b4eaa444e"}, "url": "/docs/compare/?release=9.0.16#9.0.16-49e072b5f4bb2a3c", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-46874437a5da5287", "cves": [], "html": "<p>在 Cygwin 构建中避免使用已弃用的 <code>dllwrap</code> 工具（Marco Atzeri）</p>", "text": "在 Cygwin 构建中避免使用已弃用的 dllwrap 工具（Marco Atzeri）", "title": "在 Cygwin 构建中避免使用已弃用的 dllwrap 工具", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "67e90d8a54ad13e94bd6202bf9dc78e93282a45968abc4842ce64cf91bc772f7", "section_path": ["变更"], "commit_groups": [["1c0bf372f", "27942baf4", "7e1531a45", "e5c22c15d", "fad443753"]], "identity_text": "Avoid using the deprecated dllwrap tool in Cygwin builds (Marco Atzeri)", "commit_aliases": ["1c0bf372f", "27942baf4", "7e1531a45", "e5c22c15d", "fad443753"], "source_commits": ["27942baf4"], "source_entry_id": "9.3.3/changes/068", "db_id": "98dd7d1085b2b4e05b5546f35e08703d", "patch_ids": ["16605be71037570d0fad52f59b71aba9"], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240", "relations": [{"rule": 2, "type": "equivalent", "target": "1d75a6e6f4b4ab0a85036c110643ff2d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}}, {"rule": 2, "type": "equivalent", "target": "2fbbffbfcc77e3b6cb58dfd390835926", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}}, {"rule": 2, "type": "equivalent", "target": "7edd7a9bd2c1a7a388c02f3986440490", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d75a6e6f4b4ab0a85036c110643ff2d", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "在 Cygwin 构建中避免使用已弃用的 dllwrap 工具", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}, "url": "/docs/compare/?release=9.2.7#9.2.7-46874437a5da5287", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "2fbbffbfcc77e3b6cb58dfd390835926", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "在 Cygwin 构建中避免使用已弃用的 dllwrap 工具", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}, "url": "/docs/compare/?release=9.1.12#9.1.12-46874437a5da5287", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "7edd7a9bd2c1a7a388c02f3986440490", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "在 Cygwin 构建中避免使用已弃用的 dllwrap 工具", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c61ce3593b62f42b978df4e1942c39d39146496e1ad5de2cc847af3ccfc2240"}, "url": "/docs/compare/?release=9.0.16#9.0.16-46874437a5da5287", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-49ea155f33ac1db4", "cves": [], "html": "<p>支持使用 Visual Studio 2013 构建（Brar Piening）</p>", "text": "支持使用 Visual Studio 2013 构建（Brar Piening）", "title": "支持使用 Visual Studio 2013 构建", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "d077410e8fc702f0fd9120a8341af4d1808956bb8d583edf6663e9b84db55c2a", "section_path": ["变更"], "commit_groups": [["56c08df55", "cec8394b5"]], "identity_text": "Enable building with Visual Studio 2013 (Brar Piening)", "commit_aliases": ["56c08df55", "cec8394b5"], "source_commits": ["56c08df55"], "source_entry_id": "9.3.3/changes/069", "db_id": "4ea721283f5f3b7c3fd6ba4a409971e2", "patch_ids": ["1d966e647bd4c6c2268351c83a6c60b2"], "statement_hash": "10c7d80e280c3edeea102b663c4fc6acdca940d3e8f23f5479fd1d89e27e0414", "relations": [], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.3-4866656560537de7", "cves": [], "html": "<p>不再生成纯文本的 <code>HISTORY</code> 和 <code>src/test/regress/README</code> 文件（Tom Lane）</p>\n<p>这些文本文件与主文档的 HTML 和 PDF 格式重复。维护它们的麻烦远远超过纯文本格式可能的读者。发行版压缩包仍会包含这些名字的文件，但它们只是提示读者查阅主文档的存根。纯文本 <code>INSTALL</code> 文件仍将维护，因为它可以说还有使用场景。</p>", "text": "不再生成纯文本的 HISTORY 和 src/test/regress/README 文件（Tom Lane） 这些文本文件与主文档的 HTML 和 PDF 格式重复。维护它们的麻烦远远超过纯文本格式可能的读者。发行版压缩包仍会包含这些名字的文件，但它们只是提示读者查阅主文档的存根。纯文本 INSTALL 文件仍将维护，因为它可以说还有使用场景。", "title": "不再生成纯文本的 HISTORY 和 src/test/regress/README 文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "73fd9f7771ad7a52b74eb07cd75d12ee7e46a49abddf81169455f2016c5828d0", "section_path": ["变更"], "commit_groups": [["289541520", "3bf5c16f1", "432735cbf", "dd5605104", "e1e7642bd", "f1e522696"]], "identity_text": "Don't generate plain-text HISTORY and src/test/regress/README files anymore (Tom Lane) These text files duplicated the main HTML and PDF documentation formats. The trouble involved in maintaining them greatly outweighs the likely audience for plain-text format. Distribution tarballs will still contain files by these names, but they'll just be stubs directing the reader to consult the main documentation. The plain-text INSTALL file will still be maintained, as there is arguably a use-case for that.", "commit_aliases": ["289541520", "3bf5c16f1", "432735cbf", "dd5605104", "e1e7642bd", "f1e522696"], "source_commits": ["f1e522696"], "source_entry_id": "9.3.3/changes/070", "db_id": "6366e113cf58bb2656b7567937084988", "patch_ids": ["7d33667521b455963a8c0a83d900998a"], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea", "relations": [{"rule": 2, "type": "equivalent", "target": "151af5bd1019d9736efc077efdcd8826", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}}, {"rule": 2, "type": "equivalent", "target": "8f5abd09149c838e8965a43513b33d71", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}}, {"rule": 2, "type": "equivalent", "target": "ce2a90a400c4464691f3dd8c089042fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "151af5bd1019d9736efc077efdcd8826", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "不再生成纯文本的 HISTORY 和 src/test/regress/README 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}, "url": "/docs/compare/?release=9.2.7#9.2.7-4866656560537de7", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "ce2a90a400c4464691f3dd8c089042fb", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "不再生成纯文本的 HISTORY 和 src/test/regress/README 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}, "url": "/docs/compare/?release=9.1.12#9.1.12-4866656560537de7", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "8f5abd09149c838e8965a43513b33d71", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "不再生成纯文本的 HISTORY 和 src/test/regress/README 文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b9b2c925a6a1efc9e97f2c281f87569fc70e31a2ee312bc51abcee47de1f3ea"}, "url": "/docs/compare/?release=9.0.16#9.0.16-4866656560537de7", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}, {"id": "9.3.3-1f3aa232eb6ba7c2", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2013i，以反映约旦的夏令时法规变更和古巴的历史变更。</p>\n<p>此外，时区 <code>Asia/Riyadh87</code>、<code>Asia/Riyadh88</code> 和 <code>Asia/Riyadh89</code> 已被移除，因为 IANA 不再维护它们，而且它们从未代表过实际的民用计时实践。</p>", "text": "把时区数据文件更新为 tzdata 版本 2013i，以反映约旦的夏令时法规变更和古巴的历史变更。 此外，时区 Asia/Riyadh87、Asia/Riyadh88 和 Asia/Riyadh89 已被移除，因为 IANA 不再维护它们，而且它们从未代表过实际的民用计时实践。", "title": "把时区数据文件更新为 tzdata 版本 2013i，以反映约旦的夏令时法规变更和古巴的历史变更。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.3/#id-1.11.6.27.5", "source_hash": "2887e332c6e809ef93d1c50205f6bf370b1ba41b7a6fb50be666b8652b03e36a", "section_path": ["变更"], "commit_groups": [["3212ba534", "46cbcd50e", "4f975b68b", "c0c2d62ac", "cb84fddd9", "e04641f4b"]], "identity_text": "Update time zone data files to tzdata release 2013i for DST law changes in Jordan and historical changes in Cuba. In addition, the zones Asia/Riyadh87, Asia/Riyadh88, and Asia/Riyadh89 have been removed, as they are no longer maintained by IANA, and never represented actual civil timekeeping practice.", "commit_aliases": ["3212ba534", "46cbcd50e", "4f975b68b", "c0c2d62ac", "cb84fddd9", "e04641f4b"], "source_commits": ["46cbcd50e"], "source_entry_id": "9.3.3/changes/071", "db_id": "6f7af8ff0b09719347f315962ff9c3e4", "patch_ids": ["fd2290b7a70cc6cb66ad232720130caf"], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37", "relations": [{"rule": 2, "type": "equivalent", "target": "4e888fdfc2f702951597a37abbd78ad8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}}, {"rule": 2, "type": "equivalent", "target": "67da9ec3694c31e9359907b451b82be8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}}, {"rule": 2, "type": "equivalent", "target": "abe89ecfd07e3e8b4e40f90e03f43376", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}}], "version": "9.3.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "67da9ec3694c31e9359907b451b82be8", "kind": "equivalent", "version": "9.2.7", "label": "9.2.7", "title": "把时区数据文件更新为 tzdata 版本 2013i for DST law changes in Jordan and historical changes in Cuba。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}, "url": "/docs/compare/?release=9.2.7#9.2.7-c3663420a561a922", "source_url": "/docs/release/9.2.7/#id-1.11.6.22.5"}, {"db_id": "4e888fdfc2f702951597a37abbd78ad8", "kind": "equivalent", "version": "9.1.12", "label": "9.1.12", "title": "把时区数据文件更新为 tzdata 版本 2013i for DST law changes in Jordan and historical changes in Cuba。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}, "url": "/docs/compare/?release=9.1.12#9.1.12-c3663420a561a922", "source_url": "/docs/release/9.1.12/#id-1.11.6.17.5"}, {"db_id": "abe89ecfd07e3e8b4e40f90e03f43376", "kind": "equivalent", "version": "9.0.16", "label": "9.0.16", "title": "把时区数据文件更新为 tzdata 版本 2013i（约旦的夏令时法规变更以及古巴的历史变更）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69cd2c066d4e1bcf121caec87c33486ecdcf16c86786704c47ba90e8a588de37"}, "url": "/docs/compare/?release=9.0.16#9.0.16-a88b158de6f55ce2", "source_url": "/docs/release/9.0.16/#id-1.11.6.12.5"}]}]}, {"date": "2013-12-05", "build": "9.3.2", "major": "9.3", "minor": 2, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.2", "eol_date": "2018-11-08", "date_text": "2013-12-05", "supported": false, "manual_url": "/docs/9.3/release-9-3-2.html", "source_url": "/docs/release/9.3.2/", "entry_count": 38, "placeholder": false, "content_hash": "8734b25b4bb6065b112f0a3eb0167b085a579c169a7b13c5dc3f53ab168b2c50", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 38, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，本版本纠正了若干潜在的数据损坏问题。请参见下面前三条变更日志，以确认你的安装是否受影响以及可以采取什么措施。</p>\n<p>不过，如果你是从早于 9.3.1 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-1.html\" title=\"E.25. 版本 9.3.1\">第 E.25 节</a>。</p>", "compatibility_count": 0, "label": "9.3.2", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4682, "support_days": -2883, "entries": [{"id": "9.3.2-abf63764d111cc9f", "cves": [], "html": "<p>修复 <code>VACUUM</code> 判断是否可以更新 <code>relfrozenxid</code> 的测试（Andres Freund）</p>\n<p>某些情况下，<code>VACUUM</code>（手工或自动）可能错误地推进表的 <code>relfrozenxid</code> 值，使元组逃过冻结，导致这些行在经过 2^31 个事务后变得不可见。由于需要多次错误推进才会发生实际丢失，数据丢失的概率相当低，但并非为零。在 9.2.0 及更高版本中，丢失概率更高，而且这一缺陷还可能导致 <span>“<span>could not access status of transaction</span>”</span> 错误。从 9.0.4、8.4.8 或更早版本升级的用户不受影响，但之后的所有版本都包含该缺陷。</p>\n<p>升级后，在把 <a href=\"/docs/9.3/runtime-config-client.html#GUC-VACUUM-FREEZE-TABLE-AGE\"><code>vacuum_freeze_table_age</code></a> 设为零的情况下对所有数据库中的所有表执行清理，可以缓解此问题。这会修复任何潜伏的损坏，但无法修复所有既有的数据错误。不过，如果安装在其生命周期内执行的事务少于 2^31 个更新（可用 <code>SELECT txid_current() &lt; 2^31</code> 检查），则在执行此清理之后即可认为该安装是安全的。</p>", "text": "修复 VACUUM 判断是否可以更新 relfrozenxid 的测试（Andres Freund） 某些情况下，VACUUM（手工或自动）可能错误地推进表的 relfrozenxid 值，使元组逃过冻结，导致这些行在经过 2^31 个事务后变得不可见。由于需要多次错误推进才会发生实际丢失，数据丢失的概率相当低，但并非为零。在 9.2.0 及更高版本中，丢失概率更高，而且这一缺陷还可能导致 “could not access status of transaction” 错误。从 9.0.4、8.4.8 或更早版本升级的用户不受影响，但之后的所有版本都包含该缺陷。 升级后，在把 vacuum_freeze_table_age 设为零的情况下对所有数据库中的所有表执行清理，可以缓解此问题。这会修复任何潜伏的损坏，但无法修复所有既有的数据错误。不过，如果安装在其生命周期内执行的事务少于 2^31 个更新（可用 SELECT txid_current() < 2^31 检查），则在执行此清理之后即可认为该安装是安全的。", "title": "修复 VACUUM 判断是否可以更新 relfrozenxid 的测试", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "0e4d67f0544ea3c9b775745358e9aaae876e2b01af47f415e7591e3375b750e4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix VACUUM's tests to see whether it can update relfrozenxid (Andres Freund) In some cases VACUUM (either manual or autovacuum) could incorrectly advance a table's relfrozenxid value, allowing tuples to escape freezing, causing those rows to become invisible once 2^31 transactions have elapsed. The probability of data loss is fairly low since multiple incorrect advancements would need to happen before actual loss occurs, but it's not zero. In 9.2.0 and later, the probability of loss is higher, and it's also possible to get could not access status of transaction errors as a consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8 or earlier are not affected, but all later versions contain the bug. The issue can be ameliorated by, after upgrading, vacuuming all tables in all databases while having vacuum_freeze_table_age set to zero. This will fix any latent corruption but will not be able to fix all pre-existing data errors. However, an installation can be presumed safe after performing this vacuuming if it has executed fewer than 2^31 update transactions in its lifetime (check this with SELECT txid_current() < 2^31).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/001", "db_id": "e856fecdad9ecd4960731d940a36a796", "patch_ids": [], "statement_hash": "2120ae1b60ab99c872851c49d00100a9ec8458028d02a05da1fb5639c6e4b18c", "relations": [{"rule": 2, "type": "equivalent", "target": "40a37229f32a1a4d8227503685cb88c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2120ae1b60ab99c872851c49d00100a9ec8458028d02a05da1fb5639c6e4b18c"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "40a37229f32a1a4d8227503685cb88c7", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复 VACUUM 判断是否可以更新 relfrozenxid 的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2120ae1b60ab99c872851c49d00100a9ec8458028d02a05da1fb5639c6e4b18c"}, "url": "/docs/compare/?release=9.2.6#9.2.6-abf63764d111cc9f", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}]}, {"id": "9.3.2-64ede22a07e66998", "cves": [], "html": "<p>修复 MultiXactId 冻结中的多个缺陷（Andres Freund、Álvaro Herrera）</p>\n<p>这些缺陷可能导致 <span>“<span>could not access status of transaction</span>”</span> 错误，或者出现重复或消失的行。从 9.3.0 之前版本升级的用户不受影响。</p>\n<p>升级后，在把 <a href=\"/docs/9.3/runtime-config-client.html#GUC-VACUUM-FREEZE-TABLE-AGE\"><code>vacuum_freeze_table_age</code></a> 设为零的情况下对所有数据库中的所有表执行清理，可以缓解此问题。这会修复潜伏的损坏，但无法修复所有既有的数据错误。</p>\n<p>另外一个独立的问题是，这些缺陷还可能导致备库与主库失去同步，从而表现出主库中不存在的数据错误。因此建议，升级后把运行过 9.3.0 和 9.3.1 的备库从主库重新克隆（例如用新的基础备份）。</p>", "text": "修复 MultiXactId 冻结中的多个缺陷（Andres Freund、Álvaro Herrera） 这些缺陷可能导致 “could not access status of transaction” 错误，或者出现重复或消失的行。从 9.3.0 之前版本升级的用户不受影响。 升级后，在把 vacuum_freeze_table_age 设为零的情况下对所有数据库中的所有表执行清理，可以缓解此问题。这会修复潜伏的损坏，但无法修复所有既有的数据错误。 另外一个独立的问题是，这些缺陷还可能导致备库与主库失去同步，从而表现出主库中不存在的数据错误。因此建议，升级后把运行过 9.3.0 和 9.3.1 的备库从主库重新克隆（例如用新的基础备份）。", "title": "修复 MultiXactId 冻结中的多个缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "6185901b0fcdc8357fa8e916099d0a09038a895ed18787dfa04d13b71097b8d0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix multiple bugs in MultiXactId freezing (Andres Freund, Álvaro Herrera) These bugs could lead to could not access status of transaction errors, or to duplicate or vanishing rows. Users upgrading from releases prior to 9.3.0 are not affected. The issue can be ameliorated by, after upgrading, vacuuming all tables in all databases while having vacuum_freeze_table_age set to zero. This will fix latent corruption but will not be able to fix all pre-existing data errors. As a separate issue, these bugs can also cause standby servers to get out of sync with the primary, thus exhibiting data errors that are not in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1 standby servers be re-cloned from the primary (e.g., with a new base backup) after upgrading.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/002", "db_id": "1b6363f3bcc7033477d717376f544f87", "patch_ids": [], "statement_hash": "e258168b4f9ec309b8a01c74f70a4ae86078ea96f736ceee58dc4f8f13607fcd", "relations": [], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-75430459b83c6fcc", "cves": [], "html": "<p>修复热备启动期间 <code>pg_clog</code> 和 <code>pg_subtrans</code> 的初始化（Andres Freund、Heikki Linnakangas）</p>\n<p>这一缺陷会把已提交事务标记为未提交，从而在备库开始接受热备查询的那一刻造成数据丢失。除非备库启动时主库自上次检查点以来执行了大量更新事务，否则这种损坏的可能性很小。症状包括行缺失、本应删除的行仍可见，以及已更新行的过时版本与新版本同时可见。</p>\n<p>该缺陷是在 9.3.0、9.2.5、9.1.10 和 9.0.14 版本中引入的。只运行过更早版本的备库没有风险。建议曾运行过任何含缺陷版本的备库在升级后从主库重新克隆（例如用新的基础备份）。</p>", "text": "修复热备启动期间 pg_clog 和 pg_subtrans 的初始化（Andres Freund、Heikki Linnakangas） 这一缺陷会把已提交事务标记为未提交，从而在备库开始接受热备查询的那一刻造成数据丢失。除非备库启动时主库自上次检查点以来执行了大量更新事务，否则这种损坏的可能性很小。症状包括行缺失、本应删除的行仍可见，以及已更新行的过时版本与新版本同时可见。 该缺陷是在 9.3.0、9.2.5、9.1.10 和 9.0.14 版本中引入的。只运行过更早版本的备库没有风险。建议曾运行过任何含缺陷版本的备库在升级后从主库重新克隆（例如用新的基础备份）。", "title": "修复热备启动期间 pg_clog 和 pg_subtrans 的初始化", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "6dae40bcb201811047a319c5216ac6bec23e8131658441c15860b671bc23ed18", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix initialization of pg_clog and pg_subtrans during hot standby startup (Andres Freund, Heikki Linnakangas) This bug can cause data loss on standby servers at the moment they start to accept hot-standby queries, by marking committed transactions as uncommitted. The likelihood of such corruption is small unless, at the time of standby startup, the primary server has executed many updating transactions since its last checkpoint. Symptoms include missing rows, rows that should have been deleted being still visible, and obsolete versions of updated rows being still visible alongside their newer versions. This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14. Standby servers that have only been running earlier releases are not at risk. It's recommended that standby servers that have ever run any of the buggy releases be re-cloned from the primary (e.g., with a new base backup) after upgrading.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/003", "db_id": "4354cc947d1a9e224823cb48f97baa29", "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913", "relations": [{"rule": 2, "type": "equivalent", "target": "0ef1879d1e53afd7f1388c2bfb67b1d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}}, {"rule": 2, "type": "equivalent", "target": "901efd8aebaf77a6339dc8eb68def63e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}}, {"rule": 2, "type": "equivalent", "target": "be0f921e1ac97bf95d24f7ccbbfc3cd4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "901efd8aebaf77a6339dc8eb68def63e", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复热备启动期间 pg_clog 和 pg_subtrans 的初始化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}, "url": "/docs/compare/?release=9.2.6#9.2.6-75430459b83c6fcc", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "0ef1879d1e53afd7f1388c2bfb67b1d4", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复热备启动期间 pg_clog 和 pg_subtrans 的初始化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}, "url": "/docs/compare/?release=9.1.11#9.1.11-75430459b83c6fcc", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "be0f921e1ac97bf95d24f7ccbbfc3cd4", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "修复热备启动期间 pg_clog 和 pg_subtrans 的初始化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4611244681fcbdfbcafaa4c61bd63516f6a7f240970fa8e7ac1910a4cda32913"}, "url": "/docs/compare/?release=9.0.15#9.0.15-75430459b83c6fcc", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-0e6e3d0a52c792a6", "cves": [], "html": "<p>修复更新链遍历中的多个缺陷（Andres Freund、Álvaro Herrera）</p>\n<p>在存在并发更新的情况下，这些缺陷可能导致错误行为，例如锁定甚至更新错误的行。也可能出现虚假的 <span>“<span>unable to fetch updated version of tuple</span>”</span> 错误。</p>", "text": "修复更新链遍历中的多个缺陷（Andres Freund、Álvaro Herrera） 在存在并发更新的情况下，这些缺陷可能导致错误行为，例如锁定甚至更新错误的行。也可能出现虚假的 “unable to fetch updated version of tuple” 错误。", "title": "修复更新链遍历中的多个缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "0fac57dc8691e5b58aedbc17953d183d8d9cf31eb630723dfdc82a17ea3e5623", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix multiple bugs in update chain traversal (Andres Freund, Álvaro Herrera) These bugs could result in incorrect behavior, such as locking or even updating the wrong row, in the presence of concurrent updates. Spurious unable to fetch updated version of tuple errors were also possible.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/004", "db_id": "812fa8047af2146fff23d34b2ae83c19", "patch_ids": [], "statement_hash": "8669746ada314dadd486d5dfc162a6a690d8b2dcd4d2721a70371aaa32008da3", "relations": [], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-1895d11a55da5937", "cves": [], "html": "<p>修复快速路径锁定中的悬空指针问题（Tom Lane）</p>\n<p>这可能导致共享内存中锁数据结构的损坏，造成 <span>“<span>lock already held</span>”</span> 和其他奇怪的错误。</p>", "text": "修复快速路径锁定中的悬空指针问题（Tom Lane） 这可能导致共享内存中锁数据结构的损坏，造成 “lock already held” 和其他奇怪的错误。", "title": "修复快速路径锁定中的悬空指针问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "2281a33a72c79d471ed91e5a642290940d5f53ada32063fe715c56e34374ff67", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix dangling-pointer problem in fast-path locking (Tom Lane) This could lead to corruption of the lock data structures in shared memory, causing lock already held and other odd errors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/005", "db_id": "c517f677b2703c4049cc3bf0adc59a4b", "patch_ids": [], "statement_hash": "020f282ee518184028bea679963a34d1570c06bcb386bbea1109a99c6d72a8bc", "relations": [{"rule": 2, "type": "equivalent", "target": "2486a4438d3abc57225f8f26b280fe9f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "020f282ee518184028bea679963a34d1570c06bcb386bbea1109a99c6d72a8bc"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2486a4438d3abc57225f8f26b280fe9f", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复快速路径锁定中的悬空指针问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "020f282ee518184028bea679963a34d1570c06bcb386bbea1109a99c6d72a8bc"}, "url": "/docs/compare/?release=9.2.6#9.2.6-1895d11a55da5937", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}]}, {"id": "9.3.2-1675fea819ed3975", "cves": [], "html": "<p>修复超时管理中的多种竞态条件（Tom Lane）</p>\n<p>这些错误可能导致服务器进程因阻塞了 SIGALRM 和/或 SIGINT 而失去响应。</p>", "text": "修复超时管理中的多种竞态条件（Tom Lane） 这些错误可能导致服务器进程因阻塞了 SIGALRM 和/或 SIGINT 而失去响应。", "title": "修复超时管理中的多种竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "b583cee72f41a3aa14422b1d6cd2c771844b1891711ea86d49421c4768b529d9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix assorted race conditions in timeout management (Tom Lane) These errors could result in a server process becoming unresponsive because it had blocked SIGALRM and/or SIGINT.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/006", "db_id": "06841a4a99b2134624db55e0b32c88ae", "patch_ids": [], "statement_hash": "fb0558c6c9f2b3883ba2a8f96796235d91e3956c93b7f2051e613032f3787656", "relations": [], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-3c68846981b0ce05", "cves": [], "html": "<p>在 WAL 重放期间截断 <code>pg_multixact</code> 内容（Andres Freund）</p>\n<p>这避免了备库中磁盘空间消耗不断增加。</p>", "text": "在 WAL 重放期间截断 pg_multixact 内容（Andres Freund） 这避免了备库中磁盘空间消耗不断增加。", "title": "在 WAL 重放期间截断 pg_multixact 内容", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "1f0e1d3f4baab9df0a9d0dd015b5991613eb990edad968ec1234a9d36ac3aa2e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Truncate pg_multixact contents during WAL replay (Andres Freund) This avoids ever-increasing disk space consumption in standby servers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/007", "db_id": "cd2378a1b741e9efcd50ec64673f309e", "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938", "relations": [{"rule": 2, "type": "equivalent", "target": "2ab09ab16fc74bcd964e8dbf67d0b5a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}}, {"rule": 2, "type": "equivalent", "target": "714c9a65006f2669cc88af918eeedf2d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}}, {"rule": 2, "type": "equivalent", "target": "bba9adb4cf79576fe7660d52aac70f83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}}], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "714c9a65006f2669cc88af918eeedf2d", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "在 WAL 重放期间截断 pg_multixact 内容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}, "url": "/docs/compare/?release=9.2.6#9.2.6-3c68846981b0ce05", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "2ab09ab16fc74bcd964e8dbf67d0b5a0", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "在 WAL 重放期间截断 pg_multixact 内容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}, "url": "/docs/compare/?release=9.1.11#9.1.11-3c68846981b0ce05", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "bba9adb4cf79576fe7660d52aac70f83", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "在 WAL 重放期间截断 pg_multixact 内容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29faa1b46cf68bb6bb0936f1efff9ff5cbf3126d3a02443747732ea2953a8938"}, "url": "/docs/compare/?release=9.0.15#9.0.15-3c68846981b0ce05", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-95f7664f268523da", "cves": [], "html": "<p>确保防回卷 <code>VACUUM</code> 在仅验证了没有元组需要冻结时也把该页计为已扫描（Sergey Burladyan、Jeff Janes）</p>\n<p>这一缺陷可能导致 <code>relfrozenxid</code> 未能推进，使该表仍被认为需要再次防回卷清理。最坏情况下，数据库甚至可能为防止回卷而关闭。</p>", "text": "确保防回卷 VACUUM 在仅验证了没有元组需要冻结时也把该页计为已扫描（Sergey Burladyan、Jeff Janes） 这一缺陷可能导致 relfrozenxid 未能推进，使该表仍被认为需要再次防回卷清理。最坏情况下，数据库甚至可能为防止回卷而关闭。", "title": "确保防回卷 VACUUM 在仅验证了没有元组需要冻结时也把该页计为已扫描", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "a07069e7032656a65069bd4efc178198f7dc2888af77d5127282c75fe898994e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure an anti-wraparound VACUUM counts a page as scanned when it's only verified that no tuples need freezing (Sergey Burladyan, Jeff Janes) This bug could result in failing to advance relfrozenxid, so that the table would still be thought to need another anti-wraparound vacuum. In the worst case the database might even shut down to prevent wraparound.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/008", "db_id": "7ea998c16fef7ac669aedea035a9af76", "patch_ids": [], "statement_hash": "d8c65a4738849d16aa8bcf7fda08e5a8994a997950a31a7af75ae91f79fe481b", "relations": [{"rule": 2, "type": "equivalent", "target": "eaa899b49990c5cfa6a56551435f82af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8c65a4738849d16aa8bcf7fda08e5a8994a997950a31a7af75ae91f79fe481b"}}], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "eaa899b49990c5cfa6a56551435f82af", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "确保防回卷 VACUUM 在仅验证了没有元组需要冻结时也把该页计为已扫描", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8c65a4738849d16aa8bcf7fda08e5a8994a997950a31a7af75ae91f79fe481b"}, "url": "/docs/compare/?release=9.2.6#9.2.6-95f7664f268523da", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}]}, {"id": "9.3.2-4a2502503c9e8c8a", "cves": [], "html": "<p>修复 MultiXactId 的全表清理请求机制（Andres Freund）</p>\n<p>这一缺陷可能导致大量无用的自动清理活动。</p>", "text": "修复 MultiXactId 的全表清理请求机制（Andres Freund） 这一缺陷可能导致大量无用的自动清理活动。", "title": "修复 MultiXactId 的全表清理请求机制", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "3f56c100bd44499009ab5999f0f527fc6effd236fb2714c58700cccf8c112d68", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund) This bug could result in large amounts of useless autovacuum activity.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/009", "db_id": "0922e503f06f580d6cbde92ddd0c55c0", "patch_ids": [], "statement_hash": "f765cb9fecbdeeed7e685561e3eae8347f214c6d5c348909e25f87d18f78fa2c", "relations": [], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-8f37e9445b864c31", "cves": [], "html": "<p>修复 GIN 索引 posting 树页面删除中的竞态条件（Heikki Linnakangas）</p>\n<p>这可能导致瞬时的错误结果或查询失败。</p>", "text": "修复 GIN 索引 posting 树页面删除中的竞态条件（Heikki Linnakangas） 这可能导致瞬时的错误结果或查询失败。", "title": "修复 GIN 索引 posting 树页面删除中的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "91c8de29d0767b8dc6411f04e599bafa6ec014779ade9cf26fab54b16b59c731", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race condition in GIN index posting tree page deletion (Heikki Linnakangas) This could lead to transient wrong answers or query failures.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/010", "db_id": "c05264daf32f008727a03c0e9d1634dc", "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0", "relations": [{"rule": 2, "type": "equivalent", "target": "789d7ff24e2fea7a05dbdfb17d12c20d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}}, {"rule": 2, "type": "equivalent", "target": "96fd2c00f600bb1490cdeef970027a27", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}}, {"rule": 2, "type": "equivalent", "target": "e61288b4d8d31e702a099b6c442953d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e61288b4d8d31e702a099b6c442953d6", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复 GIN 索引 posting 树页面删除中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}, "url": "/docs/compare/?release=9.2.6#9.2.6-8f37e9445b864c31", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "96fd2c00f600bb1490cdeef970027a27", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复 GIN 索引 posting 树页面删除中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}, "url": "/docs/compare/?release=9.1.11#9.1.11-8f37e9445b864c31", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "789d7ff24e2fea7a05dbdfb17d12c20d", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "修复 GIN 索引 posting 树页面删除中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "361069838280eea16e9ef539e7627e35249581b15690457108420218bf8de9a0"}, "url": "/docs/compare/?release=9.0.15#9.0.15-8f37e9445b864c31", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-842756fb73bbad02", "cves": [], "html": "<p>修复 SP-GiST 索引创建期间的 <span>“<span>unexpected spgdoinsert() failure</span>”</span> 错误（Teodor Sigaev）</p>", "text": "修复 SP-GiST 索引创建期间的 “unexpected spgdoinsert() failure” 错误（Teodor Sigaev）", "title": "修复 SP-GiST 索引创建期间的 “unexpected spgdoinsert() failure” 错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "2a5d1537535ba108c10568526b596f39a18cfb6f76e742546ae4c5126c4202dd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix unexpected spgdoinsert() failure error during SP-GiST index creation (Teodor Sigaev)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/011", "db_id": "2b98839819d91f11cc4139cc49119418", "patch_ids": [], "statement_hash": "9c38bae562368fd9cea0a62122d3cf8c44e2d57919b1618df75fe92f145c52b0", "relations": [{"rule": 2, "type": "equivalent", "target": "8109c1b7fda854702607ce1bf1c239d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c38bae562368fd9cea0a62122d3cf8c44e2d57919b1618df75fe92f145c52b0"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8109c1b7fda854702607ce1bf1c239d5", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复 SP-GiST 索引创建期间的“unexpected spgdoinsert() failure”错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9c38bae562368fd9cea0a62122d3cf8c44e2d57919b1618df75fe92f145c52b0"}, "url": "/docs/compare/?release=9.2.6#9.2.6-76c1c6d73605b653", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}]}, {"id": "9.3.2-40631a93b70407c8", "cves": [], "html": "<p>修复物化视图中的若干缺陷（Kevin Grittner、Andres Freund）</p>", "text": "修复物化视图中的若干缺陷（Kevin Grittner、Andres Freund）", "title": "修复物化视图中的若干缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "058a6dc4171d343a955a2a631d616119dc6467c666416ebd006bbf1a5cdb1464", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/012", "db_id": "2a8aa9f122833b6e7a52bc794321b9e7", "patch_ids": [], "statement_hash": "9d228b7870fd554936311323ec23889a2e3dd401ed1d6683068d5ec0e9c0dfcf", "relations": [], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-9034970fc9ec3117", "cves": [], "html": "<p>重新允许出现在带别名的 JOIN 内的重复表别名（Tom Lane）</p>\n<p>历史上，<span>PostgreSQL</span> 一直接受类似这样的查询：</p>\n<pre> SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z \n</pre>\n<p>，尽管严格解读 SQL 标准会禁止表别名 <code>x</code> 的重复使用。9.3.0 中一个 misguided 的变更导致它拒绝了一些以前被接受的情况。现已恢复先前行为。</p>", "text": "重新允许出现在带别名的 JOIN 内的重复表别名（Tom Lane） 历史上，PostgreSQL 一直接受类似这样的查询： SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z ，尽管严格解读 SQL 标准会禁止表别名 x 的重复使用。9.3.0 中一个 misguided 的变更导致它拒绝了一些以前被接受的情况。现已恢复先前行为。", "title": "重新允许出现在带别名的 JOIN 内的重复表别名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "6c683bd1ee857d1c90b5e348568a33f2028e95665ffa525ea132acba1e1b17f8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Re-allow duplicate table aliases if they're within aliased JOINs (Tom Lane) Historically PostgreSQL has accepted queries like SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z although a strict reading of the SQL standard would forbid the duplicate usage of table alias x. A misguided change in 9.3.0 caused it to reject some such cases that were formerly accepted. Restore the previous behavior.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/013", "db_id": "7cc52a2e6a62ebc55979a61a74228127", "patch_ids": [], "statement_hash": "7fa85afd8b96a7da5589675dc4947d57aec95a6750bf99f7a2bd5fb97483feee", "relations": [], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-121ab8a03eaa5bea", "cves": [], "html": "<p>避免展平 <code>SELECT</code> 列表中包含包裹在子 <code>SELECT</code> 中的易变函数的子查询（Tom Lane）</p>\n<p>这避免了因易变函数被额外求值而导致的意外结果。</p>", "text": "避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询（Tom Lane） 这避免了因易变函数被额外求值而导致的意外结果。", "title": "避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "36f673840f0b68373a4bec3cac1343cbc17356df61e0c217db78552e5897858d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid flattening a subquery whose SELECT list contains a volatile function wrapped inside a sub-SELECT (Tom Lane) This avoids unexpected results due to extra evaluations of the volatile function.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/014", "db_id": "df73986505d42b26f2af65e7291f2c03", "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb", "relations": [{"rule": 2, "type": "equivalent", "target": "097f89eb3d95a428d6d9eb09740567b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}}, {"rule": 2, "type": "equivalent", "target": "e9f8dfb4a813cd5095b24d286270230d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}}, {"rule": 2, "type": "equivalent", "target": "f9bdc2a201976a72575aab9fdbdd57b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}}], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f9bdc2a201976a72575aab9fdbdd57b1", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}, "url": "/docs/compare/?release=9.2.6#9.2.6-121ab8a03eaa5bea", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "e9f8dfb4a813cd5095b24d286270230d", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}, "url": "/docs/compare/?release=9.1.11#9.1.11-121ab8a03eaa5bea", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "097f89eb3d95a428d6d9eb09740567b8", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f1ea247a1af9ea49cc4c1f3f7800a33edd46ef276b227c080eb986bde425a4bb"}, "url": "/docs/compare/?release=9.0.15#9.0.15-121ab8a03eaa5bea", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-2cfc143b9d165255", "cves": [], "html": "<p>修复规划器对外连接中嵌套的非简单变量子查询输出的处理（Tom Lane）</p>\n<p>这一错误可能为涉及 <code>JOIN</code> 语法中多级子查询的查询生成错误的计划。</p>", "text": "修复规划器对外连接中嵌套的非简单变量子查询输出的处理（Tom Lane） 这一错误可能为涉及 JOIN 语法中多级子查询的查询生成错误的计划。", "title": "修复规划器对外连接中嵌套的非简单变量子查询输出的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "ada1ec4664f7285e5b564fd30bda2445696ab35d571a477e36c3f2f7fecc4f3d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner's processing of non-simple-variable subquery outputs nested within outer joins (Tom Lane) This error could lead to incorrect plans for queries involving multiple levels of subqueries within JOIN syntax.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/015", "db_id": "83db0c7067a3dd635b0fc421851c89f0", "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f", "relations": [{"rule": 2, "type": "equivalent", "target": "bfd610ae371a5c43bd8012820ecdbb5c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}}, {"rule": 2, "type": "equivalent", "target": "e43436cc1913184a43329fe231db587c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}}, {"rule": 2, "type": "equivalent", "target": "eb5dca2b440ae228ba854c17897dc4be", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "eb5dca2b440ae228ba854c17897dc4be", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复规划器对外连接中嵌套的非简单变量子查询输出的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}, "url": "/docs/compare/?release=9.2.6#9.2.6-2cfc143b9d165255", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "e43436cc1913184a43329fe231db587c", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复规划器对外连接中嵌套的非简单变量子查询输出的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}, "url": "/docs/compare/?release=9.1.11#9.1.11-2cfc143b9d165255", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "bfd610ae371a5c43bd8012820ecdbb5c", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "修复规划器对外连接中嵌套的非简单变量子查询输出的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eedf8e5c1fb5dfd7ba629eddc6543b5925c6245cd1a3b2fed4c345035f8a955f"}, "url": "/docs/compare/?release=9.0.15#9.0.15-2cfc143b9d165255", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-a8a348edddbc0196", "cves": [], "html": "<p>修复同一非严格表达式出现在多个 <code>WHERE</code> 和外连接 <code>JOIN</code> 等值子句中时的错误规划（Tom Lane）</p>", "text": "修复同一非严格表达式出现在多个 WHERE 和外连接 JOIN 等值子句中时的错误规划（Tom Lane）", "title": "修复同一非严格表达式出现在多个 WHERE 和外连接 JOIN 等值子句中时的错误规划", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "e3a850ddf6442b802a47bbdf0a2809e696511c0747cc49904f7a75f451a3993d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect planning in cases where the same non-strict expression appears in multiple WHERE and outer JOIN equality clauses (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/016", "db_id": "e60892c36d1507ec27e6b3b2c9dd065f", "patch_ids": [], "statement_hash": "1a07cde888787578e0cd41391ad15a4d650634bbefd7c44ec3fd05e42482c962", "relations": [{"rule": 2, "type": "equivalent", "target": "7fb0525b25e0ba989e91179903b4e15d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1a07cde888787578e0cd41391ad15a4d650634bbefd7c44ec3fd05e42482c962"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fb0525b25e0ba989e91179903b4e15d", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复同一非严格表达式出现在多个 WHERE 和外连接 JOIN 等值子句中时的错误规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1a07cde888787578e0cd41391ad15a4d650634bbefd7c44ec3fd05e42482c962"}, "url": "/docs/compare/?release=9.2.6#9.2.6-a8a348edddbc0196", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}]}, {"id": "9.3.2-38b7b29ad3fce8c3", "cves": [], "html": "<p>修复对子查询的整行引用导致规划器崩溃的问题（Tom Lane）</p>", "text": "修复对子查询的整行引用导致规划器崩溃的问题（Tom Lane）", "title": "修复对子查询的整行引用导致规划器崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "412ac78a3f4fc515185c01ccda6211c2bce9451bef109ba0d5b5f68481ae58b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner crash with whole-row reference to a subquery (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/017", "db_id": "a569976016af70e6b700555b04ab6a5d", "patch_ids": [], "statement_hash": "179c1e2f723447912f0b97ac0f27d79b59627b35ba60a2e92d50e1e687c869e6", "relations": [{"rule": 2, "type": "equivalent", "target": "a9ca73f6071f71970df2f90376ffdad3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "179c1e2f723447912f0b97ac0f27d79b59627b35ba60a2e92d50e1e687c869e6"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a9ca73f6071f71970df2f90376ffdad3", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复对子查询的整行引用导致规划器崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "179c1e2f723447912f0b97ac0f27d79b59627b35ba60a2e92d50e1e687c869e6"}, "url": "/docs/compare/?release=9.2.6#9.2.6-38b7b29ad3fce8c3", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}]}, {"id": "9.3.2-48d46053c2c2eef4", "cves": [], "html": "<p>修复继承树的优化 MIN()/MAX() 计划生成错误（Tom Lane）</p>\n<p>当 MIN()/MAX() 的参数是表达式而不是简单变量时，规划器可能失败。</p>", "text": "修复继承树的优化 MIN()/MAX() 计划生成错误（Tom Lane） 当 MIN()/MAX() 的参数是表达式而不是简单变量时，规划器可能失败。", "title": "修复继承树的优化 MIN()/MAX() 计划生成错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "cea3433b008f7c49859e05e9da2ee8207bd997bc151d0b278522d86eab2b4d01", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect generation of optimized MIN()/MAX() plans for inheritance trees (Tom Lane) The planner could fail in cases where the MIN()/MAX() argument was an expression rather than a simple variable.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/018", "db_id": "c8d909f561ae33e6df161be0742d3c51", "patch_ids": [], "statement_hash": "cdc4f628005617b6d51f3e5befa42b906f36bae45e9832781c08e18b4b81bd61", "relations": [{"rule": 2, "type": "equivalent", "target": "339ffd90456fa9cba8be03a6d01df826", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cdc4f628005617b6d51f3e5befa42b906f36bae45e9832781c08e18b4b81bd61"}}, {"rule": 2, "type": "equivalent", "target": "f01f8238f135123e84d73bcc9822e19d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cdc4f628005617b6d51f3e5befa42b906f36bae45e9832781c08e18b4b81bd61"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f01f8238f135123e84d73bcc9822e19d", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复继承树的优化 MIN()/MAX() 计划生成错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cdc4f628005617b6d51f3e5befa42b906f36bae45e9832781c08e18b4b81bd61"}, "url": "/docs/compare/?release=9.2.6#9.2.6-48d46053c2c2eef4", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "339ffd90456fa9cba8be03a6d01df826", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复继承树的优化 MIN()/MAX() 计划生成错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cdc4f628005617b6d51f3e5befa42b906f36bae45e9832781c08e18b4b81bd61"}, "url": "/docs/compare/?release=9.1.11#9.1.11-48d46053c2c2eef4", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.3.2-79374173a62be50b", "cves": [], "html": "<p>修复临时文件被过早删除的问题（Andres Freund）</p>", "text": "修复临时文件被过早删除的问题（Andres Freund）", "title": "修复临时文件被过早删除的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "e5e91dd3a5106b0714f7cf93ae357cce871b0b72eb44ebc2466cb59f7abc8403", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix premature deletion of temporary files (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/019", "db_id": "794c783639e28fe65ce37ad20e41d06f", "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355", "relations": [{"rule": 2, "type": "equivalent", "target": "0215f444a73bfa2ac623668492cbf9da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}}, {"rule": 2, "type": "equivalent", "target": "60928172601d5b6dda085390441c12fa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}}, {"rule": 2, "type": "equivalent", "target": "eea4af0d1602c8ce09fc3f6cf6e9923f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "60928172601d5b6dda085390441c12fa", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复临时文件被过早删除的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}, "url": "/docs/compare/?release=9.2.6#9.2.6-79374173a62be50b", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "eea4af0d1602c8ce09fc3f6cf6e9923f", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复临时文件被过早删除的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}, "url": "/docs/compare/?release=9.1.11#9.1.11-79374173a62be50b", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "0215f444a73bfa2ac623668492cbf9da", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "修复临时文件被过早删除的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3119a2cb4319db76d2a1881224b309ca85f6beeebce5a68d55b6318fc5c29355"}, "url": "/docs/compare/?release=9.0.15#9.0.15-79374173a62be50b", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-fec2762a1428e381", "cves": [], "html": "<p>防止打印范围值时的事务内内存泄漏（Tom Lane）</p>\n<p>此修复实际上消除了任何数据类型输出函数中的瞬时内存泄漏，但已知只有范围类型曾出现显著问题。</p>", "text": "防止打印范围值时的事务内内存泄漏（Tom Lane） 此修复实际上消除了任何数据类型输出函数中的瞬时内存泄漏，但已知只有范围类型曾出现显著问题。", "title": "防止打印范围值时的事务内内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "c0f815efe44a4d5ad93c7c35306eab22cdd02d4e772a81c88c35a260a8a55ef8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent intra-transaction memory leak when printing range values (Tom Lane) This fix actually cures transient memory leaks in any datatype output function, but range types are the only ones known to have had a significant problem.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/020", "db_id": "fa91aece2c4def2398ffacd427ff008f", "patch_ids": [], "statement_hash": "fcb0b015590f6d5b196f3085f0ec4717cc0e91e1131380314f3bedc5204621de", "relations": [{"rule": 2, "type": "equivalent", "target": "e4f07bc495985d5f3a2f0c0033ac58a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcb0b015590f6d5b196f3085f0ec4717cc0e91e1131380314f3bedc5204621de"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4f07bc495985d5f3a2f0c0033ac58a0", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "防止打印范围值时的事务内内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fcb0b015590f6d5b196f3085f0ec4717cc0e91e1131380314f3bedc5204621de"}, "url": "/docs/compare/?release=9.2.6#9.2.6-fec2762a1428e381", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}]}, {"id": "9.3.2-90a54ef53ec1a6ab", "cves": [], "html": "<p>修复重新加载配置文件时的内存泄漏（Heikki Linnakangas、Hari Babu）</p>", "text": "修复重新加载配置文件时的内存泄漏（Heikki Linnakangas、Hari Babu）", "title": "修复重新加载配置文件时的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "63d0d58faedfdc27e4ace6df3ba19a7d42abe3e701773aa1260092b45e0c5e47", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leaks when reloading configuration files (Heikki Linnakangas, Hari Babu)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/021", "db_id": "689c631466c0b6adce0979675ef45beb", "patch_ids": [], "statement_hash": "f9852c818db6a2cab68f7033e99e94f8b57a72c40d8e7661d219a0a79b408418", "relations": [], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-055b1e1aac0d3e9e", "cves": [], "html": "<p>防止 NOT NULL 和 CHECK 约束违规消息中错误地显示已删除的列（Michael Paquier、Tom Lane）</p>", "text": "防止 NOT NULL 和 CHECK 约束违规消息中错误地显示已删除的列（Michael Paquier、Tom Lane）", "title": "防止 NOT NULL 和 CHECK 约束违规消息中错误地显示已删除的列", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "586d005abc73af1d69b3646614a68b286614dcb0a83f50548d4419357b72be8b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent incorrect display of dropped columns in NOT NULL and CHECK constraint violation messages (Michael Paquier and Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/022", "db_id": "9a9cdbc2ea819cba1ca239f19de50ecc", "patch_ids": [], "statement_hash": "5e971ef7855dd62c24022dabf41e47ec1898e43ffb391ade31e97b7155bf615b", "relations": [{"rule": 2, "type": "equivalent", "target": "f042db5bc5ef684661e5a3ee5d1741d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e971ef7855dd62c24022dabf41e47ec1898e43ffb391ade31e97b7155bf615b"}}], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f042db5bc5ef684661e5a3ee5d1741d4", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "防止 NOT NULL 和 CHECK 约束违规消息中错误地显示已删除的列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e971ef7855dd62c24022dabf41e47ec1898e43ffb391ade31e97b7155bf615b"}, "url": "/docs/compare/?release=9.2.6#9.2.6-055b1e1aac0d3e9e", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}]}, {"id": "9.3.2-d351937490906535", "cves": [], "html": "<p>允许窗口函数使用默认参数和命名参数记法（Tom Lane）</p>\n<p>此前这些情况很可能崩溃。</p>", "text": "允许窗口函数使用默认参数和命名参数记法（Tom Lane） 此前这些情况很可能崩溃。", "title": "允许窗口函数使用默认参数和命名参数记法", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "5b500017abb9ef4cdeeea04082ca2d21fdb9098ebed936deecb5e21e7519c47a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow default arguments and named-argument notation for window functions (Tom Lane) Previously, these cases were likely to crash.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/023", "db_id": "db2d61b2cd6d9a46030ac60bebe9d59a", "patch_ids": [], "statement_hash": "a2c8bf238db48fc6d86051097c35bfa514e17314aae8a44ceef651dbb5b64d5b", "relations": [{"rule": 2, "type": "equivalent", "target": "08d74fbaaca370df8f0371f1ccab6f9a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2c8bf238db48fc6d86051097c35bfa514e17314aae8a44ceef651dbb5b64d5b"}}], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "08d74fbaaca370df8f0371f1ccab6f9a", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "允许窗口函数使用默认参数和命名参数记法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2c8bf238db48fc6d86051097c35bfa514e17314aae8a44ceef651dbb5b64d5b"}, "url": "/docs/compare/?release=9.2.6#9.2.6-d351937490906535", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}]}, {"id": "9.3.2-af3ff91a92da5ba7", "cves": [], "html": "<p>在漂亮打印规则和视图时抑制每行末尾的空白（Tom Lane）</p>\n<p>9.3.0 生成这种空白的情况比以前的版本多得多。为减少意外的行为变化，在所有情况下都抑制不必要的空白。</p>", "text": "在漂亮打印规则和视图时抑制每行末尾的空白（Tom Lane） 9.3.0 生成这种空白的情况比以前的版本多得多。为减少意外的行为变化，在所有情况下都抑制不必要的空白。", "title": "在漂亮打印规则和视图时抑制每行末尾的空白", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "c1624e96032f7fde41237d2ddb819e47eb265958bf7bc70f6d2d907f24bad8cd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Suppress trailing whitespace on each line when pretty-printing rules and views (Tom Lane) 9.3.0 generated such whitespace in many more cases than previous versions did. To reduce unexpected behavioral changes, suppress unnecessary whitespace in all cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/024", "db_id": "6a6cbee5c8cab149f0519af4218fbd5a", "patch_ids": [], "statement_hash": "e20ceb63a0290ebeed33f0a665ba4e0b33e245e3befa8d6c792a83cc2d94fe23", "relations": [], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-33766060b5f495ac", "cves": [], "html": "<p>修复规则打印中可能读取越过内存末尾的问题（Peter Eisentraut）</p>", "text": "修复规则打印中可能读取越过内存末尾的问题（Peter Eisentraut）", "title": "修复规则打印中可能读取越过内存末尾的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "b7e02dbd5dcef5e0a25f1d8c9c6836cfec403ca5c343aa0aedf299f85ce04093", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible read past end of memory in rule printing (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/025", "db_id": "52a1895a8d0fca9d245787982a39c754", "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762", "relations": [{"rule": 2, "type": "equivalent", "target": "5f850f0c90891244795995e7648334db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}}, {"rule": 2, "type": "equivalent", "target": "ced8771b6066f828b8d7a8a2dfbfed08", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}}, {"rule": 2, "type": "equivalent", "target": "faa18fe51c0b4eebc64a07aeca34c7e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "faa18fe51c0b4eebc64a07aeca34c7e2", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复规则打印中可能读取越过内存末尾的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}, "url": "/docs/compare/?release=9.2.6#9.2.6-33766060b5f495ac", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "5f850f0c90891244795995e7648334db", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复规则打印中可能读取越过内存末尾的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}, "url": "/docs/compare/?release=9.1.11#9.1.11-33766060b5f495ac", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "ced8771b6066f828b8d7a8a2dfbfed08", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "修复规则打印中可能读取越过内存末尾的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e488ca5a20725bf6dbab20d569a58aa64ec0fa9a96803f768b8335050d79762"}, "url": "/docs/compare/?release=9.0.15#9.0.15-33766060b5f495ac", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-f956ca6666def5ba", "cves": [], "html": "<p>修复 <code>int2vector</code> 和 <code>oidvector</code> 值的数组切片（Tom Lane）</p>\n<p>这类表达式现在会被隐式提升为常规的 <code>int2</code> 或 <code>oid</code> 数组。</p>", "text": "修复 int2vector 和 oidvector 值的数组切片（Tom Lane） 这类表达式现在会被隐式提升为常规的 int2 或 oid 数组。", "title": "修复 int2vector 和 oidvector 值的数组切片", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "61fb352f48de36bbce9e4cb28c4b4585b2bae1aa1de7eaeb58693792f2e64d20", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix array slicing of int2vector and oidvector values (Tom Lane) Expressions of this kind are now implicitly promoted to regular int2 or oid arrays.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/026", "db_id": "13f4e2e1a5cc3f7f7d5cd9798bd393be", "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e", "relations": [{"rule": 2, "type": "equivalent", "target": "54de529e59b6fc81b5ec0feceb0e20de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}}, {"rule": 2, "type": "equivalent", "target": "6a8247adb515ac81561744f033628349", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}}, {"rule": 2, "type": "equivalent", "target": "9be7bb1fc5e28d74cd34bda19911fca0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9be7bb1fc5e28d74cd34bda19911fca0", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复 int2vector 和 oidvector 值的数组切片", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}, "url": "/docs/compare/?release=9.2.6#9.2.6-f956ca6666def5ba", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "6a8247adb515ac81561744f033628349", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复 int2vector 和 oidvector 值的数组切片", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}, "url": "/docs/compare/?release=9.1.11#9.1.11-f956ca6666def5ba", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "54de529e59b6fc81b5ec0feceb0e20de", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "修复 int2vector 和 oidvector 值的数组切片", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "77021f1107eec1c16ba347fb52395459b31a1b7c467927781e0dcbdef259a31e"}, "url": "/docs/compare/?release=9.0.15#9.0.15-f956ca6666def5ba", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-e59b45268ce11fd8", "cves": [], "html": "<p>修复把空 <code>hstore</code> 值转换为 <code>json</code> 时返回有效 JSON 值的问题（Oskari Saarenmaa）</p>", "text": "修复把空 hstore 值转换为 json 时返回有效 JSON 值的问题（Oskari Saarenmaa）", "title": "修复把空 hstore 值转换为 json 时返回有效 JSON 值的问题", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "d4413fbe298a411a7f2f67d18ac94a7314a4a854bd9a59badca193224b7115a9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Return a valid JSON value when converting an empty hstore value to json (Oskari Saarenmaa)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/027", "db_id": "3c62ddd324805a37d1c93045864c41f4", "patch_ids": [], "statement_hash": "382a38aec81ad0c3724666e1b8c682fbba9584a799f8860967974834f908caea", "relations": [], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-2601ea65701174a1", "cves": [], "html": "<p>修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为（Tom Lane）</p>\n<p>某些情况下，系统会使用简单 GMT 偏移值，而本应使用选择简单偏移之前一直生效的常规时区设置。此变更还使 <code>timeofday</code> 函数遵循简单 GMT 偏移时区。</p>", "text": "修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为（Tom Lane） 某些情况下，系统会使用简单 GMT 偏移值，而本应使用选择简单偏移之前一直生效的常规时区设置。此变更还使 timeofday 函数遵循简单 GMT 偏移时区。", "title": "修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "3aa45ba4b24ef1b9df6cf1053d4bcc469a8b69b6f55ad427a622dde194e27673", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect behaviors when using a SQL-standard, simple GMT offset timezone (Tom Lane) In some cases, the system would use the simple GMT offset value when it should have used the regular timezone setting that had prevailed before the simple offset was selected. This change also causes the timeofday function to honor the simple GMT offset zone.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/028", "db_id": "f1d86dae08007c1335fbfc248ad1a360", "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1", "relations": [{"rule": 2, "type": "equivalent", "target": "3d339135edb8ea26c5e04a90151ef218", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}}, {"rule": 2, "type": "equivalent", "target": "44fdc680cd1d9122e644c1e0adf20d98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}}, {"rule": 2, "type": "equivalent", "target": "7ecc9260dc6a5f36975948d07c98263a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3d339135edb8ea26c5e04a90151ef218", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}, "url": "/docs/compare/?release=9.2.6#9.2.6-2601ea65701174a1", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "7ecc9260dc6a5f36975948d07c98263a", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}, "url": "/docs/compare/?release=9.1.11#9.1.11-2601ea65701174a1", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "44fdc680cd1d9122e644c1e0adf20d98", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "67dd61049240b5988b7f043b8d3441b90c3b1fb5a7b74cca1158b9396c686fd1"}, "url": "/docs/compare/?release=9.0.15#9.0.15-2601ea65701174a1", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-bdebcc31fe0dc7c0", "cves": [], "html": "<p>防止记录 Windows 错误码翻译时可能出现的不当行为（Tom Lane）</p>", "text": "防止记录 Windows 错误码翻译时可能出现的不当行为（Tom Lane）", "title": "防止记录 Windows 错误码翻译时可能出现的不当行为", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "b534a69735517531237cb1d9be94f15b96841831c95d9f3733b41e4921cbb667", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent possible misbehavior when logging translations of Windows error codes (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/029", "db_id": "13b0387ae30ee6ae7463f9d748e7dcf1", "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b", "relations": [{"rule": 2, "type": "equivalent", "target": "11c80cc0b7a2fc53ad9812bcf14375c2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}}, {"rule": 2, "type": "equivalent", "target": "54820da474bebf8b921bae7f57eada98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}}, {"rule": 2, "type": "equivalent", "target": "aeede94f946c1ded6bedcaa1abc527b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}}], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "aeede94f946c1ded6bedcaa1abc527b3", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "防止记录 Windows 错误码翻译时可能出现的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}, "url": "/docs/compare/?release=9.2.6#9.2.6-bdebcc31fe0dc7c0", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "54820da474bebf8b921bae7f57eada98", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "防止记录 Windows 错误码翻译时可能出现的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}, "url": "/docs/compare/?release=9.1.11#9.1.11-bdebcc31fe0dc7c0", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "11c80cc0b7a2fc53ad9812bcf14375c2", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "防止记录 Windows 错误码翻译时可能出现的不当行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2f81cdd275a66bb7372ad55845ae169c02ed02ad108b59507118f7bf2cadec3b"}, "url": "/docs/compare/?release=9.0.15#9.0.15-bdebcc31fe0dc7c0", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-e12c41883839f84f", "cves": [], "html": "<p>正确地为 <span>pg_ctl</span> 生成的命令行加引号（Naoya Anzai、Tom Lane）</p>\n<p>此修复仅适用于 Windows。</p>", "text": "正确地为 pg_ctl 生成的命令行加引号（Naoya Anzai、Tom Lane） 此修复仅适用于 Windows。", "title": "正确地为 pg_ctl 生成的命令行加引号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "7c654722e991126168400db1cb093d0408c5692c6d3cdb6f49dcd2208b8b9736", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly quote generated command lines in pg_ctl (Naoya Anzai and Tom Lane) This fix applies only to Windows.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/030", "db_id": "bbe0bde4d80cb9deabba661cfb328a9b", "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f", "relations": [{"rule": 2, "type": "equivalent", "target": "06ef602928ccb464f7de8ec282bf722b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}}, {"rule": 2, "type": "equivalent", "target": "8b28d4028101ea2d3477d14a5442e5f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}}, {"rule": 2, "type": "equivalent", "target": "b1f08684e6cfbb31c79a0dccb63be1f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}}], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b1f08684e6cfbb31c79a0dccb63be1f8", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "正确地为 pg_ctl 生成的命令行加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}, "url": "/docs/compare/?release=9.2.6#9.2.6-e12c41883839f84f", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "06ef602928ccb464f7de8ec282bf722b", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "正确地为 pg_ctl 生成的命令行加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}, "url": "/docs/compare/?release=9.1.11#9.1.11-e12c41883839f84f", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "8b28d4028101ea2d3477d14a5442e5f3", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "正确地为 pg_ctl 生成的命令行加引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e1fc4c55afd877c990135b900334b6624f58a4c56a45b03050a34c9fd4e355f"}, "url": "/docs/compare/?release=9.0.15#9.0.15-e12c41883839f84f", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-7dc92563d1e4f087", "cves": [], "html": "<p>修复当源数据库通过 <code>ALTER DATABASE SET</code> 设置 <a href=\"/docs/9.3/runtime-config-client.html#GUC-DEFAULT-TRANSACTION-READ-ONLY\"><code>default_transaction_read_only</code></a> 时 <span>pg_dumpall</span> 无法工作的问题（Kevin Grittner）</p>\n<p>此前，生成的脚本在恢复期间会失败。</p>", "text": "修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题（Kevin Grittner） 此前，生成的脚本在恢复期间会失败。", "title": "修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "ddc1f4d975a82f4f14f87600c1439f1a838c022e32eb2c8312fa545b25203fe5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dumpall to work when a source database sets default_transaction_read_only via ALTER DATABASE SET (Kevin Grittner) Previously, the generated script would fail during restore.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/031", "db_id": "6185cd94f5d883265aac461185ec82d6", "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c", "relations": [{"rule": 2, "type": "equivalent", "target": "48525738e3d068e0af15f93585c27c23", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}}, {"rule": 2, "type": "equivalent", "target": "9f630319d7135ae6876108b30d324497", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}}, {"rule": 2, "type": "equivalent", "target": "af9bf6db44c025c5eb9a27b06c7074d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "af9bf6db44c025c5eb9a27b06c7074d4", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}, "url": "/docs/compare/?release=9.2.6#9.2.6-7dc92563d1e4f087", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "9f630319d7135ae6876108b30d324497", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}, "url": "/docs/compare/?release=9.1.11#9.1.11-7dc92563d1e4f087", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "48525738e3d068e0af15f93585c27c23", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f566ed1155756fc0be4b5b06a7f2b4ae5f91129a5576307b194edab556032b8c"}, "url": "/docs/compare/?release=9.0.15#9.0.15-7dc92563d1e4f087", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-fd2d07ba9b5b16f9", "cves": [], "html": "<p>修复 <span>pg_isready</span> 对其 <code>-d</code> 选项的处理（Fabrízio de Royes Mello、Fujii Masao）</p>", "text": "修复 pg_isready 对其 -d 选项的处理（Fabrízio de Royes Mello、Fujii Masao）", "title": "修复 pg_isready 对其 -d 选项的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "fd64c58ce171947d9e1dfb440780373349f8848f1346d7fecf0c8c89dcc9f255", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_isready to handle its -d option properly (Fabrízio de Royes Mello and Fujii Masao)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/032", "db_id": "c418e806b87a2ad6c90a4f9ae8cf7e02", "patch_ids": [], "statement_hash": "248aac8e2dd51b41a1cf5f821b20fd505bd7386d293f1cd94f9b52ad7490ac07", "relations": [], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-8489ea4021807f56", "cves": [], "html": "<p>修复 <span>pg_receivexlog</span> 中 WAL 文件名的解析（Heikki Linnakangas）</p>\n<p>这一错误导致一旦写入了至少 4 GB 的 WAL，<span>pg_receivexlog</span> 在停止后就无法重新开始流式传输。</p>", "text": "修复 pg_receivexlog 中 WAL 文件名的解析（Heikki Linnakangas） 这一错误导致一旦写入了至少 4 GB 的 WAL，pg_receivexlog 在停止后就无法重新开始流式传输。", "title": "修复 pg_receivexlog 中 WAL 文件名的解析", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "ae1ea9d2488ed82637c3a97846160fac9768e1b05bd209f0b84cc4ef1b727c4b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix parsing of WAL file names in pg_receivexlog (Heikki Linnakangas) This error made pg_receivexlog unable to restart streaming after stopping, once at least 4 GB of WAL had been written.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/033", "db_id": "6b9ec59135660279eab21c7fe7c09afb", "patch_ids": [], "statement_hash": "9e0bb146aaea34eda665f9f9d5c72c0f57e703268ba201bbf7f66701fb14cf9a", "relations": [], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-6353f7dc27472b60", "cves": [], "html": "<p>让 <span>pg_upgrade</span> 正确报告磁盘空间不足失败（Peter Eisentraut）</p>", "text": "让 pg_upgrade 正确报告磁盘空间不足失败（Peter Eisentraut）", "title": "让 pg_upgrade 正确报告磁盘空间不足失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "72ca179a6f1014162fc17cf666edc4ea62da421920173a30573f5a7c4a25c2d9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Report out-of-disk-space failures properly in pg_upgrade (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/034", "db_id": "906b285f5b497e10e96883d9a815c216", "patch_ids": [], "statement_hash": "f100979f35c639a11e2a156288b583d81ae09b6f454631fa26c7449a0a1f277b", "relations": [], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.2-c42e3aa7be61a159", "cves": [], "html": "<p>让 <span>ecpg</span> 以大小写敏感方式搜索带引号的游标名（Zoltán Böszörményi）</p>", "text": "让 ecpg 以大小写敏感方式搜索带引号的游标名（Zoltán Böszörményi）", "title": "让 ecpg 以大小写敏感方式搜索带引号的游标名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "6df5cbd43360788b6b5779a71cab630f9d5042c45ce1635dd94e00855f77f7f4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make ecpg search for quoted cursor names case-sensitively (Zoltán Böszörményi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/035", "db_id": "664f2a70f76b238ff7461dd363b63e85", "patch_ids": [], "statement_hash": "ebd5c332236992b1020dd35801d4cc84554af80d2fb34ab014f90b36cbf4e1c4", "relations": [{"rule": 2, "type": "equivalent", "target": "9c81d9ba335c94e5da5b3d4e1131fc37", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ebd5c332236992b1020dd35801d4cc84554af80d2fb34ab014f90b36cbf4e1c4"}}, {"rule": 2, "type": "equivalent", "target": "c56f1d7cc6c344b0e448dd10bfeaf87b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ebd5c332236992b1020dd35801d4cc84554af80d2fb34ab014f90b36cbf4e1c4"}}], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c56f1d7cc6c344b0e448dd10bfeaf87b", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "让 ecpg 以大小写敏感方式搜索带引号的游标名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ebd5c332236992b1020dd35801d4cc84554af80d2fb34ab014f90b36cbf4e1c4"}, "url": "/docs/compare/?release=9.2.6#9.2.6-c42e3aa7be61a159", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "9c81d9ba335c94e5da5b3d4e1131fc37", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "让 ecpg 以大小写敏感方式搜索带引号的游标名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ebd5c332236992b1020dd35801d4cc84554af80d2fb34ab014f90b36cbf4e1c4"}, "url": "/docs/compare/?release=9.1.11#9.1.11-c42e3aa7be61a159", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}]}, {"id": "9.3.2-169a7568a70cb421", "cves": [], "html": "<p>修复 <span>ecpg</span> 对声明为 <code>varchar</code> 的变量列表的处理（Zoltán Böszörményi）</p>", "text": "修复 ecpg 对声明为 varchar 的变量列表的处理（Zoltán Böszörményi）", "title": "修复 ecpg 对声明为 varchar 的变量列表的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "121fa10fd9b56cf238b3c1cb1fc0cb82f1aa650be0e89cdf1984b3b484ce6e21", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg's processing of lists of variables declared varchar (Zoltán Böszörményi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/036", "db_id": "6884256e8627c74d9b8423dfb2718376", "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5", "relations": [{"rule": 2, "type": "equivalent", "target": "2ddb8bb0d99ab38a47d5d489357b1f83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}}, {"rule": 2, "type": "equivalent", "target": "409d0da964e2a790d4e8a35adbf048e0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}}, {"rule": 2, "type": "equivalent", "target": "48a2db9656972f75ddf74f63fdada832", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}}], "version": "9.3.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "48a2db9656972f75ddf74f63fdada832", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "修复 ecpg 对声明为 varchar 的变量列表的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}, "url": "/docs/compare/?release=9.2.6#9.2.6-169a7568a70cb421", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "2ddb8bb0d99ab38a47d5d489357b1f83", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "修复 ecpg 对声明为 varchar 的变量列表的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}, "url": "/docs/compare/?release=9.1.11#9.1.11-169a7568a70cb421", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "409d0da964e2a790d4e8a35adbf048e0", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "修复 ecpg 对声明为 varchar 的变量列表的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f7d0c921686af985b2a7e97d9f422fe9d039b0e5ac979b9a2c70d647b0fe2b5"}, "url": "/docs/compare/?release=9.0.15#9.0.15-169a7568a70cb421", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-94e75e89effc8fe3", "cves": [], "html": "<p>让 <code>contrib/lo</code> 防御不正确的触发器定义（Marc Cousin）</p>", "text": "让 contrib/lo 防御不正确的触发器定义（Marc Cousin）", "title": "让 contrib/lo 防御不正确的触发器定义", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "19a94c48a0476749b046f6a5a768cc86414d1018c40dc4a59005fd4e42c723de", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make contrib/lo defend against incorrect trigger definitions (Marc Cousin)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/037", "db_id": "6f70c73a712890b7ccaf0fd83dbdabaa", "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c", "relations": [{"rule": 2, "type": "equivalent", "target": "2f8e51d914589bae202909aaf246a538", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}}, {"rule": 2, "type": "equivalent", "target": "496c8f49b5a01ad5bd55d5f53020526d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}}, {"rule": 2, "type": "equivalent", "target": "62aeb6faec8c5b77f9bb01b48e03c696", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}}], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2f8e51d914589bae202909aaf246a538", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "让 contrib/lo 防御不正确的触发器定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}, "url": "/docs/compare/?release=9.2.6#9.2.6-94e75e89effc8fe3", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "496c8f49b5a01ad5bd55d5f53020526d", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "让 contrib/lo 防御不正确的触发器定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}, "url": "/docs/compare/?release=9.1.11#9.1.11-94e75e89effc8fe3", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "62aeb6faec8c5b77f9bb01b48e03c696", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "让 contrib/lo 防御不正确的触发器定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0db6010f21580c107f19f45f9efc17bc08327c585441aa7875034bd49f0ebe3c"}, "url": "/docs/compare/?release=9.0.15#9.0.15-94e75e89effc8fe3", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}, {"id": "9.3.2-eaeafa79cd57e97b", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2013h，以反映阿根廷、巴西、约旦、利比亚、列支敦士登、摩洛哥和巴勒斯坦的夏令时法规变更。另外，新增印度尼西亚的时区缩写 WIB、WIT、WITA。</p>", "text": "把时区数据文件更新为 tzdata 版本 2013h，以反映阿根廷、巴西、约旦、利比亚、列支敦士登、摩洛哥和巴勒斯坦的夏令时法规变更。另外，新增印度尼西亚的时区缩写 WIB、WIT、WITA。", "title": "把时区数据文件更新为 tzdata 版本 2013h，以反映阿根廷、巴西、约旦、利比亚、列支敦士登、摩洛哥和巴勒斯坦的夏令时法规变更。另外，新增印度尼西亚的时区缩写 WIB、WIT、WITA。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.2/#id-1.11.6.28.5", "source_hash": "d3c55877b3d6f9247c68d1738d2e6e2c385bd03687a37412e5673a1173491117", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine. Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.2/changes/038", "db_id": "873dbd191790e30b273777ef978761ed", "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f", "relations": [{"rule": 2, "type": "equivalent", "target": "424125e8e6a645f6b06c795a699f69d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}}, {"rule": 2, "type": "equivalent", "target": "7be18ae3b11bb3941b2b0b756054a0c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}}, {"rule": 2, "type": "equivalent", "target": "7c44c32d94b8860307e11c5103c052c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}}], "version": "9.3.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "424125e8e6a645f6b06c795a699f69d0", "kind": "equivalent", "version": "9.2.6", "label": "9.2.6", "title": "把时区数据文件更新为 tzdata 版本 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine。Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}, "url": "/docs/compare/?release=9.2.6#9.2.6-c44e740c2c08d47e", "source_url": "/docs/release/9.2.6/#id-1.11.6.23.5"}, {"db_id": "7be18ae3b11bb3941b2b0b756054a0c8", "kind": "equivalent", "version": "9.1.11", "label": "9.1.11", "title": "把时区数据文件更新为 tzdata 版本 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine。Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}, "url": "/docs/compare/?release=9.1.11#9.1.11-c44e740c2c08d47e", "source_url": "/docs/release/9.1.11/#id-1.11.6.18.5"}, {"db_id": "7c44c32d94b8860307e11c5103c052c9", "kind": "equivalent", "version": "9.0.15", "label": "9.0.15", "title": "把时区数据文件更新为 tzdata 版本 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine。Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a19549acc73fc0d26f6eb4c09c6a93500ce32e170f9c7570ae6ca1ca0bcafc8f"}, "url": "/docs/compare/?release=9.0.15#9.0.15-c44e740c2c08d47e", "source_url": "/docs/release/9.0.15/#id-1.11.6.13.5"}]}]}, {"date": "2013-10-10", "build": "9.3.1", "major": "9.3", "minor": 1, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.1", "eol_date": "2018-11-08", "date_text": "2013-10-10", "supported": false, "manual_url": "/docs/9.3/release-9-3-1.html", "source_url": "/docs/release/9.3.1/", "entry_count": 8, "placeholder": false, "content_hash": "620c3a6a77551187696378ea41582d6a1f599c8359b6ec076c2446315d5bfe72", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 8, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你使用 <code>hstore</code> 扩展，请参见第一条变更日志。</p>", "compatibility_count": 0, "label": "9.3.1", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4738, "support_days": -2883, "entries": [{"id": "9.3.1-7cd4d1659c3d6691", "cves": [], "html": "<p>确保更新期间把 9.3 新增的 JSON 功能加入 <code>hstore</code> 扩展（Andrew Dunstan）</p>\n<p>把包含 <code>hstore</code> 的 9.3 之前数据库升级上来的用户，应在安装 9.3.1 后执行</p>\n<pre> ALTER EXTENSION hstore UPDATE; \n</pre>\n<p>，以添加两个新的 JSON 函数和一个转换。（如果 <code>hstore</code> 已是最新，此命令不做任何事。）</p>", "text": "确保更新期间把 9.3 新增的 JSON 功能加入 hstore 扩展（Andrew Dunstan） 把包含 hstore 的 9.3 之前数据库升级上来的用户，应在安装 9.3.1 后执行 ALTER EXTENSION hstore UPDATE; ，以添加两个新的 JSON 函数和一个转换。（如果 hstore 已是最新，此命令不做任何事。）", "title": "确保更新期间把 9.3 新增的 JSON 功能加入 hstore 扩展", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5", "source_hash": "c578fcb2f9e9d6fa4fb97f1cb926753d2843268531369a99b10bbe576eed3d40", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure new-in-9.3 JSON functionality is added to the hstore extension during an update (Andrew Dunstan) Users who upgraded a pre-9.3 database containing hstore should execute ALTER EXTENSION hstore UPDATE; after installing 9.3.1, to add two new JSON functions and a cast. (If hstore is already up to date, this command does nothing.)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.1/changes/001", "db_id": "c29f133a6596c9048bd94659340a51ce", "patch_ids": [], "statement_hash": "00cbf51dbeb91563bccc19a37fb71fbd4336c977cfaffa7c8206407e8962c487", "relations": [], "version": "9.3.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.1-ac3ba30a4ef3e4ec", "cves": [], "html": "<p>修复在范围列上创建 B-tree 索引时的内存泄漏（Heikki Linnakangas）</p>", "text": "修复在范围列上创建 B-tree 索引时的内存泄漏（Heikki Linnakangas）", "title": "修复在范围列上创建 B-tree 索引时的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5", "source_hash": "0e0cfdc1bbeb766aa2bbc3609b71180f5da2163473f6b8b0ddc5794196fb717f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak when creating B-tree indexes on range columns (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.1/changes/002", "db_id": "2513f131636c21eb942f2bf780e749a9", "patch_ids": [], "statement_hash": "5d71edb6c117e3ed525a9cf9012f6622f03441f87135bdea2cfd5500a2751182", "relations": [{"rule": 2, "type": "equivalent", "target": "08dcfe98e8e4e602b81b94709a7d46ac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d71edb6c117e3ed525a9cf9012f6622f03441f87135bdea2cfd5500a2751182"}}], "version": "9.3.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "08dcfe98e8e4e602b81b94709a7d46ac", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复在范围列上创建 B-tree 索引时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d71edb6c117e3ed525a9cf9012f6622f03441f87135bdea2cfd5500a2751182"}, "url": "/docs/compare/?release=9.2.5#9.2.5-ac3ba30a4ef3e4ec", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}]}, {"id": "9.3.1-e87021667a387cb0", "cves": [], "html": "<p>修复由 <code>lo_open()</code> 失败导致的内存泄漏（Heikki Linnakangas）</p>", "text": "修复由 lo_open() 失败导致的内存泄漏（Heikki Linnakangas）", "title": "修复由 lo_open() 失败导致的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5", "source_hash": "02de43ab65932ba01e4ac32b46934e97633b895cebd8a93655c804dfff068cae", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak caused by lo_open() failure (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.1/changes/003", "db_id": "72e4c02fce4f4d19bac99fc219903e7d", "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7", "relations": [{"rule": 2, "type": "equivalent", "target": "07b015692304e10582984aba7d2bdbc6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}}, {"rule": 2, "type": "equivalent", "target": "3990d749035911cbbc6fc212c17c04f5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}}, {"rule": 2, "type": "equivalent", "target": "d43ca44ee990da49acd62d681b93973c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}}], "version": "9.3.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d43ca44ee990da49acd62d681b93973c", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复由 lo_open() 失败导致的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}, "url": "/docs/compare/?release=9.2.5#9.2.5-e87021667a387cb0", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "07b015692304e10582984aba7d2bdbc6", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复由 lo_open() 失败导致的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}, "url": "/docs/compare/?release=9.1.10#9.1.10-e87021667a387cb0", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}, {"db_id": "3990d749035911cbbc6fc212c17c04f5", "kind": "equivalent", "version": "9.0.14", "label": "9.0.14", "title": "修复由 lo_open() 失败导致的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbe032827b5bb9d1240f263faea6ecb42ab61e934a5b25ff9f2b8c4d3c0824c7"}, "url": "/docs/compare/?release=9.0.14#9.0.14-e87021667a387cb0", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5"}]}, {"id": "9.3.1-7cfa89a7eb86e60b", "cves": [], "html": "<p>可序列化快照修复（Kevin Grittner、Heikki Linnakangas）</p>", "text": "可序列化快照修复（Kevin Grittner、Heikki Linnakangas）", "title": "可序列化快照修复", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5", "source_hash": "06c0672c2ca5b74cb4cbc4517aa8302c265202a4a11f323a65a0d89b385ce957", "section_path": ["变更"], "commit_groups": [], "identity_text": "Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.1/changes/004", "db_id": "0be7518a9a031397b4027916ef082f87", "patch_ids": [], "statement_hash": "8f9d721afe753664d0ab612ed292b89077e5d231d41eab0eaf4fef39152baa02", "relations": [{"rule": 2, "type": "equivalent", "target": "275f818d6e6cf3843e9171c90c4de2ef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f9d721afe753664d0ab612ed292b89077e5d231d41eab0eaf4fef39152baa02"}}, {"rule": 2, "type": "equivalent", "target": "ec78808cba11d2e17321444345e909b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f9d721afe753664d0ab612ed292b89077e5d231d41eab0eaf4fef39152baa02"}}], "version": "9.3.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "275f818d6e6cf3843e9171c90c4de2ef", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "可序列化快照修复", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f9d721afe753664d0ab612ed292b89077e5d231d41eab0eaf4fef39152baa02"}, "url": "/docs/compare/?release=9.2.5#9.2.5-7cfa89a7eb86e60b", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "ec78808cba11d2e17321444345e909b6", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "可序列化快照修复", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f9d721afe753664d0ab612ed292b89077e5d231d41eab0eaf4fef39152baa02"}, "url": "/docs/compare/?release=9.1.10#9.1.10-7cfa89a7eb86e60b", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}]}, {"id": "9.3.1-cba216f52b33f343", "cves": [], "html": "<p>修复使用 SSL 时 libpq 中的死锁缺陷（Stephen Frost）</p>", "text": "修复使用 SSL 时 libpq 中的死锁缺陷（Stephen Frost）", "title": "修复使用 SSL 时 libpq 中的死锁缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5", "source_hash": "3fba32b17ef4948a36223661c41e75f719ceb04594bb4256366df0b16a443229", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix deadlock bug in libpq when using SSL (Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.1/changes/005", "db_id": "6aa0428b6fdf47b0a1bcf5230033bf4d", "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f", "relations": [{"rule": 2, "type": "equivalent", "target": "237ecc0fb2de96e0467467b4a6ddc257", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}}, {"rule": 2, "type": "equivalent", "target": "57c1c2b14328df07d1fff5b5855231d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}}, {"rule": 2, "type": "equivalent", "target": "9c82054ba2b8bff7fe6cbd12ce8ce608", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}}], "version": "9.3.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9c82054ba2b8bff7fe6cbd12ce8ce608", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "修复使用 SSL 时 libpq 中的死锁缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}, "url": "/docs/compare/?release=9.2.5#9.2.5-cba216f52b33f343", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "237ecc0fb2de96e0467467b4a6ddc257", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "修复使用 SSL 时 libpq 中的死锁缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}, "url": "/docs/compare/?release=9.1.10#9.1.10-cba216f52b33f343", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}, {"db_id": "57c1c2b14328df07d1fff5b5855231d5", "kind": "equivalent", "version": "9.0.14", "label": "9.0.14", "title": "修复使用 SSL 时 libpq 中的死锁缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "984982162628393d0e46c8710db3a0bc436993546530df45ff69a60ea6c2371f"}, "url": "/docs/compare/?release=9.0.14#9.0.14-cba216f52b33f343", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5"}]}, {"id": "9.3.1-41ee0a4019de5b65", "cves": [], "html": "<p>修复 <span>pg_receivexlog</span> 中的时间线处理缺陷（Heikki Linnakangas、Andrew Gierth）</p>", "text": "修复 pg_receivexlog 中的时间线处理缺陷（Heikki Linnakangas、Andrew Gierth）", "title": "修复 pg_receivexlog 中的时间线处理缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5", "source_hash": "236dcc9ba7b2a53ac65d7110b57e72ac163529f0694d66716f34e735298032f9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix timeline handling bugs in pg_receivexlog (Heikki Linnakangas, Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.1/changes/006", "db_id": "56cc8ae9a28689330355255f740df02e", "patch_ids": [], "statement_hash": "191234b5fac76abf4ab8a2b34e991ab61aeaadbfe61ab2c950aae60b5996f14e", "relations": [], "version": "9.3.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.1-f6079032675e767f", "cves": [], "html": "<p>除非启用了函数体检查，否则防止 <code>CREATE FUNCTION</code> 检查 <code>SET</code> 变量（Tom Lane）</p>", "text": "除非启用了函数体检查，否则防止 CREATE FUNCTION 检查 SET 变量（Tom Lane）", "title": "除非启用了函数体检查，否则防止 CREATE FUNCTION 检查 SET 变量", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5", "source_hash": "bd9e8c215fa2f75455ad26ec6fb8e733df68be9a3245d6d918a74a3c473a4128", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent CREATE FUNCTION from checking SET variables unless function body checking is enabled (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.1/changes/007", "db_id": "952098d7106adf07d8708504ded36cdc", "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2", "relations": [{"rule": 2, "type": "equivalent", "target": "0cc8abd693ef1496bda0846c2a0be99d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}}, {"rule": 2, "type": "equivalent", "target": "4b7ff29db9a4dd18c6378a2775cece9c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}}, {"rule": 2, "type": "equivalent", "target": "bab837642eb334b82c387136f2b5db7a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}}], "version": "9.3.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b7ff29db9a4dd18c6378a2775cece9c", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "除非启用了函数体检查，否则防止 CREATE FUNCTION 检查 SET 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}, "url": "/docs/compare/?release=9.2.5#9.2.5-f6079032675e767f", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "bab837642eb334b82c387136f2b5db7a", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "除非启用了函数体检查，否则防止 CREATE FUNCTION 检查 SET 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}, "url": "/docs/compare/?release=9.1.10#9.1.10-f6079032675e767f", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}, {"db_id": "0cc8abd693ef1496bda0846c2a0be99d", "kind": "equivalent", "version": "9.0.14", "label": "9.0.14", "title": "除非启用了函数体检查，否则防止 CREATE FUNCTION 检查 SET 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "83af4d120cca6f2f5fb585cb136dc024ff3def29b9dbc29ed3e29e633da65ef2"}, "url": "/docs/compare/?release=9.0.14#9.0.14-f6079032675e767f", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5"}]}, {"id": "9.3.1-020533c475c53e34", "cves": [], "html": "<p>移除无索引表清理期间罕见的不准确警告（Heikki Linnakangas）</p>", "text": "移除无索引表清理期间罕见的不准确警告（Heikki Linnakangas）", "title": "移除无索引表清理期间罕见的不准确警告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.1/#id-1.11.6.29.5", "source_hash": "7aa5eb89f3c6a0ec137fcbd5c9f38f57c97d7957ebc7569bce7ae77132ce0c3d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove rare inaccurate warning during vacuum of index-less tables (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.3.1/changes/008", "db_id": "35fa6bf292d6d773149d2968283feee6", "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39", "relations": [{"rule": 2, "type": "equivalent", "target": "1cd4e08d8d8118ced058999f7694a5df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}}, {"rule": 2, "type": "equivalent", "target": "b693deb5d849d6fa745ce608ef1c7b19", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}}, {"rule": 2, "type": "equivalent", "target": "f19dec60ba95d259d851bea1ba274eb5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}}], "version": "9.3.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1cd4e08d8d8118ced058999f7694a5df", "kind": "equivalent", "version": "9.2.5", "label": "9.2.5", "title": "移除无索引表清理期间罕见的不准确警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}, "url": "/docs/compare/?release=9.2.5#9.2.5-020533c475c53e34", "source_url": "/docs/release/9.2.5/#id-1.11.6.24.5"}, {"db_id": "b693deb5d849d6fa745ce608ef1c7b19", "kind": "equivalent", "version": "9.1.10", "label": "9.1.10", "title": "移除无索引表清理期间罕见的不准确警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}, "url": "/docs/compare/?release=9.1.10#9.1.10-020533c475c53e34", "source_url": "/docs/release/9.1.10/#id-1.11.6.19.5"}, {"db_id": "f19dec60ba95d259d851bea1ba274eb5", "kind": "equivalent", "version": "9.0.14", "label": "9.0.14", "title": "移除无索引表清理期间罕见的不准确警告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2968be5e00a32929b39816877d8ba644f35c32c2b62614107a0c7638403ed39"}, "url": "/docs/compare/?release=9.0.14#9.0.14-020533c475c53e34", "source_url": "/docs/release/9.0.14/#id-1.11.6.14.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 791}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 379}, {"key": "security", "label": "安全相关", "count": 37}, {"key": "performance", "label": "性能改进", "count": 11}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 364}], "total": 791, "cve_count": 32, "cves": [{"id": "CVE-2018-1058", "url": "https://www.postgresql.org/support/security/CVE-2018-1058/", "fixed": {"10": "10.3", "9.3": "9.3.22", "9.4": "9.4.17", "9.5": "9.5.12", "9.6": "9.6.8"}, "score": 8.8, "title": "记录如何配置安装和应用以防受其他用户依赖 search_path 的特洛伊木马攻击", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2018-03-01", "9.3": "2018-03-01", "9.4": "2018-03-01", "9.5": "2018-03-01", "9.6": "2018-03-01"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2018-03-01", "fixed_version": "9.3.22", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0062", "url": "https://www.postgresql.org/support/security/CVE-2014-0062/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 8.8, "title": "避免在表和索引 DDL 期间进行多次名称查找", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.3.3", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2018-10915", "url": "https://www.postgresql.org/support/security/CVE-2018-10915/", "fixed": {"10": "10.5", "9.3": "9.3.24", "9.4": "9.4.19", "9.5": "9.5.14", "9.6": "9.6.10"}, "score": 8.5, "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "affected": {"10": "10", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2018-08-09", "9.3": "2018-08-09", "9.4": "2018-08-09", "9.5": "2018-08-09", "9.6": "2018-08-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2018-08-09", "fixed_version": "9.3.24", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-7547", "url": "https://www.postgresql.org/support/security/CVE-2017-7547/", "fixed": {"9.2": "9.2.22", "9.3": "9.3.18", "9.4": "9.4.13", "9.5": "9.5.8", "9.6": "9.6.4"}, "score": 8.5, "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-08-10", "9.3": "2017-08-10", "9.4": "2017-08-10", "9.5": "2017-08-10", "9.6": "2017-08-10"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-08-10", "fixed_version": "9.3.18", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-7486", "url": "https://www.postgresql.org/support/security/CVE-2017-7486/", "fixed": {"9.2": "9.2.21", "9.3": "9.3.17", "9.4": "9.4.12", "9.5": "9.5.7", "9.6": "9.6.3"}, "score": 8.5, "title": "限制pg_user_mappings.umoptions的可见性，以保护作为用户映射选项存储的密码", "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-05-11", "9.3": "2017-05-11", "9.4": "2017-05-11", "9.5": "2017-05-11", "9.6": "2017-05-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-05-11", "fixed_version": "9.3.17", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2016-5424", "url": "https://www.postgresql.org/support/security/CVE-2016-5424/", "fixed": {"9.1": "9.1.23", "9.2": "9.2.18", "9.3": "9.3.14", "9.4": "9.4.9", "9.5": "9.5.4"}, "score": 8.5, "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "affected": {"9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5"}, "component": "client", "published": {"9.1": "2016-08-11", "9.2": "2016-08-11", "9.3": "2016-08-11", "9.4": "2016-08-11", "9.5": "2016-08-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2016-08-11", "fixed_version": "9.3.14", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-12172", "url": "https://www.postgresql.org/support/security/CVE-2017-12172/", "fixed": {"10": "10.1", "9.2": "9.2.24", "9.3": "9.3.20", "9.4": "9.4.15", "9.5": "9.5.10", "9.6": "9.6.6"}, "score": 8.4, "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "vector": "AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:H", "affected": {"10": "10", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "contrib module", "published": {"10": "2017-11-09", "9.2": "2017-11-09", "9.3": "2017-11-09", "9.4": "2017-11-09", "9.5": "2017-11-09", "9.6": "2017-11-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-11-09", "fixed_version": "9.3.20", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-7546", "url": "https://www.postgresql.org/support/security/CVE-2017-7546/", "fixed": {"9.2": "9.2.22", "9.3": "9.3.18", "9.4": "9.4.13", "9.5": "9.5.8", "9.6": "9.6.4"}, "score": 8.1, "title": "禁止在所有基于密码的认证方法中使用空密码", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-08-10", "9.3": "2017-08-10", "9.4": "2017-08-10", "9.5": "2017-08-10", "9.6": "2017-08-10"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-08-10", "fixed_version": "9.3.18", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-7485", "url": "https://www.postgresql.org/support/security/CVE-2017-7485/", "fixed": {"9.3": "9.3.17", "9.4": "9.4.12", "9.5": "9.5.7", "9.6": "9.6.3"}, "score": 8.1, "title": "恢复 libpq 对 PGREQUIRESSL 环境变量的识别", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "affected": {"9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"9.3": "2017-05-11", "9.4": "2017-05-11", "9.5": "2017-05-11", "9.6": "2017-05-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-05-11", "fixed_version": "9.3.17", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-0244", "url": "https://www.postgresql.org/support/security/CVE-2015-0244/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 8.1, "title": "修复出错后前端/后端协议可能失去同步的问题", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "core server", "published": {"9.0": "2015-02-05", "9.1": "2015-02-05", "9.2": "2015-02-05", "9.3": "2015-02-05", "9.4": "2015-02-05"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-02-05", "fixed_version": "9.3.6", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2016-7048", "url": "https://www.postgresql.org/support/security/CVE-2016-7048/", "fixed": {"9.1": "9.1.24", "9.2": "9.2.19", "9.3": "9.3.15", "9.4": "9.4.10", "9.5": "9.5.5"}, "score": 7.5, "title": "Interactive installer downloads software over plain HTTP, then executes it", "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H", "affected": {"9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5"}, "component": "packaging", "published": {"9.1": "2016-10-27", "9.2": "2016-10-27", "9.3": "2016-10-27", "9.4": "2016-10-27", "9.5": "2016-10-27"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2016-10-27", "fixed_version": "9.3.15", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-3165", "url": "https://www.postgresql.org/support/security/CVE-2015-3165/", "fixed": {"9.0": "9.0.20", "9.1": "9.1.16", "9.2": "9.2.11", "9.3": "9.3.7", "9.4": "9.4.2"}, "score": 7.5, "title": "避免客户端恰在认证超时到期前断开时可能出现的崩溃", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "core server", "published": {"9.0": "2015-05-22", "9.1": "2015-05-22", "9.2": "2015-05-22", "9.3": "2015-05-22", "9.4": "2015-05-22"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-05-22", "fixed_version": "9.3.7", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0061", "url": "https://www.postgresql.org/support/security/CVE-2014-0061/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 7.5, "title": "防止通过手工调用 PL 验证器函数进行权限提升", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.3.3", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0067", "url": "https://www.postgresql.org/support/security/CVE-2014-0067/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 7.0, "title": "锁定 Windows 上回归测试的临时安装", "vector": "AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "other", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.3.6", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2018-1053", "url": "https://www.postgresql.org/support/security/CVE-2018-1053/", "fixed": {"10": "10.2", "9.3": "9.3.21", "9.4": "9.4.16", "9.5": "9.5.11", "9.6": "9.6.7"}, "score": 6.7, "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "vector": "AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "affected": {"10": "10", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2018-02-08", "9.3": "2018-02-08", "9.4": "2018-02-08", "9.5": "2018-02-08", "9.6": "2018-02-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2018-02-08", "fixed_version": "9.3.21", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2016-0773", "url": "https://www.postgresql.org/support/security/CVE-2016-0773/", "fixed": {"9.1": "9.1.20", "9.2": "9.2.15", "9.3": "9.3.11", "9.4": "9.4.6", "9.5": "9.5.1"}, "score": 6.5, "title": "修复正则表达式中的无限循环和缓冲区越界问题", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H", "affected": {"9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5"}, "component": "core server", "published": {"9.1": "2016-02-11", "9.2": "2016-02-11", "9.3": "2016-02-11", "9.4": "2016-02-11", "9.5": "2016-02-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2016-02-11", "fixed_version": "9.3.11", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-0243", "url": "https://www.postgresql.org/support/security/CVE-2015-0243/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 6.5, "title": "修复contrib/pgcrypto中的缓冲区越界", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "contrib module", "published": {"9.0": "2015-02-05", "9.1": "2015-02-05", "9.2": "2015-02-05", "9.3": "2015-02-05", "9.4": "2015-02-05"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-02-05", "fixed_version": "9.3.6", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0064", "url": "https://www.postgresql.org/support/security/CVE-2014-0064/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 6.5, "title": "防止大小计算中的整数溢出导致缓冲区越界", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.3.3", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-5289", "url": "https://www.postgresql.org/support/security/CVE-2015-5289/", "fixed": {"9.3": "9.3.10", "9.4": "9.4.5"}, "score": 5.9, "title": "防御json解析中的栈溢出", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "affected": {"9.3": "9.3", "9.4": "9.4"}, "component": "core server", "published": {"9.3": "2015-10-08", "9.4": "2015-10-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-10-08", "fixed_version": "9.3.10", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-3166", "url": "https://www.postgresql.org/support/security/CVE-2015-3166/", "fixed": {"9.0": "9.0.20", "9.1": "9.1.16", "9.2": "9.2.11", "9.3": "9.3.7", "9.4": "9.4.2"}, "score": 5.6, "title": "改进对系统调用失败的检测", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "core server", "published": {"9.0": "2015-05-22", "9.1": "2015-05-22", "9.2": "2015-05-22", "9.3": "2015-05-22", "9.4": "2015-05-22"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-05-22", "fixed_version": "9.3.7", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-7484", "url": "https://www.postgresql.org/support/security/CVE-2017-7484/", "fixed": {"9.2": "9.2.21", "9.3": "9.3.17", "9.4": "9.4.12", "9.5": "9.5.7", "9.6": "9.6.3"}, "score": 4.3, "title": "防止通过泄漏型操作符暴露统计信息", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-05-11", "9.3": "2017-05-11", "9.4": "2017-05-11", "9.5": "2017-05-11", "9.6": "2017-05-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-05-11", "fixed_version": "9.3.17", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-15098", "url": "https://www.postgresql.org/support/security/CVE-2017-15098/", "fixed": {"10": "10.1", "9.3": "9.3.20", "9.4": "9.4.15", "9.5": "9.5.10", "9.6": "9.6.6"}, "score": 4.3, "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "affected": {"10": "10", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"10": "2017-11-09", "9.3": "2017-11-09", "9.4": "2017-11-09", "9.5": "2017-11-09", "9.6": "2017-11-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-11-09", "fixed_version": "9.3.20", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2016-5423", "url": "https://www.postgresql.org/support/security/CVE-2016-5423/", "fixed": {"9.1": "9.1.23", "9.2": "9.2.18", "9.3": "9.3.14", "9.4": "9.4.9", "9.5": "9.5.4"}, "score": 4.3, "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "affected": {"9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5"}, "component": "core server", "published": {"9.1": "2016-08-11", "9.2": "2016-08-11", "9.3": "2016-08-11", "9.4": "2016-08-11", "9.5": "2016-08-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2016-08-11", "fixed_version": "9.3.14", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0063", "url": "https://www.postgresql.org/support/security/CVE-2014-0063/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 4.3, "title": "防止长日期时间字符串造成缓冲区越界", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.3.3", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-0242", "url": "https://www.postgresql.org/support/security/CVE-2015-0242/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 4.2, "title": "修复替换实现的*printf()函数中的缓冲区越界", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "core server", "published": {"9.0": "2015-02-05", "9.1": "2015-02-05", "9.2": "2015-02-05", "9.3": "2015-02-05", "9.4": "2015-02-05"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-02-05", "fixed_version": "9.3.6", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-0241", "url": "https://www.postgresql.org/support/security/CVE-2015-0241/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 4.2, "title": "修复to_char()中的缓冲区越界", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "core server", "published": {"9.0": "2015-02-05", "9.1": "2015-02-05", "9.2": "2015-02-05", "9.3": "2015-02-05", "9.4": "2015-02-05"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-02-05", "fixed_version": "9.3.6", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-3167", "url": "https://www.postgresql.org/support/security/CVE-2015-3167/", "fixed": {"9.0": "9.0.20", "9.1": "9.1.16", "9.2": "9.2.11", "9.3": "9.3.7", "9.4": "9.4.2"}, "score": 3.7, "title": "在contrib/pgcrypto中，统一将解密失败报告为“Wrong key or corrupt data”", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "contrib module", "published": {"9.0": "2015-05-22", "9.1": "2015-05-22", "9.2": "2015-05-22", "9.3": "2015-05-22", "9.4": "2015-05-22"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-05-22", "fixed_version": "9.3.7", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2015-5288", "url": "https://www.postgresql.org/support/security/CVE-2015-5288/", "fixed": {"9.0": "9.0.23", "9.1": "9.1.19", "9.2": "9.2.14", "9.3": "9.3.10", "9.4": "9.4.5"}, "score": 3.1, "title": "修复contrib/pgcrypto以检测并报告过短的crypt()盐值", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "contrib module", "published": {"9.0": "2015-10-08", "9.1": "2015-10-08", "9.2": "2015-10-08", "9.3": "2015-10-08", "9.4": "2015-10-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2015-10-08", "fixed_version": "9.3.10", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-8161", "url": "https://www.postgresql.org/support/security/CVE-2014-8161/", "fixed": {"9.0": "9.0.19", "9.1": "9.1.15", "9.2": "9.2.10", "9.3": "9.3.6", "9.4": "9.4.1"}, "score": 3.1, "title": "修复通过约束违反错误消息的信息泄露", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "affected": {"9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.3.6", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0060", "url": "https://www.postgresql.org/support/security/CVE-2014-0060/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 3.1, "title": "加固 GRANT ... WITH ADMIN OPTION 的限制", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.3.3", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0066", "url": "https://www.postgresql.org/support/security/CVE-2014-0066/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 0.0, "title": "避免在 crypt() 返回 NULL 时崩溃", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:N", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "contrib module", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.3.3", "severity": "无", "status_label": "目标版本已修复"}, {"id": "CVE-2014-0065", "url": "https://www.postgresql.org/support/security/CVE-2014-0065/", "fixed": {"8.4": "8.4.20", "9.0": "9.0.16", "9.1": "9.1.12", "9.2": "9.2.7", "9.3": "9.3.3"}, "score": 0.0, "title": "防止固定大小缓冲区越界", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:N", "affected": {"8.4": "8.4", "9.0": "9.0", "9.1": "9.1", "9.2": "9.2", "9.3": "9.3"}, "component": "core server", "published": {}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": null, "fixed_version": "9.3.3", "severity": "无", "status_label": "目标版本已修复"}], "cve_available": true, "security_regressions": [], "remaining_cves": [{"id": "CVE-2026-6637", "url": "https://www.postgresql.org/support/security/CVE-2026-6637/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL refint allows stack buffer overflow and SQL injection", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6637", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Stack buffer overflow in PostgreSQL module \"refint\" allows an unprivileged database user to execute arbitrary code as the operating system user running the database. A distinct attack is possible if the application declares a user-controlled column as a \"refint\" cascade primary key and facilitates user-controlled updates to that column. In that case, a SQL injection allows a primary key update value provider to execute arbitrary SQL as the database user performing the primary key update. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6477", "url": "https://www.postgresql.org/support/security/CVE-2026-6477/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6477", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Use of inherently dangerous function PQfn(..., result_is_int=0, ...) in PostgreSQL libpq lo_export(), lo_read(), lo_lseek64(), and lo_tell64() functions allows the server superuser to overwrite a client stack buffer with an arbitrarily-large response. Like gets(), PQfn(..., result_is_int=0, ...) stores arbitrary-length, server-determined data into a buffer of unspecified size. Because both the \\lo_export command in psql and pg_dump call lo_read(), the server superuser can overwrite pg_dump or psql stack memory. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6475", "url": "https://www.postgresql.org/support/security/CVE-2026-6475/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL pg_basebackup and pg_rewind can overwrite unrelated files of origin superuser choice", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6475", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Symlink following in PostgreSQL pg_basebackup plain format and in pg_rewind allows an origin superuser to overwrite local files, e.g. /var/lib/postgres/.bashrc, that hijack the operating system account. It will remain the case that starting the server after these commands implicitly trusts the origin superuser, due to features like shared_preload_libraries. Hence, the attack has practical implications only if one takes relevant action between these commands and server start, like moving the files to a different VM or snapshotting the VM. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6473", "url": "https://www.postgresql.org/support/security/CVE-2026-6473/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL server undersizes allocations, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6473", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in multiple PostgreSQL server features allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds. This may execute arbitrary code as the operating system user running the database. In applications that pass gigabyte-scale user inputs to the relevant database functions, the application input provider may achieve a segmentation fault. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-2006", "url": "https://www.postgresql.org/support/security/CVE-2026-2006/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "PostgreSQL missing validation of multibyte character length executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2006", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing validation of multibyte character length in PostgreSQL text manipulation allows a database user to issue crafted queries that achieve a buffer overrun. That suffices to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-2005", "url": "https://www.postgresql.org/support/security/CVE-2026-2005/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "PostgreSQL pgcrypto heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2005", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL pgcrypto allows a ciphertext provider to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-2004", "url": "https://www.postgresql.org/support/security/CVE-2026-2004/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "PostgreSQL intarray missing validation of type of input to selectivity estimator executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2004", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing validation of type of input in PostgreSQL intarray extension selectivity estimator function allows an object creator to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-19385", "url": "https://www.postgresql.org/support/security/CVE-2026-19385/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL pg_dump heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-19385", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL pg_dump of long function transform lists allows an object creator to execute arbitrary code as the operating system user running pg_dump, via a crafted transform list. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-18408", "url": "https://www.postgresql.org/support/security/CVE-2026-18408/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL psql \\unrestrict lets superuser of pg_dump origin server execute arbitrary code in psql client", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-18408", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql \\restrict meta-command input expansion. The fix for CVE-2025-8714 introduced \\restrict and \\unrestrict to block this attack, but \\unrestrict itself was sufficient for an attack. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. Non-core use of \\restrict would be affected, but we've not identified non-core use. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-16239", "url": "https://www.postgresql.org/support/security/CVE-2026-16239/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL type confusion in cursor CLOSE + DECLARE executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-16239", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion in PostgreSQL \"portal\"/cursor lifecycle allows a user to execute arbitrary code as the operating system user running the database, via re-creation of a cursor or other portal with different types. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-15742", "url": "https://www.postgresql.org/support/security/CVE-2026-15742/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL fuzzystrmatch writes effectively-arbitrary addresses, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-15742", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in PostgreSQL fuzzystrmatch allows a user to direct writes to a huge range of addresses, executing arbitrary code as the operating system user running the database, via extreme inputs to SQL function levenshtein() or levenshtein_less_equal(). Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-15741", "url": "https://www.postgresql.org/support/security/CVE-2026-15741/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL expression deparse allows SQL injection via EXTRACT argument", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-15741", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "SQL injection in PostgreSQL EXTRACT() deparse allows an object owner to execute arbitrary SQL as a superuser via a hostile object definition. Attacks affect expression deparse consumers broadly, including pg_dump, psql commands like \\sf, and any similar usage in non-core tools. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14680", "url": "https://www.postgresql.org/support/security/CVE-2026-14680/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL type confusion via \"internal\" arguments", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14680", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion with PostgreSQL \"internal\" data type arguments allows any user to execute arbitrary code as the operating system user running the database, via calls to functions with that argument type. Type \"internal\" represents a class of mutually-incompatible data structures not intended for access from SQL. The system intended to prevent such function calls, but this prevention had gaps. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14677", "url": "https://www.postgresql.org/support/security/CVE-2026-14677/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL 32-bit pltcl and plperl undersize allocations, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14677", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in PostgreSQL 32-bit builds of pltcl and plperl allows an object creator to cause the server to undersize an allocation and write out-of-bounds via crafted function bodies. This may execute arbitrary code as the operating system user running the database. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14671", "url": "https://www.postgresql.org/support/security/CVE-2026-14671/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL refint plan cache type confusion executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14671", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion in PostgreSQL module \"refint\" allows an object creator to execute arbitrary code as the operating system user running the database. The fix for this emerged as a non-security bug report, and the fix appear in the git repository with subject \"refint: Remove plan cache.\", without a CVE number. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14670", "url": "https://www.postgresql.org/support/security/CVE-2026-14670/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL plperl tied object heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14670", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL plperl return of a tied hash allows the function owner to execute arbitrary code as the operating system user running the database, via a crafted function body. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14669", "url": "https://www.postgresql.org/support/security/CVE-2026-14669/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL to_char heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14669", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL to_char(timestamptz) allows the party choosing the timezone to execute arbitrary code as the operating system user running the database, via a long POSIX timezone abbreviation. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14664", "url": "https://www.postgresql.org/support/security/CVE-2026-14664/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL regexp heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14664", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL regexp allows the query author to execute arbitrary code as the operating system user running the database, via text that would not pass encoding validation. This shares heritage with CVE-2026-2006, but this case involved unanticipated data growth when round-tripped through pg_wchar. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14662", "url": "https://www.postgresql.org/support/security/CVE-2026-14662/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL tsvector and tsquery undersize allocations, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14662", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in PostgreSQL tsvector and tsquery data type functions allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds, via crafted large inputs. This may execute arbitrary code as the operating system user running the database. These types are typically sourced from application logic, not taken from the application's user. Hence, application users attacking the database, through the application as a conduit, are unlikely. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2025-8714", "url": "https://www.postgresql.org/support/security/CVE-2025-8714/", "fixed": {"13": "13.22", "14": "14.19", "15": "15.14", "16": "16.10", "17": "17.6"}, "score": 8.8, "title": "PostgreSQL pg_dump lets superuser of origin server execute arbitrary code in psql client", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-8714", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-08-14", "14": "2025-08-14", "15": "2025-08-14", "16": "2025-08-14", "17": "2025-08-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. This is similar to MySQL CVE-2024-21096. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "affected_ranges": [{"from": "0", "until": "13.22"}, {"from": "14", "until": "14.19"}, {"from": "15", "until": "15.14"}, {"from": "16", "until": "16.10"}, {"from": "17", "until": "17.6"}], "first_published": "2025-08-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2024-7348", "url": "https://www.postgresql.org/support/security/CVE-2024-7348/", "fixed": {"12": "12.20", "13": "13.16", "14": "14.13", "15": "15.8", "16": "16.4"}, "score": 8.8, "title": "PostgreSQL relation replacement during pg_dump executes arbitrary SQL", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-7348", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16"}, "component": "core server", "published": {"12": "2024-08-08", "13": "2024-08-08", "14": "2024-08-08", "15": "2024-08-08", "16": "2024-08-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Time-of-check Time-of-use (TOCTOU) race condition in pg_dump in PostgreSQL allows an object creator to execute arbitrary SQL functions as the user running pg_dump, which is often a superuser. The attack involves replacing another relation type with a view or foreign table. The attack requires waiting for pg_dump to start, but winning the race condition is trivial if the attacker retains an open transaction. Versions before PostgreSQL 16.4, 15.8, 14.13, 13.16, and 12.20 are affected.\n\nThe PostgreSQL project thanks Noah Misch for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.20"}, {"from": "13", "until": "13.16"}, {"from": "14", "until": "14.13"}, {"from": "15", "until": "15.8"}, {"from": "16", "until": "16.4"}], "first_published": "2024-08-08", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2024-10979", "url": "https://www.postgresql.org/support/security/CVE-2024-10979/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 8.8, "title": "PostgreSQL PL/Perl environment variable changes execute arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10979", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect control of environment variables in PostgreSQL PL/Perl allows an unprivileged database user to change sensitive process environment variables (e.g. PATH ). That often suffices to enable arbitrary code execution, even if the attacker lacks a database server operating system user. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Coby Abrams for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14679", "url": "https://www.postgresql.org/support/security/CVE-2026-14679/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.2, "title": "PostgreSQL stack buffer overflow in argument match writes 0x0 and 0x1 to server memory", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14679", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Stack buffer overflow in PostgreSQL argument name matching allows an object creator to achieve unknown impacts via OUT parameter count. The attack can write only 0x0 and 0x1 bytes. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6464", "url": "https://www.postgresql.org/support/security/CVE-2026-6464/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.1, "title": "PostgreSQL psql COPY FROM STDIN early failure processes data lines as psql commands", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6464", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted data inclusion in PostgreSQL psql COPY may allow a server administrator to elicit execution of data lines as psql commands, via error injection. If the \"COPY FROM STDIN\" or \"\\copy FROM STDIN\" command fails before the server indicates that it awaits input rows, psql processes the in-line data rows as psql commands. \"COPY FROM\" with a filename is unaffected. The server administrator has no inherent control over the data rows, so a complete attack requires the attacker to separately acquire control of both the server and the data rows. Alternatively, an attacker controlling data rows alone might complete an attack through a coincidental error that they don't control. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14668", "url": "https://www.postgresql.org/support/security/CVE-2026-14668/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.1, "title": "PostgreSQL ctid type confusion in selectivity estimator discloses derivative of arbitrary read", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14668", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion regarding input of PostgreSQL ctid data type selectivity estimator allows an object creator to view a calculation derived from the value of an arbitrary 4-byte span of memory, via a chosen non-ctid input. While the calculation loses precision, substantial memory value recovery appears possible. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2025-1094", "url": "https://www.postgresql.org/support/security/CVE-2025-1094/", "fixed": {"13": "13.19", "14": "14.16", "15": "15.11", "16": "16.7", "17": "17.3"}, "score": 8.1, "title": "PostgreSQL quoting APIs miss neutralizing quoting syntax in text that fails encoding validation", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-1094", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-02-13", "14": "2025-02-13", "15": "2025-02-13", "16": "2025-02-13", "17": "2025-02-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Improper neutralization of quoting syntax in PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() allows a database input provider to achieve SQL injection in certain usage patterns. Specifically, SQL injection requires the application to use the function result to construct input to psql, the PostgreSQL interactive terminal. Similarly, improper neutralization of quoting syntax in PostgreSQL command line utility programs allows a source of command line arguments to achieve SQL injection when client_encoding is BIG5 and server_encoding is one of EUC_TW or MULE_INTERNAL. Versions before PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 are affected.", "affected_ranges": [{"from": "0", "until": "13.19"}, {"from": "14", "until": "14.16"}, {"from": "15", "until": "15.11"}, {"from": "16", "until": "16.7"}, {"from": "17", "until": "17.3"}], "first_published": "2025-02-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2024-0985", "url": "https://www.postgresql.org/support/security/CVE-2024-0985/", "fixed": {"12": "12.18", "13": "13.14", "14": "14.11", "15": "15.6", "16": "16.2"}, "score": 8.0, "title": "PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL", "vector": "AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-0985", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16"}, "component": "core server", "published": {"12": "2024-02-08", "13": "2024-02-08", "14": "2024-02-08", "15": "2024-02-08", "16": "2024-02-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "UPDATE (June 19, 2024) : Added v16 as impacted. Updated description to clarify the attack vector.\n\nLate privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim into running REFRESH MATERIALIZED VIEW CONCURRENTLY on the attacker's materialized view.", "affected_ranges": [{"from": "0", "until": "12.18"}, {"from": "13", "until": "13.14"}, {"from": "14", "until": "14.11"}, {"from": "15", "until": "15.6"}, {"from": "16", "until": "16.2"}], "first_published": "2024-02-08", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6479", "url": "https://www.postgresql.org/support/security/CVE-2026-6479/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 7.5, "title": "PostgreSQL SSL/GSS init causes denial of service, via uncontrolled recursion", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6479", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Uncontrolled recursion in PostgreSQL SSL and GSS negotiation allows an attacker able to connect to a PostgreSQL AF_UNIX socket to achieve sustained denial of service. If SSL and GSS are both disabled, an attacker can do the same via access to a PostgreSQL TCP socket. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6471", "url": "https://www.postgresql.org/support/security/CVE-2026-6471/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 7.2, "title": "PostgreSQL logical decoding can dlopen arbitrary file", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6471", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL logical decoding allows a non-superuser holding REPLICATION privilege to dlopen any file visible to the operating system account running the server, via the choice of logical decoding plugin. This in turn runs arbitrary code as that account. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6478", "url": "https://www.postgresql.org/support/security/CVE-2026-6478/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 6.5, "title": "PostgreSQL discloses MD5-hashed passwords via covert timing channel", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6478", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Covert timing channel in comparison of MD5-hashed password in PostgreSQL authentication allows an attacker to recover user credentials sufficient to authenticate. This does not affect scram-sha-256 passwords, the default in all supported releases. However, current databases may have MD5-hashed passwords originating in upgrades from PostgreSQL 13 or earlier. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-14663", "url": "https://www.postgresql.org/support/security/CVE-2026-14663/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 6.5, "title": "PostgreSQL pgcrypto, for OpenSSL-disabled ciphers, silently encrypts to and decrypts from cleartext", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14663", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Cleartext storage in PostgreSQL pgcrypto disabled ciphers allows a user to recover cleartext, via direct observation of the faulty ciphertext. The OpenSSL version and OpenSSL configuration determine the disabled ciphers. If the application accepts encrypted data as input, decryption will succeed even with the wrong key. This in turn loses the modest protection from the Modification Detection Code (MDC). Affected functions are pgp_sym_encrypt, pgp_sym_decrypt, pgp_pub_encrypt, pgp_pub_decrypt, pgp_sym_encrypt_bytea, pgp_sym_decrypt_bytea, pgp_pub_encrypt_bytea, and pgp_pub_decrypt_bytea. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2025-4207", "url": "https://www.postgresql.org/support/security/CVE-2025-4207/", "fixed": {"13": "13.21", "14": "14.18", "15": "15.13", "16": "16.9", "17": "17.5"}, "score": 5.9, "title": "PostgreSQL GB18030 encoding validation can read one byte past end of allocation for text that fails validation", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-4207", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-05-08", "14": "2025-05-08", "15": "2025-05-08", "16": "2025-05-08", "17": "2025-05-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Buffer over-read in PostgreSQL GB18030 encoding validation allows a database input provider to achieve temporary denial of service on platforms where a 1-byte over-read can elicit process termination. This affects the database server and also libpq. Versions before PostgreSQL 17.5, 16.9, 15.13, 14.18, and 13.21 are affected.", "affected_ranges": [{"from": "0", "until": "13.21"}, {"from": "14", "until": "14.18"}, {"from": "15", "until": "15.13"}, {"from": "16", "until": "16.9"}, {"from": "17", "until": "17.5"}], "first_published": "2025-05-08", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2025-12818", "url": "https://www.postgresql.org/support/security/CVE-2025-12818/", "fixed": {"13": "13.23", "14": "14.20", "15": "15.15", "16": "16.11", "17": "17.7", "18": "18.1"}, "score": 5.9, "title": "PostgreSQL libpq undersizes allocations, via integer wraparound", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-12818", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"13": "2025-11-13", "14": "2025-11-13", "15": "2025-11-13", "16": "2025-11-13", "17": "2025-11-13", "18": "2025-11-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in multiple PostgreSQL libpq client library functions allows an application input provider or network peer to cause libpq to undersize an allocation and write out-of-bounds by hundreds of megabytes. This results in a segmentation fault for the application using libpq. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "affected_ranges": [{"from": "0", "until": "13.23"}, {"from": "14", "until": "14.20"}, {"from": "15", "until": "15.15"}, {"from": "16", "until": "16.11"}, {"from": "17", "until": "17.7"}, {"from": "18", "until": "18.1"}], "first_published": "2025-11-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6472", "url": "https://www.postgresql.org/support/security/CVE-2026-6472/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 5.4, "title": "PostgreSQL CREATE TYPE does not check multirange schema CREATE privilege", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6472", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL CREATE TYPE allows an object creator to hijack other queries that use search_path to find user-defined types, including extension-defined types. That is to say, the victim will execute arbitrary SQL functions of the attacker's choice. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6474", "url": "https://www.postgresql.org/support/security/CVE-2026-6474/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 4.3, "title": "PostgreSQL timeofday() can disclose portions of server memory", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6474", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Externally-controlled format string in PostgreSQL timeofday() function allows an attacker to retrieve portions of server memory, via crafted timezone zones. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6470", "url": "https://www.postgresql.org/support/security/CVE-2026-6470/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.3, "title": "PostgreSQL fails to check type USAGE privilege", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6470", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL DDL commands allows an object creator to achieve denial of service against ALTER and DROP of the type, via creating a dependency on the type. Many DDL operations did check the privilege, but assigning a range subtype and referencing the type from an SQL expression did not. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-2003", "url": "https://www.postgresql.org/support/security/CVE-2026-2003/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 4.3, "title": "PostgreSQL oidvector discloses a few bytes of memory", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2003", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Improper validation of type \"oidvector\" in PostgreSQL allows a database user to disclose a few bytes of server memory. We have not ruled out viability of attacks that arrange for presence of confidential information in disclosed bytes, but they seem unlikely. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-18024", "url": "https://www.postgresql.org/support/security/CVE-2026-18024/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.3, "title": "PostgreSQL ascii() function reads past end of buffer", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-18024", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Buffer over-read in PostgreSQL ascii() SQL function allows a user to disclose up to 3 bytes after the end of a specific allocation, via a crafted text value. This is the same class of defect that CVE-2026-2006 fixed, though this instance has less impact. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-14678", "url": "https://www.postgresql.org/support/security/CVE-2026-14678/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.3, "title": "PostgreSQL pg_trgm picksplit reads past end of buffer", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14678", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Buffer over-read in PostgreSQL pg_trgm index picksplit function reads past end of a heap buffer. This might allow a table maintainer to infer limited memory values, via the lossy signal of index split choices. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-14666", "url": "https://www.postgresql.org/support/security/CVE-2026-14666/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.2, "title": "PostgreSQL row security caching disregards role modifications", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14666", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incomplete tracking in PostgreSQL of changes to role membership, role attributes, and database ownership allows a query to continue using cached row-level security policies after those changes require a different policy, via plan reuse. Stale policies continue until some other event invalidates the cache or connection termination ends the session. This permits a user to complete reads and modifications that were recently permitted but now forbidden. An attacker must tailor an attack to a particular application's pattern of privilege removal and role-specific row security policies. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2024-10978", "url": "https://www.postgresql.org/support/security/CVE-2024-10978/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 4.2, "title": "PostgreSQL SET ROLE, SET SESSION AUTHORIZATION reset to wrong user ID", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10978", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to view or change different rows from those intended. An attack requires the application to use SET ROLE , SET SESSION AUTHORIZATION , or an equivalent feature. The problem arises when an application query uses parameters from the attacker or conveys query results to the attacker. If that query reacts to current_setting('role') or the current user ID, it may modify or return data as though the session had not used SET ROLE or SET SESSION AUTHORIZATION . The attacker does not control which incorrect user ID applies. Query text from less-privileged sources is not a concern here, because SET ROLE and SET SESSION AUTHORIZATION are not sandboxes for unvetted queries. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2024-10976", "url": "https://www.postgresql.org/support/security/CVE-2024-10976/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 4.2, "title": "PostgreSQL row security below e.g. subqueries disregards user ID changes", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10976", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incomplete tracking in PostgreSQL of tables with row security allows a reused query to view or change different rows from those intended. CVE-2023-2455 and CVE-2016-2193 fixed most interaction between row security and user ID changes. They missed cases where a subquery, WITH query, security invoker view, or SQL-language function references a table with a row-level security policy. This has the same consequences as the two earlier CVEs. That is to say, it leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLEs.\n\nApplying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy. An attacker must tailor an attack to a particular application's pattern of query plan reuse, user ID changes, and role-specific row security policies. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6469", "url": "https://www.postgresql.org/support/security/CVE-2026-6469/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 3.8, "title": "PostgreSQL ALTER TABLE ALTER TYPE resets extended statistics ownership", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6469", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect ownership assignment in PostgreSQL ALTER TABLE ALTER TYPE command reassigns ownership of dependent statistics objects to the current user. This wrongly allows the table owner to run DROP STATISTICS and ALTER STATISTICS via this improper ownership. It wrongly denies those commands to the prior statistics object owner. DROP TABLE remains able to remove statistics objects, so this exploit achieves nothing in many ownership arrangements. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2026-16241", "url": "https://www.postgresql.org/support/security/CVE-2026-16241/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 3.8, "title": "PostgreSQL ECPG integer underflow can crash the client", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-16241", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer underflow in PostgreSQL ECPG allows a database server administrator to achieve temporary denial of service against the ECPG client via sending a bytea value lacking the mandatory prefix. The client overwrites a huge memory region with bytes outside attacker knowledge or control. This typically yields a simple SIGSEGV, but rare cases might achieve client-specific integrity impact via the write. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2026-14673", "url": "https://www.postgresql.org/support/security/CVE-2026-14673/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "18": "18.6"}, "score": 3.8, "title": "PostgreSQL amcheck does not clear untrusted search path", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14673", "affected": {"14": "14", "15": "15", "16": "16", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted search path in PostgreSQL amcheck allows a grantee of amcheck function EXECUTE privilege to execute arbitrary functions as the owners of expression indexes that depend on the search path, via setting a hostile search path before calling the amcheck function. Within major versions 18, 16, 15, and 14, minor versions before PostgreSQL 18.6, 16.15, 15.19, and 14.24 are affected. PostgreSQL 17 is unaffected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2025-8713", "url": "https://www.postgresql.org/support/security/CVE-2025-8713/", "fixed": {"13": "13.22", "14": "14.19", "15": "15.14", "16": "16.10", "17": "17.6"}, "score": 3.1, "title": "PostgreSQL optimizer statistics can expose sampled data within a view, partition, or child table", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-8713", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-08-14", "14": "2025-08-14", "15": "2025-08-14", "16": "2025-08-14", "17": "2025-08-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "PostgreSQL optimizer statistics allow a user to read sampled data within a view that the user cannot access. Separately, statistics allow a user to read sampled data that a row security policy intended to hide. PostgreSQL maintains statistics for tables by sampling data available in columns; this data is consulted during the query planning process. Prior to this release, a user could craft a leaky operator that bypassed view access control lists (ACLs) and bypassed row security policies in partitioning or table inheritance hierarchies. Reachable statistics data notably included histograms and most-common-values lists. CVE-2017-7484 and CVE-2019-10130 intended to close this class of vulnerability, but this gap remained. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "affected_ranges": [{"from": "0", "until": "13.22"}, {"from": "14", "until": "14.19"}, {"from": "15", "until": "15.14"}, {"from": "16", "until": "16.10"}, {"from": "17", "until": "17.6"}], "first_published": "2025-08-14", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2025-12817", "url": "https://www.postgresql.org/support/security/CVE-2025-12817/", "fixed": {"13": "13.23", "14": "14.20", "15": "15.15", "16": "16.11", "17": "17.7", "18": "18.1"}, "score": 3.1, "title": "PostgreSQL CREATE STATISTICS does not check for schema CREATE privilege", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-12817", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"13": "2025-11-13", "14": "2025-11-13", "15": "2025-11-13", "16": "2025-11-13", "17": "2025-11-13", "18": "2025-11-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL CREATE STATISTICS command allows a table owner to achieve denial of service against other CREATE STATISTICS users by creating in any schema. A later CREATE STATISTICS for the same name, from a user having the CREATE privilege, would then fail. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "affected_ranges": [{"from": "0", "until": "13.23"}, {"from": "14", "until": "14.20"}, {"from": "15", "until": "15.15"}, {"from": "16", "until": "16.11"}, {"from": "17", "until": "17.7"}, {"from": "18", "until": "18.1"}], "first_published": "2025-11-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2024-10977", "url": "https://www.postgresql.org/support/security/CVE-2024-10977/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 3.1, "title": "PostgreSQL libpq retains an error message from man-in-the-middle", "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10977", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "client", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Client use of server error message in PostgreSQL allows a server not trusted under current SSL or GSS settings to furnish arbitrary non-NUL bytes to the libpq application. For example, a man-in-the-middle attacker could send a long error message that a human or screen-scraper user of psql mistakes for valid query results. This is probably not a concern for clients where the user interface unambiguously indicates the boundary between one error message and other text. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "低危"}], "cross_major": false, "excluded_count": 0, "already_in_source_count": 0, "duplicate_count": 0, "candidate_count": 791, "exclusions": [], "history": {"source": ["9.0.0", "9.0.1", "9.0.2", "9.0.3", "9.0.4", "9.1.0", "9.1.1", "9.1.2", "9.1.3", "9.1.4", "9.1.5", "9.2.0", "9.2.1", "9.2.2", "9.2.3", "9.2.4", "9.3.0"], "target": ["9.0.0", "9.0.1", "9.0.2", "9.0.3", "9.0.4", "9.1.0", "9.1.1", "9.1.2", "9.1.3", "9.1.4", "9.1.5", "9.2.0", "9.2.1", "9.2.2", "9.2.3", "9.2.4", "9.3.0", "9.3.1", "9.3.2", "9.3.3", "9.3.4", "9.3.5", "9.3.6", "9.3.7", "9.3.8", "9.3.9", "9.3.10", "9.3.11", "9.3.12", "9.3.13", "9.3.14", "9.3.15", "9.3.16", "9.3.17", "9.3.18", "9.3.19", "9.3.20", "9.3.21", "9.3.22", "9.3.23", "9.3.24", "9.3.25"], "candidates": ["9.3.1", "9.3.2", "9.3.3", "9.3.4", "9.3.5", "9.3.6", "9.3.7", "9.3.8", "9.3.9", "9.3.10", "9.3.11", "9.3.12", "9.3.13", "9.3.14", "9.3.15", "9.3.16", "9.3.17", "9.3.18", "9.3.19", "9.3.20", "9.3.21", "9.3.22", "9.3.23", "9.3.24", "9.3.25"]}, "release_count": 25, "warnings": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}