{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2017-05-11", "build": "9.6.3", "major": "9.6", "minor": 3, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.3", "eol_date": "2021-11-11", "date_text": "2017-05-11", "supported": false, "manual_url": "/docs/9.6/release-9-6-3.html", "source_url": "/docs/release/9.6.3/", "entry_count": 48, "placeholder": false, "content_hash": "d246276343e2a69516eaddee7acfec49e6f0560874a0a30183c2af69edfc5a4d", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 48, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你使用通过用户密码认证的外部数据服务器，请参见下面第一条变更日志条目。</p>\n<p>另外，如果你使用依赖<span>“<span>逻辑解码</span>”</span>的第三方复制工具，请参见下面第四条变更日志条目。</p>\n<p>另外，如果你是从 9.6.2 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-2.html\" title=\"E.23. 版本 9.6.2\">第 E.23 节</a>。</p>", "compatibility_count": 0, "label": "9.6.3", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3429, "support_days": -1784}, "groups": [{"date": "2017-05-11", "build": "9.6.3", "major": "9.6", "minor": 3, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.3", "eol_date": "2021-11-11", "date_text": "2017-05-11", "supported": false, "manual_url": "/docs/9.6/release-9-6-3.html", "source_url": "/docs/release/9.6.3/", "entry_count": 48, "placeholder": false, "content_hash": "d246276343e2a69516eaddee7acfec49e6f0560874a0a30183c2af69edfc5a4d", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 48, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你使用通过用户密码认证的外部数据服务器，请参见下面第一条变更日志条目。</p>\n<p>另外，如果你使用依赖<span>“<span>逻辑解码</span>”</span>的第三方复制工具，请参见下面第四条变更日志条目。</p>\n<p>另外，如果你是从 9.6.2 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-2.html\" title=\"E.23. 版本 9.6.2\">第 E.23 节</a>。</p>", "compatibility_count": 0, "label": "9.6.3", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3429, "support_days": -1784, "entries": [{"id": "9.6.3-5809bc8bfc640636", "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.6/release-9-6-4.html\" title=\"E.21. 版本 9.6.4\">第 E.21 节</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.21 节中 CVE-2017-7547 变更日志条目所示的更正程序。", "title": "限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "4dbea54b767a311d3354613615d52db212295c654dd1507c49c8f8263c4927a8", "section_path": ["变更"], "commit_groups": [["3eefc5105", "99cbb0bd9", "b2423f0fa", "b5b124046", "c928addfc", "db2158108"]], "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-6-4 .", "commit_aliases": ["3eefc5105", "99cbb0bd9", "b2423f0fa", "b5b124046", "c928addfc", "db2158108"], "source_commits": ["c928addfc"], "source_entry_id": "9.6.3/changes/001", "db_id": "c0ef455474fa4f3dcd7a6356a483a36a", "patch_ids": ["e600e662fded337654879be58cbf96cc"], "statement_hash": "17994d959ac4c4eedfdc348cf8b7e0c8df11293c83ac2a1efde3b8c20b906869", "relations": [], "version": "9.6.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "c95ac91c72dbf47f18a8d9db98d2afdeb76bebae0e117224003207523e8d2f3f", "section_path": ["变更"], "commit_groups": [["3e5ea1f9b", "4f1b2089a", "c33c42362", "d035c1b97", "d45cd7c0e", "e2d4ef8de"], ["703da1795", "a199582ef", "b6576e591", "cad159432", "d3f3f9568"]], "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": ["3e5ea1f9b", "4f1b2089a", "703da1795", "a199582ef", "b6576e591", "c33c42362", "cad159432", "d035c1b97", "d3f3f9568", "d45cd7c0e", "e2d4ef8de"], "source_commits": ["c33c42362", "cad159432"], "source_entry_id": "9.6.3/changes/002", "db_id": "f34602fe908d4a966c6ed06935e1f04d", "patch_ids": ["a45127a0a9056656f50fd08768dc2329", "d0ca9c889e4d1d72ed60a395d5f641f1"], "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": "b4b75c05a5ed8817af23933ab3fcec8f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938"}}, {"rule": 2, "type": "equivalent", "target": "bf395c1f6a9c6ae6f5fb7af55beb6d79", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938"}}], "version": "9.6.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"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": "b4b75c05a5ed8817af23933ab3fcec8f", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "防止通过泄漏型操作符暴露统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2302fdc9ede25dd70923fd1e8d3e93edc77b192bd27593b4221b2a1ac089c938"}, "url": "/docs/compare/?release=9.3.17#9.3.17-e7d6271f2c62b341", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "31a4d7bc661a98ba7320897931ddfcb3107fe8e3b525d018fb1e091c3ebb7b91", "section_path": ["变更"], "commit_groups": [["0170b10df", "3eab81127", "96d745492", "aafbd1df9", "ed36c1fe1"]], "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": ["0170b10df", "3eab81127", "96d745492", "aafbd1df9", "ed36c1fe1"], "source_commits": ["aafbd1df9"], "source_entry_id": "9.6.3/changes/003", "db_id": "c438ebbc5a20590f4d47bd544943e961", "patch_ids": ["f0227c9379b194bcb36fdfd5679cc7cf"], "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": "d56eea5fbb1a7d7e8d1587729ca0cf14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a18b2d433b86e8d648028e83dbd0ce8fd745e426e4895860e0e154a27b10b2f"}}], "version": "9.6.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "d56eea5fbb1a7d7e8d1587729ca0cf14", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "恢复 libpq 对 PGREQUIRESSL 环境变量的识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a18b2d433b86e8d648028e83dbd0ce8fd745e426e4895860e0e154a27b10b2f"}, "url": "/docs/compare/?release=9.3.17#9.3.17-0271632bc8a85d01", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5"}]}, {"id": "9.6.3-a281f8c8d1829a3d", "cves": [], "html": "<p>修复逻辑解码初始快照可能无效的问题（Petr Jelinek、Andres Freund）</p>\n<p>为逻辑解码复制槽创建的初始快照可能不正确。这可能导致使用逻辑解码复制不完整/不一致初始数据的第三方工具。如果创建槽时源服务器繁忙，或者已存在另一个逻辑槽，更有可能发生。</p>\n<p>如果你使用依赖逻辑解码的复制工具，并且它本应在复制开始时复制了非空数据集，建议在安装此更新后重建副本，或对照源服务器验证其内容。</p>", "text": "修复逻辑解码初始快照可能无效的问题（Petr Jelinek、Andres Freund） 为逻辑解码复制槽创建的初始快照可能不正确。这可能导致使用逻辑解码复制不完整/不一致初始数据的第三方工具。如果创建槽时源服务器繁忙，或者已存在另一个逻辑槽，更有可能发生。 如果你使用依赖逻辑解码的复制工具，并且它本应在复制开始时复制了非空数据集，建议在安装此更新后重建副本，或对照源服务器验证其内容。", "title": "修复逻辑解码初始快照可能无效的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "e9928db0b8331bf30cd342e384be00e93cb63b72603c8f452ee174146e326061", "section_path": ["变更"], "commit_groups": [["28afff347", "2bef06d51", "47f896b5c", "5da646138"], ["29e8c881d", "54270d7eb", "56e19d938", "b6ecf26cc"]], "identity_text": "Fix possibly-invalid initial snapshot during logical decoding (Petr Jelinek, Andres Freund) The initial snapshot created for a logical decoding replication slot was potentially incorrect. This could cause third-party tools that use logical decoding to copy incomplete/inconsistent initial data. This was more likely to happen if the source server was busy at the time of slot creation, or if another logical slot already existed. If you are using a replication tool that depends on logical decoding, and it should have copied a nonempty data set at the start of replication, it is advisable to recreate the replica after installing this update, or to verify its contents against the source server.", "commit_aliases": ["28afff347", "29e8c881d", "2bef06d51", "47f896b5c", "54270d7eb", "56e19d938", "5da646138", "b6ecf26cc"], "source_commits": ["28afff347", "29e8c881d"], "source_entry_id": "9.6.3/changes/004", "db_id": "2baaf2e665774e8e2c87b37d9edb045e", "patch_ids": ["8f0d681d19413f377c3b0916df0bae44", "fa0c3e52b7d9017e12cea202901d186f"], "statement_hash": "55d08845b87209b80c37af90ff97947d7d431c9408916fb27e34455eb88b258d", "relations": [{"rule": 2, "type": "equivalent", "target": "5b13f9321266666fc498dfe67c993479", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55d08845b87209b80c37af90ff97947d7d431c9408916fb27e34455eb88b258d"}}, {"rule": 2, "type": "equivalent", "target": "f08f755d70b75ef35c30ae8a6d955c81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55d08845b87209b80c37af90ff97947d7d431c9408916fb27e34455eb88b258d"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f08f755d70b75ef35c30ae8a6d955c81", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复逻辑解码初始快照可能无效的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55d08845b87209b80c37af90ff97947d7d431c9408916fb27e34455eb88b258d"}, "url": "/docs/compare/?release=9.5.7#9.5.7-a281f8c8d1829a3d", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "5b13f9321266666fc498dfe67c993479", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复逻辑解码初始快照可能无效的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55d08845b87209b80c37af90ff97947d7d431c9408916fb27e34455eb88b258d"}, "url": "/docs/compare/?release=9.4.12#9.4.12-a281f8c8d1829a3d", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}]}, {"id": "9.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "2ade040b6f354b70f09a2a5f8835258e239667b028597901c96dbbf2d7645fca", "section_path": ["变更"], "commit_groups": [["36fcb36b8", "6bd7816e7", "87f998203", "b2ae1d6c4", "bbd5e600f", "c17a3f57e"]], "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": ["36fcb36b8", "6bd7816e7", "87f998203", "b2ae1d6c4", "bbd5e600f", "c17a3f57e"], "source_commits": ["36fcb36b8"], "source_entry_id": "9.6.3/changes/005", "db_id": "ca9e7897b0b819057bd22c3e412c2a31", "patch_ids": ["f38b5e08b09f359102375fc56205e27a"], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95", "relations": [{"rule": 2, "type": "equivalent", "target": "3cd432e6bf2afd9768a1ca6668a16b11", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95"}}, {"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"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "3cd432e6bf2afd9768a1ca6668a16b11", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "修复未记录索引的“init fork”可能的损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "72154e11e8954b335d0bac05809c8026ca9489a2b55963899b1c9caca08b7e95"}, "url": "/docs/compare/?release=9.3.17#9.3.17-9e46866f9aacc344", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "ee8a236371256781eea6ca2271e71f41a261a1c22fa077835d4d67883004e8d7", "section_path": ["变更"], "commit_groups": [["0874d4f3e", "2e14541c4", "856580873", "952e33b05", "a66e01bbc", "f5885488d"]], "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": ["0874d4f3e", "2e14541c4", "856580873", "952e33b05", "a66e01bbc", "f5885488d"], "source_commits": ["f5885488d"], "source_entry_id": "9.6.3/changes/006", "db_id": "214a1b3821d5a36db45f6c05c6441387", "patch_ids": ["e5e714d9b1b3bab7106dc7a35067d3f5"], "statement_hash": "1646bb71052a636d7ea91585c578d6b36f95ecebe2e215e01cef7972ed52fa36", "relations": [{"rule": 2, "type": "equivalent", "target": "3a8a1634b4824238c9d0aaf6c493651e", "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.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "3a8a1634b4824238c9d0aaf6c493651e", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "修复备库重放已预备但未提交的两阶段事务时 pg_subtrans 条目的错误重建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1646bb71052a636d7ea91585c578d6b36f95ecebe2e215e01cef7972ed52fa36"}, "url": "/docs/compare/?release=9.3.17#9.3.17-3196986f7692066e", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-fdf5c3db60f323e3", "cves": [], "html": "<p>避免 <span>walsender</span> 因未能初始化字符串缓冲区而可能的崩溃（Stas Kelvich、Fujii Masao）</p>", "text": "避免 walsender 因未能初始化字符串缓冲区而可能的崩溃（Stas Kelvich、Fujii Masao）", "title": "避免 walsender 因未能初始化字符串缓冲区而可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "d7444f65cf7dce2bef129263a99f60a2894617ec3e3ef6a2cda8fcf190c0f2d8", "section_path": ["变更"], "commit_groups": [["1d04a59be", "9fab155c6", "a3eb715a3", "feb659cce"]], "identity_text": "Avoid possible crash in walsender due to failure to initialize a string buffer (Stas Kelvich, Fujii Masao)", "commit_aliases": ["1d04a59be", "9fab155c6", "a3eb715a3", "feb659cce"], "source_commits": ["9fab155c6"], "source_entry_id": "9.6.3/changes/007", "db_id": "13a1d8ef35101865ff0224e06755e4c6", "patch_ids": ["e9967986bbda90b404aafcaf67b3b62e"], "statement_hash": "78c990a8e3916aac85819e0d441e44667ec95b081dcf7bb346767d9305e7a503", "relations": [{"rule": 2, "type": "equivalent", "target": "032864fc749f4c992f33733cdff5027a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78c990a8e3916aac85819e0d441e44667ec95b081dcf7bb346767d9305e7a503"}}, {"rule": 2, "type": "equivalent", "target": "4d108db450f3badf1c6cd090153a2648", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78c990a8e3916aac85819e0d441e44667ec95b081dcf7bb346767d9305e7a503"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4d108db450f3badf1c6cd090153a2648", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "避免 walsender 因未能初始化字符串缓冲区而可能的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78c990a8e3916aac85819e0d441e44667ec95b081dcf7bb346767d9305e7a503"}, "url": "/docs/compare/?release=9.5.7#9.5.7-fdf5c3db60f323e3", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "032864fc749f4c992f33733cdff5027a", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "避免 walsender 因未能初始化字符串缓冲区而可能的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78c990a8e3916aac85819e0d441e44667ec95b081dcf7bb346767d9305e7a503"}, "url": "/docs/compare/?release=9.4.12#9.4.12-fdf5c3db60f323e3", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}]}, {"id": "9.6.3-5edaaccb91f0bdf8", "cves": [], "html": "<p>修复 GiST 索引上最近邻仅索引扫描重扫描时可能的崩溃（Tom Lane）</p>", "text": "修复 GiST 索引上最近邻仅索引扫描重扫描时可能的崩溃（Tom Lane）", "title": "修复 GiST 索引上最近邻仅索引扫描重扫描时可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "300f3908b16b54c5613dc42e8a39e4a2e5e775feafb4326d2adb101566a1f89d", "section_path": ["变更"], "commit_groups": [["3f074845a", "6cfb428b0", "855f0e924"]], "identity_text": "Fix possible crash when rescanning a nearest-neighbor index-only scan on a GiST index (Tom Lane)", "commit_aliases": ["3f074845a", "6cfb428b0", "855f0e924"], "source_commits": ["855f0e924"], "source_entry_id": "9.6.3/changes/008", "db_id": "708eb8c8884994fd2a9bde107b8b20e3", "patch_ids": ["36c69040f8f8b01e6764d3bd1fe1d324"], "statement_hash": "da0fe145de3873dd50be80b13b9c123ea764887e0a86cf7f27cee5eb2b39af71", "relations": [{"rule": 2, "type": "equivalent", "target": "848ec67f014cc1773892db9fb138409a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da0fe145de3873dd50be80b13b9c123ea764887e0a86cf7f27cee5eb2b39af71"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "848ec67f014cc1773892db9fb138409a", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 GiST 索引上最近邻仅索引扫描重扫描时可能的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da0fe145de3873dd50be80b13b9c123ea764887e0a86cf7f27cee5eb2b39af71"}, "url": "/docs/compare/?release=9.5.7#9.5.7-5edaaccb91f0bdf8", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}]}, {"id": "9.6.3-51f089a56ffa625c", "cves": [], "html": "<p>防止 postmaster 启动多个并行工作者进程时的延迟（Tom Lane）</p>\n<p>满足一个查询对多个工作者进程的请求之前，或多个查询同时请求工作者时，可能有显著延迟（长达数十秒）。在大多数平台上这需要不幸的时机，但在某些平台上是常态。</p>", "text": "防止 postmaster 启动多个并行工作者进程时的延迟（Tom Lane） 满足一个查询对多个工作者进程的请求之前，或多个查询同时请求工作者时，可能有显著延迟（长达数十秒）。在大多数平台上这需要不幸的时机，但在某些平台上是常态。", "title": "防止 postmaster 启动多个并行工作者进程时的延迟", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "027b98f6b1f68721ab17ed8e69502a8a5a93fe5fc9b52874f69fdc3af68c0971", "section_path": ["变更"], "commit_groups": [["893902085", "dfa4baf91"], ["aa1351f1e", "e880df25e"]], "identity_text": "Prevent delays in postmaster's launching of multiple parallel worker processes (Tom Lane) There could be a significant delay (up to tens of seconds) before satisfying a query's request for more than one worker process, or when multiple queries requested workers simultaneously. On most platforms this required unlucky timing, but on some it was the typical case.", "commit_aliases": ["893902085", "aa1351f1e", "dfa4baf91", "e880df25e"], "source_commits": ["dfa4baf91", "e880df25e"], "source_entry_id": "9.6.3/changes/009", "db_id": "569470d57e1c4fb950e17f404dd96677", "patch_ids": ["909d3f1cf0867cc592efec99804cffe4", "cc7a6ce1680a7494b3dee1f80bfe4606"], "statement_hash": "20912b8569497e58aacd637eaab5eb8f31d31d682d24c702ce5b25bad621837b", "relations": [], "version": "9.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.3-9d4d69598b558312", "cves": [], "html": "<p>修复 postmaster 对后台工作者进程 <code>fork()</code> 失败的处理（Tom Lane）</p>\n<p>此前 postmaster 会像进程成功启动一样更新其状态的一部分，导致后续的混乱。</p>", "text": "修复 postmaster 对后台工作者进程 fork() 失败的处理（Tom Lane） 此前 postmaster 会像进程成功启动一样更新其状态的一部分，导致后续的混乱。", "title": "修复 postmaster 对后台工作者进程 fork() 失败的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "07695a7dc4e2e388bf21b5c252e5615ad9580a58f37781fd582038a2ad495530", "section_path": ["变更"], "commit_groups": [["436b560b8", "4fe04244b", "63f64d282", "dba1f310a"]], "identity_text": "Fix postmaster's handling of fork() failure for a background worker process (Tom Lane) Previously, the postmaster updated portions of its state as though the process had been launched successfully, resulting in subsequent confusion.", "commit_aliases": ["436b560b8", "4fe04244b", "63f64d282", "dba1f310a"], "source_commits": ["63f64d282"], "source_entry_id": "9.6.3/changes/010", "db_id": "227f3ff0d82b87f4d6dabda4f15bfd7e", "patch_ids": ["f018e69a1ffa093f4f657c98f1ba43c4"], "statement_hash": "c1f121c35aed08692450221269d3c58854ee2d89697e0ee044c7e73ece604d11", "relations": [{"rule": 2, "type": "equivalent", "target": "7021976579f14345872a9d74e0dfb7b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c1f121c35aed08692450221269d3c58854ee2d89697e0ee044c7e73ece604d11"}}, {"rule": 2, "type": "equivalent", "target": "e4a035b7ce4d85af690ca996cd09f523", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c1f121c35aed08692450221269d3c58854ee2d89697e0ee044c7e73ece604d11"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4a035b7ce4d85af690ca996cd09f523", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 postmaster 对后台工作者进程 fork() 失败的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c1f121c35aed08692450221269d3c58854ee2d89697e0ee044c7e73ece604d11"}, "url": "/docs/compare/?release=9.5.7#9.5.7-9d4d69598b558312", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "7021976579f14345872a9d74e0dfb7b6", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复 postmaster 对后台工作者进程 fork() 失败的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c1f121c35aed08692450221269d3c58854ee2d89697e0ee044c7e73ece604d11"}, "url": "/docs/compare/?release=9.4.12#9.4.12-9d4d69598b558312", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}]}, {"id": "9.6.3-1d19dca5b1bd89f0", "cves": [], "html": "<p>修复规划嵌套集合操作时可能的 <span>“<span>no relation entry for relid 0</span>”</span> 错误（Tom Lane）</p>", "text": "修复规划嵌套集合操作时可能的 “no relation entry for relid 0” 错误（Tom Lane）", "title": "修复规划嵌套集合操作时可能的 “no relation entry for relid 0” 错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "85259e840f5eb44ff2009d3431f7cf8319f543b45d22b63cba724f42c20e40f7", "section_path": ["变更"], "commit_groups": [["89deca582", "c0a493e17"]], "identity_text": "Fix possible no relation entry for relid 0 error when planning nested set operations (Tom Lane)", "commit_aliases": ["89deca582", "c0a493e17"], "source_commits": ["c0a493e17"], "source_entry_id": "9.6.3/changes/011", "db_id": "f35dd8a30bfe4dde8433b5564e901003", "patch_ids": ["c8993750920af8ead23f4981d082ef9c"], "statement_hash": "5aa83e76ce5fcb22c56d3cc9f67af605e086acf6ee68d5bfb210a01f5398e55c", "relations": [], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.3-ac3983302278f30f", "cves": [], "html": "<p>修复并行查询规划中的若干小问题（Robert Haas）</p>", "text": "修复并行查询规划中的若干小问题（Robert Haas）", "title": "修复并行查询规划中的若干小问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "13c23aef3e1be4101f83798e202fe2612e5ba1d85d48875eceec5282dff09bdf", "section_path": ["变更"], "commit_groups": [["1ea60ad60", "5feb78ae8"], ["5674a258f", "f120b614e"], ["7d8f6986b", "fb1879c37"]], "identity_text": "Fix assorted minor issues in planning of parallel queries (Robert Haas)", "commit_aliases": ["1ea60ad60", "5674a258f", "5feb78ae8", "7d8f6986b", "f120b614e", "fb1879c37"], "source_commits": ["5674a258f", "5feb78ae8", "fb1879c37"], "source_entry_id": "9.6.3/changes/012", "db_id": "08581571080cd27dc5a759922e761eaf", "patch_ids": ["6116e1f0984b6b43ac93435b8f3ac087", "aaff55a833b293c41ba60adf6b9efd55", "d8f9f0e309a201368ad1f29a53992665"], "statement_hash": "ea0795a76f30a7a400e45032819bae049958b785920fb0df811815a1fb1ed401", "relations": [], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.3-ab1c8b8c53783cdf", "cves": [], "html": "<p>避免把<span>“<span>物理目标列表</span>”</span>优化应用于自定义扫描（Dmitry Ivanov、Tom Lane）</p>\n<p>这一优化假定检索元组的所有列代价低廉，对普通 Postgres 元组确实如此；但对自定义扫描提供者未必。</p>", "text": "避免把“物理目标列表”优化应用于自定义扫描（Dmitry Ivanov、Tom Lane） 这一优化假定检索元组的所有列代价低廉，对普通 Postgres 元组确实如此；但对自定义扫描提供者未必。", "title": "避免把“物理目标列表”优化应用于自定义扫描", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "84a52f36de9edc75c7d7a5b94195bbe926cb4f73767a1fc2a083813058ce5f25", "section_path": ["变更"], "commit_groups": [["6c73b390b", "6f0f98bb0", "76799fc89"]], "identity_text": "Avoid applying physical targetlist optimization to custom scans (Dmitry Ivanov, Tom Lane) This optimization supposed that retrieving all columns of a tuple is inexpensive, which is true for ordinary Postgres tuples; but it might not be the case for a custom scan provider.", "commit_aliases": ["6c73b390b", "6f0f98bb0", "76799fc89"], "source_commits": ["6c73b390b"], "source_entry_id": "9.6.3/changes/013", "db_id": "c3c35c72c24cf657ddc462236e622179", "patch_ids": ["fa6d90ac1b11326db1192dd15a282bf3"], "statement_hash": "19cc96774d0cc9fc83e961f896e44e635018b698b9a939e82978f9350873645d", "relations": [{"rule": 2, "type": "equivalent", "target": "7610e1b5bb1b863453b18ad7692044d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "19cc96774d0cc9fc83e961f896e44e635018b698b9a939e82978f9350873645d"}}], "version": "9.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7610e1b5bb1b863453b18ad7692044d5", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "避免把“物理目标列表”优化应用于自定义扫描", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "19cc96774d0cc9fc83e961f896e44e635018b698b9a939e82978f9350873645d"}, "url": "/docs/compare/?release=9.5.7#9.5.7-ab1c8b8c53783cdf", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}]}, {"id": "9.6.3-220c7fbca0dbf0b2", "cves": [], "html": "<p>应用 <code>FOR ALL</code> 行级安全策略时使用正确的子表达式（Stephen Frost）</p>\n<p>某些情况下会应用 <code>WITH CHECK</code> 限制，而 <code>USING</code> 限制更合适。</p>", "text": "应用 FOR ALL 行级安全策略时使用正确的子表达式（Stephen Frost） 某些情况下会应用 WITH CHECK 限制，而 USING 限制更合适。", "title": "应用 FOR ALL 行级安全策略时使用正确的子表达式", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "025032709cd609fd2de5546da1c78a7ee35bd84fdd31022bfb8275722ed75363", "section_path": ["变更"], "commit_groups": [["92b15224b", "aa5d3c0b3", "d617c7629"]], "identity_text": "Use the correct sub-expression when applying a FOR ALL row-level-security policy (Stephen Frost) In some cases the WITH CHECK restriction would be applied when the USING restriction is more appropriate.", "commit_aliases": ["92b15224b", "aa5d3c0b3", "d617c7629"], "source_commits": ["92b15224b"], "source_entry_id": "9.6.3/changes/014", "db_id": "2750f7cebe204ecf0be51bb1e2064e0f", "patch_ids": ["d733e2d614b023709459a09a4ca96769"], "statement_hash": "3d0b5f900a8abf2b47d4fa9057a8f3ad9817d70e1ff352397cf5e7f9aba6626d", "relations": [{"rule": 2, "type": "equivalent", "target": "631fae68b9bdbc1d475bad275f143336", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d0b5f900a8abf2b47d4fa9057a8f3ad9817d70e1ff352397cf5e7f9aba6626d"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "631fae68b9bdbc1d475bad275f143336", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "应用 FOR ALL 行级安全策略时使用正确的子表达式", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d0b5f900a8abf2b47d4fa9057a8f3ad9817d70e1ff352397cf5e7f9aba6626d"}, "url": "/docs/compare/?release=9.5.7#9.5.7-220c7fbca0dbf0b2", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}]}, {"id": "9.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "ba66223403121767fdc5bdc71bbcfc1dd570c207c3cac0cafa4d6d511a21c393", "section_path": ["变更"], "commit_groups": [["062824edd", "9209e0760", "c6b3d0706", "c9d6c564f", "d0d3a57bf", "d56b8b41b"]], "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": ["062824edd", "9209e0760", "c6b3d0706", "c9d6c564f", "d0d3a57bf", "d56b8b41b"], "source_commits": ["d56b8b41b"], "source_entry_id": "9.6.3/changes/015", "db_id": "1a7d8686c8e50760b935ef10ee916805", "patch_ids": ["4c5cec941d359455474538dc8146ac75"], "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": "5ceac09fd9d4bab483dfd2a50194800a", "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.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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": "5ceac09fd9d4bab483dfd2a50194800a", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "确保扩展脚本中查询的解析能看到紧邻的前一条 DDL 的结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7cd007e80d6ca53d427cc836baf56b899b99eb8558570ed85e8ed98e90181210"}, "url": "/docs/compare/?release=9.3.17#9.3.17-27e9e8b33ae4d796", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "22c2d19db143e9afd008b236c770aed465dfaceb4b0e08afc0113c63d22e9ed0", "section_path": ["变更"], "commit_groups": [["27a8c8033", "4d43d5d35", "660e457f5", "804aad8ff", "b167d57d5", "f30f34e58"]], "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": ["27a8c8033", "4d43d5d35", "660e457f5", "804aad8ff", "b167d57d5", "f30f34e58"], "source_commits": ["4d43d5d35"], "source_entry_id": "9.6.3/changes/016", "db_id": "18c29c84842d816ad4eb40f996fba562", "patch_ids": ["1fe7548f85060fdf486089b8d92d1552"], "statement_hash": "e3c9d71ababcb3e97b2d38558157f78acc3278e6fa2b08f35fd85bc457ef276d", "relations": [{"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": "e56aa9bff7867a1f9479bee0dc1ff003", "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.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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": "e56aa9bff7867a1f9479bee0dc1ff003", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "当 ALTER TABLE ... ALTER COLUMN TYPE 重建现有索引时跳过表空间权限检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3c9d71ababcb3e97b2d38558157f78acc3278e6fa2b08f35fd85bc457ef276d"}, "url": "/docs/compare/?release=9.3.17#9.3.17-e2a2f63a7659bfc5", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "5d7f01de6ece0776c41e6d11b1dc05539bd75031b58416704ddd775f8d2dc7b0", "section_path": ["变更"], "commit_groups": [["6a4dda44e", "8a9c83bfa", "93a07a68e", "954744f7a", "a0291c330", "f60f0c8fe"]], "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": ["6a4dda44e", "8a9c83bfa", "93a07a68e", "954744f7a", "a0291c330", "f60f0c8fe"], "source_commits": ["8a9c83bfa"], "source_entry_id": "9.6.3/changes/017", "db_id": "9133d2a12ec3fd2b0a6cea89d097df83", "patch_ids": ["13aa57d03aa94377042e57f1dffec332"], "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": "cb079a253c7af9722536a1bd69e85265", "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.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "cb079a253c7af9722536a1bd69e85265", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "修复 ALTER TABLE ... VALIDATE CONSTRAINT 在约束被标记 NO INHERIT 时不递归到子表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506e016e739d202330f73387c06195571792dfa786d626323d84c373db03b4a7"}, "url": "/docs/compare/?release=9.3.17#9.3.17-8379ba9bba11cc33", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-3f504c5ded974f1b", "cves": [], "html": "<p>避免源表上行级安全激活时 <code>COPY ... TO</code> 中的悬空指针（Tom Lane）</p>\n<p>通常这没有不良影响，但有时会导致意外错误或崩溃。</p>", "text": "避免源表上行级安全激活时 COPY ... TO 中的悬空指针（Tom Lane） 通常这没有不良影响，但有时会导致意外错误或崩溃。", "title": "避免源表上行级安全激活时 COPY ... TO 中的悬空指针", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "975d3c19871695ef3803fce57db9ee48f7479edf3c4729c888b90b6e0018f33b", "section_path": ["变更"], "commit_groups": [["420d9ec0a", "943140d57", "a8df75b0a"]], "identity_text": "Avoid dangling pointer in COPY ... TO when row-level security is active for the source table (Tom Lane) Usually this had no ill effects, but sometimes it would cause unexpected errors or crashes.", "commit_aliases": ["420d9ec0a", "943140d57", "a8df75b0a"], "source_commits": ["943140d57"], "source_entry_id": "9.6.3/changes/018", "db_id": "21e6a4bce9ed30487aef9cb7d36ae609", "patch_ids": ["eb098f6ebde60e470cd720555c186ed0"], "statement_hash": "dbe58913005d303dcb2791e2ffb817f07097e8c0352834ae0a458810d05db34e", "relations": [{"rule": 2, "type": "equivalent", "target": "785bb0b6ad6b1baa90f2a9b38ed532f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dbe58913005d303dcb2791e2ffb817f07097e8c0352834ae0a458810d05db34e"}}], "version": "9.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "785bb0b6ad6b1baa90f2a9b38ed532f2", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "避免源表上行级安全激活时 COPY ... TO 中的悬空指针", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dbe58913005d303dcb2791e2ffb817f07097e8c0352834ae0a458810d05db34e"}, "url": "/docs/compare/?release=9.5.7#9.5.7-3f504c5ded974f1b", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}]}, {"id": "9.6.3-85f53c8a6d20dc2d", "cves": [], "html": "<p>避免在 <code>CLUSTER</code> 和 <code>VACUUM FULL</code> 中访问已关闭的关系缓存条目（Tom Lane）</p>\n<p>运气不好时，这可能导致目标关系上的索引被以错误的持久性设置重建。</p>", "text": "避免在 CLUSTER 和 VACUUM FULL 中访问已关闭的关系缓存条目（Tom Lane） 运气不好时，这可能导致目标关系上的索引被以错误的持久性设置重建。", "title": "避免在 CLUSTER 和 VACUUM FULL 中访问已关闭的关系缓存条目", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "3fda5ef6160316a01ddee53132a2604c1f46609b78a19da2ec3596271451185a", "section_path": ["变更"], "commit_groups": [["68f7b91e5", "807df31d1", "dbca84f04"]], "identity_text": "Avoid accessing an already-closed relcache entry in CLUSTER and VACUUM FULL (Tom Lane) With some bad luck, this could lead to indexes on the target relation getting rebuilt with the wrong persistence setting.", "commit_aliases": ["68f7b91e5", "807df31d1", "dbca84f04"], "source_commits": ["68f7b91e5"], "source_entry_id": "9.6.3/changes/019", "db_id": "e889ca676777b58dc8828550e7345907", "patch_ids": ["194f1ca40f310638260085456424263e"], "statement_hash": "07f8cf5e468233ecceca3bbb87645395bef0b8aa04363346062f8e750f7cd89c", "relations": [{"rule": 2, "type": "equivalent", "target": "a6733bd383f23d62fcc72015919cdb38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07f8cf5e468233ecceca3bbb87645395bef0b8aa04363346062f8e750f7cd89c"}}], "version": "9.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a6733bd383f23d62fcc72015919cdb38", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "避免在 CLUSTER 和 VACUUM FULL 中访问已关闭的关系缓存条目", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07f8cf5e468233ecceca3bbb87645395bef0b8aa04363346062f8e750f7cd89c"}, "url": "/docs/compare/?release=9.5.7#9.5.7-85f53c8a6d20dc2d", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}]}, {"id": "9.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "113d089c3a9db4f9b189400599fb2c900a00c83542e808b95af157cf900ab158", "section_path": ["变更"], "commit_groups": [["1914c5ea7", "269efd052", "8f8a5aefc", "9b626f6c3", "a494ff4b0", "ee78ad5bc"], ["64ae420b2", "733488dc6"]], "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": ["1914c5ea7", "269efd052", "64ae420b2", "733488dc6", "8f8a5aefc", "9b626f6c3", "a494ff4b0", "ee78ad5bc"], "source_commits": ["733488dc6", "9b626f6c3"], "source_entry_id": "9.6.3/changes/020", "db_id": "67e235deb3d83dbacc19f40a3784496f", "patch_ids": ["8682fbf015a0f11d04e10537b65ec9f9", "ea72e9a09164a76be7444722ff938dfa"], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85", "relations": [{"rule": 2, "type": "equivalent", "target": "2d36e5ed81ee210a164b25727a73040f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85"}}, {"rule": 2, "type": "equivalent", "target": "4f92bff860b6c34082de43b62fb3256d", "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.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "4f92bff860b6c34082de43b62fb3256d", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "修复 VACUUM 正确考虑因页 pin 冲突而无法扫描的页", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c539ad1307b5499f55caf526e5f45f749931d5ae8869a8a2e3ae8f2959215c85"}, "url": "/docs/compare/?release=9.3.17#9.3.17-f13c3c418359cf9b", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-573e4331b3c8ac58", "cves": [], "html": "<p>确保哈希连接中的批量元组传输循环可被查询取消请求中断（Tom Lane、Thomas Munro）</p>", "text": "确保哈希连接中的批量元组传输循环可被查询取消请求中断（Tom Lane、Thomas Munro）", "title": "确保哈希连接中的批量元组传输循环可被查询取消请求中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "7b5282ffb5bcbe479caf412f4d2c5cf592db647ceddab83ded7d0f3d0504915e", "section_path": ["变更"], "commit_groups": [["030705e4f", "354dfa235", "6a4941f8c", "96ba17640", "d0e9c0e31", "f2ec57dee"]], "identity_text": "Ensure that bulk-tuple-transfer loops within a hash join are interruptible by query cancel requests (Tom Lane, Thomas Munro)", "commit_aliases": ["030705e4f", "354dfa235", "6a4941f8c", "96ba17640", "d0e9c0e31", "f2ec57dee"], "source_commits": ["354dfa235"], "source_entry_id": "9.6.3/changes/021", "db_id": "efdfecf5ad98e461aed2bca8807b220a", "patch_ids": ["e7548affc7c372f30e7b930154091228"], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9", "relations": [{"rule": 2, "type": "equivalent", "target": "44a80c2bde78d80851b1a09ce27946cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9"}}, {"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"}}], "version": "9.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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": "44a80c2bde78d80851b1a09ce27946cd", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "确保哈希连接中的批量元组传输循环可被查询取消请求中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1562a4c4c3bb33538f2e69ea858db766d61467d12edcd1161c46a760bc7920a9"}, "url": "/docs/compare/?release=9.3.17#9.3.17-573e4331b3c8ac58", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-156e7bf442df6ecf", "cves": [], "html": "<p>修复 SP-GiST 中对某些 <code>box</code> 操作符的不正确支持（Nikita Glukhov）</p>\n<p>使用操作符 <code>&amp;&lt;</code> <code>&amp;&gt;</code> <code>&amp;&lt;|</code> 和 <code>|&amp;&gt;</code> 的 SP-GiST 索引扫描会给出错误答案。</p>", "text": "修复 SP-GiST 中对某些 box 操作符的不正确支持（Nikita Glukhov） 使用操作符 &< &> &<| 和 |&> 的 SP-GiST 索引扫描会给出错误答案。", "title": "修复 SP-GiST 中对某些 box 操作符的不正确支持", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "c39ca7f154e3de34cc74873a159ca483178bc639337656deacad7bf271ce43b5", "section_path": ["变更"], "commit_groups": [["a4d07d2e9", "d5286aa90"]], "identity_text": "Fix incorrect support for certain box operators in SP-GiST (Nikita Glukhov) SP-GiST index scans using the operators &< &> &<| and |&> would yield incorrect answers.", "commit_aliases": ["a4d07d2e9", "d5286aa90"], "source_commits": ["a4d07d2e9"], "source_entry_id": "9.6.3/changes/022", "db_id": "5ee56db201014945add8533281d2b0ae", "patch_ids": ["ab843860dcb718d51f6db1fed0e7f68e"], "statement_hash": "f3bdf50e665e54ca45eed467a1e22206289e6cb5b3bc80db2b2fa4a7aeb4592c", "relations": [], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.3-04760de047a54417", "cves": [], "html": "<p>修复 <code>interval</code> 比较中的整数溢出问题（Kyotaro Horiguchi、Tom Lane）</p>\n<p><code>interval</code> 类型的比较操作符对超过约 296000 年的间隔可能给出错误答案。包含这种大值的列上的索引应执行 REINDEX，因为它们可能已损坏。</p>", "text": "修复 interval 比较中的整数溢出问题（Kyotaro Horiguchi、Tom Lane） interval 类型的比较操作符对超过约 296000 年的间隔可能给出错误答案。包含这种大值的列上的索引应执行 REINDEX，因为它们可能已损坏。", "title": "修复 interval 比较中的整数溢出问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "b7d62982786b4daec7451825b54db39c7cd52684e0807ebb7a4b7f51b0c10be2", "section_path": ["变更"], "commit_groups": [["8851bcf88", "d68a2b20a", "df1a699e5", "fd52b8834"]], "identity_text": "Fix integer-overflow problems in interval comparison (Kyotaro Horiguchi, Tom Lane) The comparison operators for type interval could yield wrong answers for intervals larger than about 296000 years. Indexes on columns containing such large values should be reindexed, since they may be corrupt.", "commit_aliases": ["8851bcf88", "d68a2b20a", "df1a699e5", "fd52b8834"], "source_commits": ["fd52b8834"], "source_entry_id": "9.6.3/changes/023", "db_id": "0077b71b1a112508522b6344a237e809", "patch_ids": ["f4d2518dccc4d40232383dc89c6a840a"], "statement_hash": "92b2e5bb9d07607656f3c8b5a8c7f06cfb758ec6708a10b8fd97cb3f35acdfc4", "relations": [{"rule": 2, "type": "equivalent", "target": "0a0db6affb7f39f7ea35725bbbea34d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "92b2e5bb9d07607656f3c8b5a8c7f06cfb758ec6708a10b8fd97cb3f35acdfc4"}}, {"rule": 2, "type": "equivalent", "target": "ecaa09538553f74070da8438db8e8b6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "92b2e5bb9d07607656f3c8b5a8c7f06cfb758ec6708a10b8fd97cb3f35acdfc4"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0a0db6affb7f39f7ea35725bbbea34d7", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 interval 比较中的整数溢出问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "92b2e5bb9d07607656f3c8b5a8c7f06cfb758ec6708a10b8fd97cb3f35acdfc4"}, "url": "/docs/compare/?release=9.5.7#9.5.7-04760de047a54417", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "ecaa09538553f74070da8438db8e8b6b", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复 interval 比较中的整数溢出问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "92b2e5bb9d07607656f3c8b5a8c7f06cfb758ec6708a10b8fd97cb3f35acdfc4"}, "url": "/docs/compare/?release=9.4.12#9.4.12-04760de047a54417", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}]}, {"id": "9.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "c6fc514cef3757d9620b5ef1a1b91cce125b099766de7774f76ff7ffa91e4498", "section_path": ["变更"], "commit_groups": [["071d13395", "0de791ed7", "12dd58d64", "6e86b448f", "9750a9583", "a48d47908"]], "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": ["071d13395", "0de791ed7", "12dd58d64", "6e86b448f", "9750a9583", "a48d47908"], "source_commits": ["071d13395"], "source_entry_id": "9.6.3/changes/024", "db_id": "f2b511c3be71d4726129f9b69f4df2e2", "patch_ids": ["feecc4b98be78ed393246f5d1dd7c20c"], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490", "relations": [{"rule": 2, "type": "equivalent", "target": "6782aa11f486e6dce21d003400c6316d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490"}}, {"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"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "6782aa11f486e6dce21d003400c6316d", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "修复 cursor_to_xml() 在 tableforest = false 时产生有效输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "34afaab09f61c097d4dd0f9cee2d4f6a2227527675fdac6b6afa5d59eb499490"}, "url": "/docs/compare/?release=9.3.17#9.3.17-70ab2a8c53cd53f0", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-800f7fee5153da25", "cves": [], "html": "<p>修复 <code>float8_timestamptz()</code> 和 <code>make_interval()</code> 中的舍入问题（Tom Lane）</p>\n<p>这些函数在把浮点值转换为整数微秒时是截断而不是舍入；这可能导致意外的差一结果。</p>", "text": "修复 float8_timestamptz() 和 make_interval() 中的舍入问题（Tom Lane） 这些函数在把浮点值转换为整数微秒时是截断而不是舍入；这可能导致意外的差一结果。", "title": "修复 float8_timestamptz() 和 make_interval() 中的舍入问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "fa8464277c4b7f9c0737e20822a15774281bac7d085dd9d096268c241ae7debe", "section_path": ["变更"], "commit_groups": [["1888fad44", "404756fe8", "7786b9848", "8f93bd851"], ["5d2adf0f8", "86ef376bb", "cf73c6bfc", "fc96a5fbc"]], "identity_text": "Fix roundoff problems in float8_timestamptz() and make_interval() (Tom Lane) These functions truncated, rather than rounded, when converting a floating-point value to integer microseconds; that could cause unexpectedly off-by-one results.", "commit_aliases": ["1888fad44", "404756fe8", "5d2adf0f8", "7786b9848", "86ef376bb", "8f93bd851", "cf73c6bfc", "fc96a5fbc"], "source_commits": ["404756fe8", "fc96a5fbc"], "source_entry_id": "9.6.3/changes/025", "db_id": "7d4186fd5952150f8998b6fa119faa61", "patch_ids": ["d8492c0f917c794aa0d5d61b88d0d60c", "ef3d0e022db0d1b3c0b6f31d8fc0e700"], "statement_hash": "6439fe4b23049c29f62b5c51a839b0fcea4dd979a007d5010b496a457126db55", "relations": [{"rule": 2, "type": "equivalent", "target": "a08d43ef4a33c69cf6784de7f82f78de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6439fe4b23049c29f62b5c51a839b0fcea4dd979a007d5010b496a457126db55"}}, {"rule": 2, "type": "equivalent", "target": "b4f9fca8626ea8089ee9397207dcec5e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6439fe4b23049c29f62b5c51a839b0fcea4dd979a007d5010b496a457126db55"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a08d43ef4a33c69cf6784de7f82f78de", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 float8_timestamptz() 和 make_interval() 中的舍入问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6439fe4b23049c29f62b5c51a839b0fcea4dd979a007d5010b496a457126db55"}, "url": "/docs/compare/?release=9.5.7#9.5.7-800f7fee5153da25", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "b4f9fca8626ea8089ee9397207dcec5e", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "修复 float8_timestamptz() 和 make_interval() 中的舍入问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6439fe4b23049c29f62b5c51a839b0fcea4dd979a007d5010b496a457126db55"}, "url": "/docs/compare/?release=9.4.12#9.4.12-800f7fee5153da25", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}]}, {"id": "9.6.3-6cc751c7c9c82889", "cves": [], "html": "<p>修复 <code>pg_get_object_address()</code> 正确处理操作符族的成员（Álvaro Herrera）</p>", "text": "修复 pg_get_object_address() 正确处理操作符族的成员（Álvaro Herrera）", "title": "修复 pg_get_object_address() 正确处理操作符族的成员", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "b37458423ce96efa8ca2c41e05a4efc94705b8564f89b70f12e02fd7de866c06", "section_path": ["变更"], "commit_groups": [["087e696f0", "41306a511", "a3eac988c"], ["1ec36a9eb", "b6e6ae1dc"]], "identity_text": "Fix pg_get_object_address() to handle members of operator families correctly (Álvaro Herrera)", "commit_aliases": ["087e696f0", "1ec36a9eb", "41306a511", "a3eac988c", "b6e6ae1dc"], "source_commits": ["1ec36a9eb", "41306a511"], "source_entry_id": "9.6.3/changes/026", "db_id": "b01a0ee4a1b1b46896b0b7b0d50e26d0", "patch_ids": ["63495185a26714b6a2dea65bd2b80ee7", "973b23eacae40ac5e0ecb7cfdc5bfb3b"], "statement_hash": "c8b3d0aeb705cb73d2292fd6ba2111134b30cef30c858a6f8a8ee52c512e35e5", "relations": [{"rule": 2, "type": "equivalent", "target": "f5b6629468d9179b33679de85a2059ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8b3d0aeb705cb73d2292fd6ba2111134b30cef30c858a6f8a8ee52c512e35e5"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f5b6629468d9179b33679de85a2059ff", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "修复 pg_get_object_address() 正确处理操作符族的成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8b3d0aeb705cb73d2292fd6ba2111134b30cef30c858a6f8a8ee52c512e35e5"}, "url": "/docs/compare/?release=9.5.7#9.5.7-6cc751c7c9c82889", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}]}, {"id": "9.6.3-cfc5ba122b33b31b", "cves": [], "html": "<p>修复尝试停止非独占备份时 <code>pg_stop_backup()</code> 的取消（Michael Paquier、David Steele）</p>\n<p>如果 <code>pg_stop_backup()</code> 在等待非独占备份结束时被取消，相关状态会保持不一致；无法启动新的独占备份，还有其他小问题。</p>", "text": "修复尝试停止非独占备份时 pg_stop_backup() 的取消（Michael Paquier、David Steele） 如果 pg_stop_backup() 在等待非独占备份结束时被取消，相关状态会保持不一致；无法启动新的独占备份，还有其他小问题。", "title": "修复尝试停止非独占备份时 pg_stop_backup() 的取消", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "7dce5ff08c04ba70816e5ff0659ab99470624de9e3086403040396617cb5dc6d", "section_path": ["变更"], "commit_groups": [["78874531b", "8de6278d3"]], "identity_text": "Fix cancelling of pg_stop_backup() when attempting to stop a non-exclusive backup (Michael Paquier, David Steele) If pg_stop_backup() was cancelled while waiting for a non-exclusive backup to end, related state was left inconsistent; a new exclusive backup could not be started, and there were other minor problems.", "commit_aliases": ["78874531b", "8de6278d3"], "source_commits": ["8de6278d3"], "source_entry_id": "9.6.3/changes/027", "db_id": "9ec6428ed58ca4a420465af736c0dd46", "patch_ids": ["dfb03bef5ef6b0aaaf3dd17a34f20045"], "statement_hash": "9bc0ca42e47dc4ebe2eda0bd2a1caaefdbeb2fa919307781d8028d11a7052377", "relations": [], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "4c1da4f1b0ae9f0ed94315c7dfc925c77cb4b4a000546aca22833384e7e70952", "section_path": ["变更"], "commit_groups": [["07987304d", "38ed45c91", "5042e9492", "5788a5670", "6eedc6c18", "9061680f0"], ["1b6db75ef", "35ac926bf", "5557b6af5", "724cd4f06", "af2c5aa88", "c521d5a8d"]], "identity_text": "Improve performance of pg_timezone_names view (Tom Lane, David Rowley)", "commit_aliases": ["07987304d", "1b6db75ef", "35ac926bf", "38ed45c91", "5042e9492", "5557b6af5", "5788a5670", "6eedc6c18", "724cd4f06", "9061680f0", "af2c5aa88", "c521d5a8d"], "source_commits": ["5042e9492", "c521d5a8d"], "source_entry_id": "9.6.3/changes/028", "db_id": "236f2b6361319246ea1d857e4791c6dc", "patch_ids": ["2ea382c5684f0fb16d35c6dbdc48948a", "7ba44a8893c5b4dc0569faf7553d15d0"], "statement_hash": "31dbd0a644a243e4adffbf8136c94ff3bbc7ccbe396a76002a31638e4fc62908", "relations": [{"rule": 2, "type": "equivalent", "target": "1124e364e189eb0d748d1b02e542e1be", "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.6.3", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"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": "1124e364e189eb0d748d1b02e542e1be", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "改进 pg_timezone_names 视图的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31dbd0a644a243e4adffbf8136c94ff3bbc7ccbe396a76002a31638e4fc62908"}, "url": "/docs/compare/?release=9.3.17#9.3.17-b09c96a112d993ba", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-fee385e0a6402cc3", "cves": [], "html": "<p>减少包含许多大块的内存上下文的内存管理开销（Tom Lane）</p>", "text": "减少包含许多大块的内存上下文的内存管理开销（Tom Lane）", "title": "减少包含许多大块的内存上下文的内存管理开销", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "23497ff7e3621bda7d89896f0c0f6b0bdee14a2c1aa27f5ec9eaf0cb2907a231", "section_path": ["变更"], "commit_groups": [["50a9d714a", "8dd5c4171", "e0a6ed8a2", "ff97741bc"]], "identity_text": "Reduce memory management overhead for contexts containing many large blocks (Tom Lane)", "commit_aliases": ["50a9d714a", "8dd5c4171", "e0a6ed8a2", "ff97741bc"], "source_commits": ["e0a6ed8a2"], "source_entry_id": "9.6.3/changes/029", "db_id": "b3f0d72af1f4d0155fdb450a7f41afeb", "patch_ids": ["8b0af8a1e9a7a4dcbb0e32c96deca0c2"], "statement_hash": "fb8df51097c458a0057276891679659f0d0545c02fb7d496621c507776ec0d6c", "relations": [{"rule": 2, "type": "equivalent", "target": "8e7aafe43189eb79b5b55ffebbd4fcfb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb8df51097c458a0057276891679659f0d0545c02fb7d496621c507776ec0d6c"}}, {"rule": 2, "type": "equivalent", "target": "a9a7cbb4ff277f8f6a2b3e7dbe319833", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb8df51097c458a0057276891679659f0d0545c02fb7d496621c507776ec0d6c"}}], "version": "9.6.3", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8e7aafe43189eb79b5b55ffebbd4fcfb", "kind": "equivalent", "version": "9.5.7", "label": "9.5.7", "title": "减少包含许多大块的内存上下文的内存管理开销", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb8df51097c458a0057276891679659f0d0545c02fb7d496621c507776ec0d6c"}, "url": "/docs/compare/?release=9.5.7#9.5.7-fee385e0a6402cc3", "source_url": "/docs/release/9.5.7/#id-1.11.6.23.5"}, {"db_id": "a9a7cbb4ff277f8f6a2b3e7dbe319833", "kind": "equivalent", "version": "9.4.12", "label": "9.4.12", "title": "减少包含许多大块的内存上下文的内存管理开销", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb8df51097c458a0057276891679659f0d0545c02fb7d496621c507776ec0d6c"}, "url": "/docs/compare/?release=9.4.12#9.4.12-fee385e0a6402cc3", "source_url": "/docs/release/9.4.12/#id-1.11.6.19.5"}]}, {"id": "9.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "3ca47c3c27275503f508be62ec868ce4c106003502bc0074c51f48c0870496eb", "section_path": ["变更"], "commit_groups": [["3f613c6a4", "62ed08422", "775227590", "d9959e6eb", "f97de05a1", "ff1b032a9"]], "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": ["3f613c6a4", "62ed08422", "775227590", "d9959e6eb", "f97de05a1", "ff1b032a9"], "source_commits": ["62ed08422"], "source_entry_id": "9.6.3/changes/030", "db_id": "b59989cbac0f9d4eaf625ec147b73519", "patch_ids": ["ee13ca35d93ae68a56071b98b588a0e4"], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b", "relations": [{"rule": 2, "type": "equivalent", "target": "9359286cdff778e386815f1dbce778ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b"}}, {"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": "b8e43bec9f74c903ae6184d7b8e882bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "9359286cdff778e386815f1dbce778ce", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "修复对 lseek() 和 close() 边界情况错误的草率处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "591d28952d051eea70d4094b9334138d8a2a3f742e0153bbf133af8dcc87520b"}, "url": "/docs/compare/?release=9.3.17#9.3.17-ffa8b61f323838b5", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "390cb821f51c50b51d997646da588f27dc75fb58eaf1324db50ed1c085f5b8a2", "section_path": ["变更"], "commit_groups": [["38bdba54a", "3ebcc2498", "6b584c36a", "96fd76dd2", "9c52ddfce", "ff30aec75"], ["42a60aa7f", "4ae0805bb", "6423ed7d4", "8ae3ff64b", "e0e1ef46d"]], "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": ["38bdba54a", "3ebcc2498", "42a60aa7f", "4ae0805bb", "6423ed7d4", "6b584c36a", "8ae3ff64b", "96fd76dd2", "9c52ddfce", "e0e1ef46d", "ff30aec75"], "source_commits": ["38bdba54a", "4ae0805bb"], "source_entry_id": "9.6.3/changes/031", "db_id": "f02b4973526bea02ef574a08a7763a02", "patch_ids": ["16b0f93776b2d3e3c17698efb514a736", "35c9baebc0b98d1183345a80b6585064"], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b", "relations": [{"rule": 2, "type": "equivalent", "target": "6275cc687f6628ec69c1683662898c05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b"}}, {"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"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "6275cc687f6628ec69c1683662898c05", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "修复对 postmaster 是否作为 Windows 服务运行的不正确检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f63ca4518c838068cf83c646db5407d08e41b80a7090f5f7841c178b4014403b"}, "url": "/docs/compare/?release=9.3.17#9.3.17-90d835ddeb581806", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "bbb79ffef4861843fd1edba90d4be4a7fa0cd024d0029a173f15edbe468e45ba", "section_path": ["变更"], "commit_groups": [["04207ef76", "43c79c7d6", "a8b3262ab", "d8c207437", "e060baaad", "f08a90ecd"]], "identity_text": "Fix ecpg to support COMMIT PREPARED and ROLLBACK PREPARED (Masahiko Sawada)", "commit_aliases": ["04207ef76", "43c79c7d6", "a8b3262ab", "d8c207437", "e060baaad", "f08a90ecd"], "source_commits": ["f08a90ecd"], "source_entry_id": "9.6.3/changes/032", "db_id": "c1e6ead4688d56ae54bbaf9b96c8abf6", "patch_ids": ["247e310a81c9c6b5396ac7218c2184a4"], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e", "relations": [{"rule": 2, "type": "equivalent", "target": "0822458734bed20d1e311f4858685747", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e"}}, {"rule": 2, "type": "equivalent", "target": "cae3c7f6c3cb7f52f71bc666ab7344b5", "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.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "cae3c7f6c3cb7f52f71bc666ab7344b5", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "修复 ecpg 支持 COMMIT PREPARED 和 ROLLBACK PREPARED", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "258657869bc6ccb0a5d6d33ccf4685be1729308530f550d99578914952d9883e"}, "url": "/docs/compare/?release=9.3.17#9.3.17-b395898142c232d4", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "824957eb068162ab55213d4c35b1ad0070205fac94fdda42802ccdfa8f0c8ef7", "section_path": ["变更"], "commit_groups": [["466ee7a53", "731afc91f", "af471919b", "d0fef0654", "d1ca82d0a", "f6b906599"]], "identity_text": "Fix a double-free error when processing dollar-quoted string literals in ecpg (Michael Meskes)", "commit_aliases": ["466ee7a53", "731afc91f", "af471919b", "d0fef0654", "d1ca82d0a", "f6b906599"], "source_commits": ["d0fef0654"], "source_entry_id": "9.6.3/changes/033", "db_id": "565a5bfa2b411f4911e30010b4b8073d", "patch_ids": ["17845358b252f4e0be344414a4ae27a9"], "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": "80062188b58d968c89c3a76019879bbb", "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.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "80062188b58d968c89c3a76019879bbb", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "修复 ecpg 中处理美元引用字符串字面量时的双重释放错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "51102047d71f6c94d5e9141529efd13c57330e95d0f0c2cef4bca9a525a83556"}, "url": "/docs/compare/?release=9.3.17#9.3.17-c64bec1409360fce", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-47c4e3340fa38418", "cves": [], "html": "<p>修复 <span>pgbench</span> 正确处理 <code>--connect</code> 和 <code>--rate</code> 选项的组合（Fabien Coelho）</p>", "text": "修复 pgbench 正确处理 --connect 和 --rate 选项的组合（Fabien Coelho）", "title": "修复 pgbench 正确处理 --connect 和 --rate 选项的组合", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "5a7b6292601dabe322af9b465bae1f29a6cf22ddaa8e2968aa82f0cc44a71e99", "section_path": ["变更"], "commit_groups": [["2ed391f95"]], "identity_text": "Fix pgbench to handle the combination of --connect and --rate options correctly (Fabien Coelho)", "commit_aliases": ["2ed391f95"], "source_commits": ["2ed391f95"], "source_entry_id": "9.6.3/changes/034", "db_id": "d08de493edb73b101f6e243f9ea2100c", "patch_ids": ["af46ee2f406a05df088d7174bc915828"], "statement_hash": "8f637448e7a37fdd1fffec5721025e804ed654c7327b702a2a48f81914fbf1aa", "relations": [], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.3-9176ec6203fd9e58", "cves": [], "html": "<p>修复 <span>pgbench</span> 遵循文档所述的长格式选项拼法 <code>--builtin</code>（Tom Lane）</p>", "text": "修复 pgbench 遵循文档所述的长格式选项拼法 --builtin（Tom Lane）", "title": "修复 pgbench 遵循文档所述的长格式选项拼法 --builtin", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "0965a1265b89477c49505a92b8f19c538a912e76d7c25dff52bb5ccb4e0b5bae", "section_path": ["变更"], "commit_groups": [["0e2c85d13", "ef2662394"]], "identity_text": "Fix pgbench to honor the long-form option spelling --builtin, as per its documentation (Tom Lane)", "commit_aliases": ["0e2c85d13", "ef2662394"], "source_commits": ["0e2c85d13"], "source_entry_id": "9.6.3/changes/035", "db_id": "cf535a84faae90087065d21b49b308ed", "patch_ids": ["b7c24f3318cfbb3cfbb8c7cf170213d9"], "statement_hash": "b63b14d1e6633b64f1de27a23b19646745431d646a9a14268588e706b4442b58", "relations": [], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.3-8f806e1545f9b540", "cves": [], "html": "<p>修复 <span>pg_dump</span>/<span>pg_restore</span> 使用 <code>--clean</code> 选项时正确处理 <code>public</code> 模式的权限（Stephen Frost）</p>\n<p>其他模式初始时未被授予任何权限，但 <code>public</code> 不是；当它因 <code>--clean</code> 选项而被删除和恢复时，这需要特殊处理。</p>", "text": "修复 pg_dump/pg_restore 使用 --clean 选项时正确处理 public 模式的权限（Stephen Frost） 其他模式初始时未被授予任何权限，但 public 不是；当它因 --clean 选项而被删除和恢复时，这需要特殊处理。", "title": "修复 pg_dump/pg_restore 使用 --clean 选项时正确处理 public 模式的权限", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "8230d7ab0e00abba49a3c8baa337077a19482c1ced69e679e9f1d71e85eafd40", "section_path": ["变更"], "commit_groups": [["330b84d8c", "e961341cc"]], "identity_text": "Fix pg_dump/pg_restore to correctly handle privileges for the public schema when using --clean option (Stephen Frost) Other schemas start out with no privileges granted, but public does not; this requires special-case treatment when it is dropped and restored due to the --clean option.", "commit_aliases": ["330b84d8c", "e961341cc"], "source_commits": ["e961341cc"], "source_entry_id": "9.6.3/changes/036", "db_id": "7cd0f82d1fe1f9fce03925e65e08462a", "patch_ids": ["b97a7ef8c6bbfebc89b4016e9cc3fa54"], "statement_hash": "df13fe06b5aaf05b7bc6a1ab83c9554924264bacfa1a8f39d471b28404d1508f", "relations": [], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "51b6076702a5205b4de223805481496d483cdc836bc54e501c062c2d46d97d88", "section_path": ["变更"], "commit_groups": [["0ab75448e", "299990ba1", "783acfd4d", "8ea8178cd", "b6882e9ec", "db9b4b716"]], "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": ["0ab75448e", "299990ba1", "783acfd4d", "8ea8178cd", "b6882e9ec", "db9b4b716"], "source_commits": ["8ea8178cd"], "source_entry_id": "9.6.3/changes/037", "db_id": "d5c4e795dd7e0d67ab5916fb5cffed98", "patch_ids": ["1291a6b2b9e1ccd606085c00f50896b3"], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f", "relations": [{"rule": 2, "type": "equivalent", "target": "1b88a61efd4b59ad7eb3a3e0a221d3c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f"}}, {"rule": 2, "type": "equivalent", "target": "b363a62d20e26cc8516d8ae2e60837f3", "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": "e0fb91ed71e4b72b225144f014fd4e7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "b363a62d20e26cc8516d8ae2e60837f3", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "在 pg_dump 中，修复某些类型数据库对象的注释和安全标签的模式和所有者标记错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e0c51be11a54242c6b6ff8b926072f02bf701645be997bfd31e6fffa1784195f"}, "url": "/docs/compare/?release=9.3.17#9.3.17-e3e53ebfe92e9014", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-d2e04f5f49a691a8", "cves": [], "html": "<p>修复 <span>pg_dump</span> 对过程语言初始权限查询中的拼写错误（Peter Eisentraut）</p>\n<p>这导致 <span>pg_dump</span> 总是认为该语言没有初始权限。由于大多数过程语言确实如此，此 bug 的不良影响可能很少见。</p>", "text": "修复 pg_dump 对过程语言初始权限查询中的拼写错误（Peter Eisentraut） 这导致 pg_dump 总是认为该语言没有初始权限。由于大多数过程语言确实如此，此 bug 的不良影响可能很少见。", "title": "修复 pg_dump 对过程语言初始权限查询中的拼写错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "95210702e68a685dd45cbe0837c56aad3839c573b8bb60215e9a12b4676169f6", "section_path": ["变更"], "commit_groups": [["39370e6a0", "4e8b2fd33"]], "identity_text": "Fix typo in pg_dump's query for initial privileges of a procedural language (Peter Eisentraut) This resulted in pg_dump always believing that the language had no initial privileges. Since that's true for most procedural languages, ill effects from this bug are probably rare.", "commit_aliases": ["39370e6a0", "4e8b2fd33"], "source_commits": ["4e8b2fd33"], "source_entry_id": "9.6.3/changes/038", "db_id": "803dab7ab7bd9d9d683cce5bb6ab304b", "patch_ids": ["982dc0ceaff392b4a6fe67b54eab88e3"], "statement_hash": "9620d8cdacd621da0632ae0efb3f66634ca2ae9671269526f0923e3a3bb933e1", "relations": [], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "262f3250078916446500b63c4446295cb8bc9a08c4c0bc1c390899c9181fcb7a", "section_path": ["变更"], "commit_groups": [["0c0a95c2f", "4cdd81d90", "64d132c29", "88f3743cb", "e6d2ba419", "f39ddd843"]], "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": ["0c0a95c2f", "4cdd81d90", "64d132c29", "88f3743cb", "e6d2ba419", "f39ddd843"], "source_commits": ["4cdd81d90"], "source_entry_id": "9.6.3/changes/039", "db_id": "08554c58ef3ec46c728a8e32daa48b82", "patch_ids": ["955398d8bca1ecd16e083ee1822b7614"], "statement_hash": "58cd3427250e7256fda61045b6e69f3d4733c269203871cd3e4c038b2ccfb81b", "relations": [{"rule": 2, "type": "equivalent", "target": "3365616de376037de9c9bf922a66b607", "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.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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": "3365616de376037de9c9bf922a66b607", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "避免 SQL 对象名包含换行时 pg_restore -l 发出无效列表文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "58cd3427250e7256fda61045b6e69f3d4733c269203871cd3e4c038b2ccfb81b"}, "url": "/docs/compare/?release=9.3.17#9.3.17-a0aa5a48b4ead8ad", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "ad00ab5313ef596d74aef612ed5d54f1a79b6e531cd08457ef1b0a4d6d9f5af7", "section_path": ["变更"], "commit_groups": [["65a3f233b", "6be8647f7", "7f831f09b", "93598898c", "e864cd25b", "ff992c074"]], "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": ["65a3f233b", "6be8647f7", "7f831f09b", "93598898c", "e864cd25b", "ff992c074"], "source_commits": ["65a3f233b"], "source_entry_id": "9.6.3/changes/040", "db_id": "3664824fe19863ebd53a0371c16bb1f3", "patch_ids": ["c4846f002fbadccfd5c8f4a371c13e63"], "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": "37805debde5750c6a39d284fc3f28fcc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033"}}, {"rule": 2, "type": "equivalent", "target": "d1f3dcf547f89695a43df4a44e4fe708", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "d1f3dcf547f89695a43df4a44e4fe708", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "修复 pg_upgrade 传输附加到“大对象”（blob）的注释和安全标签", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fc4db1d57628b50dd6ea354d0ac1e6433949a487f5fff39a3c37e372d8ef1033"}, "url": "/docs/compare/?release=9.3.17#9.3.17-0f6f30fdae445985", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "65f6c64d7b177173f38a2db588308cac7834a228bae2be59aab5b65baffccaf4", "section_path": ["变更"], "commit_groups": [["0276da5eb", "08c6d42c8", "4b2669ada", "944a026b4", "d0e5ac736", "e03c6d93b"]], "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": ["0276da5eb", "08c6d42c8", "4b2669ada", "944a026b4", "d0e5ac736", "e03c6d93b"], "source_commits": ["08c6d42c8"], "source_entry_id": "9.6.3/changes/041", "db_id": "40b42a61b13950157294e7d10080dcb5", "patch_ids": ["7fd3ba14fd1ddc292a9968c535ea8777"], "statement_hash": "1668732154a9e21d9d1c1b1ec9cf144724c5faf5c779e46adf35252c7e3ed99a", "relations": [{"rule": 2, "type": "equivalent", "target": "2593f7f2895b8a62a450eb8212de3912", "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.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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": "2593f7f2895b8a62a450eb8212de3912", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "改进 contrib/adminpack 的 pg_file_write() 函数中的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1668732154a9e21d9d1c1b1ec9cf144724c5faf5c779e46adf35252c7e3ed99a"}, "url": "/docs/compare/?release=9.3.17#9.3.17-c0ec7dcb921b98cb", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "896588b43668cb1f10fff535971fca98743e23fe2168419cb942432ce7461ff5", "section_path": ["变更"], "commit_groups": [["166dfb3a9", "82f3792a4", "8469923f3", "c4613c3f4", "cd1e23e93", "f6cfc14e5"]], "identity_text": "In contrib/dblink, avoid leaking the previous unnamed connection when establishing a new unnamed connection (Joe Conway)", "commit_aliases": ["166dfb3a9", "82f3792a4", "8469923f3", "c4613c3f4", "cd1e23e93", "f6cfc14e5"], "source_commits": ["8469923f3"], "source_entry_id": "9.6.3/changes/042", "db_id": "a52f862d233fd8a3ba3b105d7ee99818", "patch_ids": ["c025479053c5e6c98652c5b979e7cd15"], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e", "relations": [{"rule": 2, "type": "equivalent", "target": "7cec05b8ab4865b3e9e9fdb4f6b9f13c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e"}}, {"rule": 2, "type": "equivalent", "target": "9043e7d5f286f28fd55e36bba837ac43", "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.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "9043e7d5f286f28fd55e36bba837ac43", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "在 contrib/dblink 中，建立新的未命名连接时避免泄漏先前的未命名连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d0713f1ee5b60c4f1e74384c9e8388943f918f46b102efc715be465c4f36d5e"}, "url": "/docs/compare/?release=9.3.17#9.3.17-05506f7b4b923cbe", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "2d22432c795ec2e692106903aeffc1a5afcab105f2eb626198e70bdf897b193e", "section_path": ["变更"], "commit_groups": [["16500d227", "513c9f9de", "53b5a8c13", "98755681a", "9e43e8714"], ["1dffabed4", "9b48ce377", "d51279433", "e0eda580d", "fad06b287"], ["5be58cc89", "67665a71c", "6cfaffc0d", "a70b18b89", "b179684c7"]], "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": ["16500d227", "1dffabed4", "513c9f9de", "53b5a8c13", "5be58cc89", "67665a71c", "6cfaffc0d", "98755681a", "9b48ce377", "9e43e8714", "a70b18b89", "b179684c7", "d51279433", "e0eda580d", "fad06b287"], "source_commits": ["16500d227", "a70b18b89", "d51279433"], "source_entry_id": "9.6.3/changes/043", "db_id": "c6813aef47813fc91a53da575abf8903", "patch_ids": ["0920831471804d463d0d69b3723388d0", "1d03f33e86559856a8ee26dff1f08aba", "c54ada22da8ffe5c0bbfb76733877f55"], "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": "837a510e0fd1117a06b0202841ad90d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780e5e3bdf32d4183fef865759353259590630e146b8dfff6bf3ca7f48d3c23c"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "837a510e0fd1117a06b0202841ad90d0", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "修复 contrib/pg_trgm 从正则表达式提取三元组的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780e5e3bdf32d4183fef865759353259590630e146b8dfff6bf3ca7f48d3c23c"}, "url": "/docs/compare/?release=9.3.17#9.3.17-875750d4de0d577e", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.5"}]}, {"id": "9.6.3-03280a5b46361455", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，允许包含可下推的扩展提供函数的连接条件下推到远程服务器（David Rowley、Ashutosh Bapat）</p>", "text": "在 contrib/postgres_fdw 中，允许包含可下推的扩展提供函数的连接条件下推到远程服务器（David Rowley、Ashutosh Bapat）", "title": "在 contrib/postgres_fdw 中，允许包含可下推的扩展提供函数的连接条件下推到远程服务器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5", "source_hash": "454b65922fee41a21b1a6ad762a9635bbf1731454eac6c8f47cc079c00fbc307", "section_path": ["变更"], "commit_groups": [["332bec1e6", "86e640a69"]], "identity_text": "In contrib/postgres_fdw, allow join conditions that contain shippable extension-provided functions to be pushed to the remote server (David Rowley, Ashutosh Bapat)", "commit_aliases": ["332bec1e6", "86e640a69"], "source_commits": ["86e640a69"], "source_entry_id": "9.6.3/changes/044", "db_id": "a43973256957179239a0c08258d4eebd", "patch_ids": ["23a98917619479129e61580372563863"], "statement_hash": "57ffc08a5122016229e5495d2f6fef0658e3d538df09ddb74a234c08b89aa8ba", "relations": [{"rule": 2, "type": "related", "target": "1d7034dc922b3a8fd90e30724c91151d", "evidence": {"same_day": false, "patch_ids": ["23a98917619479129e61580372563863"]}}], "version": "9.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d7034dc922b3a8fd90e30724c91151d", "kind": "related", "version": "10.0", "label": "10.0", "title": "在 postgres_fdw 中，在更多情况下将连接下推到远程服务器", "evidence": {"same_day": false, "patch_ids": ["23a98917619479129e61580372563863"]}, "url": "/docs/compare/?release=10.0#10.0-28c602f6f7edf4e6", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14"}]}, {"id": "9.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "f71f40a2010046ced6731e4e4f2a70b36652c47a3649dd2cefd0d1d09f39bfcf", "section_path": ["变更"], "commit_groups": [["14722c69f", "19a403378", "41ba2ca08", "992e581bf", "adfad4222", "f692583dd"]], "identity_text": "Support Tcl 8.6 in MSVC builds (Álvaro Herrera)", "commit_aliases": ["14722c69f", "19a403378", "41ba2ca08", "992e581bf", "adfad4222", "f692583dd"], "source_commits": ["19a403378"], "source_entry_id": "9.6.3/changes/045", "db_id": "190ec609bbd1e736291d8614d6310765", "patch_ids": ["3706f0b688d29d1477430de4527ed859"], "statement_hash": "c4b3dba4c3cac4b3795c77fbe730388f1f024eb73aeedaa86d311e1df3525a90", "relations": [{"rule": 2, "type": "equivalent", "target": "d1bb9ba69de069f129189c8ed632b083", "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.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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": "d1bb9ba69de069f129189c8ed632b083", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "在 MSVC 构建中支持 Tcl 8.6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4b3dba4c3cac4b3795c77fbe730388f1f024eb73aeedaa86d311e1df3525a90"}, "url": "/docs/compare/?release=9.3.17#9.3.17-d79979a82bc7e327", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "73c4f270395f7d46881221925cf1b8b62587692422d5f23613fc915a8e93dfef", "section_path": ["变更"], "commit_groups": [["4d4d8fa77", "54aeb8d3e", "6872d96a3", "96cad6f24", "e18b2c480", "f8cf9719d"], ["74e747fbd", "9e5f3d013", "a54d5875f", "da55df018", "e829385f5", "fab2d0d7f"]], "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": ["4d4d8fa77", "54aeb8d3e", "6872d96a3", "74e747fbd", "96cad6f24", "9e5f3d013", "a54d5875f", "da55df018", "e18b2c480", "e829385f5", "f8cf9719d", "fab2d0d7f"], "source_commits": ["6872d96a3", "fab2d0d7f"], "source_entry_id": "9.6.3/changes/046", "db_id": "099a09f9168b971ab666096a0a5a1a14", "patch_ids": ["5de38e93f83d56415facaec41044f980", "99c7aa9ca1800a3c0c229efa24855c91"], "statement_hash": "437b2dc9704d613fadfc3d0323608eb60cba7d18aa0b467288d2c91a5cf83b68", "relations": [{"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": "7bc12771b4bee0f619850eada7f898ff", "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.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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": "7bc12771b4bee0f619850eada7f898ff", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "把我们的时区库副本与 IANA tzcode2017b 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "437b2dc9704d613fadfc3d0323608eb60cba7d18aa0b467288d2c91a5cf83b68"}, "url": "/docs/compare/?release=9.3.17#9.3.17-efcd1f512a0c41ac", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6.3/#id-1.11.6.26.5", "source_hash": "f824ea974f910e1291d29911b512544ffec5507933f95ed1a9f14913f336d46e", "section_path": ["变更"], "commit_groups": [["1c8862346", "1fdc3f6e8", "74a20d0ab", "9a8cc157c", "c96ccc40e", "dc93cafca"]], "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": ["1c8862346", "1fdc3f6e8", "74a20d0ab", "9a8cc157c", "c96ccc40e", "dc93cafca"], "source_commits": ["1fdc3f6e8"], "source_entry_id": "9.6.3/changes/047", "db_id": "b9423f0be6dd2bac6d2f952f027f3dce", "patch_ids": ["6c229fcbbb019499d0ce171858e380a7"], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428", "relations": [{"rule": 2, "type": "equivalent", "target": "15c4085b9eaad431c4aa087c8ac560b7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428"}}, {"rule": 2, "type": "equivalent", "target": "abbec38ddef1a96da98236c5bdb466ab", "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.6.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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": "15c4085b9eaad431c4aa087c8ac560b7", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "更新时区数据文件到 tzdata 版本 2017b，涉及智利、海地和蒙古的夏令时法规变更，加上厄瓜多尔、哈萨克斯坦、利比里亚和西班牙的历史修正。南美洲、太平洋和印度洋以及一些亚洲和中东国家的众多时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9b113e1c5c29616573ffffe3df205206c07b041cf1bc2768c35a6e48baecc428"}, "url": "/docs/compare/?release=9.3.17#9.3.17-01cabf3b80980a08", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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.6.3-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.6/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.6.3/#id-1.11.6.26.5", "source_hash": "d872d262134f5c52c1f4ee134227b95c8a8d35487cbcfaa067d77c18dad53e45", "section_path": ["变更"], "commit_groups": [["2f66002df", "5971accd8", "62a288312", "82e7d3dfd", "d4e59c552", "f75472817"]], "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": ["2f66002df", "5971accd8", "62a288312", "82e7d3dfd", "d4e59c552", "f75472817"], "source_commits": ["f75472817"], "source_entry_id": "9.6.3/changes/048", "db_id": "dcdd9aee6dcae5b053b492985006f6a8", "patch_ids": ["d81cfb5ae6e1f52120cd78a625cc04bc"], "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": "f86a305bcdaaeb3f2c59f4899d3918fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d43decf78c38df9a816e1846d64071764784868e4f05484b937c97f971d11790"}}], "version": "9.6.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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": "f86a305bcdaaeb3f2c59f4899d3918fe", "kind": "equivalent", "version": "9.3.17", "label": "9.3.17", "title": "在 MSVC 构建中对 POSIX 风格时区名使用正确的夏令时规则", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d43decf78c38df9a816e1846d64071764784868e4f05484b937c97f971d11790"}, "url": "/docs/compare/?release=9.3.17#9.3.17-3fb95fa04ac6f16c", "source_url": "/docs/release/9.3.17/#id-1.11.6.13.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"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 48}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 30}, {"key": "security", "label": "安全相关", "count": 3}, {"key": "performance", "label": "性能改进", "count": 2}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 13}], "total": 48, "release_count": 1, "cross_major": false, "cve_count": 4, "cves": [{"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.6.4"}, {"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.6.3"}, {"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.6.3"}, {"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.6.3"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 48, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}