{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2017-11-09", "build": "9.4.15", "major": "9.4", "minor": 15, "manual": "9.4", "status": "stable", "doc_git": "", "version": "9.4.15", "eol_date": "2020-02-13", "date_text": "2017-11-09", "supported": false, "manual_url": "/docs/9.4/release-9-4-15.html", "source_url": "/docs/release/9.4.15/", "entry_count": 22, "placeholder": false, "content_hash": "70cd41c57c68f3d6d6a965c9c333fc088851fa714d73ecd46e882707171bd3f8", "manual_build": "9.4.26", "source_as_of": "", "changes_count": 22, "doc_loaded_at": "2026-09-26T02:56:45.438944", "migration_html": "<p>对于运行 9.4.X 的用户，不需要转储/恢复。</p>\n<p>但是，如果你是从早于 9.4.13 的版本升级，请参见<a href=\"/docs/9.4/release-9-4-13.html\" title=\"E.14. 版本 9.4.13\">第 E.14 节</a>。</p>", "compatibility_count": 0, "label": "9.4.15", "status_label": "历史版本", "eol": "2020-02-13", "age_days": 3247, "support_days": -2421}, "groups": [{"date": "2017-11-09", "build": "9.4.15", "major": "9.4", "minor": 15, "manual": "9.4", "status": "stable", "doc_git": "", "version": "9.4.15", "eol_date": "2020-02-13", "date_text": "2017-11-09", "supported": false, "manual_url": "/docs/9.4/release-9-4-15.html", "source_url": "/docs/release/9.4.15/", "entry_count": 22, "placeholder": false, "content_hash": "70cd41c57c68f3d6d6a965c9c333fc088851fa714d73ecd46e882707171bd3f8", "manual_build": "9.4.26", "source_as_of": "", "changes_count": 22, "doc_loaded_at": "2026-09-26T02:56:45.438944", "migration_html": "<p>对于运行 9.4.X 的用户，不需要转储/恢复。</p>\n<p>但是，如果你是从早于 9.4.13 的版本升级，请参见<a href=\"/docs/9.4/release-9-4-13.html\" title=\"E.14. 版本 9.4.13\">第 E.14 节</a>。</p>", "compatibility_count": 0, "label": "9.4.15", "status_label": "历史版本", "eol": "2020-02-13", "age_days": 3247, "support_days": -2421, "entries": [{"id": "9.4.15-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.4.15/#id-1.11.6.16.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.4.15/changes/001", "db_id": "399e2c79d4fb41c334e3d99840aff867", "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": "b357626c41922e96515309927cc03818", "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.4.15", "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": "b357626c41922e96515309927cc03818", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}, "url": "/docs/compare/?release=9.3.20#9.3.20-6347e8c17fee8c51", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}]}, {"id": "9.4.15-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.4.15/#id-1.11.6.16.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.4.15/changes/002", "db_id": "1841cb200c58de883289108126c8e6b6", "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": "58dc708b44515e2bcbaa8e8e039dbcca", "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.4.15", "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": "58dc708b44515e2bcbaa8e8e039dbcca", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}, "url": "/docs/compare/?release=9.3.20#9.3.20-b695ceda5feee1ee", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-1586d96c829891f2", "cves": [], "html": "<p>修复从使用 SPI 的函数（特别是任何用 PL 语言编写的函数）调用逻辑解码时崩溃的问题（Tom Lane）</p>", "text": "修复从使用 SPI 的函数（特别是任何用 PL 语言编写的函数）调用逻辑解码时崩溃的问题（Tom Lane）", "title": "修复从使用 SPI 的函数（特别是任何用 PL 语言编写的函数）调用逻辑解码时崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5", "source_hash": "b360085a0ce51ecd6986abe0e1f8eae8af49c24478d8cf872a50e48f23e334fa", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash when logical decoding is invoked from a SPI-using function, in particular any function written in a PL language (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.15/changes/003", "db_id": "da2723bbe135add5ce39c87e8667a6ed", "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b", "relations": [{"rule": 2, "type": "equivalent", "target": "900b590dedd3fa57b2276a470d16c59c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}}, {"rule": 2, "type": "equivalent", "target": "d7712c8f429e00f2ff58d6d97cfb681b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}}, {"rule": 2, "type": "equivalent", "target": "d9b5032f1d268347b703e11848bd7e28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}}], "version": "9.4.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d7712c8f429e00f2ff58d6d97cfb681b", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复从使用 SPI 的函数（尤其是用 PL 语言编写的任何函数）调用逻辑解码时的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}, "url": "/docs/compare/?release=10.1#10.1-77c54d6b8262b88b", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "900b590dedd3fa57b2276a470d16c59c", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "修复从使用 SPI 的函数（特别是任何用 PL 语言编写的函数）调用逻辑解码时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}, "url": "/docs/compare/?release=9.6.6#9.6.6-e11054395380bc6f", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "d9b5032f1d268347b703e11848bd7e28", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复从使用 SPI 的函数（特别是任何用 PL 语言编写的函数）调用逻辑解码时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}, "url": "/docs/compare/?release=9.5.10#9.5.10-e11054395380bc6f", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}]}, {"id": "9.4.15-13e04a714b411797", "cves": [], "html": "<p>修复<code>json_build_array()</code>、<code>json_build_object()</code>及其<code>jsonb</code>等价函数正确处理显式<code>VARIADIC</code>参数的问题（Michael Paquier）</p>", "text": "修复json_build_array()、json_build_object()及其jsonb等价函数正确处理显式VARIADIC参数的问题（Michael Paquier）", "title": "修复json_build_array()、json_build_object()及其jsonb等价函数正确处理显式VARIADIC参数的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5", "source_hash": "6e3c1d038776d22364c06cd674456f2b01b1bd3348e3c94b96c60735f27ca965", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix json_build_array(), json_build_object(), and their jsonb equivalents to handle explicit VARIADIC arguments correctly (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.15/changes/004", "db_id": "0f347118ea5476d78ae7cfc6afc3de76", "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d", "relations": [{"rule": 2, "type": "equivalent", "target": "17540cc0aa36f42db829bb39af599b7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}}, {"rule": 2, "type": "equivalent", "target": "8dc79438cda57a198fc3c7951a656488", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}}, {"rule": 2, "type": "equivalent", "target": "ebcfc09ce0306c1e91a3fe2d4c753e2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}}], "version": "9.4.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8dc79438cda57a198fc3c7951a656488", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复 json_build_array()、json_build_object() 及其 jsonb 对应函数，使其正确处理显式 VARIADIC 参数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}, "url": "/docs/compare/?release=10.1#10.1-8bffb9fa5d5c7e8e", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "ebcfc09ce0306c1e91a3fe2d4c753e2c", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "修复 json_build_array()、json_build_object() 及其 jsonb 等价函数正确处理显式 VARIADIC 参数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}, "url": "/docs/compare/?release=9.6.6#9.6.6-2a1f733d60fe75b9", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "17540cc0aa36f42db829bb39af599b7b", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 json_build_array()、json_build_object() 及其 jsonb 等价函数正确处理显式 VARIADIC 参数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}, "url": "/docs/compare/?release=9.5.10#9.5.10-2a1f733d60fe75b9", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}]}, {"id": "9.4.15-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.4.15/#id-1.11.6.16.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.4.15/changes/005", "db_id": "37d688fc8a40beae324922612cd078f9", "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9", "relations": [{"rule": 2, "type": "equivalent", "target": "1c3b664e169e7db957bffb63f49a583a", "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.4.15", "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": "1c3b664e169e7db957bffb63f49a583a", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}, "url": "/docs/compare/?release=9.3.20#9.3.20-c236d03a7517be54", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-a372add8964a05a5", "cves": [], "html": "<p>修复在视图末尾添加列后极端情况下崩溃的问题（Tom Lane）</p>", "text": "修复在视图末尾添加列后极端情况下崩溃的问题（Tom Lane）", "title": "修复在视图末尾添加列后极端情况下崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.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.4.15/changes/006", "db_id": "ecb8d6ca4538276779e5fb096fe8c30a", "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf", "relations": [{"rule": 2, "type": "equivalent", "target": "5dd9112df0daa106089cd18015b5f07c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"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": "ef97718edf710920c1ada79e912a7394", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}], "version": "9.4.15", "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": "5dd9112df0daa106089cd18015b5f07c", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复在视图末尾添加列后的边界崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=9.3.20#9.3.20-98a6704c482fbe65", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-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.4.15/#id-1.11.6.16.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.4.15/changes/007", "db_id": "007bd13b9c4a811e28128c420f3c0bd1", "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70", "relations": [{"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"}}, {"rule": 2, "type": "equivalent", "target": "7e1c2a52c11eebe68320cb6819bb6842", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}}], "version": "9.4.15", "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": "7e1c2a52c11eebe68320cb6819bb6842", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}, "url": "/docs/compare/?release=9.3.20#9.3.20-4afb8b5079afaf49", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-4c6bea1fab68c8a1", "cves": [], "html": "<p>正确检测范围数据类型的可哈希性（Tom Lane）</p>\n<p>规划器错误地假定任何范围类型都可以哈希用于哈希连接或哈希聚合，但实际上必须检查范围的子类型是否有哈希支持。这不影响任何内置范围类型，因为它们反正都是可哈希的。</p>", "text": "正确检测范围数据类型的可哈希性（Tom Lane） 规划器错误地假定任何范围类型都可以哈希用于哈希连接或哈希聚合，但实际上必须检查范围的子类型是否有哈希支持。这不影响任何内置范围类型，因为它们反正都是可哈希的。", "title": "正确检测范围数据类型的可哈希性", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.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.4.15/changes/008", "db_id": "1f0ededa100214388e94db4ee785cdd1", "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f", "relations": [{"rule": 2, "type": "equivalent", "target": "29fb35dd9919703bc165f056b889dd49", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}}, {"rule": 2, "type": "equivalent", "target": "402b5b239a6a0c7dee3485212563f74e", "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.4.15", "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": "402b5b239a6a0c7dee3485212563f74e", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "正确检测范围数据类型的可哈希性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}, "url": "/docs/compare/?release=9.3.20#9.3.20-4c6bea1fab68c8a1", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-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.4.15/#id-1.11.6.16.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.4.15/changes/009", "db_id": "89fcaef7b09acb5d6956f7d490688e6c", "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": "b1531f77e7bfc7c36f8dcd1febcf51d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}, {"rule": 2, "type": "equivalent", "target": "bd64297a2b9915f0c99497279540ff3d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}], "version": "9.4.15", "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": "bd64297a2b9915f0c99497279540ff3d", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}, "url": "/docs/compare/?release=9.3.20#9.3.20-8ad2c3361ed421f1", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-bcee3594ea3c38b1", "cves": [], "html": "<p>避免 Linux 上 DSM 内存请求超出<span>tmpfs</span>可用空间时出现<span>SIGBUS</span>崩溃（Thomas Munro）</p>", "text": "避免 Linux 上 DSM 内存请求超出tmpfs可用空间时出现SIGBUS崩溃（Thomas Munro）", "title": "避免 Linux 上 DSM 内存请求超出tmpfs可用空间时出现SIGBUS崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5", "source_hash": "bdc9a0db5afe79f3f6ec48bfe6ac9513a99b766371e60d69b4fc847f402a0012", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid SIGBUS crash on Linux when a DSM memory request exceeds the space available in tmpfs (Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.15/changes/010", "db_id": "24b2167678273fe5bee5ca0dcc18d287", "patch_ids": [], "statement_hash": "f8dce9fdbf4e026c64abe11362da8dd5fcec4e8b3c73a1814ceb1510ec9c1196", "relations": [{"rule": 2, "type": "equivalent", "target": "4fc31ab5ac996071dfe1717b6a669cb9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8dce9fdbf4e026c64abe11362da8dd5fcec4e8b3c73a1814ceb1510ec9c1196"}}, {"rule": 2, "type": "equivalent", "target": "9e790a7a15bc8950390531ea4cda9ba6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8dce9fdbf4e026c64abe11362da8dd5fcec4e8b3c73a1814ceb1510ec9c1196"}}], "version": "9.4.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9e790a7a15bc8950390531ea4cda9ba6", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "避免 Linux 上 DSM 内存请求超过 tmpfs 可用空间时的 SIGBUS 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8dce9fdbf4e026c64abe11362da8dd5fcec4e8b3c73a1814ceb1510ec9c1196"}, "url": "/docs/compare/?release=9.6.6#9.6.6-d3cd19f3026142fb", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "4fc31ab5ac996071dfe1717b6a669cb9", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "避免 Linux 上 DSM 内存请求超过 tmpfs 可用空间时的 SIGBUS 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8dce9fdbf4e026c64abe11362da8dd5fcec4e8b3c73a1814ceb1510ec9c1196"}, "url": "/docs/compare/?release=9.5.10#9.5.10-d3cd19f3026142fb", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}]}, {"id": "9.4.15-77d78ae4918aeda4", "cves": [], "html": "<p>防止嵌套触发器触发处理中低概率的崩溃（Tom Lane）</p>", "text": "防止嵌套触发器触发处理中低概率的崩溃（Tom Lane）", "title": "防止嵌套触发器触发处理中低概率的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.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.4.15/changes/011", "db_id": "ee96714487e8ca74fd6a107b83a6e2ff", "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27", "relations": [{"rule": 2, "type": "equivalent", "target": "0a1940517915a4c2940506f17a5eb707", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}}, {"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"}}], "version": "9.4.15", "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": "0a1940517915a4c2940506f17a5eb707", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "防止嵌套触发器触发处理中的低概率崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}, "url": "/docs/compare/?release=9.3.20#9.3.20-08ada9d5eb58d26c", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-3e66f13583a01dae", "cves": [], "html": "<p>允许 <code>COPY</code> 的 <code>FREEZE</code> 选项在事务隔离级别为 <code>REPEATABLE READ</code> 或更高时工作（Noah Misch）</p>\n<p>这种情况意外地被之前的 bug 修复破坏。</p>", "text": "允许 COPY 的 FREEZE 选项在事务隔离级别为 REPEATABLE READ 或更高时工作（Noah Misch） 这种情况意外地被之前的 bug 修复破坏。", "title": "允许 COPY 的 FREEZE 选项在事务隔离级别为 REPEATABLE READ 或更高时工作", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5", "source_hash": "ebcd21e543a7ce4054ee755ec64f6b7122ba06de631805c8f16d6dbbc67f5752", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow COPY's FREEZE option to work when the transaction isolation level is REPEATABLE READ or higher (Noah Misch) This case was unintentionally broken by a previous bug fix.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.15/changes/012", "db_id": "a1eff8bc8516f95566bc09b3bdf0a4cd", "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0", "relations": [{"rule": 2, "type": "equivalent", "target": "4e0fe875dc1a2ae9bddc4bfe63ee0c51", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}}, {"rule": 2, "type": "equivalent", "target": "a42f98563f1d49a9c7113c9b2b1e6cb8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}}, {"rule": 2, "type": "equivalent", "target": "e1adadf3a7387c490ac8d6d40225524d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}}], "version": "9.4.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e1adadf3a7387c490ac8d6d40225524d", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "允许在事务隔离级别为 REPEATABLE READ 或更高时使用 COPY 的 FREEZE 选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}, "url": "/docs/compare/?release=10.1#10.1-935b3469e9870d66", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "4e0fe875dc1a2ae9bddc4bfe63ee0c51", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "允许 COPY 的 FREEZE 选项在事务隔离级别为 REPEATABLE READ 或更高时工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}, "url": "/docs/compare/?release=9.6.6#9.6.6-3e66f13583a01dae", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "a42f98563f1d49a9c7113c9b2b1e6cb8", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "允许 COPY 的 FREEZE 选项在事务隔离级别为 REPEATABLE READ 或更高时工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}, "url": "/docs/compare/?release=9.5.10#9.5.10-3e66f13583a01dae", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}]}, {"id": "9.4.15-4648adc21ba571b7", "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.4.15/#id-1.11.6.16.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.4.15/changes/013", "db_id": "770ccd96660ab181e6da0d927d9cb543", "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f", "relations": [{"rule": 2, "type": "equivalent", "target": "86e3dd6e5ffcaf10855497ea94db1c42", "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.4.15", "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": "86e3dd6e5ffcaf10855497ea94db1c42", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}, "url": "/docs/compare/?release=9.3.20#9.3.20-f8c0de6d6a3a6766", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-cdb950ef84cdbcec", "cves": [], "html": "<p>为<code>ANALYZE</code>中的重复列名提供更好的错误消息（Nathan Bossart）</p>", "text": "为ANALYZE中的重复列名提供更好的错误消息（Nathan Bossart）", "title": "为ANALYZE中的重复列名提供更好的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.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.4.15/changes/014", "db_id": "60275a3ec51db1818065d73cfdeb4050", "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": "a11193b5badad905ca7dbc014dd5ee37", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}}, {"rule": 2, "type": "equivalent", "target": "c46de2bed8e8f98249da82f83534b4d2", "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.4.15", "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": "c46de2bed8e8f98249da82f83534b4d2", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "为 ANALYZE 中的重复列名给出更好的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}, "url": "/docs/compare/?release=9.3.20#9.3.20-776f5444937194b9", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-5d8357d297ccf980", "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.4.15/#id-1.11.6.16.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.4.15/changes/015", "db_id": "456f7cb7fea159f4dd066881991deddd", "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": "47e452aa71db8034a712239a3964e3a5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}}, {"rule": 2, "type": "equivalent", "target": "5eddd6c4577d73a939cab58edd99a776", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}}], "version": "9.4.15", "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": "5eddd6c4577d73a939cab58edd99a776", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复对不以换行结尾的 pg_hba.conf 文件最后一行的错误解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}, "url": "/docs/compare/?release=9.3.20#9.3.20-aff8bec37b7398c6", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}]}, {"id": "9.4.15-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.4.15/#id-1.11.6.16.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.4.15/changes/016", "db_id": "006b88f929e042ebc8300b75f7f27246", "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467", "relations": [{"rule": 2, "type": "equivalent", "target": "102daed46570ca19e49b298bfa3ba3e2", "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.4.15", "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": "102daed46570ca19e49b298bfa3ba3e2", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复 libpq 不要求用户的主目录存在", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}, "url": "/docs/compare/?release=9.3.20#9.3.20-0236bfb2ebeacc2e", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-ffd9ffccafa4f7d2", "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.4.15/#id-1.11.6.16.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.4.15/changes/017", "db_id": "37e1e5cf1498b87470b54ee71a0e67ab", "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a", "relations": [{"rule": 2, "type": "equivalent", "target": "3c1c024ed8f25be27c5657f0e5286342", "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.4.15", "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": "3c1c024ed8f25be27c5657f0e5286342", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复 libpq 防范 PGresult 行数中的整数溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}, "url": "/docs/compare/?release=9.3.20#9.3.20-f1cc78ee4ca056f1", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-5d6e86e3a0d8cffe", "cves": [], "html": "<p>修复<span>ecpg</span>对带指针或数组变量的超作用域游标声明的处理（Michael Meskes）</p>", "text": "修复ecpg对带指针或数组变量的超作用域游标声明的处理（Michael Meskes）", "title": "修复ecpg对带指针或数组变量的超作用域游标声明的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.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.4.15/changes/018", "db_id": "77b4e508a729e39bd48db59a6b54ffaf", "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9", "relations": [{"rule": 2, "type": "equivalent", "target": "4e6b2fc6b347eac6afcc794106f2785c", "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.4.15", "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": "4e6b2fc6b347eac6afcc794106f2785c", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复 ecpg 对带指针或数组变量的超出作用域游标声明的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}, "url": "/docs/compare/?release=9.3.20#9.3.20-e16a1942ddfde1ee", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}]}, {"id": "9.4.15-80d6ed6dcfaeea54", "cves": [], "html": "<p>ecpglib 中根据是否设置了<code>standard_conforming_strings</code>正确处理字符串字面量中的反斜线（Tsunakawa Takayuki）</p>", "text": "ecpglib 中根据是否设置了standard_conforming_strings正确处理字符串字面量中的反斜线（Tsunakawa Takayuki）", "title": "ecpglib 中根据是否设置了standard_conforming_strings正确处理字符串字面量中的反斜线", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5", "source_hash": "5629c071ea4af7b5855a626bf9f0e98147bd663ea0c63e51d55f9cb0bb98ef75", "section_path": ["变更"], "commit_groups": [], "identity_text": "In ecpglib, correctly handle backslashes in string literals depending on whether standard_conforming_strings is set (Tsunakawa Takayuki)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.15/changes/019", "db_id": "6804ac8e13b0fe3eff142d76f3855b8f", "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf", "relations": [{"rule": 2, "type": "equivalent", "target": "168a74663d229ad0ce14364661bc495c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}}, {"rule": 2, "type": "equivalent", "target": "547d8af011856c3b80ac12cae523ff61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}}, {"rule": 2, "type": "equivalent", "target": "c5d4d801e5662c99d1d1b7036d903d07", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}}], "version": "9.4.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "168a74663d229ad0ce14364661bc495c", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "在 ecpglib 中，根据是否设置了 standard_conforming_strings 正确处理字符串字面量中的反斜杠", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}, "url": "/docs/compare/?release=10.1#10.1-a919728bd56964f1", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "c5d4d801e5662c99d1d1b7036d903d07", "kind": "equivalent", "version": "9.6.6", "label": "9.6.6", "title": "在 ecpglib 中，根据是否设置了 standard_conforming_strings 正确处理字符串字面量中的反斜线", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}, "url": "/docs/compare/?release=9.6.6#9.6.6-d028e19e0f776652", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5"}, {"db_id": "547d8af011856c3b80ac12cae523ff61", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "在 ecpglib 中，根据是否设置了 standard_conforming_strings 正确处理字符串字面量中的反斜线", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}, "url": "/docs/compare/?release=9.5.10#9.5.10-d028e19e0f776652", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}]}, {"id": "9.4.15-b06ac02040269efa", "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.4.15/#id-1.11.6.16.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.4.15/changes/020", "db_id": "3c9edd46a25977cbd2b2b1fb160b7dae", "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": "89c449856b27a1bc18eeb794c6cebedb", "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.4.15", "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": "89c449856b27a1bc18eeb794c6cebedb", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}, "url": "/docs/compare/?release=9.3.20#9.3.20-2d2b0633ea1998b2", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}]}, {"id": "9.4.15-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.4.15/#id-1.11.6.16.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.4.15/changes/021", "db_id": "3323050002a438fd4c496cad0d082d3a", "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d", "relations": [{"rule": 2, "type": "equivalent", "target": "06a4e590689a5f30eb58e6b5354b43a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}}, {"rule": 2, "type": "equivalent", "target": "0a2566d962dc17066b0858eccb1ec8ca", "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.4.15", "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": "06a4e590689a5f30eb58e6b5354b43a6", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "把我们的时区库副本与 IANA tzcode2017c 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}, "url": "/docs/compare/?release=9.3.20#9.3.20-a5fb2787fb465882", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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.4.15-3732889a8bc3ae53", "cves": [], "html": "<p>将时区数据文件更新到<span>tzdata</span>发行版 2017c，以反映斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，以及阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。</p>", "text": "将时区数据文件更新到tzdata发行版 2017c，以反映斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，以及阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "title": "将时区数据文件更新到tzdata发行版 2017c，以反映斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，以及阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.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.4.15/changes/022", "db_id": "5063230b1a3750ce6e2d9f3ced8caedc", "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": "41fa2b66666f8560149b4e828a789f52", "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.4.15", "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": "41fa2b66666f8560149b4e828a789f52", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "更新时区数据文件到 tzdata 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}, "url": "/docs/compare/?release=9.3.20#9.3.20-c140c362332e493c", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.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"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 22}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 10}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 10}], "total": 22, "release_count": 1, "cross_major": false, "cve_count": 2, "cves": [{"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.4.15"}, {"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.4.15"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 22, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}