{"format": 1, "from_release": {"date": "2016-09-29", "build": "9.6.0", "major": "9.6", "minor": 0, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.0", "eol_date": "2021-11-11", "date_text": "2016-09-29", "supported": false, "manual_url": "/docs/9.6/release-9-6.html", "source_url": "/docs/release/9.6.0/", "entry_count": 214, "placeholder": false, "content_hash": "2ae8233d18e9e3698eb179b8d82deb378772dc38040ea3d44910f33068301700", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 201, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>希望从任何之前的版本迁移数据的用户，需要使用<a href=\"/docs/9.6/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a>进行转储/恢复，或使用<a href=\"/docs/9.6/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>。</p>\n<p>版本 9.6 包含许多可能影响与以前版本兼容性的更改。注意以下不兼容之处：</p>\n<div>\n</div>", "compatibility_count": 13, "label": "9.6", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3653, "support_days": -1784}, "to_release": {"date": "2021-11-11", "build": "9.6.24", "major": "9.6", "minor": 24, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.24", "eol_date": "2021-11-11", "date_text": "2021-11-11", "supported": false, "manual_url": "/docs/9.6/release-9-6-24.html", "source_url": "/docs/release/9.6.24/", "entry_count": 40, "placeholder": false, "content_hash": "a8d2ee34e6eaa76223c4c0ae4b7fbb2ab7c600ddb73e8b65cf89d6dec933bbdc", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 40, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>    对于运行 9.6.X 的用户，不需要转储/恢复。\n   </p><p>    不过请注意，使用物理复制的安装应先更新备库服务器再更新主库服务器，如下面第三条变更日志条目所述。\n   </p><p>    此外，还发现了几个可能导致索引损坏的 bug，如接下来几条变更日志条目所述。如果其中任何情况适用于你，建议在更新之后对可能受影响的索引执行\n    REINDEX。\n   </p><p>    另外，如果你是从 9.6.21 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-21.html\" title=\"E.4. 版本 9.6.21\">第 E.4 节</a>。\n   </p>", "compatibility_count": 0, "label": "9.6.24", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 1784, "support_days": -1784}, "groups": [{"date": "2021-11-11", "build": "9.6.24", "major": "9.6", "minor": 24, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.24", "eol_date": "2021-11-11", "date_text": "2021-11-11", "supported": false, "manual_url": "/docs/9.6/release-9-6-24.html", "source_url": "/docs/release/9.6.24/", "entry_count": 40, "placeholder": false, "content_hash": "a8d2ee34e6eaa76223c4c0ae4b7fbb2ab7c600ddb73e8b65cf89d6dec933bbdc", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 40, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>    对于运行 9.6.X 的用户，不需要转储/恢复。\n   </p><p>    不过请注意，使用物理复制的安装应先更新备库服务器再更新主库服务器，如下面第三条变更日志条目所述。\n   </p><p>    此外，还发现了几个可能导致索引损坏的 bug，如接下来几条变更日志条目所述。如果其中任何情况适用于你，建议在更新之后对可能受影响的索引执行\n    REINDEX。\n   </p><p>    另外，如果你是从 9.6.21 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-21.html\" title=\"E.4. 版本 9.6.21\">第 E.4 节</a>。\n   </p>", "compatibility_count": 0, "label": "9.6.24", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 1784, "support_days": -1784, "entries": [{"id": "9.6.24-c319beb02a50a88f", "cves": ["CVE-2021-23214"], "html": "<p>      让服务器拒绝 SSL 或 GSS 加密握手之后的多余数据（Tom Lane）\n     </p><p>      能够向 TCP 连接注入数据的中间人，可以在本应受加密保护的数据库会话的开头塞入一些明文数据。这可能被滥用以向服务器发送伪造的 SQL 命令，不过只有当服务器不要求任何认证数据时才会奏效。（然而，依赖 SSL 证书认证的服务器很可能确实不要求。）\n     </p><p> <span>PostgreSQL</span> 项目感谢 Jacob Champion 报告此问题。(CVE-2021-23214)\n     </p>", "text": "让服务器拒绝 SSL 或 GSS 加密握手之后的多余数据（Tom Lane） 能够向 TCP 连接注入数据的中间人，可以在本应受加密保护的数据库会话的开头塞入一些明文数据。这可能被滥用以向服务器发送伪造的 SQL 命令，不过只有当服务器不要求任何认证数据时才会奏效。（然而，依赖 SSL 证书认证的服务器很可能确实不要求。） PostgreSQL 项目感谢 Jacob Champion 报告此问题。(CVE-2021-23214)", "title": "让服务器拒绝 SSL 或 GSS 加密握手之后的多余数据", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b837c66a3789ae6b713c206fac9a9bc29e6dc52d5f7ceb48e2e96a51770e7081", "section_path": ["变更"], "commit_groups": [["046c2c846", "28e241255", "9394fb828", "9ae0f1112", "9d5a76b8d", "d1bd26740", "e92ed93e8"]], "identity_text": "Make the server reject extraneous data after an SSL or GSS encryption handshake (Tom Lane) A man-in-the-middle with the ability to inject data into the TCP connection could stuff some cleartext data into the start of a supposedly encryption-protected database session. This could be abused to send faked SQL commands to the server, although that would only work if the server did not demand any authentication data. (However, a server relying on SSL certificate authentication might well not do so.) The PostgreSQL Project thanks Jacob Champion for reporting this problem. (CVE-2021-23214)", "commit_aliases": ["046c2c846", "28e241255", "9394fb828", "9ae0f1112", "9d5a76b8d", "d1bd26740", "e92ed93e8"], "source_commits": ["046c2c846"], "source_entry_id": "9.6.24/changes/001", "db_id": "857b0ddcc2ac0b70542c7713521baa4a", "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b", "relations": [{"rule": 2, "type": "equivalent", "target": "09173dd64f94bf13156c433846baac7d", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}, {"rule": 2, "type": "equivalent", "target": "23d5be7b761c04e734bf3d43433e109b", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}, {"rule": 2, "type": "equivalent", "target": "60b53f19afdd3985317f150336e3ec26", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}, {"rule": 2, "type": "equivalent", "target": "68a03d0d65e3da6f02b80a9de5b45861", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}, {"rule": 2, "type": "equivalent", "target": "fc87ef5d0ccafcfa310e5943b1e9fd2d", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}], "version": "9.6.24", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "fc87ef5d0ccafcfa310e5943b1e9fd2d", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=14.1#14.1-1856c71e2cf03259", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "68a03d0d65e3da6f02b80a9de5b45861", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=13.5#13.5-39a07d46c9c5e38f", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "09173dd64f94bf13156c433846baac7d", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=12.9#12.9-363608434205a801", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "23d5be7b761c04e734bf3d43433e109b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=11.14#11.14-5eea6f66c6b5cf3f", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "60b53f19afdd3985317f150336e3ec26", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=10.19#10.19-5eea6f66c6b5cf3f", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-0eb2aa94a5567b47", "cves": ["CVE-2021-23214", "CVE-2021-23222"], "html": "<p>      让 <span>libpq</span> 拒绝 SSL 或 GSS 加密握手之后的多余数据（Tom Lane）\n     </p><p>      能够向 TCP 连接注入数据的中间人，可以在本应受加密保护的数据库会话的开头塞入一些明文数据。这也许可被滥用以向客户端的前几个查询注入伪造的响应，不过 libpq 行为的其他细节使这比听起来更难。另一种攻击思路是窃取客户端的密码或会话早期可能发送的其他敏感数据。已经证明，对于存在 CVE-2021-23214 漏洞的服务器，这是可能的。\n     </p><p> <span>PostgreSQL</span> 项目感谢 Jacob Champion 报告此问题。(CVE-2021-23222)\n     </p>", "text": "让 libpq 拒绝 SSL 或 GSS 加密握手之后的多余数据（Tom Lane） 能够向 TCP 连接注入数据的中间人，可以在本应受加密保护的数据库会话的开头塞入一些明文数据。这也许可被滥用以向客户端的前几个查询注入伪造的响应，不过 libpq 行为的其他细节使这比听起来更难。另一种攻击思路是窃取客户端的密码或会话早期可能发送的其他敏感数据。已经证明，对于存在 CVE-2021-23214 漏洞的服务器，这是可能的。 PostgreSQL 项目感谢 Jacob Champion 报告此问题。(CVE-2021-23222)", "title": "让 libpq 拒绝 SSL 或 GSS 加密握手之后的多余数据", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "c79bcb2987bf3fb9fe840eb8f9fd686577b5bf86d7527b0917cc5808a48facc3", "section_path": ["变更"], "commit_groups": [["160c02588", "30547d791", "36bb95ef2", "844b31692", "a021a1d2a", "d83cdfdca", "e65d9c8cd"]], "identity_text": "Make libpq reject extraneous data after an SSL or GSS encryption handshake (Tom Lane) A man-in-the-middle with the ability to inject data into the TCP connection could stuff some cleartext data into the start of a supposedly encryption-protected database session. This could probably be abused to inject faked responses to the client's first few queries, although other details of libpq's behavior make that harder than it sounds. A different line of attack is to exfiltrate the client's password, or other sensitive data that might be sent early in the session. That has been shown to be possible with a server vulnerable to CVE-2021-23214. The PostgreSQL Project thanks Jacob Champion for reporting this problem. (CVE-2021-23222)", "commit_aliases": ["160c02588", "30547d791", "36bb95ef2", "844b31692", "a021a1d2a", "d83cdfdca", "e65d9c8cd"], "source_commits": ["d83cdfdca"], "source_entry_id": "9.6.24/changes/002", "db_id": "53707865a7e0107f3647c7f9f6fd2945", "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1", "relations": [{"rule": 2, "type": "equivalent", "target": "0eb9d93d5afa77a8d89883bdcf340ff7", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}, {"rule": 2, "type": "equivalent", "target": "5001ce09f2dce03a32492997ae85add4", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}, {"rule": 2, "type": "equivalent", "target": "7bfd458cc9aba55256fda5e905e86ee1", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}, {"rule": 2, "type": "equivalent", "target": "e407a83d059330027e44cdbd6f4f1779", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}, {"rule": 2, "type": "equivalent", "target": "f175095a9c0dad30b1caedf4975b6b2d", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}], "version": "9.6.24", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "0eb9d93d5afa77a8d89883bdcf340ff7", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=14.1#14.1-2148a2c0309fac1a", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "f175095a9c0dad30b1caedf4975b6b2d", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=13.5#13.5-32b7064eba088818", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "e407a83d059330027e44cdbd6f4f1779", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=12.9#12.9-1981162a570e17a7", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "5001ce09f2dce03a32492997ae85add4", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=11.14#11.14-cba8a84a21202abc", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "7bfd458cc9aba55256fda5e905e86ee1", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=10.19#10.19-cba8a84a21202abc", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-a8cf2c8e93f988bb", "cves": [], "html": "<p>      修复主库在传送了一个以不完整 WAL 记录结尾的 WAL 段之后崩溃时物理复制的问题（Álvaro Herrera）\n     </p><p>      如果主库没能存活到把不完整 WAL 记录的其余部分写完，原来的崩溃恢复逻辑会让它回退并从这条不完整 WAL 记录的开头开始覆盖 WAL。这是有问题的，因为备库服务器可能已经拥有该 WAL 段的副本。它们随后会看到不一致的下一个段，没有人工干预将无法恢复。为修复此问题，崩溃后重启时不再回退越过 WAL 段边界，而是在下一个 WAL 段的开头写入一种新类型的 WAL\n      记录，告知读取者这条不完整的 WAL 记录永远不会写完、必须忽略。\n     </p><p>      应用此更新时，最好先更新备库服务器再更新主库，这样一旦主库碰巧崩溃，备库就能准备好处理这种新 WAL 记录类型。\n     </p>", "text": "修复主库在传送了一个以不完整 WAL 记录结尾的 WAL 段之后崩溃时物理复制的问题（Álvaro Herrera） 如果主库没能存活到把不完整 WAL 记录的其余部分写完，原来的崩溃恢复逻辑会让它回退并从这条不完整 WAL 记录的开头开始覆盖 WAL。这是有问题的，因为备库服务器可能已经拥有该 WAL 段的副本。它们随后会看到不一致的下一个段，没有人工干预将无法恢复。为修复此问题，崩溃后重启时不再回退越过 WAL 段边界，而是在下一个 WAL 段的开头写入一种新类型的 WAL 记录，告知读取者这条不完整的 WAL 记录永远不会写完、必须忽略。 应用此更新时，最好先更新备库服务器再更新主库，这样一旦主库碰巧崩溃，备库就能准备好处理这种新 WAL 记录类型。", "title": "修复主库在传送了一个以不完整 WAL 记录结尾的 WAL 段之后崩溃时物理复制的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "da20249f869a9799b0fc24b0f2fa31e9c820a43926d050d05d65d4f65523f0f0", "section_path": ["变更"], "commit_groups": [["010e52337", "2cdf97fd1", "41cce2326", "4b7abbe48", "5ec87619b", "6287b8e19", "79c7fe1af"], ["0ce67bce0", "d186d233d"], ["148c6ee3b", "1d97d3d08", "1df0a914d", "64a8687a6", "cfedb279a", "d9fe2cc7d", "ff9f111bc"], ["17227825c", "494ec0037", "5ef210047", "656312c2a", "99197701e", "da782bc93"], ["d03bca4d7", "e3731bac5"]], "identity_text": "Fix physical replication for cases where the primary crashes after shipping a WAL segment that ends with a partial WAL record (Álvaro Herrera) If the primary did not survive long enough to finish writing the rest of the incomplete WAL record, then the previous crash-recovery logic had it back up and overwrite WAL starting from the beginning of the incomplete WAL record. This is problematic since standby servers may already have copies of that WAL segment. They will then see an inconsistent next segment, and will not be able to recover without manual intervention. To fix, do not back up over a WAL segment boundary when restarting after a crash. Instead write a new type of WAL record at the start of the next WAL segment, informing readers that the incomplete WAL record will never be finished and must be disregarded. When applying this update, it's best to update standby servers before the primary, so that they will be ready to handle this new WAL record type if the primary happens to crash.", "commit_aliases": ["010e52337", "0ce67bce0", "148c6ee3b", "17227825c", "1d97d3d08", "1df0a914d", "2cdf97fd1", "41cce2326", "494ec0037", "4b7abbe48", "5ec87619b", "5ef210047", "6287b8e19", "64a8687a6", "656312c2a", "79c7fe1af", "99197701e", "cfedb279a", "d03bca4d7", "d186d233d", "d9fe2cc7d", "da782bc93", "e3731bac5", "ff9f111bc"], "source_commits": ["148c6ee3b", "5ec87619b", "99197701e", "d03bca4d7", "d186d233d"], "source_entry_id": "9.6.24/changes/003", "db_id": "5c3b4b3569d336c307f9853e4ba2e79b", "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3", "relations": [{"rule": 2, "type": "equivalent", "target": "24e3cb4aab4eecfee00d72e62234bb5e", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}, {"rule": 2, "type": "equivalent", "target": "ad7b9b773525fc6f9c73b4c0868d1bfd", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}, {"rule": 2, "type": "equivalent", "target": "c1a28326739ee1ee5062116c49c68403", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}, {"rule": 2, "type": "equivalent", "target": "c98dc2039b40bbb53e21b4209589935a", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}, {"rule": 2, "type": "equivalent", "target": "ea07b13999ba4cf5a7ddb4c9e2a9676b", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ad7b9b773525fc6f9c73b4c0868d1bfd", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=14.1#14.1-0856b4e7843716b2", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "24e3cb4aab4eecfee00d72e62234bb5e", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=13.5#13.5-c9110b1993e1bb99", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "ea07b13999ba4cf5a7ddb4c9e2a9676b", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=12.9#12.9-9f693245653dd538", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "c1a28326739ee1ee5062116c49c68403", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=11.14#11.14-3a9d512092bb18b7", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "c98dc2039b40bbb53e21b4209589935a", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=10.19#10.19-3a9d512092bb18b7", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-35c0e2b5295528e8", "cves": [], "html": "<p>      修复 <code>CREATE INDEX CONCURRENTLY</code>，使其等待最新的预备事务（Andrey Borodin）\n     </p><p>      刚刚预备的事务所插入的行可能被遗漏在新索引之外，导致依赖该索引的查询漏掉这些行。此前针对此类问题的修复没有考虑到在\n      <code>CREATE INDEX CONCURRENTLY</code> 检查时尚在执行中的\n      <code>PREPARE TRANSACTION</code> 命令。与之前一样，在启用了预备事务的安装（<code>max_prepared_transactions</code> &gt; 0）中，如果并发构建索引时可能发生过此问题，建议对这些索引执行 REINDEX。\n     </p>", "text": "修复 CREATE INDEX CONCURRENTLY，使其等待最新的预备事务（Andrey Borodin） 刚刚预备的事务所插入的行可能被遗漏在新索引之外，导致依赖该索引的查询漏掉这些行。此前针对此类问题的修复没有考虑到在 CREATE INDEX CONCURRENTLY 检查时尚在执行中的 PREPARE TRANSACTION 命令。与之前一样，在启用了预备事务的安装（max_prepared_transactions > 0）中，如果并发构建索引时可能发生过此问题，建议对这些索引执行 REINDEX。", "title": "修复 CREATE INDEX CONCURRENTLY，使其等待最新的预备事务", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "a31d0601e33d34eb217d2bc86291b97ed5ff1cf2d54fa6063c51f4e00ecf6842", "section_path": ["变更"], "commit_groups": [["3cd9c3b92", "518493243", "560124a37", "a5b9a0000", "a9d0a5409", "df6158139", "fe5d44a1d"]], "identity_text": "Fix CREATE INDEX CONCURRENTLY to wait for the latest prepared transactions (Andrey Borodin) Rows inserted by just-prepared transactions might be omitted from the new index, causing queries relying on the index to miss such rows. The previous fix for this type of problem failed to account for PREPARE TRANSACTION commands that were still in progress when CREATE INDEX CONCURRENTLY checked for them. As before, in installations that have enabled prepared transactions (max_prepared_transactions > 0), it's recommended to reindex any concurrently-built indexes in case this problem occurred when they were built.", "commit_aliases": ["3cd9c3b92", "518493243", "560124a37", "a5b9a0000", "a9d0a5409", "df6158139", "fe5d44a1d"], "source_commits": ["518493243"], "source_entry_id": "9.6.24/changes/004", "db_id": "a7521435391a05f9d426c68191458f68", "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992", "relations": [{"rule": 2, "type": "equivalent", "target": "040865f25a25265641a31412866e5f31", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "326096d37352533242e31c4c828e4d26", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "4934600b9293e0f1f7f8f1e739af1119", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "6d5aa221c7204c3c6a575c9053ba8e7e", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "e351575955580f7ad7705e35eaa5b895", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4934600b9293e0f1f7f8f1e739af1119", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=14.1#14.1-7eff03da16984474", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "6d5aa221c7204c3c6a575c9053ba8e7e", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=13.5#13.5-a71726ee797fd35e", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "326096d37352533242e31c4c828e4d26", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=12.9#12.9-a8c2c5ba71fc66c2", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "e351575955580f7ad7705e35eaa5b895", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=11.14#11.14-746849b2def47430", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "040865f25a25265641a31412866e5f31", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=10.19#10.19-746849b2def47430", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-e449c3889eb37b5b", "cves": [], "html": "<p>      避免可能导致后端进程无法把新行的条目加入正在并发构建的索引的竞态条件（Noah Misch、Andrey Borodin）\n     </p><p>      虽然这种情况在实际中显然很少见，但它有可能影响任何使用\n      <code>CONCURRENTLY</code> 选项构建或重建的索引。建议对所有这类索引执行 REINDEX 以确保其正确。\n     </p>", "text": "避免可能导致后端进程无法把新行的条目加入正在并发构建的索引的竞态条件（Noah Misch、Andrey Borodin） 虽然这种情况在实际中显然很少见，但它有可能影响任何使用 CONCURRENTLY 选项构建或重建的索引。建议对所有这类索引执行 REINDEX 以确保其正确。", "title": "避免可能导致后端进程无法把新行的条目加入正在并发构建的索引的竞态条件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "1e4ed19a215e4742b38b45d6cf7aeb93b777a212efbe27a31fa1962367b3dc01", "section_path": ["变更"], "commit_groups": [["0869e53d3", "2e33b4359", "5141e471b", "db86746fd", "dde966efb", "e428699cb", "fdd965d07"]], "identity_text": "Avoid race condition that can cause backends to fail to add entries for new rows to an index being built concurrently (Noah Misch, Andrey Borodin) While it's apparently rare in the field, this case could potentially affect any index built or reindexed with the CONCURRENTLY option. It is recommended to reindex any such indexes to make sure they are correct.", "commit_aliases": ["0869e53d3", "2e33b4359", "5141e471b", "db86746fd", "dde966efb", "e428699cb", "fdd965d07"], "source_commits": ["e428699cb"], "source_entry_id": "9.6.24/changes/005", "db_id": "4c7c7a71adee68fc5ead28fb2dc5d91f", "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151", "relations": [{"rule": 2, "type": "equivalent", "target": "59041055425166897c686055f788de4b", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}, {"rule": 2, "type": "equivalent", "target": "6168ef64a6eecee152d01ec40c1261be", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}, {"rule": 2, "type": "equivalent", "target": "7a0f55e9a3fb1e1b8de014af30fa21e1", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}, {"rule": 2, "type": "equivalent", "target": "bfb5691124f6d19bcde0e0b89c3cf102", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}, {"rule": 2, "type": "equivalent", "target": "d7a3416e3d836824c570371f9fd6e77e", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d7a3416e3d836824c570371f9fd6e77e", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=14.1#14.1-a2238e4d68b7f1ba", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "bfb5691124f6d19bcde0e0b89c3cf102", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=13.5#13.5-25f23f4cfd45f2d8", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "6168ef64a6eecee152d01ec40c1261be", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=12.9#12.9-9a8b07cd53df6529", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "59041055425166897c686055f788de4b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=11.14#11.14-9970d7c0403f586b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "7a0f55e9a3fb1e1b8de014af30fa21e1", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=10.19#10.19-9970d7c0403f586b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-2a21bc572f40e144", "cves": [], "html": "<p>      修复 <code>float4</code> 和 <code>float8</code> 的哈希函数，使其对 NaN 产生一致的结果（Tom Lane）\n     </p><p>      由于 <span>PostgreSQL</span> 的浮点类型认为所有 NaN\n      彼此相等，哈希函数就必须对 IEEE 754 标准中所有表示 NaN 的位模式产生相同的哈希码。此前这一点没有做到，这意味着哈希索引和基于哈希的查询计划可能对非规范 NaN 值产生错误结果。（<code>'-NaN'::float8</code> 是在大多数机器上产生这种值的一种方式。）如果浮点列的哈希索引有可能包含这种值，建议对其执行\n      REINDEX。\n     </p>", "text": "修复 float4 和 float8 的哈希函数，使其对 NaN 产生一致的结果（Tom Lane） 由于 PostgreSQL 的浮点类型认为所有 NaN 彼此相等，哈希函数就必须对 IEEE 754 标准中所有表示 NaN 的位模式产生相同的哈希码。此前这一点没有做到，这意味着哈希索引和基于哈希的查询计划可能对非规范 NaN 值产生错误结果。（'-NaN'::float8 是在大多数机器上产生这种值的一种方式。）如果浮点列的哈希索引有可能包含这种值，建议对其执行 REINDEX。", "title": "修复 float4 和 float8 的哈希函数，使其对 NaN 产生一致的结果", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "cec5c955cd83867a2c6969d096797583c9671ce5ba4d49845405b71cd7daa1b5", "section_path": ["变更"], "commit_groups": [["08b96a2b5", "1fab33c0b", "2836d57e4", "9089f1543", "fd549145d"], ["23c6bc581", "2bb20e34c", "a3bf13673", "ad66373ea", "be2beadaf", "ce773f230", "dea212e24"], ["2c0dd669c", "70354dd56", "718978d9d", "8782a8452", "a5e8f7b37", "b30cc0fd6", "fd295d0c6"]], "identity_text": "Fix float4 and float8 hash functions to produce uniform results for NaNs (Tom Lane) Since PostgreSQL's floating-point types deem all NaNs to be equal, it's important for the hash functions to produce the same hash code for all bit-patterns that are NaNs according to the IEEE 754 standard. This failed to happen before, meaning that hash indexes and hash-based query plans might produce incorrect results for non-canonical NaN values. ('-NaN'::float8 is one way to produce such a value on most machines.) It is advisable to reindex hash indexes on floating-point columns, if there is any possibility that they might contain such values.", "commit_aliases": ["08b96a2b5", "1fab33c0b", "23c6bc581", "2836d57e4", "2bb20e34c", "2c0dd669c", "70354dd56", "718978d9d", "8782a8452", "9089f1543", "a3bf13673", "a5e8f7b37", "ad66373ea", "b30cc0fd6", "be2beadaf", "ce773f230", "dea212e24", "fd295d0c6", "fd549145d"], "source_commits": ["a5e8f7b37", "dea212e24", "fd549145d"], "source_entry_id": "9.6.24/changes/006", "db_id": "d85c062801bdaef5499a448bf5f441c1", "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9", "relations": [{"rule": 2, "type": "equivalent", "target": "2667b344491df1781fcab9e69afa3bb4", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}, {"rule": 2, "type": "equivalent", "target": "9b4b90715965ebe3a6b3002a3028a03d", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}, {"rule": 2, "type": "equivalent", "target": "b4a0bdf9f2a7379a065a113e6b85cf10", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}, {"rule": 2, "type": "equivalent", "target": "b8a49a4163bd28797df570a8bc632519", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b8a49a4163bd28797df570a8bc632519", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=13.5#13.5-f0c9db2b94e03c96", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "b4a0bdf9f2a7379a065a113e6b85cf10", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=12.9#12.9-cf2d607a598d13d4", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "2667b344491df1781fcab9e69afa3bb4", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=11.14#11.14-052ad8764346a5f0", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "9b4b90715965ebe3a6b3002a3028a03d", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=10.19#10.19-052ad8764346a5f0", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-d33a57ba63c7df07", "cves": [], "html": "<p>      防止 <code>wal_level</code> = <code>minimal</code> 时\n      <code>CREATE TABLESPACE</code> 崩溃恢复期间的数据丢失（Noah Misch）\n     </p><p>      如果服务器在 <code>CREATE TABLESPACE</code> 与下一个检查点之间崩溃，重放会完全移除新表空间目录的内容，并依赖后续的 WAL 重放来恢复该目录中的一切。这与跳过写 WAL 的优化（例如向刚创建的表执行\n      <code>COPY</code>）配合不佳。这类优化只在\n      <code>wal_level</code> 为 <code>minimal</code> 时应用，而 v10 及之后版本中这不再是默认值。\n     </p>", "text": "防止 wal_level = minimal 时 CREATE TABLESPACE 崩溃恢复期间的数据丢失（Noah Misch） 如果服务器在 CREATE TABLESPACE 与下一个检查点之间崩溃，重放会完全移除新表空间目录的内容，并依赖后续的 WAL 重放来恢复该目录中的一切。这与跳过写 WAL 的优化（例如向刚创建的表执行 COPY）配合不佳。这类优化只在 wal_level 为 minimal 时应用，而 v10 及之后版本中这不再是默认值。", "title": "防止 wal_level = minimal 时 CREATE TABLESPACE 崩溃恢复期间的数据丢失", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b9c626803531b10c255f8883cefca285595d8e0222a02163bc3fb6cb7a506d85", "section_path": ["变更"], "commit_groups": [["5513c09c8", "6ebd2426b", "978998dbd", "97ddda8a8", "a494f1023", "b18669f5e", "f11c1bb17"]], "identity_text": "Prevent data loss during crash recovery of CREATE TABLESPACE, when wal_level = minimal (Noah Misch) If the server crashed between CREATE TABLESPACE and the next checkpoint, replay would fully remove the contents of the new tablespace's directory, relying on subsequent WAL replay to restore everything within that directory. This interacts badly with optimizations that skip writing WAL (one example is COPY into a just-created table). Such optimizations are applied only when wal_level is minimal, which is not the default in v10 and later.", "commit_aliases": ["5513c09c8", "6ebd2426b", "978998dbd", "97ddda8a8", "a494f1023", "b18669f5e", "f11c1bb17"], "source_commits": ["978998dbd"], "source_entry_id": "9.6.24/changes/007", "db_id": "ef8cbd3b7156273f62645800ddb07f6e", "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4", "relations": [{"rule": 2, "type": "equivalent", "target": "4ba2c2dc5ff0a53e36d75daf831f45fd", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}, {"rule": 2, "type": "equivalent", "target": "6eeef9462a17f4bb0443c35da2454aca", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}, {"rule": 2, "type": "equivalent", "target": "82015ca1a84ddaeb224d28aa6ea66fbc", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}, {"rule": 2, "type": "equivalent", "target": "ba23d3fe41bb0c2419dc2b5eb063cd04", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6eeef9462a17f4bb0443c35da2454aca", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=13.5#13.5-dba64f5c7b076050", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "82015ca1a84ddaeb224d28aa6ea66fbc", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=12.9#12.9-19f919b00208693e", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "ba23d3fe41bb0c2419dc2b5eb063cd04", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=11.14#11.14-4180f06a01ef7687", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "4ba2c2dc5ff0a53e36d75daf831f45fd", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=10.19#10.19-4180f06a01ef7687", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-97a4177256564f2d", "cves": [], "html": "<p>      不要丢弃目标为未指定类型修饰符的同一类型的转换（Tom Lane）\n     </p><p>      例如，如果列 <code>f1</code> 的类型是\n      <code>numeric(18,3)</code>，分析器过去会以它不会产生运行时效果为由，直接丢弃 <code>f1::numeric</code> 这样的强制转换。这没错，但表达式呈现出的类型仍应被视为普通\n      <code>numeric</code>，而不是 <code>numeric(18,3)</code>。这对于正确解析更大的构造（例如递归 <code>UNION</code>）的类型很重要。\n     </p>", "text": "不要丢弃目标为未指定类型修饰符的同一类型的转换（Tom Lane） 例如，如果列 f1 的类型是 numeric(18,3)，分析器过去会以它不会产生运行时效果为由，直接丢弃 f1::numeric 这样的强制转换。这没错，但表达式呈现出的类型仍应被视为普通 numeric，而不是 numeric(18,3)。这对于正确解析更大的构造（例如递归 UNION）的类型很重要。", "title": "不要丢弃目标为未指定类型修饰符的同一类型的转换", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "2700aeb142e59cd2fc91d53c45c6bdea4d6b49efa519c042fb27d3d978fe398b", "section_path": ["变更"], "commit_groups": [["183b3aced", "5c056b0c2", "914e54501", "923b7efc2", "dede14399", "e5f6493e3", "f230614da"]], "identity_text": "Don't discard a cast to the same type with unspecified type modifier (Tom Lane) For example, if column f1 is of type numeric(18,3), the parser used to simply discard a cast like f1::numeric, on the grounds that it would have no run-time effect. That's true, but the exposed type of the expression should still be considered to be plain numeric, not numeric(18,3). This is important for correctly resolving the type of larger constructs, such as recursive UNIONs.", "commit_aliases": ["183b3aced", "5c056b0c2", "914e54501", "923b7efc2", "dede14399", "e5f6493e3", "f230614da"], "source_commits": ["183b3aced"], "source_entry_id": "9.6.24/changes/008", "db_id": "cab9f92a0cb611332bd820331c837ca3", "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf", "relations": [{"rule": 2, "type": "equivalent", "target": "3f481a78e4240bfe0f1b494d43b511f7", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}, {"rule": 2, "type": "equivalent", "target": "8c2dd14797b34df9a5afca02fff27580", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}, {"rule": 2, "type": "equivalent", "target": "c47bd83d49e6cf337d1e762efc2d200b", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}, {"rule": 2, "type": "equivalent", "target": "e2b3fcaa7b119d13883b60e8c073e671", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3f481a78e4240bfe0f1b494d43b511f7", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "不要丢弃未指定类型修饰符的同类型转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=13.5#13.5-7f47318a010ee73a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "8c2dd14797b34df9a5afca02fff27580", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "不要丢弃未指定类型修饰符的同类型转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=12.9#12.9-8d47e060f23f4654", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "e2b3fcaa7b119d13883b60e8c073e671", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "不要丢弃未指定类型修饰符的同类型转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=11.14#11.14-be49d2b4726f7bfe", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "c47bd83d49e6cf337d1e762efc2d200b", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "不要丢弃未指定类型修饰符的同类型转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=10.19#10.19-be49d2b4726f7bfe", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-09db23914eb48ed2", "cves": [], "html": "<p>      修复 numeric <code>power()</code> 在边界情况下精度丢失的问题（Dean Rasheed）\n     </p><p>      当第一个参数非常接近 1 时，结果可能不准确。\n     </p>", "text": "修复 numeric power() 在边界情况下精度丢失的问题（Dean Rasheed） 当第一个参数非常接近 1 时，结果可能不准确。", "title": "修复 numeric power() 在边界情况下精度丢失的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "fb6297767301aac235ef0ce5e35e8fe32e65e26f7dd526ecc9d18adb747a8985", "section_path": ["变更"], "commit_groups": [["0de8f9bc8", "4853baaac", "676218034", "8e26b868d", "9ab94ccb1", "b2a0f1673", "e54a758d2"]], "identity_text": "Fix corner-case loss of precision in numeric power() (Dean Rasheed) The result could be inaccurate when the first argument is very close to 1.", "commit_aliases": ["0de8f9bc8", "4853baaac", "676218034", "8e26b868d", "9ab94ccb1", "b2a0f1673", "e54a758d2"], "source_commits": ["0de8f9bc8"], "source_entry_id": "9.6.24/changes/009", "db_id": "b0151959d488107ae648f8f155484246", "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e", "relations": [{"rule": 2, "type": "equivalent", "target": "030a2046e24b898c1430427f489eb485", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}, {"rule": 2, "type": "equivalent", "target": "27be00824a0ba04d07e8342cfa7a32d4", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}, {"rule": 2, "type": "equivalent", "target": "6491fe99ed8928515123587023572951", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}, {"rule": 2, "type": "equivalent", "target": "6c00cd1a9719b140cfc2aef71bb278b7", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}, {"rule": 2, "type": "equivalent", "target": "cd933cbfcf6d477b9f3b6c5701011026", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "030a2046e24b898c1430427f489eb485", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 numeric power() 在边界情况下的精度损失", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=14.1#14.1-241308668d1bbfbf", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "6491fe99ed8928515123587023572951", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 numeric power() 在边界情况下的精度损失", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=13.5#13.5-673ee8b61e23f79f", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "6c00cd1a9719b140cfc2aef71bb278b7", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 numeric power() 在边界情况下的精度损失", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=12.9#12.9-549a5c9fbc154743", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "27be00824a0ba04d07e8342cfa7a32d4", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 numeric power() 在边界情况下的精度损失", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=11.14#11.14-6420565bfd2d0564", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "cd933cbfcf6d477b9f3b6c5701011026", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 numeric power() 在边界情况下的精度损失", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=10.19#10.19-6420565bfd2d0564", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-daa46723b2831e41", "cves": [], "html": "<p>      避免捕获圆括号位于 <code>{0}</code> 内部时引发的正则表达式错误（Tom Lane）\n     </p><p>      形如 <code>(.){0}...\\1</code> 的正则表达式会报<span>“<span>invalid backreference number</span>”</span>。其他正则引擎（例如 TCL）在这里不报错，因此这种模式可能在应用中被使用。\n     </p>", "text": "避免捕获圆括号位于 {0} 内部时引发的正则表达式错误（Tom Lane） 形如 (.){0}...\\1 的正则表达式会报“invalid backreference number”。其他正则引擎（例如 TCL）在这里不报错，因此这种模式可能在应用中被使用。", "title": "避免捕获圆括号位于 {0} 内部时引发的正则表达式错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "421dcafa072ec4886a6774ca38f68b75a455aabe38c0aeef410757069c8229bd", "section_path": ["变更"], "commit_groups": [["062c4c791", "071146184", "244dd7992", "3ebd32e70", "65dc30ced", "7e75fe390", "92620e82f"]], "identity_text": "Avoid regular expression errors with capturing parentheses inside {0} (Tom Lane) Regular expressions like (.){0}...\\1 drew invalid backreference number. Other regexp engines such as Perl don't complain, though, and for that matter ours doesn't either in some closely related cases. Worse, it could throw an assertion failure instead. Fix it so that no error is thrown and instead the back-reference is silently deemed to never match.", "commit_aliases": ["062c4c791", "071146184", "244dd7992", "3ebd32e70", "65dc30ced", "7e75fe390", "92620e82f"], "source_commits": ["7e75fe390"], "source_entry_id": "9.6.24/changes/010", "db_id": "0851f9c822462108d03b12b8a676de26", "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5", "relations": [{"rule": 2, "type": "equivalent", "target": "6137a626b6ebdca900a21e159963b0e1", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}, {"rule": 2, "type": "equivalent", "target": "a2b6b5277ba16d3a7ac847e98f5f3c6c", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}, {"rule": 2, "type": "equivalent", "target": "c8719989d0e5fd9df8c5fff17f6bb8d1", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}, {"rule": 2, "type": "equivalent", "target": "d7e27d3c44914e575f270c53720f8215", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6137a626b6ebdca900a21e159963b0e1", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=13.5#13.5-f946ab4d4a4c4562", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "a2b6b5277ba16d3a7ac847e98f5f3c6c", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=12.9#12.9-40472a515c7bfd50", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "c8719989d0e5fd9df8c5fff17f6bb8d1", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=11.14#11.14-de4981f6ecebcdbe", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "d7e27d3c44914e575f270c53720f8215", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=10.19#10.19-de4981f6ecebcdbe", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-646116d0661b60f3", "cves": [], "html": "<p>      防止正则表达式反向引用在不应匹配时有时仍匹配（Tom Lane）\n     </p><p>      正则引擎在拒绝部分匹配后，没有认真清除捕获圆括号的匹配数据。这可能使后面的反向引用在因缺少被引用者而应当失败的地方匹配成功。\n     </p>", "text": "防止正则表达式反向引用在不应匹配时有时仍匹配（Tom Lane） 正则引擎在拒绝部分匹配后，没有认真清除捕获圆括号的匹配数据。这可能使后面的反向引用在因缺少被引用者而应当失败的地方匹配成功。", "title": "防止正则表达式反向引用在不应匹配时有时仍匹配", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b703da5f441b3815e1185d0d018dbd677d200ef89997675b5f58bde49671e19c", "section_path": ["变更"], "commit_groups": [["08e080756", "779557bd2", "9a327179c", "9bbf6f734", "b9521a1f9", "d90e14414", "df87b7c44"]], "identity_text": "Prevent regular expression back-references from sometimes matching when they shouldn't (Tom Lane) The regexp engine was careless about clearing match data for capturing parentheses after rejecting a partial match. This could allow a later back-reference to match in places where it should fail for lack of a defined referent.", "commit_aliases": ["08e080756", "779557bd2", "9a327179c", "9bbf6f734", "b9521a1f9", "d90e14414", "df87b7c44"], "source_commits": ["d90e14414"], "source_entry_id": "9.6.24/changes/011", "db_id": "db98f99b0d1f6903dbfc5e3be4d5387c", "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a", "relations": [{"rule": 2, "type": "equivalent", "target": "210ecd50c09b115e6bd2066d62f997f8", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}, {"rule": 2, "type": "equivalent", "target": "5a3f5610fed82ab625e04525006e0607", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}, {"rule": 2, "type": "equivalent", "target": "dde6640a815b7ab63041151f90246968", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}, {"rule": 2, "type": "equivalent", "target": "fd9076c2292385c1b7f2613b7dd2add3", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "210ecd50c09b115e6bd2066d62f997f8", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=13.5#13.5-b4fd8549fa48ccc0", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "fd9076c2292385c1b7f2613b7dd2add3", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=12.9#12.9-d7f665f17d71c527", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "5a3f5610fed82ab625e04525006e0607", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=11.14#11.14-bbc027e805c07736", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "dde6640a815b7ab63041151f90246968", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=10.19#10.19-bbc027e805c07736", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-502282f690b48a6b", "cves": [], "html": "<p>      修复反向引用位于迭代节点内部时正则表达式的性能问题（Tom Lane）\n     </p><p>      不正确的回溯逻辑可能导致寻找匹配的时间呈指数增长。幸运的是，该问题在大多数情况下被其他优化所掩盖。\n     </p>", "text": "修复反向引用位于迭代节点内部时正则表达式的性能问题（Tom Lane） 不正确的回溯逻辑可能导致寻找匹配的时间呈指数增长。幸运的是，该问题在大多数情况下被其他优化所掩盖。", "title": "修复反向引用位于迭代节点内部时正则表达式的性能问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "ecb9fe4ff5547810477aba35802718029a2a93a5b91508592eb655076d738b81", "section_path": ["变更"], "commit_groups": [["57a2d4a1b", "9610852ab", "adbfde3db", "b30f7f399", "cafebd663", "e0f2acf26", "facce1da9"]], "identity_text": "Fix regular expression performance bug with back-references inside iteration nodes (Tom Lane) Incorrect back-tracking logic could result in exponential time spent looking for a match. Fortunately the problem is masked in most cases by other optimizations.", "commit_aliases": ["57a2d4a1b", "9610852ab", "adbfde3db", "b30f7f399", "cafebd663", "e0f2acf26", "facce1da9"], "source_commits": ["cafebd663"], "source_entry_id": "9.6.24/changes/012", "db_id": "42e028519e0ba2febe6342873cebc1f7", "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7", "relations": [{"rule": 2, "type": "equivalent", "target": "4fced0b9275aaf74765209b7f904b28c", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}, {"rule": 2, "type": "equivalent", "target": "688ccbc9cb0855becfc0adcfaf70a154", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}, {"rule": 2, "type": "equivalent", "target": "e2a9330ca2af18a79c0bbb6006eabfad", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}, {"rule": 2, "type": "equivalent", "target": "fcda11b7a0efa290fbe039d6e34ab27d", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fcda11b7a0efa290fbe039d6e34ab27d", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=13.5#13.5-327417f31c652548", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "688ccbc9cb0855becfc0adcfaf70a154", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=12.9#12.9-446f89346a6d1c1d", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "e2a9330ca2af18a79c0bbb6006eabfad", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=11.14#11.14-acfd58a3252d574e", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "4fced0b9275aaf74765209b7f904b28c", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=10.19#10.19-acfd58a3252d574e", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-a39c99bea3f06bbd", "cves": [], "html": "<p>      修复对 <code>time with time zone</code> 值应用 <code>AT TIME\n      ZONE</code> 时结果错误的问题（Tom Lane）\n     </p><p>      如果目标时区是由动态时区缩写（即定义为等价于完整时区名而非固定 UTC\n      偏移量的缩写）指定的，则结果是错误的。\n     </p>", "text": "修复对 time with time zone 值应用 AT TIME ZONE 时结果错误的问题（Tom Lane） 如果目标时区是由动态时区缩写（即定义为等价于完整时区名而非固定 UTC 偏移量的缩写）指定的，则结果是错误的。", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时结果错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "6bdfa95485870ff0e928254fc2740fbd86101d1127f76dd8c99b267540a2886e", "section_path": ["变更"], "commit_groups": [["5907c3818", "599c73a91", "90b4647f6", "b28c862a6", "d8a266c5e", "eb3c8d248"]], "identity_text": "Fix incorrect results from AT TIME ZONE applied to a time with time zone value (Tom Lane) The results were incorrect if the target time zone was specified by a dynamic timezone abbreviation (that is, one that is defined as equivalent to a full time zone name, rather than a fixed UTC offset).", "commit_aliases": ["5907c3818", "599c73a91", "90b4647f6", "b28c862a6", "d8a266c5e", "eb3c8d248"], "source_commits": ["5907c3818"], "source_entry_id": "9.6.24/changes/013", "db_id": "1cbe7ac9a3e48112574b93b9c4337936", "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce", "relations": [{"rule": 2, "type": "equivalent", "target": "02ca028508a70046df9141999d0af648", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}, {"rule": 2, "type": "equivalent", "target": "1d98d253603f63b72170b1a21fa26ecb", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}, {"rule": 2, "type": "equivalent", "target": "873842f3b76c836d3d0b43d915bf20ff", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}, {"rule": 2, "type": "equivalent", "target": "fa17b8425ecd09a5d4c77915aacbe62f", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d98d253603f63b72170b1a21fa26ecb", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=13.5#13.5-5852d98035c78c4e", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "873842f3b76c836d3d0b43d915bf20ff", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=12.9#12.9-79e3fbdf7c3057f9", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "fa17b8425ecd09a5d4c77915aacbe62f", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=11.14#11.14-e53c6799b48f5e3b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "02ca028508a70046df9141999d0af648", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=10.19#10.19-e53c6799b48f5e3b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-a6915ef6bfbcb58d", "cves": [], "html": "<p>      修复事务在导出快照后失败时的正确清理（Dilip Kumar）\n     </p><p>      这一疏漏只有当同一会话再次尝试导出快照时才会造成问题。最可能的场景是创建一个复制槽（随后回滚），然后再创建另一个复制槽。\n     </p>", "text": "修复事务在导出快照后失败时的正确清理（Dilip Kumar） 这一疏漏只有当同一会话再次尝试导出快照时才会造成问题。最可能的场景是创建一个复制槽（随后回滚），然后再创建另一个复制槽。", "title": "修复事务在导出快照后失败时的正确清理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "8787c9584db1a5273df78bb34d313c22d73698b97b885af9beb032c93dd1cb93", "section_path": ["变更"], "commit_groups": [["409f9ca44", "506aa1f71", "5b353aaff", "8f4fe8d7f", "a207b8521", "d1a6a08df", "f49bf8263"]], "identity_text": "Clean up correctly if a transaction fails after exporting its snapshot (Dilip Kumar) This oversight would only cause a problem if the same session attempted to export a snapshot again. The most likely scenario for that is creation of a replication slot (followed by rollback) and then creation of another replication slot.", "commit_aliases": ["409f9ca44", "506aa1f71", "5b353aaff", "8f4fe8d7f", "a207b8521", "d1a6a08df", "f49bf8263"], "source_commits": ["f49bf8263"], "source_entry_id": "9.6.24/changes/014", "db_id": "00ed973f66eee22cad354bd48bbcaac9", "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4", "relations": [{"rule": 2, "type": "equivalent", "target": "2a6d4610a6f5aae215be59292ae31f23", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}, {"rule": 2, "type": "equivalent", "target": "2cdb632e8ea189be5b2edfd5de9df713", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}, {"rule": 2, "type": "equivalent", "target": "7fd74714d89c82665748bdf2f6d7574b", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}, {"rule": 2, "type": "equivalent", "target": "cea2acf8b2beaa8c1eb10702b8eff1a0", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}, {"rule": 2, "type": "equivalent", "target": "d84d87ff6a70c047ba38c6f69e2653cd", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2a6d4610a6f5aae215be59292ae31f23", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保在事务导出快照后失败时正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=14.1#14.1-3e0b45737d95faa1", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "d84d87ff6a70c047ba38c6f69e2653cd", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保在事务导出快照后失败时正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=13.5#13.5-321ab322cdafb3a7", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "cea2acf8b2beaa8c1eb10702b8eff1a0", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保在事务导出快照后失败时正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=12.9#12.9-fa60923e993daf99", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "7fd74714d89c82665748bdf2f6d7574b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保在事务导出快照后失败时正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=11.14#11.14-e5ef99ca1548f8a2", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "2cdb632e8ea189be5b2edfd5de9df713", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保在事务导出快照后失败时正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=10.19#10.19-e5ef99ca1548f8a2", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-36216625593cacab", "cves": [], "html": "<p>      防止备库服务器上溢出子事务追踪的回卷（Kyotaro Horiguchi、Alexander Korotkov）\n     </p><p>      这一疏漏可能导致备库服务器显著的性能退化（表现为过多的 SubtransSLRU\n      流量）。\n     </p>", "text": "防止备库服务器上溢出子事务追踪的回卷（Kyotaro Horiguchi、Alexander Korotkov） 这一疏漏可能导致备库服务器显著的性能退化（表现为过多的 SubtransSLRU 流量）。", "title": "防止备库服务器上溢出子事务追踪的回卷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "6abd1e3c7f822d9f1b2794cec62735763771c547b0192ded6977190711009215", "section_path": ["变更"], "commit_groups": [["05e6e78c1", "691c0df73", "7381b79ad", "774d00573", "8f779a1a3", "b0f6bd48f", "e1fee28a0"]], "identity_text": "Prevent wraparound of overflowed-subtransaction tracking on standby servers (Kyotaro Horiguchi, Alexander Korotkov) This oversight could cause significant performance degradation (manifesting as excessive SubtransSLRU traffic) on standby servers.", "commit_aliases": ["05e6e78c1", "691c0df73", "7381b79ad", "774d00573", "8f779a1a3", "b0f6bd48f", "e1fee28a0"], "source_commits": ["7381b79ad"], "source_entry_id": "9.6.24/changes/015", "db_id": "8c7aa33bdc5e564c16f43b906dca889e", "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9", "relations": [{"rule": 2, "type": "equivalent", "target": "1b931f8fd7d6f996bd4ac4bdfc4c5936", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}}, {"rule": 2, "type": "equivalent", "target": "3a3a1a407a6152538920dd69792d6335", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}}, {"rule": 2, "type": "equivalent", "target": "5bf52cc052839206430aa6e4a5ab2257", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}}, {"rule": 2, "type": "equivalent", "target": "681fa4ef8a9b0916a317639eff1339e9", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}}, {"rule": 2, "type": "equivalent", "target": "f5f12fd70da2e82aa43c21d25bf6de44", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1b931f8fd7d6f996bd4ac4bdfc4c5936", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "防止备库上溢出子事务跟踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=14.1#14.1-145cfc88539998a5", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "3a3a1a407a6152538920dd69792d6335", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "防止备库上溢出子事务跟踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=13.5#13.5-6faf1363b8eb1c6a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "5bf52cc052839206430aa6e4a5ab2257", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "防止备库上溢出子事务跟踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=12.9#12.9-730d0abed4e714a4", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "f5f12fd70da2e82aa43c21d25bf6de44", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "防止备库上溢出子事务跟踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=11.14#11.14-206ba2128f9d77b0", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "681fa4ef8a9b0916a317639eff1339e9", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "防止备库上溢出子事务跟踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=10.19#10.19-206ba2128f9d77b0", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-249aeaa2b0e37e14", "cves": [], "html": "<p>      确保在备库服务器提升期间正确统计预备事务（Michael Paquier、Andres Freund）\n     </p><p>      在一个狭窄的时间窗口内，预备事务可能被并发运行会话所拍的快照遗漏。如果该会话随后使用该快照执行数据更新，可能导致错误结果或数据损坏。\n     </p>", "text": "确保在备库服务器提升期间正确统计预备事务（Michael Paquier、Andres Freund） 在一个狭窄的时间窗口内，预备事务可能被并发运行会话所拍的快照遗漏。如果该会话随后使用该快照执行数据更新，可能导致错误结果或数据损坏。", "title": "确保在备库服务器提升期间正确统计预备事务", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "e6cae4f13dd9878532e92dc57ef34923913ffada9b05f4c37b4b1c6b3d52051a", "section_path": ["变更"], "commit_groups": [["0a561d4d0", "194e535a0", "3c3f118d5", "828f7f000", "8a4237908", "8a6a1fe07", "e2b2a9e1c"]], "identity_text": "Ensure that prepared transactions are properly accounted for during promotion of a standby server (Michael Paquier, Andres Freund) There was a narrow window where a prepared transaction could be omitted from a snapshot taken by a concurrently-running session. If that session then used the snapshot to perform data updates, erroneous results or data corruption could occur.", "commit_aliases": ["0a561d4d0", "194e535a0", "3c3f118d5", "828f7f000", "8a4237908", "8a6a1fe07", "e2b2a9e1c"], "source_commits": ["e2b2a9e1c"], "source_entry_id": "9.6.24/changes/016", "db_id": "7b6a64f86be7d64af165898c7392b416", "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4", "relations": [{"rule": 2, "type": "equivalent", "target": "019600634a5a25a4a59c9231fe378ad5", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}, {"rule": 2, "type": "equivalent", "target": "477487d44f47e562b13d9d7f0906e5d9", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}, {"rule": 2, "type": "equivalent", "target": "574b9aff44b85a3689d0b0c052e479e2", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}, {"rule": 2, "type": "equivalent", "target": "6412f7045465fdb83a2ae55bfabca6d4", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}, {"rule": 2, "type": "equivalent", "target": "853b4815acddfd292720df231fbf9390", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "477487d44f47e562b13d9d7f0906e5d9", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=14.1#14.1-1a51cb18db7c3adb", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "019600634a5a25a4a59c9231fe378ad5", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=13.5#13.5-80dc5538a590895d", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "574b9aff44b85a3689d0b0c052e479e2", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=12.9#12.9-878b7036fa7841c3", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "853b4815acddfd292720df231fbf9390", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=11.14#11.14-061a5ba9c6e25e88", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "6412f7045465fdb83a2ae55bfabca6d4", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=10.19#10.19-061a5ba9c6e25e88", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-e2e50c835079a809", "cves": [], "html": "<p>      修复对已增长到最大允许长度的关系的检测（Tom Lane）\n     </p><p>      把表或索引扩展到 2^32-1 块上限的尝试会被拒绝，但拒绝得不够及时，未能阻止不一致的内部状态被创建。\n     </p>", "text": "修复对已增长到最大允许长度的关系的检测（Tom Lane） 把表或索引扩展到 2^32-1 块上限的尝试会被拒绝，但拒绝得不够及时，未能阻止不一致的内部状态被创建。", "title": "修复对已增长到最大允许长度的关系的检测", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "47d666192e00d3d171274f1c607b8c3cdf5a870122dd953b62c48dd88db0de7a", "section_path": ["变更"], "commit_groups": [["04118de78", "1a23b669d", "7430c7742", "8481f9989", "a7a73ce30", "ca1dd6234", "cc4de2bba"]], "identity_text": "Fix detection of a relation that has grown to the maximum allowed length (Tom Lane) An attempt to extend a table or index past the limit of 2^32-1 blocks was rejected, but not soon enough to prevent inconsistent internal state from being created.", "commit_aliases": ["04118de78", "1a23b669d", "7430c7742", "8481f9989", "a7a73ce30", "ca1dd6234", "cc4de2bba"], "source_commits": ["cc4de2bba"], "source_entry_id": "9.6.24/changes/017", "db_id": "68b7bde5631885e9119726942741ac7c", "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0", "relations": [{"rule": 2, "type": "equivalent", "target": "02620a82d9fe5a2e97b9aa2ab6ca0618", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}, {"rule": 2, "type": "equivalent", "target": "0cb33bedf43543570b1af1b969554aa1", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}, {"rule": 2, "type": "equivalent", "target": "4a9be823ec1a5ece64a803992b674622", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}, {"rule": 2, "type": "equivalent", "target": "9ad8ebd9b82c34b47199eabd351bcb79", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ad8ebd9b82c34b47199eabd351bcb79", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=13.5#13.5-8f5bff695c654adf", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "0cb33bedf43543570b1af1b969554aa1", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=12.9#12.9-cb626cd9aff10613", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "02620a82d9fe5a2e97b9aa2ab6ca0618", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=11.14#11.14-e2e50c835079a809", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "4a9be823ec1a5ece64a803992b674622", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=10.19#10.19-e2e50c835079a809", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-9d403b0de29d5732", "cves": [], "html": "<p>      在扩展使用 <code>DO INSTEAD</code> 的规则时，正确跟踪存在数据修改 CTE 的情况（Greg Nancarrow、Tom Lane）\n     </p><p>      此前未能做到这一点可能导致诸如不安全地选择并行计划之类的问题。\n     </p>", "text": "在扩展使用 DO INSTEAD 的规则时，正确跟踪存在数据修改 CTE 的情况（Greg Nancarrow、Tom Lane） 此前未能做到这一点可能导致诸如不安全地选择并行计划之类的问题。", "title": "在扩展使用 DO INSTEAD 的规则时，正确跟踪存在数据修改 CTE 的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "9cfb6796b69dbe171fd42398ae2e81e9f9a8b2555d06dc63783fc8464ad2062f", "section_path": ["变更"], "commit_groups": [["03d01d746", "1fedbcc7a", "362e2dcc4", "595ab8a54", "882b7e728", "9de082399", "cbba6ba3a"]], "identity_text": "Correctly track the presence of data-modifying CTEs when expanding a DO INSTEAD rule (Greg Nancarrow, Tom Lane) The previous failure to do this could lead to problems such as unsafely choosing a parallel plan.", "commit_aliases": ["03d01d746", "1fedbcc7a", "362e2dcc4", "595ab8a54", "882b7e728", "9de082399", "cbba6ba3a"], "source_commits": ["595ab8a54"], "source_entry_id": "9.6.24/changes/018", "db_id": "0a4376a7c1aa202e64b47d72e3255bb3", "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf", "relations": [{"rule": 2, "type": "equivalent", "target": "564803e6c1db05d5ea401ac3487524e9", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}, {"rule": 2, "type": "equivalent", "target": "909e1f16e1911b23c664098f46c319d9", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}, {"rule": 2, "type": "equivalent", "target": "97b2e67152c79cd5cf728020b5a4bfc9", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}, {"rule": 2, "type": "equivalent", "target": "ea32fbf02af669812d61b1a2b53dfd4c", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ea32fbf02af669812d61b1a2b53dfd4c", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=13.5#13.5-ec01a885700fdb23", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "97b2e67152c79cd5cf728020b5a4bfc9", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=12.9#12.9-d816ab86053cc740", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "564803e6c1db05d5ea401ac3487524e9", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=11.14#11.14-3cecd7d848d6bee1", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "909e1f16e1911b23c664098f46c319d9", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=10.19#10.19-3cecd7d848d6bee1", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-54eb6f8205fc3dd0", "cves": [], "html": "<p>      确保 walreceiver 进程在退出之前创建所有必需的归档通知文件（Fujii Masao）\n     </p><p>      如果 walreceiver 恰好在 WAL 段边界处退出，它不会为最后接收的段创建通知文件，从而延迟了该段在备库上的归档。\n     </p>", "text": "确保 walreceiver 进程在退出之前创建所有必需的归档通知文件（Fujii Masao） 如果 walreceiver 恰好在 WAL 段边界处退出，它不会为最后接收的段创建通知文件，从而延迟了该段在备库上的归档。", "title": "确保 walreceiver 进程在退出之前创建所有必需的归档通知文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b1bde61d84823f610c86ca56c8ef1e60a6c31b91a683bcbd3f0e268b384f5e8f", "section_path": ["变更"], "commit_groups": [["466535254", "596ba75cb", "61e2aa2db", "aacb3cfaf", "b5ec22bf5", "dd9b3fced", "f77489046"]], "identity_text": "Ensure that walreceiver processes create all required archive notification files before exiting (Fujii Masao) If a walreceiver exited exactly at a WAL segment boundary, it failed to make a notification file for the last-received segment, thus delaying archiving of that segment on the standby.", "commit_aliases": ["466535254", "596ba75cb", "61e2aa2db", "aacb3cfaf", "b5ec22bf5", "dd9b3fced", "f77489046"], "source_commits": ["61e2aa2db"], "source_entry_id": "9.6.24/changes/019", "db_id": "60eb726588a2a97005b0cbf8a9144c09", "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773", "relations": [{"rule": 2, "type": "equivalent", "target": "05e4a5dd4548e1babf402942954f6aec", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}, {"rule": 2, "type": "equivalent", "target": "570e6a7b74301e76effec9d7207286b2", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}, {"rule": 2, "type": "equivalent", "target": "5ecd1622713295afe5325e4bcfead745", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}, {"rule": 2, "type": "equivalent", "target": "65e3b6d584270d4556d9c65e10b466b0", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ecd1622713295afe5325e4bcfead745", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=13.5#13.5-8d321f3fc937a37f", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "05e4a5dd4548e1babf402942954f6aec", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=12.9#12.9-d6f6a0f8947bc443", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "65e3b6d584270d4556d9c65e10b466b0", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=11.14#11.14-e9ef48ebd8ccbc08", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "570e6a7b74301e76effec9d7207286b2", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=10.19#10.19-e9ef48ebd8ccbc08", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-a6acd6c6780525b2", "cves": [], "html": "<p>      避免在使用 <code>SELECT FOR UPDATE</code> 的规则中尝试锁定\n      <code>OLD</code> 和 <code>NEW</code> 伪关系（Masahiko Sawada、Tom Lane）\n     </p>", "text": "避免在使用 SELECT FOR UPDATE 的规则中尝试锁定 OLD 和 NEW 伪关系（Masahiko Sawada、Tom Lane）", "title": "避免在使用 SELECT FOR UPDATE 的规则中尝试锁定 OLD 和 NEW 伪关系", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "431ed2e5964e1204881ab85e0fbe645f5aac4eb7f3f825839cbbc28d4736b248", "section_path": ["变更"], "commit_groups": [["0c13ee198", "2739a2810", "464900393", "7fa367d96", "8d2d6ec77", "cc7fae5c2", "fbc1eed8a"]], "identity_text": "Avoid trying to lock the OLD and NEW pseudo-relations in a rule that uses SELECT FOR UPDATE (Masahiko Sawada, Tom Lane)", "commit_aliases": ["0c13ee198", "2739a2810", "464900393", "7fa367d96", "8d2d6ec77", "cc7fae5c2", "fbc1eed8a"], "source_commits": ["cc7fae5c2"], "source_entry_id": "9.6.24/changes/020", "db_id": "6c7d070586d47d9e4ac0a14cda01b87f", "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7", "relations": [{"rule": 2, "type": "equivalent", "target": "14c7b3a2b8155f7e2820c0cc1e8dd18a", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}, {"rule": 2, "type": "equivalent", "target": "28165fbc6b3b9618c7b7111677dd97f7", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}, {"rule": 2, "type": "equivalent", "target": "39462c99ee92e6fbf700e8275c02d5f8", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}, {"rule": 2, "type": "equivalent", "target": "4f1b7383a2ae9a4d9d4ff94f8efcf494", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "39462c99ee92e6fbf700e8275c02d5f8", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=13.5#13.5-318f460d557a7048", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "4f1b7383a2ae9a4d9d4ff94f8efcf494", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=12.9#12.9-56669339e9e4b841", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "14c7b3a2b8155f7e2820c0cc1e8dd18a", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=11.14#11.14-935e0586b7b3777a", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "28165fbc6b3b9618c7b7111677dd97f7", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=10.19#10.19-935e0586b7b3777a", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-106e9180970765ca", "cves": [], "html": "<p>      修复分析器对聚合 <code>FILTER</code> 子句的处理（Tom Lane）\n     </p><p>      如果 <code>FILTER</code> 表达式是一个普通的布尔列，聚合的语义层级可能被错误判定，导致不符合规范的行为。如果\n      <code>FILTER</code> 表达式本身是返回布尔的聚合，本应抛出错误却没有抛出，很可能导致执行时崩溃。\n     </p>", "text": "修复分析器对聚合 FILTER 子句的处理（Tom Lane） 如果 FILTER 表达式是一个普通的布尔列，聚合的语义层级可能被错误判定，导致不符合规范的行为。如果 FILTER 表达式本身是返回布尔的聚合，本应抛出错误却没有抛出，很可能导致执行时崩溃。", "title": "修复分析器对聚合 FILTER 子句的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "c60f693c94f32a5042c233fd4388dbc49e2869161c7d5cee5e815c88005a8c65", "section_path": ["变更"], "commit_groups": [["2313dda9d", "61f9dae2c", "82ad7ecb4", "a65319f09", "c09f56fed", "eb2f59b34", "ecd4dd9f1"]], "identity_text": "Fix parser's processing of aggregate FILTER clauses (Tom Lane) If the FILTER expression is a plain boolean column, the semantic level of the aggregate could be mis-determined, leading to not-per-spec behavior. If the FILTER expression is itself a boolean-returning aggregate, an error should be thrown but was not, likely resulting in a crash at execution.", "commit_aliases": ["2313dda9d", "61f9dae2c", "82ad7ecb4", "a65319f09", "c09f56fed", "eb2f59b34", "ecd4dd9f1"], "source_commits": ["c09f56fed"], "source_entry_id": "9.6.24/changes/021", "db_id": "f45531e529dca8d85db9a46a9cbf39e3", "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d", "relations": [{"rule": 2, "type": "equivalent", "target": "37ee40c887d80b0d9873d3eab1f7a09e", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}, {"rule": 2, "type": "equivalent", "target": "60b81e312dd395c4c302758f033ae357", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}, {"rule": 2, "type": "equivalent", "target": "6dc94628aca27ac286ebe39f0461c9ff", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}, {"rule": 2, "type": "equivalent", "target": "bab3c9495a1ecfddebc528e663260838", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "60b81e312dd395c4c302758f033ae357", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复解析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=13.5#13.5-41bd70ef2b3eb66d", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "37ee40c887d80b0d9873d3eab1f7a09e", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复解析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=12.9#12.9-3b5a8c412fbb65ad", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "bab3c9495a1ecfddebc528e663260838", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复解析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=11.14#11.14-409f408bb5bfd268", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "6dc94628aca27ac286ebe39f0461c9ff", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复解析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=10.19#10.19-409f408bb5bfd268", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-2be55d1a273bcd84", "cves": [], "html": "<p>      避免删除一个拥有正被并发删除的对象的角色时出现空指针解引用崩溃（Álvaro Herrera）\n     </p>", "text": "避免删除一个拥有正被并发删除的对象的角色时出现空指针解引用崩溃（Álvaro Herrera）", "title": "避免删除一个拥有正被并发删除的对象的角色时出现空指针解引用崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b1c03fdc0a36f21c537cc7bcf2e9afeffc7d51cb62c26b22540340a21e01e159", "section_path": ["变更"], "commit_groups": [["02e20bb2d", "3eff168a2", "58b600f64", "92224e470", "bf5cdcfd5", "d74b54b3d", "e0eaeafd6"]], "identity_text": "Avoid null-pointer-dereference crash when dropping a role that owns objects being dropped concurrently (Álvaro Herrera)", "commit_aliases": ["02e20bb2d", "3eff168a2", "58b600f64", "92224e470", "bf5cdcfd5", "d74b54b3d", "e0eaeafd6"], "source_commits": ["e0eaeafd6"], "source_entry_id": "9.6.24/changes/022", "db_id": "25a21cb05a216d3801e7ffc008cd7002", "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b", "relations": [{"rule": 2, "type": "equivalent", "target": "35dd58209a52297928c71f083a337bce", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}, {"rule": 2, "type": "equivalent", "target": "6bf63f202bb26893963338516a1d04ce", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}, {"rule": 2, "type": "equivalent", "target": "7b0e5e8f2def578a594266b2344df121", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}, {"rule": 2, "type": "equivalent", "target": "8d7f7c8ab514055c493684736147c915", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}, {"rule": 2, "type": "equivalent", "target": "d415d54f26d7e6277ddb652d13db5914", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8d7f7c8ab514055c493684736147c915", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=14.1#14.1-fe52717b9f6be91d", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "d415d54f26d7e6277ddb652d13db5914", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=13.5#13.5-96d1210694672ff3", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "7b0e5e8f2def578a594266b2344df121", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=12.9#12.9-ac45c79408354298", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "6bf63f202bb26893963338516a1d04ce", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=11.14#11.14-ab408a77b5206eef", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "35dd58209a52297928c71f083a337bce", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=10.19#10.19-ab408a77b5206eef", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-9fc13e6681b127f7", "cves": [], "html": "<p>      防止 <code>lo_export()</code> 或相关函数失败时出现<span>“<span>snapshot reference leak</span>”</span>警告（Heikki Linnakangas）\n     </p>", "text": "防止 lo_export() 或相关函数失败时出现“snapshot reference leak”警告（Heikki Linnakangas）", "title": "防止 lo_export() 或相关函数失败时出现“snapshot reference leak”警告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "dfdbe98cf22a514a326e61bd2f02ebd81e964d0ceea922739817a28547ee7318", "section_path": ["变更"], "commit_groups": [["07070c008", "11a399f9c", "4ebd740cd", "6b1b405eb", "6bf00da11", "7b55bb892", "8f32afee0"], ["245799d39", "71aeaf245", "7dc9a310e", "b110af5f7", "b7299b664", "d5ab0681b", "f4e3b6271"]], "identity_text": "Prevent snapshot reference leak warning when lo_export() or a related function fails (Heikki Linnakangas)", "commit_aliases": ["07070c008", "11a399f9c", "245799d39", "4ebd740cd", "6b1b405eb", "6bf00da11", "71aeaf245", "7b55bb892", "7dc9a310e", "8f32afee0", "b110af5f7", "b7299b664", "d5ab0681b", "f4e3b6271"], "source_commits": ["71aeaf245", "8f32afee0"], "source_entry_id": "9.6.24/changes/023", "db_id": "8302c84eb949151a3485fe7a6a54d4ae", "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd", "relations": [{"rule": 2, "type": "equivalent", "target": "54f8f4cdbbab4d6977845dbc56c9ce67", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}}, {"rule": 2, "type": "equivalent", "target": "a8e81424cbf8168a7dabda0ea3ac2534", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}}, {"rule": 2, "type": "equivalent", "target": "c0209306d827d4e581002c9286a68081", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}}, {"rule": 2, "type": "equivalent", "target": "ee98526122ea424b62127fa9f635b2ca", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}}, {"rule": 2, "type": "equivalent", "target": "f00dbd2e17738a4cfc8eef18b79a1dd9", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "54f8f4cdbbab4d6977845dbc56c9ce67", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=14.1#14.1-32c0f62eebd60c3a", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "c0209306d827d4e581002c9286a68081", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=13.5#13.5-e1d4ba1245f74980", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "ee98526122ea424b62127fa9f635b2ca", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=12.9#12.9-e94010d773a8344b", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "a8e81424cbf8168a7dabda0ea3ac2534", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=11.14#11.14-49b17c1993933e28", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "f00dbd2e17738a4cfc8eef18b79a1dd9", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=10.19#10.19-49b17c1993933e28", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-505dc93f466cfacb", "cves": [], "html": "<p>      确保 SP-GiST 索引的扫描被计入统计视图（Tom Lane）\n     </p><p>      SP-GiST 代码遗漏了递增索引扫描次数计数器的工作，不过逐元组计数器是正确前进的。\n     </p>", "text": "确保 SP-GiST 索引的扫描被计入统计视图（Tom Lane） SP-GiST 代码遗漏了递增索引扫描次数计数器的工作，不过逐元组计数器是正确前进的。", "title": "确保 SP-GiST 索引的扫描被计入统计视图", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "2fbc6acb4de64497a61114023553b3fe5933f9f4a917b5e7603043fa2cee9db0", "section_path": ["变更"], "commit_groups": [["187b5fea9", "3778bcb39", "6a787c83c", "7c1b0f4c3", "9e959f7ed", "dbb239d51", "e84d4810c"]], "identity_text": "Ensure that scans of SP-GiST indexes are counted in the statistics views (Tom Lane) Incrementing the number-of-index-scans counter was overlooked in the SP-GiST code, although per-tuple counters were advanced correctly.", "commit_aliases": ["187b5fea9", "3778bcb39", "6a787c83c", "7c1b0f4c3", "9e959f7ed", "dbb239d51", "e84d4810c"], "source_commits": ["9e959f7ed"], "source_entry_id": "9.6.24/changes/024", "db_id": "1ed381a09ab2673593aaf6a25c574db4", "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564", "relations": [{"rule": 2, "type": "equivalent", "target": "14b9ceb5caddd235bba393b75ded5652", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}, {"rule": 2, "type": "equivalent", "target": "877dd2a0338013867a07285282d7baf5", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}, {"rule": 2, "type": "equivalent", "target": "ce05ddfd43e3231b0aee2bf7ec3320dd", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}, {"rule": 2, "type": "equivalent", "target": "fb5ead0cfbecc7b79b44473cbaec8eda", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ce05ddfd43e3231b0aee2bf7ec3320dd", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=13.5#13.5-356c04282e59b8ee", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "877dd2a0338013867a07285282d7baf5", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=12.9#12.9-4acf5088ea8dfabe", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "14b9ceb5caddd235bba393b75ded5652", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=11.14#11.14-e97fe7a665dd0f08", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "fb5ead0cfbecc7b79b44473cbaec8eda", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=10.19#10.19-e97fe7a665dd0f08", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-5cb3861d83c7e02e", "cves": [], "html": "<p>      如果恢复期间更改了 <code>recovery_min_apply_delay</code>，重新计算相关的等待间隔（Soumyadeep Chakraborty、Ashwin Agrawal）\n     </p>", "text": "如果恢复期间更改了 recovery_min_apply_delay，重新计算相关的等待间隔（Soumyadeep Chakraborty、Ashwin Agrawal）", "title": "如果恢复期间更改了 recovery_min_apply_delay，重新计算相关的等待间隔", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "86138c6b5505b73d2de83274fa68aad4948b740e38ae9c0e819372d0b3312614", "section_path": ["变更"], "commit_groups": [["024fd44e0", "7f0873f32", "84c1bac57", "942416f4b", "d392e86fa", "e4ba1005c", "f83d80ea1"]], "identity_text": "Recalculate relevant wait intervals if recovery_min_apply_delay is changed during recovery (Soumyadeep Chakraborty, Ashwin Agrawal)", "commit_aliases": ["024fd44e0", "7f0873f32", "84c1bac57", "942416f4b", "d392e86fa", "e4ba1005c", "f83d80ea1"], "source_commits": ["942416f4b"], "source_entry_id": "9.6.24/changes/025", "db_id": "6fac8b5c87112931307fa495a23cc0e5", "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe", "relations": [{"rule": 2, "type": "equivalent", "target": "082bad8bae7c912abd9bc380d3c50dd7", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}, {"rule": 2, "type": "equivalent", "target": "3a609503e41f557ed818fd1a05265e4b", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}, {"rule": 2, "type": "equivalent", "target": "5ceda1b54fe8a64600b433abac805875", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}, {"rule": 2, "type": "equivalent", "target": "b25321b0e53c0862f3d2d36d1eaf0adb", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ceda1b54fe8a64600b433abac805875", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=13.5#13.5-95e96eb9b06aa0aa", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "082bad8bae7c912abd9bc380d3c50dd7", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=12.9#12.9-024ce04e4ac42538", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "3a609503e41f557ed818fd1a05265e4b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=11.14#11.14-ab35cad87ebb872b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "b25321b0e53c0862f3d2d36d1eaf0adb", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=10.19#10.19-ab35cad87ebb872b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-fffabbaca1a8c849", "cves": [], "html": "<p>      修复 <span>ecpg</span> 在建立连接期间\n      <code>malloc()</code> 失败后不能正确恢复的问题（Michael Paquier）\n     </p>", "text": "修复 ecpg 在建立连接期间 malloc() 失败后不能正确恢复的问题（Michael Paquier）", "title": "修复 ecpg 在建立连接期间 malloc() 失败后不能正确恢复的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "3fb98ebd2d3d75526969bdcb2804c4523e50a4414ce1577d59c597175c94dfc3", "section_path": ["变更"], "commit_groups": [["3768c468d", "83a3737a6", "b34dcf87f", "b589d212f", "b6a10ff4a", "cc057fb31", "fa703b317"]], "identity_text": "Fix ecpg to recover correctly after malloc() failure while establishing a connection (Michael Paquier)", "commit_aliases": ["3768c468d", "83a3737a6", "b34dcf87f", "b589d212f", "b6a10ff4a", "cc057fb31", "fa703b317"], "source_commits": ["3768c468d"], "source_entry_id": "9.6.24/changes/026", "db_id": "d53fb177e7d08ab01574498c67f0a370", "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888", "relations": [{"rule": 2, "type": "equivalent", "target": "70d957f7da6a0d4ff9a54196768faf98", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}, {"rule": 2, "type": "equivalent", "target": "76ef5811ec79e51e7476b872d7284aea", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}, {"rule": 2, "type": "equivalent", "target": "cfe3688e5f0c61eb1dd8b2914e6a061a", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}, {"rule": 2, "type": "equivalent", "target": "e860219fe57c764e16b8972133d2c395", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cfe3688e5f0c61eb1dd8b2914e6a061a", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=13.5#13.5-c7da596d7055c9dd", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "76ef5811ec79e51e7476b872d7284aea", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=12.9#12.9-51ed3abe86fc6d7c", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "e860219fe57c764e16b8972133d2c395", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=11.14#11.14-d649e65ae9bc38ea", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "70d957f7da6a0d4ff9a54196768faf98", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=10.19#10.19-d649e65ae9bc38ea", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-1e5a793ff70ec649", "cves": [], "html": "<p>      允许在 PL/pgSQL 例程最外层块中使用 <code>EXIT</code>（Tom Lane）\n     </p><p>      如果例程不要求显式 <code>RETURN</code>，这种用法应当是合法的，但过去被拒绝。\n     </p>", "text": "允许在 PL/pgSQL 例程最外层块中使用 EXIT（Tom Lane） 如果例程不要求显式 RETURN，这种用法应当是合法的，但过去被拒绝。", "title": "允许在 PL/pgSQL 例程最外层块中使用 EXIT", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "e94a4f34b11b8789f80890e474338af6cbce1cf3b64a7fe632f769a5b7dda19b", "section_path": ["变更"], "commit_groups": [["1bf2518dd", "4ffd3fe4d", "745abdd95", "a460f7eb3", "b1de90699", "bdd6ce48d", "fe70ec907"]], "identity_text": "Allow EXIT out of the outermost block in a PL/pgSQL routine (Tom Lane) If the routine does not require an explicit RETURN, this usage should be valid, but it was rejected.", "commit_aliases": ["1bf2518dd", "4ffd3fe4d", "745abdd95", "a460f7eb3", "b1de90699", "bdd6ce48d", "fe70ec907"], "source_commits": ["a460f7eb3"], "source_entry_id": "9.6.24/changes/027", "db_id": "e578063ab9393e8bdc2691d98c57740a", "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7", "relations": [{"rule": 2, "type": "equivalent", "target": "14abe7b7e21556c7c7795a1a20087b01", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}, {"rule": 2, "type": "equivalent", "target": "83e7cbfe3fc2dc3dcca0a59f573a0148", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}, {"rule": 2, "type": "equivalent", "target": "a3cad7263bc7b9df14dbb9c972495ac3", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}, {"rule": 2, "type": "equivalent", "target": "a4301c155d30eeb455f699c0c15edf08", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a4301c155d30eeb455f699c0c15edf08", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=13.5#13.5-69e6e3fb4131e872", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "83e7cbfe3fc2dc3dcca0a59f573a0148", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=12.9#12.9-b56ab44f211b84fe", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "14abe7b7e21556c7c7795a1a20087b01", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=11.14#11.14-49f72f4f8e93c522", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "a3cad7263bc7b9df14dbb9c972495ac3", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=10.19#10.19-49f72f4f8e93c522", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-e8ae62da5ea549f8", "cves": [], "html": "<p>      移除 <span>pg_ctl</span> 对所生成命令总长度的硬编码限制（Phil Krylov）\n     </p><p>      例如，这解除了能传递给 postmaster 的命令行选项数量的限制。<span>pg_ctl</span> 处理的单个路径名（如 postmaster\n      可执行文件名或数据目录名）在大多数情况下仍限于\n      <code>MAXPGPATH</code> 字节。\n     </p>", "text": "移除 pg_ctl 对所生成命令总长度的硬编码限制（Phil Krylov） 例如，这解除了能传递给 postmaster 的命令行选项数量的限制。pg_ctl 处理的单个路径名（如 postmaster 可执行文件名或数据目录名）在大多数情况下仍限于 MAXPGPATH 字节。", "title": "移除 pg_ctl 对所生成命令总长度的硬编码限制", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "34cbd196d59ee73bd43fd3ee8c68a009fe1de843c8207302a2cbeff4844fc215", "section_path": ["变更"], "commit_groups": [["3b302eb1e", "69d670e68", "6e2f45817", "742b30cae", "87ad49147", "9a070c658", "beb404d3b"]], "identity_text": "Remove pg_ctl's hard-coded limits on the total length of generated commands (Phil Krylov) For example, this removes a restriction on how many command-line options can be passed through to the postmaster. Individual path names that pg_ctl deals with, such as the postmaster executable's name or the data directory name, are still limited to MAXPGPATH bytes in most cases.", "commit_aliases": ["3b302eb1e", "69d670e68", "6e2f45817", "742b30cae", "87ad49147", "9a070c658", "beb404d3b"], "source_commits": ["9a070c658"], "source_entry_id": "9.6.24/changes/028", "db_id": "aebee72ce9cc7ab76d8a4244e9560893", "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4", "relations": [{"rule": 2, "type": "equivalent", "target": "09c540f5a1f749ab99a994fc1278487f", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}, {"rule": 2, "type": "equivalent", "target": "2f31d2d697d825c4daffd6bedf18088a", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}, {"rule": 2, "type": "equivalent", "target": "d716cacb6c1dff50a74fa93ad2b2b02a", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}, {"rule": 2, "type": "equivalent", "target": "f37d036a60b3457a9f75717ac928433b", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "09c540f5a1f749ab99a994fc1278487f", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=13.5#13.5-5ce57ba729ac3ab2", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "f37d036a60b3457a9f75717ac928433b", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=12.9#12.9-85bbba180ce85be2", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "2f31d2d697d825c4daffd6bedf18088a", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=11.14#11.14-9aa6a3e1fa9ae8f3", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "d716cacb6c1dff50a74fa93ad2b2b02a", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=10.19#10.19-9aa6a3e1fa9ae8f3", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-062a44c48562f080", "cves": [], "html": "<p>      修复 <span>pg_dump</span> 正确转储非全局默认权限的问题（Neil Chen、Masahiko Sawada）\n     </p><p>      如果一条全局（无限制的）<code>ALTER DEFAULT PRIVILEGES</code>\n      命令撤销了某个默认存在的权限（例如函数的 <code>EXECUTE</code>），随后一条受限的 <code>ALTER DEFAULT PRIVILEGES</code> 命令又为选定的角色或模式重新授予了该权限，<span>pg_dump</span>\n      未能正确转储这条受限的权限授予。\n     </p>", "text": "修复 pg_dump 正确转储非全局默认权限的问题（Neil Chen、Masahiko Sawada） 如果一条全局（无限制的）ALTER DEFAULT PRIVILEGES 命令撤销了某个默认存在的权限（例如函数的 EXECUTE），随后一条受限的 ALTER DEFAULT PRIVILEGES 命令又为选定的角色或模式重新授予了该权限，pg_dump 未能正确转储这条受限的权限授予。", "title": "修复 pg_dump 正确转储非全局默认权限的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "76ecde99ae0102d2fff373a233d1e6fa411426b0e6cb983d376409c63fb55097", "section_path": ["变更"], "commit_groups": [["10f9faf6d", "2acc84c6f", "3ad2c2455", "476006023", "52b927a73", "871dfe4b7", "b1df061f7"]], "identity_text": "Fix pg_dump to dump non-global default privileges correctly (Neil Chen, Masahiko Sawada) If a global (unrestricted) ALTER DEFAULT PRIVILEGES command revoked some present-by-default privilege, for example EXECUTE for functions, and then a restricted ALTER DEFAULT PRIVILEGES command granted that privilege again for a selected role or schema, pg_dump failed to dump the restricted privilege grant correctly.", "commit_aliases": ["10f9faf6d", "2acc84c6f", "3ad2c2455", "476006023", "52b927a73", "871dfe4b7", "b1df061f7"], "source_commits": ["b1df061f7"], "source_entry_id": "9.6.24/changes/029", "db_id": "35361d936334db7ff40cdf174e511db8", "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e", "relations": [{"rule": 2, "type": "equivalent", "target": "2c8969cc65a4505ca714a5e7afab5ad7", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}, {"rule": 2, "type": "equivalent", "target": "5a099d974b3a124bcf385c238af571ae", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}, {"rule": 2, "type": "equivalent", "target": "607d4955a34c14d8019c8dce92b3c395", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}, {"rule": 2, "type": "equivalent", "target": "6261fdcceb679d2eda2b529e73c0ec7b", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}, {"rule": 2, "type": "equivalent", "target": "99ef75076fa5da565638b47bec18f7d4", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5a099d974b3a124bcf385c238af571ae", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 pg_dump 以正确导出非全局默认权限", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=14.1#14.1-a78af80f0cf2381e", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "99ef75076fa5da565638b47bec18f7d4", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 pg_dump 以正确导出非全局默认权限", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=13.5#13.5-5f6add66fa0fccbc", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "2c8969cc65a4505ca714a5e7afab5ad7", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 pg_dump 以正确导出非全局默认权限", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=12.9#12.9-6409426adfe002f8", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "6261fdcceb679d2eda2b529e73c0ec7b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 pg_dump 以正确导出非全局默认权限", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=11.14#11.14-fb32ac137e8a275c", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "607d4955a34c14d8019c8dce92b3c395", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 pg_dump 以正确导出非全局默认权限", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=10.19#10.19-fb32ac137e8a275c", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-e10032a865f98c1a", "cves": [], "html": "<p>      通过避免为 RLS 策略逐表查询、避免重复调用\n      <code>format_type()</code> 来改进 <span>pg_dump</span>\n      的性能（Tom Lane）\n     </p><p>      从本地服务器转储时这些更改只有边际改进，但从远程服务器转储时，由于网络往返次数减少，可以获得显著的收益。\n     </p>", "text": "通过避免为 RLS 策略逐表查询、避免重复调用 format_type() 来改进 pg_dump 的性能（Tom Lane） 从本地服务器转储时这些更改只有边际改进，但从远程服务器转储时，由于网络往返次数减少，可以获得显著的收益。", "title": "通过避免为 RLS 策略逐表查询、避免重复调用 format_type() 来改进 pg_dump 的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "039b2b50b68b7f9f443fada30b0ce2aa60710181a315f0832b8e90709b932eeb", "section_path": ["变更"], "commit_groups": [["0e7bdc722", "2f1ed9d98", "4645997c8", "6c450a861", "904ce45bf", "9407dbbcb", "c4b298ee1"], ["6b9667392", "a20a9f26c", "a60860ff3", "ba8f1a0be", "bd3611db5", "db11b4a3d", "dd3105286"]], "identity_text": "Improve pg_dump's performance by avoiding making per-table queries for RLS policies, and by avoiding repetitive calls to format_type() (Tom Lane) These changes provide only marginal improvement when dumping from a local server, but a dump from a remote server can benefit substantially due to fewer network round-trips.", "commit_aliases": ["0e7bdc722", "2f1ed9d98", "4645997c8", "6b9667392", "6c450a861", "904ce45bf", "9407dbbcb", "a20a9f26c", "a60860ff3", "ba8f1a0be", "bd3611db5", "c4b298ee1", "db11b4a3d", "dd3105286"], "source_commits": ["4645997c8", "dd3105286"], "source_entry_id": "9.6.24/changes/030", "db_id": "4bb1a99cbb1ab871468c8b52b95761f4", "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727", "relations": [{"rule": 2, "type": "equivalent", "target": "49e26a2349adc919fcbfc71ae5ef1819", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}, {"rule": 2, "type": "equivalent", "target": "7de5c63a6642ca59d96fc43f2aefa6f5", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}, {"rule": 2, "type": "equivalent", "target": "cf23d26384b6b17f28b238f5dd0ab707", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}, {"rule": 2, "type": "equivalent", "target": "f7aaf4440b31954cb78e810b906616ec", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}], "version": "9.6.24", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "49e26a2349adc919fcbfc71ae5ef1819", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=13.5#13.5-b877cfe07d784398", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "7de5c63a6642ca59d96fc43f2aefa6f5", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=12.9#12.9-b1b601699638c8f0", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "f7aaf4440b31954cb78e810b906616ec", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=11.14#11.14-2b9b86decb34541e", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "cf23d26384b6b17f28b238f5dd0ab707", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=10.19#10.19-2b9b86decb34541e", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-8ff294aa4e22fbd4", "cves": [], "html": "<p>      修复 <span>pg_restore</span> 关于无效大对象 TOC 文件的错误消息中的文件名错误（Daniel Gustafsson）\n     </p>", "text": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的文件名错误（Daniel Gustafsson）", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的文件名错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "1b8a9ff153980a2c31d3cfd38bcaee1f5c29afce30c9eda0868a66064add9d38", "section_path": ["变更"], "commit_groups": [["038892c81", "3e2f32b01", "4fda03b67", "687fe8a9d", "998d060f3", "e788883de", "ef1f15819"]], "identity_text": "Fix incorrect filename in pg_restore's error message about an invalid large object TOC file (Daniel Gustafsson)", "commit_aliases": ["038892c81", "3e2f32b01", "4fda03b67", "687fe8a9d", "998d060f3", "e788883de", "ef1f15819"], "source_commits": ["ef1f15819"], "source_entry_id": "9.6.24/changes/031", "db_id": "0b04801b2d8fe3c1be144e863b29b9fa", "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da", "relations": [{"rule": 2, "type": "equivalent", "target": "01c4d0a6e186cae7701eba66dd4c77c3", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}, {"rule": 2, "type": "equivalent", "target": "3e220fd2eeed7576866cb4ad7ab2422d", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}, {"rule": 2, "type": "equivalent", "target": "76ec7864d79d6c138df646918b4dfdb2", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}, {"rule": 2, "type": "equivalent", "target": "8e213c302cc546704d495ce7f76822c0", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}, {"rule": 2, "type": "equivalent", "target": "f07ae55bc247498a990b40534ac5f5e6", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f07ae55bc247498a990b40534ac5f5e6", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=14.1#14.1-cefd2ff84d51ec7d", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "76ec7864d79d6c138df646918b4dfdb2", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=13.5#13.5-9ab9db11dae894f4", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "3e220fd2eeed7576866cb4ad7ab2422d", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=12.9#12.9-382007779072be39", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "8e213c302cc546704d495ce7f76822c0", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=11.14#11.14-c02a79a9d493c758", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "01c4d0a6e186cae7701eba66dd4c77c3", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=10.19#10.19-c02a79a9d493c758", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-17cb13afaecadcf6", "cves": [], "html": "<p>      修复 <code>contrib/btree_gin</code> 在 <code>\"char\"</code>（而非 <code>char(<em><code>n</code></em>)</code>）列上的索引在执行使用 <code>&lt;</code> 或 <code>&lt;=</code> 操作符的索引扫描时失败的问题（Tom Lane）\n     </p><p>      这种索引扫描没有返回它本应返回的所有条目。\n     </p>", "text": "修复 contrib/btree_gin 在 \"char\"（而非 char(n)）列上的索引在执行使用 < 或 <= 操作符的索引扫描时失败的问题（Tom Lane） 这种索引扫描没有返回它本应返回的所有条目。", "title": "修复 contrib/btree_gin 在 \"char\"（而非 char(n)）列上的索引在执行使用 < 或 <= 操作符的索引扫描时失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "e21d0f34b24bef975bf5c9722157f032f324bb18fd3812b93359e10e062be84d", "section_path": ["变更"], "commit_groups": [["5a9df5d50", "7ba487cf9", "843d2879a", "a4957b5a7", "a6bd28beb", "cd7d9b6b6", "eefa4c2b5"]], "identity_text": "Fix failure of contrib/btree_gin indexes on \"char\" (not char(n)) columns, when an indexscan using the < or <= operator is performed (Tom Lane) Such an indexscan failed to return all the entries it should.", "commit_aliases": ["5a9df5d50", "7ba487cf9", "843d2879a", "a4957b5a7", "a6bd28beb", "cd7d9b6b6", "eefa4c2b5"], "source_commits": ["5a9df5d50"], "source_entry_id": "9.6.24/changes/032", "db_id": "13290d8e4bf294c76c577c844db6d78f", "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061", "relations": [{"rule": 2, "type": "equivalent", "target": "62f53af5ee09ff4b38cd4efb4239e4b9", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}, {"rule": 2, "type": "equivalent", "target": "a277177e17d860cc0e252a2f35807932", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}, {"rule": 2, "type": "equivalent", "target": "e327f3b4836ca3ec1c5e87574cf26437", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}, {"rule": 2, "type": "equivalent", "target": "f4025e04b5b9d94579bce89cb92e2d8c", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a277177e17d860cc0e252a2f35807932", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=13.5#13.5-53bf5ca130967d06", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "e327f3b4836ca3ec1c5e87574cf26437", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=12.9#12.9-eece66ff014231e4", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "62f53af5ee09ff4b38cd4efb4239e4b9", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=11.14#11.14-93270a3ee6a0cf07", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "f4025e04b5b9d94579bce89cb92e2d8c", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=10.19#10.19-93270a3ee6a0cf07", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-da478d75489c9aa1", "cves": [], "html": "<p>      将 <code>contrib/pg_stat_statements</code> 改为以至多 1GB 为单位读取其<span>“<span>查询文本</span>”</span>文件（Tom Lane）\n     </p><p>      这么大的查询文本文件非常罕见，但一旦出现，原来的编码在 Windows 64 上会失败（该平台拒绝超过 2GB 的单次读取请求）。\n     </p>", "text": "将 contrib/pg_stat_statements 改为以至多 1GB 为单位读取其“查询文本”文件（Tom Lane） 这么大的查询文本文件非常罕见，但一旦出现，原来的编码在 Windows 64 上会失败（该平台拒绝超过 2GB 的单次读取请求）。", "title": "将 contrib/pg_stat_statements 改为以至多 1GB 为单位读取其“查询文本”文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "c8386c1815bd4f4a3e48bff4d4e331c1822f3251e2b154b675ddd9560a2df66a", "section_path": ["变更"], "commit_groups": [["16d0da5c8", "3a5b313ce", "5dd067430", "7104e0b24", "a667b0668", "d87d5f8d8", "fdb60ca83"]], "identity_text": "Change contrib/pg_stat_statements to read its query texts file in units of at most 1GB (Tom Lane) Such large query text files are very unusual, but if they do occur, the previous coding would fail on Windows 64 (which rejects individual read requests of more than 2GB).", "commit_aliases": ["16d0da5c8", "3a5b313ce", "5dd067430", "7104e0b24", "a667b0668", "d87d5f8d8", "fdb60ca83"], "source_commits": ["fdb60ca83"], "source_entry_id": "9.6.24/changes/033", "db_id": "6085b37daa5b09ebea485d926c991a03", "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e", "relations": [{"rule": 2, "type": "equivalent", "target": "5f6465bba0707d12b76fcb07963a01ca", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}, {"rule": 2, "type": "equivalent", "target": "84795ba9a04226ac48db09ecab62d8cf", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}, {"rule": 2, "type": "equivalent", "target": "9b774cab607faea6fac7ab9e23411b63", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}, {"rule": 2, "type": "equivalent", "target": "d43f2700cb72344d8146a3efd59b8ee1", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}, {"rule": 2, "type": "equivalent", "target": "f9b1bfa11b570618b6bcd18099dc3fad", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d43f2700cb72344d8146a3efd59b8ee1", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=14.1#14.1-68127bd965885596", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "f9b1bfa11b570618b6bcd18099dc3fad", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=13.5#13.5-5e4ad0da97a51a4d", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "84795ba9a04226ac48db09ecab62d8cf", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=12.9#12.9-ad73943d8c595d25", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "5f6465bba0707d12b76fcb07963a01ca", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=11.14#11.14-361fef5f9b6791fa", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "9b774cab607faea6fac7ab9e23411b63", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=10.19#10.19-361fef5f9b6791fa", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-28d5fcf453564806", "cves": [], "html": "<p>      修复 <code>contrib/postgres_fdw</code> 尝试报告数据转换错误时的空指针崩溃（Tom Lane）\n     </p>", "text": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃（Tom Lane）", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b3ffc0f91814e2483e752f32f6f86dc402c3de6453bf9a937ab88dcc418dc644", "section_path": ["变更"], "commit_groups": [["12ff678e1", "228897374", "2e33fbda1", "3071bbfe4", "36c9f7d96", "88807757d", "aee83f39a"]], "identity_text": "Fix null-pointer crash when contrib/postgres_fdw tries to report a data conversion error (Tom Lane)", "commit_aliases": ["12ff678e1", "228897374", "2e33fbda1", "3071bbfe4", "36c9f7d96", "88807757d", "aee83f39a"], "source_commits": ["36c9f7d96"], "source_entry_id": "9.6.24/changes/034", "db_id": "cda3957c847bee85448fcd3c997db0f4", "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477", "relations": [{"rule": 2, "type": "equivalent", "target": "4d82294c92694050c948b67c159dcc16", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}, {"rule": 2, "type": "equivalent", "target": "59724df9664a8909e68fab2ce8c42560", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}, {"rule": 2, "type": "equivalent", "target": "98290aab4ae48248ce3126dd259f8200", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}, {"rule": 2, "type": "equivalent", "target": "e7917bc5603100b3c9bce3e23ae83e7c", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}, {"rule": 2, "type": "equivalent", "target": "ea56ce70c9c40cdc0e56532c70478ccd", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "98290aab4ae48248ce3126dd259f8200", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=14.1#14.1-f2edcd70ca4ee95c", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "ea56ce70c9c40cdc0e56532c70478ccd", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=13.5#13.5-ce1c56a7475c246a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "4d82294c92694050c948b67c159dcc16", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=12.9#12.9-fab2df684636e3a9", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "59724df9664a8909e68fab2ce8c42560", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=11.14#11.14-28d5fcf453564806", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "e7917bc5603100b3c9bce3e23ae83e7c", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=10.19#10.19-28d5fcf453564806", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-22a8601426cbff71", "cves": [], "html": "<p>      为 RISC-V 架构添加自旋锁支持（Marek Szuba）\n     </p><p>      这对该平台上的合理性能必不可少。\n     </p>", "text": "为 RISC-V 架构添加自旋锁支持（Marek Szuba） 这对该平台上的合理性能必不可少。", "title": "为 RISC-V 架构添加自旋锁支持", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "2b7307b46aede7873c4c1469ddddb1dfb2cdbca87013950b875cb933a89a828f", "section_path": ["变更"], "commit_groups": [["48695decc", "4ffbd55d9", "582a2affa", "7915a9515", "8024ff478", "c32fcac56", "cdda2b247"]], "identity_text": "Add spinlock support for the RISC-V architecture (Marek Szuba) This is essential for reasonable performance on that platform.", "commit_aliases": ["48695decc", "4ffbd55d9", "582a2affa", "7915a9515", "8024ff478", "c32fcac56", "cdda2b247"], "source_commits": ["582a2affa"], "source_entry_id": "9.6.24/changes/035", "db_id": "c7a1c8b2a2351bf7e57d3d99aba772bb", "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918", "relations": [{"rule": 2, "type": "equivalent", "target": "0d4a6fd2ac04ba1b30b714d01c8fdef8", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}, {"rule": 2, "type": "equivalent", "target": "1dca9f29d9aedf9881fdfcdfc44afeb3", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}, {"rule": 2, "type": "equivalent", "target": "2b7f4d027ea6ac4feb2799ceecd23c03", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}, {"rule": 2, "type": "equivalent", "target": "ef4cdb9b434b444fb421ab654584badd", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2b7f4d027ea6ac4feb2799ceecd23c03", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "增加对 RISC-V 架构的自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=13.5#13.5-fd9f970d868cfb3e", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "0d4a6fd2ac04ba1b30b714d01c8fdef8", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "增加对 RISC-V 架构的自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=12.9#12.9-5466e34a4da721cc", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "1dca9f29d9aedf9881fdfcdfc44afeb3", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "增加对 RISC-V 架构的自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=11.14#11.14-8e98d7aed335dac4", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "ef4cdb9b434b444fb421ab654584badd", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "增加对 RISC-V 架构的自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=10.19#10.19-8e98d7aed335dac4", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-61720bef03799fbf", "cves": [], "html": "<p>      在 <span>PostgreSQL</span> 创建的 OpenSSL BIO（I/O 抽象）对象上设置正确的类型标识符（Itamar Gafni）\n     </p><p>      这一疏漏可能只对执行审计 OpenSSL 安装之类任务的代码有影响。但严格来说它违反了 OpenSSL API，因此予以修复。\n     </p>", "text": "在 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象上设置正确的类型标识符（Itamar Gafni） 这一疏漏可能只对执行审计 OpenSSL 安装之类任务的代码有影响。但严格来说它违反了 OpenSSL API，因此予以修复。", "title": "在 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象上设置正确的类型标识符", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b1c3e9d280ee69d4e5f4ea0ec9cc833cbdf1ef1f6d0bb9c508047c6e14181db5", "section_path": ["变更"], "commit_groups": [["0a88d4ece", "31f860a52", "b88377ad6", "e15f32f0e", "ed209db77", "ef7e24ff7", "f1d5a94fc"]], "identity_text": "Set correct type identifier on OpenSSL BIO (I/O abstraction) objects created by PostgreSQL (Itamar Gafni) This oversight probably only matters for code that is doing tasks like auditing the OpenSSL installation. But it's nominally a violation of the OpenSSL API, so fix it.", "commit_aliases": ["0a88d4ece", "31f860a52", "b88377ad6", "e15f32f0e", "ed209db77", "ef7e24ff7", "f1d5a94fc"], "source_commits": ["0a88d4ece"], "source_entry_id": "9.6.24/changes/036", "db_id": "b327f51f9ad30f338a464dae3ed74562", "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4", "relations": [{"rule": 2, "type": "equivalent", "target": "20be44c65f15eb8c025ad176cf5f3735", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}, {"rule": 2, "type": "equivalent", "target": "296f6fe655a7ee0f15e069302e2d0938", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}, {"rule": 2, "type": "equivalent", "target": "adb6e090b3ec86a65b556eed193f865b", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}, {"rule": 2, "type": "equivalent", "target": "cfe81e4d3f5248f89cbfab2b8a20baaf", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "adb6e090b3ec86a65b556eed193f865b", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=13.5#13.5-0a4c57a269205cd5", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "20be44c65f15eb8c025ad176cf5f3735", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=12.9#12.9-2af3b8c42de17e12", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "cfe81e4d3f5248f89cbfab2b8a20baaf", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=11.14#11.14-189f6dab80ef402f", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "296f6fe655a7ee0f15e069302e2d0938", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=10.19#10.19-189f6dab80ef402f", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-b33908c85cb84548", "cves": [], "html": "<p>      使 <code>pg_regexec()</code> 能够稳健处理越界的\n      <em><code>search_start</code></em> 参数（Tom Lane）\n     </p><p>      当 <em><code>search_start</code></em> 超出字符串末尾时返回\n      <code>REG_NOMATCH</code> 而非可能崩溃。这种情况在核心\n      <span>PostgreSQL</span> 中很可能无法达到，但扩展对参数值可能更不小心。\n     </p>", "text": "使 pg_regexec() 能够稳健处理越界的 search_start 参数（Tom Lane） 当 search_start 超出字符串末尾时返回 REG_NOMATCH 而非可能崩溃。这种情况在核心 PostgreSQL 中很可能无法达到，但扩展对参数值可能更不小心。", "title": "使 pg_regexec() 能够稳健处理越界的 search_start 参数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "90d976f0392d48ed7d863eca1f30126cafbb62b939e3e96da9c0bbf1f5327d3a", "section_path": ["变更"], "commit_groups": [["3adde7eb6", "3be381a90", "7e420072e", "b33283cbd", "daac97eb0", "e757080e0", "ec89d7ace"]], "identity_text": "Make pg_regexec() robust against an out-of-range search_start parameter (Tom Lane) Return REG_NOMATCH, instead of possibly crashing, when search_start is past the end of the string. This case is probably unreachable within core PostgreSQL, but extensions might be more careless about the parameter value.", "commit_aliases": ["3adde7eb6", "3be381a90", "7e420072e", "b33283cbd", "daac97eb0", "e757080e0", "ec89d7ace"], "source_commits": ["ec89d7ace"], "source_entry_id": "9.6.24/changes/037", "db_id": "28b7973785c0901fc917d0a6816008a1", "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a", "relations": [{"rule": 2, "type": "equivalent", "target": "68a0798944ef65f0b28e00c969a4deaf", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}, {"rule": 2, "type": "equivalent", "target": "719ea4027e846640130fb4a3bf1ad6f3", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}, {"rule": 2, "type": "equivalent", "target": "8fd53487c838cc0f99f3c02278840a26", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}, {"rule": 2, "type": "equivalent", "target": "cdf3f5a89ea1b3f50f4da0f944973dfd", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "68a0798944ef65f0b28e00c969a4deaf", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=13.5#13.5-b56d94eb5bb2ff1e", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "cdf3f5a89ea1b3f50f4da0f944973dfd", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=12.9#12.9-67d20da78a5ee8cd", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "8fd53487c838cc0f99f3c02278840a26", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=11.14#11.14-13e59272cdbe4a58", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "719ea4027e846640130fb4a3bf1ad6f3", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=10.19#10.19-13e59272cdbe4a58", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-da7b9852d6a02836", "cves": [], "html": "<p>      确保 <code>GetSharedSecurityLabel()</code> 可以在尚未构建关键关系缓存条目的新启动会话中使用（Jeff Davis）\n     </p>", "text": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用（Jeff Davis）", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "448c18681012dacf8bd332db35ec035ba2d69521ed80a96ddc7395c8017a1f8a", "section_path": ["变更"], "commit_groups": [["0b90f1c4c", "20f785732", "3f5d481ef", "7821a0bf2", "9364f64a2", "ab11f6e46", "ae6abeb88"]], "identity_text": "Ensure that GetSharedSecurityLabel() can be used in a newly-started session that has not yet built its critical relation cache entries (Jeff Davis)", "commit_aliases": ["0b90f1c4c", "20f785732", "3f5d481ef", "7821a0bf2", "9364f64a2", "ab11f6e46", "ae6abeb88"], "source_commits": ["ae6abeb88"], "source_entry_id": "9.6.24/changes/038", "db_id": "10d48cfdbf4dec0caf4e02364220a7b0", "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc", "relations": [{"rule": 2, "type": "equivalent", "target": "3448a6d5c4fd9927bcbe9681a9258699", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}, {"rule": 2, "type": "equivalent", "target": "581bb9962efbe7d042b7db8ec51eb373", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}, {"rule": 2, "type": "equivalent", "target": "5bc4e0e3715ef1c44bfed0bc068ffd86", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}, {"rule": 2, "type": "equivalent", "target": "e47146af6b7c83064f7b512dee45f52d", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}, {"rule": 2, "type": "equivalent", "target": "ede201067cf500d822e8b273272c57fa", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "581bb9962efbe7d042b7db8ec51eb373", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=14.1#14.1-5fb5b1c0880a6789", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "ede201067cf500d822e8b273272c57fa", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=13.5#13.5-10f65a07a327751a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "5bc4e0e3715ef1c44bfed0bc068ffd86", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=12.9#12.9-fda38891b4a2bcd2", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "3448a6d5c4fd9927bcbe9681a9258699", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=11.14#11.14-da7b9852d6a02836", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "e47146af6b7c83064f7b512dee45f52d", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=10.19#10.19-da7b9852d6a02836", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-15150c83c5e9a4c9", "cves": [], "html": "<p>      使用 CLDR 项目的数据把 Windows 时区名映射到 IANA 时区（Tom Lane）\n     </p><p>      在 Windows 上运行时，<span>initdb</span> 会尝试把新集簇的\n      <code>timezone</code> 参数设置为与系统当前时区相匹配的 IANA\n      时区。我们此前使用的是多年前生成、只偶尔更新的映射表；不出所料，它包含不少错误，也缺少新近添加的时区。事实证明 CLDR 一直在追踪最合适的映射，因此开始使用他们的数据。这一更改不影响任何现有安装，只影响新初始化的集簇。\n     </p>", "text": "使用 CLDR 项目的数据把 Windows 时区名映射到 IANA 时区（Tom Lane） 在 Windows 上运行时，initdb 会尝试把新集簇的 timezone 参数设置为与系统当前时区相匹配的 IANA 时区。我们此前使用的是多年前生成、只偶尔更新的映射表；不出所料，它包含不少错误，也缺少新近添加的时区。事实证明 CLDR 一直在追踪最合适的映射，因此开始使用他们的数据。这一更改不影响任何现有安装，只影响新初始化的集簇。", "title": "使用 CLDR 项目的数据把 Windows 时区名映射到 IANA 时区", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "ae1e18d85fc72388b1c0238d6878c8f406afac732920064d3e6c1ef8871426ec", "section_path": ["变更"], "commit_groups": [["07873a5dc", "919c08d90", "b5f34ae08", "c1aa3b3c0", "c53ff69e1", "cd2479142", "d0b0b70dc"], ["37cbe0f79", "4721e8aa6", "7ba8eb81f", "81464999b", "ad740067a", "bb6d42669", "cb0799db0"], ["9b8d68cc6", "9c76689de", "9cc919b51", "dbec5a2fe", "e323630cd", "e5b25f19b", "fa8db4879"]], "identity_text": "Use the CLDR project's data to map Windows time zone names to IANA time zones (Tom Lane) When running on Windows, initdb attempts to set the new cluster's timezone parameter to the IANA time zone matching the system's prevailing time zone. We were using a mapping table that we'd generated years ago and updated only fitfully; unsurprisingly, it contained a number of errors as well as omissions of recently-added zones. It turns out that CLDR has been tracking the most appropriate mappings, so start using their data. This change will not affect any existing installation, only newly-initialized clusters.", "commit_aliases": ["07873a5dc", "37cbe0f79", "4721e8aa6", "7ba8eb81f", "81464999b", "919c08d90", "9b8d68cc6", "9c76689de", "9cc919b51", "ad740067a", "b5f34ae08", "bb6d42669", "c1aa3b3c0", "c53ff69e1", "cb0799db0", "cd2479142", "d0b0b70dc", "dbec5a2fe", "e323630cd", "e5b25f19b", "fa8db4879"], "source_commits": ["37cbe0f79", "b5f34ae08", "dbec5a2fe"], "source_entry_id": "9.6.24/changes/039", "db_id": "c0b120c8a67c659dc93c7b89fb50097a", "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3", "relations": [{"rule": 2, "type": "equivalent", "target": "02801f915417448bd119e4259dd15cc4", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}}, {"rule": 2, "type": "equivalent", "target": "375480652fe26b512321b3cfc749af28", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}}, {"rule": 2, "type": "equivalent", "target": "9b790dfe98b1cde3059950dea643ea7f", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}}, {"rule": 2, "type": "equivalent", "target": "b0c088d69d60b2cde99897d93d01f9e2", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}}, {"rule": 2, "type": "equivalent", "target": "b31e5b75c3a44d2e3b7b0211ebd3532f", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b31e5b75c3a44d2e3b7b0211ebd3532f", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=14.1#14.1-4d7731400f0f4517", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "b0c088d69d60b2cde99897d93d01f9e2", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=13.5#13.5-89ec458ef613be1e", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "9b790dfe98b1cde3059950dea643ea7f", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=12.9#12.9-70b015f0cfffb653", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "02801f915417448bd119e4259dd15cc4", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=11.14#11.14-37f5640e6278922b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "375480652fe26b512321b3cfc749af28", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=10.19#10.19-37f5640e6278922b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-6ed029bc6b84961e", "cves": [], "html": "<p>      更新时区数据文件到 <span>tzdata</span> 版本 2021e，涉及斐济、约旦、巴勒斯坦和萨摩亚的夏令时法规变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史修正。\n     </p><p>      此外，Pacific/Enderbury 时区已更名为 Pacific/Kanton。同时，下列时区已被并入自 1970 年以来钟表一直与其一致的邻近人口更多时区：Africa/Accra、America/Atikokan、America/Blanc-Sablon、America/Creston、America/Curacao、America/Nassau、America/Port_of_Spain、Antarctica/DumontDUrville 和\n      Antarctica/Syowa。在所有这些情况下，原时区名仍作为别名保留。\n     </p>", "text": "更新时区数据文件到 tzdata 版本 2021e，涉及斐济、约旦、巴勒斯坦和萨摩亚的夏令时法规变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史修正。 此外，Pacific/Enderbury 时区已更名为 Pacific/Kanton。同时，下列时区已被并入自 1970 年以来钟表一直与其一致的邻近人口更多时区：Africa/Accra、America/Atikokan、America/Blanc-Sablon、America/Creston、America/Curacao、America/Nassau、America/Port_of_Spain、Antarctica/DumontDUrville 和 Antarctica/Syowa。在所有这些情况下，原时区名仍作为别名保留。", "title": "更新时区数据文件到 tzdata 版本 2021e，涉及斐济、约旦、巴勒斯坦和萨摩亚的夏令时法规变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "73974d9fe9b357e80b09903495fd60c06a566d67092fe7bd570a38ff4079de33", "section_path": ["变更"], "commit_groups": [["0c8a40b39", "14b8d25d6", "22a498b9b", "4cd72add0", "91455f7c6", "937aafd6d", "d0fe211ce"]], "identity_text": "Update time zone data files to tzdata release 2021e for DST law changes in Fiji, Jordan, Palestine, and Samoa, plus historical corrections for Barbados, Cook Islands, Guyana, Niue, Portugal, and Tonga. Also, the Pacific/Enderbury zone has been renamed to Pacific/Kanton. Also, the following zones have been merged into nearby, more-populous zones whose clocks have agreed with them since 1970: Africa/Accra, America/Atikokan, America/Blanc-Sablon, America/Creston, America/Curacao, America/Nassau, America/Port_of_Spain, Antarctica/DumontDUrville, and Antarctica/Syowa. In all these cases, the previous zone name remains as an alias.", "commit_aliases": ["0c8a40b39", "14b8d25d6", "22a498b9b", "4cd72add0", "91455f7c6", "937aafd6d", "d0fe211ce"], "source_commits": ["22a498b9b"], "source_entry_id": "9.6.24/changes/040", "db_id": "f1a086b3fdf5adab8ba5986bd0def2cc", "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "f4cb408e538e60d7453960e60cf73bf48c66de73c32ccd0334756e3d01c208a3", "relations": [{"rule": 2, "type": "equivalent", "target": "1423180b54f26b7322789f7e8c2706a9", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "f4cb408e538e60d7453960e60cf73bf48c66de73c32ccd0334756e3d01c208a3"}}, {"rule": 2, "type": "equivalent", "target": "6aa686bf99f85b7efa0e0917ff80bc55", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "f4cb408e538e60d7453960e60cf73bf48c66de73c32ccd0334756e3d01c208a3"}}, {"rule": 2, "type": "equivalent", "target": "9f598042f3d276143481ef2fb46b3aa0", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}}, {"rule": 2, "type": "equivalent", "target": "a3608b5016b21226b7fceb7f31e290fe", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}}, {"rule": 2, "type": "equivalent", "target": "a9acb6cdf72b4d976f76108f26cf4fe9", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9f598042f3d276143481ef2fb46b3aa0", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "将时区数据文件更新至 tzdata release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}, "url": "/docs/compare/?release=14.1#14.1-6fb0ad2f59adff81", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "a9acb6cdf72b4d976f76108f26cf4fe9", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "将时区数据文件更新至 tzdata release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}, "url": "/docs/compare/?release=13.5#13.5-3b4a31ead6939171", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "a3608b5016b21226b7fceb7f31e290fe", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "将时区数据文件更新至 tzdata release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}, "url": "/docs/compare/?release=12.9#12.9-21f14edb67e745bc", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "1423180b54f26b7322789f7e8c2706a9", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "将时区数据文件更新到 tzdata 2021e 版，以反映斐济、约旦、巴勒斯坦和萨摩亚的夏令时法规变更，并修正巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史数据。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "f4cb408e538e60d7453960e60cf73bf48c66de73c32ccd0334756e3d01c208a3"}, "url": "/docs/compare/?release=11.14#11.14-232f99613fa5aa2b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "6aa686bf99f85b7efa0e0917ff80bc55", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "将时区数据文件更新到 tzdata 2021e 版，以反映斐济、约旦、巴勒斯坦和萨摩亚的夏令时法规变更，并修正巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史数据。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "f4cb408e538e60d7453960e60cf73bf48c66de73c32ccd0334756e3d01c208a3"}, "url": "/docs/compare/?release=10.19#10.19-232f99613fa5aa2b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}]}, {"date": "2021-08-12", "build": "9.6.23", "major": "9.6", "minor": 23, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.23", "eol_date": "2021-11-11", "date_text": "2021-08-12", "supported": false, "manual_url": "/docs/9.6/release-9-6-23.html", "source_url": "/docs/release/9.6.23/", "entry_count": 47, "placeholder": false, "content_hash": "432a2006f04df3e9cec1310f8c5e973385ff6c0b2953d241e255b1b8605de3e1", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 47, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.21 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-21.html\" title=\"E.4. 版本 9.6.21\">第 E.4 节</a>。</p>", "compatibility_count": 0, "label": "9.6.23", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 1875, "support_days": -1784, "entries": [{"id": "9.6.23-aa240a8289197363", "cves": ["CVE-2021-3449"], "html": "<p>更彻底地禁止 SSL 重协商（Michael Paquier）</p>\n<p>SSL 重协商已被禁用一段时间了，但服务器仍会配合客户端发起的重协商请求。一个恶意构造的重协商请求可能导致服务器崩溃（见 OpenSSL 问题 CVE-2021-3449）。在允许这么做的 OpenSSL 版本（1.1.0h 及更新）上彻底禁用该特性。</p>", "text": "更彻底地禁止 SSL 重协商（Michael Paquier） SSL 重协商已被禁用一段时间了，但服务器仍会配合客户端发起的重协商请求。一个恶意构造的重协商请求可能导致服务器崩溃（见 OpenSSL 问题 CVE-2021-3449）。在允许这么做的 OpenSSL 版本（1.1.0h 及更新）上彻底禁用该特性。", "title": "更彻底地禁止 SSL 重协商", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "82cbeca191e98268b0027bdfb90c5e4aae65964b2311e77d1feda09ee8b4062e", "section_path": ["变更"], "commit_groups": [["01e6f1a84", "3f8072be8", "7777df34d", "96918b76f", "a23c0b00f", "c64b5d10d"]], "identity_text": "Disallow SSL renegotiation more completely (Michael Paquier) SSL renegotiation has been disabled for some time, but the server would still cooperate with a client-initiated renegotiation request. A maliciously crafted renegotiation request could result in a server crash (see OpenSSL issue CVE-2021-3449). Disable the feature altogether on OpenSSL versions that permit doing so, which are 1.1.0h and newer.", "commit_aliases": ["01e6f1a84", "3f8072be8", "7777df34d", "96918b76f", "a23c0b00f", "c64b5d10d"], "source_commits": ["7777df34d"], "source_entry_id": "9.6.23/changes/001", "db_id": "3d9d70a83323ba8f7bcf8c582f40cb46", "patch_ids": ["6bc45f96ca5b384e0377b3d701876272"], "statement_hash": "340d173f1f532f2c9063cf2a30303197c3d9bc46bfac6ce0414ee840829ea9c0", "relations": [{"rule": 2, "type": "equivalent", "target": "4f2b18ee3f4784fef09ad3379cf02069", "evidence": {"same_day": true, "patch_ids": ["6bc45f96ca5b384e0377b3d701876272"], "statement_hash": "340d173f1f532f2c9063cf2a30303197c3d9bc46bfac6ce0414ee840829ea9c0"}}, {"rule": 2, "type": "equivalent", "target": "9fb3a6ab9cc88bd231af587ca0282062", "evidence": {"same_day": true, "patch_ids": ["6bc45f96ca5b384e0377b3d701876272"], "statement_hash": "340d173f1f532f2c9063cf2a30303197c3d9bc46bfac6ce0414ee840829ea9c0"}}, {"rule": 2, "type": "equivalent", "target": "b709758bedd697c77455c5261f332edb", "evidence": {"same_day": true, "patch_ids": ["6bc45f96ca5b384e0377b3d701876272"], "statement_hash": "340d173f1f532f2c9063cf2a30303197c3d9bc46bfac6ce0414ee840829ea9c0"}}, {"rule": 2, "type": "equivalent", "target": "b7147cf9842278bd6788921da285b6d2", "evidence": {"same_day": true, "patch_ids": ["6bc45f96ca5b384e0377b3d701876272"], "statement_hash": "340d173f1f532f2c9063cf2a30303197c3d9bc46bfac6ce0414ee840829ea9c0"}}], "version": "9.6.23", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f2b18ee3f4784fef09ad3379cf02069", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "更彻底地禁止 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": ["6bc45f96ca5b384e0377b3d701876272"], "statement_hash": "340d173f1f532f2c9063cf2a30303197c3d9bc46bfac6ce0414ee840829ea9c0"}, "url": "/docs/compare/?release=13.4#13.4-a0b88642ddb5cf86", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "b709758bedd697c77455c5261f332edb", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "更彻底地禁止 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": ["6bc45f96ca5b384e0377b3d701876272"], "statement_hash": "340d173f1f532f2c9063cf2a30303197c3d9bc46bfac6ce0414ee840829ea9c0"}, "url": "/docs/compare/?release=12.8#12.8-e43fe95675839650", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "9fb3a6ab9cc88bd231af587ca0282062", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "更彻底地禁止 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": ["6bc45f96ca5b384e0377b3d701876272"], "statement_hash": "340d173f1f532f2c9063cf2a30303197c3d9bc46bfac6ce0414ee840829ea9c0"}, "url": "/docs/compare/?release=11.13#11.13-2a0347840526e5c1", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "b7147cf9842278bd6788921da285b6d2", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "更彻底地禁止 SSL 重新协商", "evidence": {"same_day": true, "patch_ids": ["6bc45f96ca5b384e0377b3d701876272"], "statement_hash": "340d173f1f532f2c9063cf2a30303197c3d9bc46bfac6ce0414ee840829ea9c0"}, "url": "/docs/compare/?release=10.18#10.18-2a0347840526e5c1", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-7e727ce37a13482b", "cves": [], "html": "<p>拒绝 <code>SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE</code>（Tom Lane）</p>\n<p>这与带普通 <code>GROUP BY</code> 的 <code>FOR UPDATE</code> 被禁止一样，本应被禁止，但相应的测试未能正确处理空分组集。最终结果是执行器中的空指针解引用。</p>", "text": "拒绝 SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE（Tom Lane） 这与带普通 GROUP BY 的 FOR UPDATE 被禁止一样，本应被禁止，但相应的测试未能正确处理空分组集。最终结果是执行器中的空指针解引用。", "title": "拒绝 SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "ab0b7a940308e554c8058469bafdbdb1a3ac14bdb9187ef3d3fd6fea5000060d", "section_path": ["变更"], "commit_groups": [["1103033ae", "39862dde4", "3eca18522", "762fe98b1", "dc272157a", "e5b0fffa1"]], "identity_text": "Reject SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE (Tom Lane) This should be disallowed, just as FOR UPDATE with a plain GROUP BY is disallowed, but the test for that failed to handle empty grouping sets correctly. The end result would be a null-pointer dereference in the executor.", "commit_aliases": ["1103033ae", "39862dde4", "3eca18522", "762fe98b1", "dc272157a", "e5b0fffa1"], "source_commits": ["3eca18522"], "source_entry_id": "9.6.23/changes/002", "db_id": "b17e23f01b70a04fef0bb0a7866a64f1", "patch_ids": ["0d59e8424e7c69c7d9ad7565595a80ab"], "statement_hash": "669294da37df6ede9b214112c8f79f0c940e974b33e7735926385577d5e2ef6f", "relations": [{"rule": 2, "type": "equivalent", "target": "06bcd88dba5300957347d984203f2a51", "evidence": {"same_day": true, "patch_ids": ["0d59e8424e7c69c7d9ad7565595a80ab"], "statement_hash": "669294da37df6ede9b214112c8f79f0c940e974b33e7735926385577d5e2ef6f"}}, {"rule": 2, "type": "equivalent", "target": "6e154943fd9f215ec8e94ec7e5505dd6", "evidence": {"same_day": true, "patch_ids": ["0d59e8424e7c69c7d9ad7565595a80ab"], "statement_hash": "669294da37df6ede9b214112c8f79f0c940e974b33e7735926385577d5e2ef6f"}}, {"rule": 2, "type": "equivalent", "target": "6ed2d0a27ca078b142e872cb8a1a353b", "evidence": {"same_day": true, "patch_ids": ["0d59e8424e7c69c7d9ad7565595a80ab"], "statement_hash": "669294da37df6ede9b214112c8f79f0c940e974b33e7735926385577d5e2ef6f"}}, {"rule": 2, "type": "equivalent", "target": "8ccb1015a96d5bdf6b94c0241044058f", "evidence": {"same_day": true, "patch_ids": ["0d59e8424e7c69c7d9ad7565595a80ab"], "statement_hash": "669294da37df6ede9b214112c8f79f0c940e974b33e7735926385577d5e2ef6f"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "06bcd88dba5300957347d984203f2a51", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "拒绝 SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE", "evidence": {"same_day": true, "patch_ids": ["0d59e8424e7c69c7d9ad7565595a80ab"], "statement_hash": "669294da37df6ede9b214112c8f79f0c940e974b33e7735926385577d5e2ef6f"}, "url": "/docs/compare/?release=13.4#13.4-9d91217a1bbb7285", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "6ed2d0a27ca078b142e872cb8a1a353b", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "拒绝 SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE", "evidence": {"same_day": true, "patch_ids": ["0d59e8424e7c69c7d9ad7565595a80ab"], "statement_hash": "669294da37df6ede9b214112c8f79f0c940e974b33e7735926385577d5e2ef6f"}, "url": "/docs/compare/?release=12.8#12.8-8f803134c4475494", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "8ccb1015a96d5bdf6b94c0241044058f", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "拒绝 SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE", "evidence": {"same_day": true, "patch_ids": ["0d59e8424e7c69c7d9ad7565595a80ab"], "statement_hash": "669294da37df6ede9b214112c8f79f0c940e974b33e7735926385577d5e2ef6f"}, "url": "/docs/compare/?release=11.13#11.13-7e727ce37a13482b", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "6e154943fd9f215ec8e94ec7e5505dd6", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "拒绝 SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE", "evidence": {"same_day": true, "patch_ids": ["0d59e8424e7c69c7d9ad7565595a80ab"], "statement_hash": "669294da37df6ede9b214112c8f79f0c940e974b33e7735926385577d5e2ef6f"}, "url": "/docs/compare/?release=10.18#10.18-7e727ce37a13482b", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-a2e5962a9d35f793", "cves": [], "html": "<p>拒绝 <code>WITH</code> 中的查询被改写为仅 <code>NOTIFY</code> 的情况（Tom Lane）</p>\n<p>这类情况过去会崩溃。</p>", "text": "拒绝 WITH 中的查询被改写为仅 NOTIFY 的情况（Tom Lane） 这类情况过去会崩溃。", "title": "拒绝 WITH 中的查询被改写为仅 NOTIFY 的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "6a4912739e8fe6ca69e33eb627e1d7007c798268b7c172a2ffc55ce80936bf60", "section_path": ["变更"], "commit_groups": [["158594f99", "39b6e85f1", "51df19a05", "6edccac16", "9c729bd30", "a9da1934e", "f0271cb15"]], "identity_text": "Reject cases where a query in WITH rewrites to just NOTIFY (Tom Lane) Such cases previously crashed.", "commit_aliases": ["158594f99", "39b6e85f1", "51df19a05", "6edccac16", "9c729bd30", "a9da1934e", "f0271cb15"], "source_commits": ["f0271cb15"], "source_entry_id": "9.6.23/changes/003", "db_id": "b7314e86b170cf675b584fb3976072dd", "patch_ids": ["cde9b5874f6ec7a4144d7f1cfeb8ed65"], "statement_hash": "c6f5356e2f3e2e33cdbb86fc3b7dfb11224261e27f988fee979bc720c223684a", "relations": [{"rule": 2, "type": "equivalent", "target": "126777f5a1192a74c0c9c7acc30412ec", "evidence": {"same_day": true, "patch_ids": ["cde9b5874f6ec7a4144d7f1cfeb8ed65"], "statement_hash": "c6f5356e2f3e2e33cdbb86fc3b7dfb11224261e27f988fee979bc720c223684a"}}, {"rule": 2, "type": "equivalent", "target": "9eba5f76b8ccad069973234786b3be7c", "evidence": {"same_day": true, "patch_ids": ["cde9b5874f6ec7a4144d7f1cfeb8ed65"], "statement_hash": "c6f5356e2f3e2e33cdbb86fc3b7dfb11224261e27f988fee979bc720c223684a"}}, {"rule": 2, "type": "equivalent", "target": "dd86d9b87578012ca4c2b9920e692616", "evidence": {"same_day": true, "patch_ids": ["cde9b5874f6ec7a4144d7f1cfeb8ed65"], "statement_hash": "c6f5356e2f3e2e33cdbb86fc3b7dfb11224261e27f988fee979bc720c223684a"}}, {"rule": 2, "type": "equivalent", "target": "ff382b6bc7164a98e2922d8e8b386f26", "evidence": {"same_day": true, "patch_ids": ["cde9b5874f6ec7a4144d7f1cfeb8ed65"], "statement_hash": "c6f5356e2f3e2e33cdbb86fc3b7dfb11224261e27f988fee979bc720c223684a"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "126777f5a1192a74c0c9c7acc30412ec", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "拒绝 WITH 中的查询被重写为仅包含 NOTIFY 的情况", "evidence": {"same_day": true, "patch_ids": ["cde9b5874f6ec7a4144d7f1cfeb8ed65"], "statement_hash": "c6f5356e2f3e2e33cdbb86fc3b7dfb11224261e27f988fee979bc720c223684a"}, "url": "/docs/compare/?release=13.4#13.4-a872bcf6d4b1a33b", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "ff382b6bc7164a98e2922d8e8b386f26", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "拒绝 WITH 中的查询被重写为仅包含 NOTIFY 的情况", "evidence": {"same_day": true, "patch_ids": ["cde9b5874f6ec7a4144d7f1cfeb8ed65"], "statement_hash": "c6f5356e2f3e2e33cdbb86fc3b7dfb11224261e27f988fee979bc720c223684a"}, "url": "/docs/compare/?release=12.8#12.8-4bcf72c9b0591b46", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "9eba5f76b8ccad069973234786b3be7c", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "拒绝 WITH 中的查询被重写为仅包含 NOTIFY 的情况", "evidence": {"same_day": true, "patch_ids": ["cde9b5874f6ec7a4144d7f1cfeb8ed65"], "statement_hash": "c6f5356e2f3e2e33cdbb86fc3b7dfb11224261e27f988fee979bc720c223684a"}, "url": "/docs/compare/?release=11.13#11.13-ee5426037f4d2dd3", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "dd86d9b87578012ca4c2b9920e692616", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "拒绝 WITH 中的查询被重写为仅包含 NOTIFY 的情况", "evidence": {"same_day": true, "patch_ids": ["cde9b5874f6ec7a4144d7f1cfeb8ed65"], "statement_hash": "c6f5356e2f3e2e33cdbb86fc3b7dfb11224261e27f988fee979bc720c223684a"}, "url": "/docs/compare/?release=10.18#10.18-ee5426037f4d2dd3", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-566a04311087c323", "cves": [], "html": "<p>在 <code>numeric</code> 乘法中，如果结果小数点后位数会超过 16383，对其舍入而非报错（Dean Rasheed）</p>", "text": "在 numeric 乘法中，如果结果小数点后位数会超过 16383，对其舍入而非报错（Dean Rasheed）", "title": "在 numeric 乘法中，如果结果小数点后位数会超过 16383，对其舍入而非报错", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "0f0321df3904beeabde379d97bd078213fb682fdc99e151baf42bd5b9e794e92", "section_path": ["变更"], "commit_groups": [["06883d58f", "357b66ef9", "54a0ec1bd", "5763ef42c", "e7fc488ad", "f23a9b8a4", "f8abf6944"]], "identity_text": "In numeric multiplication, round the result rather than failing if it would have more than 16383 digits after the decimal point (Dean Rasheed)", "commit_aliases": ["06883d58f", "357b66ef9", "54a0ec1bd", "5763ef42c", "e7fc488ad", "f23a9b8a4", "f8abf6944"], "source_commits": ["f8abf6944"], "source_entry_id": "9.6.23/changes/004", "db_id": "b7ba0afc6cfb6cf01e56e3fffd3b766c", "patch_ids": ["5bc1a087d22626eb43e5235577ff173e"], "statement_hash": "21b2ab8c680a52b44c5c090b15d081cd066754dd2006997717dc0f190e2c0c0a", "relations": [{"rule": 2, "type": "equivalent", "target": "008fb02e5e9fe3fa614893647dabb857", "evidence": {"same_day": true, "patch_ids": ["5bc1a087d22626eb43e5235577ff173e"], "statement_hash": "21b2ab8c680a52b44c5c090b15d081cd066754dd2006997717dc0f190e2c0c0a"}}, {"rule": 2, "type": "equivalent", "target": "617c858347110fb4752508a3ef19d26e", "evidence": {"same_day": true, "patch_ids": ["5bc1a087d22626eb43e5235577ff173e"], "statement_hash": "21b2ab8c680a52b44c5c090b15d081cd066754dd2006997717dc0f190e2c0c0a"}}, {"rule": 2, "type": "equivalent", "target": "9d549c4af56f489e4c78314d3160d877", "evidence": {"same_day": true, "patch_ids": ["5bc1a087d22626eb43e5235577ff173e"], "statement_hash": "21b2ab8c680a52b44c5c090b15d081cd066754dd2006997717dc0f190e2c0c0a"}}, {"rule": 2, "type": "equivalent", "target": "befee7817f0e635f85e5c1cf2bcd3ba4", "evidence": {"same_day": true, "patch_ids": ["5bc1a087d22626eb43e5235577ff173e"], "statement_hash": "21b2ab8c680a52b44c5c090b15d081cd066754dd2006997717dc0f190e2c0c0a"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d549c4af56f489e4c78314d3160d877", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "在 numeric 乘法中，如果结果的小数点后超过 16383 位，则对结果进行舍入，而不报错", "evidence": {"same_day": true, "patch_ids": ["5bc1a087d22626eb43e5235577ff173e"], "statement_hash": "21b2ab8c680a52b44c5c090b15d081cd066754dd2006997717dc0f190e2c0c0a"}, "url": "/docs/compare/?release=13.4#13.4-2e65cc8639fe88da", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "008fb02e5e9fe3fa614893647dabb857", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "在 numeric 乘法中，如果结果的小数点后超过 16383 位，则对结果进行舍入，而不报错", "evidence": {"same_day": true, "patch_ids": ["5bc1a087d22626eb43e5235577ff173e"], "statement_hash": "21b2ab8c680a52b44c5c090b15d081cd066754dd2006997717dc0f190e2c0c0a"}, "url": "/docs/compare/?release=12.8#12.8-72c33511224b3ea2", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "617c858347110fb4752508a3ef19d26e", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "在 numeric 乘法中，如果结果的小数点后超过 16383 位，则对结果进行舍入，而不报错", "evidence": {"same_day": true, "patch_ids": ["5bc1a087d22626eb43e5235577ff173e"], "statement_hash": "21b2ab8c680a52b44c5c090b15d081cd066754dd2006997717dc0f190e2c0c0a"}, "url": "/docs/compare/?release=11.13#11.13-8116a58f04eb0c8c", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "befee7817f0e635f85e5c1cf2bcd3ba4", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "在 numeric 乘法中，如果结果的小数点后超过 16383 位，则对结果进行舍入，而不报错", "evidence": {"same_day": true, "patch_ids": ["5bc1a087d22626eb43e5235577ff173e"], "statement_hash": "21b2ab8c680a52b44c5c090b15d081cd066754dd2006997717dc0f190e2c0c0a"}, "url": "/docs/compare/?release=10.18#10.18-8116a58f04eb0c8c", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-cc031a8cf641c382", "cves": [], "html": "<p>修复把 <code>numeric</code> 值提升到极大幂次时的边界错误和精度丢失（Dean Rasheed）</p>", "text": "修复把 numeric 值提升到极大幂次时的边界错误和精度丢失（Dean Rasheed）", "title": "修复把 numeric 值提升到极大幂次时的边界错误和精度丢失", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "c49cb5b267f821956a8a09c9ecab684f15a514d2576f1430c7183cac6f5c663d", "section_path": ["变更"], "commit_groups": [["032556570", "2642df9fa", "434ddfb79", "cc4420f88", "da188b993"], ["053ec4e0c", "0d6b87497", "39b0bda67", "4dd5ce2fd", "5c62920fa", "5cf350ce0", "dcd0ab672"], ["5b7b92ad7", "7a9c9acfe", "f20b6bc96"]], "identity_text": "Fix corner-case errors and loss of precision when raising numeric values to very large powers (Dean Rasheed)", "commit_aliases": ["032556570", "053ec4e0c", "0d6b87497", "2642df9fa", "39b0bda67", "434ddfb79", "4dd5ce2fd", "5b7b92ad7", "5c62920fa", "5cf350ce0", "7a9c9acfe", "cc4420f88", "da188b993", "dcd0ab672", "f20b6bc96"], "source_commits": ["434ddfb79", "5b7b92ad7", "5cf350ce0"], "source_entry_id": "9.6.23/changes/005", "db_id": "c43bc2a5a94491ff7b552367776cf1a9", "patch_ids": ["43513e84915fa343d2bb7b9fff7909b6", "5af963693a9c947802a8c09e0c122c2d", "e1d9e7ad31668d6ee9ac00bde0213cc2"], "statement_hash": "d6f74902a4c9384857d3c862b8aa1ab672a125ef6f08dce5086b8dee206c4dd9", "relations": [{"rule": 2, "type": "equivalent", "target": "016a80cc5d824b1528a6d68bc3495883", "evidence": {"same_day": true, "patch_ids": ["43513e84915fa343d2bb7b9fff7909b6", "5af963693a9c947802a8c09e0c122c2d", "e1d9e7ad31668d6ee9ac00bde0213cc2"], "statement_hash": "d6f74902a4c9384857d3c862b8aa1ab672a125ef6f08dce5086b8dee206c4dd9"}}, {"rule": 2, "type": "equivalent", "target": "2bfcb93b0d0da8a1f70cd3a71a818c56", "evidence": {"same_day": true, "patch_ids": ["43513e84915fa343d2bb7b9fff7909b6", "5af963693a9c947802a8c09e0c122c2d", "e1d9e7ad31668d6ee9ac00bde0213cc2"], "statement_hash": "d6f74902a4c9384857d3c862b8aa1ab672a125ef6f08dce5086b8dee206c4dd9"}}, {"rule": 2, "type": "equivalent", "target": "8cfc787c9627205d05560357cff8cdde", "evidence": {"same_day": true, "patch_ids": ["43513e84915fa343d2bb7b9fff7909b6", "5af963693a9c947802a8c09e0c122c2d", "e1d9e7ad31668d6ee9ac00bde0213cc2"], "statement_hash": "d6f74902a4c9384857d3c862b8aa1ab672a125ef6f08dce5086b8dee206c4dd9"}}, {"rule": 2, "type": "equivalent", "target": "d85390ab3f961f6e45bbe2a6a93c360d", "evidence": {"same_day": true, "patch_ids": ["43513e84915fa343d2bb7b9fff7909b6", "5af963693a9c947802a8c09e0c122c2d", "e1d9e7ad31668d6ee9ac00bde0213cc2"], "statement_hash": "d6f74902a4c9384857d3c862b8aa1ab672a125ef6f08dce5086b8dee206c4dd9"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "016a80cc5d824b1528a6d68bc3495883", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复对 numeric 值计算极大次幂时的边界情况错误和精度损失", "evidence": {"same_day": true, "patch_ids": ["43513e84915fa343d2bb7b9fff7909b6", "5af963693a9c947802a8c09e0c122c2d", "e1d9e7ad31668d6ee9ac00bde0213cc2"], "statement_hash": "d6f74902a4c9384857d3c862b8aa1ab672a125ef6f08dce5086b8dee206c4dd9"}, "url": "/docs/compare/?release=13.4#13.4-94ca6dbfbe55e25c", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "8cfc787c9627205d05560357cff8cdde", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复对 numeric 值计算极大次幂时的边界情况错误和精度损失", "evidence": {"same_day": true, "patch_ids": ["43513e84915fa343d2bb7b9fff7909b6", "5af963693a9c947802a8c09e0c122c2d", "e1d9e7ad31668d6ee9ac00bde0213cc2"], "statement_hash": "d6f74902a4c9384857d3c862b8aa1ab672a125ef6f08dce5086b8dee206c4dd9"}, "url": "/docs/compare/?release=12.8#12.8-05e8f1d7a9fa64fe", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "d85390ab3f961f6e45bbe2a6a93c360d", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复对 numeric 值计算极大次幂时的边界情况错误和精度损失", "evidence": {"same_day": true, "patch_ids": ["43513e84915fa343d2bb7b9fff7909b6", "5af963693a9c947802a8c09e0c122c2d", "e1d9e7ad31668d6ee9ac00bde0213cc2"], "statement_hash": "d6f74902a4c9384857d3c862b8aa1ab672a125ef6f08dce5086b8dee206c4dd9"}, "url": "/docs/compare/?release=11.13#11.13-700316428836856a", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "2bfcb93b0d0da8a1f70cd3a71a818c56", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复对 numeric 值计算极大次幂时的边界情况错误和精度损失", "evidence": {"same_day": true, "patch_ids": ["43513e84915fa343d2bb7b9fff7909b6", "5af963693a9c947802a8c09e0c122c2d", "e1d9e7ad31668d6ee9ac00bde0213cc2"], "statement_hash": "d6f74902a4c9384857d3c862b8aa1ab672a125ef6f08dce5086b8dee206c4dd9"}, "url": "/docs/compare/?release=10.18#10.18-700316428836856a", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-c22844966130098c", "cves": [], "html": "<p>修复 <code>to_char()</code> 使用 <code>EEEE</code> 格式且 <code>numeric</code> 输入值小于 10^(-1001) 时的除零失败（Dean Rasheed）</p>", "text": "修复 to_char() 使用 EEEE 格式且 numeric 输入值小于 10^(-1001) 时的除零失败（Dean Rasheed）", "title": "修复 to_char() 使用 EEEE 格式且 numeric 输入值小于 10^(-1001) 时的除零失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "3268a1120f312b2f59f409e20c34fdc2a3faac69f3213d7f5a61bf86ca13115c", "section_path": ["变更"], "commit_groups": [["226ec49ff", "43644bd3b", "4851940a5", "661558bc3", "a72ad6315", "ecbdbdfd9", "ed3e1663c"]], "identity_text": "Fix division-by-zero failure in to_char() with EEEE format and a numeric input value less than 10^(-1001) (Dean Rasheed)", "commit_aliases": ["226ec49ff", "43644bd3b", "4851940a5", "661558bc3", "a72ad6315", "ecbdbdfd9", "ed3e1663c"], "source_commits": ["ed3e1663c"], "source_entry_id": "9.6.23/changes/006", "db_id": "7453e74f4b9344e927543518d53a167f", "patch_ids": ["80a7a00ec4016a3f70da1e679e4fed0e"], "statement_hash": "606cd08770824c6b946b195f14f288e7f41105097c867a6fcdf6380295e6d06a", "relations": [{"rule": 2, "type": "equivalent", "target": "2a3e6802138b4356d9267dda3bbee1f8", "evidence": {"same_day": true, "patch_ids": ["80a7a00ec4016a3f70da1e679e4fed0e"], "statement_hash": "606cd08770824c6b946b195f14f288e7f41105097c867a6fcdf6380295e6d06a"}}, {"rule": 2, "type": "equivalent", "target": "45424e6b1372be84a91884cf2dba0d8d", "evidence": {"same_day": true, "patch_ids": ["80a7a00ec4016a3f70da1e679e4fed0e"], "statement_hash": "606cd08770824c6b946b195f14f288e7f41105097c867a6fcdf6380295e6d06a"}}, {"rule": 2, "type": "equivalent", "target": "bd9045a2e00976ab3d6a6dc6d5f68036", "evidence": {"same_day": true, "patch_ids": ["80a7a00ec4016a3f70da1e679e4fed0e"], "statement_hash": "606cd08770824c6b946b195f14f288e7f41105097c867a6fcdf6380295e6d06a"}}, {"rule": 2, "type": "equivalent", "target": "d094e9c5bdbf803a9b838d09d2f0595b", "evidence": {"same_day": true, "patch_ids": ["80a7a00ec4016a3f70da1e679e4fed0e"], "statement_hash": "606cd08770824c6b946b195f14f288e7f41105097c867a6fcdf6380295e6d06a"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bd9045a2e00976ab3d6a6dc6d5f68036", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复 to_char() 使用 EEEE 格式且输入的 numeric 值小于 10^(-1001) 时的除零错误", "evidence": {"same_day": true, "patch_ids": ["80a7a00ec4016a3f70da1e679e4fed0e"], "statement_hash": "606cd08770824c6b946b195f14f288e7f41105097c867a6fcdf6380295e6d06a"}, "url": "/docs/compare/?release=13.4#13.4-f46e29bd96a1048b", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "2a3e6802138b4356d9267dda3bbee1f8", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复 to_char() 使用 EEEE 格式且输入的 numeric 值小于 10^(-1001) 时的除零错误", "evidence": {"same_day": true, "patch_ids": ["80a7a00ec4016a3f70da1e679e4fed0e"], "statement_hash": "606cd08770824c6b946b195f14f288e7f41105097c867a6fcdf6380295e6d06a"}, "url": "/docs/compare/?release=12.8#12.8-2431b52e2322788a", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "d094e9c5bdbf803a9b838d09d2f0595b", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复 to_char() 使用 EEEE 格式且输入的 numeric 值小于 10^(-1001) 时的除零错误", "evidence": {"same_day": true, "patch_ids": ["80a7a00ec4016a3f70da1e679e4fed0e"], "statement_hash": "606cd08770824c6b946b195f14f288e7f41105097c867a6fcdf6380295e6d06a"}, "url": "/docs/compare/?release=11.13#11.13-f20388febe2292ee", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "45424e6b1372be84a91884cf2dba0d8d", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复 to_char() 使用 EEEE 格式且输入的 numeric 值小于 10^(-1001) 时的除零错误", "evidence": {"same_day": true, "patch_ids": ["80a7a00ec4016a3f70da1e679e4fed0e"], "statement_hash": "606cd08770824c6b946b195f14f288e7f41105097c867a6fcdf6380295e6d06a"}, "url": "/docs/compare/?release=10.18#10.18-f20388febe2292ee", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-7273a815ed149016", "cves": [], "html": "<p>使 <code>pg_size_pretty(bigint)</code> 对负值的舍入方式与正值一致（也与 <code>numeric</code> 版本一致）（Dean Rasheed、David Rowley）</p>", "text": "使 pg_size_pretty(bigint) 对负值的舍入方式与正值一致（也与 numeric 版本一致）（Dean Rasheed、David Rowley）", "title": "使 pg_size_pretty(bigint) 对负值的舍入方式与正值一致（也与 numeric 版本一致）", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "065be1740c5f52f8c8354f87ff9b1696f0272fe882aaaffcff33f197fa1a14a4", "section_path": ["变更"], "commit_groups": [["137af4f27", "3e474a708", "87103002c", "b18621139", "dd76aa54a"], ["1efcd5720", "45bad6a39", "55fe60938", "674ee3b76", "6de3a21bb", "6f88b68ff", "efc42a1e1"]], "identity_text": "Fix pg_size_pretty(bigint) to round negative values consistently with the way it rounds positive ones (and consistently with the numeric version) (Dean Rasheed, David Rowley)", "commit_aliases": ["137af4f27", "1efcd5720", "3e474a708", "45bad6a39", "55fe60938", "674ee3b76", "6de3a21bb", "6f88b68ff", "87103002c", "b18621139", "dd76aa54a", "efc42a1e1"], "source_commits": ["3e474a708", "674ee3b76"], "source_entry_id": "9.6.23/changes/007", "db_id": "fafd2c8e77c9b9c89e7d78cb705dc449", "patch_ids": ["88a173b3364566f77c8fbdba1588b372", "d3d00fb31d1294cb72042b3c91439f53"], "statement_hash": "98554804ac43b496d300d73812eaf8cae17bae07ee4321e1db6a2dc02f059ce9", "relations": [{"rule": 2, "type": "equivalent", "target": "34ca753c4985f25191233247258e2d9a", "evidence": {"same_day": true, "patch_ids": ["88a173b3364566f77c8fbdba1588b372", "d3d00fb31d1294cb72042b3c91439f53"], "statement_hash": "98554804ac43b496d300d73812eaf8cae17bae07ee4321e1db6a2dc02f059ce9"}}, {"rule": 2, "type": "equivalent", "target": "39193057210eb3cff9d0d19d7930b2bf", "evidence": {"same_day": true, "patch_ids": ["88a173b3364566f77c8fbdba1588b372", "d3d00fb31d1294cb72042b3c91439f53"], "statement_hash": "98554804ac43b496d300d73812eaf8cae17bae07ee4321e1db6a2dc02f059ce9"}}, {"rule": 2, "type": "equivalent", "target": "69ab4eac258bc36d566c5a6d36856d52", "evidence": {"same_day": true, "patch_ids": ["88a173b3364566f77c8fbdba1588b372", "d3d00fb31d1294cb72042b3c91439f53"], "statement_hash": "98554804ac43b496d300d73812eaf8cae17bae07ee4321e1db6a2dc02f059ce9"}}, {"rule": 2, "type": "equivalent", "target": "f5e4a57cf736926b9425b5408d4db476", "evidence": {"same_day": true, "patch_ids": ["88a173b3364566f77c8fbdba1588b372", "d3d00fb31d1294cb72042b3c91439f53"], "statement_hash": "98554804ac43b496d300d73812eaf8cae17bae07ee4321e1db6a2dc02f059ce9"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "69ab4eac258bc36d566c5a6d36856d52", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复 pg_size_pretty(bigint)，使其对负值的舍入与对正值的舍入方式一致（也与 numeric 版本一致）", "evidence": {"same_day": true, "patch_ids": ["88a173b3364566f77c8fbdba1588b372", "d3d00fb31d1294cb72042b3c91439f53"], "statement_hash": "98554804ac43b496d300d73812eaf8cae17bae07ee4321e1db6a2dc02f059ce9"}, "url": "/docs/compare/?release=13.4#13.4-9c41a3729e78c303", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "f5e4a57cf736926b9425b5408d4db476", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复 pg_size_pretty(bigint)，使其对负值的舍入与对正值的舍入方式一致（也与 numeric 版本一致）", "evidence": {"same_day": true, "patch_ids": ["88a173b3364566f77c8fbdba1588b372", "d3d00fb31d1294cb72042b3c91439f53"], "statement_hash": "98554804ac43b496d300d73812eaf8cae17bae07ee4321e1db6a2dc02f059ce9"}, "url": "/docs/compare/?release=12.8#12.8-b7c566acffead0f4", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "34ca753c4985f25191233247258e2d9a", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复 pg_size_pretty(bigint)，使其对负值的舍入与对正值的舍入方式一致（也与 numeric 版本一致）", "evidence": {"same_day": true, "patch_ids": ["88a173b3364566f77c8fbdba1588b372", "d3d00fb31d1294cb72042b3c91439f53"], "statement_hash": "98554804ac43b496d300d73812eaf8cae17bae07ee4321e1db6a2dc02f059ce9"}, "url": "/docs/compare/?release=11.13#11.13-f8227c23836d368a", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "39193057210eb3cff9d0d19d7930b2bf", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复 pg_size_pretty(bigint)，使其对负值的舍入与对正值的舍入方式一致（也与 numeric 版本一致）", "evidence": {"same_day": true, "patch_ids": ["88a173b3364566f77c8fbdba1588b372", "d3d00fb31d1294cb72042b3c91439f53"], "statement_hash": "98554804ac43b496d300d73812eaf8cae17bae07ee4321e1db6a2dc02f059ce9"}, "url": "/docs/compare/?release=10.18#10.18-f8227c23836d368a", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-c340839fc3179b97", "cves": [], "html": "<p>使 <code>pg_filenode_relation(0, 0)</code> 返回 NULL 而不是报错（Justin Pryzby）</p>", "text": "使 pg_filenode_relation(0, 0) 返回 NULL 而不是报错（Justin Pryzby）", "title": "使 pg_filenode_relation(0, 0) 返回 NULL 而不是报错", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "22928160462e5b848498db0e47dd5ee3acaaaa61a19263190429d72ada857f94", "section_path": ["变更"], "commit_groups": [["1250aad42", "25d1ef1aa", "26a053533", "7681b78fb", "c1ffbbcbc", "f479ea94b"]], "identity_text": "Make pg_filenode_relation(0, 0) return NULL rather than failing (Justin Pryzby)", "commit_aliases": ["1250aad42", "25d1ef1aa", "26a053533", "7681b78fb", "c1ffbbcbc", "f479ea94b"], "source_commits": ["c1ffbbcbc"], "source_entry_id": "9.6.23/changes/008", "db_id": "36671eb3de7fe6e7610ae78099f25f69", "patch_ids": ["10e67ef8d410a8e2ad95a73e0b692ebe"], "statement_hash": "c83eabb71f1f618f93c2f11d2b743d7e18fa2ba566aa18443c85352c4d54d8ab", "relations": [{"rule": 2, "type": "equivalent", "target": "93d1c1470250c9c3abb5c670d7ae7b81", "evidence": {"same_day": true, "patch_ids": ["10e67ef8d410a8e2ad95a73e0b692ebe"], "statement_hash": "c83eabb71f1f618f93c2f11d2b743d7e18fa2ba566aa18443c85352c4d54d8ab"}}, {"rule": 2, "type": "equivalent", "target": "d424d6b0372de6e99f55b3cdce61ad08", "evidence": {"same_day": true, "patch_ids": ["10e67ef8d410a8e2ad95a73e0b692ebe"], "statement_hash": "c83eabb71f1f618f93c2f11d2b743d7e18fa2ba566aa18443c85352c4d54d8ab"}}, {"rule": 2, "type": "equivalent", "target": "dede0bdabbeda2e9785efa10139ae982", "evidence": {"same_day": true, "patch_ids": ["10e67ef8d410a8e2ad95a73e0b692ebe"], "statement_hash": "c83eabb71f1f618f93c2f11d2b743d7e18fa2ba566aa18443c85352c4d54d8ab"}}, {"rule": 2, "type": "equivalent", "target": "e0a0132936f574f74c2ce64695bb9721", "evidence": {"same_day": true, "patch_ids": ["10e67ef8d410a8e2ad95a73e0b692ebe"], "statement_hash": "c83eabb71f1f618f93c2f11d2b743d7e18fa2ba566aa18443c85352c4d54d8ab"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d424d6b0372de6e99f55b3cdce61ad08", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "使 pg_filenode_relation(0, 0) 返回 NULL，而不报错", "evidence": {"same_day": true, "patch_ids": ["10e67ef8d410a8e2ad95a73e0b692ebe"], "statement_hash": "c83eabb71f1f618f93c2f11d2b743d7e18fa2ba566aa18443c85352c4d54d8ab"}, "url": "/docs/compare/?release=13.4#13.4-f06098506cc6072a", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "93d1c1470250c9c3abb5c670d7ae7b81", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "使 pg_filenode_relation(0, 0) 返回 NULL，而不报错", "evidence": {"same_day": true, "patch_ids": ["10e67ef8d410a8e2ad95a73e0b692ebe"], "statement_hash": "c83eabb71f1f618f93c2f11d2b743d7e18fa2ba566aa18443c85352c4d54d8ab"}, "url": "/docs/compare/?release=12.8#12.8-26633e1afed913d8", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "e0a0132936f574f74c2ce64695bb9721", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "使 pg_filenode_relation(0, 0) 返回 NULL，而不报错", "evidence": {"same_day": true, "patch_ids": ["10e67ef8d410a8e2ad95a73e0b692ebe"], "statement_hash": "c83eabb71f1f618f93c2f11d2b743d7e18fa2ba566aa18443c85352c4d54d8ab"}, "url": "/docs/compare/?release=11.13#11.13-6d718ced65e93bc3", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "dede0bdabbeda2e9785efa10139ae982", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "使 pg_filenode_relation(0, 0) 返回 NULL，而不报错", "evidence": {"same_day": true, "patch_ids": ["10e67ef8d410a8e2ad95a73e0b692ebe"], "statement_hash": "c83eabb71f1f618f93c2f11d2b743d7e18fa2ba566aa18443c85352c4d54d8ab"}, "url": "/docs/compare/?release=10.18#10.18-6d718ced65e93bc3", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-c1a044377e566af3", "cves": [], "html": "<p>让 <code>ALTER EXTENSION</code> 在添加或删除成员对象时锁定扩展（Tom Lane）</p>\n<p>原来的编码允许 <code>ALTER EXTENSION ADD/DROP</code> 与 <code>DROP EXTENSION</code> 并发发生，会导致崩溃或目录条目损坏。</p>", "text": "让 ALTER EXTENSION 在添加或删除成员对象时锁定扩展（Tom Lane） 原来的编码允许 ALTER EXTENSION ADD/DROP 与 DROP EXTENSION 并发发生，会导致崩溃或目录条目损坏。", "title": "让 ALTER EXTENSION 在添加或删除成员对象时锁定扩展", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "b0515c86efe1c7e8edddcdf23b3b574ee5147438983be2805f4f28bf1f9d335d", "section_path": ["变更"], "commit_groups": [["1c612bc98", "1d49c8887", "626731db2", "69dfc36fd", "6bd9ae173", "734be249d", "92340ba5a"]], "identity_text": "Make ALTER EXTENSION lock the extension when adding or removing a member object (Tom Lane) The previous coding allowed ALTER EXTENSION ADD/DROP to occur concurrently with DROP EXTENSION, leading to a crash or corrupt catalog entries.", "commit_aliases": ["1c612bc98", "1d49c8887", "626731db2", "69dfc36fd", "6bd9ae173", "734be249d", "92340ba5a"], "source_commits": ["734be249d"], "source_entry_id": "9.6.23/changes/009", "db_id": "45489d84853b4006d1333eda22d78d00", "patch_ids": ["dd499bcc08791af341fa2ab01eb21a75"], "statement_hash": "88c7ec8188428e91b304824a8abea20e5f85af8658822295703425409ea218d8", "relations": [{"rule": 2, "type": "equivalent", "target": "1729c1ead029af35705e9805ae354bbc", "evidence": {"same_day": true, "patch_ids": ["dd499bcc08791af341fa2ab01eb21a75"], "statement_hash": "88c7ec8188428e91b304824a8abea20e5f85af8658822295703425409ea218d8"}}, {"rule": 2, "type": "equivalent", "target": "178aa2baa95fcde886dcf0cf9087fb31", "evidence": {"same_day": true, "patch_ids": ["dd499bcc08791af341fa2ab01eb21a75"], "statement_hash": "88c7ec8188428e91b304824a8abea20e5f85af8658822295703425409ea218d8"}}, {"rule": 2, "type": "equivalent", "target": "3567ed6306be41f74f22472cc8a2d4bd", "evidence": {"same_day": true, "patch_ids": ["dd499bcc08791af341fa2ab01eb21a75"], "statement_hash": "88c7ec8188428e91b304824a8abea20e5f85af8658822295703425409ea218d8"}}, {"rule": 2, "type": "equivalent", "target": "c9f202fd4cf08b7027c3b7d37d72b535", "evidence": {"same_day": true, "patch_ids": ["dd499bcc08791af341fa2ab01eb21a75"], "statement_hash": "88c7ec8188428e91b304824a8abea20e5f85af8658822295703425409ea218d8"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3567ed6306be41f74f22472cc8a2d4bd", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "使 ALTER EXTENSION 在添加或移除成员对象时锁定扩展", "evidence": {"same_day": true, "patch_ids": ["dd499bcc08791af341fa2ab01eb21a75"], "statement_hash": "88c7ec8188428e91b304824a8abea20e5f85af8658822295703425409ea218d8"}, "url": "/docs/compare/?release=13.4#13.4-747059e914b9561a", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "1729c1ead029af35705e9805ae354bbc", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "使 ALTER EXTENSION 在添加或移除成员对象时锁定扩展", "evidence": {"same_day": true, "patch_ids": ["dd499bcc08791af341fa2ab01eb21a75"], "statement_hash": "88c7ec8188428e91b304824a8abea20e5f85af8658822295703425409ea218d8"}, "url": "/docs/compare/?release=12.8#12.8-0d898b9f12abeaf3", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "178aa2baa95fcde886dcf0cf9087fb31", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "使 ALTER EXTENSION 在添加或移除成员对象时锁定扩展", "evidence": {"same_day": true, "patch_ids": ["dd499bcc08791af341fa2ab01eb21a75"], "statement_hash": "88c7ec8188428e91b304824a8abea20e5f85af8658822295703425409ea218d8"}, "url": "/docs/compare/?release=11.13#11.13-5b75b0d9bd6118c0", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "c9f202fd4cf08b7027c3b7d37d72b535", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "使 ALTER EXTENSION 在添加或移除成员对象时锁定扩展", "evidence": {"same_day": true, "patch_ids": ["dd499bcc08791af341fa2ab01eb21a75"], "statement_hash": "88c7ec8188428e91b304824a8abea20e5f85af8658822295703425409ea218d8"}, "url": "/docs/compare/?release=10.18#10.18-5b75b0d9bd6118c0", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-e82bb15bdba79cc7", "cves": [], "html": "<p>避免 <code>REFRESH MATERIALIZED VIEW CONCURRENTLY</code> 生成的查询中的别名冲突（Tom Lane、Bharath Rupireddy）</p>\n<p>此命令在物化视图包含某些名称的列（特别是 <code>mv</code> 和 <code>newdata</code>）时会失败。</p>", "text": "避免 REFRESH MATERIALIZED VIEW CONCURRENTLY 生成的查询中的别名冲突（Tom Lane、Bharath Rupireddy） 此命令在物化视图包含某些名称的列（特别是 mv 和 newdata）时会失败。", "title": "避免 REFRESH MATERIALIZED VIEW CONCURRENTLY 生成的查询中的别名冲突", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "cf8dd7117e9ea5ebdf6e05f32d483e69eb69a3a98740f1a7cbd2faa10c9b7cb0", "section_path": ["变更"], "commit_groups": [["187682c32", "20f70f558", "4ceaa760b", "75d66d10e", "d9525c46c", "dbc9dbba5"], ["1ff1e4a60", "2c915905e", "9179a82d7", "ac818984a", "ba9f665a4", "c08b3a9eb", "d33fc4110"]], "identity_text": "Avoid alias conflicts in queries generated for REFRESH MATERIALIZED VIEW CONCURRENTLY (Tom Lane, Bharath Rupireddy) This command failed on materialized views containing columns with certain names, notably mv and newdata.", "commit_aliases": ["187682c32", "1ff1e4a60", "20f70f558", "2c915905e", "4ceaa760b", "75d66d10e", "9179a82d7", "ac818984a", "ba9f665a4", "c08b3a9eb", "d33fc4110", "d9525c46c", "dbc9dbba5"], "source_commits": ["c08b3a9eb", "d9525c46c"], "source_entry_id": "9.6.23/changes/010", "db_id": "4a0d1e6294826c8288be32b11211a6fa", "patch_ids": ["70ff68653e09647df3d59b03e175f4be", "7d0689d0155327294061802c91a94de2"], "statement_hash": "8cdcf5ab5984ccbddd1c78227a8dffe419718713538b1a5e41588e8d847c9758", "relations": [{"rule": 2, "type": "equivalent", "target": "2af09831c0608fb64c1ff09804e6d85a", "evidence": {"same_day": true, "patch_ids": ["70ff68653e09647df3d59b03e175f4be", "7d0689d0155327294061802c91a94de2"], "statement_hash": "8cdcf5ab5984ccbddd1c78227a8dffe419718713538b1a5e41588e8d847c9758"}}, {"rule": 2, "type": "equivalent", "target": "3ccdbeeccc3c93fa54ad304acf7a605f", "evidence": {"same_day": true, "patch_ids": ["70ff68653e09647df3d59b03e175f4be", "7d0689d0155327294061802c91a94de2"], "statement_hash": "8cdcf5ab5984ccbddd1c78227a8dffe419718713538b1a5e41588e8d847c9758"}}, {"rule": 2, "type": "equivalent", "target": "f8b685939c58fe0f4537cc76709fcde6", "evidence": {"same_day": true, "patch_ids": ["70ff68653e09647df3d59b03e175f4be", "7d0689d0155327294061802c91a94de2"], "statement_hash": "8cdcf5ab5984ccbddd1c78227a8dffe419718713538b1a5e41588e8d847c9758"}}, {"rule": 2, "type": "equivalent", "target": "fe8c6c86d6111aae75c228ea4bc7c0c2", "evidence": {"same_day": true, "patch_ids": ["70ff68653e09647df3d59b03e175f4be", "7d0689d0155327294061802c91a94de2"], "statement_hash": "8cdcf5ab5984ccbddd1c78227a8dffe419718713538b1a5e41588e8d847c9758"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3ccdbeeccc3c93fa54ad304acf7a605f", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "避免为 REFRESH MATERIALIZED VIEW CONCURRENTLY 生成的查询中的别名冲突", "evidence": {"same_day": true, "patch_ids": ["70ff68653e09647df3d59b03e175f4be", "7d0689d0155327294061802c91a94de2"], "statement_hash": "8cdcf5ab5984ccbddd1c78227a8dffe419718713538b1a5e41588e8d847c9758"}, "url": "/docs/compare/?release=13.4#13.4-3fcbfbaac6722a33", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "f8b685939c58fe0f4537cc76709fcde6", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "避免为 REFRESH MATERIALIZED VIEW CONCURRENTLY 生成的查询中的别名冲突", "evidence": {"same_day": true, "patch_ids": ["70ff68653e09647df3d59b03e175f4be", "7d0689d0155327294061802c91a94de2"], "statement_hash": "8cdcf5ab5984ccbddd1c78227a8dffe419718713538b1a5e41588e8d847c9758"}, "url": "/docs/compare/?release=12.8#12.8-207d5b19ac24c304", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "2af09831c0608fb64c1ff09804e6d85a", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "避免为 REFRESH MATERIALIZED VIEW CONCURRENTLY 生成的查询中的别名冲突", "evidence": {"same_day": true, "patch_ids": ["70ff68653e09647df3d59b03e175f4be", "7d0689d0155327294061802c91a94de2"], "statement_hash": "8cdcf5ab5984ccbddd1c78227a8dffe419718713538b1a5e41588e8d847c9758"}, "url": "/docs/compare/?release=11.13#11.13-b66bdddab5871fd3", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "fe8c6c86d6111aae75c228ea4bc7c0c2", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "避免为 REFRESH MATERIALIZED VIEW CONCURRENTLY 生成的查询中的别名冲突", "evidence": {"same_day": true, "patch_ids": ["70ff68653e09647df3d59b03e175f4be", "7d0689d0155327294061802c91a94de2"], "statement_hash": "8cdcf5ab5984ccbddd1c78227a8dffe419718713538b1a5e41588e8d847c9758"}, "url": "/docs/compare/?release=10.18#10.18-b66bdddab5871fd3", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-8df74ba84e013c37", "cves": [], "html": "<p>修复 <code>PREPARE TRANSACTION</code> 对会话级与事务级锁冲突的正确检查（Tom Lane）</p>\n<p>如果一个事务在同一个咨询锁 ID 值上同时持有会话级和事务级锁，它就不能被预备。这一限制没有被完整检查，可能导致 <code>PREPARE TRANSACTION</code> 期间发生 PANIC。</p>", "text": "修复 PREPARE TRANSACTION 对会话级与事务级锁冲突的正确检查（Tom Lane） 如果一个事务在同一个咨询锁 ID 值上同时持有会话级和事务级锁，它就不能被预备。这一限制没有被完整检查，可能导致 PREPARE TRANSACTION 期间发生 PANIC。", "title": "修复 PREPARE TRANSACTION 对会话级与事务级锁冲突的正确检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "e4813c482fd4f379430390d4b9e0497a05a2fb63965567b116a10aa753678f46", "section_path": ["变更"], "commit_groups": [["1861390e6", "6310809c4", "654372169", "712ba6b8b", "7b2262a21", "899785b4f", "f47408cdc"]], "identity_text": "Fix PREPARE TRANSACTION to check correctly for conflicting session-lifespan and transaction-lifespan locks (Tom Lane) A transaction cannot be prepared if it has both session-lifespan and transaction-lifespan locks on the same advisory-lock ID value. This restriction was not fully checked, which could lead to a PANIC during PREPARE TRANSACTION.", "commit_aliases": ["1861390e6", "6310809c4", "654372169", "712ba6b8b", "7b2262a21", "899785b4f", "f47408cdc"], "source_commits": ["1861390e6"], "source_entry_id": "9.6.23/changes/011", "db_id": "2ad698d49564e202394af7abaff7e460", "patch_ids": ["89e8956ee16dd6130b65127c48f96e41"], "statement_hash": "edcb169c6e36c5f2d292db8ee2997bef5e9fba2b82b4ee7487e1817d26f5646d", "relations": [{"rule": 2, "type": "equivalent", "target": "3edde841acacd6ac0b911b5b7439eb05", "evidence": {"same_day": true, "patch_ids": ["89e8956ee16dd6130b65127c48f96e41"], "statement_hash": "edcb169c6e36c5f2d292db8ee2997bef5e9fba2b82b4ee7487e1817d26f5646d"}}, {"rule": 2, "type": "equivalent", "target": "47a0d6f8402997d619993d798dbdd949", "evidence": {"same_day": true, "patch_ids": ["89e8956ee16dd6130b65127c48f96e41"], "statement_hash": "edcb169c6e36c5f2d292db8ee2997bef5e9fba2b82b4ee7487e1817d26f5646d"}}, {"rule": 2, "type": "equivalent", "target": "4d5601526056b316693cc1cc32aaf8f9", "evidence": {"same_day": true, "patch_ids": ["89e8956ee16dd6130b65127c48f96e41"], "statement_hash": "edcb169c6e36c5f2d292db8ee2997bef5e9fba2b82b4ee7487e1817d26f5646d"}}, {"rule": 2, "type": "equivalent", "target": "928c478d377cdcd99bd55aae832762ed", "evidence": {"same_day": true, "patch_ids": ["89e8956ee16dd6130b65127c48f96e41"], "statement_hash": "edcb169c6e36c5f2d292db8ee2997bef5e9fba2b82b4ee7487e1817d26f5646d"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "928c478d377cdcd99bd55aae832762ed", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复 PREPARE TRANSACTION，使其正确检查会话生命周期锁与事务生命周期锁之间的冲突", "evidence": {"same_day": true, "patch_ids": ["89e8956ee16dd6130b65127c48f96e41"], "statement_hash": "edcb169c6e36c5f2d292db8ee2997bef5e9fba2b82b4ee7487e1817d26f5646d"}, "url": "/docs/compare/?release=13.4#13.4-cd704a3ec137775e", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "47a0d6f8402997d619993d798dbdd949", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复 PREPARE TRANSACTION，使其正确检查会话生命周期锁与事务生命周期锁之间的冲突", "evidence": {"same_day": true, "patch_ids": ["89e8956ee16dd6130b65127c48f96e41"], "statement_hash": "edcb169c6e36c5f2d292db8ee2997bef5e9fba2b82b4ee7487e1817d26f5646d"}, "url": "/docs/compare/?release=12.8#12.8-500cbade61d9cf55", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "4d5601526056b316693cc1cc32aaf8f9", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复 PREPARE TRANSACTION，使其正确检查会话生命周期锁与事务生命周期锁之间的冲突", "evidence": {"same_day": true, "patch_ids": ["89e8956ee16dd6130b65127c48f96e41"], "statement_hash": "edcb169c6e36c5f2d292db8ee2997bef5e9fba2b82b4ee7487e1817d26f5646d"}, "url": "/docs/compare/?release=11.13#11.13-e54e8778e0aa4f58", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "3edde841acacd6ac0b911b5b7439eb05", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复 PREPARE TRANSACTION，使其正确检查会话生命周期锁与事务生命周期锁之间的冲突", "evidence": {"same_day": true, "patch_ids": ["89e8956ee16dd6130b65127c48f96e41"], "statement_hash": "edcb169c6e36c5f2d292db8ee2997bef5e9fba2b82b4ee7487e1817d26f5646d"}, "url": "/docs/compare/?release=10.18#10.18-e54e8778e0aa4f58", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-f0f7468247a92762", "cves": [], "html": "<p>修复目标角色在 RLS 策略中被列出多于一次时 <code>DROP OWNED BY</code> 的错误行为（Tom Lane）</p>", "text": "修复目标角色在 RLS 策略中被列出多于一次时 DROP OWNED BY 的错误行为（Tom Lane）", "title": "修复目标角色在 RLS 策略中被列出多于一次时 DROP OWNED BY 的错误行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "7822fc16d795024ec7d14d6aca66899d2b3079714baada412a46f5c56450280b", "section_path": ["变更"], "commit_groups": [["0b29b41e5", "33af10c59", "b7e3a4407", "c58a41605", "d21fca084", "ea5ae3ae1"]], "identity_text": "Fix misbehavior of DROP OWNED BY when the target role is listed more than once in an RLS policy (Tom Lane)", "commit_aliases": ["0b29b41e5", "33af10c59", "b7e3a4407", "c58a41605", "d21fca084", "ea5ae3ae1"], "source_commits": ["0b29b41e5"], "source_entry_id": "9.6.23/changes/012", "db_id": "2353b16332df3a6da9247b7c518f853c", "patch_ids": ["7579e7cde0b90026b5d66f1324899014"], "statement_hash": "8e6d30a451f33680e7f6c8dcd9f4cad405d77c53b7300fa8972af4ee4f654519", "relations": [{"rule": 2, "type": "equivalent", "target": "0c4a00395dddd67c8085f5bd82115ee1", "evidence": {"same_day": true, "patch_ids": ["7579e7cde0b90026b5d66f1324899014"], "statement_hash": "8e6d30a451f33680e7f6c8dcd9f4cad405d77c53b7300fa8972af4ee4f654519"}}, {"rule": 2, "type": "equivalent", "target": "67ffa47f0d4c24715fb02df5efa88cd5", "evidence": {"same_day": true, "patch_ids": ["7579e7cde0b90026b5d66f1324899014"], "statement_hash": "8e6d30a451f33680e7f6c8dcd9f4cad405d77c53b7300fa8972af4ee4f654519"}}, {"rule": 2, "type": "equivalent", "target": "af52947a3252db7bf1989c438602391f", "evidence": {"same_day": true, "patch_ids": ["7579e7cde0b90026b5d66f1324899014"], "statement_hash": "8e6d30a451f33680e7f6c8dcd9f4cad405d77c53b7300fa8972af4ee4f654519"}}, {"rule": 2, "type": "equivalent", "target": "e8d3b047c17159e919b12e70c0b64451", "evidence": {"same_day": true, "patch_ids": ["7579e7cde0b90026b5d66f1324899014"], "statement_hash": "8e6d30a451f33680e7f6c8dcd9f4cad405d77c53b7300fa8972af4ee4f654519"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e8d3b047c17159e919b12e70c0b64451", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复目标角色在 RLS 策略中被列出多次时 DROP OWNED BY 的异常行为", "evidence": {"same_day": true, "patch_ids": ["7579e7cde0b90026b5d66f1324899014"], "statement_hash": "8e6d30a451f33680e7f6c8dcd9f4cad405d77c53b7300fa8972af4ee4f654519"}, "url": "/docs/compare/?release=13.4#13.4-01dd5b6c349ec1dc", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "0c4a00395dddd67c8085f5bd82115ee1", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复目标角色在 RLS 策略中被列出多次时 DROP OWNED BY 的异常行为", "evidence": {"same_day": true, "patch_ids": ["7579e7cde0b90026b5d66f1324899014"], "statement_hash": "8e6d30a451f33680e7f6c8dcd9f4cad405d77c53b7300fa8972af4ee4f654519"}, "url": "/docs/compare/?release=12.8#12.8-cff0d8ac900b2aab", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "67ffa47f0d4c24715fb02df5efa88cd5", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复目标角色在 RLS 策略中被列出多次时 DROP OWNED BY 的异常行为", "evidence": {"same_day": true, "patch_ids": ["7579e7cde0b90026b5d66f1324899014"], "statement_hash": "8e6d30a451f33680e7f6c8dcd9f4cad405d77c53b7300fa8972af4ee4f654519"}, "url": "/docs/compare/?release=11.13#11.13-b09fd560d56678ec", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "af52947a3252db7bf1989c438602391f", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复目标角色在 RLS 策略中被列出多次时 DROP OWNED BY 的异常行为", "evidence": {"same_day": true, "patch_ids": ["7579e7cde0b90026b5d66f1324899014"], "statement_hash": "8e6d30a451f33680e7f6c8dcd9f4cad405d77c53b7300fa8972af4ee4f654519"}, "url": "/docs/compare/?release=10.18#10.18-b09fd560d56678ec", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-c4b8bddf96c3b8ee", "cves": [], "html": "<p>在 <code>DROP OWNED BY</code> 期间从 RLS 策略中移除角色时，跳过不必要的错误测试（Tom Lane）</p>\n<p>值得注意的是，这修复了某些必须成为超级用户才能使用 <code>DROP OWNED BY</code> 的情况。</p>", "text": "在 DROP OWNED BY 期间从 RLS 策略中移除角色时，跳过不必要的错误测试（Tom Lane） 值得注意的是，这修复了某些必须成为超级用户才能使用 DROP OWNED BY 的情况。", "title": "在 DROP OWNED BY 期间从 RLS 策略中移除角色时，跳过不必要的错误测试", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "7443f185c411a10f3c3b38229c90897a7feba67e829d134f1d54c1d07bcae3ed", "section_path": ["变更"], "commit_groups": [["5a0f1c8c0", "9c7a150ae", "ba815f00a", "f5b780c45", "f851696a2", "fea89d64e"]], "identity_text": "Skip unnecessary error tests when removing a role from an RLS policy during DROP OWNED BY (Tom Lane) Notably, this fixes some cases where it was necessary to be a superuser to use DROP OWNED BY.", "commit_aliases": ["5a0f1c8c0", "9c7a150ae", "ba815f00a", "f5b780c45", "f851696a2", "fea89d64e"], "source_commits": ["9c7a150ae"], "source_entry_id": "9.6.23/changes/013", "db_id": "cf12661fbf35ed382cf7e314bb0f1003", "patch_ids": ["37a292110a66b50c73ef7932e9a02016"], "statement_hash": "9b6003b41b0618a03cdfcbb5df47a9c517d445dac186fc9504dccf08905c09be", "relations": [{"rule": 2, "type": "equivalent", "target": "266bd9791be4129ffaad1876bc539795", "evidence": {"same_day": true, "patch_ids": ["37a292110a66b50c73ef7932e9a02016"], "statement_hash": "9b6003b41b0618a03cdfcbb5df47a9c517d445dac186fc9504dccf08905c09be"}}, {"rule": 2, "type": "equivalent", "target": "54d2e370dd3ff3d827626facc0716d89", "evidence": {"same_day": true, "patch_ids": ["37a292110a66b50c73ef7932e9a02016"], "statement_hash": "9b6003b41b0618a03cdfcbb5df47a9c517d445dac186fc9504dccf08905c09be"}}, {"rule": 2, "type": "equivalent", "target": "dd70de71fdedac4cbed285b0568105cb", "evidence": {"same_day": true, "patch_ids": ["37a292110a66b50c73ef7932e9a02016"], "statement_hash": "9b6003b41b0618a03cdfcbb5df47a9c517d445dac186fc9504dccf08905c09be"}}, {"rule": 2, "type": "equivalent", "target": "f85b3d3a00f6b3887834402d73f7b11c", "evidence": {"same_day": true, "patch_ids": ["37a292110a66b50c73ef7932e9a02016"], "statement_hash": "9b6003b41b0618a03cdfcbb5df47a9c517d445dac186fc9504dccf08905c09be"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "266bd9791be4129ffaad1876bc539795", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "在 DROP OWNED BY 期间从 RLS 策略中移除角色时，跳过不必要的错误检查", "evidence": {"same_day": true, "patch_ids": ["37a292110a66b50c73ef7932e9a02016"], "statement_hash": "9b6003b41b0618a03cdfcbb5df47a9c517d445dac186fc9504dccf08905c09be"}, "url": "/docs/compare/?release=13.4#13.4-8b00d9aebd7f4837", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "dd70de71fdedac4cbed285b0568105cb", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "在 DROP OWNED BY 期间从 RLS 策略中移除角色时，跳过不必要的错误检查", "evidence": {"same_day": true, "patch_ids": ["37a292110a66b50c73ef7932e9a02016"], "statement_hash": "9b6003b41b0618a03cdfcbb5df47a9c517d445dac186fc9504dccf08905c09be"}, "url": "/docs/compare/?release=12.8#12.8-ea2d9f34ca92ea2c", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "f85b3d3a00f6b3887834402d73f7b11c", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "在 DROP OWNED BY 期间从 RLS 策略中移除角色时，跳过不必要的错误检查", "evidence": {"same_day": true, "patch_ids": ["37a292110a66b50c73ef7932e9a02016"], "statement_hash": "9b6003b41b0618a03cdfcbb5df47a9c517d445dac186fc9504dccf08905c09be"}, "url": "/docs/compare/?release=11.13#11.13-39cd1e67e9e9bf7f", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "54d2e370dd3ff3d827626facc0716d89", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "在 DROP OWNED BY 期间从 RLS 策略中移除角色时，跳过不必要的错误检查", "evidence": {"same_day": true, "patch_ids": ["37a292110a66b50c73ef7932e9a02016"], "statement_hash": "9b6003b41b0618a03cdfcbb5df47a9c517d445dac186fc9504dccf08905c09be"}, "url": "/docs/compare/?release=10.18#10.18-39cd1e67e9e9bf7f", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-7f825a57fab789ce", "cves": [], "html": "<p>允许以事务方式更新索引状态标志（Michael Paquier、Andrey Lepikhov）</p>\n<p>这避免了处理并非真正不可变的索引谓词时的失败。虽然这不被视为受支持的情况，但此处使用非事务更新的原有原因早已不存在，因此不妨改掉。</p>", "text": "允许以事务方式更新索引状态标志（Michael Paquier、Andrey Lepikhov） 这避免了处理并非真正不可变的索引谓词时的失败。虽然这不被视为受支持的情况，但此处使用非事务更新的原有原因早已不存在，因此不妨改掉。", "title": "允许以事务方式更新索引状态标志", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "f36da27afce294d17015c01694b8dfcc8f346b70c2f777fe216c6385a29a5491", "section_path": ["变更"], "commit_groups": [["08acba558", "3c465883b", "83158f74d", "acb60edf0", "d3d0cbeb6", "e52f7cbec"], ["09a69f6e2", "21257a8f6", "38ca11ade", "5160d5bb1", "ce8949c4b", "fd7bc10ab"]], "identity_text": "Allow index state flags to be updated transactionally (Michael Paquier, Andrey Lepikhov) This avoids failures when dealing with index predicates that aren't really immutable. While that's not considered a supported case, the original reason for using a non-transactional update here is long gone, so we may as well change it.", "commit_aliases": ["08acba558", "09a69f6e2", "21257a8f6", "38ca11ade", "3c465883b", "5160d5bb1", "83158f74d", "acb60edf0", "ce8949c4b", "d3d0cbeb6", "e52f7cbec", "fd7bc10ab"], "source_commits": ["21257a8f6", "d3d0cbeb6"], "source_entry_id": "9.6.23/changes/014", "db_id": "4615fb71fd6a071460cda281b79ab381", "patch_ids": ["b4711bb81381372073885e14d05d442c", "ff0fda38b552c4958c149f887a424375"], "statement_hash": "fceef81003e23c13f9b85edb1bda32594c237d9e7c2bb4417176dc340ac5c450", "relations": [{"rule": 2, "type": "equivalent", "target": "1c5ced4e02d1b5521ef1e2452b440c76", "evidence": {"same_day": true, "patch_ids": ["b4711bb81381372073885e14d05d442c", "ff0fda38b552c4958c149f887a424375"], "statement_hash": "fceef81003e23c13f9b85edb1bda32594c237d9e7c2bb4417176dc340ac5c450"}}, {"rule": 2, "type": "equivalent", "target": "3dd39da7526c10e8c3b93255618c75aa", "evidence": {"same_day": true, "patch_ids": ["b4711bb81381372073885e14d05d442c", "ff0fda38b552c4958c149f887a424375"], "statement_hash": "fceef81003e23c13f9b85edb1bda32594c237d9e7c2bb4417176dc340ac5c450"}}, {"rule": 2, "type": "equivalent", "target": "4e3a50b239b385709016d4389c0a561c", "evidence": {"same_day": true, "patch_ids": ["b4711bb81381372073885e14d05d442c", "ff0fda38b552c4958c149f887a424375"], "statement_hash": "fceef81003e23c13f9b85edb1bda32594c237d9e7c2bb4417176dc340ac5c450"}}, {"rule": 2, "type": "equivalent", "target": "e0a6f77e57a9ea80fc0e0158b1142e01", "evidence": {"same_day": true, "patch_ids": ["b4711bb81381372073885e14d05d442c", "ff0fda38b552c4958c149f887a424375"], "statement_hash": "fceef81003e23c13f9b85edb1bda32594c237d9e7c2bb4417176dc340ac5c450"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c5ced4e02d1b5521ef1e2452b440c76", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "允许以事务方式更新索引状态标志", "evidence": {"same_day": true, "patch_ids": ["b4711bb81381372073885e14d05d442c", "ff0fda38b552c4958c149f887a424375"], "statement_hash": "fceef81003e23c13f9b85edb1bda32594c237d9e7c2bb4417176dc340ac5c450"}, "url": "/docs/compare/?release=13.4#13.4-ab9c52ebaf3e9d34", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "4e3a50b239b385709016d4389c0a561c", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "允许以事务方式更新索引状态标志", "evidence": {"same_day": true, "patch_ids": ["b4711bb81381372073885e14d05d442c", "ff0fda38b552c4958c149f887a424375"], "statement_hash": "fceef81003e23c13f9b85edb1bda32594c237d9e7c2bb4417176dc340ac5c450"}, "url": "/docs/compare/?release=12.8#12.8-b284661d64d31cde", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "e0a6f77e57a9ea80fc0e0158b1142e01", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "允许以事务方式更新索引状态标志", "evidence": {"same_day": true, "patch_ids": ["b4711bb81381372073885e14d05d442c", "ff0fda38b552c4958c149f887a424375"], "statement_hash": "fceef81003e23c13f9b85edb1bda32594c237d9e7c2bb4417176dc340ac5c450"}, "url": "/docs/compare/?release=11.13#11.13-7f825a57fab789ce", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "3dd39da7526c10e8c3b93255618c75aa", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "允许以事务方式更新索引状态标志", "evidence": {"same_day": true, "patch_ids": ["b4711bb81381372073885e14d05d442c", "ff0fda38b552c4958c149f887a424375"], "statement_hash": "fceef81003e23c13f9b85edb1bda32594c237d9e7c2bb4417176dc340ac5c450"}, "url": "/docs/compare/?release=10.18#10.18-7f825a57fab789ce", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-c9045da568ee7841", "cves": [], "html": "<p>避免 <code>CREATE DOMAIN</code> 或 <code>ALTER DOMAIN</code> 出现在缓存计划中时损坏计划缓存条目（Tom Lane）</p>", "text": "避免 CREATE DOMAIN 或 ALTER DOMAIN 出现在缓存计划中时损坏计划缓存条目（Tom Lane）", "title": "避免 CREATE DOMAIN 或 ALTER DOMAIN 出现在缓存计划中时损坏计划缓存条目", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "f8b0f17e94ddd448b135531b3e3ee1e62c797a45f7db5bb3806cb6fae94997b5", "section_path": ["变更"], "commit_groups": [["102f31a20", "1a3d30255", "4b8b3562e", "b2c740c42", "f172438ef"]], "identity_text": "Avoid corrupting the plan cache entry when CREATE DOMAIN or ALTER DOMAIN appears in a cached plan (Tom Lane)", "commit_aliases": ["102f31a20", "1a3d30255", "4b8b3562e", "b2c740c42", "f172438ef"], "source_commits": ["1a3d30255"], "source_entry_id": "9.6.23/changes/015", "db_id": "7dce150b08afdefc510d6859ee6a625c", "patch_ids": ["b08f56f1da4c28135bcd86d1aee29903"], "statement_hash": "f76f1557111dec9e790eecdd68ffc4899ff15a918ffc9e22032a8df64f105ab4", "relations": [{"rule": 2, "type": "equivalent", "target": "2d945c8220e29212708480ff13d49edc", "evidence": {"same_day": true, "patch_ids": ["b08f56f1da4c28135bcd86d1aee29903"], "statement_hash": "f76f1557111dec9e790eecdd68ffc4899ff15a918ffc9e22032a8df64f105ab4"}}, {"rule": 2, "type": "equivalent", "target": "52ec5ee37f4168ebeaadd61026216869", "evidence": {"same_day": true, "patch_ids": ["b08f56f1da4c28135bcd86d1aee29903"], "statement_hash": "f76f1557111dec9e790eecdd68ffc4899ff15a918ffc9e22032a8df64f105ab4"}}, {"rule": 2, "type": "equivalent", "target": "5b1d123e3f5b881fd9aa5aa9d6ee5678", "evidence": {"same_day": true, "patch_ids": ["b08f56f1da4c28135bcd86d1aee29903"], "statement_hash": "f76f1557111dec9e790eecdd68ffc4899ff15a918ffc9e22032a8df64f105ab4"}}, {"rule": 2, "type": "equivalent", "target": "7096e9cdb9e280dcd89c0656cbe90f88", "evidence": {"same_day": true, "patch_ids": ["b08f56f1da4c28135bcd86d1aee29903"], "statement_hash": "f76f1557111dec9e790eecdd68ffc4899ff15a918ffc9e22032a8df64f105ab4"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2d945c8220e29212708480ff13d49edc", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "避免缓存计划中出现 CREATE DOMAIN 或 ALTER DOMAIN 时损坏计划缓存条目", "evidence": {"same_day": true, "patch_ids": ["b08f56f1da4c28135bcd86d1aee29903"], "statement_hash": "f76f1557111dec9e790eecdd68ffc4899ff15a918ffc9e22032a8df64f105ab4"}, "url": "/docs/compare/?release=13.4#13.4-64a35eab127e0316", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "5b1d123e3f5b881fd9aa5aa9d6ee5678", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "避免缓存计划中出现 CREATE DOMAIN 或 ALTER DOMAIN 时损坏计划缓存条目", "evidence": {"same_day": true, "patch_ids": ["b08f56f1da4c28135bcd86d1aee29903"], "statement_hash": "f76f1557111dec9e790eecdd68ffc4899ff15a918ffc9e22032a8df64f105ab4"}, "url": "/docs/compare/?release=12.8#12.8-0a088beb8326d4ae", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "7096e9cdb9e280dcd89c0656cbe90f88", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "避免缓存计划中出现 CREATE DOMAIN 或 ALTER DOMAIN 时损坏计划缓存条目", "evidence": {"same_day": true, "patch_ids": ["b08f56f1da4c28135bcd86d1aee29903"], "statement_hash": "f76f1557111dec9e790eecdd68ffc4899ff15a918ffc9e22032a8df64f105ab4"}, "url": "/docs/compare/?release=11.13#11.13-046b7b8849695a4d", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "52ec5ee37f4168ebeaadd61026216869", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "避免缓存计划中出现 CREATE DOMAIN 或 ALTER DOMAIN 时损坏计划缓存条目", "evidence": {"same_day": true, "patch_ids": ["b08f56f1da4c28135bcd86d1aee29903"], "statement_hash": "f76f1557111dec9e790eecdd68ffc4899ff15a918ffc9e22032a8df64f105ab4"}, "url": "/docs/compare/?release=10.18#10.18-046b7b8849695a4d", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-e0edac604264b086", "cves": [], "html": "<p>当 <code>postgresql.conf</code> 中相关条目被移除时，让 <code>pg_settings</code>.<code>pending_restart</code> 显示为 true（Álvaro Herrera）</p>\n<p><code>pending_restart</code> 能正确显示某个不重启 postmaster 就无法更改的条目被修改的情况，但不能显示该条目被完全移除的情况。</p>", "text": "当 postgresql.conf 中相关条目被移除时，让 pg_settings.pending_restart 显示为 true（Álvaro Herrera） pending_restart 能正确显示某个不重启 postmaster 就无法更改的条目被修改的情况，但不能显示该条目被完全移除的情况。", "title": "当 postgresql.conf 中相关条目被移除时，让 pg_settings.pending_restart 显示为 true", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "e501c0aeabee0a2597fad2b2a6075a721e5dcbafc5c93872445ff6a26e010eb9", "section_path": ["变更"], "commit_groups": [["04fa0e11a", "6feb229f5", "85ec6c322", "93a0bf239", "ad3b40eb2", "b8f91d7f9", "ddd1eac99"]], "identity_text": "Make pg_settings.pending_restart show as true when the pertinent entry in postgresql.conf has been removed (Álvaro Herrera) pending_restart correctly showed the case where an entry that cannot be changed without a postmaster restart has been modified, but not where the entry had been removed altogether.", "commit_aliases": ["04fa0e11a", "6feb229f5", "85ec6c322", "93a0bf239", "ad3b40eb2", "b8f91d7f9", "ddd1eac99"], "source_commits": ["85ec6c322"], "source_entry_id": "9.6.23/changes/016", "db_id": "4ccde26fc9842ce8e841be178ea4defd", "patch_ids": ["0b8a37692687ee6d81a0f7eabed64646"], "statement_hash": "ffdcbbe4a2469bcfb1ec79d6a8871aefdb06a4869cd79b7a00b34513bcb6bcd5", "relations": [{"rule": 2, "type": "equivalent", "target": "214ebf061a91b6e91d963d4b367a643c", "evidence": {"same_day": true, "patch_ids": ["0b8a37692687ee6d81a0f7eabed64646"], "statement_hash": "ffdcbbe4a2469bcfb1ec79d6a8871aefdb06a4869cd79b7a00b34513bcb6bcd5"}}, {"rule": 2, "type": "equivalent", "target": "2ddb89f6b40031fc05bf25e7e60df95a", "evidence": {"same_day": true, "patch_ids": ["0b8a37692687ee6d81a0f7eabed64646"], "statement_hash": "ffdcbbe4a2469bcfb1ec79d6a8871aefdb06a4869cd79b7a00b34513bcb6bcd5"}}, {"rule": 2, "type": "equivalent", "target": "f51763e61424d26a901669227dbf19ac", "evidence": {"same_day": true, "patch_ids": ["0b8a37692687ee6d81a0f7eabed64646"], "statement_hash": "ffdcbbe4a2469bcfb1ec79d6a8871aefdb06a4869cd79b7a00b34513bcb6bcd5"}}, {"rule": 2, "type": "equivalent", "target": "fb2ac3a9466149d81735ba13bdc69d04", "evidence": {"same_day": true, "patch_ids": ["0b8a37692687ee6d81a0f7eabed64646"], "statement_hash": "ffdcbbe4a2469bcfb1ec79d6a8871aefdb06a4869cd79b7a00b34513bcb6bcd5"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fb2ac3a9466149d81735ba13bdc69d04", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "当 postgresql.conf 中的相关条目被移除时，使 pg_settings.pending_restart 显示为 true", "evidence": {"same_day": true, "patch_ids": ["0b8a37692687ee6d81a0f7eabed64646"], "statement_hash": "ffdcbbe4a2469bcfb1ec79d6a8871aefdb06a4869cd79b7a00b34513bcb6bcd5"}, "url": "/docs/compare/?release=13.4#13.4-5f53af2ccbf7469b", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "214ebf061a91b6e91d963d4b367a643c", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "当 postgresql.conf 中的相关条目被移除时，使 pg_settings.pending_restart 显示为 true", "evidence": {"same_day": true, "patch_ids": ["0b8a37692687ee6d81a0f7eabed64646"], "statement_hash": "ffdcbbe4a2469bcfb1ec79d6a8871aefdb06a4869cd79b7a00b34513bcb6bcd5"}, "url": "/docs/compare/?release=12.8#12.8-68221b0ab049b642", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "f51763e61424d26a901669227dbf19ac", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "当 postgresql.conf 中的相关条目被移除时，使 pg_settings.pending_restart 显示为 true", "evidence": {"same_day": true, "patch_ids": ["0b8a37692687ee6d81a0f7eabed64646"], "statement_hash": "ffdcbbe4a2469bcfb1ec79d6a8871aefdb06a4869cd79b7a00b34513bcb6bcd5"}, "url": "/docs/compare/?release=11.13#11.13-6bd198750a84ddb3", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "2ddb89f6b40031fc05bf25e7e60df95a", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "当 postgresql.conf 中的相关条目被移除时，使 pg_settings.pending_restart 显示为 true", "evidence": {"same_day": true, "patch_ids": ["0b8a37692687ee6d81a0f7eabed64646"], "statement_hash": "ffdcbbe4a2469bcfb1ec79d6a8871aefdb06a4869cd79b7a00b34513bcb6bcd5"}, "url": "/docs/compare/?release=10.18#10.18-6bd198750a84ddb3", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-14699dcd8ac351ac", "cves": [], "html": "<p>修复新备库跟随新主库时的一种边界失败（Dilip Kumar、Robert Haas）</p>\n<p>在条件的一种狭窄组合下，备库可能最终试图跟随错误的 WAL 时间线。</p>", "text": "修复新备库跟随新主库时的一种边界失败（Dilip Kumar、Robert Haas） 在条件的一种狭窄组合下，备库可能最终试图跟随错误的 WAL 时间线。", "title": "修复新备库跟随新主库时的一种边界失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "e9e4ffa69c6b2eba056818265ba861c49270594022d935df6eacb21199542794", "section_path": ["变更"], "commit_groups": [["082656429", "31bda6a22", "5d950c721", "6eb5b9ae3", "ca158c168", "caba8f0d4"], ["0cd8a55bd", "1730a3334", "45322bd9b", "8b9e1275c", "c3652f976", "dee7ad20d"], ["1c2c6a9a2", "2208d71a0", "3465328aa", "4dcb1d087", "534b9be80", "6cd0e55f9"], ["1dc53c914", "54a5ed220", "c0a758780", "d906d106f", "e46f6a078", "fb3d6b0e1"], ["319d616dd", "47d5781cb", "84cb4be71", "8cb3d95c2", "914c716ca", "9d97c3408"], ["38982b8b7", "6fc2febc2", "75212a854", "9778a191a", "99a0a2ada"]], "identity_text": "Fix corner-case failure of a new standby to follow a new primary (Dilip Kumar, Robert Haas) Under a narrow combination of conditions, the standby could wind up trying to follow the wrong WAL timeline.", "commit_aliases": ["082656429", "0cd8a55bd", "1730a3334", "1c2c6a9a2", "1dc53c914", "2208d71a0", "319d616dd", "31bda6a22", "3465328aa", "38982b8b7", "45322bd9b", "47d5781cb", "4dcb1d087", "534b9be80", "54a5ed220", "5d950c721", "6cd0e55f9", "6eb5b9ae3", "6fc2febc2", "75212a854", "84cb4be71", "8b9e1275c", "8cb3d95c2", "914c716ca", "9778a191a", "99a0a2ada", "9d97c3408", "c0a758780", "c3652f976", "ca158c168", "caba8f0d4", "d906d106f", "dee7ad20d", "e46f6a078", "fb3d6b0e1"], "source_commits": ["6cd0e55f9", "6eb5b9ae3", "75212a854", "84cb4be71", "dee7ad20d", "e46f6a078"], "source_entry_id": "9.6.23/changes/017", "db_id": "b3d40558fa7aef60774ec2f530ad9e77", "patch_ids": ["08b8d0ff13a5752c8cca9202684cbd82", "6f49a078789b6b87ee910c861b9b52bc", "c4012f5057c5485d2cc58823e633802b", "c7b73d15e7dc761cc844304dd5abfd92", "da3143c17fb547819c64196ac888d4dd", "ffb09d6dcb744b48c217698cffaeea90"], "statement_hash": "f435fa3e057a13847988b369db335be3f7eec94e6bcbfb6345a2cf26760f9d74", "relations": [{"rule": 2, "type": "equivalent", "target": "3616ef0b9921d1ae022b984a45ef8e15", "evidence": {"same_day": true, "patch_ids": ["08b8d0ff13a5752c8cca9202684cbd82", "6f49a078789b6b87ee910c861b9b52bc", "c4012f5057c5485d2cc58823e633802b", "c7b73d15e7dc761cc844304dd5abfd92", "da3143c17fb547819c64196ac888d4dd", "ffb09d6dcb744b48c217698cffaeea90"], "statement_hash": "f435fa3e057a13847988b369db335be3f7eec94e6bcbfb6345a2cf26760f9d74"}}, {"rule": 2, "type": "equivalent", "target": "aeb95223cc26407004d4ca03fbec31c9", "evidence": {"same_day": true, "patch_ids": ["08b8d0ff13a5752c8cca9202684cbd82", "6f49a078789b6b87ee910c861b9b52bc", "c4012f5057c5485d2cc58823e633802b", "c7b73d15e7dc761cc844304dd5abfd92", "da3143c17fb547819c64196ac888d4dd", "ffb09d6dcb744b48c217698cffaeea90"], "statement_hash": "f435fa3e057a13847988b369db335be3f7eec94e6bcbfb6345a2cf26760f9d74"}}, {"rule": 2, "type": "equivalent", "target": "cd470037835a657b48fee155589eb562", "evidence": {"same_day": true, "patch_ids": ["08b8d0ff13a5752c8cca9202684cbd82", "6f49a078789b6b87ee910c861b9b52bc", "c4012f5057c5485d2cc58823e633802b", "c7b73d15e7dc761cc844304dd5abfd92", "da3143c17fb547819c64196ac888d4dd", "ffb09d6dcb744b48c217698cffaeea90"], "statement_hash": "f435fa3e057a13847988b369db335be3f7eec94e6bcbfb6345a2cf26760f9d74"}}, {"rule": 2, "type": "equivalent", "target": "f8536246cf49ffd2fc1716d9b62533d8", "evidence": {"same_day": true, "patch_ids": ["08b8d0ff13a5752c8cca9202684cbd82", "6f49a078789b6b87ee910c861b9b52bc", "c4012f5057c5485d2cc58823e633802b", "c7b73d15e7dc761cc844304dd5abfd92", "da3143c17fb547819c64196ac888d4dd", "ffb09d6dcb744b48c217698cffaeea90"], "statement_hash": "f435fa3e057a13847988b369db335be3f7eec94e6bcbfb6345a2cf26760f9d74"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "aeb95223cc26407004d4ca03fbec31c9", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复新备库在边界情况下无法跟随新主库的问题", "evidence": {"same_day": true, "patch_ids": ["08b8d0ff13a5752c8cca9202684cbd82", "6f49a078789b6b87ee910c861b9b52bc", "c4012f5057c5485d2cc58823e633802b", "c7b73d15e7dc761cc844304dd5abfd92", "da3143c17fb547819c64196ac888d4dd", "ffb09d6dcb744b48c217698cffaeea90"], "statement_hash": "f435fa3e057a13847988b369db335be3f7eec94e6bcbfb6345a2cf26760f9d74"}, "url": "/docs/compare/?release=13.4#13.4-b05811dd01763640", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "cd470037835a657b48fee155589eb562", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复新备库在边界情况下无法跟随新主库的问题", "evidence": {"same_day": true, "patch_ids": ["08b8d0ff13a5752c8cca9202684cbd82", "6f49a078789b6b87ee910c861b9b52bc", "c4012f5057c5485d2cc58823e633802b", "c7b73d15e7dc761cc844304dd5abfd92", "da3143c17fb547819c64196ac888d4dd", "ffb09d6dcb744b48c217698cffaeea90"], "statement_hash": "f435fa3e057a13847988b369db335be3f7eec94e6bcbfb6345a2cf26760f9d74"}, "url": "/docs/compare/?release=12.8#12.8-de96cf3d91beee00", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "f8536246cf49ffd2fc1716d9b62533d8", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复新备库在边界情况下无法跟随新主库的问题", "evidence": {"same_day": true, "patch_ids": ["08b8d0ff13a5752c8cca9202684cbd82", "6f49a078789b6b87ee910c861b9b52bc", "c4012f5057c5485d2cc58823e633802b", "c7b73d15e7dc761cc844304dd5abfd92", "da3143c17fb547819c64196ac888d4dd", "ffb09d6dcb744b48c217698cffaeea90"], "statement_hash": "f435fa3e057a13847988b369db335be3f7eec94e6bcbfb6345a2cf26760f9d74"}, "url": "/docs/compare/?release=11.13#11.13-cec5ef0d1982dcc5", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "3616ef0b9921d1ae022b984a45ef8e15", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复新备库在边界情况下无法跟随新主库的问题", "evidence": {"same_day": true, "patch_ids": ["08b8d0ff13a5752c8cca9202684cbd82", "6f49a078789b6b87ee910c861b9b52bc", "c4012f5057c5485d2cc58823e633802b", "c7b73d15e7dc761cc844304dd5abfd92", "da3143c17fb547819c64196ac888d4dd", "ffb09d6dcb744b48c217698cffaeea90"], "statement_hash": "f435fa3e057a13847988b369db335be3f7eec94e6bcbfb6345a2cf26760f9d74"}, "url": "/docs/compare/?release=10.18#10.18-cec5ef0d1982dcc5", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-14604a39221c85af", "cves": [], "html": "<p>当 WAL 重放一条事务中止记录导致文件截断时，更新最小恢复点（Fujii Masao）</p>\n<p>文件截断是不可逆的，因此在该记录之前的点停止恢复不再安全。事务提交的相应情况多年前已修复，但这一处被遗漏了。</p>", "text": "当 WAL 重放一条事务中止记录导致文件截断时，更新最小恢复点（Fujii Masao） 文件截断是不可逆的，因此在该记录之前的点停止恢复不再安全。事务提交的相应情况多年前已修复，但这一处被遗漏了。", "title": "当 WAL 重放一条事务中止记录导致文件截断时，更新最小恢复点", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "8b005fc252b00abf8bcf2f28cb0ebd125fa7279de3b231ce4762c29a7eae64ee", "section_path": ["变更"], "commit_groups": [["02ef4d1e2", "25fe5b2bb", "32d182dd0", "a00c138b7", "a66b05b42", "d7ded08e6", "f2a3d7404"]], "identity_text": "Update minimum recovery point when WAL replay of a transaction abort record causes file truncation (Fujii Masao) File truncation is irreversible, so it's no longer safe to stop recovery at a point earlier than that record. The corresponding case for transaction commit was fixed years ago, but this one was overlooked.", "commit_aliases": ["02ef4d1e2", "25fe5b2bb", "32d182dd0", "a00c138b7", "a66b05b42", "d7ded08e6", "f2a3d7404"], "source_commits": ["32d182dd0"], "source_entry_id": "9.6.23/changes/018", "db_id": "11912ef944db6264080fb946153b3d45", "patch_ids": ["2e31ed09b90cb0458ab33cda47de2fbf"], "statement_hash": "80950ec8b6c501e69048d3ced6d4cce78e02a6d9551b14f8005608a863a58104", "relations": [{"rule": 2, "type": "equivalent", "target": "1bcfb1754b9a67abb627ccd3b70554c5", "evidence": {"same_day": true, "patch_ids": ["2e31ed09b90cb0458ab33cda47de2fbf"], "statement_hash": "80950ec8b6c501e69048d3ced6d4cce78e02a6d9551b14f8005608a863a58104"}}, {"rule": 2, "type": "equivalent", "target": "a5118256a69cae1f9d8434f4f93c0bc7", "evidence": {"same_day": true, "patch_ids": ["2e31ed09b90cb0458ab33cda47de2fbf"], "statement_hash": "80950ec8b6c501e69048d3ced6d4cce78e02a6d9551b14f8005608a863a58104"}}, {"rule": 2, "type": "equivalent", "target": "d544b9a04cad4461b87f5c6b6dcf2eea", "evidence": {"same_day": true, "patch_ids": ["2e31ed09b90cb0458ab33cda47de2fbf"], "statement_hash": "80950ec8b6c501e69048d3ced6d4cce78e02a6d9551b14f8005608a863a58104"}}, {"rule": 2, "type": "equivalent", "target": "d7e39e3de4dbacf0dc21f84ece53dd24", "evidence": {"same_day": true, "patch_ids": ["2e31ed09b90cb0458ab33cda47de2fbf"], "statement_hash": "80950ec8b6c501e69048d3ced6d4cce78e02a6d9551b14f8005608a863a58104"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1bcfb1754b9a67abb627ccd3b70554c5", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "当事务中止记录的 WAL 重放导致文件截断时，更新最小恢复点", "evidence": {"same_day": true, "patch_ids": ["2e31ed09b90cb0458ab33cda47de2fbf"], "statement_hash": "80950ec8b6c501e69048d3ced6d4cce78e02a6d9551b14f8005608a863a58104"}, "url": "/docs/compare/?release=13.4#13.4-5f0883c04f35d2b1", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "d7e39e3de4dbacf0dc21f84ece53dd24", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "当事务中止记录的 WAL 重放导致文件截断时，更新最小恢复点", "evidence": {"same_day": true, "patch_ids": ["2e31ed09b90cb0458ab33cda47de2fbf"], "statement_hash": "80950ec8b6c501e69048d3ced6d4cce78e02a6d9551b14f8005608a863a58104"}, "url": "/docs/compare/?release=12.8#12.8-7e090fef529d8781", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "a5118256a69cae1f9d8434f4f93c0bc7", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "当事务中止记录的 WAL 重放导致文件截断时，更新最小恢复点", "evidence": {"same_day": true, "patch_ids": ["2e31ed09b90cb0458ab33cda47de2fbf"], "statement_hash": "80950ec8b6c501e69048d3ced6d4cce78e02a6d9551b14f8005608a863a58104"}, "url": "/docs/compare/?release=11.13#11.13-1da334ee246c8abb", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "d544b9a04cad4461b87f5c6b6dcf2eea", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "当事务中止记录的 WAL 重放导致文件截断时，更新最小恢复点", "evidence": {"same_day": true, "patch_ids": ["2e31ed09b90cb0458ab33cda47de2fbf"], "statement_hash": "80950ec8b6c501e69048d3ced6d4cce78e02a6d9551b14f8005608a863a58104"}, "url": "/docs/compare/?release=10.18#10.18-1da334ee246c8abb", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-af9af2ce890884cb", "cves": [], "html": "<p>确保备库服务器的启动进程在等待 WAL 到达期间能及时响应关闭信号（Fujii Masao、Soumyadeep Chakraborty）</p>", "text": "确保备库服务器的启动进程在等待 WAL 到达期间能及时响应关闭信号（Fujii Masao、Soumyadeep Chakraborty）", "title": "确保备库服务器的启动进程在等待 WAL 到达期间能及时响应关闭信号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "4868c66b6aa2796bff0b1645103555463399fa4433dbf81c33b5486ffbcb9836", "section_path": ["变更"], "commit_groups": [["1bcfda30f", "2945a488a", "710fabfa2", "8d091922f", "8e5be9cfe", "9c83398f8"]], "identity_text": "Ensure that a standby server's startup process will respond to a shutdown signal promptly while waiting for WAL to arrive (Fujii Masao, Soumyadeep Chakraborty)", "commit_aliases": ["1bcfda30f", "2945a488a", "710fabfa2", "8d091922f", "8e5be9cfe", "9c83398f8"], "source_commits": ["8e5be9cfe"], "source_entry_id": "9.6.23/changes/019", "db_id": "37eaba43ad39d51859d131d6b40fc086", "patch_ids": ["b4370cd8908cda8beaf0bf99e5020770"], "statement_hash": "54c47198eedc1d7f141df88dfb2813c89a78632a7c86162072ebb67dcf06a3d3", "relations": [{"rule": 2, "type": "equivalent", "target": "0dd7ce96d2f6be23a93d89b24c4d73f1", "evidence": {"same_day": true, "patch_ids": ["b4370cd8908cda8beaf0bf99e5020770"], "statement_hash": "54c47198eedc1d7f141df88dfb2813c89a78632a7c86162072ebb67dcf06a3d3"}}, {"rule": 2, "type": "equivalent", "target": "1ef23efdc5470ace11e67ed189236612", "evidence": {"same_day": true, "patch_ids": ["b4370cd8908cda8beaf0bf99e5020770"], "statement_hash": "54c47198eedc1d7f141df88dfb2813c89a78632a7c86162072ebb67dcf06a3d3"}}, {"rule": 2, "type": "equivalent", "target": "5b6dbab383b7bc5932f0d7634b8362e5", "evidence": {"same_day": true, "patch_ids": ["b4370cd8908cda8beaf0bf99e5020770"], "statement_hash": "54c47198eedc1d7f141df88dfb2813c89a78632a7c86162072ebb67dcf06a3d3"}}, {"rule": 2, "type": "equivalent", "target": "9a38508aa62e55ec5ce03dba95ec7497", "evidence": {"same_day": true, "patch_ids": ["b4370cd8908cda8beaf0bf99e5020770"], "statement_hash": "54c47198eedc1d7f141df88dfb2813c89a78632a7c86162072ebb67dcf06a3d3"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1ef23efdc5470ace11e67ed189236612", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "确保备库的启动进程在等待 WAL 到达时及时响应关闭信号", "evidence": {"same_day": true, "patch_ids": ["b4370cd8908cda8beaf0bf99e5020770"], "statement_hash": "54c47198eedc1d7f141df88dfb2813c89a78632a7c86162072ebb67dcf06a3d3"}, "url": "/docs/compare/?release=13.4#13.4-bb8f9c32686d3cb5", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "0dd7ce96d2f6be23a93d89b24c4d73f1", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "确保备库的启动进程在等待 WAL 到达时及时响应关闭信号", "evidence": {"same_day": true, "patch_ids": ["b4370cd8908cda8beaf0bf99e5020770"], "statement_hash": "54c47198eedc1d7f141df88dfb2813c89a78632a7c86162072ebb67dcf06a3d3"}, "url": "/docs/compare/?release=12.8#12.8-15aa59ae480f7b14", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "5b6dbab383b7bc5932f0d7634b8362e5", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "确保备库的启动进程在等待 WAL 到达时及时响应关闭信号", "evidence": {"same_day": true, "patch_ids": ["b4370cd8908cda8beaf0bf99e5020770"], "statement_hash": "54c47198eedc1d7f141df88dfb2813c89a78632a7c86162072ebb67dcf06a3d3"}, "url": "/docs/compare/?release=11.13#11.13-e3d4f2ce06149d34", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "9a38508aa62e55ec5ce03dba95ec7497", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "确保备库的启动进程在等待 WAL 到达时及时响应关闭信号", "evidence": {"same_day": true, "patch_ids": ["b4370cd8908cda8beaf0bf99e5020770"], "statement_hash": "54c47198eedc1d7f141df88dfb2813c89a78632a7c86162072ebb67dcf06a3d3"}, "url": "/docs/compare/?release=10.18#10.18-e3d4f2ce06149d34", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-bde6f0d17569201f", "cves": [], "html": "<p>加锁以避免在另一进程并发写入时读到不正确的 relmapper 数据（Heikki Linnakangas）</p>", "text": "加锁以避免在另一进程并发写入时读到不正确的 relmapper 数据（Heikki Linnakangas）", "title": "加锁以避免在另一进程并发写入时读到不正确的 relmapper 数据", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "5193295917672241084b027ac318620b419267fca5a1a68400b27b47a7ba7b53", "section_path": ["变更"], "commit_groups": [["2a0ab13f8", "85ae8ccb2", "a5eacd86b", "b6d8d2073", "c78bb32c1", "caac19650"], ["5956795cb", "6fb377e5f", "8b01a403c", "9b8ed0f52", "eb3bd243a", "fbbc48995"]], "identity_text": "Add locking to avoid reading incorrect relmapper data in the face of a concurrent write from another process (Heikki Linnakangas)", "commit_aliases": ["2a0ab13f8", "5956795cb", "6fb377e5f", "85ae8ccb2", "8b01a403c", "9b8ed0f52", "a5eacd86b", "b6d8d2073", "c78bb32c1", "caac19650", "eb3bd243a", "fbbc48995"], "source_commits": ["5956795cb", "85ae8ccb2"], "source_entry_id": "9.6.23/changes/020", "db_id": "a041d4b543eca588d5bc6529ff26d6c2", "patch_ids": ["4ce1646db70329eb9abed19a16977f07", "a3a57a396084bdad3507d3e4b785f00f"], "statement_hash": "63fbe23a98374912d05c8f36acc406a88d38899bd316eeb727879f1b735e2bb7", "relations": [{"rule": 2, "type": "equivalent", "target": "0f73930e83af7ce553ef5aef9a6760b3", "evidence": {"same_day": true, "patch_ids": ["4ce1646db70329eb9abed19a16977f07", "a3a57a396084bdad3507d3e4b785f00f"], "statement_hash": "63fbe23a98374912d05c8f36acc406a88d38899bd316eeb727879f1b735e2bb7"}}, {"rule": 2, "type": "equivalent", "target": "427ea6f919df64f64f82e992c4cd88f2", "evidence": {"same_day": true, "patch_ids": ["4ce1646db70329eb9abed19a16977f07", "a3a57a396084bdad3507d3e4b785f00f"], "statement_hash": "63fbe23a98374912d05c8f36acc406a88d38899bd316eeb727879f1b735e2bb7"}}, {"rule": 2, "type": "equivalent", "target": "8d4549adc503b6ee7ece7245aa8afc2c", "evidence": {"same_day": true, "patch_ids": ["4ce1646db70329eb9abed19a16977f07", "a3a57a396084bdad3507d3e4b785f00f"], "statement_hash": "63fbe23a98374912d05c8f36acc406a88d38899bd316eeb727879f1b735e2bb7"}}, {"rule": 2, "type": "equivalent", "target": "9f6bc99e37a9123069b9b5ad699fd998", "evidence": {"same_day": true, "patch_ids": ["4ce1646db70329eb9abed19a16977f07", "a3a57a396084bdad3507d3e4b785f00f"], "statement_hash": "63fbe23a98374912d05c8f36acc406a88d38899bd316eeb727879f1b735e2bb7"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0f73930e83af7ce553ef5aef9a6760b3", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "增加锁定，避免其他进程并发写入时读取到错误的 relmapper 数据", "evidence": {"same_day": true, "patch_ids": ["4ce1646db70329eb9abed19a16977f07", "a3a57a396084bdad3507d3e4b785f00f"], "statement_hash": "63fbe23a98374912d05c8f36acc406a88d38899bd316eeb727879f1b735e2bb7"}, "url": "/docs/compare/?release=13.4#13.4-473906b314d98656", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "8d4549adc503b6ee7ece7245aa8afc2c", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "增加锁定，避免其他进程并发写入时读取到错误的 relmapper 数据", "evidence": {"same_day": true, "patch_ids": ["4ce1646db70329eb9abed19a16977f07", "a3a57a396084bdad3507d3e4b785f00f"], "statement_hash": "63fbe23a98374912d05c8f36acc406a88d38899bd316eeb727879f1b735e2bb7"}, "url": "/docs/compare/?release=12.8#12.8-4f20de6583d51dd4", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "427ea6f919df64f64f82e992c4cd88f2", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "增加锁定，避免其他进程并发写入时读取到错误的 relmapper 数据", "evidence": {"same_day": true, "patch_ids": ["4ce1646db70329eb9abed19a16977f07", "a3a57a396084bdad3507d3e4b785f00f"], "statement_hash": "63fbe23a98374912d05c8f36acc406a88d38899bd316eeb727879f1b735e2bb7"}, "url": "/docs/compare/?release=11.13#11.13-eed3805b64932da5", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "9f6bc99e37a9123069b9b5ad699fd998", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "增加锁定，避免其他进程并发写入时读取到错误的 relmapper 数据", "evidence": {"same_day": true, "patch_ids": ["4ce1646db70329eb9abed19a16977f07", "a3a57a396084bdad3507d3e4b785f00f"], "statement_hash": "63fbe23a98374912d05c8f36acc406a88d38899bd316eeb727879f1b735e2bb7"}, "url": "/docs/compare/?release=10.18#10.18-eed3805b64932da5", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-15f22dcf1147223b", "cves": [], "html": "<p>修复推测插入的逻辑解码中的错误情况和内存泄漏（Dilip Kumar）</p>", "text": "修复推测插入的逻辑解码中的错误情况和内存泄漏（Dilip Kumar）", "title": "修复推测插入的逻辑解码中的错误情况和内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "ec9f0db92f2045afecc9ec4b2e47484099235efef88dcab3dfd41617d7ac766b", "section_path": ["变更"], "commit_groups": [["1f8a934e0", "35f56c124", "40ad7ebff", "43acadfce", "4daa140a2", "602a32a68"], ["56e366f67", "72b51e214", "e95f617ac"]], "identity_text": "Fix error cases and memory leaks in logical decoding of speculative insertions (Dilip Kumar)", "commit_aliases": ["1f8a934e0", "35f56c124", "40ad7ebff", "43acadfce", "4daa140a2", "56e366f67", "602a32a68", "72b51e214", "e95f617ac"], "source_commits": ["43acadfce", "56e366f67"], "source_entry_id": "9.6.23/changes/021", "db_id": "7b154a3c3b0919ac37b7a24be597587f", "patch_ids": ["39b6e4a4c8ad3c2051bad82f5e017694", "72ee0416c2a3da46c68780831654663f"], "statement_hash": "e364cd93900b7fe215c3f035a953ba58c2f7f3e2fa98c59f584d04e6e2ceca46", "relations": [{"rule": 2, "type": "equivalent", "target": "22469e038ca4b5f4d5326684206ea456", "evidence": {"same_day": true, "patch_ids": ["39b6e4a4c8ad3c2051bad82f5e017694", "72ee0416c2a3da46c68780831654663f"], "statement_hash": "e364cd93900b7fe215c3f035a953ba58c2f7f3e2fa98c59f584d04e6e2ceca46"}}, {"rule": 2, "type": "equivalent", "target": "66c321f6f5faf54fb76f5b7ea6b0b566", "evidence": {"same_day": true, "patch_ids": ["39b6e4a4c8ad3c2051bad82f5e017694", "72ee0416c2a3da46c68780831654663f"], "statement_hash": "e364cd93900b7fe215c3f035a953ba58c2f7f3e2fa98c59f584d04e6e2ceca46"}}, {"rule": 2, "type": "equivalent", "target": "8146c60bb19a4af674fcc6f419eb2e7e", "evidence": {"same_day": true, "patch_ids": ["39b6e4a4c8ad3c2051bad82f5e017694", "72ee0416c2a3da46c68780831654663f"], "statement_hash": "e364cd93900b7fe215c3f035a953ba58c2f7f3e2fa98c59f584d04e6e2ceca46"}}, {"rule": 2, "type": "equivalent", "target": "dedc9463fac51ce29d57ad7dabc9d969", "evidence": {"same_day": true, "patch_ids": ["39b6e4a4c8ad3c2051bad82f5e017694", "72ee0416c2a3da46c68780831654663f"], "statement_hash": "e364cd93900b7fe215c3f035a953ba58c2f7f3e2fa98c59f584d04e6e2ceca46"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8146c60bb19a4af674fcc6f419eb2e7e", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复对推测插入进行逻辑解码时的错误情况和内存泄漏", "evidence": {"same_day": true, "patch_ids": ["39b6e4a4c8ad3c2051bad82f5e017694", "72ee0416c2a3da46c68780831654663f"], "statement_hash": "e364cd93900b7fe215c3f035a953ba58c2f7f3e2fa98c59f584d04e6e2ceca46"}, "url": "/docs/compare/?release=13.4#13.4-10ddb704a00d710e", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "22469e038ca4b5f4d5326684206ea456", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复对推测插入进行逻辑解码时的错误情况和内存泄漏", "evidence": {"same_day": true, "patch_ids": ["39b6e4a4c8ad3c2051bad82f5e017694", "72ee0416c2a3da46c68780831654663f"], "statement_hash": "e364cd93900b7fe215c3f035a953ba58c2f7f3e2fa98c59f584d04e6e2ceca46"}, "url": "/docs/compare/?release=12.8#12.8-459297cd9535aad0", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "66c321f6f5faf54fb76f5b7ea6b0b566", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复对推测插入进行逻辑解码时的错误情况和内存泄漏", "evidence": {"same_day": true, "patch_ids": ["39b6e4a4c8ad3c2051bad82f5e017694", "72ee0416c2a3da46c68780831654663f"], "statement_hash": "e364cd93900b7fe215c3f035a953ba58c2f7f3e2fa98c59f584d04e6e2ceca46"}, "url": "/docs/compare/?release=11.13#11.13-84c916e2c4a70b7f", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "dedc9463fac51ce29d57ad7dabc9d969", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复对推测插入进行逻辑解码时的错误情况和内存泄漏", "evidence": {"same_day": true, "patch_ids": ["39b6e4a4c8ad3c2051bad82f5e017694", "72ee0416c2a3da46c68780831654663f"], "statement_hash": "e364cd93900b7fe215c3f035a953ba58c2f7f3e2fa98c59f584d04e6e2ceca46"}, "url": "/docs/compare/?release=10.18#10.18-84c916e2c4a70b7f", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-8f1f52ad9d4c259f", "cves": [], "html": "<p>修复 <code>CREATE TABLE ... AS EXECUTE</code> 某些错误情况下的计划缓存引用泄漏（Tom Lane）</p>", "text": "修复 CREATE TABLE ... AS EXECUTE 某些错误情况下的计划缓存引用泄漏（Tom Lane）", "title": "修复 CREATE TABLE ... AS EXECUTE 某些错误情况下的计划缓存引用泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "895a3c43e6b665ef9ac5d0d522969659de5417da28dfd417046cf3911af4ddc2", "section_path": ["变更"], "commit_groups": [["131ea3e90", "17d962cca", "9cf163266", "a6f7745a3", "c50596cdc", "d03a41d1c"]], "identity_text": "Fix plan cache reference leaks in some error cases in CREATE TABLE ... AS EXECUTE (Tom Lane)", "commit_aliases": ["131ea3e90", "17d962cca", "9cf163266", "a6f7745a3", "c50596cdc", "d03a41d1c"], "source_commits": ["c50596cdc"], "source_entry_id": "9.6.23/changes/022", "db_id": "2ad813b50b5ed7ff5051941784681971", "patch_ids": ["6f0a3daaeb3b544ddeb4978d8976610b"], "statement_hash": "e32291faa88854db8cc2ad827e4ae69ccef40b064845194c4700c039c301f2cc", "relations": [{"rule": 2, "type": "equivalent", "target": "02be8c1d78dec48705446a70bc41b00d", "evidence": {"same_day": true, "patch_ids": ["6f0a3daaeb3b544ddeb4978d8976610b"], "statement_hash": "e32291faa88854db8cc2ad827e4ae69ccef40b064845194c4700c039c301f2cc"}}, {"rule": 2, "type": "equivalent", "target": "2c84fe2ea7103a2a46a4f74631849923", "evidence": {"same_day": true, "patch_ids": ["6f0a3daaeb3b544ddeb4978d8976610b"], "statement_hash": "e32291faa88854db8cc2ad827e4ae69ccef40b064845194c4700c039c301f2cc"}}, {"rule": 2, "type": "equivalent", "target": "619d3bdcafefd4fe2eb7670d84937426", "evidence": {"same_day": true, "patch_ids": ["6f0a3daaeb3b544ddeb4978d8976610b"], "statement_hash": "e32291faa88854db8cc2ad827e4ae69ccef40b064845194c4700c039c301f2cc"}}, {"rule": 2, "type": "equivalent", "target": "ed8fba5ef224d016f86419eb7e14359e", "evidence": {"same_day": true, "patch_ids": ["6f0a3daaeb3b544ddeb4978d8976610b"], "statement_hash": "e32291faa88854db8cc2ad827e4ae69ccef40b064845194c4700c039c301f2cc"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed8fba5ef224d016f86419eb7e14359e", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复 CREATE TABLE ... AS EXECUTE 在某些错误情况下的计划缓存引用泄漏", "evidence": {"same_day": true, "patch_ids": ["6f0a3daaeb3b544ddeb4978d8976610b"], "statement_hash": "e32291faa88854db8cc2ad827e4ae69ccef40b064845194c4700c039c301f2cc"}, "url": "/docs/compare/?release=13.4#13.4-6307ccd9c444395c", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "619d3bdcafefd4fe2eb7670d84937426", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复 CREATE TABLE ... AS EXECUTE 在某些错误情况下的计划缓存引用泄漏", "evidence": {"same_day": true, "patch_ids": ["6f0a3daaeb3b544ddeb4978d8976610b"], "statement_hash": "e32291faa88854db8cc2ad827e4ae69ccef40b064845194c4700c039c301f2cc"}, "url": "/docs/compare/?release=12.8#12.8-a5c781c23f251d20", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "2c84fe2ea7103a2a46a4f74631849923", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复 CREATE TABLE ... AS EXECUTE 在某些错误情况下的计划缓存引用泄漏", "evidence": {"same_day": true, "patch_ids": ["6f0a3daaeb3b544ddeb4978d8976610b"], "statement_hash": "e32291faa88854db8cc2ad827e4ae69ccef40b064845194c4700c039c301f2cc"}, "url": "/docs/compare/?release=11.13#11.13-b7e85b27d5caf68d", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "02be8c1d78dec48705446a70bc41b00d", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复 CREATE TABLE ... AS EXECUTE 在某些错误情况下的计划缓存引用泄漏", "evidence": {"same_day": true, "patch_ids": ["6f0a3daaeb3b544ddeb4978d8976610b"], "statement_hash": "e32291faa88854db8cc2ad827e4ae69ccef40b064845194c4700c039c301f2cc"}, "url": "/docs/compare/?release=10.18#10.18-b7e85b27d5caf68d", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-8d102dc4b32955ba", "cves": [], "html": "<p>修复释放 BackgroundWorkerSlots 时可能的竞态条件（Tom Lane）</p>\n<p>这很可能没有修复 Intel 硬件上任何可观察的 bug，但内存排序规则较弱的机器可能出现问题。</p>", "text": "修复释放 BackgroundWorkerSlots 时可能的竞态条件（Tom Lane） 这很可能没有修复 Intel 硬件上任何可观察的 bug，但内存排序规则较弱的机器可能出现问题。", "title": "修复释放 BackgroundWorkerSlots 时可能的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "e5640006b2f9db1363971051e0cea902b18aa9119d7c622858d60a5d6c8b28d3", "section_path": ["变更"], "commit_groups": [["30d8bad49", "5d195dc40", "6bcb51968", "6fcbaea7a", "c3cc73e14", "c76ceacbd"]], "identity_text": "Fix possible race condition when releasing BackgroundWorkerSlots (Tom Lane) It's likely that this doesn't fix any observable bug on Intel hardware, but machines with weaker memory ordering rules could have problems.", "commit_aliases": ["30d8bad49", "5d195dc40", "6bcb51968", "6fcbaea7a", "c3cc73e14", "c76ceacbd"], "source_commits": ["5d195dc40"], "source_entry_id": "9.6.23/changes/023", "db_id": "5e317a212b60fb5bf6d470d68fdb1be5", "patch_ids": ["085b8ddcb0abab7397a6e851375a74cf"], "statement_hash": "a86740f2fcadc48506f118b665a49651801f210260a157d67fda1e52e6bcde7b", "relations": [{"rule": 2, "type": "equivalent", "target": "60be1e3c760567781504f29248f63a29", "evidence": {"same_day": true, "patch_ids": ["085b8ddcb0abab7397a6e851375a74cf"], "statement_hash": "a86740f2fcadc48506f118b665a49651801f210260a157d67fda1e52e6bcde7b"}}, {"rule": 2, "type": "equivalent", "target": "903ad927b9f427b25a206b41d2a91cdc", "evidence": {"same_day": true, "patch_ids": ["085b8ddcb0abab7397a6e851375a74cf"], "statement_hash": "a86740f2fcadc48506f118b665a49651801f210260a157d67fda1e52e6bcde7b"}}, {"rule": 2, "type": "equivalent", "target": "a5ffc7b1e4d55af7ee1a755aa12b6999", "evidence": {"same_day": true, "patch_ids": ["085b8ddcb0abab7397a6e851375a74cf"], "statement_hash": "a86740f2fcadc48506f118b665a49651801f210260a157d67fda1e52e6bcde7b"}}, {"rule": 2, "type": "equivalent", "target": "fcdc9b352016338370b1a2c3923890f2", "evidence": {"same_day": true, "patch_ids": ["085b8ddcb0abab7397a6e851375a74cf"], "statement_hash": "a86740f2fcadc48506f118b665a49651801f210260a157d67fda1e52e6bcde7b"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a5ffc7b1e4d55af7ee1a755aa12b6999", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复释放 BackgroundWorkerSlots 时可能出现的竞争条件", "evidence": {"same_day": true, "patch_ids": ["085b8ddcb0abab7397a6e851375a74cf"], "statement_hash": "a86740f2fcadc48506f118b665a49651801f210260a157d67fda1e52e6bcde7b"}, "url": "/docs/compare/?release=13.4#13.4-d4ec273b0c27bcd1", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "903ad927b9f427b25a206b41d2a91cdc", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复释放 BackgroundWorkerSlots 时可能出现的竞争条件", "evidence": {"same_day": true, "patch_ids": ["085b8ddcb0abab7397a6e851375a74cf"], "statement_hash": "a86740f2fcadc48506f118b665a49651801f210260a157d67fda1e52e6bcde7b"}, "url": "/docs/compare/?release=12.8#12.8-a5d0f8fd221b9c33", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "fcdc9b352016338370b1a2c3923890f2", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复释放 BackgroundWorkerSlots 时可能出现的竞争条件", "evidence": {"same_day": true, "patch_ids": ["085b8ddcb0abab7397a6e851375a74cf"], "statement_hash": "a86740f2fcadc48506f118b665a49651801f210260a157d67fda1e52e6bcde7b"}, "url": "/docs/compare/?release=11.13#11.13-0acf498aebb65c27", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "60be1e3c760567781504f29248f63a29", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复释放 BackgroundWorkerSlots 时可能出现的竞争条件", "evidence": {"same_day": true, "patch_ids": ["085b8ddcb0abab7397a6e851375a74cf"], "statement_hash": "a86740f2fcadc48506f118b665a49651801f210260a157d67fda1e52e6bcde7b"}, "url": "/docs/compare/?release=10.18#10.18-0acf498aebb65c27", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-48def526c1ecc594", "cves": [], "html": "<p>修复排序代码中的潜在崩溃（Ronan Dunklau）</p>\n<p>有一条代码路径可能试图释放空指针。这种情况在核心服务器对排序的使用中似乎无法达到，但扩展或许能触发它。</p>", "text": "修复排序代码中的潜在崩溃（Ronan Dunklau） 有一条代码路径可能试图释放空指针。这种情况在核心服务器对排序的使用中似乎无法达到，但扩展或许能触发它。", "title": "修复排序代码中的潜在崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "adb3ebcbcb4bdbd194cf56a8a29de406f81f08e9266efdece8d53551e7899ee3", "section_path": ["变更"], "commit_groups": [["187e9c399", "204f646a2", "41469253e", "6f1c7a2d0", "87b7a652b", "a3b8d91cc", "b55e478a4"], ["2fde8e49a", "5bd38d2f2", "645c5d119", "a92709fed", "d0e44bae4", "d7f10f39c", "eff751ea5"]], "identity_text": "Fix latent crash in sorting code (Ronan Dunklau) One code path could attempt to free a null pointer. The case appears unreachable in the core server's use of sorting, but perhaps it could be triggered by extensions.", "commit_aliases": ["187e9c399", "204f646a2", "2fde8e49a", "41469253e", "5bd38d2f2", "645c5d119", "6f1c7a2d0", "87b7a652b", "a3b8d91cc", "a92709fed", "b55e478a4", "d0e44bae4", "d7f10f39c", "eff751ea5"], "source_commits": ["87b7a652b", "d0e44bae4"], "source_entry_id": "9.6.23/changes/024", "db_id": "03d256a718a90cd34abd4c6c50c5f133", "patch_ids": ["b68c173e5b199e28ef5ffe5775abb414", "cfa45fac6dae2f138e4eb8461e818824"], "statement_hash": "a92210e1054a7987e54ec3d02489268c6705114cf60240abe2cae416e7cfdcde", "relations": [{"rule": 2, "type": "equivalent", "target": "0cbe8a95578a2f998905e874eb0c59a5", "evidence": {"same_day": true, "patch_ids": ["b68c173e5b199e28ef5ffe5775abb414", "cfa45fac6dae2f138e4eb8461e818824"], "statement_hash": "a92210e1054a7987e54ec3d02489268c6705114cf60240abe2cae416e7cfdcde"}}, {"rule": 2, "type": "equivalent", "target": "71dc37d2188cbb2133c630660a208678", "evidence": {"same_day": true, "patch_ids": ["b68c173e5b199e28ef5ffe5775abb414", "cfa45fac6dae2f138e4eb8461e818824"], "statement_hash": "a92210e1054a7987e54ec3d02489268c6705114cf60240abe2cae416e7cfdcde"}}, {"rule": 2, "type": "equivalent", "target": "bb4cc7b921b338faf4ba021d4e3fd4d8", "evidence": {"same_day": true, "patch_ids": ["b68c173e5b199e28ef5ffe5775abb414", "cfa45fac6dae2f138e4eb8461e818824"], "statement_hash": "a92210e1054a7987e54ec3d02489268c6705114cf60240abe2cae416e7cfdcde"}}, {"rule": 2, "type": "equivalent", "target": "d938a7c9b2c8951cffe5bcda6f3bc494", "evidence": {"same_day": true, "patch_ids": ["b68c173e5b199e28ef5ffe5775abb414", "cfa45fac6dae2f138e4eb8461e818824"], "statement_hash": "a92210e1054a7987e54ec3d02489268c6705114cf60240abe2cae416e7cfdcde"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d938a7c9b2c8951cffe5bcda6f3bc494", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复排序代码中潜在的崩溃", "evidence": {"same_day": true, "patch_ids": ["b68c173e5b199e28ef5ffe5775abb414", "cfa45fac6dae2f138e4eb8461e818824"], "statement_hash": "a92210e1054a7987e54ec3d02489268c6705114cf60240abe2cae416e7cfdcde"}, "url": "/docs/compare/?release=13.4#13.4-f0317b5c38de4a46", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "0cbe8a95578a2f998905e874eb0c59a5", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复排序代码中潜在的崩溃", "evidence": {"same_day": true, "patch_ids": ["b68c173e5b199e28ef5ffe5775abb414", "cfa45fac6dae2f138e4eb8461e818824"], "statement_hash": "a92210e1054a7987e54ec3d02489268c6705114cf60240abe2cae416e7cfdcde"}, "url": "/docs/compare/?release=12.8#12.8-d7f39dc147d96ddd", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "71dc37d2188cbb2133c630660a208678", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复排序代码中潜在的崩溃", "evidence": {"same_day": true, "patch_ids": ["b68c173e5b199e28ef5ffe5775abb414", "cfa45fac6dae2f138e4eb8461e818824"], "statement_hash": "a92210e1054a7987e54ec3d02489268c6705114cf60240abe2cae416e7cfdcde"}, "url": "/docs/compare/?release=11.13#11.13-fd5e8bfe007d7a95", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "bb4cc7b921b338faf4ba021d4e3fd4d8", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复排序代码中潜在的崩溃", "evidence": {"same_day": true, "patch_ids": ["b68c173e5b199e28ef5ffe5775abb414", "cfa45fac6dae2f138e4eb8461e818824"], "statement_hash": "a92210e1054a7987e54ec3d02489268c6705114cf60240abe2cae416e7cfdcde"}, "url": "/docs/compare/?release=10.18#10.18-fd5e8bfe007d7a95", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-70262b30106c6663", "cves": [], "html": "<p>防止 SP-GiST 索引插入中的无限循环（Tom Lane）</p>\n<p>如果 INCLUDE 列占用足够多的空间以致叶子索引元组永远放不进一个页，text_ops 操作符类就会陷入徒劳地试图放下元组的无限循环。虽然 v11 之前的版本没有 INCLUDE 列，还是把这个防循环修复向后移植过来，因为它似乎是对操作符类 bug 的良好防御。</p>", "text": "防止 SP-GiST 索引插入中的无限循环（Tom Lane） 如果 INCLUDE 列占用足够多的空间以致叶子索引元组永远放不进一个页，text_ops 操作符类就会陷入徒劳地试图放下元组的无限循环。虽然 v11 之前的版本没有 INCLUDE 列，还是把这个防循环修复向后移植过来，因为它似乎是对操作符类 bug 的良好防御。", "title": "防止 SP-GiST 索引插入中的无限循环", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "7e3a0f7c33f77246a9b788665153893284c9b6a7dfe91b4ad137fdd1f48e411d", "section_path": ["变更"], "commit_groups": [["4e046281f", "5015d3c35", "c3c35a733", "d776045eb", "dc714c120", "e87a0d2e0"]], "identity_text": "Prevent infinite loops in SP-GiST index insertion (Tom Lane) In the event that INCLUDE columns take up enough space to prevent a leaf index tuple from ever fitting on a page, the text_ops operator class would get into an infinite loop vainly trying to make the tuple fit. While pre-v11 versions don't have INCLUDE columns, back-patch this anti-looping fix to them anyway, as it seems like a good defense against bugs in operator classes.", "commit_aliases": ["4e046281f", "5015d3c35", "c3c35a733", "d776045eb", "dc714c120", "e87a0d2e0"], "source_commits": ["5015d3c35"], "source_entry_id": "9.6.23/changes/025", "db_id": "dd99fdd6d93814cb95978e7230fb8cbb", "patch_ids": ["e9c53b525f0ad317af5af5ed68703cf1"], "statement_hash": "350c8715ac0cc00857fde6b55c1c30a68a7a7630d967925f0b1872862a290efb", "relations": [{"rule": 2, "type": "equivalent", "target": "51af8a7de9ccad054736531c6e45c969", "evidence": {"same_day": true, "patch_ids": ["e9c53b525f0ad317af5af5ed68703cf1"], "statement_hash": "350c8715ac0cc00857fde6b55c1c30a68a7a7630d967925f0b1872862a290efb"}}, {"rule": 2, "type": "equivalent", "target": "ad38addca5dfa5fc64fb130be66bc1b5", "evidence": {"same_day": true, "patch_ids": ["e9c53b525f0ad317af5af5ed68703cf1"], "statement_hash": "350c8715ac0cc00857fde6b55c1c30a68a7a7630d967925f0b1872862a290efb"}}, {"rule": 2, "type": "equivalent", "target": "b22def29a1c83003b33ee723242af735", "evidence": {"same_day": true, "patch_ids": ["e9c53b525f0ad317af5af5ed68703cf1"], "statement_hash": "350c8715ac0cc00857fde6b55c1c30a68a7a7630d967925f0b1872862a290efb"}}, {"rule": 2, "type": "equivalent", "target": "dd5af8f6d8a7800e4cee4375ba15a586", "evidence": {"same_day": true, "patch_ids": ["e9c53b525f0ad317af5af5ed68703cf1"], "statement_hash": "350c8715ac0cc00857fde6b55c1c30a68a7a7630d967925f0b1872862a290efb"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "51af8a7de9ccad054736531c6e45c969", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "防止 SP-GiST 索引插入中的无限循环", "evidence": {"same_day": true, "patch_ids": ["e9c53b525f0ad317af5af5ed68703cf1"], "statement_hash": "350c8715ac0cc00857fde6b55c1c30a68a7a7630d967925f0b1872862a290efb"}, "url": "/docs/compare/?release=13.4#13.4-813360cc172e6c9a", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "ad38addca5dfa5fc64fb130be66bc1b5", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "防止 SP-GiST 索引插入中的无限循环", "evidence": {"same_day": true, "patch_ids": ["e9c53b525f0ad317af5af5ed68703cf1"], "statement_hash": "350c8715ac0cc00857fde6b55c1c30a68a7a7630d967925f0b1872862a290efb"}, "url": "/docs/compare/?release=12.8#12.8-b87bf0ac2759dad2", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "dd5af8f6d8a7800e4cee4375ba15a586", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "防止 SP-GiST 索引插入中的无限循环", "evidence": {"same_day": true, "patch_ids": ["e9c53b525f0ad317af5af5ed68703cf1"], "statement_hash": "350c8715ac0cc00857fde6b55c1c30a68a7a7630d967925f0b1872862a290efb"}, "url": "/docs/compare/?release=11.13#11.13-70262b30106c6663", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "b22def29a1c83003b33ee723242af735", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "防止 SP-GiST 索引插入中的无限循环", "evidence": {"same_day": true, "patch_ids": ["e9c53b525f0ad317af5af5ed68703cf1"], "statement_hash": "350c8715ac0cc00857fde6b55c1c30a68a7a7630d967925f0b1872862a290efb"}, "url": "/docs/compare/?release=10.18#10.18-70262b30106c6663", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-c3f366339e58e883", "cves": [], "html": "<p>确保 SP-GiST 索引插入可以被查询取消请求终止（Tom Lane、Álvaro Herrera）</p>", "text": "确保 SP-GiST 索引插入可以被查询取消请求终止（Tom Lane、Álvaro Herrera）", "title": "确保 SP-GiST 索引插入可以被查询取消请求终止", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "3cd8c0fe58927d9e7ca4318dbd261707d3443ec19e0123d65739a6213e202d52", "section_path": ["变更"], "commit_groups": [["004288d3c", "4c6cfcc37", "c1b72bf04", "eb7a6b922", "f4ee4082f", "fe64adc93"], ["39b8ccb08", "4c646b179", "567328989", "63831c162", "8274f4517", "e47f93f98"]], "identity_text": "Ensure that SP-GiST index insertion can be terminated by a query cancel request (Tom Lane, Álvaro Herrera)", "commit_aliases": ["004288d3c", "39b8ccb08", "4c646b179", "4c6cfcc37", "567328989", "63831c162", "8274f4517", "c1b72bf04", "e47f93f98", "eb7a6b922", "f4ee4082f", "fe64adc93"], "source_commits": ["4c6cfcc37", "567328989"], "source_entry_id": "9.6.23/changes/026", "db_id": "a9039556ba47ca94e6cee5eb37316af0", "patch_ids": ["60ef5600566bf3e5c2f68ae0dfb7d418", "a249576ba115c4fa276cb8904b3efcd3"], "statement_hash": "68d7cce5231999763ab54c0150959b7b518aa71391b500c7fb135090fbb840bf", "relations": [{"rule": 2, "type": "equivalent", "target": "0a43e4e2b650e39cea84b2f6253fecc5", "evidence": {"same_day": true, "patch_ids": ["60ef5600566bf3e5c2f68ae0dfb7d418", "a249576ba115c4fa276cb8904b3efcd3"], "statement_hash": "68d7cce5231999763ab54c0150959b7b518aa71391b500c7fb135090fbb840bf"}}, {"rule": 2, "type": "equivalent", "target": "0e027c99afec348ed4f864869fef6944", "evidence": {"same_day": true, "patch_ids": ["60ef5600566bf3e5c2f68ae0dfb7d418", "a249576ba115c4fa276cb8904b3efcd3"], "statement_hash": "68d7cce5231999763ab54c0150959b7b518aa71391b500c7fb135090fbb840bf"}}, {"rule": 2, "type": "equivalent", "target": "2658fff0e9f46595bdd91fdc3838223a", "evidence": {"same_day": true, "patch_ids": ["60ef5600566bf3e5c2f68ae0dfb7d418", "a249576ba115c4fa276cb8904b3efcd3"], "statement_hash": "68d7cce5231999763ab54c0150959b7b518aa71391b500c7fb135090fbb840bf"}}, {"rule": 2, "type": "equivalent", "target": "f32051b3c22836c47f8b5a5619edd76c", "evidence": {"same_day": true, "patch_ids": ["60ef5600566bf3e5c2f68ae0dfb7d418", "a249576ba115c4fa276cb8904b3efcd3"], "statement_hash": "68d7cce5231999763ab54c0150959b7b518aa71391b500c7fb135090fbb840bf"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f32051b3c22836c47f8b5a5619edd76c", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "确保 SP-GiST 索引插入可以被查询取消请求终止", "evidence": {"same_day": true, "patch_ids": ["60ef5600566bf3e5c2f68ae0dfb7d418", "a249576ba115c4fa276cb8904b3efcd3"], "statement_hash": "68d7cce5231999763ab54c0150959b7b518aa71391b500c7fb135090fbb840bf"}, "url": "/docs/compare/?release=13.4#13.4-32318b400ff5912b", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "2658fff0e9f46595bdd91fdc3838223a", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "确保 SP-GiST 索引插入可以被查询取消请求终止", "evidence": {"same_day": true, "patch_ids": ["60ef5600566bf3e5c2f68ae0dfb7d418", "a249576ba115c4fa276cb8904b3efcd3"], "statement_hash": "68d7cce5231999763ab54c0150959b7b518aa71391b500c7fb135090fbb840bf"}, "url": "/docs/compare/?release=12.8#12.8-30a3685eb0f10764", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "0e027c99afec348ed4f864869fef6944", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "确保 SP-GiST 索引插入可以被查询取消请求终止", "evidence": {"same_day": true, "patch_ids": ["60ef5600566bf3e5c2f68ae0dfb7d418", "a249576ba115c4fa276cb8904b3efcd3"], "statement_hash": "68d7cce5231999763ab54c0150959b7b518aa71391b500c7fb135090fbb840bf"}, "url": "/docs/compare/?release=11.13#11.13-c3f366339e58e883", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "0a43e4e2b650e39cea84b2f6253fecc5", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "确保 SP-GiST 索引插入可以被查询取消请求终止", "evidence": {"same_day": true, "patch_ids": ["60ef5600566bf3e5c2f68ae0dfb7d418", "a249576ba115c4fa276cb8904b3efcd3"], "statement_hash": "68d7cce5231999763ab54c0150959b7b518aa71391b500c7fb135090fbb840bf"}, "url": "/docs/compare/?release=10.18#10.18-c3f366339e58e883", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-0f1d0f06e4b2c56f", "cves": [], "html": "<p>修复可能导致 <span>PL/pgSQL</span> 把未指定 <code>STRICT</code> 的 <code>INTO</code> 子句当作指定了的未初始化变量 bug（Tom Lane）</p>", "text": "修复可能导致 PL/pgSQL 把未指定 STRICT 的 INTO 子句当作指定了的未初始化变量 bug（Tom Lane）", "title": "修复可能导致 PL/pgSQL 把未指定 STRICT 的 INTO 子句当作指定了的未初始化变量 bug", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "b558919771ba749b2a5cc97aa8c084baa0a1ff8139f17c8a5b4715efabb92ac9", "section_path": ["变更"], "commit_groups": [["0fce76b99", "4eac891b1", "7321d5c3f", "85189f54a", "899564e01", "d9809bf86", "dffec69fe"]], "identity_text": "Fix uninitialized-variable bug that could cause PL/pgSQL to act as though an INTO clause specified STRICT, even though it didn't (Tom Lane)", "commit_aliases": ["0fce76b99", "4eac891b1", "7321d5c3f", "85189f54a", "899564e01", "d9809bf86", "dffec69fe"], "source_commits": ["dffec69fe"], "source_entry_id": "9.6.23/changes/027", "db_id": "260fc4590d6ca80c827cfc87341594c5", "patch_ids": ["4dbce83611281f5a594d62f70a162d46"], "statement_hash": "1ff72c0749f873fdb8160cffd82e6020a15c6ee4977cc4e24ac6a4924ca59f6c", "relations": [{"rule": 2, "type": "equivalent", "target": "1680d2ca98c0aaa44c6261d041701ae4", "evidence": {"same_day": true, "patch_ids": ["4dbce83611281f5a594d62f70a162d46"], "statement_hash": "1ff72c0749f873fdb8160cffd82e6020a15c6ee4977cc4e24ac6a4924ca59f6c"}}, {"rule": 2, "type": "equivalent", "target": "6b76f3afc8240307cba3fffeb063b8fe", "evidence": {"same_day": true, "patch_ids": ["4dbce83611281f5a594d62f70a162d46"], "statement_hash": "1ff72c0749f873fdb8160cffd82e6020a15c6ee4977cc4e24ac6a4924ca59f6c"}}, {"rule": 2, "type": "equivalent", "target": "eb5339b4a9c8ed9ca5fdf4c0191fdd2f", "evidence": {"same_day": true, "patch_ids": ["4dbce83611281f5a594d62f70a162d46"], "statement_hash": "1ff72c0749f873fdb8160cffd82e6020a15c6ee4977cc4e24ac6a4924ca59f6c"}}, {"rule": 2, "type": "equivalent", "target": "f1dbf32315529728b6d7add39df76ea0", "evidence": {"same_day": true, "patch_ids": ["4dbce83611281f5a594d62f70a162d46"], "statement_hash": "1ff72c0749f873fdb8160cffd82e6020a15c6ee4977cc4e24ac6a4924ca59f6c"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6b76f3afc8240307cba3fffeb063b8fe", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复未初始化变量的缺陷，该缺陷可能使 PL/pgSQL 表现得像 INTO 子句指定了 STRICT，即使实际并未指定", "evidence": {"same_day": true, "patch_ids": ["4dbce83611281f5a594d62f70a162d46"], "statement_hash": "1ff72c0749f873fdb8160cffd82e6020a15c6ee4977cc4e24ac6a4924ca59f6c"}, "url": "/docs/compare/?release=13.4#13.4-94f5ac9a7fbd0961", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "eb5339b4a9c8ed9ca5fdf4c0191fdd2f", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复未初始化变量的缺陷，该缺陷可能使 PL/pgSQL 表现得像 INTO 子句指定了 STRICT，即使实际并未指定", "evidence": {"same_day": true, "patch_ids": ["4dbce83611281f5a594d62f70a162d46"], "statement_hash": "1ff72c0749f873fdb8160cffd82e6020a15c6ee4977cc4e24ac6a4924ca59f6c"}, "url": "/docs/compare/?release=12.8#12.8-6cbf942f11b4ea99", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "f1dbf32315529728b6d7add39df76ea0", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复未初始化变量的缺陷，该缺陷可能使 PL/pgSQL 表现得像 INTO 子句指定了 STRICT，即使实际并未指定", "evidence": {"same_day": true, "patch_ids": ["4dbce83611281f5a594d62f70a162d46"], "statement_hash": "1ff72c0749f873fdb8160cffd82e6020a15c6ee4977cc4e24ac6a4924ca59f6c"}, "url": "/docs/compare/?release=11.13#11.13-b82711eda524df3c", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "1680d2ca98c0aaa44c6261d041701ae4", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复未初始化变量的缺陷，该缺陷可能使 PL/pgSQL 表现得像 INTO 子句指定了 STRICT，即使实际并未指定", "evidence": {"same_day": true, "patch_ids": ["4dbce83611281f5a594d62f70a162d46"], "statement_hash": "1ff72c0749f873fdb8160cffd82e6020a15c6ee4977cc4e24ac6a4924ca59f6c"}, "url": "/docs/compare/?release=10.18#10.18-b82711eda524df3c", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-a7b7709ac278dd8c", "cves": [], "html": "<p>libpq 的打印函数中发生内存不足失败时不再中止进程（Tom Lane）</p>", "text": "libpq 的打印函数中发生内存不足失败时不再中止进程（Tom Lane）", "title": "libpq 的打印函数中发生内存不足失败时不再中止进程", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "b869bac309d6dd734f207d94e041cac882f893b0e4cb1b17b45a29d9775fd452", "section_path": ["变更"], "commit_groups": [["06a2b2fe5", "1603deca3", "240d56fc4", "34c24e5a4", "6f5d9bce5", "b54be47cd", "cf1f545bf"]], "identity_text": "Don't abort the process for an out-of-memory failure in libpq's printing functions (Tom Lane)", "commit_aliases": ["06a2b2fe5", "1603deca3", "240d56fc4", "34c24e5a4", "6f5d9bce5", "b54be47cd", "cf1f545bf"], "source_commits": ["b54be47cd"], "source_entry_id": "9.6.23/changes/028", "db_id": "e0cc952cfb8f2465138a45467d8daf9c", "patch_ids": ["72d2c94c09f77d4b07ff593f12323001"], "statement_hash": "e8b9bf8d21949f3c06e5c30da98a20ae03225c8489bfce1699bfa037d75255ac", "relations": [{"rule": 2, "type": "equivalent", "target": "3c07f943acf446d851cab8d387077080", "evidence": {"same_day": true, "patch_ids": ["72d2c94c09f77d4b07ff593f12323001"], "statement_hash": "e8b9bf8d21949f3c06e5c30da98a20ae03225c8489bfce1699bfa037d75255ac"}}, {"rule": 2, "type": "equivalent", "target": "5b1aa7d0496ca1556a44ef957a1dd535", "evidence": {"same_day": true, "patch_ids": ["72d2c94c09f77d4b07ff593f12323001"], "statement_hash": "e8b9bf8d21949f3c06e5c30da98a20ae03225c8489bfce1699bfa037d75255ac"}}, {"rule": 2, "type": "equivalent", "target": "dd793ace1c1335839fd2ecde0fa2664a", "evidence": {"same_day": true, "patch_ids": ["72d2c94c09f77d4b07ff593f12323001"], "statement_hash": "e8b9bf8d21949f3c06e5c30da98a20ae03225c8489bfce1699bfa037d75255ac"}}, {"rule": 2, "type": "equivalent", "target": "e37949475727735828fe77538d712cf9", "evidence": {"same_day": true, "patch_ids": ["72d2c94c09f77d4b07ff593f12323001"], "statement_hash": "e8b9bf8d21949f3c06e5c30da98a20ae03225c8489bfce1699bfa037d75255ac"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dd793ace1c1335839fd2ecde0fa2664a", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "不要因 libpq 打印函数中的内存不足而中止进程", "evidence": {"same_day": true, "patch_ids": ["72d2c94c09f77d4b07ff593f12323001"], "statement_hash": "e8b9bf8d21949f3c06e5c30da98a20ae03225c8489bfce1699bfa037d75255ac"}, "url": "/docs/compare/?release=13.4#13.4-a119c426becccc96", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "e37949475727735828fe77538d712cf9", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "不要因 libpq 打印函数中的内存不足而中止进程", "evidence": {"same_day": true, "patch_ids": ["72d2c94c09f77d4b07ff593f12323001"], "statement_hash": "e8b9bf8d21949f3c06e5c30da98a20ae03225c8489bfce1699bfa037d75255ac"}, "url": "/docs/compare/?release=12.8#12.8-48100c3ea7b904ab", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "5b1aa7d0496ca1556a44ef957a1dd535", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "不要因 libpq 打印函数中的内存不足而中止进程", "evidence": {"same_day": true, "patch_ids": ["72d2c94c09f77d4b07ff593f12323001"], "statement_hash": "e8b9bf8d21949f3c06e5c30da98a20ae03225c8489bfce1699bfa037d75255ac"}, "url": "/docs/compare/?release=11.13#11.13-9c9cf9251f82eef8", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "3c07f943acf446d851cab8d387077080", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "不要因 libpq 打印函数中的内存不足而中止进程", "evidence": {"same_day": true, "patch_ids": ["72d2c94c09f77d4b07ff593f12323001"], "statement_hash": "e8b9bf8d21949f3c06e5c30da98a20ae03225c8489bfce1699bfa037d75255ac"}, "url": "/docs/compare/?release=10.18#10.18-9c9cf9251f82eef8", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-98ae1f97affe55bd", "cves": [], "html": "<p>在 <span>ecpg</span> 中，允许把 <code>numeric</code> 值 <span>INT_MIN</span>（通常为 -2147483648）转换为整数（John Naylor）</p>", "text": "在 ecpg 中，允许把 numeric 值 INT_MIN（通常为 -2147483648）转换为整数（John Naylor）", "title": "在 ecpg 中，允许把 numeric 值 INT_MIN（通常为 -2147483648）转换为整数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "ebd122fd6e1b44489954b688e9e9da342bce48b20b6b5cfcce3c458f0d752b2d", "section_path": ["变更"], "commit_groups": [["171bf1cea", "231c19a89", "5fcf3945b", "c7181a32c", "cfcb0ceab", "d9589eb62", "f051b87ac"], ["9455e7f50", "f3cd6aeb8", "fa27389c5"]], "identity_text": "In ecpg, allow the numeric value INT_MIN (usually -2147483648) to be converted to integer (John Naylor)", "commit_aliases": ["171bf1cea", "231c19a89", "5fcf3945b", "9455e7f50", "c7181a32c", "cfcb0ceab", "d9589eb62", "f051b87ac", "f3cd6aeb8", "fa27389c5"], "source_commits": ["cfcb0ceab", "fa27389c5"], "source_entry_id": "9.6.23/changes/029", "db_id": "22c6c1b13a2e9a4a54ea93c903d2ff4b", "patch_ids": ["25eee0232ee3af45d8bc352b0c2e9025", "bf65d0066f1a9ebd1b6fa2e646bed202"], "statement_hash": "f9666cc8c5daf28089690a6269cbd2ce3f513cdbb962f0b4e943800500d0b777", "relations": [{"rule": 2, "type": "equivalent", "target": "44248ea7f1d94599c4a2d17f5c9405fb", "evidence": {"same_day": true, "patch_ids": ["25eee0232ee3af45d8bc352b0c2e9025", "bf65d0066f1a9ebd1b6fa2e646bed202"], "statement_hash": "f9666cc8c5daf28089690a6269cbd2ce3f513cdbb962f0b4e943800500d0b777"}}, {"rule": 2, "type": "equivalent", "target": "6293719df77db468599acd839909b711", "evidence": {"same_day": true, "patch_ids": ["25eee0232ee3af45d8bc352b0c2e9025", "bf65d0066f1a9ebd1b6fa2e646bed202"], "statement_hash": "f9666cc8c5daf28089690a6269cbd2ce3f513cdbb962f0b4e943800500d0b777"}}, {"rule": 2, "type": "equivalent", "target": "bda8be1b12a21d3ea2ccf0215e7dae51", "evidence": {"same_day": true, "patch_ids": ["25eee0232ee3af45d8bc352b0c2e9025", "bf65d0066f1a9ebd1b6fa2e646bed202"], "statement_hash": "f9666cc8c5daf28089690a6269cbd2ce3f513cdbb962f0b4e943800500d0b777"}}, {"rule": 2, "type": "equivalent", "target": "f9efb66432935344527327d6f07a6fda", "evidence": {"same_day": true, "patch_ids": ["25eee0232ee3af45d8bc352b0c2e9025", "bf65d0066f1a9ebd1b6fa2e646bed202"], "statement_hash": "f9666cc8c5daf28089690a6269cbd2ce3f513cdbb962f0b4e943800500d0b777"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f9efb66432935344527327d6f07a6fda", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "在 ecpg 中，允许将 numeric 值 INT_MIN（通常为 -2147483648）转换为整数", "evidence": {"same_day": true, "patch_ids": ["25eee0232ee3af45d8bc352b0c2e9025", "bf65d0066f1a9ebd1b6fa2e646bed202"], "statement_hash": "f9666cc8c5daf28089690a6269cbd2ce3f513cdbb962f0b4e943800500d0b777"}, "url": "/docs/compare/?release=13.4#13.4-133c7e0f30fe4665", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "6293719df77db468599acd839909b711", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "在 ecpg 中，允许将 numeric 值 INT_MIN（通常为 -2147483648）转换为整数", "evidence": {"same_day": true, "patch_ids": ["25eee0232ee3af45d8bc352b0c2e9025", "bf65d0066f1a9ebd1b6fa2e646bed202"], "statement_hash": "f9666cc8c5daf28089690a6269cbd2ce3f513cdbb962f0b4e943800500d0b777"}, "url": "/docs/compare/?release=12.8#12.8-1f2634d66f4df34e", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "bda8be1b12a21d3ea2ccf0215e7dae51", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "在 ecpg 中，允许将 numeric 值 INT_MIN（通常为 -2147483648）转换为整数", "evidence": {"same_day": true, "patch_ids": ["25eee0232ee3af45d8bc352b0c2e9025", "bf65d0066f1a9ebd1b6fa2e646bed202"], "statement_hash": "f9666cc8c5daf28089690a6269cbd2ce3f513cdbb962f0b4e943800500d0b777"}, "url": "/docs/compare/?release=11.13#11.13-06a7f4422c95f05f", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "44248ea7f1d94599c4a2d17f5c9405fb", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "在 ecpg 中，允许将 numeric 值 INT_MIN（通常为 -2147483648）转换为整数", "evidence": {"same_day": true, "patch_ids": ["25eee0232ee3af45d8bc352b0c2e9025", "bf65d0066f1a9ebd1b6fa2e646bed202"], "statement_hash": "f9666cc8c5daf28089690a6269cbd2ce3f513cdbb962f0b4e943800500d0b777"}, "url": "/docs/compare/?release=10.18#10.18-06a7f4422c95f05f", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-9c62820c73bddaa7", "cves": ["CVE-2006-2313"], "html": "<p>在 <span>psql</span> 及其他客户端程序中，处理非法编码数据时避免越过字符串末尾（Tom Lane）</p>\n<p>字符串末尾附近一个编码不正确的多字节字符，可能导致各种处理循环越过字符串的结束 NUL 运行，后果从无可察觉的问题到程序崩溃不等，取决于后面的内存中碰巧有什么。这让人想起 CVE-2006-2313，不过这些特定情况似乎没有值得注意的安全后果。</p>", "text": "在 psql 及其他客户端程序中，处理非法编码数据时避免越过字符串末尾（Tom Lane） 字符串末尾附近一个编码不正确的多字节字符，可能导致各种处理循环越过字符串的结束 NUL 运行，后果从无可察觉的问题到程序崩溃不等，取决于后面的内存中碰巧有什么。这让人想起 CVE-2006-2313，不过这些特定情况似乎没有值得注意的安全后果。", "title": "在 psql 及其他客户端程序中，处理非法编码数据时避免越过字符串末尾", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "a46d295203e0203319478dec344b53076e29eb75825173a8f7dd776119d64a86", "section_path": ["变更"], "commit_groups": [["0b116346b", "7cdb97632"], ["42f94f56b", "4826fe4c5", "5b6436874", "89a5499ef", "ac600c541", "fc896f45d"]], "identity_text": "In psql and other client programs, avoid overrunning the ends of strings when dealing with invalidly-encoded data (Tom Lane) An incorrectly-encoded multibyte character near the end of a string could cause various processing loops to run past the string's terminating NUL, with results ranging from no detectable issue to a program crash, depending on what happens to be in the following memory. This is reminiscent of CVE-2006-2313, although these particular cases do not appear to have interesting security consequences.", "commit_aliases": ["0b116346b", "42f94f56b", "4826fe4c5", "5b6436874", "7cdb97632", "89a5499ef", "ac600c541", "fc896f45d"], "source_commits": ["7cdb97632", "ac600c541"], "source_entry_id": "9.6.23/changes/030", "db_id": "1f3098f84976e8e62a7ebe6f20c6a1ca", "patch_ids": ["0edf8dabb3adb26aedf9b95746f7f96c", "8818f12d81a64689aec8c658ac293100"], "statement_hash": "36f9c2a9058d99b21ae2e8ee84bcbf117dd8e892c024db2aa2e1ae5951a34a28", "relations": [{"rule": 2, "type": "equivalent", "target": "119a72ecba7076ed0be37a289b95c2d5", "evidence": {"same_day": true, "patch_ids": ["0edf8dabb3adb26aedf9b95746f7f96c", "8818f12d81a64689aec8c658ac293100"], "statement_hash": "36f9c2a9058d99b21ae2e8ee84bcbf117dd8e892c024db2aa2e1ae5951a34a28"}}, {"rule": 2, "type": "equivalent", "target": "150656e8f9c43547c8e2e3d7ac85c1f6", "evidence": {"same_day": true, "patch_ids": ["0edf8dabb3adb26aedf9b95746f7f96c", "8818f12d81a64689aec8c658ac293100"], "statement_hash": "36f9c2a9058d99b21ae2e8ee84bcbf117dd8e892c024db2aa2e1ae5951a34a28"}}, {"rule": 2, "type": "equivalent", "target": "78ea089a57f640af6ee7936dcd88862b", "evidence": {"same_day": true, "patch_ids": ["0edf8dabb3adb26aedf9b95746f7f96c", "8818f12d81a64689aec8c658ac293100"], "statement_hash": "36f9c2a9058d99b21ae2e8ee84bcbf117dd8e892c024db2aa2e1ae5951a34a28"}}, {"rule": 2, "type": "equivalent", "target": "8da05587377b2dcd593155c1845a5606", "evidence": {"same_day": true, "patch_ids": ["0edf8dabb3adb26aedf9b95746f7f96c", "8818f12d81a64689aec8c658ac293100"], "statement_hash": "36f9c2a9058d99b21ae2e8ee84bcbf117dd8e892c024db2aa2e1ae5951a34a28"}}], "version": "9.6.23", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "119a72ecba7076ed0be37a289b95c2d5", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "在 psql 和其他客户端程序中，避免处理编码无效的数据时越过字符串末尾", "evidence": {"same_day": true, "patch_ids": ["0edf8dabb3adb26aedf9b95746f7f96c", "8818f12d81a64689aec8c658ac293100"], "statement_hash": "36f9c2a9058d99b21ae2e8ee84bcbf117dd8e892c024db2aa2e1ae5951a34a28"}, "url": "/docs/compare/?release=13.4#13.4-11a361374616598f", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "150656e8f9c43547c8e2e3d7ac85c1f6", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "在 psql 和其他客户端程序中，避免处理编码无效的数据时越过字符串末尾", "evidence": {"same_day": true, "patch_ids": ["0edf8dabb3adb26aedf9b95746f7f96c", "8818f12d81a64689aec8c658ac293100"], "statement_hash": "36f9c2a9058d99b21ae2e8ee84bcbf117dd8e892c024db2aa2e1ae5951a34a28"}, "url": "/docs/compare/?release=12.8#12.8-9734c4cf0ecf04d6", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "8da05587377b2dcd593155c1845a5606", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "在 psql 和其他客户端程序中，避免处理编码无效的数据时越过字符串末尾", "evidence": {"same_day": true, "patch_ids": ["0edf8dabb3adb26aedf9b95746f7f96c", "8818f12d81a64689aec8c658ac293100"], "statement_hash": "36f9c2a9058d99b21ae2e8ee84bcbf117dd8e892c024db2aa2e1ae5951a34a28"}, "url": "/docs/compare/?release=11.13#11.13-d8f4d1a948a0569a", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "78ea089a57f640af6ee7936dcd88862b", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "在 psql 和其他客户端程序中，避免处理编码无效的数据时越过字符串末尾", "evidence": {"same_day": true, "patch_ids": ["0edf8dabb3adb26aedf9b95746f7f96c", "8818f12d81a64689aec8c658ac293100"], "statement_hash": "36f9c2a9058d99b21ae2e8ee84bcbf117dd8e892c024db2aa2e1ae5951a34a28"}, "url": "/docs/compare/?release=10.18#10.18-d8f4d1a948a0569a", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-9115779d07a77822", "cves": [], "html": "<p>避免在不同时区创建的归档文件上运行 <span>pg_restore</span> 时出现的 <span>“<span>invalid creation date in header</span>”</span> 警告（Tom Lane）</p>", "text": "避免在不同时区创建的归档文件上运行 pg_restore 时出现的 “invalid creation date in header” 警告（Tom Lane）", "title": "避免在不同时区创建的归档文件上运行 pg_restore 时出现的 “invalid creation date in header” 警告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "da9bcc43a2ac9f0659e0f214bce5d52d0f62c6daf075feb9000c77fd517da036", "section_path": ["变更"], "commit_groups": [["05fccab6a", "73fa76241", "b7c5823ac", "bc7885b7f", "dd53b46c7", "f807e3410"]], "identity_text": "Avoid invalid creation date in header warnings observed when running pg_restore on an archive file created in a different time zone (Tom Lane)", "commit_aliases": ["05fccab6a", "73fa76241", "b7c5823ac", "bc7885b7f", "dd53b46c7", "f807e3410"], "source_commits": ["dd53b46c7"], "source_entry_id": "9.6.23/changes/031", "db_id": "c7d940cade53c55330036da4b5fbc2ae", "patch_ids": ["052a3068466cb3db87063a6bd09773c2"], "statement_hash": "32bce0e540617dd9ab55aed3adf58b8f15ad170e587755fe3a8d662e3d6e6490", "relations": [{"rule": 2, "type": "equivalent", "target": "46db8239c6167e9599e3172f4d7c2ce9", "evidence": {"same_day": true, "patch_ids": ["052a3068466cb3db87063a6bd09773c2"], "statement_hash": "32bce0e540617dd9ab55aed3adf58b8f15ad170e587755fe3a8d662e3d6e6490"}}, {"rule": 2, "type": "equivalent", "target": "499b457c08c96ec29137951c3a5e2db2", "evidence": {"same_day": true, "patch_ids": ["052a3068466cb3db87063a6bd09773c2"], "statement_hash": "32bce0e540617dd9ab55aed3adf58b8f15ad170e587755fe3a8d662e3d6e6490"}}, {"rule": 2, "type": "equivalent", "target": "5c1a3f3425ca9d6c31347263c67f890b", "evidence": {"same_day": true, "patch_ids": ["052a3068466cb3db87063a6bd09773c2"], "statement_hash": "32bce0e540617dd9ab55aed3adf58b8f15ad170e587755fe3a8d662e3d6e6490"}}, {"rule": 2, "type": "equivalent", "target": "5d9da783d785d28acc714de8938ff454", "evidence": {"same_day": true, "patch_ids": ["052a3068466cb3db87063a6bd09773c2"], "statement_hash": "32bce0e540617dd9ab55aed3adf58b8f15ad170e587755fe3a8d662e3d6e6490"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "46db8239c6167e9599e3172f4d7c2ce9", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "避免对不同时区创建的归档文件运行 pg_restore 时出现 “invalid creation date in header” 警告", "evidence": {"same_day": true, "patch_ids": ["052a3068466cb3db87063a6bd09773c2"], "statement_hash": "32bce0e540617dd9ab55aed3adf58b8f15ad170e587755fe3a8d662e3d6e6490"}, "url": "/docs/compare/?release=13.4#13.4-f2d233d5c54428ed", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "5c1a3f3425ca9d6c31347263c67f890b", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "避免对不同时区创建的归档文件运行 pg_restore 时出现 “invalid creation date in header” 警告", "evidence": {"same_day": true, "patch_ids": ["052a3068466cb3db87063a6bd09773c2"], "statement_hash": "32bce0e540617dd9ab55aed3adf58b8f15ad170e587755fe3a8d662e3d6e6490"}, "url": "/docs/compare/?release=12.8#12.8-319fd4e4e6b4bb99", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "5d9da783d785d28acc714de8938ff454", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "避免对不同时区创建的归档文件运行 pg_restore 时出现 “invalid creation date in header” 警告", "evidence": {"same_day": true, "patch_ids": ["052a3068466cb3db87063a6bd09773c2"], "statement_hash": "32bce0e540617dd9ab55aed3adf58b8f15ad170e587755fe3a8d662e3d6e6490"}, "url": "/docs/compare/?release=11.13#11.13-5254efadbc5c687f", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "499b457c08c96ec29137951c3a5e2db2", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "避免对不同时区创建的归档文件运行 pg_restore 时出现 “invalid creation date in header” 警告", "evidence": {"same_day": true, "patch_ids": ["052a3068466cb3db87063a6bd09773c2"], "statement_hash": "32bce0e540617dd9ab55aed3adf58b8f15ad170e587755fe3a8d662e3d6e6490"}, "url": "/docs/compare/?release=10.18#10.18-5254efadbc5c687f", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-02450571799ef685", "cves": [], "html": "<p>让 <span>pg_upgrade</span> 保留旧安装的 <code>oldestXID</code> 值（Bertrand Drouvot）</p>\n<p>此前，新安装的 <code>oldestXID</code> 会被设置为一个足够老的值，（通常）会立即触发防回卷自动清理。从性能角度看这不可取；更糟的是，使用较大 <code>autovacuum_freeze_max_age</code> 值的安装可能在升级后不久遭遇不必要的强制停机。</p>", "text": "让 pg_upgrade 保留旧安装的 oldestXID 值（Bertrand Drouvot） 此前，新安装的 oldestXID 会被设置为一个足够老的值，（通常）会立即触发防回卷自动清理。从性能角度看这不可取；更糟的是，使用较大 autovacuum_freeze_max_age 值的安装可能在升级后不久遭遇不必要的强制停机。", "title": "让 pg_upgrade 保留旧安装的 oldestXID 值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "b1567a66724739cf976ebeed4643a9ccb8b4eda171d51b1e4d05cbec8034e895", "section_path": ["变更"], "commit_groups": [["088dbf3bc", "0a5e708e2", "695b4a113", "71121450e", "74cf7d46a", "7626e9f2b", "c4ba87f52"]], "identity_text": "Make pg_upgrade carry forward the old installation's oldestXID value (Bertrand Drouvot) Previously, the new installation's oldestXID was set to a value old enough to (usually) force immediate anti-wraparound autovacuuming. That's not desirable from a performance standpoint; what's worse, installations using large values of autovacuum_freeze_max_age could suffer unwanted forced shutdowns soon after an upgrade.", "commit_aliases": ["088dbf3bc", "0a5e708e2", "695b4a113", "71121450e", "74cf7d46a", "7626e9f2b", "c4ba87f52"], "source_commits": ["088dbf3bc"], "source_entry_id": "9.6.23/changes/032", "db_id": "e2140b236b82722ca231ed991abcbd1c", "patch_ids": ["a129a192323f0e8ed4cbf3a14f849a1b"], "statement_hash": "f3a8965969bc48dc7afd6e9adf63ba5bb23fa816dfa8e8df92a1ba8ed9a1aec9", "relations": [{"rule": 2, "type": "equivalent", "target": "2b19317301e5c7a35118dcb65442b079", "evidence": {"same_day": true, "patch_ids": ["a129a192323f0e8ed4cbf3a14f849a1b"], "statement_hash": "f3a8965969bc48dc7afd6e9adf63ba5bb23fa816dfa8e8df92a1ba8ed9a1aec9"}}, {"rule": 2, "type": "equivalent", "target": "a000d82806c688ec86b1e175669a1b13", "evidence": {"same_day": true, "patch_ids": ["a129a192323f0e8ed4cbf3a14f849a1b"], "statement_hash": "f3a8965969bc48dc7afd6e9adf63ba5bb23fa816dfa8e8df92a1ba8ed9a1aec9"}}, {"rule": 2, "type": "equivalent", "target": "ba77ce905215bd0031da29043a1aec06", "evidence": {"same_day": true, "patch_ids": ["a129a192323f0e8ed4cbf3a14f849a1b"], "statement_hash": "f3a8965969bc48dc7afd6e9adf63ba5bb23fa816dfa8e8df92a1ba8ed9a1aec9"}}, {"rule": 2, "type": "equivalent", "target": "e8a61966fc2a8c21535318558d4991c5", "evidence": {"same_day": true, "patch_ids": ["a129a192323f0e8ed4cbf3a14f849a1b"], "statement_hash": "f3a8965969bc48dc7afd6e9adf63ba5bb23fa816dfa8e8df92a1ba8ed9a1aec9"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ba77ce905215bd0031da29043a1aec06", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "使 pg_upgrade 沿用旧安装实例的 oldestXID 值", "evidence": {"same_day": true, "patch_ids": ["a129a192323f0e8ed4cbf3a14f849a1b"], "statement_hash": "f3a8965969bc48dc7afd6e9adf63ba5bb23fa816dfa8e8df92a1ba8ed9a1aec9"}, "url": "/docs/compare/?release=13.4#13.4-735e9b95430584d4", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "2b19317301e5c7a35118dcb65442b079", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "使 pg_upgrade 沿用旧安装实例的 oldestXID 值", "evidence": {"same_day": true, "patch_ids": ["a129a192323f0e8ed4cbf3a14f849a1b"], "statement_hash": "f3a8965969bc48dc7afd6e9adf63ba5bb23fa816dfa8e8df92a1ba8ed9a1aec9"}, "url": "/docs/compare/?release=12.8#12.8-cf61e9a048aaf1aa", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "a000d82806c688ec86b1e175669a1b13", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "使 pg_upgrade 沿用旧安装实例的 oldestXID 值", "evidence": {"same_day": true, "patch_ids": ["a129a192323f0e8ed4cbf3a14f849a1b"], "statement_hash": "f3a8965969bc48dc7afd6e9adf63ba5bb23fa816dfa8e8df92a1ba8ed9a1aec9"}, "url": "/docs/compare/?release=11.13#11.13-1e2d1ada3d68354e", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "e8a61966fc2a8c21535318558d4991c5", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "使 pg_upgrade 沿用旧安装实例的 oldestXID 值", "evidence": {"same_day": true, "patch_ids": ["a129a192323f0e8ed4cbf3a14f849a1b"], "statement_hash": "f3a8965969bc48dc7afd6e9adf63ba5bb23fa816dfa8e8df92a1ba8ed9a1aec9"}, "url": "/docs/compare/?release=10.18#10.18-1e2d1ada3d68354e", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-2c42862a0832845d", "cves": [], "html": "<p>扩展 <span>pg_upgrade</span> 以检测并警告应升级的扩展（Bruce Momjian）</p>\n<p>现在会生成一个脚本文件，其中包含把扩展升级到新安装中视为默认版本所需的 <code>ALTER EXTENSION UPDATE</code> 命令。</p>", "text": "扩展 pg_upgrade 以检测并警告应升级的扩展（Bruce Momjian） 现在会生成一个脚本文件，其中包含把扩展升级到新安装中视为默认版本所需的 ALTER EXTENSION UPDATE 命令。", "title": "扩展 pg_upgrade 以检测并警告应升级的扩展", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "dcca5f1cc2e497d222a1cf788d9cad38fda5b3f7b6f63c2d17b9237059de2223", "section_path": ["变更"], "commit_groups": [["165506217", "3a0ba31a3", "3ab496ab8", "47a573d91", "554a7648e", "9e51cc87f", "fcdc461f5"], ["3d2b6cd6f", "4051a7775", "49e319cea", "58974a542", "5e531bb1d", "a81c71e3a", "e462856a7"]], "identity_text": "Extend pg_upgrade to detect and warn about extensions that should be upgraded (Bruce Momjian) A script file is now produced containing the ALTER EXTENSION UPDATE commands needed to bring extensions up to the versions that are considered default in the new installation.", "commit_aliases": ["165506217", "3a0ba31a3", "3ab496ab8", "3d2b6cd6f", "4051a7775", "47a573d91", "49e319cea", "554a7648e", "58974a542", "5e531bb1d", "9e51cc87f", "a81c71e3a", "e462856a7", "fcdc461f5"], "source_commits": ["3ab496ab8", "5e531bb1d"], "source_entry_id": "9.6.23/changes/033", "db_id": "0dd9ce7b9c872f3c0eda2b3722cb810b", "patch_ids": ["20c9ed989c6f822d14ee3bada264c6fb", "715b8bcde2edb48fcaacd05bd9d6f521"], "statement_hash": "93b27ae3b88b2a61ea587b8b1483eff9989644c90306674b99447d84b4fec1fd", "relations": [{"rule": 2, "type": "equivalent", "target": "2ba320c0ed29fff610a6e2ab666d4001", "evidence": {"same_day": true, "patch_ids": ["20c9ed989c6f822d14ee3bada264c6fb", "715b8bcde2edb48fcaacd05bd9d6f521"], "statement_hash": "93b27ae3b88b2a61ea587b8b1483eff9989644c90306674b99447d84b4fec1fd"}}, {"rule": 2, "type": "equivalent", "target": "74c3183caf767d8c6d99a4f240526ddd", "evidence": {"same_day": true, "patch_ids": ["20c9ed989c6f822d14ee3bada264c6fb", "715b8bcde2edb48fcaacd05bd9d6f521"], "statement_hash": "93b27ae3b88b2a61ea587b8b1483eff9989644c90306674b99447d84b4fec1fd"}}, {"rule": 2, "type": "equivalent", "target": "aff6641df2b976ae3674d1d7ff70b5fe", "evidence": {"same_day": true, "patch_ids": ["20c9ed989c6f822d14ee3bada264c6fb", "715b8bcde2edb48fcaacd05bd9d6f521"], "statement_hash": "93b27ae3b88b2a61ea587b8b1483eff9989644c90306674b99447d84b4fec1fd"}}, {"rule": 2, "type": "equivalent", "target": "d2e585e8a45531fa24df5ad5ec426920", "evidence": {"same_day": true, "patch_ids": ["20c9ed989c6f822d14ee3bada264c6fb", "715b8bcde2edb48fcaacd05bd9d6f521"], "statement_hash": "93b27ae3b88b2a61ea587b8b1483eff9989644c90306674b99447d84b4fec1fd"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "aff6641df2b976ae3674d1d7ff70b5fe", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "扩展 pg_upgrade，使其检测应升级的扩展并发出警告", "evidence": {"same_day": true, "patch_ids": ["20c9ed989c6f822d14ee3bada264c6fb", "715b8bcde2edb48fcaacd05bd9d6f521"], "statement_hash": "93b27ae3b88b2a61ea587b8b1483eff9989644c90306674b99447d84b4fec1fd"}, "url": "/docs/compare/?release=13.4#13.4-0c5222977c3d7df4", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "d2e585e8a45531fa24df5ad5ec426920", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "扩展 pg_upgrade，使其检测应升级的扩展并发出警告", "evidence": {"same_day": true, "patch_ids": ["20c9ed989c6f822d14ee3bada264c6fb", "715b8bcde2edb48fcaacd05bd9d6f521"], "statement_hash": "93b27ae3b88b2a61ea587b8b1483eff9989644c90306674b99447d84b4fec1fd"}, "url": "/docs/compare/?release=12.8#12.8-b7d07b3f1aebc04d", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "2ba320c0ed29fff610a6e2ab666d4001", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "扩展 pg_upgrade，使其检测应升级的扩展并发出警告", "evidence": {"same_day": true, "patch_ids": ["20c9ed989c6f822d14ee3bada264c6fb", "715b8bcde2edb48fcaacd05bd9d6f521"], "statement_hash": "93b27ae3b88b2a61ea587b8b1483eff9989644c90306674b99447d84b4fec1fd"}, "url": "/docs/compare/?release=11.13#11.13-5c0475d8f31d662c", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "74c3183caf767d8c6d99a4f240526ddd", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "扩展 pg_upgrade，使其检测应升级的扩展并发出警告", "evidence": {"same_day": true, "patch_ids": ["20c9ed989c6f822d14ee3bada264c6fb", "715b8bcde2edb48fcaacd05bd9d6f521"], "statement_hash": "93b27ae3b88b2a61ea587b8b1483eff9989644c90306674b99447d84b4fec1fd"}, "url": "/docs/compare/?release=10.18#10.18-5c0475d8f31d662c", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-85169ecb397302b8", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，避免出错后尝试目录查找（Tom Lane）</p>\n<p>虽然这通常能工作，但不太安全，因为错误可能已使目录访问失效。此修复的一个副作用是，有关数据转换错误的消息现在会提及查询的表和列别名（如果使用了），而不是外部表或列的真实底层名称。</p>", "text": "在 contrib/postgres_fdw 中，避免出错后尝试目录查找（Tom Lane） 虽然这通常能工作，但不太安全，因为错误可能已使目录访问失效。此修复的一个副作用是，有关数据转换错误的消息现在会提及查询的表和列别名（如果使用了），而不是外部表或列的真实底层名称。", "title": "在 contrib/postgres_fdw 中，避免出错后尝试目录查找", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "f003fc6fc414c6907cedae1b42d964fac26931fa21d9e0abf199ec7ed18f615b", "section_path": ["变更"], "commit_groups": [["67f925bbd", "86d491421", "a9460dbf1", "b23ac5aef", "bd2e68d0b", "bee18616a", "c7b7311f6"]], "identity_text": "In contrib/postgres_fdw, avoid attempting catalog lookups after an error (Tom Lane) While this usually worked, it's not very safe since the error might have been one that made catalog access nonfunctional. A side effect of the fix is that messages about data conversion errors will now mention the query's table and column aliases (if used) rather than the true underlying name of a foreign table or column.", "commit_aliases": ["67f925bbd", "86d491421", "a9460dbf1", "b23ac5aef", "bd2e68d0b", "bee18616a", "c7b7311f6"], "source_commits": ["67f925bbd"], "source_entry_id": "9.6.23/changes/034", "db_id": "96f87e5492d568cd10b04474f6af9d25", "patch_ids": ["58b022e8e9402aa35ee3055dfaab1aa4"], "statement_hash": "0dbd3472fd2868edaca1e75677ba6b9155012a52f097fb5d8f5b5aa7afc47fa6", "relations": [{"rule": 2, "type": "equivalent", "target": "36099d55ba0795230205ebb63753aa19", "evidence": {"same_day": true, "patch_ids": ["58b022e8e9402aa35ee3055dfaab1aa4"], "statement_hash": "0dbd3472fd2868edaca1e75677ba6b9155012a52f097fb5d8f5b5aa7afc47fa6"}}, {"rule": 2, "type": "equivalent", "target": "555e22107b81a9e5565e2afb8db6b4cf", "evidence": {"same_day": true, "patch_ids": ["58b022e8e9402aa35ee3055dfaab1aa4"], "statement_hash": "0dbd3472fd2868edaca1e75677ba6b9155012a52f097fb5d8f5b5aa7afc47fa6"}}, {"rule": 2, "type": "equivalent", "target": "aa27d51df9a896a1cdb4717335b4fb03", "evidence": {"same_day": true, "patch_ids": ["58b022e8e9402aa35ee3055dfaab1aa4"], "statement_hash": "0dbd3472fd2868edaca1e75677ba6b9155012a52f097fb5d8f5b5aa7afc47fa6"}}, {"rule": 2, "type": "equivalent", "target": "e15054bb6368f60a756568fc9f568f86", "evidence": {"same_day": true, "patch_ids": ["58b022e8e9402aa35ee3055dfaab1aa4"], "statement_hash": "0dbd3472fd2868edaca1e75677ba6b9155012a52f097fb5d8f5b5aa7afc47fa6"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "555e22107b81a9e5565e2afb8db6b4cf", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "在 contrib/postgres_fdw 中，避免发生错误后尝试查找系统目录", "evidence": {"same_day": true, "patch_ids": ["58b022e8e9402aa35ee3055dfaab1aa4"], "statement_hash": "0dbd3472fd2868edaca1e75677ba6b9155012a52f097fb5d8f5b5aa7afc47fa6"}, "url": "/docs/compare/?release=13.4#13.4-fccdacda2c81477c", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "36099d55ba0795230205ebb63753aa19", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "在 contrib/postgres_fdw 中，避免发生错误后尝试查找系统目录", "evidence": {"same_day": true, "patch_ids": ["58b022e8e9402aa35ee3055dfaab1aa4"], "statement_hash": "0dbd3472fd2868edaca1e75677ba6b9155012a52f097fb5d8f5b5aa7afc47fa6"}, "url": "/docs/compare/?release=12.8#12.8-b19d139bff595b44", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "e15054bb6368f60a756568fc9f568f86", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "在 contrib/postgres_fdw 中，避免发生错误后尝试查找系统目录", "evidence": {"same_day": true, "patch_ids": ["58b022e8e9402aa35ee3055dfaab1aa4"], "statement_hash": "0dbd3472fd2868edaca1e75677ba6b9155012a52f097fb5d8f5b5aa7afc47fa6"}, "url": "/docs/compare/?release=11.13#11.13-466a8f8a8533865b", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "aa27d51df9a896a1cdb4717335b4fb03", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "在 contrib/postgres_fdw 中，避免发生错误后尝试查找系统目录", "evidence": {"same_day": true, "patch_ids": ["58b022e8e9402aa35ee3055dfaab1aa4"], "statement_hash": "0dbd3472fd2868edaca1e75677ba6b9155012a52f097fb5d8f5b5aa7afc47fa6"}, "url": "/docs/compare/?release=10.18#10.18-466a8f8a8533865b", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-a13e338dd3120c64", "cves": [], "html": "<p>在 <code>contrib/pgcrypto</code> 中，避免与 OpenSSL 的符号名冲突（Tom Lane）</p>\n<p>使用 SHA224 哈希的操作在 valgrind 检查下可能显示失败。看起来这只是对齐填充字节的踩踏，因此没有实际后果，但为了保险起见予以修复。</p>", "text": "在 contrib/pgcrypto 中，避免与 OpenSSL 的符号名冲突（Tom Lane） 使用 SHA224 哈希的操作在 valgrind 检查下可能显示失败。看起来这只是对齐填充字节的踩踏，因此没有实际后果，但为了保险起见予以修复。", "title": "在 contrib/pgcrypto 中，避免与 OpenSSL 的符号名冲突", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "fb2f594bb389435eb81a1bacf991ce9fb311473dce96d52be6515a07dd0772b1", "section_path": ["变更"], "commit_groups": [["c835be32c"]], "identity_text": "In contrib/pgcrypto, avoid symbol name conflicts with OpenSSL (Tom Lane) Operations using SHA224 hashing could show failures under valgrind checking. It appears that this is only a stomp of alignment-padding bytes and so has no real consequences, but let's fix it to be sure.", "commit_aliases": ["c835be32c"], "source_commits": ["c835be32c"], "source_entry_id": "9.6.23/changes/035", "db_id": "9d950ab92d52173291363f1c9ede2399", "patch_ids": ["4e0886720855111373f28d5c4a4da69f"], "statement_hash": "cc840a58f676b6e91e7885fd8e1bbb52fc682f03c4c3835669b769762eeaeb3c", "relations": [], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.23-55c04c1875286c25", "cves": [], "html": "<p>改进隔离测试基础设施（Tom Lane、Michael Paquier）</p>\n<p>允许为隔离测试步骤标注预期的完成顺序。这使得原本有竞态的测试用例能获得稳定结果，而无需我们此前用来抵御竞态条件的长延迟（那并不完全成功）。允许非带引号标识符作为隔离测试会话/步骤名（此前所有此类名称都必须加双引号）。检测并警告隔离测试中未使用的步骤。改进隔离测试中查询结果的显示。移除 isolationtester 的 <span>“<span>dry-run</span>”</span> 模式。移除 isolationtester 自身的内存泄漏。</p>", "text": "改进隔离测试基础设施（Tom Lane、Michael Paquier） 允许为隔离测试步骤标注预期的完成顺序。这使得原本有竞态的测试用例能获得稳定结果，而无需我们此前用来抵御竞态条件的长延迟（那并不完全成功）。允许非带引号标识符作为隔离测试会话/步骤名（此前所有此类名称都必须加双引号）。检测并警告隔离测试中未使用的步骤。改进隔离测试中查询结果的显示。移除 isolationtester 的 “dry-run” 模式。移除 isolationtester 自身的内存泄漏。", "title": "改进隔离测试基础设施", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "68b4442e10aea02a95c663c7c602d261b46c0bb14ab739ec1f0fd33a4075fc00", "section_path": ["变更"], "commit_groups": [["024e064af", "7a48dfbb8", "c6cb62f61", "e0a7036e1"], ["06fdc4e4d", "484c81bf7", "8f3229942", "96f3661e4", "feac82fa8"], ["0a8929ca0", "4a054069a", "b1aa0f228", "b961bdfe1", "d7da3ef08", "e535a8899"], ["0ed218048", "834cb7269", "9903338b5", "a8f687927", "b7cd5c5b0"], ["13f3fd9e4", "1f32b789d", "741d7f104", "a1417e437", "e2cde85ef", "f228c401b"], ["1acab1209", "2d0944865", "642c0697c", "7676d9594", "bc031cf13", "de589c112"], ["35e6b3bbf", "5179a1ab7", "5cb74a803", "94d8d8d89", "a443c1b2d", "ad9827a90"], ["989d23b04"]], "identity_text": "Improve the isolation-test infrastructure (Tom Lane, Michael Paquier) Allow isolation test steps to be annotated to show the expected completion order. This allows getting stable results from otherwise-racy test cases, without the long delays that we previously used (not entirely successfully) to fend off race conditions. Allow non-quoted identifiers as isolation test session/step names (formerly, all such names had to be double-quoted). Detect and warn about unused steps in isolation tests. Improve display of query results in isolation tests. Remove isolationtester's dry-run mode. Remove memory leaks in isolationtester itself.", "commit_aliases": ["024e064af", "06fdc4e4d", "0a8929ca0", "0ed218048", "13f3fd9e4", "1acab1209", "1f32b789d", "2d0944865", "35e6b3bbf", "484c81bf7", "4a054069a", "5179a1ab7", "5cb74a803", "642c0697c", "741d7f104", "7676d9594", "7a48dfbb8", "834cb7269", "8f3229942", "94d8d8d89", "96f3661e4", "989d23b04", "9903338b5", "a1417e437", "a443c1b2d", "a8f687927", "ad9827a90", "b1aa0f228", "b7cd5c5b0", "b961bdfe1", "bc031cf13", "c6cb62f61", "d7da3ef08", "de589c112", "e0a7036e1", "e2cde85ef", "e535a8899", "f228c401b", "feac82fa8"], "source_commits": ["13f3fd9e4", "484c81bf7", "989d23b04", "ad9827a90", "b7cd5c5b0", "de589c112", "e0a7036e1", "e535a8899"], "source_entry_id": "9.6.23/changes/036", "db_id": "9fcdc870f3519be1b0cd544a363ae0cc", "patch_ids": ["081aaaef05335087a70a646d1a1d069d", "10b8ade6985f821f4a692da4d5abb049", "34902220e10514d34f2a62a2b976f8dc", "8f040da49d6b3447d0959b8a73e8fa08", "99554d4aba271352cc7eadce9e046303", "bdca6ca619dc76ba1d60041cb5478d62", "dd61cbb4fe3e8417916689ea27c05ab8", "e7f4dd248edeed16552f3905247b5ed6"], "statement_hash": "02e8cd21a50de2e1d523b00409d618878d34907cf5102bb1817b3ebf06ca5c38", "relations": [{"rule": 2, "type": "equivalent", "target": "78f7823c72b976ac985dca3db1b47370", "evidence": {"same_day": true, "patch_ids": ["081aaaef05335087a70a646d1a1d069d", "10b8ade6985f821f4a692da4d5abb049", "34902220e10514d34f2a62a2b976f8dc", "8f040da49d6b3447d0959b8a73e8fa08", "99554d4aba271352cc7eadce9e046303", "bdca6ca619dc76ba1d60041cb5478d62", "dd61cbb4fe3e8417916689ea27c05ab8", "e7f4dd248edeed16552f3905247b5ed6"], "statement_hash": "02e8cd21a50de2e1d523b00409d618878d34907cf5102bb1817b3ebf06ca5c38"}}, {"rule": 2, "type": "equivalent", "target": "8b300c78935e62eb3a2819c822ef236d", "evidence": {"same_day": true, "patch_ids": ["081aaaef05335087a70a646d1a1d069d", "10b8ade6985f821f4a692da4d5abb049", "34902220e10514d34f2a62a2b976f8dc", "8f040da49d6b3447d0959b8a73e8fa08", "99554d4aba271352cc7eadce9e046303", "bdca6ca619dc76ba1d60041cb5478d62", "dd61cbb4fe3e8417916689ea27c05ab8", "e7f4dd248edeed16552f3905247b5ed6"], "statement_hash": "02e8cd21a50de2e1d523b00409d618878d34907cf5102bb1817b3ebf06ca5c38"}}, {"rule": 2, "type": "equivalent", "target": "af899a84d437ac00b28019aed874823a", "evidence": {"same_day": true, "patch_ids": ["081aaaef05335087a70a646d1a1d069d", "10b8ade6985f821f4a692da4d5abb049", "34902220e10514d34f2a62a2b976f8dc", "8f040da49d6b3447d0959b8a73e8fa08", "99554d4aba271352cc7eadce9e046303", "bdca6ca619dc76ba1d60041cb5478d62", "dd61cbb4fe3e8417916689ea27c05ab8", "e7f4dd248edeed16552f3905247b5ed6"], "statement_hash": "02e8cd21a50de2e1d523b00409d618878d34907cf5102bb1817b3ebf06ca5c38"}}, {"rule": 2, "type": "equivalent", "target": "e089ace3b495b9be9b621910718b3725", "evidence": {"same_day": true, "patch_ids": ["081aaaef05335087a70a646d1a1d069d", "10b8ade6985f821f4a692da4d5abb049", "34902220e10514d34f2a62a2b976f8dc", "8f040da49d6b3447d0959b8a73e8fa08", "99554d4aba271352cc7eadce9e046303", "bdca6ca619dc76ba1d60041cb5478d62", "dd61cbb4fe3e8417916689ea27c05ab8", "e7f4dd248edeed16552f3905247b5ed6"], "statement_hash": "02e8cd21a50de2e1d523b00409d618878d34907cf5102bb1817b3ebf06ca5c38"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "78f7823c72b976ac985dca3db1b47370", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "改进隔离测试基础设施", "evidence": {"same_day": true, "patch_ids": ["081aaaef05335087a70a646d1a1d069d", "10b8ade6985f821f4a692da4d5abb049", "34902220e10514d34f2a62a2b976f8dc", "8f040da49d6b3447d0959b8a73e8fa08", "99554d4aba271352cc7eadce9e046303", "bdca6ca619dc76ba1d60041cb5478d62", "dd61cbb4fe3e8417916689ea27c05ab8", "e7f4dd248edeed16552f3905247b5ed6"], "statement_hash": "02e8cd21a50de2e1d523b00409d618878d34907cf5102bb1817b3ebf06ca5c38"}, "url": "/docs/compare/?release=13.4#13.4-ce8c5b5a3a865e29", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "e089ace3b495b9be9b621910718b3725", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "改进隔离测试基础设施", "evidence": {"same_day": true, "patch_ids": ["081aaaef05335087a70a646d1a1d069d", "10b8ade6985f821f4a692da4d5abb049", "34902220e10514d34f2a62a2b976f8dc", "8f040da49d6b3447d0959b8a73e8fa08", "99554d4aba271352cc7eadce9e046303", "bdca6ca619dc76ba1d60041cb5478d62", "dd61cbb4fe3e8417916689ea27c05ab8", "e7f4dd248edeed16552f3905247b5ed6"], "statement_hash": "02e8cd21a50de2e1d523b00409d618878d34907cf5102bb1817b3ebf06ca5c38"}, "url": "/docs/compare/?release=12.8#12.8-c8000b53af0ad446", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "8b300c78935e62eb3a2819c822ef236d", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "改进隔离测试基础设施", "evidence": {"same_day": true, "patch_ids": ["081aaaef05335087a70a646d1a1d069d", "10b8ade6985f821f4a692da4d5abb049", "34902220e10514d34f2a62a2b976f8dc", "8f040da49d6b3447d0959b8a73e8fa08", "99554d4aba271352cc7eadce9e046303", "bdca6ca619dc76ba1d60041cb5478d62", "dd61cbb4fe3e8417916689ea27c05ab8", "e7f4dd248edeed16552f3905247b5ed6"], "statement_hash": "02e8cd21a50de2e1d523b00409d618878d34907cf5102bb1817b3ebf06ca5c38"}, "url": "/docs/compare/?release=11.13#11.13-55c04c1875286c25", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "af899a84d437ac00b28019aed874823a", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "改进隔离测试基础设施", "evidence": {"same_day": true, "patch_ids": ["081aaaef05335087a70a646d1a1d069d", "10b8ade6985f821f4a692da4d5abb049", "34902220e10514d34f2a62a2b976f8dc", "8f040da49d6b3447d0959b8a73e8fa08", "99554d4aba271352cc7eadce9e046303", "bdca6ca619dc76ba1d60041cb5478d62", "dd61cbb4fe3e8417916689ea27c05ab8", "e7f4dd248edeed16552f3905247b5ed6"], "statement_hash": "02e8cd21a50de2e1d523b00409d618878d34907cf5102bb1817b3ebf06ca5c38"}, "url": "/docs/compare/?release=10.18#10.18-55c04c1875286c25", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-8dd752564ee28d0d", "cves": [], "html": "<p>降低缓存踩踏测试的开销（Tom Lane）</p>", "text": "降低缓存踩踏测试的开销（Tom Lane）", "title": "降低缓存踩踏测试的开销", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "6fb626858abef65e65430cb48993b7f740e20b5910d6cd45d6370e455fba7eb7", "section_path": ["变更"], "commit_groups": [["07f1e0696", "2f487116e", "3edc2dbc0", "76c23bbb4", "8c3e36fcc", "9753324b7", "b82eabec3"], ["834d9284b", "e135743ef"]], "identity_text": "Reduce overhead of cache-clobber testing (Tom Lane)", "commit_aliases": ["07f1e0696", "2f487116e", "3edc2dbc0", "76c23bbb4", "834d9284b", "8c3e36fcc", "9753324b7", "b82eabec3", "e135743ef"], "source_commits": ["b82eabec3", "e135743ef"], "source_entry_id": "9.6.23/changes/037", "db_id": "28d7ce3f08813474132303b19042da23", "patch_ids": ["20306ccee76a83473c2ce89bc18df0bd", "d1965e18420d01618dd2214a289e20da"], "statement_hash": "a1d6fdcc246dc72d20608abd73dd5489f5c37689c23acc054da14f6ad020b111", "relations": [{"rule": 2, "type": "equivalent", "target": "0c3494b899a9832b627346f4da5a7b21", "evidence": {"same_day": true, "patch_ids": ["20306ccee76a83473c2ce89bc18df0bd", "d1965e18420d01618dd2214a289e20da"], "statement_hash": "a1d6fdcc246dc72d20608abd73dd5489f5c37689c23acc054da14f6ad020b111"}}, {"rule": 2, "type": "equivalent", "target": "69d65dcc0d2e0f9a97e3d7889e29dc1e", "evidence": {"same_day": true, "patch_ids": ["20306ccee76a83473c2ce89bc18df0bd", "d1965e18420d01618dd2214a289e20da"], "statement_hash": "a1d6fdcc246dc72d20608abd73dd5489f5c37689c23acc054da14f6ad020b111"}}, {"rule": 2, "type": "equivalent", "target": "daa8e79a7fa9ddf414f9d448dac513d0", "evidence": {"same_day": true, "patch_ids": ["20306ccee76a83473c2ce89bc18df0bd", "d1965e18420d01618dd2214a289e20da"], "statement_hash": "a1d6fdcc246dc72d20608abd73dd5489f5c37689c23acc054da14f6ad020b111"}}, {"rule": 2, "type": "equivalent", "target": "dc4cca094541332bf1d8315e1729fb41", "evidence": {"same_day": true, "patch_ids": ["20306ccee76a83473c2ce89bc18df0bd", "d1965e18420d01618dd2214a289e20da"], "statement_hash": "a1d6fdcc246dc72d20608abd73dd5489f5c37689c23acc054da14f6ad020b111"}}], "version": "9.6.23", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "69d65dcc0d2e0f9a97e3d7889e29dc1e", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "减少强制破坏缓存测试的开销", "evidence": {"same_day": true, "patch_ids": ["20306ccee76a83473c2ce89bc18df0bd", "d1965e18420d01618dd2214a289e20da"], "statement_hash": "a1d6fdcc246dc72d20608abd73dd5489f5c37689c23acc054da14f6ad020b111"}, "url": "/docs/compare/?release=13.4#13.4-fb44c5187eccc2a5", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "dc4cca094541332bf1d8315e1729fb41", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "减少强制破坏缓存测试的开销", "evidence": {"same_day": true, "patch_ids": ["20306ccee76a83473c2ce89bc18df0bd", "d1965e18420d01618dd2214a289e20da"], "statement_hash": "a1d6fdcc246dc72d20608abd73dd5489f5c37689c23acc054da14f6ad020b111"}, "url": "/docs/compare/?release=12.8#12.8-d40b468dac5bdb45", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "0c3494b899a9832b627346f4da5a7b21", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "减少强制破坏缓存测试的开销", "evidence": {"same_day": true, "patch_ids": ["20306ccee76a83473c2ce89bc18df0bd", "d1965e18420d01618dd2214a289e20da"], "statement_hash": "a1d6fdcc246dc72d20608abd73dd5489f5c37689c23acc054da14f6ad020b111"}, "url": "/docs/compare/?release=11.13#11.13-307d4d7759f45212", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "daa8e79a7fa9ddf414f9d448dac513d0", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "减少强制破坏缓存测试的开销", "evidence": {"same_day": true, "patch_ids": ["20306ccee76a83473c2ce89bc18df0bd", "d1965e18420d01618dd2214a289e20da"], "statement_hash": "a1d6fdcc246dc72d20608abd73dd5489f5c37689c23acc054da14f6ad020b111"}, "url": "/docs/compare/?release=10.18#10.18-307d4d7759f45212", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-4c9375f4b6d1a0a5", "cves": [], "html": "<p>修复 <span>PL/Python</span> 回归测试在 Python 3.10 下通过的问题（Honza Horak）</p>", "text": "修复 PL/Python 回归测试在 Python 3.10 下通过的问题（Honza Horak）", "title": "修复 PL/Python 回归测试在 Python 3.10 下通过的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "027052f5c356c73c64500323af790000360904990f5519321cf2394cccd15262", "section_path": ["变更"], "commit_groups": [["1a2752be8", "3989f8fb9", "4a682d85a", "6b6fbfd7e", "9438962ce", "9c31e4165"], ["70293e946", "91709e10a", "ba529a6ff", "ec52b886d"]], "identity_text": "Fix PL/Python's regression tests to pass with Python 3.10 (Honza Horak)", "commit_aliases": ["1a2752be8", "3989f8fb9", "4a682d85a", "6b6fbfd7e", "70293e946", "91709e10a", "9438962ce", "9c31e4165", "ba529a6ff", "ec52b886d"], "source_commits": ["9c31e4165", "ec52b886d"], "source_entry_id": "9.6.23/changes/038", "db_id": "461ef596e191e35335412350d522b7cc", "patch_ids": ["53b8fd707309a667bdba37f2a0079474", "d2777a25ded39c2b19399e30fdb53780"], "statement_hash": "d32174faed27fb2284bbfc8a7cd00578cb917a81bd0b0bed6a7e34edd0cbf458", "relations": [{"rule": 2, "type": "equivalent", "target": "2d32192b764e33ca244bc0aedd22f07f", "evidence": {"same_day": true, "patch_ids": ["53b8fd707309a667bdba37f2a0079474", "d2777a25ded39c2b19399e30fdb53780"], "statement_hash": "d32174faed27fb2284bbfc8a7cd00578cb917a81bd0b0bed6a7e34edd0cbf458"}}, {"rule": 2, "type": "equivalent", "target": "4039c2ae64d01f190844e9582e4b6337", "evidence": {"same_day": true, "patch_ids": ["53b8fd707309a667bdba37f2a0079474", "d2777a25ded39c2b19399e30fdb53780"], "statement_hash": "d32174faed27fb2284bbfc8a7cd00578cb917a81bd0b0bed6a7e34edd0cbf458"}}, {"rule": 2, "type": "equivalent", "target": "7a8364b3da645afef1ca53f72269072e", "evidence": {"same_day": true, "patch_ids": ["53b8fd707309a667bdba37f2a0079474", "d2777a25ded39c2b19399e30fdb53780"], "statement_hash": "d32174faed27fb2284bbfc8a7cd00578cb917a81bd0b0bed6a7e34edd0cbf458"}}, {"rule": 2, "type": "equivalent", "target": "f8eb0329b571d4806abe67c55bbee36e", "evidence": {"same_day": true, "patch_ids": ["53b8fd707309a667bdba37f2a0079474", "d2777a25ded39c2b19399e30fdb53780"], "statement_hash": "d32174faed27fb2284bbfc8a7cd00578cb917a81bd0b0bed6a7e34edd0cbf458"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7a8364b3da645afef1ca53f72269072e", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复 PL/Python 的回归测试，使其在 Python 3.10 下通过", "evidence": {"same_day": true, "patch_ids": ["53b8fd707309a667bdba37f2a0079474", "d2777a25ded39c2b19399e30fdb53780"], "statement_hash": "d32174faed27fb2284bbfc8a7cd00578cb917a81bd0b0bed6a7e34edd0cbf458"}, "url": "/docs/compare/?release=13.4#13.4-ce15bbe380f2b82a", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "f8eb0329b571d4806abe67c55bbee36e", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复 PL/Python 的回归测试，使其在 Python 3.10 下通过", "evidence": {"same_day": true, "patch_ids": ["53b8fd707309a667bdba37f2a0079474", "d2777a25ded39c2b19399e30fdb53780"], "statement_hash": "d32174faed27fb2284bbfc8a7cd00578cb917a81bd0b0bed6a7e34edd0cbf458"}, "url": "/docs/compare/?release=12.8#12.8-48b51b6fd5a9af08", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "4039c2ae64d01f190844e9582e4b6337", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复 PL/Python 的回归测试，使其在 Python 3.10 下通过", "evidence": {"same_day": true, "patch_ids": ["53b8fd707309a667bdba37f2a0079474", "d2777a25ded39c2b19399e30fdb53780"], "statement_hash": "d32174faed27fb2284bbfc8a7cd00578cb917a81bd0b0bed6a7e34edd0cbf458"}, "url": "/docs/compare/?release=11.13#11.13-096e0f92c8d55570", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "2d32192b764e33ca244bc0aedd22f07f", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复 PL/Python 的回归测试，使其在 Python 3.10 下通过", "evidence": {"same_day": true, "patch_ids": ["53b8fd707309a667bdba37f2a0079474", "d2777a25ded39c2b19399e30fdb53780"], "statement_hash": "d32174faed27fb2284bbfc8a7cd00578cb917a81bd0b0bed6a7e34edd0cbf458"}, "url": "/docs/compare/?release=10.18#10.18-096e0f92c8d55570", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-76de5757e0a3a53c", "cves": [], "html": "<p>使 <code>printf(\"%s\", NULL)</code> 打印 <code>(null)</code> 而不是崩溃（Tom Lane）</p>\n<p>这改善了边界情况下服务器的健壮性，并使我们的 <code>printf</code> 实现与常见库保持一致。</p>", "text": "使 printf(\"%s\", NULL) 打印 (null) 而不是崩溃（Tom Lane） 这改善了边界情况下服务器的健壮性，并使我们的 printf 实现与常见库保持一致。", "title": "使 printf(\"%s\", NULL) 打印 (null) 而不是崩溃", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "c5e291d2c7a2bc350f0a0be395e67530f2810864980aa066ebe184ee4d77ea7c", "section_path": ["变更"], "commit_groups": [["3779ac62d", "4c8a14e8d", "5a435289d", "7e09b504d", "89ad14cd7", "9329b9235", "c0a6f83de"]], "identity_text": "Make printf(\"%s\", NULL) print (null) instead of crashing (Tom Lane) This should improve server robustness in corner cases, and it syncs our printf implementation with common libraries.", "commit_aliases": ["3779ac62d", "4c8a14e8d", "5a435289d", "7e09b504d", "89ad14cd7", "9329b9235", "c0a6f83de"], "source_commits": ["7e09b504d"], "source_entry_id": "9.6.23/changes/039", "db_id": "19700bc7b591f82177c3f02c352c5791", "patch_ids": ["d38562c44413869d41be145f078366a2"], "statement_hash": "a9f0725cf0b2be059059df0c581390c832f58a2c351b6be09e25603704c8dfe6", "relations": [{"rule": 2, "type": "equivalent", "target": "199a2a07e4dfd8690b030311810b1cbe", "evidence": {"same_day": true, "patch_ids": ["d38562c44413869d41be145f078366a2"], "statement_hash": "a9f0725cf0b2be059059df0c581390c832f58a2c351b6be09e25603704c8dfe6"}}, {"rule": 2, "type": "equivalent", "target": "5e5497f78e72da3c8ed08220902a1419", "evidence": {"same_day": true, "patch_ids": ["d38562c44413869d41be145f078366a2"], "statement_hash": "a9f0725cf0b2be059059df0c581390c832f58a2c351b6be09e25603704c8dfe6"}}, {"rule": 2, "type": "equivalent", "target": "86b387c1b2d58c26144f22f4a6b5563c", "evidence": {"same_day": true, "patch_ids": ["d38562c44413869d41be145f078366a2"], "statement_hash": "a9f0725cf0b2be059059df0c581390c832f58a2c351b6be09e25603704c8dfe6"}}, {"rule": 2, "type": "equivalent", "target": "94a4d45c2621c88d32a166c53860d04b", "evidence": {"same_day": true, "patch_ids": ["d38562c44413869d41be145f078366a2"], "statement_hash": "a9f0725cf0b2be059059df0c581390c832f58a2c351b6be09e25603704c8dfe6"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "86b387c1b2d58c26144f22f4a6b5563c", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "使 printf(\"%s\", NULL) 打印 (null)，而不崩溃", "evidence": {"same_day": true, "patch_ids": ["d38562c44413869d41be145f078366a2"], "statement_hash": "a9f0725cf0b2be059059df0c581390c832f58a2c351b6be09e25603704c8dfe6"}, "url": "/docs/compare/?release=13.4#13.4-afcd012a9539ff7f", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "94a4d45c2621c88d32a166c53860d04b", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "使 printf(\"%s\", NULL) 打印 (null)，而不崩溃", "evidence": {"same_day": true, "patch_ids": ["d38562c44413869d41be145f078366a2"], "statement_hash": "a9f0725cf0b2be059059df0c581390c832f58a2c351b6be09e25603704c8dfe6"}, "url": "/docs/compare/?release=12.8#12.8-7bb38f92395272c1", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "199a2a07e4dfd8690b030311810b1cbe", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "使 printf(\"%s\", NULL) 打印 (null)，而不崩溃", "evidence": {"same_day": true, "patch_ids": ["d38562c44413869d41be145f078366a2"], "statement_hash": "a9f0725cf0b2be059059df0c581390c832f58a2c351b6be09e25603704c8dfe6"}, "url": "/docs/compare/?release=11.13#11.13-6b3473d2882ee0fc", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "5e5497f78e72da3c8ed08220902a1419", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "使 printf(\"%s\", NULL) 打印 (null)，而不崩溃", "evidence": {"same_day": true, "patch_ids": ["d38562c44413869d41be145f078366a2"], "statement_hash": "a9f0725cf0b2be059059df0c581390c832f58a2c351b6be09e25603704c8dfe6"}, "url": "/docs/compare/?release=10.18#10.18-6b3473d2882ee0fc", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-c6777a374bd7a0a6", "cves": [], "html": "<p>修复时间点恢复在 <code>ROLLBACK PREPARED</code> 记录处停止时错误的日志消息（Simon Riggs）</p>", "text": "修复时间点恢复在 ROLLBACK PREPARED 记录处停止时错误的日志消息（Simon Riggs）", "title": "修复时间点恢复在 ROLLBACK PREPARED 记录处停止时错误的日志消息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "8dd106f6f2c3a0c3508e7e92e828d62a8b5ad3417683278ab7c131ae8500f8d5", "section_path": ["变更"], "commit_groups": [["17707c059", "41edb2db1", "607a3a43b", "68bad2333", "93d3d0cf3", "b5ee867a7", "d8569db76"]], "identity_text": "Fix incorrect log message when point-in-time recovery stops at a ROLLBACK PREPARED record (Simon Riggs)", "commit_aliases": ["17707c059", "41edb2db1", "607a3a43b", "68bad2333", "93d3d0cf3", "b5ee867a7", "d8569db76"], "source_commits": ["68bad2333"], "source_entry_id": "9.6.23/changes/040", "db_id": "0303e0aef9c69053eed8e21a53396d27", "patch_ids": ["93d2d2b2f7a22f9d8eea85c8c79e5b56"], "statement_hash": "8c6060ae0da02ab597f952a1884f1fd6211e8baa555368332087e92161e46a52", "relations": [{"rule": 2, "type": "equivalent", "target": "40a6850d2d676f2799a4e07c079ff964", "evidence": {"same_day": true, "patch_ids": ["93d2d2b2f7a22f9d8eea85c8c79e5b56"], "statement_hash": "8c6060ae0da02ab597f952a1884f1fd6211e8baa555368332087e92161e46a52"}}, {"rule": 2, "type": "equivalent", "target": "4f60a02ea44f32c92798f081c001cc9e", "evidence": {"same_day": true, "patch_ids": ["93d2d2b2f7a22f9d8eea85c8c79e5b56"], "statement_hash": "8c6060ae0da02ab597f952a1884f1fd6211e8baa555368332087e92161e46a52"}}, {"rule": 2, "type": "equivalent", "target": "aff330a9f22e24f196cfb8618c9d91ff", "evidence": {"same_day": true, "patch_ids": ["93d2d2b2f7a22f9d8eea85c8c79e5b56"], "statement_hash": "8c6060ae0da02ab597f952a1884f1fd6211e8baa555368332087e92161e46a52"}}, {"rule": 2, "type": "equivalent", "target": "ffd357184fe3034bfa72a666f8b0a43e", "evidence": {"same_day": true, "patch_ids": ["93d2d2b2f7a22f9d8eea85c8c79e5b56"], "statement_hash": "8c6060ae0da02ab597f952a1884f1fd6211e8baa555368332087e92161e46a52"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "40a6850d2d676f2799a4e07c079ff964", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复时间点恢复停止在 ROLLBACK PREPARED 记录处时不正确的日志消息", "evidence": {"same_day": true, "patch_ids": ["93d2d2b2f7a22f9d8eea85c8c79e5b56"], "statement_hash": "8c6060ae0da02ab597f952a1884f1fd6211e8baa555368332087e92161e46a52"}, "url": "/docs/compare/?release=13.4#13.4-b0822e1668c6227c", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "ffd357184fe3034bfa72a666f8b0a43e", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复时间点恢复停止在 ROLLBACK PREPARED 记录处时不正确的日志消息", "evidence": {"same_day": true, "patch_ids": ["93d2d2b2f7a22f9d8eea85c8c79e5b56"], "statement_hash": "8c6060ae0da02ab597f952a1884f1fd6211e8baa555368332087e92161e46a52"}, "url": "/docs/compare/?release=12.8#12.8-2d8e528531f7ad2b", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "aff330a9f22e24f196cfb8618c9d91ff", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复时间点恢复停止在 ROLLBACK PREPARED 记录处时不正确的日志消息", "evidence": {"same_day": true, "patch_ids": ["93d2d2b2f7a22f9d8eea85c8c79e5b56"], "statement_hash": "8c6060ae0da02ab597f952a1884f1fd6211e8baa555368332087e92161e46a52"}, "url": "/docs/compare/?release=11.13#11.13-a6f8cfdb6374c9d3", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "4f60a02ea44f32c92798f081c001cc9e", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复时间点恢复停止在 ROLLBACK PREPARED 记录处时不正确的日志消息", "evidence": {"same_day": true, "patch_ids": ["93d2d2b2f7a22f9d8eea85c8c79e5b56"], "statement_hash": "8c6060ae0da02ab597f952a1884f1fd6211e8baa555368332087e92161e46a52"}, "url": "/docs/compare/?release=10.18#10.18-a6f8cfdb6374c9d3", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-0ec9b73badc4b332", "cves": [], "html": "<p>澄清涉及<span>“<span>非负</span>”</span>值的错误消息（Bharath Rupireddy）</p>", "text": "澄清涉及“非负”值的错误消息（Bharath Rupireddy）", "title": "澄清涉及“非负”值的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "5f0c06534f09a4aff9af5c18bf7f3bb8c287f539651ae9e87a1c584a628960d1", "section_path": ["变更"], "commit_groups": [["0e1275fb0", "42e6b5ccb", "78c21d79d", "92913fc29", "a84f95ffd", "de87c481f", "fd90f6ba7"]], "identity_text": "Clarify error messages referring to non-negative values (Bharath Rupireddy)", "commit_aliases": ["0e1275fb0", "42e6b5ccb", "78c21d79d", "92913fc29", "a84f95ffd", "de87c481f", "fd90f6ba7"], "source_commits": ["78c21d79d"], "source_entry_id": "9.6.23/changes/041", "db_id": "d2d4f53d4821ee17c4b7c0bbac7a115a", "patch_ids": ["43c7acd56e53f383f13d7a88f5307318"], "statement_hash": "3d0755bb74569bea76728061d236b395599059e10f4777bd454c0d4d0713a7d3", "relations": [{"rule": 2, "type": "equivalent", "target": "28903ddfbd41cc0d903ac386db91ce91", "evidence": {"same_day": true, "patch_ids": ["43c7acd56e53f383f13d7a88f5307318"], "statement_hash": "3d0755bb74569bea76728061d236b395599059e10f4777bd454c0d4d0713a7d3"}}, {"rule": 2, "type": "equivalent", "target": "b6624d383034969bccc9b811492317bf", "evidence": {"same_day": true, "patch_ids": ["43c7acd56e53f383f13d7a88f5307318"], "statement_hash": "3d0755bb74569bea76728061d236b395599059e10f4777bd454c0d4d0713a7d3"}}, {"rule": 2, "type": "equivalent", "target": "ba1ff64e31c5716cebe42cbf0ecadac3", "evidence": {"same_day": true, "patch_ids": ["43c7acd56e53f383f13d7a88f5307318"], "statement_hash": "3d0755bb74569bea76728061d236b395599059e10f4777bd454c0d4d0713a7d3"}}, {"rule": 2, "type": "equivalent", "target": "ccc73d112dc7b542e0b994fe5bd561ed", "evidence": {"same_day": true, "patch_ids": ["43c7acd56e53f383f13d7a88f5307318"], "statement_hash": "3d0755bb74569bea76728061d236b395599059e10f4777bd454c0d4d0713a7d3"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ccc73d112dc7b542e0b994fe5bd561ed", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "使涉及“非负”值的错误消息更清晰", "evidence": {"same_day": true, "patch_ids": ["43c7acd56e53f383f13d7a88f5307318"], "statement_hash": "3d0755bb74569bea76728061d236b395599059e10f4777bd454c0d4d0713a7d3"}, "url": "/docs/compare/?release=13.4#13.4-4228acde6ad7086d", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "b6624d383034969bccc9b811492317bf", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "使涉及“非负”值的错误消息更清晰", "evidence": {"same_day": true, "patch_ids": ["43c7acd56e53f383f13d7a88f5307318"], "statement_hash": "3d0755bb74569bea76728061d236b395599059e10f4777bd454c0d4d0713a7d3"}, "url": "/docs/compare/?release=12.8#12.8-d0dd265a4aea3115", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "28903ddfbd41cc0d903ac386db91ce91", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "使涉及“非负”值的错误消息更清晰", "evidence": {"same_day": true, "patch_ids": ["43c7acd56e53f383f13d7a88f5307318"], "statement_hash": "3d0755bb74569bea76728061d236b395599059e10f4777bd454c0d4d0713a7d3"}, "url": "/docs/compare/?release=11.13#11.13-24664d7c362985bd", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "ba1ff64e31c5716cebe42cbf0ecadac3", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "使涉及“非负”值的错误消息更清晰", "evidence": {"same_day": true, "patch_ids": ["43c7acd56e53f383f13d7a88f5307318"], "statement_hash": "3d0755bb74569bea76728061d236b395599059e10f4777bd454c0d4d0713a7d3"}, "url": "/docs/compare/?release=10.18#10.18-24664d7c362985bd", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-00b87be2c6d9a06e", "cves": [], "html": "<p>修复 <span>configure</span> 在 OpenLDAP 2.5 下的工作，该版本不再有单独的 <code>libldap_r</code> 库（Adrian Ho、Tom Lane）</p>\n<p>如果没有 <code>libldap_r</code> 库，我们现在静默假定 <code>libldap</code> 是线程安全的。</p>", "text": "修复 configure 在 OpenLDAP 2.5 下的工作，该版本不再有单独的 libldap_r 库（Adrian Ho、Tom Lane） 如果没有 libldap_r 库，我们现在静默假定 libldap 是线程安全的。", "title": "修复 configure 在 OpenLDAP 2.5 下的工作，该版本不再有单独的 libldap_r 库", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "06cbe84f48faa89ef99f757892bd2af7eb1801ba3703cd6ca8bf964fd12a28f6", "section_path": ["变更"], "commit_groups": [["03fc042eb", "946f62f2f", "9f6be2e79", "9fca23c1d", "ebc346e5b"], ["29a4fbd46", "31e8cfac5", "7f2eca6f9", "83a8bf24e", "8c9c20899", "911488b42", "cbcf5ffb1"], ["2c28c689f", "32d0bdbfc", "3c612d9f6", "53c38a086", "56533fce7", "9ffad7ae7", "e82cde74d"], ["55cccdfdf", "5620ec833", "7e0b53ad6", "a5377e7f7", "b69e8ad6c", "cd5d3aefa", "d0a02bdb8"]], "identity_text": "Fix configure to work with OpenLDAP 2.5, which no longer has a separate libldap_r library (Adrian Ho, Tom Lane) If there is no libldap_r library, we now silently assume that libldap is thread-safe.", "commit_aliases": ["03fc042eb", "29a4fbd46", "2c28c689f", "31e8cfac5", "32d0bdbfc", "3c612d9f6", "53c38a086", "55cccdfdf", "5620ec833", "56533fce7", "7e0b53ad6", "7f2eca6f9", "83a8bf24e", "8c9c20899", "911488b42", "946f62f2f", "9f6be2e79", "9fca23c1d", "9ffad7ae7", "a5377e7f7", "b69e8ad6c", "cbcf5ffb1", "cd5d3aefa", "d0a02bdb8", "e82cde74d", "ebc346e5b"], "source_commits": ["3c612d9f6", "8c9c20899", "9f6be2e79", "cd5d3aefa"], "source_entry_id": "9.6.23/changes/042", "db_id": "c3d256986b201bf0d6bdd920734a649f", "patch_ids": ["12adf88441f2688a04629d2cdb792f98", "31a293410c178f0bbfeb51604358d7b6", "c42bc4d2a4a73b2cfcd63d6ed4bd456a", "e8edc1d61304624280b3a27b5a21bc8f"], "statement_hash": "013ada10894f10815f2cbe758835f929e431179248e5f7116007279cda923394", "relations": [{"rule": 2, "type": "equivalent", "target": "23cb501c61e7f6cd89454f9ca09d9f8d", "evidence": {"same_day": true, "patch_ids": ["12adf88441f2688a04629d2cdb792f98", "31a293410c178f0bbfeb51604358d7b6", "c42bc4d2a4a73b2cfcd63d6ed4bd456a", "e8edc1d61304624280b3a27b5a21bc8f"], "statement_hash": "013ada10894f10815f2cbe758835f929e431179248e5f7116007279cda923394"}}, {"rule": 2, "type": "equivalent", "target": "45c55632ea0acc55f7ee9e443892c827", "evidence": {"same_day": true, "patch_ids": ["12adf88441f2688a04629d2cdb792f98", "31a293410c178f0bbfeb51604358d7b6", "c42bc4d2a4a73b2cfcd63d6ed4bd456a", "e8edc1d61304624280b3a27b5a21bc8f"], "statement_hash": "013ada10894f10815f2cbe758835f929e431179248e5f7116007279cda923394"}}, {"rule": 2, "type": "equivalent", "target": "8d6e2babf657e0dc88d167e05ef339c2", "evidence": {"same_day": true, "patch_ids": ["12adf88441f2688a04629d2cdb792f98", "31a293410c178f0bbfeb51604358d7b6", "c42bc4d2a4a73b2cfcd63d6ed4bd456a", "e8edc1d61304624280b3a27b5a21bc8f"], "statement_hash": "013ada10894f10815f2cbe758835f929e431179248e5f7116007279cda923394"}}, {"rule": 2, "type": "equivalent", "target": "c5f7974b08a46d9997d7299ff206e663", "evidence": {"same_day": true, "patch_ids": ["12adf88441f2688a04629d2cdb792f98", "31a293410c178f0bbfeb51604358d7b6", "c42bc4d2a4a73b2cfcd63d6ed4bd456a", "e8edc1d61304624280b3a27b5a21bc8f"], "statement_hash": "013ada10894f10815f2cbe758835f929e431179248e5f7116007279cda923394"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c5f7974b08a46d9997d7299ff206e663", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复 configure，使其支持不再提供独立 libldap_r 库的 OpenLDAP 2.5", "evidence": {"same_day": true, "patch_ids": ["12adf88441f2688a04629d2cdb792f98", "31a293410c178f0bbfeb51604358d7b6", "c42bc4d2a4a73b2cfcd63d6ed4bd456a", "e8edc1d61304624280b3a27b5a21bc8f"], "statement_hash": "013ada10894f10815f2cbe758835f929e431179248e5f7116007279cda923394"}, "url": "/docs/compare/?release=13.4#13.4-bce4f698e161b728", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "8d6e2babf657e0dc88d167e05ef339c2", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复 configure，使其支持不再提供独立 libldap_r 库的 OpenLDAP 2.5", "evidence": {"same_day": true, "patch_ids": ["12adf88441f2688a04629d2cdb792f98", "31a293410c178f0bbfeb51604358d7b6", "c42bc4d2a4a73b2cfcd63d6ed4bd456a", "e8edc1d61304624280b3a27b5a21bc8f"], "statement_hash": "013ada10894f10815f2cbe758835f929e431179248e5f7116007279cda923394"}, "url": "/docs/compare/?release=12.8#12.8-ff4c7590569f6af0", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "45c55632ea0acc55f7ee9e443892c827", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复 configure，使其支持不再提供独立 libldap_r 库的 OpenLDAP 2.5", "evidence": {"same_day": true, "patch_ids": ["12adf88441f2688a04629d2cdb792f98", "31a293410c178f0bbfeb51604358d7b6", "c42bc4d2a4a73b2cfcd63d6ed4bd456a", "e8edc1d61304624280b3a27b5a21bc8f"], "statement_hash": "013ada10894f10815f2cbe758835f929e431179248e5f7116007279cda923394"}, "url": "/docs/compare/?release=11.13#11.13-4dfc9ca2531de448", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "23cb501c61e7f6cd89454f9ca09d9f8d", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复 configure，使其支持不再提供独立 libldap_r 库的 OpenLDAP 2.5", "evidence": {"same_day": true, "patch_ids": ["12adf88441f2688a04629d2cdb792f98", "31a293410c178f0bbfeb51604358d7b6", "c42bc4d2a4a73b2cfcd63d6ed4bd456a", "e8edc1d61304624280b3a27b5a21bc8f"], "statement_hash": "013ada10894f10815f2cbe758835f929e431179248e5f7116007279cda923394"}, "url": "/docs/compare/?release=10.18#10.18-4dfc9ca2531de448", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-db451c88692f045d", "cves": [], "html": "<p>添加新的 make 目标 <code>world-bin</code> 和 <code>install-world-bin</code>（Andrew Dunstan）</p>\n<p>它们分别与 <code>world</code> 和 <code>install-world</code> 相同，只是不构建或安装文档。</p>", "text": "添加新的 make 目标 world-bin 和 install-world-bin（Andrew Dunstan） 它们分别与 world 和 install-world 相同，只是不构建或安装文档。", "title": "添加新的 make 目标 world-bin 和 install-world-bin", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "2ecf597c447df584ec7b2b12f77f4a35c2270b0075c82507b1366ea7d701e8a5", "section_path": ["变更"], "commit_groups": [["100e9ae53", "a7e3a390e", "b796435be", "b8c4261e5", "bd0be7f7a", "c71471c96", "cbd5d7c85"], ["177531ee0", "1da2ea0cc", "1f7ea06d7", "383c29d1e", "418041748", "7355c241e", "8d2be1402"]], "identity_text": "Add new make targets world-bin and install-world-bin (Andrew Dunstan) These are the same as world and install-world respectively, except that they do not build or install the documentation.", "commit_aliases": ["100e9ae53", "177531ee0", "1da2ea0cc", "1f7ea06d7", "383c29d1e", "418041748", "7355c241e", "8d2be1402", "a7e3a390e", "b796435be", "b8c4261e5", "bd0be7f7a", "c71471c96", "cbd5d7c85"], "source_commits": ["1f7ea06d7", "cbd5d7c85"], "source_entry_id": "9.6.23/changes/043", "db_id": "fcca536234f4fdf706a54ea2d11bad46", "patch_ids": ["93fd989bb2b9ea7f6c7b3009d3618db7", "971aa0635d2c65d3cac043df88402124"], "statement_hash": "5a31ba48c89bf466d9f97c4fabb3ed42ec4f18064f119164e6662508acef6fb0", "relations": [{"rule": 2, "type": "equivalent", "target": "6eb2670447c8c8dcdd8d09e4cd49443a", "evidence": {"same_day": true, "patch_ids": ["93fd989bb2b9ea7f6c7b3009d3618db7", "971aa0635d2c65d3cac043df88402124"], "statement_hash": "5a31ba48c89bf466d9f97c4fabb3ed42ec4f18064f119164e6662508acef6fb0"}}, {"rule": 2, "type": "equivalent", "target": "8e05ea820d1de4ad94215ddf043bbfc9", "evidence": {"same_day": true, "patch_ids": ["93fd989bb2b9ea7f6c7b3009d3618db7", "971aa0635d2c65d3cac043df88402124"], "statement_hash": "5a31ba48c89bf466d9f97c4fabb3ed42ec4f18064f119164e6662508acef6fb0"}}, {"rule": 2, "type": "equivalent", "target": "df7c11e8809711cd3340354d7937acf9", "evidence": {"same_day": true, "patch_ids": ["93fd989bb2b9ea7f6c7b3009d3618db7", "971aa0635d2c65d3cac043df88402124"], "statement_hash": "5a31ba48c89bf466d9f97c4fabb3ed42ec4f18064f119164e6662508acef6fb0"}}, {"rule": 2, "type": "equivalent", "target": "f629fe9ea45390c5b62c57b4d04065d6", "evidence": {"same_day": true, "patch_ids": ["93fd989bb2b9ea7f6c7b3009d3618db7", "971aa0635d2c65d3cac043df88402124"], "statement_hash": "5a31ba48c89bf466d9f97c4fabb3ed42ec4f18064f119164e6662508acef6fb0"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6eb2670447c8c8dcdd8d09e4cd49443a", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "增加新的 make 目标 world-bin 和 install-world-bin", "evidence": {"same_day": true, "patch_ids": ["93fd989bb2b9ea7f6c7b3009d3618db7", "971aa0635d2c65d3cac043df88402124"], "statement_hash": "5a31ba48c89bf466d9f97c4fabb3ed42ec4f18064f119164e6662508acef6fb0"}, "url": "/docs/compare/?release=13.4#13.4-10ef5ec2e9187cee", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "8e05ea820d1de4ad94215ddf043bbfc9", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "增加新的 make 目标 world-bin 和 install-world-bin", "evidence": {"same_day": true, "patch_ids": ["93fd989bb2b9ea7f6c7b3009d3618db7", "971aa0635d2c65d3cac043df88402124"], "statement_hash": "5a31ba48c89bf466d9f97c4fabb3ed42ec4f18064f119164e6662508acef6fb0"}, "url": "/docs/compare/?release=12.8#12.8-188694f0e07ebf21", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "f629fe9ea45390c5b62c57b4d04065d6", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "增加新的 make 目标 world-bin 和 install-world-bin", "evidence": {"same_day": true, "patch_ids": ["93fd989bb2b9ea7f6c7b3009d3618db7", "971aa0635d2c65d3cac043df88402124"], "statement_hash": "5a31ba48c89bf466d9f97c4fabb3ed42ec4f18064f119164e6662508acef6fb0"}, "url": "/docs/compare/?release=11.13#11.13-c83f3690ba5e3273", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "df7c11e8809711cd3340354d7937acf9", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "增加新的 make 目标 world-bin 和 install-world-bin", "evidence": {"same_day": true, "patch_ids": ["93fd989bb2b9ea7f6c7b3009d3618db7", "971aa0635d2c65d3cac043df88402124"], "statement_hash": "5a31ba48c89bf466d9f97c4fabb3ed42ec4f18064f119164e6662508acef6fb0"}, "url": "/docs/compare/?release=10.18#10.18-c83f3690ba5e3273", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-f390ad7fe75653fb", "cves": [], "html": "<p>修复 TAP 测试的 make 规则（<code>prove_installcheck</code>）在 PGXS 用法下工作的问题（Andrew Dunstan）</p>", "text": "修复 TAP 测试的 make 规则（prove_installcheck）在 PGXS 用法下工作的问题（Andrew Dunstan）", "title": "修复 TAP 测试的 make 规则（prove_installcheck）在 PGXS 用法下工作的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "aa2a85c29095041083ababa5d7812b16b31d36cd068c0af733e3ea90ef109b9b", "section_path": ["变更"], "commit_groups": [["16ed3ddbb", "58ac8300b", "a0fc81326", "a40f8ea0f", "a8b564b0c", "c4774ce33", "d173a4699"]], "identity_text": "Fix make rule for TAP tests (prove_installcheck) to work in PGXS usage (Andrew Dunstan)", "commit_aliases": ["16ed3ddbb", "58ac8300b", "a0fc81326", "a40f8ea0f", "a8b564b0c", "c4774ce33", "d173a4699"], "source_commits": ["d173a4699"], "source_entry_id": "9.6.23/changes/044", "db_id": "a99a621103cf2a37c6219c42d1ef3124", "patch_ids": ["1b9c45bd8e297f40e04bbfe901f36ed3"], "statement_hash": "0993afdc5fa5fcbca5c2a5d0f4017fe1621c78381ed198eeec61cf2eb8a2eea1", "relations": [{"rule": 2, "type": "equivalent", "target": "084c04f290d7624f05e5394924f6dc72", "evidence": {"same_day": true, "patch_ids": ["1b9c45bd8e297f40e04bbfe901f36ed3"], "statement_hash": "0993afdc5fa5fcbca5c2a5d0f4017fe1621c78381ed198eeec61cf2eb8a2eea1"}}, {"rule": 2, "type": "equivalent", "target": "6bd1e0297c1059933a92f416eda748d0", "evidence": {"same_day": true, "patch_ids": ["1b9c45bd8e297f40e04bbfe901f36ed3"], "statement_hash": "0993afdc5fa5fcbca5c2a5d0f4017fe1621c78381ed198eeec61cf2eb8a2eea1"}}, {"rule": 2, "type": "equivalent", "target": "dcc6931b6143b2d79f6cc60ff0978b18", "evidence": {"same_day": true, "patch_ids": ["1b9c45bd8e297f40e04bbfe901f36ed3"], "statement_hash": "0993afdc5fa5fcbca5c2a5d0f4017fe1621c78381ed198eeec61cf2eb8a2eea1"}}, {"rule": 2, "type": "equivalent", "target": "e4a3f1cf6544b112189ee964bc53ae7c", "evidence": {"same_day": true, "patch_ids": ["1b9c45bd8e297f40e04bbfe901f36ed3"], "statement_hash": "0993afdc5fa5fcbca5c2a5d0f4017fe1621c78381ed198eeec61cf2eb8a2eea1"}}], "version": "9.6.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4a3f1cf6544b112189ee964bc53ae7c", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "修复 TAP 测试的 make 规则（prove_installcheck），使其在 PGXS 用法下正常工作", "evidence": {"same_day": true, "patch_ids": ["1b9c45bd8e297f40e04bbfe901f36ed3"], "statement_hash": "0993afdc5fa5fcbca5c2a5d0f4017fe1621c78381ed198eeec61cf2eb8a2eea1"}, "url": "/docs/compare/?release=13.4#13.4-03313c5d2346e465", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "dcc6931b6143b2d79f6cc60ff0978b18", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "修复 TAP 测试的 make 规则（prove_installcheck），使其在 PGXS 用法下正常工作", "evidence": {"same_day": true, "patch_ids": ["1b9c45bd8e297f40e04bbfe901f36ed3"], "statement_hash": "0993afdc5fa5fcbca5c2a5d0f4017fe1621c78381ed198eeec61cf2eb8a2eea1"}, "url": "/docs/compare/?release=12.8#12.8-6fff92fa5c963c7e", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "6bd1e0297c1059933a92f416eda748d0", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "修复 TAP 测试的 make 规则（prove_installcheck），使其在 PGXS 用法下正常工作", "evidence": {"same_day": true, "patch_ids": ["1b9c45bd8e297f40e04bbfe901f36ed3"], "statement_hash": "0993afdc5fa5fcbca5c2a5d0f4017fe1621c78381ed198eeec61cf2eb8a2eea1"}, "url": "/docs/compare/?release=11.13#11.13-cee212bba3cc2d0e", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "084c04f290d7624f05e5394924f6dc72", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "修复 TAP 测试的 make 规则（prove_installcheck），使其在 PGXS 用法下正常工作", "evidence": {"same_day": true, "patch_ids": ["1b9c45bd8e297f40e04bbfe901f36ed3"], "statement_hash": "0993afdc5fa5fcbca5c2a5d0f4017fe1621c78381ed198eeec61cf2eb8a2eea1"}, "url": "/docs/compare/?release=10.18#10.18-cee212bba3cc2d0e", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-5b72a24d3f469dec", "cves": [], "html": "<p>避免假定 GSSAPI 库返回的字符串以空字符结尾（Tom Lane）</p>\n<p>GSSAPI 规范提供字符串指针和长度。实践中字符串后面的下一个字节通常是零，因此我们原来的编码实际并没有失败；但确实有 AddressSanitizer 报告的记录。</p>", "text": "避免假定 GSSAPI 库返回的字符串以空字符结尾（Tom Lane） GSSAPI 规范提供字符串指针和长度。实践中字符串后面的下一个字节通常是零，因此我们原来的编码实际并没有失败；但确实有 AddressSanitizer 报告的记录。", "title": "避免假定 GSSAPI 库返回的字符串以空字符结尾", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "c4ed4a6ce05eb4c0184ffe0c8dfee273242210f284443c89379832aac5d5f0ad", "section_path": ["变更"], "commit_groups": [["006a829b2", "126cdaf47", "13f365568", "361acef7e", "7eaf65451", "d3a845d1f"]], "identity_text": "Avoid assuming that strings returned by GSSAPI libraries are null-terminated (Tom Lane) The GSSAPI spec provides for a string pointer and length. It seems that in practice the next byte after the string is usually zero, so that our previous coding didn't actually fail; but we do have a report of AddressSanitizer complaints.", "commit_aliases": ["006a829b2", "126cdaf47", "13f365568", "361acef7e", "7eaf65451", "d3a845d1f"], "source_commits": ["006a829b2"], "source_entry_id": "9.6.23/changes/045", "db_id": "f696c959aa23990d7139a8ebe4e1acb9", "patch_ids": ["9be91ec613a8777395eab8803fa1cf36"], "statement_hash": "dddf7eeb8f86464af8abcfe91a332078d15f787019610a810118612b15b97afd", "relations": [{"rule": 2, "type": "equivalent", "target": "4394e8c29a3ea781ecc5d841e8052995", "evidence": {"same_day": true, "patch_ids": ["9be91ec613a8777395eab8803fa1cf36"], "statement_hash": "dddf7eeb8f86464af8abcfe91a332078d15f787019610a810118612b15b97afd"}}, {"rule": 2, "type": "equivalent", "target": "662c8257df683d00436901be8494b70b", "evidence": {"same_day": true, "patch_ids": ["9be91ec613a8777395eab8803fa1cf36"], "statement_hash": "dddf7eeb8f86464af8abcfe91a332078d15f787019610a810118612b15b97afd"}}, {"rule": 2, "type": "equivalent", "target": "92bf094f88007eaa21a239f885fd516e", "evidence": {"same_day": true, "patch_ids": ["9be91ec613a8777395eab8803fa1cf36"], "statement_hash": "dddf7eeb8f86464af8abcfe91a332078d15f787019610a810118612b15b97afd"}}, {"rule": 2, "type": "equivalent", "target": "ce80c9f971c7aaeb0810fd0a1f9a239e", "evidence": {"same_day": true, "patch_ids": ["9be91ec613a8777395eab8803fa1cf36"], "statement_hash": "dddf7eeb8f86464af8abcfe91a332078d15f787019610a810118612b15b97afd"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ce80c9f971c7aaeb0810fd0a1f9a239e", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "避免假定 GSSAPI 库返回的字符串以空字符结尾", "evidence": {"same_day": true, "patch_ids": ["9be91ec613a8777395eab8803fa1cf36"], "statement_hash": "dddf7eeb8f86464af8abcfe91a332078d15f787019610a810118612b15b97afd"}, "url": "/docs/compare/?release=13.4#13.4-3e7220d298f435d2", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "662c8257df683d00436901be8494b70b", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "避免假定 GSSAPI 库返回的字符串以空字符结尾", "evidence": {"same_day": true, "patch_ids": ["9be91ec613a8777395eab8803fa1cf36"], "statement_hash": "dddf7eeb8f86464af8abcfe91a332078d15f787019610a810118612b15b97afd"}, "url": "/docs/compare/?release=12.8#12.8-0ea50dbb1b1a77ef", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "92bf094f88007eaa21a239f885fd516e", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "避免假定 GSSAPI 库返回的字符串以空字符结尾", "evidence": {"same_day": true, "patch_ids": ["9be91ec613a8777395eab8803fa1cf36"], "statement_hash": "dddf7eeb8f86464af8abcfe91a332078d15f787019610a810118612b15b97afd"}, "url": "/docs/compare/?release=11.13#11.13-5b72a24d3f469dec", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "4394e8c29a3ea781ecc5d841e8052995", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "避免假定 GSSAPI 库返回的字符串以空字符结尾", "evidence": {"same_day": true, "patch_ids": ["9be91ec613a8777395eab8803fa1cf36"], "statement_hash": "dddf7eeb8f86464af8abcfe91a332078d15f787019610a810118612b15b97afd"}, "url": "/docs/compare/?release=10.18#10.18-5b72a24d3f469dec", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-68c48a0baed0edf1", "cves": [], "html": "<p>允许在 MSVC 上以 GSSAPI 构建（Michael Paquier）</p>\n<p>修复与现代 Kerberos 构建的各种不兼容。</p>", "text": "允许在 MSVC 上以 GSSAPI 构建（Michael Paquier） 修复与现代 Kerberos 构建的各种不兼容。", "title": "允许在 MSVC 上以 GSSAPI 构建", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "9db1b8e80ffd11d55b67d312fc8deb12595b90e6de64d290d1afeb1e4501bd0f", "section_path": ["变更"], "commit_groups": [["02037af3f", "7ca37fb04", "e2f21ff60"], ["025110663", "7a4f2e158", "8f507dbc6", "a75268f1c", "ab81d004e", "cf2e09544"], ["949e32ee5", "b7684bd10"]], "identity_text": "Enable building with GSSAPI on MSVC (Michael Paquier) Fix various incompatibilities with modern Kerberos builds.", "commit_aliases": ["02037af3f", "025110663", "7a4f2e158", "7ca37fb04", "8f507dbc6", "949e32ee5", "a75268f1c", "ab81d004e", "b7684bd10", "cf2e09544", "e2f21ff60"], "source_commits": ["7a4f2e158", "7ca37fb04", "949e32ee5"], "source_entry_id": "9.6.23/changes/046", "db_id": "9cc3fd7ad44ddda6e0f1436a78cca7c5", "patch_ids": ["36323160f89be3a59dacc7634bded20f", "8e8c90818a2372b90b3313a24c5deaa9", "ff6d4086f259df4df83544b3f4474869"], "statement_hash": "6a9c49bf048d7894c3c7b77190aa5d631bab7efa275bc014cd1ebea92a77d20c", "relations": [{"rule": 2, "type": "equivalent", "target": "0380426e5975f85691e8b48a5b9f20ee", "evidence": {"same_day": true, "patch_ids": ["36323160f89be3a59dacc7634bded20f", "8e8c90818a2372b90b3313a24c5deaa9", "ff6d4086f259df4df83544b3f4474869"], "statement_hash": "6a9c49bf048d7894c3c7b77190aa5d631bab7efa275bc014cd1ebea92a77d20c"}}, {"rule": 2, "type": "equivalent", "target": "50c687fae7907ce1fc62a1ab66db20ab", "evidence": {"same_day": true, "patch_ids": ["36323160f89be3a59dacc7634bded20f", "8e8c90818a2372b90b3313a24c5deaa9", "ff6d4086f259df4df83544b3f4474869"], "statement_hash": "6a9c49bf048d7894c3c7b77190aa5d631bab7efa275bc014cd1ebea92a77d20c"}}, {"rule": 2, "type": "equivalent", "target": "ca5f1765317c46fadeb1ab56a1da4c43", "evidence": {"same_day": true, "patch_ids": ["36323160f89be3a59dacc7634bded20f", "8e8c90818a2372b90b3313a24c5deaa9", "ff6d4086f259df4df83544b3f4474869"], "statement_hash": "6a9c49bf048d7894c3c7b77190aa5d631bab7efa275bc014cd1ebea92a77d20c"}}, {"rule": 2, "type": "equivalent", "target": "f7f6ffe685bbca4e36965b0e6393fcc3", "evidence": {"same_day": true, "patch_ids": ["36323160f89be3a59dacc7634bded20f", "8e8c90818a2372b90b3313a24c5deaa9", "ff6d4086f259df4df83544b3f4474869"], "statement_hash": "6a9c49bf048d7894c3c7b77190aa5d631bab7efa275bc014cd1ebea92a77d20c"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "50c687fae7907ce1fc62a1ab66db20ab", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "允许在 MSVC 上构建 GSSAPI 支持", "evidence": {"same_day": true, "patch_ids": ["36323160f89be3a59dacc7634bded20f", "8e8c90818a2372b90b3313a24c5deaa9", "ff6d4086f259df4df83544b3f4474869"], "statement_hash": "6a9c49bf048d7894c3c7b77190aa5d631bab7efa275bc014cd1ebea92a77d20c"}, "url": "/docs/compare/?release=13.4#13.4-58e039c5f2423ced", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "ca5f1765317c46fadeb1ab56a1da4c43", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "允许在 MSVC 上构建 GSSAPI 支持", "evidence": {"same_day": true, "patch_ids": ["36323160f89be3a59dacc7634bded20f", "8e8c90818a2372b90b3313a24c5deaa9", "ff6d4086f259df4df83544b3f4474869"], "statement_hash": "6a9c49bf048d7894c3c7b77190aa5d631bab7efa275bc014cd1ebea92a77d20c"}, "url": "/docs/compare/?release=12.8#12.8-b2de3afd678a8d80", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "0380426e5975f85691e8b48a5b9f20ee", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "允许在 MSVC 上构建 GSSAPI 支持", "evidence": {"same_day": true, "patch_ids": ["36323160f89be3a59dacc7634bded20f", "8e8c90818a2372b90b3313a24c5deaa9", "ff6d4086f259df4df83544b3f4474869"], "statement_hash": "6a9c49bf048d7894c3c7b77190aa5d631bab7efa275bc014cd1ebea92a77d20c"}, "url": "/docs/compare/?release=11.13#11.13-46770704781cc7f3", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "f7f6ffe685bbca4e36965b0e6393fcc3", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "允许在 MSVC 上构建 GSSAPI 支持", "evidence": {"same_day": true, "patch_ids": ["36323160f89be3a59dacc7634bded20f", "8e8c90818a2372b90b3313a24c5deaa9", "ff6d4086f259df4df83544b3f4474869"], "statement_hash": "6a9c49bf048d7894c3c7b77190aa5d631bab7efa275bc014cd1ebea92a77d20c"}, "url": "/docs/compare/?release=10.18#10.18-46770704781cc7f3", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}, {"id": "9.6.23-97ae8990a92aa431", "cves": [], "html": "<p>在 MSVC 构建中，如果指定过 <code>--with-pgport</code>，把它包含在 <span>pg_config</span> 报告的 configure 选项集合中（Andrew Dunstan）</p>", "text": "在 MSVC 构建中，如果指定过 --with-pgport，把它包含在 pg_config 报告的 configure 选项集合中（Andrew Dunstan）", "title": "在 MSVC 构建中，如果指定过 --with-pgport，把它包含在 pg_config 报告的 configure 选项集合中", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.23/#id-1.11.6.6.6", "source_hash": "aa564303f4f4f2bb7f279ee7ee36f124adc18ac3ff256cfbda5eb30c5ac53a42", "section_path": ["变更"], "commit_groups": [["34a65fc63", "40a05cf24", "a44a2b9ac", "bb18bc224", "d5d89629c", "d69fcb9ca"], ["3f70d7e44", "a8c1062a1", "abbd70022", "ae3ef8569", "c828a7246", "fb424ae85"]], "identity_text": "In MSVC builds, include --with-pgport in the set of configure options reported by pg_config, if it had been specified (Andrew Dunstan)", "commit_aliases": ["34a65fc63", "3f70d7e44", "40a05cf24", "a44a2b9ac", "a8c1062a1", "abbd70022", "ae3ef8569", "bb18bc224", "c828a7246", "d5d89629c", "d69fcb9ca", "fb424ae85"], "source_commits": ["34a65fc63", "abbd70022"], "source_entry_id": "9.6.23/changes/047", "db_id": "1c3de48a96045382bc26877d3e0b93c0", "patch_ids": ["5308511d053690a460898abd82223c56", "58bfaafd06198d8a49aea19ba9d91cad"], "statement_hash": "72fd5bc71128828b186aa27d6791d3bb3fd941060407818539c1021a373f4b73", "relations": [{"rule": 2, "type": "equivalent", "target": "06479bb6de01f5cec3406ea190a17a4b", "evidence": {"same_day": true, "patch_ids": ["5308511d053690a460898abd82223c56", "58bfaafd06198d8a49aea19ba9d91cad"], "statement_hash": "72fd5bc71128828b186aa27d6791d3bb3fd941060407818539c1021a373f4b73"}}, {"rule": 2, "type": "equivalent", "target": "961908b112db50c645d6b160cc37b0ff", "evidence": {"same_day": true, "patch_ids": ["5308511d053690a460898abd82223c56", "58bfaafd06198d8a49aea19ba9d91cad"], "statement_hash": "72fd5bc71128828b186aa27d6791d3bb3fd941060407818539c1021a373f4b73"}}, {"rule": 2, "type": "equivalent", "target": "f25abc8f82f1ac40770b5aa7e39e089d", "evidence": {"same_day": true, "patch_ids": ["5308511d053690a460898abd82223c56", "58bfaafd06198d8a49aea19ba9d91cad"], "statement_hash": "72fd5bc71128828b186aa27d6791d3bb3fd941060407818539c1021a373f4b73"}}, {"rule": 2, "type": "equivalent", "target": "f809ebe0a78d8ef4b734b15cf6473081", "evidence": {"same_day": true, "patch_ids": ["5308511d053690a460898abd82223c56", "58bfaafd06198d8a49aea19ba9d91cad"], "statement_hash": "72fd5bc71128828b186aa27d6791d3bb3fd941060407818539c1021a373f4b73"}}], "version": "9.6.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f809ebe0a78d8ef4b734b15cf6473081", "kind": "equivalent", "version": "13.4", "label": "13.4", "title": "在 MSVC 构建中，如果指定了 --with-pgport，则将其包含在 pg_config 报告的 configure 选项中", "evidence": {"same_day": true, "patch_ids": ["5308511d053690a460898abd82223c56", "58bfaafd06198d8a49aea19ba9d91cad"], "statement_hash": "72fd5bc71128828b186aa27d6791d3bb3fd941060407818539c1021a373f4b73"}, "url": "/docs/compare/?release=13.4#13.4-a975163c7bb54bc4", "source_url": "/docs/release/13.4/#id-1.11.6.25.5"}, {"db_id": "06479bb6de01f5cec3406ea190a17a4b", "kind": "equivalent", "version": "12.8", "label": "12.8", "title": "在 MSVC 构建中，如果指定了 --with-pgport，则将其包含在 pg_config 报告的 configure 选项中", "evidence": {"same_day": true, "patch_ids": ["5308511d053690a460898abd82223c56", "58bfaafd06198d8a49aea19ba9d91cad"], "statement_hash": "72fd5bc71128828b186aa27d6791d3bb3fd941060407818539c1021a373f4b73"}, "url": "/docs/compare/?release=12.8#12.8-43742cedbf001793", "source_url": "/docs/release/12.8/#id-1.11.6.20.5"}, {"db_id": "961908b112db50c645d6b160cc37b0ff", "kind": "equivalent", "version": "11.13", "label": "11.13", "title": "在 MSVC 构建中，如果指定了 --with-pgport，则将其包含在 pg_config 报告的 configure 选项中", "evidence": {"same_day": true, "patch_ids": ["5308511d053690a460898abd82223c56", "58bfaafd06198d8a49aea19ba9d91cad"], "statement_hash": "72fd5bc71128828b186aa27d6791d3bb3fd941060407818539c1021a373f4b73"}, "url": "/docs/compare/?release=11.13#11.13-9ab7619d789fd0b8", "source_url": "/docs/release/11.13/#id-1.11.6.14.5"}, {"db_id": "f25abc8f82f1ac40770b5aa7e39e089d", "kind": "equivalent", "version": "10.18", "label": "10.18", "title": "在 MSVC 构建中，如果指定了 --with-pgport，则将其包含在 pg_config 报告的 configure 选项中", "evidence": {"same_day": true, "patch_ids": ["5308511d053690a460898abd82223c56", "58bfaafd06198d8a49aea19ba9d91cad"], "statement_hash": "72fd5bc71128828b186aa27d6791d3bb3fd941060407818539c1021a373f4b73"}, "url": "/docs/compare/?release=10.18#10.18-9ab7619d789fd0b8", "source_url": "/docs/release/10.18/#id-1.11.6.10.5"}]}]}, {"date": "2021-05-13", "build": "9.6.22", "major": "9.6", "minor": 22, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.22", "eol_date": "2021-11-11", "date_text": "2021-05-13", "supported": false, "manual_url": "/docs/9.6/release-9-6-22.html", "source_url": "/docs/release/9.6.22/", "entry_count": 23, "placeholder": false, "content_hash": "937417804edc6ee4a267b54225fbac7df62ea929cf96a977c8be3fdcb998b45d", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 23, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.21 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-21.html\" title=\"E.4. 版本 9.6.21\">第 E.4 节</a>。</p>", "compatibility_count": 0, "label": "9.6.22", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 1966, "support_days": -1784, "entries": [{"id": "9.6.22-b9c1a3a97eb4a245", "cves": ["CVE-2021-32027"], "html": "<p>防止数组下标计算中的整数溢出（Tom Lane）</p>\n<p>数组代码此前不会对数组下界加长度发生整数溢出的情况报错。这导致数组中靠后的条目变得不可访问（因为它们的下标无法写成整数），但更重要的是它干扰了后续的赋值操作。这可能导致内存覆写，随之而来的是崩溃或不希望的数据修改。（CVE-2021-32027）</p>", "text": "防止数组下标计算中的整数溢出（Tom Lane） 数组代码此前不会对数组下界加长度发生整数溢出的情况报错。这导致数组中靠后的条目变得不可访问（因为它们的下标无法写成整数），但更重要的是它干扰了后续的赋值操作。这可能导致内存覆写，随之而来的是崩溃或不希望的数据修改。（CVE-2021-32027）", "title": "防止数组下标计算中的整数溢出", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "856557dd7828c99ca88ed449e53b4cefaf960e88ffa5ec39824ad8b1e8271fd4", "section_path": ["变更"], "commit_groups": [["06bfbe854", "0c1caa48d", "2fb809d3e", "3b0f6a7ae", "467395bfd", "f02b9085a"]], "identity_text": "Prevent integer overflows in array subscripting calculations (Tom Lane) The array code previously did not complain about cases where an array's lower bound plus length overflows an integer. This resulted in later entries in the array becoming inaccessible (since their subscripts could not be written as integers), but more importantly it confused subsequent assignment operations. This could lead to memory overwrites, with ensuing crashes or unwanted data modifications. (CVE-2021-32027)", "commit_aliases": ["06bfbe854", "0c1caa48d", "2fb809d3e", "3b0f6a7ae", "467395bfd", "f02b9085a"], "source_commits": ["0c1caa48d"], "source_entry_id": "9.6.22/changes/001", "db_id": "4666021688be3025a677f523ae0c8c60", "patch_ids": ["db73052be15292b3bf2d6ac73b599dd7"], "statement_hash": "2e3bb88aaeea703978a5aa4c1677d3c53de4a1c353484fd9ba322845c504673e", "relations": [{"rule": 2, "type": "equivalent", "target": "585fcef5c692b598ea6a152292683b72", "evidence": {"same_day": true, "patch_ids": ["db73052be15292b3bf2d6ac73b599dd7"], "statement_hash": "2e3bb88aaeea703978a5aa4c1677d3c53de4a1c353484fd9ba322845c504673e"}}, {"rule": 2, "type": "equivalent", "target": "7319e67c7fec827a36de6818c38d93d2", "evidence": {"same_day": true, "patch_ids": ["db73052be15292b3bf2d6ac73b599dd7"], "statement_hash": "2e3bb88aaeea703978a5aa4c1677d3c53de4a1c353484fd9ba322845c504673e"}}, {"rule": 2, "type": "equivalent", "target": "c8963e580f988547350ccc8ce6625481", "evidence": {"same_day": true, "patch_ids": ["db73052be15292b3bf2d6ac73b599dd7"], "statement_hash": "2e3bb88aaeea703978a5aa4c1677d3c53de4a1c353484fd9ba322845c504673e"}}, {"rule": 2, "type": "equivalent", "target": "e4fdf746e5ec58e73f25f64763b1d119", "evidence": {"same_day": true, "patch_ids": ["db73052be15292b3bf2d6ac73b599dd7"], "statement_hash": "2e3bb88aaeea703978a5aa4c1677d3c53de4a1c353484fd9ba322845c504673e"}}], "version": "9.6.22", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "c8963e580f988547350ccc8ce6625481", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "防止数组下标计算中的整数溢出", "evidence": {"same_day": true, "patch_ids": ["db73052be15292b3bf2d6ac73b599dd7"], "statement_hash": "2e3bb88aaeea703978a5aa4c1677d3c53de4a1c353484fd9ba322845c504673e"}, "url": "/docs/compare/?release=13.3#13.3-662fbe650093c58f", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "e4fdf746e5ec58e73f25f64763b1d119", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "防止数组下标计算中的整数溢出", "evidence": {"same_day": true, "patch_ids": ["db73052be15292b3bf2d6ac73b599dd7"], "statement_hash": "2e3bb88aaeea703978a5aa4c1677d3c53de4a1c353484fd9ba322845c504673e"}, "url": "/docs/compare/?release=12.7#12.7-ac73d078ce65a7fd", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "7319e67c7fec827a36de6818c38d93d2", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "防止数组下标计算中的整数溢出", "evidence": {"same_day": true, "patch_ids": ["db73052be15292b3bf2d6ac73b599dd7"], "statement_hash": "2e3bb88aaeea703978a5aa4c1677d3c53de4a1c353484fd9ba322845c504673e"}, "url": "/docs/compare/?release=11.12#11.12-b9c1a3a97eb4a245", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "585fcef5c692b598ea6a152292683b72", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "防止数组下标计算中的整数溢出", "evidence": {"same_day": true, "patch_ids": ["db73052be15292b3bf2d6ac73b599dd7"], "statement_hash": "2e3bb88aaeea703978a5aa4c1677d3c53de4a1c353484fd9ba322845c504673e"}, "url": "/docs/compare/?release=10.17#10.17-b9c1a3a97eb4a245", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-98b39e1ef9c989a0", "cves": ["CVE-2021-32028"], "html": "<p>修复 <code>INSERT ... ON CONFLICT ... UPDATE</code> 目标列表中<span>“<span>垃圾</span>”</span>列的处理不当（Tom Lane）</p>\n<p>如果 <code>UPDATE</code> 列表包含多列子选择（它们除了正常结果之外还会产生垃圾列），<code>UPDATE</code> 路径最终会存储包含这些额外垃圾列值的元组。短期内这相当无害，但如果以后向表中添加新列，这些值就会变得可访问，若与所添加列的数据类型不匹配，可能导致故障。</p>\n<p>此外，在支持跨分区更新的版本中，这种情况触发的跨分区更新有相反的问题：垃圾列被从目标列表中移除，通常因多列子选择机制故障导致立即崩溃。（CVE-2021-32028）</p>", "text": "修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中“垃圾”列的处理不当（Tom Lane） 如果 UPDATE 列表包含多列子选择（它们除了正常结果之外还会产生垃圾列），UPDATE 路径最终会存储包含这些额外垃圾列值的元组。短期内这相当无害，但如果以后向表中添加新列，这些值就会变得可访问，若与所添加列的数据类型不匹配，可能导致故障。 此外，在支持跨分区更新的版本中，这种情况触发的跨分区更新有相反的问题：垃圾列被从目标列表中移除，通常因多列子选择机制故障导致立即崩溃。（CVE-2021-32028）", "title": "修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中“垃圾”列的处理不当", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "557f22304fdf2782c903d32f2aa29bbe025ec1a75b712a9910cff0f358d2be5f", "section_path": ["变更"], "commit_groups": [["049e1e2ed", "0fcb8e2e0", "4a8656a7e", "52a441362", "a5fa3e067", "b7d1f32ff"]], "identity_text": "Fix mishandling of junk columns in INSERT ... ON CONFLICT ... UPDATE target lists (Tom Lane) If the UPDATE list contains any multi-column sub-selects (which give rise to junk columns in addition to the results proper), the UPDATE path would end up storing tuples that include the values of the extra junk columns. That's fairly harmless in the short run, but if new columns are added to the table then the values would become accessible, possibly leading to malfunctions if they don't match the datatypes of the added columns. In addition, in versions supporting cross-partition updates, a cross-partition update triggered by such a case had the reverse problem: the junk columns were removed from the target list, typically causing an immediate crash due to malfunction of the multi-column sub-select mechanism. (CVE-2021-32028)", "commit_aliases": ["049e1e2ed", "0fcb8e2e0", "4a8656a7e", "52a441362", "a5fa3e067", "b7d1f32ff"], "source_commits": ["0fcb8e2e0"], "source_entry_id": "9.6.22/changes/002", "db_id": "3f2c9193965eda4138ae7d054f8f1a9b", "patch_ids": ["ff3ef8c324c71352daad6839c64249d5"], "statement_hash": "7fb50e1e3c1cec9533ac76989dbe129a78800d8c1fe809989eb31f396296edfe", "relations": [{"rule": 2, "type": "equivalent", "target": "2ee7e4bc11ce6a07ec695882d5d4830d", "evidence": {"same_day": true, "patch_ids": ["ff3ef8c324c71352daad6839c64249d5"], "statement_hash": "7fb50e1e3c1cec9533ac76989dbe129a78800d8c1fe809989eb31f396296edfe"}}, {"rule": 2, "type": "equivalent", "target": "402ddf1823a78b25bc4bae8aa78148a5", "evidence": {"same_day": true, "patch_ids": ["ff3ef8c324c71352daad6839c64249d5"], "statement_hash": "7fb50e1e3c1cec9533ac76989dbe129a78800d8c1fe809989eb31f396296edfe"}}, {"rule": 2, "type": "equivalent", "target": "cfea65ca9d40576b1d0602eaccf39e2a", "evidence": {"same_day": true, "patch_ids": ["ff3ef8c324c71352daad6839c64249d5"], "statement_hash": "7fb50e1e3c1cec9533ac76989dbe129a78800d8c1fe809989eb31f396296edfe"}}, {"rule": 2, "type": "equivalent", "target": "d7b2c329c0c08a8f6a79de7573c441e0", "evidence": {"same_day": true, "patch_ids": ["ff3ef8c324c71352daad6839c64249d5"], "statement_hash": "7fb50e1e3c1cec9533ac76989dbe129a78800d8c1fe809989eb31f396296edfe"}}], "version": "9.6.22", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "cfea65ca9d40576b1d0602eaccf39e2a", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中对 “junk” 列的错误处理", "evidence": {"same_day": true, "patch_ids": ["ff3ef8c324c71352daad6839c64249d5"], "statement_hash": "7fb50e1e3c1cec9533ac76989dbe129a78800d8c1fe809989eb31f396296edfe"}, "url": "/docs/compare/?release=13.3#13.3-0f677eeae1faab2b", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "d7b2c329c0c08a8f6a79de7573c441e0", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中对 “junk” 列的错误处理", "evidence": {"same_day": true, "patch_ids": ["ff3ef8c324c71352daad6839c64249d5"], "statement_hash": "7fb50e1e3c1cec9533ac76989dbe129a78800d8c1fe809989eb31f396296edfe"}, "url": "/docs/compare/?release=12.7#12.7-99371ae3858378c5", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "402ddf1823a78b25bc4bae8aa78148a5", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中对 “junk” 列的错误处理", "evidence": {"same_day": true, "patch_ids": ["ff3ef8c324c71352daad6839c64249d5"], "statement_hash": "7fb50e1e3c1cec9533ac76989dbe129a78800d8c1fe809989eb31f396296edfe"}, "url": "/docs/compare/?release=11.12#11.12-e7be457a4c664006", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "2ee7e4bc11ce6a07ec695882d5d4830d", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中对 “junk” 列的错误处理", "evidence": {"same_day": true, "patch_ids": ["ff3ef8c324c71352daad6839c64249d5"], "statement_hash": "7fb50e1e3c1cec9533ac76989dbe129a78800d8c1fe809989eb31f396296edfe"}, "url": "/docs/compare/?release=10.17#10.17-e7be457a4c664006", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-3abda7d90ef80e1f", "cves": [], "html": "<p>允许 <code>ALTER ROLE/DATABASE ... SET</code> 设置 <code>role</code>、<code>session_authorization</code> 和 <code>temp_buffers</code> 参数（Tom Lane）</p>\n<p>此前，过于严格的合法性检查可能拒绝这些命令，即使这些值在之后使用时本可正常工作。这给转储/恢复和升级场景带来了命令顺序隐患。</p>", "text": "允许 ALTER ROLE/DATABASE ... SET 设置 role、session_authorization 和 temp_buffers 参数（Tom Lane） 此前，过于严格的合法性检查可能拒绝这些命令，即使这些值在之后使用时本可正常工作。这给转储/恢复和升级场景带来了命令顺序隐患。", "title": "允许 ALTER ROLE/DATABASE ... SET 设置 role、session_authorization 和 temp_buffers 参数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "08a7e3d89107d8716d9aa3ee490079e967cd5f0e47cd354616234d9e64da6116", "section_path": ["变更"], "commit_groups": [["041f4efd2", "46b6635b7", "69d5ca484", "a7fcb6285", "c39aa1e87", "c7f0275fb"]], "identity_text": "Allow ALTER ROLE/DATABASE ... SET to set the role, session_authorization, and temp_buffers parameters (Tom Lane) Previously, over-eager validity checks might reject these commands, even if the values would have worked when used later. This created a command ordering hazard for dump/reload and upgrade scenarios.", "commit_aliases": ["041f4efd2", "46b6635b7", "69d5ca484", "a7fcb6285", "c39aa1e87", "c7f0275fb"], "source_commits": ["041f4efd2"], "source_entry_id": "9.6.22/changes/003", "db_id": "043ff6cd519d8bec7a87d4f43ead62c5", "patch_ids": ["8ae2e83a5d291ced86d998b1ab7eee63"], "statement_hash": "b7f97fb8d75c806f24e4d3e965f7f5ca6fdcac93de0c9165a1ef89a5462795e3", "relations": [{"rule": 2, "type": "equivalent", "target": "c3314c5d1c83f2209c3e6d3b60ed537c", "evidence": {"same_day": true, "patch_ids": ["8ae2e83a5d291ced86d998b1ab7eee63"], "statement_hash": "b7f97fb8d75c806f24e4d3e965f7f5ca6fdcac93de0c9165a1ef89a5462795e3"}}, {"rule": 2, "type": "equivalent", "target": "d0451410730607800b5df7d2e7948715", "evidence": {"same_day": true, "patch_ids": ["8ae2e83a5d291ced86d998b1ab7eee63"], "statement_hash": "b7f97fb8d75c806f24e4d3e965f7f5ca6fdcac93de0c9165a1ef89a5462795e3"}}, {"rule": 2, "type": "equivalent", "target": "d86c969ac905b3cd2d03d2be6b46b1ae", "evidence": {"same_day": true, "patch_ids": ["8ae2e83a5d291ced86d998b1ab7eee63"], "statement_hash": "b7f97fb8d75c806f24e4d3e965f7f5ca6fdcac93de0c9165a1ef89a5462795e3"}}, {"rule": 2, "type": "equivalent", "target": "e97862062ce0ecf8f4295eda9e69b3e7", "evidence": {"same_day": true, "patch_ids": ["8ae2e83a5d291ced86d998b1ab7eee63"], "statement_hash": "b7f97fb8d75c806f24e4d3e965f7f5ca6fdcac93de0c9165a1ef89a5462795e3"}}], "version": "9.6.22", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d0451410730607800b5df7d2e7948715", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "允许 ALTER ROLE/DATABASE ... SET 设置 role、session_authorization 和 temp_buffers 参数", "evidence": {"same_day": true, "patch_ids": ["8ae2e83a5d291ced86d998b1ab7eee63"], "statement_hash": "b7f97fb8d75c806f24e4d3e965f7f5ca6fdcac93de0c9165a1ef89a5462795e3"}, "url": "/docs/compare/?release=13.3#13.3-5941ada8f8acfccd", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "e97862062ce0ecf8f4295eda9e69b3e7", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "允许 ALTER ROLE/DATABASE ... SET 设置 role、session_authorization 和 temp_buffers 参数", "evidence": {"same_day": true, "patch_ids": ["8ae2e83a5d291ced86d998b1ab7eee63"], "statement_hash": "b7f97fb8d75c806f24e4d3e965f7f5ca6fdcac93de0c9165a1ef89a5462795e3"}, "url": "/docs/compare/?release=12.7#12.7-5aef3b1587010883", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "d86c969ac905b3cd2d03d2be6b46b1ae", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "允许 ALTER ROLE/DATABASE ... SET 设置 role、session_authorization 和 temp_buffers 参数", "evidence": {"same_day": true, "patch_ids": ["8ae2e83a5d291ced86d998b1ab7eee63"], "statement_hash": "b7f97fb8d75c806f24e4d3e965f7f5ca6fdcac93de0c9165a1ef89a5462795e3"}, "url": "/docs/compare/?release=11.12#11.12-3abda7d90ef80e1f", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "c3314c5d1c83f2209c3e6d3b60ed537c", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "允许 ALTER ROLE/DATABASE ... SET 设置 role、session_authorization 和 temp_buffers 参数", "evidence": {"same_day": true, "patch_ids": ["8ae2e83a5d291ced86d998b1ab7eee63"], "statement_hash": "b7f97fb8d75c806f24e4d3e965f7f5ca6fdcac93de0c9165a1ef89a5462795e3"}, "url": "/docs/compare/?release=10.17#10.17-3abda7d90ef80e1f", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-2768e5dc2468676c", "cves": [], "html": "<p>修复把 <code>COLLATE</code> 表达式的结果强制转换为不可排序类型时的 bug（Tom Lane）</p>\n<p>这产生了一个 <code>COLLATE</code> 看似应用于不可排序值的解析树。虽然这通常没有实际影响（因为 <code>COLLATE</code> 在运行时不起作用），但可能构造出在转储/恢复期间被拒绝的视图。</p>", "text": "修复把 COLLATE 表达式的结果强制转换为不可排序类型时的 bug（Tom Lane） 这产生了一个 COLLATE 看似应用于不可排序值的解析树。虽然这通常没有实际影响（因为 COLLATE 在运行时不起作用），但可能构造出在转储/恢复期间被拒绝的视图。", "title": "修复把 COLLATE 表达式的结果强制转换为不可排序类型时的 bug", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "fbd82af83d0a6fe5aa57ebeffd860caf1fbe87807ab3a4abe00ab06337a024d9", "section_path": ["变更"], "commit_groups": [["27011bcff", "4b0aecee8", "8a7bd1e6c", "a6158a4d9", "c402b02b9", "fb2cca828"]], "identity_text": "Fix bug with coercing the result of a COLLATE expression to a non-collatable type (Tom Lane) This led to a parse tree in which the COLLATE appears to be applied to a non-collatable value. While that normally has no real impact (since COLLATE has no effect at runtime), it was possible to construct views that would be rejected during dump/reload.", "commit_aliases": ["27011bcff", "4b0aecee8", "8a7bd1e6c", "a6158a4d9", "c402b02b9", "fb2cca828"], "source_commits": ["a6158a4d9"], "source_entry_id": "9.6.22/changes/004", "db_id": "90665f926fa6dc60b6efb5c5b4db356a", "patch_ids": ["bc0c38dd5368211113518f2d7e77a821"], "statement_hash": "49b9c831678d626b93a4bd08bec89d247290b5683b70b76c3d6980072d2f357f", "relations": [{"rule": 2, "type": "equivalent", "target": "03872d51902341e78f3762c12e74634c", "evidence": {"same_day": true, "patch_ids": ["bc0c38dd5368211113518f2d7e77a821"], "statement_hash": "49b9c831678d626b93a4bd08bec89d247290b5683b70b76c3d6980072d2f357f"}}, {"rule": 2, "type": "equivalent", "target": "1bb34a32c748fc13ad726d873d811614", "evidence": {"same_day": true, "patch_ids": ["bc0c38dd5368211113518f2d7e77a821"], "statement_hash": "49b9c831678d626b93a4bd08bec89d247290b5683b70b76c3d6980072d2f357f"}}, {"rule": 2, "type": "equivalent", "target": "3c7c8c72920e227ad94cb3a912c954a5", "evidence": {"same_day": true, "patch_ids": ["bc0c38dd5368211113518f2d7e77a821"], "statement_hash": "49b9c831678d626b93a4bd08bec89d247290b5683b70b76c3d6980072d2f357f"}}, {"rule": 2, "type": "equivalent", "target": "abb30bf8744a5d98736b8e5e85968d25", "evidence": {"same_day": true, "patch_ids": ["bc0c38dd5368211113518f2d7e77a821"], "statement_hash": "49b9c831678d626b93a4bd08bec89d247290b5683b70b76c3d6980072d2f357f"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "abb30bf8744a5d98736b8e5e85968d25", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "修复将 COLLATE 表达式的结果强制转换为不支持排序规则的类型时的缺陷", "evidence": {"same_day": true, "patch_ids": ["bc0c38dd5368211113518f2d7e77a821"], "statement_hash": "49b9c831678d626b93a4bd08bec89d247290b5683b70b76c3d6980072d2f357f"}, "url": "/docs/compare/?release=13.3#13.3-10f61f6d7ee10895", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "1bb34a32c748fc13ad726d873d811614", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "修复将 COLLATE 表达式的结果强制转换为不支持排序规则的类型时的缺陷", "evidence": {"same_day": true, "patch_ids": ["bc0c38dd5368211113518f2d7e77a821"], "statement_hash": "49b9c831678d626b93a4bd08bec89d247290b5683b70b76c3d6980072d2f357f"}, "url": "/docs/compare/?release=12.7#12.7-35665a6ec9cbc3cc", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "3c7c8c72920e227ad94cb3a912c954a5", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "修复将 COLLATE 表达式的结果强制转换为不支持排序规则的类型时的缺陷", "evidence": {"same_day": true, "patch_ids": ["bc0c38dd5368211113518f2d7e77a821"], "statement_hash": "49b9c831678d626b93a4bd08bec89d247290b5683b70b76c3d6980072d2f357f"}, "url": "/docs/compare/?release=11.12#11.12-f512b9a88d6d0840", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "03872d51902341e78f3762c12e74634c", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "修复将 COLLATE 表达式的结果强制转换为不支持排序规则的类型时的缺陷", "evidence": {"same_day": true, "patch_ids": ["bc0c38dd5368211113518f2d7e77a821"], "statement_hash": "49b9c831678d626b93a4bd08bec89d247290b5683b70b76c3d6980072d2f357f"}, "url": "/docs/compare/?release=10.17#10.17-f512b9a88d6d0840", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-3fe8b7018a871824", "cves": [], "html": "<p>禁止通过<span>“<span>快速路径</span>”</span>线上协议消息调用窗口函数和过程（Tom Lane）</p>\n<p>这里只支持普通函数。尝试调用聚合函数虽然已经会失败，但调用窗口函数会导致崩溃，而调用过程只有在过程不做事务控制时才能工作。</p>", "text": "禁止通过“快速路径”线上协议消息调用窗口函数和过程（Tom Lane） 这里只支持普通函数。尝试调用聚合函数虽然已经会失败，但调用窗口函数会导致崩溃，而调用过程只有在过程不做事务控制时才能工作。", "title": "禁止通过“快速路径”线上协议消息调用窗口函数和过程", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "21c99d98171b3796a5454aea31462d6d1178ad290162a78fb4c7453d1c67681c", "section_path": ["变更"], "commit_groups": [["0627f3630", "2efcd502e", "4d225ba0e", "73bad52a9", "89768ee69", "ebc2ff076"]], "identity_text": "Disallow calling window functions and procedures via the fast path wire protocol message (Tom Lane) Only plain functions are supported here. While trying to call an aggregate function failed already, calling a window function would crash, and calling a procedure would work only if the procedure did no transaction control.", "commit_aliases": ["0627f3630", "2efcd502e", "4d225ba0e", "73bad52a9", "89768ee69", "ebc2ff076"], "source_commits": ["73bad52a9"], "source_entry_id": "9.6.22/changes/005", "db_id": "1b8f2a45a9d2e935788f99131bc2b253", "patch_ids": ["667c9c9431f60d4a73a55e73368d7b0b"], "statement_hash": "34f948486de4d5d1f8593252025399f5242d545d3707015a511b6f7f873b0ca1", "relations": [{"rule": 2, "type": "equivalent", "target": "03906a7c8653f859466c2026e48f63c6", "evidence": {"same_day": true, "patch_ids": ["667c9c9431f60d4a73a55e73368d7b0b"], "statement_hash": "34f948486de4d5d1f8593252025399f5242d545d3707015a511b6f7f873b0ca1"}}, {"rule": 2, "type": "equivalent", "target": "7778f3a32b2fa6ab9761805a1e3b4fba", "evidence": {"same_day": true, "patch_ids": ["667c9c9431f60d4a73a55e73368d7b0b"], "statement_hash": "34f948486de4d5d1f8593252025399f5242d545d3707015a511b6f7f873b0ca1"}}, {"rule": 2, "type": "equivalent", "target": "dea30517e2656d30b3618508113e7285", "evidence": {"same_day": true, "patch_ids": ["667c9c9431f60d4a73a55e73368d7b0b"], "statement_hash": "34f948486de4d5d1f8593252025399f5242d545d3707015a511b6f7f873b0ca1"}}, {"rule": 2, "type": "equivalent", "target": "e8af7a374034d509284f19f6cc78df61", "evidence": {"same_day": true, "patch_ids": ["667c9c9431f60d4a73a55e73368d7b0b"], "statement_hash": "34f948486de4d5d1f8593252025399f5242d545d3707015a511b6f7f873b0ca1"}}], "version": "9.6.22", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7778f3a32b2fa6ab9761805a1e3b4fba", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "禁止通过“快速路径”线协议消息调用窗口函数和过程", "evidence": {"same_day": true, "patch_ids": ["667c9c9431f60d4a73a55e73368d7b0b"], "statement_hash": "34f948486de4d5d1f8593252025399f5242d545d3707015a511b6f7f873b0ca1"}, "url": "/docs/compare/?release=13.3#13.3-073a4739a4f40fc4", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "03906a7c8653f859466c2026e48f63c6", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "禁止通过“快速路径”线协议消息调用窗口函数和过程", "evidence": {"same_day": true, "patch_ids": ["667c9c9431f60d4a73a55e73368d7b0b"], "statement_hash": "34f948486de4d5d1f8593252025399f5242d545d3707015a511b6f7f873b0ca1"}, "url": "/docs/compare/?release=12.7#12.7-06b0536ea0d66ab4", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "dea30517e2656d30b3618508113e7285", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "禁止通过“快速路径”线协议消息调用窗口函数和过程", "evidence": {"same_day": true, "patch_ids": ["667c9c9431f60d4a73a55e73368d7b0b"], "statement_hash": "34f948486de4d5d1f8593252025399f5242d545d3707015a511b6f7f873b0ca1"}, "url": "/docs/compare/?release=11.12#11.12-6c2ca6f3cc542eae", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "e8af7a374034d509284f19f6cc78df61", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "禁止通过“快速路径”线协议消息调用窗口函数和过程", "evidence": {"same_day": true, "patch_ids": ["667c9c9431f60d4a73a55e73368d7b0b"], "statement_hash": "34f948486de4d5d1f8593252025399f5242d545d3707015a511b6f7f873b0ca1"}, "url": "/docs/compare/?release=10.17#10.17-6c2ca6f3cc542eae", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-38cc6de8ef10b61c", "cves": [], "html": "<p>扩展 <code>pg_identify_object_as_address()</code> 以支持事件触发器（Joel Jacobson）</p>", "text": "扩展 pg_identify_object_as_address() 以支持事件触发器（Joel Jacobson）", "title": "扩展 pg_identify_object_as_address() 以支持事件触发器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "03130027bbdf9b0c48dd0770d6090c4da70fe491ad326c4cfb638662636cdf29", "section_path": ["变更"], "commit_groups": [["0d05a3a1d", "669f73666", "85a3e0be1", "a928297bc", "b797918d2", "f93f0b5b2"], ["5b717e13c", "6e41ff056", "7e76cb1d8", "90c9bad30", "f3c453787", "f7aab36d6"]], "identity_text": "Extend pg_identify_object_as_address() to support event triggers (Joel Jacobson)", "commit_aliases": ["0d05a3a1d", "5b717e13c", "669f73666", "6e41ff056", "7e76cb1d8", "85a3e0be1", "90c9bad30", "a928297bc", "b797918d2", "f3c453787", "f7aab36d6", "f93f0b5b2"], "source_commits": ["0d05a3a1d", "6e41ff056"], "source_entry_id": "9.6.22/changes/006", "db_id": "570aba58ff1a8e4643d5e729f8c80905", "patch_ids": ["88311dbc3e5c7c10fd507b06c3be4f17", "e20dd963a27959d2a0218561dbf5ba07"], "statement_hash": "a4c8f32334b544e71fcc71c548ea67fd9e04a29d37e7ac022aa573a6acc712b8", "relations": [{"rule": 2, "type": "equivalent", "target": "1ab2e233f6adf0cae7bd7d4b105e8558", "evidence": {"same_day": true, "patch_ids": ["88311dbc3e5c7c10fd507b06c3be4f17", "e20dd963a27959d2a0218561dbf5ba07"], "statement_hash": "a4c8f32334b544e71fcc71c548ea67fd9e04a29d37e7ac022aa573a6acc712b8"}}, {"rule": 2, "type": "equivalent", "target": "5cd6ab8e24d263554c647a40d8e6510a", "evidence": {"same_day": true, "patch_ids": ["88311dbc3e5c7c10fd507b06c3be4f17", "e20dd963a27959d2a0218561dbf5ba07"], "statement_hash": "a4c8f32334b544e71fcc71c548ea67fd9e04a29d37e7ac022aa573a6acc712b8"}}, {"rule": 2, "type": "equivalent", "target": "61e2b5a711cfd7ff993742786ffe1c8d", "evidence": {"same_day": true, "patch_ids": ["88311dbc3e5c7c10fd507b06c3be4f17", "e20dd963a27959d2a0218561dbf5ba07"], "statement_hash": "a4c8f32334b544e71fcc71c548ea67fd9e04a29d37e7ac022aa573a6acc712b8"}}, {"rule": 2, "type": "equivalent", "target": "a52214e46c3177ebfce59ee06b06dd33", "evidence": {"same_day": true, "patch_ids": ["88311dbc3e5c7c10fd507b06c3be4f17", "e20dd963a27959d2a0218561dbf5ba07"], "statement_hash": "a4c8f32334b544e71fcc71c548ea67fd9e04a29d37e7ac022aa573a6acc712b8"}}], "version": "9.6.22", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5cd6ab8e24d263554c647a40d8e6510a", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "扩展 pg_identify_object_as_address()，使其支持事件触发器", "evidence": {"same_day": true, "patch_ids": ["88311dbc3e5c7c10fd507b06c3be4f17", "e20dd963a27959d2a0218561dbf5ba07"], "statement_hash": "a4c8f32334b544e71fcc71c548ea67fd9e04a29d37e7ac022aa573a6acc712b8"}, "url": "/docs/compare/?release=13.3#13.3-288208cef0a2f9c4", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "1ab2e233f6adf0cae7bd7d4b105e8558", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "扩展 pg_identify_object_as_address()，使其支持事件触发器", "evidence": {"same_day": true, "patch_ids": ["88311dbc3e5c7c10fd507b06c3be4f17", "e20dd963a27959d2a0218561dbf5ba07"], "statement_hash": "a4c8f32334b544e71fcc71c548ea67fd9e04a29d37e7ac022aa573a6acc712b8"}, "url": "/docs/compare/?release=12.7#12.7-43013edea40caf2a", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "a52214e46c3177ebfce59ee06b06dd33", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "扩展 pg_identify_object_as_address()，使其支持事件触发器", "evidence": {"same_day": true, "patch_ids": ["88311dbc3e5c7c10fd507b06c3be4f17", "e20dd963a27959d2a0218561dbf5ba07"], "statement_hash": "a4c8f32334b544e71fcc71c548ea67fd9e04a29d37e7ac022aa573a6acc712b8"}, "url": "/docs/compare/?release=11.12#11.12-b9fd61bd2129e903", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "61e2b5a711cfd7ff993742786ffe1c8d", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "扩展 pg_identify_object_as_address()，使其支持事件触发器", "evidence": {"same_day": true, "patch_ids": ["88311dbc3e5c7c10fd507b06c3be4f17", "e20dd963a27959d2a0218561dbf5ba07"], "statement_hash": "a4c8f32334b544e71fcc71c548ea67fd9e04a29d37e7ac022aa573a6acc712b8"}, "url": "/docs/compare/?release=10.17#10.17-b9fd61bd2129e903", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-628fe4627ac13739", "cves": [], "html": "<p>修复 <code>to_char()</code> 对负区间使用罗马数字月份格式代码的处理（Julien Rouhaud）</p>\n<p>此前，这类情况通常会导致崩溃。</p>", "text": "修复 to_char() 对负区间使用罗马数字月份格式代码的处理（Julien Rouhaud） 此前，这类情况通常会导致崩溃。", "title": "修复 to_char() 对负区间使用罗马数字月份格式代码的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "2cd5e8bdb43b9b163210c7b667f47c316d88473a6f8f2a72c973b7f2befe7ef1", "section_path": ["变更"], "commit_groups": [["1cc110f68", "5656f2c3d", "6540322fa", "7a3972597", "82dd5706e", "be79debd9"]], "identity_text": "Fix to_char()'s handling of Roman-numeral month format codes with negative intervals (Julien Rouhaud) Previously, such cases would usually cause a crash.", "commit_aliases": ["1cc110f68", "5656f2c3d", "6540322fa", "7a3972597", "82dd5706e", "be79debd9"], "source_commits": ["6540322fa"], "source_entry_id": "9.6.22/changes/007", "db_id": "9f5b7d05c6c1db76a9ca6065f9203b1a", "patch_ids": ["7319000da5c8ae3f6b56ed68a4ee9dfa"], "statement_hash": "34e9a02c4aed166a4f2a8c97b0027c7ddda88f0bdc5d0a9f1e296dc78abc4ac5", "relations": [{"rule": 2, "type": "equivalent", "target": "0a104851ab53b64998bf762315515496", "evidence": {"same_day": true, "patch_ids": ["7319000da5c8ae3f6b56ed68a4ee9dfa"], "statement_hash": "34e9a02c4aed166a4f2a8c97b0027c7ddda88f0bdc5d0a9f1e296dc78abc4ac5"}}, {"rule": 2, "type": "equivalent", "target": "40cc08f45f115d84fadcd5703140f2f9", "evidence": {"same_day": true, "patch_ids": ["7319000da5c8ae3f6b56ed68a4ee9dfa"], "statement_hash": "34e9a02c4aed166a4f2a8c97b0027c7ddda88f0bdc5d0a9f1e296dc78abc4ac5"}}, {"rule": 2, "type": "equivalent", "target": "b7c10db782f367caba5ef19f3462459b", "evidence": {"same_day": true, "patch_ids": ["7319000da5c8ae3f6b56ed68a4ee9dfa"], "statement_hash": "34e9a02c4aed166a4f2a8c97b0027c7ddda88f0bdc5d0a9f1e296dc78abc4ac5"}}, {"rule": 2, "type": "equivalent", "target": "bd638f861b8f78c34f8208fab8338b52", "evidence": {"same_day": true, "patch_ids": ["7319000da5c8ae3f6b56ed68a4ee9dfa"], "statement_hash": "34e9a02c4aed166a4f2a8c97b0027c7ddda88f0bdc5d0a9f1e296dc78abc4ac5"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b7c10db782f367caba5ef19f3462459b", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "修复 to_char() 对负时间间隔使用罗马数字月份格式代码的处理", "evidence": {"same_day": true, "patch_ids": ["7319000da5c8ae3f6b56ed68a4ee9dfa"], "statement_hash": "34e9a02c4aed166a4f2a8c97b0027c7ddda88f0bdc5d0a9f1e296dc78abc4ac5"}, "url": "/docs/compare/?release=13.3#13.3-9ee98f84b0afbd4f", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "bd638f861b8f78c34f8208fab8338b52", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "修复 to_char() 对负时间间隔使用罗马数字月份格式代码的处理", "evidence": {"same_day": true, "patch_ids": ["7319000da5c8ae3f6b56ed68a4ee9dfa"], "statement_hash": "34e9a02c4aed166a4f2a8c97b0027c7ddda88f0bdc5d0a9f1e296dc78abc4ac5"}, "url": "/docs/compare/?release=12.7#12.7-9d059568c66a3ba9", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "0a104851ab53b64998bf762315515496", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "修复 to_char() 对负时间间隔使用罗马数字月份格式代码的处理", "evidence": {"same_day": true, "patch_ids": ["7319000da5c8ae3f6b56ed68a4ee9dfa"], "statement_hash": "34e9a02c4aed166a4f2a8c97b0027c7ddda88f0bdc5d0a9f1e296dc78abc4ac5"}, "url": "/docs/compare/?release=11.12#11.12-8fc513836898aa0c", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "40cc08f45f115d84fadcd5703140f2f9", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "修复 to_char() 对负时间间隔使用罗马数字月份格式代码的处理", "evidence": {"same_day": true, "patch_ids": ["7319000da5c8ae3f6b56ed68a4ee9dfa"], "statement_hash": "34e9a02c4aed166a4f2a8c97b0027c7ddda88f0bdc5d0a9f1e296dc78abc4ac5"}, "url": "/docs/compare/?release=10.17#10.17-8fc513836898aa0c", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-19823c8b9c9bd4d7", "cves": [], "html": "<p>修复 BRE 模式正则表达式中解析 <code>\\{<em><code>m</code></em>,<em><code>n</code></em>\\}</code> 量词时使用未初始化值的问题（Tom Lane）</p>\n<p>这个错误可能导致量词表现为非贪婪，即表现得像完整正则表达式中的 <code>{<em><code>m</code></em>,<em><code>n</code></em>}?</code> 量词那样。</p>", "text": "修复 BRE 模式正则表达式中解析 \\{m,n\\} 量词时使用未初始化值的问题（Tom Lane） 这个错误可能导致量词表现为非贪婪，即表现得像完整正则表达式中的 {m,n}? 量词那样。", "title": "修复 BRE 模式正则表达式中解析 \\{m,n\\} 量词时使用未初始化值的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "568b743b58710d04b2fec0adc7716c66c18c17951c2324cafe727dd79cb777d9", "section_path": ["变更"], "commit_groups": [["6e6fecf49", "ab208421e", "b06450979", "b5a66e735", "bf9d3a5f8", "e7cddb5f2"]], "identity_text": "Fix use of uninitialized value while parsing an \\{m,n\\} quantifier in a BRE-mode regular expression (Tom Lane) This error could cause the quantifier to act non-greedy, that is behave like an {m,n}? quantifier would do in full regular expressions.", "commit_aliases": ["6e6fecf49", "ab208421e", "b06450979", "b5a66e735", "bf9d3a5f8", "e7cddb5f2"], "source_commits": ["ab208421e"], "source_entry_id": "9.6.22/changes/008", "db_id": "35d023ec7e6cb87b0ac4f6dd25c4cdcc", "patch_ids": ["28090e761bc8afcf7c092c652ea46eae"], "statement_hash": "33e2417303e32078f65ccd1e73b2d7a4ee36854373984e0110794b476bb7669b", "relations": [{"rule": 2, "type": "equivalent", "target": "0bf05e3e62e8640ec87cf9c4260bdf71", "evidence": {"same_day": true, "patch_ids": ["28090e761bc8afcf7c092c652ea46eae"], "statement_hash": "33e2417303e32078f65ccd1e73b2d7a4ee36854373984e0110794b476bb7669b"}}, {"rule": 2, "type": "equivalent", "target": "18bcd4ff4a5b2578a944105a2d3bad2b", "evidence": {"same_day": true, "patch_ids": ["28090e761bc8afcf7c092c652ea46eae"], "statement_hash": "33e2417303e32078f65ccd1e73b2d7a4ee36854373984e0110794b476bb7669b"}}, {"rule": 2, "type": "equivalent", "target": "be17b091805137c3f9fc93d8574ff6ff", "evidence": {"same_day": true, "patch_ids": ["28090e761bc8afcf7c092c652ea46eae"], "statement_hash": "33e2417303e32078f65ccd1e73b2d7a4ee36854373984e0110794b476bb7669b"}}, {"rule": 2, "type": "equivalent", "target": "daac38e577e2f7007410cd8dc7f5ac3f", "evidence": {"same_day": true, "patch_ids": ["28090e761bc8afcf7c092c652ea46eae"], "statement_hash": "33e2417303e32078f65ccd1e73b2d7a4ee36854373984e0110794b476bb7669b"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "18bcd4ff4a5b2578a944105a2d3bad2b", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "修复解析 BRE 模式正则表达式中的 \\{m,n\\} 量词时使用未初始化值的问题", "evidence": {"same_day": true, "patch_ids": ["28090e761bc8afcf7c092c652ea46eae"], "statement_hash": "33e2417303e32078f65ccd1e73b2d7a4ee36854373984e0110794b476bb7669b"}, "url": "/docs/compare/?release=13.3#13.3-75cd8adaf0246852", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "0bf05e3e62e8640ec87cf9c4260bdf71", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "修复解析 BRE 模式正则表达式中的 \\{m,n\\} 量词时使用未初始化值的问题", "evidence": {"same_day": true, "patch_ids": ["28090e761bc8afcf7c092c652ea46eae"], "statement_hash": "33e2417303e32078f65ccd1e73b2d7a4ee36854373984e0110794b476bb7669b"}, "url": "/docs/compare/?release=12.7#12.7-2f97e49be6871e4a", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "be17b091805137c3f9fc93d8574ff6ff", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "修复解析 BRE 模式正则表达式中的 \\{m,n\\} 量词时使用未初始化值的问题", "evidence": {"same_day": true, "patch_ids": ["28090e761bc8afcf7c092c652ea46eae"], "statement_hash": "33e2417303e32078f65ccd1e73b2d7a4ee36854373984e0110794b476bb7669b"}, "url": "/docs/compare/?release=11.12#11.12-2146f382754c4721", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "daac38e577e2f7007410cd8dc7f5ac3f", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "修复解析 BRE 模式正则表达式中的 \\{m,n\\} 量词时使用未初始化值的问题", "evidence": {"same_day": true, "patch_ids": ["28090e761bc8afcf7c092c652ea46eae"], "statement_hash": "33e2417303e32078f65ccd1e73b2d7a4ee36854373984e0110794b476bb7669b"}, "url": "/docs/compare/?release=10.17#10.17-2146f382754c4721", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-bb2e0d1931995be1", "cves": [], "html": "<p>避免在估算带有很长固定前缀的正则表达式的选择率时除零（Tom Lane）</p>\n<p>这通常会导致 <code>NaN</code> 选择率值，引起断言失败或规划器行为异常。</p>", "text": "避免在估算带有很长固定前缀的正则表达式的选择率时除零（Tom Lane） 这通常会导致 NaN 选择率值，引起断言失败或规划器行为异常。", "title": "避免在估算带有很长固定前缀的正则表达式的选择率时除零", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "efb3656165a44f55cdf77d82b39102974a1b7bc1730dc35c5c1e63826ad060b4", "section_path": ["变更"], "commit_groups": [["0347470b3", "374f1cefe", "3a02d68a9", "a28df6fa3", "ae4867ec7", "f4d781dae"]], "identity_text": "Avoid divide-by-zero when estimating selectivity of a regular expression with a very long fixed prefix (Tom Lane) This typically led to a NaN selectivity value, causing assertion failures or strange planner behavior.", "commit_aliases": ["0347470b3", "374f1cefe", "3a02d68a9", "a28df6fa3", "ae4867ec7", "f4d781dae"], "source_commits": ["f4d781dae"], "source_entry_id": "9.6.22/changes/009", "db_id": "dd95045b892c651f4672028b9a382f57", "patch_ids": ["9902ee3c2d2817b9f581b3aa98640e9b"], "statement_hash": "af7fe50671e73be53d326ebd78815b26ead6f2256a3490d648eae020b7a7fe62", "relations": [{"rule": 2, "type": "equivalent", "target": "11cd51efa02c594b7f72e8e5c1191a71", "evidence": {"same_day": true, "patch_ids": ["9902ee3c2d2817b9f581b3aa98640e9b"], "statement_hash": "af7fe50671e73be53d326ebd78815b26ead6f2256a3490d648eae020b7a7fe62"}}, {"rule": 2, "type": "equivalent", "target": "14d062b495819ce0d0510ea041c79088", "evidence": {"same_day": true, "patch_ids": ["9902ee3c2d2817b9f581b3aa98640e9b"], "statement_hash": "af7fe50671e73be53d326ebd78815b26ead6f2256a3490d648eae020b7a7fe62"}}, {"rule": 2, "type": "equivalent", "target": "262537625d4bf258dd1131759d746f52", "evidence": {"same_day": true, "patch_ids": ["9902ee3c2d2817b9f581b3aa98640e9b"], "statement_hash": "af7fe50671e73be53d326ebd78815b26ead6f2256a3490d648eae020b7a7fe62"}}, {"rule": 2, "type": "equivalent", "target": "bd45c3f5dda28a076169fb3b2eb6f6a7", "evidence": {"same_day": true, "patch_ids": ["9902ee3c2d2817b9f581b3aa98640e9b"], "statement_hash": "af7fe50671e73be53d326ebd78815b26ead6f2256a3490d648eae020b7a7fe62"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "262537625d4bf258dd1131759d746f52", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "避免估计具有很长固定前缀的正则表达式的选择率时出现除零错误", "evidence": {"same_day": true, "patch_ids": ["9902ee3c2d2817b9f581b3aa98640e9b"], "statement_hash": "af7fe50671e73be53d326ebd78815b26ead6f2256a3490d648eae020b7a7fe62"}, "url": "/docs/compare/?release=13.3#13.3-0c127e09568e7e6e", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "11cd51efa02c594b7f72e8e5c1191a71", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "避免估计具有很长固定前缀的正则表达式的选择率时出现除零错误", "evidence": {"same_day": true, "patch_ids": ["9902ee3c2d2817b9f581b3aa98640e9b"], "statement_hash": "af7fe50671e73be53d326ebd78815b26ead6f2256a3490d648eae020b7a7fe62"}, "url": "/docs/compare/?release=12.7#12.7-780c72813beb1ac4", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "bd45c3f5dda28a076169fb3b2eb6f6a7", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "避免估计具有很长固定前缀的正则表达式的选择率时出现除零错误", "evidence": {"same_day": true, "patch_ids": ["9902ee3c2d2817b9f581b3aa98640e9b"], "statement_hash": "af7fe50671e73be53d326ebd78815b26ead6f2256a3490d648eae020b7a7fe62"}, "url": "/docs/compare/?release=11.12#11.12-9304401a9a3da26c", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "14d062b495819ce0d0510ea041c79088", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "避免估计具有很长固定前缀的正则表达式的选择率时出现除零错误", "evidence": {"same_day": true, "patch_ids": ["9902ee3c2d2817b9f581b3aa98640e9b"], "statement_hash": "af7fe50671e73be53d326ebd78815b26ead6f2256a3490d648eae020b7a7fe62"}, "url": "/docs/compare/?release=10.17#10.17-9304401a9a3da26c", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-bc748355dcaccaf3", "cves": [], "html": "<p>修复 BRIN 索引位图扫描中越表末访问的错误（Tomas Vondra）</p>\n<p>如果 BRIN 索引使用的页范围大小不是 2 的幂，在某些边界情况下位图扫描可能试图取回超出表实际末尾的页，导致 <span>“<span>could not open file</span>”</span> 错误。</p>", "text": "修复 BRIN 索引位图扫描中越表末访问的错误（Tomas Vondra） 如果 BRIN 索引使用的页范围大小不是 2 的幂，在某些边界情况下位图扫描可能试图取回超出表实际末尾的页，导致 “could not open file” 错误。", "title": "修复 BRIN 索引位图扫描中越表末访问的错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "8f2ab839f799f5a5af59f56066b8ca64a8f5e46ec29e6b6b29e45d4e41d2b6cc", "section_path": ["变更"], "commit_groups": [["1aad1d181", "23607a815", "7d3a53461", "847612fda", "df97ee6ea", "e4f251be7"]], "identity_text": "Fix access-off-the-end-of-the-table error in BRIN index bitmap scans (Tomas Vondra) If the page range size used by a BRIN index isn't a power of two, there were corner cases in which a bitmap scan could try to fetch pages past the actual end of the table, leading to could not open file errors.", "commit_aliases": ["1aad1d181", "23607a815", "7d3a53461", "847612fda", "df97ee6ea", "e4f251be7"], "source_commits": ["df97ee6ea"], "source_entry_id": "9.6.22/changes/010", "db_id": "a4a6211a7ccfce246a599ca2b95e1de9", "patch_ids": ["72b2c31661fd706661cb3df775127374"], "statement_hash": "9e7f4417857aca44e2394c35eef35625f6564172330efaf56c21706cb6229606", "relations": [{"rule": 2, "type": "equivalent", "target": "61cbd7bfd3778343419ff4ea7ee70db1", "evidence": {"same_day": true, "patch_ids": ["72b2c31661fd706661cb3df775127374"], "statement_hash": "9e7f4417857aca44e2394c35eef35625f6564172330efaf56c21706cb6229606"}}, {"rule": 2, "type": "equivalent", "target": "c5ed0e21fd32ad21603f4a15525170ee", "evidence": {"same_day": true, "patch_ids": ["72b2c31661fd706661cb3df775127374"], "statement_hash": "9e7f4417857aca44e2394c35eef35625f6564172330efaf56c21706cb6229606"}}, {"rule": 2, "type": "equivalent", "target": "e4e4a8f913f2b8037c0c5747e48b0878", "evidence": {"same_day": true, "patch_ids": ["72b2c31661fd706661cb3df775127374"], "statement_hash": "9e7f4417857aca44e2394c35eef35625f6564172330efaf56c21706cb6229606"}}, {"rule": 2, "type": "equivalent", "target": "fb32cff9c207c98871de91e331df5e47", "evidence": {"same_day": true, "patch_ids": ["72b2c31661fd706661cb3df775127374"], "statement_hash": "9e7f4417857aca44e2394c35eef35625f6564172330efaf56c21706cb6229606"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "61cbd7bfd3778343419ff4ea7ee70db1", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "修复 BRIN 索引位图扫描中访问超出表末尾位置的错误", "evidence": {"same_day": true, "patch_ids": ["72b2c31661fd706661cb3df775127374"], "statement_hash": "9e7f4417857aca44e2394c35eef35625f6564172330efaf56c21706cb6229606"}, "url": "/docs/compare/?release=13.3#13.3-ab4eaf112dfb2d89", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "c5ed0e21fd32ad21603f4a15525170ee", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "修复 BRIN 索引位图扫描中访问超出表末尾位置的错误", "evidence": {"same_day": true, "patch_ids": ["72b2c31661fd706661cb3df775127374"], "statement_hash": "9e7f4417857aca44e2394c35eef35625f6564172330efaf56c21706cb6229606"}, "url": "/docs/compare/?release=12.7#12.7-9c1de227cc83156d", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "fb32cff9c207c98871de91e331df5e47", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "修复 BRIN 索引位图扫描中访问超出表末尾位置的错误", "evidence": {"same_day": true, "patch_ids": ["72b2c31661fd706661cb3df775127374"], "statement_hash": "9e7f4417857aca44e2394c35eef35625f6564172330efaf56c21706cb6229606"}, "url": "/docs/compare/?release=11.12#11.12-64f8de0b19c5611c", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "e4e4a8f913f2b8037c0c5747e48b0878", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "修复 BRIN 索引位图扫描中访问超出表末尾位置的错误", "evidence": {"same_day": true, "patch_ids": ["72b2c31661fd706661cb3df775127374"], "statement_hash": "9e7f4417857aca44e2394c35eef35625f6564172330efaf56c21706cb6229606"}, "url": "/docs/compare/?release=10.17#10.17-64f8de0b19c5611c", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-bd5da1bf87ad9ac8", "cves": [], "html": "<p>确保在关闭备库服务器的启动进程期间释放锁（Fujii Masao）</p>\n<p>当备库服务器仍在恢复期间被关闭时，某些锁可能仍被持有。这会导致调试构建中的断言失败；生产构建中是否会有严重后果尚不清楚。</p>", "text": "确保在关闭备库服务器的启动进程期间释放锁（Fujii Masao） 当备库服务器仍在恢复期间被关闭时，某些锁可能仍被持有。这会导致调试构建中的断言失败；生产构建中是否会有严重后果尚不清楚。", "title": "确保在关闭备库服务器的启动进程期间释放锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "5fb74308dd9cfc8e085aafed359c46d5293daa66284483fba30ff239f3ac80b5", "section_path": ["变更"], "commit_groups": [["ad8b67492", "b59d3abaf", "b9cf9d7d3", "dd5b7e486", "e3bf96216", "e7bcfd717"]], "identity_text": "Ensure that locks are released while shutting down a standby server's startup process (Fujii Masao) When a standby server is shut down while still in recovery, some locks might be left held. This causes assertion failures in debug builds; it's unclear whether any serious consequence could occur in production builds.", "commit_aliases": ["ad8b67492", "b59d3abaf", "b9cf9d7d3", "dd5b7e486", "e3bf96216", "e7bcfd717"], "source_commits": ["e3bf96216"], "source_entry_id": "9.6.22/changes/011", "db_id": "59acb9b03dd39c719f32a8eb23740b16", "patch_ids": ["133e532eeccc0cc0c1dd923f12b6c641"], "statement_hash": "df944c25880b38b9d6fed732f3099aca9cab9c0039cda7d6cec750cdb324fe69", "relations": [{"rule": 2, "type": "equivalent", "target": "062b13769fd19e7beae52070c5a9e124", "evidence": {"same_day": true, "patch_ids": ["133e532eeccc0cc0c1dd923f12b6c641"], "statement_hash": "df944c25880b38b9d6fed732f3099aca9cab9c0039cda7d6cec750cdb324fe69"}}, {"rule": 2, "type": "equivalent", "target": "073e827b10f6b1fc2d24b6b821f12348", "evidence": {"same_day": true, "patch_ids": ["133e532eeccc0cc0c1dd923f12b6c641"], "statement_hash": "df944c25880b38b9d6fed732f3099aca9cab9c0039cda7d6cec750cdb324fe69"}}, {"rule": 2, "type": "equivalent", "target": "238c45b77c57b6ea46d88aee7653f60d", "evidence": {"same_day": true, "patch_ids": ["133e532eeccc0cc0c1dd923f12b6c641"], "statement_hash": "df944c25880b38b9d6fed732f3099aca9cab9c0039cda7d6cec750cdb324fe69"}}, {"rule": 2, "type": "equivalent", "target": "492876ca41b4c6bb5cff16a8c4788a61", "evidence": {"same_day": true, "patch_ids": ["133e532eeccc0cc0c1dd923f12b6c641"], "statement_hash": "df944c25880b38b9d6fed732f3099aca9cab9c0039cda7d6cec750cdb324fe69"}}], "version": "9.6.22", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "238c45b77c57b6ea46d88aee7653f60d", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "确保关闭备库的启动进程时释放锁", "evidence": {"same_day": true, "patch_ids": ["133e532eeccc0cc0c1dd923f12b6c641"], "statement_hash": "df944c25880b38b9d6fed732f3099aca9cab9c0039cda7d6cec750cdb324fe69"}, "url": "/docs/compare/?release=13.3#13.3-09ab65777a171b7b", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "062b13769fd19e7beae52070c5a9e124", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "确保关闭备库的启动进程时释放锁", "evidence": {"same_day": true, "patch_ids": ["133e532eeccc0cc0c1dd923f12b6c641"], "statement_hash": "df944c25880b38b9d6fed732f3099aca9cab9c0039cda7d6cec750cdb324fe69"}, "url": "/docs/compare/?release=12.7#12.7-ef3ade4b27c85a8b", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "492876ca41b4c6bb5cff16a8c4788a61", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "确保关闭备库的启动进程时释放锁", "evidence": {"same_day": true, "patch_ids": ["133e532eeccc0cc0c1dd923f12b6c641"], "statement_hash": "df944c25880b38b9d6fed732f3099aca9cab9c0039cda7d6cec750cdb324fe69"}, "url": "/docs/compare/?release=11.12#11.12-cc0923f765ef064b", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "073e827b10f6b1fc2d24b6b821f12348", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "确保关闭备库的启动进程时释放锁", "evidence": {"same_day": true, "patch_ids": ["133e532eeccc0cc0c1dd923f12b6c641"], "statement_hash": "df944c25880b38b9d6fed732f3099aca9cab9c0039cda7d6cec750cdb324fe69"}, "url": "/docs/compare/?release=10.17#10.17-cc0923f765ef064b", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-8120ab81cf704e2f", "cves": [], "html": "<p>确保在较新的 FreeBSD 上默认使用 <code>wal_sync_method</code> = <code>fdatasync</code>（Thomas Munro）</p>\n<p>FreeBSD 13 支持 <code>open_datasync</code>，它通常会变成默认选择。但尚不清楚这对 Postgres 是否真的是改进，因此暂时保留原有默认值。</p>", "text": "确保在较新的 FreeBSD 上默认使用 wal_sync_method = fdatasync（Thomas Munro） FreeBSD 13 支持 open_datasync，它通常会变成默认选择。但尚不清楚这对 Postgres 是否真的是改进，因此暂时保留原有默认值。", "title": "确保在较新的 FreeBSD 上默认使用 wal_sync_method = fdatasync", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "11565093815723d4aa808a6a301e0937465830419dee9a00811cc17bcaeb304e", "section_path": ["变更"], "commit_groups": [["09a3b19e3", "1fefe8879", "6c23e5ae9", "800131df7", "a27f3a7f4", "f900a79ec"]], "identity_text": "Ensure we default to wal_sync_method = fdatasync on recent FreeBSD (Thomas Munro) FreeBSD 13 supports open_datasync, which would normally become the default choice. However, it's unclear whether that is actually an improvement for Postgres, so preserve the existing default for now.", "commit_aliases": ["09a3b19e3", "1fefe8879", "6c23e5ae9", "800131df7", "a27f3a7f4", "f900a79ec"], "source_commits": ["09a3b19e3"], "source_entry_id": "9.6.22/changes/012", "db_id": "d8abd2d2b916ea344275fa48febd6de3", "patch_ids": ["bbb3d03be2d44c294d2e4311c686e0a6"], "statement_hash": "f999c4164b7f4ce856e2c5423b1be8c6335f7a0e13f31b4f08d8aee03b85ac5c", "relations": [{"rule": 2, "type": "equivalent", "target": "308b7195d5ab5445234c5c824b504dce", "evidence": {"same_day": true, "patch_ids": ["bbb3d03be2d44c294d2e4311c686e0a6"], "statement_hash": "f999c4164b7f4ce856e2c5423b1be8c6335f7a0e13f31b4f08d8aee03b85ac5c"}}, {"rule": 2, "type": "equivalent", "target": "720f4c295e8c8d7064ee80213ba0772e", "evidence": {"same_day": true, "patch_ids": ["bbb3d03be2d44c294d2e4311c686e0a6"], "statement_hash": "f999c4164b7f4ce856e2c5423b1be8c6335f7a0e13f31b4f08d8aee03b85ac5c"}}, {"rule": 2, "type": "equivalent", "target": "9689adc34579b70072bc3d5e395cadf5", "evidence": {"same_day": true, "patch_ids": ["bbb3d03be2d44c294d2e4311c686e0a6"], "statement_hash": "f999c4164b7f4ce856e2c5423b1be8c6335f7a0e13f31b4f08d8aee03b85ac5c"}}, {"rule": 2, "type": "equivalent", "target": "ee7442e57c3a8ae83094a27d9ad8da11", "evidence": {"same_day": true, "patch_ids": ["bbb3d03be2d44c294d2e4311c686e0a6"], "statement_hash": "f999c4164b7f4ce856e2c5423b1be8c6335f7a0e13f31b4f08d8aee03b85ac5c"}}], "version": "9.6.22", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ee7442e57c3a8ae83094a27d9ad8da11", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "确保在较新版本的 FreeBSD 上默认使用 wal_sync_method = fdatasync", "evidence": {"same_day": true, "patch_ids": ["bbb3d03be2d44c294d2e4311c686e0a6"], "statement_hash": "f999c4164b7f4ce856e2c5423b1be8c6335f7a0e13f31b4f08d8aee03b85ac5c"}, "url": "/docs/compare/?release=13.3#13.3-8adb86c3113e8360", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "720f4c295e8c8d7064ee80213ba0772e", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "确保在较新版本的 FreeBSD 上默认使用 wal_sync_method = fdatasync", "evidence": {"same_day": true, "patch_ids": ["bbb3d03be2d44c294d2e4311c686e0a6"], "statement_hash": "f999c4164b7f4ce856e2c5423b1be8c6335f7a0e13f31b4f08d8aee03b85ac5c"}, "url": "/docs/compare/?release=12.7#12.7-7af28a1338c7ba5d", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "9689adc34579b70072bc3d5e395cadf5", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "确保在较新版本的 FreeBSD 上默认使用 wal_sync_method = fdatasync", "evidence": {"same_day": true, "patch_ids": ["bbb3d03be2d44c294d2e4311c686e0a6"], "statement_hash": "f999c4164b7f4ce856e2c5423b1be8c6335f7a0e13f31b4f08d8aee03b85ac5c"}, "url": "/docs/compare/?release=11.12#11.12-cebda2bae56e9f79", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "308b7195d5ab5445234c5c824b504dce", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "确保在较新版本的 FreeBSD 上默认使用 wal_sync_method = fdatasync", "evidence": {"same_day": true, "patch_ids": ["bbb3d03be2d44c294d2e4311c686e0a6"], "statement_hash": "f999c4164b7f4ce856e2c5423b1be8c6335f7a0e13f31b4f08d8aee03b85ac5c"}, "url": "/docs/compare/?release=10.17#10.17-cebda2bae56e9f79", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-b25a6708b239157a", "cves": [], "html": "<p>确保在分离 DSM 段被中断时完成清理（Thomas Munro）</p>\n<p>这个错误可能导致并行查询之后临时文件未被及时清理。</p>", "text": "确保在分离 DSM 段被中断时完成清理（Thomas Munro） 这个错误可能导致并行查询之后临时文件未被及时清理。", "title": "确保在分离 DSM 段被中断时完成清理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "d2a9f19c6ce5b3ad27e5f553b6ec4843669d0c99381b4018241967eee093c1c9", "section_path": ["变更"], "commit_groups": [["4b426f77c", "637668fb1", "840eda04e", "8a07e5bd8", "9fe40913c", "acafdd9ed"]], "identity_text": "Ensure we finish cleaning up when interrupted while detaching a DSM segment (Thomas Munro) This error could result in temporary files not being cleaned up promptly after a parallel query.", "commit_aliases": ["4b426f77c", "637668fb1", "840eda04e", "8a07e5bd8", "9fe40913c", "acafdd9ed"], "source_commits": ["8a07e5bd8"], "source_entry_id": "9.6.22/changes/013", "db_id": "39df208538fedc0bf3f262ba010b8933", "patch_ids": ["36ee67e9328b5f869d9e433419a6fd69"], "statement_hash": "71484cd6ce3dcccc079a86baf0a067d7e3284adf9afa30e9031048ecc2f610cc", "relations": [{"rule": 2, "type": "equivalent", "target": "869cfb32e5b7b396c6b448739c9e20e2", "evidence": {"same_day": true, "patch_ids": ["36ee67e9328b5f869d9e433419a6fd69"], "statement_hash": "71484cd6ce3dcccc079a86baf0a067d7e3284adf9afa30e9031048ecc2f610cc"}}, {"rule": 2, "type": "equivalent", "target": "a2d067a132fbaf87a1e15613cfce2e0a", "evidence": {"same_day": true, "patch_ids": ["36ee67e9328b5f869d9e433419a6fd69"], "statement_hash": "71484cd6ce3dcccc079a86baf0a067d7e3284adf9afa30e9031048ecc2f610cc"}}, {"rule": 2, "type": "equivalent", "target": "d5d8252f9e52aa7f57a975f98746773e", "evidence": {"same_day": true, "patch_ids": ["36ee67e9328b5f869d9e433419a6fd69"], "statement_hash": "71484cd6ce3dcccc079a86baf0a067d7e3284adf9afa30e9031048ecc2f610cc"}}, {"rule": 2, "type": "equivalent", "target": "e8c49727adfe23a3d9c02af29c178ab7", "evidence": {"same_day": true, "patch_ids": ["36ee67e9328b5f869d9e433419a6fd69"], "statement_hash": "71484cd6ce3dcccc079a86baf0a067d7e3284adf9afa30e9031048ecc2f610cc"}}], "version": "9.6.22", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d5d8252f9e52aa7f57a975f98746773e", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "确保分离 DSM 段期间被中断时仍能完成清理", "evidence": {"same_day": true, "patch_ids": ["36ee67e9328b5f869d9e433419a6fd69"], "statement_hash": "71484cd6ce3dcccc079a86baf0a067d7e3284adf9afa30e9031048ecc2f610cc"}, "url": "/docs/compare/?release=13.3#13.3-781bdd17d7abc7e2", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "869cfb32e5b7b396c6b448739c9e20e2", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "确保分离 DSM 段期间被中断时仍能完成清理", "evidence": {"same_day": true, "patch_ids": ["36ee67e9328b5f869d9e433419a6fd69"], "statement_hash": "71484cd6ce3dcccc079a86baf0a067d7e3284adf9afa30e9031048ecc2f610cc"}, "url": "/docs/compare/?release=12.7#12.7-9c8c5cc0a75b8ce2", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "a2d067a132fbaf87a1e15613cfce2e0a", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "确保分离 DSM 段期间被中断时仍能完成清理", "evidence": {"same_day": true, "patch_ids": ["36ee67e9328b5f869d9e433419a6fd69"], "statement_hash": "71484cd6ce3dcccc079a86baf0a067d7e3284adf9afa30e9031048ecc2f610cc"}, "url": "/docs/compare/?release=11.12#11.12-99418baefecb959e", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "e8c49727adfe23a3d9c02af29c178ab7", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "确保分离 DSM 段期间被中断时仍能完成清理", "evidence": {"same_day": true, "patch_ids": ["36ee67e9328b5f869d9e433419a6fd69"], "statement_hash": "71484cd6ce3dcccc079a86baf0a067d7e3284adf9afa30e9031048ecc2f610cc"}, "url": "/docs/compare/?release=10.17#10.17-99418baefecb959e", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-1dfecc2f4aee441f", "cves": [], "html": "<p>修复服务器中若干轻微的内存泄漏（Tom Lane、Andres Freund）</p>", "text": "修复服务器中若干轻微的内存泄漏（Tom Lane、Andres Freund）", "title": "修复服务器中若干轻微的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "c8625c304f1db508bd108f50ccb4e57c423e987b1b5f21f6b7c3eac527ba73a7", "section_path": ["变更"], "commit_groups": [["099d2914f", "09e961929", "0b618ddf8", "92bc14a10", "d303849b0", "eba939551"], ["26a3ae06d", "377b7a830", "5058e95a6", "642b0b69b", "7e2521770", "fc552f868"]], "identity_text": "Fix assorted minor memory leaks in the server (Tom Lane, Andres Freund)", "commit_aliases": ["099d2914f", "09e961929", "0b618ddf8", "26a3ae06d", "377b7a830", "5058e95a6", "642b0b69b", "7e2521770", "92bc14a10", "d303849b0", "eba939551", "fc552f868"], "source_commits": ["09e961929", "7e2521770"], "source_entry_id": "9.6.22/changes/014", "db_id": "a7a165b7be91c9d1539502d4e43cb9a3", "patch_ids": ["8e19f457a6c06d813e4fcd3e511e6652", "ef57775f040bdd51593eb3d9b31a1536"], "statement_hash": "094a8ac0364fd9a6d0c65563febad094c830da53fa64add17406007d9c41640c", "relations": [{"rule": 2, "type": "related", "target": "0b77a332a701d12618a8679c0ffa81bb", "evidence": {"same_day": true, "patch_ids": ["8e19f457a6c06d813e4fcd3e511e6652", "ef57775f040bdd51593eb3d9b31a1536"], "statement_hash": "094a8ac0364fd9a6d0c65563febad094c830da53fa64add17406007d9c41640c"}}, {"rule": 2, "type": "related", "target": "1678dd9c9a9003a7d56ad21c3c3e2f3b", "evidence": {"same_day": true, "patch_ids": ["8e19f457a6c06d813e4fcd3e511e6652", "ef57775f040bdd51593eb3d9b31a1536"], "statement_hash": "094a8ac0364fd9a6d0c65563febad094c830da53fa64add17406007d9c41640c"}}, {"rule": 2, "type": "related", "target": "47dd699457eb55393cedc2f4d22772ff", "evidence": {"same_day": true, "patch_ids": ["8e19f457a6c06d813e4fcd3e511e6652", "ef57775f040bdd51593eb3d9b31a1536"], "statement_hash": "094a8ac0364fd9a6d0c65563febad094c830da53fa64add17406007d9c41640c"}}, {"rule": 2, "type": "related", "target": "f3d455c6804ccf0ec8d47e1b31d304ff", "evidence": {"same_day": true, "patch_ids": ["8e19f457a6c06d813e4fcd3e511e6652", "ef57775f040bdd51593eb3d9b31a1536"], "statement_hash": "094a8ac0364fd9a6d0c65563febad094c830da53fa64add17406007d9c41640c"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "47dd699457eb55393cedc2f4d22772ff", "kind": "related", "version": "13.3", "label": "13.3", "title": "修复服务器中多种较小的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["8e19f457a6c06d813e4fcd3e511e6652", "ef57775f040bdd51593eb3d9b31a1536"], "statement_hash": "094a8ac0364fd9a6d0c65563febad094c830da53fa64add17406007d9c41640c"}, "url": "/docs/compare/?release=13.3#13.3-a60ee9865585f428", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "f3d455c6804ccf0ec8d47e1b31d304ff", "kind": "related", "version": "12.7", "label": "12.7", "title": "修复服务器中多种较小的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["8e19f457a6c06d813e4fcd3e511e6652", "ef57775f040bdd51593eb3d9b31a1536"], "statement_hash": "094a8ac0364fd9a6d0c65563febad094c830da53fa64add17406007d9c41640c"}, "url": "/docs/compare/?release=12.7#12.7-c0926c7d178ccdba", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "1678dd9c9a9003a7d56ad21c3c3e2f3b", "kind": "related", "version": "11.12", "label": "11.12", "title": "修复服务器中多种较小的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["8e19f457a6c06d813e4fcd3e511e6652", "ef57775f040bdd51593eb3d9b31a1536"], "statement_hash": "094a8ac0364fd9a6d0c65563febad094c830da53fa64add17406007d9c41640c"}, "url": "/docs/compare/?release=11.12#11.12-1ebd6aed5408c6ff", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "0b77a332a701d12618a8679c0ffa81bb", "kind": "related", "version": "10.17", "label": "10.17", "title": "修复服务器中多种较小的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["8e19f457a6c06d813e4fcd3e511e6652", "ef57775f040bdd51593eb3d9b31a1536"], "statement_hash": "094a8ac0364fd9a6d0c65563febad094c830da53fa64add17406007d9c41640c"}, "url": "/docs/compare/?release=10.17#10.17-1ebd6aed5408c6ff", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-160fe053a6923109", "cves": [], "html": "<p>防止收到长度损坏的 ParameterDescription 消息时 <span>libpq</span> 陷入无限循环（Tom Lane）</p>", "text": "防止收到长度损坏的 ParameterDescription 消息时 libpq 陷入无限循环（Tom Lane）", "title": "防止收到长度损坏的 ParameterDescription 消息时 libpq 陷入无限循环", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "8bac87cb93e7aaf2cf0949549b96797bab5c2415ade213d8d768e17ccbd4ac90", "section_path": ["变更"], "commit_groups": [["3580b4a0c", "51c54bb60", "56defbdd0", "a98e53e10", "d2be6cdc5", "d3a557894"]], "identity_text": "Prevent infinite loop in libpq if a ParameterDescription message with a corrupt length is received (Tom Lane)", "commit_aliases": ["3580b4a0c", "51c54bb60", "56defbdd0", "a98e53e10", "d2be6cdc5", "d3a557894"], "source_commits": ["a98e53e10"], "source_entry_id": "9.6.22/changes/015", "db_id": "cc3057e47b0e74abc43def86be80e4e8", "patch_ids": ["e631b5efa78409f5018308a9f0603cc9"], "statement_hash": "d98e127ac7c9582f7c3856848e252c82ad536cbefe55f76fecd51f3e526a7287", "relations": [{"rule": 2, "type": "equivalent", "target": "20962137519d9b459e46e1ca576e6fec", "evidence": {"same_day": true, "patch_ids": ["e631b5efa78409f5018308a9f0603cc9"], "statement_hash": "d98e127ac7c9582f7c3856848e252c82ad536cbefe55f76fecd51f3e526a7287"}}, {"rule": 2, "type": "equivalent", "target": "46eef7218cafa404380daee2f63d31a0", "evidence": {"same_day": true, "patch_ids": ["e631b5efa78409f5018308a9f0603cc9"], "statement_hash": "d98e127ac7c9582f7c3856848e252c82ad536cbefe55f76fecd51f3e526a7287"}}, {"rule": 2, "type": "equivalent", "target": "546f4a726fe3405762281da3367c949f", "evidence": {"same_day": true, "patch_ids": ["e631b5efa78409f5018308a9f0603cc9"], "statement_hash": "d98e127ac7c9582f7c3856848e252c82ad536cbefe55f76fecd51f3e526a7287"}}, {"rule": 2, "type": "equivalent", "target": "e0aaeb46fa67ca300769b7f407099603", "evidence": {"same_day": true, "patch_ids": ["e631b5efa78409f5018308a9f0603cc9"], "statement_hash": "d98e127ac7c9582f7c3856848e252c82ad536cbefe55f76fecd51f3e526a7287"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "46eef7218cafa404380daee2f63d31a0", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "防止 libpq 收到长度损坏的 ParameterDescription 消息时陷入无限循环", "evidence": {"same_day": true, "patch_ids": ["e631b5efa78409f5018308a9f0603cc9"], "statement_hash": "d98e127ac7c9582f7c3856848e252c82ad536cbefe55f76fecd51f3e526a7287"}, "url": "/docs/compare/?release=13.3#13.3-d1b3e4574f126458", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "546f4a726fe3405762281da3367c949f", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "防止 libpq 收到长度损坏的 ParameterDescription 消息时陷入无限循环", "evidence": {"same_day": true, "patch_ids": ["e631b5efa78409f5018308a9f0603cc9"], "statement_hash": "d98e127ac7c9582f7c3856848e252c82ad536cbefe55f76fecd51f3e526a7287"}, "url": "/docs/compare/?release=12.7#12.7-eec70e869190c282", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "e0aaeb46fa67ca300769b7f407099603", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "防止 libpq 收到长度损坏的 ParameterDescription 消息时陷入无限循环", "evidence": {"same_day": true, "patch_ids": ["e631b5efa78409f5018308a9f0603cc9"], "statement_hash": "d98e127ac7c9582f7c3856848e252c82ad536cbefe55f76fecd51f3e526a7287"}, "url": "/docs/compare/?release=11.12#11.12-c5447b73a4a7d956", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "20962137519d9b459e46e1ca576e6fec", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "防止 libpq 收到长度损坏的 ParameterDescription 消息时陷入无限循环", "evidence": {"same_day": true, "patch_ids": ["e631b5efa78409f5018308a9f0603cc9"], "statement_hash": "d98e127ac7c9582f7c3856848e252c82ad536cbefe55f76fecd51f3e526a7287"}, "url": "/docs/compare/?release=10.17#10.17-c5447b73a4a7d956", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-ca1fa4611c3c3294", "cves": [], "html": "<p>修复 <span>psql</span>，恢复 <code>\\connect service=<em><code>something</code></em></code> 的先前行为（Tom Lane）</p>\n<p>此前的一次 bug 修复导致在这种场景下环境变量（如 <code>PGPORT</code>）会覆盖服务文件中的条目。恢复先前行为，即优先级相反。</p>", "text": "修复 psql，恢复 \\connect service=something 的先前行为（Tom Lane） 此前的一次 bug 修复导致在这种场景下环境变量（如 PGPORT）会覆盖服务文件中的条目。恢复先前行为，即优先级相反。", "title": "修复 psql，恢复 \\connect service=something 的先前行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "637426b246cfc0925d9fa3d9e6e6b64a9ee4b3401d61547f4181e3e896778074", "section_path": ["变更"], "commit_groups": [["4f670c64e", "beac4bd65", "c6eac71a8", "d5a905ed5", "d75edab42", "ea8013854"]], "identity_text": "Fix psql to restore the previous behavior of \\connect service=something (Tom Lane) A previous bug fix caused environment variables (such as PGPORT) to override entries in the service file in this context. Restore the previous behavior, in which the priority is the other way around.", "commit_aliases": ["4f670c64e", "beac4bd65", "c6eac71a8", "d5a905ed5", "d75edab42", "ea8013854"], "source_commits": ["4f670c64e"], "source_entry_id": "9.6.22/changes/016", "db_id": "4c17f93954329cc6f9f954669ba4ce36", "patch_ids": ["fab7e7d8b3905b68e36138d8f0d656e6"], "statement_hash": "736cb2e14988f53a452617794d06e7660f2909179f5e68c3e5b93d01f643deb2", "relations": [{"rule": 2, "type": "equivalent", "target": "116dbfb4021dc8f708c6d39c560689d5", "evidence": {"same_day": true, "patch_ids": ["fab7e7d8b3905b68e36138d8f0d656e6"], "statement_hash": "736cb2e14988f53a452617794d06e7660f2909179f5e68c3e5b93d01f643deb2"}}, {"rule": 2, "type": "equivalent", "target": "bee1a221cb288c1e02115549cb090f1b", "evidence": {"same_day": true, "patch_ids": ["fab7e7d8b3905b68e36138d8f0d656e6"], "statement_hash": "736cb2e14988f53a452617794d06e7660f2909179f5e68c3e5b93d01f643deb2"}}, {"rule": 2, "type": "equivalent", "target": "c7082c0d989394b0641dbee7e15c1e7e", "evidence": {"same_day": true, "patch_ids": ["fab7e7d8b3905b68e36138d8f0d656e6"], "statement_hash": "736cb2e14988f53a452617794d06e7660f2909179f5e68c3e5b93d01f643deb2"}}, {"rule": 2, "type": "equivalent", "target": "dbf74091bb1c8fe612e90357b67e32d7", "evidence": {"same_day": true, "patch_ids": ["fab7e7d8b3905b68e36138d8f0d656e6"], "statement_hash": "736cb2e14988f53a452617794d06e7660f2909179f5e68c3e5b93d01f643deb2"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c7082c0d989394b0641dbee7e15c1e7e", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "修复 psql，恢复 \\connect service=something 以前的行为", "evidence": {"same_day": true, "patch_ids": ["fab7e7d8b3905b68e36138d8f0d656e6"], "statement_hash": "736cb2e14988f53a452617794d06e7660f2909179f5e68c3e5b93d01f643deb2"}, "url": "/docs/compare/?release=13.3#13.3-846e4f14cd80f245", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "dbf74091bb1c8fe612e90357b67e32d7", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "修复 psql，恢复 \\connect service=something 以前的行为", "evidence": {"same_day": true, "patch_ids": ["fab7e7d8b3905b68e36138d8f0d656e6"], "statement_hash": "736cb2e14988f53a452617794d06e7660f2909179f5e68c3e5b93d01f643deb2"}, "url": "/docs/compare/?release=12.7#12.7-82ad77b59962a124", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "116dbfb4021dc8f708c6d39c560689d5", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "修复 psql，恢复 \\connect service=something 以前的行为", "evidence": {"same_day": true, "patch_ids": ["fab7e7d8b3905b68e36138d8f0d656e6"], "statement_hash": "736cb2e14988f53a452617794d06e7660f2909179f5e68c3e5b93d01f643deb2"}, "url": "/docs/compare/?release=11.12#11.12-33788c5c4452efbb", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "bee1a221cb288c1e02115549cb090f1b", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "修复 psql，恢复 \\connect service=something 以前的行为", "evidence": {"same_day": true, "patch_ids": ["fab7e7d8b3905b68e36138d8f0d656e6"], "statement_hash": "736cb2e14988f53a452617794d06e7660f2909179f5e68c3e5b93d01f643deb2"}, "url": "/docs/compare/?release=10.17#10.17-33788c5c4452efbb", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-fa8121edc8178671", "cves": [], "html": "<p>修复 <span>psql</span> 的 <code>\\e</code> 及相关命令检测文件修改时的竞态条件（Laurenz Albe）</p>\n<p>打字极快的用户可能骗过该代码基于文件时间戳的临时编辑文件是否被修改的检测。</p>", "text": "修复 psql 的 \\e 及相关命令检测文件修改时的竞态条件（Laurenz Albe） 打字极快的用户可能骗过该代码基于文件时间戳的临时编辑文件是否被修改的检测。", "title": "修复 psql 的 \\e 及相关命令检测文件修改时的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "10521262204e2960c631b351a6aa9a40733e2ec8f74c45c1a2bf09b67c057b49", "section_path": ["变更"], "commit_groups": [["33aa7d13d", "48d67fd89", "60e5c2b14", "6ed059933", "8915e7906", "a42c4438b"]], "identity_text": "Fix race condition in detection of file modification by psql's \\e and related commands (Laurenz Albe) A very fast typist could fool the code's file-timestamp-based detection of whether the temporary edit file was changed.", "commit_aliases": ["33aa7d13d", "48d67fd89", "60e5c2b14", "6ed059933", "8915e7906", "a42c4438b"], "source_commits": ["a42c4438b"], "source_entry_id": "9.6.22/changes/017", "db_id": "a97d6f6fa8cb0ec9888093363fd3bc91", "patch_ids": ["f1f2c42ed62775746fe26cc6baea91ff"], "statement_hash": "42d0c5c02ba2f856da532d2bbc9e8f9252a72c515c98c7ce7bb10187fd2dd433", "relations": [{"rule": 2, "type": "equivalent", "target": "629ec2f506257dac0541d0eb5f2df930", "evidence": {"same_day": true, "patch_ids": ["f1f2c42ed62775746fe26cc6baea91ff"], "statement_hash": "42d0c5c02ba2f856da532d2bbc9e8f9252a72c515c98c7ce7bb10187fd2dd433"}}, {"rule": 2, "type": "equivalent", "target": "789d0f31913e4825828aee505607146c", "evidence": {"same_day": true, "patch_ids": ["f1f2c42ed62775746fe26cc6baea91ff"], "statement_hash": "42d0c5c02ba2f856da532d2bbc9e8f9252a72c515c98c7ce7bb10187fd2dd433"}}, {"rule": 2, "type": "equivalent", "target": "9490d94d24adfc3753c23708e68ea756", "evidence": {"same_day": true, "patch_ids": ["f1f2c42ed62775746fe26cc6baea91ff"], "statement_hash": "42d0c5c02ba2f856da532d2bbc9e8f9252a72c515c98c7ce7bb10187fd2dd433"}}, {"rule": 2, "type": "equivalent", "target": "a5b781e82406d8ec8e6110705c010700", "evidence": {"same_day": true, "patch_ids": ["f1f2c42ed62775746fe26cc6baea91ff"], "statement_hash": "42d0c5c02ba2f856da532d2bbc9e8f9252a72c515c98c7ce7bb10187fd2dd433"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9490d94d24adfc3753c23708e68ea756", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "修复 psql 的 \\e 及相关命令检测文件修改时的竞争条件", "evidence": {"same_day": true, "patch_ids": ["f1f2c42ed62775746fe26cc6baea91ff"], "statement_hash": "42d0c5c02ba2f856da532d2bbc9e8f9252a72c515c98c7ce7bb10187fd2dd433"}, "url": "/docs/compare/?release=13.3#13.3-57ede42ce642fa9a", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "a5b781e82406d8ec8e6110705c010700", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "修复 psql 的 \\e 及相关命令检测文件修改时的竞争条件", "evidence": {"same_day": true, "patch_ids": ["f1f2c42ed62775746fe26cc6baea91ff"], "statement_hash": "42d0c5c02ba2f856da532d2bbc9e8f9252a72c515c98c7ce7bb10187fd2dd433"}, "url": "/docs/compare/?release=12.7#12.7-cc0b940141de7ebc", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "629ec2f506257dac0541d0eb5f2df930", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "修复 psql 的 \\e 及相关命令检测文件修改时的竞争条件", "evidence": {"same_day": true, "patch_ids": ["f1f2c42ed62775746fe26cc6baea91ff"], "statement_hash": "42d0c5c02ba2f856da532d2bbc9e8f9252a72c515c98c7ce7bb10187fd2dd433"}, "url": "/docs/compare/?release=11.12#11.12-07948f89c9d80c85", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "789d0f31913e4825828aee505607146c", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "修复 psql 的 \\e 及相关命令检测文件修改时的竞争条件", "evidence": {"same_day": true, "patch_ids": ["f1f2c42ed62775746fe26cc6baea91ff"], "statement_hash": "42d0c5c02ba2f856da532d2bbc9e8f9252a72c515c98c7ce7bb10187fd2dd433"}, "url": "/docs/compare/?release=10.17#10.17-07948f89c9d80c85", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-3ec0b2f3e8de9211", "cves": [], "html": "<p>修复 <span>pg_restore</span> 漏检文件版本的问题（Tom Lane）</p>\n<p>从不可寻址的源读取自定义格式归档时，<span>pg_restore</span> 忽略了检查归档版本。如果被喂给比它所支持的更新版本的归档，之后会混乱地失败。</p>", "text": "修复 pg_restore 漏检文件版本的问题（Tom Lane） 从不可寻址的源读取自定义格式归档时，pg_restore 忽略了检查归档版本。如果被喂给比它所支持的更新版本的归档，之后会混乱地失败。", "title": "修复 pg_restore 漏检文件版本的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "ea635e180ebf3ed85e8bc63d55e76ebc90467382e4017be77a40445f251cc3d9", "section_path": ["变更"], "commit_groups": [["1b6961c8f", "25fe401d5", "2c9b857af", "35421a470", "84c5e0dd2", "ec03f2df1"]], "identity_text": "Fix missed file version check in pg_restore (Tom Lane) When reading a custom-format archive from a non-seekable source, pg_restore neglected to check the archive version. If it was fed a newer archive version than it can support, it would fail messily later on.", "commit_aliases": ["1b6961c8f", "25fe401d5", "2c9b857af", "35421a470", "84c5e0dd2", "ec03f2df1"], "source_commits": ["2c9b857af"], "source_entry_id": "9.6.22/changes/018", "db_id": "715fd254bd8a4717c986721fdf71070d", "patch_ids": ["7e82d706ec05509f41bf6e5c2003df15"], "statement_hash": "30d3e9379809400f654c0a8f6ebf8190762357f8cce85f7ff85e913de51464b9", "relations": [{"rule": 2, "type": "equivalent", "target": "66907a60b4852950edf387af36c10dbb", "evidence": {"same_day": true, "patch_ids": ["7e82d706ec05509f41bf6e5c2003df15"], "statement_hash": "30d3e9379809400f654c0a8f6ebf8190762357f8cce85f7ff85e913de51464b9"}}, {"rule": 2, "type": "equivalent", "target": "a7163c4d0c78c39be674cefac9a50abc", "evidence": {"same_day": true, "patch_ids": ["7e82d706ec05509f41bf6e5c2003df15"], "statement_hash": "30d3e9379809400f654c0a8f6ebf8190762357f8cce85f7ff85e913de51464b9"}}, {"rule": 2, "type": "equivalent", "target": "bf10eb31ef22649341d965fb9d13d2cc", "evidence": {"same_day": true, "patch_ids": ["7e82d706ec05509f41bf6e5c2003df15"], "statement_hash": "30d3e9379809400f654c0a8f6ebf8190762357f8cce85f7ff85e913de51464b9"}}, {"rule": 2, "type": "equivalent", "target": "f9160e6dc2769150fb108fe831bb2531", "evidence": {"same_day": true, "patch_ids": ["7e82d706ec05509f41bf6e5c2003df15"], "statement_hash": "30d3e9379809400f654c0a8f6ebf8190762357f8cce85f7ff85e913de51464b9"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "66907a60b4852950edf387af36c10dbb", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "修复 pg_restore 中遗漏的文件版本检查", "evidence": {"same_day": true, "patch_ids": ["7e82d706ec05509f41bf6e5c2003df15"], "statement_hash": "30d3e9379809400f654c0a8f6ebf8190762357f8cce85f7ff85e913de51464b9"}, "url": "/docs/compare/?release=13.3#13.3-130f7a85d04342ce", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "f9160e6dc2769150fb108fe831bb2531", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "修复 pg_restore 中遗漏的文件版本检查", "evidence": {"same_day": true, "patch_ids": ["7e82d706ec05509f41bf6e5c2003df15"], "statement_hash": "30d3e9379809400f654c0a8f6ebf8190762357f8cce85f7ff85e913de51464b9"}, "url": "/docs/compare/?release=12.7#12.7-215f5c04452b2f36", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "bf10eb31ef22649341d965fb9d13d2cc", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "修复 pg_restore 中遗漏的文件版本检查", "evidence": {"same_day": true, "patch_ids": ["7e82d706ec05509f41bf6e5c2003df15"], "statement_hash": "30d3e9379809400f654c0a8f6ebf8190762357f8cce85f7ff85e913de51464b9"}, "url": "/docs/compare/?release=11.12#11.12-b2b29c9834ba075b", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "a7163c4d0c78c39be674cefac9a50abc", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "修复 pg_restore 中遗漏的文件版本检查", "evidence": {"same_day": true, "patch_ids": ["7e82d706ec05509f41bf6e5c2003df15"], "statement_hash": "30d3e9379809400f654c0a8f6ebf8190762357f8cce85f7ff85e913de51464b9"}, "url": "/docs/compare/?release=10.17#10.17-b2b29c9834ba075b", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-01aa2189fc590de9", "cves": [], "html": "<p>为 <span>pg_upgrade</span> 增加更多对包含不可升级数据类型的用户表的检查（Tom Lane）</p>\n<p>修复某些不可升级数据类型嵌入在容器类型（如数组或范围）内部的检测。同时禁止升级用户表中包含系统定义复合类型的列，因为这些类型的 OID 跨版本不稳定。</p>", "text": "为 pg_upgrade 增加更多对包含不可升级数据类型的用户表的检查（Tom Lane） 修复某些不可升级数据类型嵌入在容器类型（如数组或范围）内部的检测。同时禁止升级用户表中包含系统定义复合类型的列，因为这些类型的 OID 跨版本不稳定。", "title": "为 pg_upgrade 增加更多对包含不可升级数据类型的用户表的检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "d3c94ec29f7cf48a61261f010b2c469474a59319602e55be4c5cfa5f37c493d3", "section_path": ["变更"], "commit_groups": [["404946d40", "54a233071", "57c081de0", "ba86371b9", "bbcfee0e5", "d5722c927"]], "identity_text": "Add some more checks to pg_upgrade for user tables containing non-upgradable data types (Tom Lane) Fix detection of some cases where a non-upgradable data type is embedded within a container type (such as an array or range). Also disallow upgrading when user tables contain columns of system-defined composite types, since those types' OIDs are not stable across versions.", "commit_aliases": ["404946d40", "54a233071", "57c081de0", "ba86371b9", "bbcfee0e5", "d5722c927"], "source_commits": ["54a233071"], "source_entry_id": "9.6.22/changes/019", "db_id": "abc8e5d67ba0f03b572aa61fb16fa606", "patch_ids": ["c890e278f33a1b7c3d576b02666e28af"], "statement_hash": "c5c1312b909085dfcbed2b85d264a298e20d86321a4f7cb883264aef8d03e506", "relations": [{"rule": 2, "type": "equivalent", "target": "4a35a518c763a81d11486e7586282fdd", "evidence": {"same_day": true, "patch_ids": ["c890e278f33a1b7c3d576b02666e28af"], "statement_hash": "c5c1312b909085dfcbed2b85d264a298e20d86321a4f7cb883264aef8d03e506"}}, {"rule": 2, "type": "equivalent", "target": "b847847e95257ae080ca36d3c4db7c46", "evidence": {"same_day": true, "patch_ids": ["c890e278f33a1b7c3d576b02666e28af"], "statement_hash": "c5c1312b909085dfcbed2b85d264a298e20d86321a4f7cb883264aef8d03e506"}}, {"rule": 2, "type": "equivalent", "target": "bb329e3677e2f4a8187c163041b2467b", "evidence": {"same_day": true, "patch_ids": ["c890e278f33a1b7c3d576b02666e28af"], "statement_hash": "c5c1312b909085dfcbed2b85d264a298e20d86321a4f7cb883264aef8d03e506"}}, {"rule": 2, "type": "equivalent", "target": "bdd180e442b2457a080f8ede3edfb6cd", "evidence": {"same_day": true, "patch_ids": ["c890e278f33a1b7c3d576b02666e28af"], "statement_hash": "c5c1312b909085dfcbed2b85d264a298e20d86321a4f7cb883264aef8d03e506"}}], "version": "9.6.22", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4a35a518c763a81d11486e7586282fdd", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "为 pg_upgrade 增加对包含不可升级数据类型的用户表的检查", "evidence": {"same_day": true, "patch_ids": ["c890e278f33a1b7c3d576b02666e28af"], "statement_hash": "c5c1312b909085dfcbed2b85d264a298e20d86321a4f7cb883264aef8d03e506"}, "url": "/docs/compare/?release=13.3#13.3-a1e79a1c9aa1137a", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "bdd180e442b2457a080f8ede3edfb6cd", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "为 pg_upgrade 增加对包含不可升级数据类型的用户表的检查", "evidence": {"same_day": true, "patch_ids": ["c890e278f33a1b7c3d576b02666e28af"], "statement_hash": "c5c1312b909085dfcbed2b85d264a298e20d86321a4f7cb883264aef8d03e506"}, "url": "/docs/compare/?release=12.7#12.7-6fc52d428f2f81e1", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "bb329e3677e2f4a8187c163041b2467b", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "为 pg_upgrade 增加对包含不可升级数据类型的用户表的检查", "evidence": {"same_day": true, "patch_ids": ["c890e278f33a1b7c3d576b02666e28af"], "statement_hash": "c5c1312b909085dfcbed2b85d264a298e20d86321a4f7cb883264aef8d03e506"}, "url": "/docs/compare/?release=11.12#11.12-30a5c5ce3956af46", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "b847847e95257ae080ca36d3c4db7c46", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "为 pg_upgrade 增加对包含不可升级数据类型的用户表的检查", "evidence": {"same_day": true, "patch_ids": ["c890e278f33a1b7c3d576b02666e28af"], "statement_hash": "c5c1312b909085dfcbed2b85d264a298e20d86321a4f7cb883264aef8d03e506"}, "url": "/docs/compare/?release=10.17#10.17-30a5c5ce3956af46", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-c6816bcee191dec3", "cves": [], "html": "<p>修复 <span>pg_waldump</span> 在生成逐记录统计时对 <code>XACT</code> 记录的计数（Kyotaro Horiguchi）</p>", "text": "修复 pg_waldump 在生成逐记录统计时对 XACT 记录的计数（Kyotaro Horiguchi）", "title": "修复 pg_waldump 在生成逐记录统计时对 XACT 记录的计数", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "3dc7fc111d66a492cff90d7dabef66b81152c4ae361f4432e90b2754b6ae2cff", "section_path": ["变更"], "commit_groups": [["34279fd4f", "4220e06f4", "4a2627c41", "51893c846", "5386a8506", "e73068b07"]], "identity_text": "Fix pg_waldump to count XACT records correctly when generating per-record statistics (Kyotaro Horiguchi)", "commit_aliases": ["34279fd4f", "4220e06f4", "4a2627c41", "51893c846", "5386a8506", "e73068b07"], "source_commits": ["e73068b07"], "source_entry_id": "9.6.22/changes/020", "db_id": "99c2c5cd828d5a16e7254eb5aa4bced3", "patch_ids": ["37f24563004a04b9b8719206fc002c9b"], "statement_hash": "62f5e02676b62f43a87860a3597f2382dd42ffce85c97796f2654fe2a700a261", "relations": [{"rule": 2, "type": "equivalent", "target": "15a0fdba1603a2fb77a254f2bff1ffc1", "evidence": {"same_day": true, "patch_ids": ["37f24563004a04b9b8719206fc002c9b"], "statement_hash": "62f5e02676b62f43a87860a3597f2382dd42ffce85c97796f2654fe2a700a261"}}, {"rule": 2, "type": "equivalent", "target": "191764d2b7f59eec30f9503c182fe916", "evidence": {"same_day": true, "patch_ids": ["37f24563004a04b9b8719206fc002c9b"], "statement_hash": "62f5e02676b62f43a87860a3597f2382dd42ffce85c97796f2654fe2a700a261"}}, {"rule": 2, "type": "equivalent", "target": "2deed9332fac2f24b11a781fb9bac839", "evidence": {"same_day": true, "patch_ids": ["37f24563004a04b9b8719206fc002c9b"], "statement_hash": "62f5e02676b62f43a87860a3597f2382dd42ffce85c97796f2654fe2a700a261"}}, {"rule": 2, "type": "equivalent", "target": "9b2840b6b9fd5bffd0900a09fad79736", "evidence": {"same_day": true, "patch_ids": ["37f24563004a04b9b8719206fc002c9b"], "statement_hash": "62f5e02676b62f43a87860a3597f2382dd42ffce85c97796f2654fe2a700a261"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "15a0fdba1603a2fb77a254f2bff1ffc1", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "修复 pg_waldump，使其在生成逐记录统计信息时正确统计 XACT 记录", "evidence": {"same_day": true, "patch_ids": ["37f24563004a04b9b8719206fc002c9b"], "statement_hash": "62f5e02676b62f43a87860a3597f2382dd42ffce85c97796f2654fe2a700a261"}, "url": "/docs/compare/?release=13.3#13.3-650c9e32773ccb57", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "191764d2b7f59eec30f9503c182fe916", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "修复 pg_waldump，使其在生成逐记录统计信息时正确统计 XACT 记录", "evidence": {"same_day": true, "patch_ids": ["37f24563004a04b9b8719206fc002c9b"], "statement_hash": "62f5e02676b62f43a87860a3597f2382dd42ffce85c97796f2654fe2a700a261"}, "url": "/docs/compare/?release=12.7#12.7-6d00bb5e17dbfa56", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "2deed9332fac2f24b11a781fb9bac839", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "修复 pg_waldump，使其在生成逐记录统计信息时正确统计 XACT 记录", "evidence": {"same_day": true, "patch_ids": ["37f24563004a04b9b8719206fc002c9b"], "statement_hash": "62f5e02676b62f43a87860a3597f2382dd42ffce85c97796f2654fe2a700a261"}, "url": "/docs/compare/?release=11.12#11.12-e5c33348418ff4d8", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "9b2840b6b9fd5bffd0900a09fad79736", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "修复 pg_waldump，使其在生成逐记录统计信息时正确统计 XACT 记录", "evidence": {"same_day": true, "patch_ids": ["37f24563004a04b9b8719206fc002c9b"], "statement_hash": "62f5e02676b62f43a87860a3597f2382dd42ffce85c97796f2654fe2a700a261"}, "url": "/docs/compare/?release=10.17#10.17-e5c33348418ff4d8", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-df1999e32518d078", "cves": [], "html": "<p>修复 <code>contrib/amcheck</code> 不再对同时设置了元组标志 <code>HEAP_XMAX_LOCK_ONLY</code> 和 <code>HEAP_KEYS_UPDATED</code> 报怨（Julien Rouhaud）</p>\n<p>这是 <code>SELECT FOR UPDATE</code> 之后的一种有效状态。</p>", "text": "修复 contrib/amcheck 不再对同时设置了元组标志 HEAP_XMAX_LOCK_ONLY 和 HEAP_KEYS_UPDATED 报怨（Julien Rouhaud） 这是 SELECT FOR UPDATE 之后的一种有效状态。", "title": "修复 contrib/amcheck 不再对同时设置了元组标志 HEAP_XMAX_LOCK_ONLY 和 HEAP_KEYS_UPDATED 报怨", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "4e5f97b2ceb60cac99e60a5cc1c21e52dd0807343708d74348a352d80850b529", "section_path": ["变更"], "commit_groups": [["0ccebe779", "258391707", "2796ae2ad", "28f4b6108", "8deb6b38d", "bf518fefa"]], "identity_text": "Fix contrib/amcheck to not complain about the tuple flags HEAP_XMAX_LOCK_ONLY and HEAP_KEYS_UPDATED both being set (Julien Rouhaud) This is a valid state after SELECT FOR UPDATE.", "commit_aliases": ["0ccebe779", "258391707", "2796ae2ad", "28f4b6108", "8deb6b38d", "bf518fefa"], "source_commits": ["0ccebe779"], "source_entry_id": "9.6.22/changes/021", "db_id": "03430d78c7197cbdbd4b5154404099dd", "patch_ids": ["532b61ef424402770de657ec50ca7ee2"], "statement_hash": "8d862505d16b5938059c3b7ced4ce7627b20411b8915074adfe742084efa55a2", "relations": [{"rule": 2, "type": "equivalent", "target": "46cf5e6392e585c108df88f560ba19e0", "evidence": {"same_day": true, "patch_ids": ["532b61ef424402770de657ec50ca7ee2"], "statement_hash": "8d862505d16b5938059c3b7ced4ce7627b20411b8915074adfe742084efa55a2"}}, {"rule": 2, "type": "equivalent", "target": "c428f7cbafcf889bbd24c2d703afc8a1", "evidence": {"same_day": true, "patch_ids": ["532b61ef424402770de657ec50ca7ee2"], "statement_hash": "8d862505d16b5938059c3b7ced4ce7627b20411b8915074adfe742084efa55a2"}}, {"rule": 2, "type": "equivalent", "target": "e885d411401ddad9358a9fb28a0d2027", "evidence": {"same_day": true, "patch_ids": ["532b61ef424402770de657ec50ca7ee2"], "statement_hash": "8d862505d16b5938059c3b7ced4ce7627b20411b8915074adfe742084efa55a2"}}, {"rule": 2, "type": "equivalent", "target": "ead519e93f069d185ec7b76b51f4c414", "evidence": {"same_day": true, "patch_ids": ["532b61ef424402770de657ec50ca7ee2"], "statement_hash": "8d862505d16b5938059c3b7ced4ce7627b20411b8915074adfe742084efa55a2"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c428f7cbafcf889bbd24c2d703afc8a1", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "修复 contrib/amcheck，使其不再因元组标志 HEAP_XMAX_LOCK_ONLY 和 HEAP_KEYS_UPDATED 同时设置而报错", "evidence": {"same_day": true, "patch_ids": ["532b61ef424402770de657ec50ca7ee2"], "statement_hash": "8d862505d16b5938059c3b7ced4ce7627b20411b8915074adfe742084efa55a2"}, "url": "/docs/compare/?release=13.3#13.3-e07e3d4dd848fb1b", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "ead519e93f069d185ec7b76b51f4c414", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "修复 contrib/amcheck，使其不再因元组标志 HEAP_XMAX_LOCK_ONLY 和 HEAP_KEYS_UPDATED 同时设置而报错", "evidence": {"same_day": true, "patch_ids": ["532b61ef424402770de657ec50ca7ee2"], "statement_hash": "8d862505d16b5938059c3b7ced4ce7627b20411b8915074adfe742084efa55a2"}, "url": "/docs/compare/?release=12.7#12.7-d27b2a1d13d77853", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "46cf5e6392e585c108df88f560ba19e0", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "修复 contrib/amcheck，使其不再因元组标志 HEAP_XMAX_LOCK_ONLY 和 HEAP_KEYS_UPDATED 同时设置而报错", "evidence": {"same_day": true, "patch_ids": ["532b61ef424402770de657ec50ca7ee2"], "statement_hash": "8d862505d16b5938059c3b7ced4ce7627b20411b8915074adfe742084efa55a2"}, "url": "/docs/compare/?release=11.12#11.12-fcb7ca14a2de3cca", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "e885d411401ddad9358a9fb28a0d2027", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "修复 contrib/amcheck，使其不再因元组标志 HEAP_XMAX_LOCK_ONLY 和 HEAP_KEYS_UPDATED 同时设置而报错", "evidence": {"same_day": true, "patch_ids": ["532b61ef424402770de657ec50ca7ee2"], "statement_hash": "8d862505d16b5938059c3b7ced4ce7627b20411b8915074adfe742084efa55a2"}, "url": "/docs/compare/?release=10.17#10.17-fcb7ca14a2de3cca", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-092d0460f5b52397", "cves": [], "html": "<p>调整 VPATH 构建规则以支持较新的 Oracle Developer Studio 编译器版本（Noah Misch）</p>", "text": "调整 VPATH 构建规则以支持较新的 Oracle Developer Studio 编译器版本（Noah Misch）", "title": "调整 VPATH 构建规则以支持较新的 Oracle Developer Studio 编译器版本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "ee57f82a23657c25ab0862f8fdb28540a237495ad4fe1a8b3ecfaddb8c0a04b5", "section_path": ["变更"], "commit_groups": [["13881199e", "455dbc010", "4749c7ff4", "c8da16ba1", "f488d19f3", "fb9812b6c"]], "identity_text": "Adjust VPATH build rules to support recent Oracle Developer Studio compiler versions (Noah Misch)", "commit_aliases": ["13881199e", "455dbc010", "4749c7ff4", "c8da16ba1", "f488d19f3", "fb9812b6c"], "source_commits": ["f488d19f3"], "source_entry_id": "9.6.22/changes/022", "db_id": "eb8154c18011d297b73acf6cd5836fa5", "patch_ids": ["27d590e27b4dcc514c6e09efc67cd898"], "statement_hash": "65954025781eb79b6d9db6bbf8a054c0bbfbb3855b258f5da4e82680abca0e9c", "relations": [{"rule": 2, "type": "equivalent", "target": "2431ed226eb3ece1ee012e119ee804d6", "evidence": {"same_day": true, "patch_ids": ["27d590e27b4dcc514c6e09efc67cd898"], "statement_hash": "65954025781eb79b6d9db6bbf8a054c0bbfbb3855b258f5da4e82680abca0e9c"}}, {"rule": 2, "type": "equivalent", "target": "5a1e2b32ba24f2105020cf405dee28aa", "evidence": {"same_day": true, "patch_ids": ["27d590e27b4dcc514c6e09efc67cd898"], "statement_hash": "65954025781eb79b6d9db6bbf8a054c0bbfbb3855b258f5da4e82680abca0e9c"}}, {"rule": 2, "type": "equivalent", "target": "67c6b59641c1e9a17f6bd874be7e694c", "evidence": {"same_day": true, "patch_ids": ["27d590e27b4dcc514c6e09efc67cd898"], "statement_hash": "65954025781eb79b6d9db6bbf8a054c0bbfbb3855b258f5da4e82680abca0e9c"}}, {"rule": 2, "type": "equivalent", "target": "77e1e3a9debc4e533cda64e3938174e2", "evidence": {"same_day": true, "patch_ids": ["27d590e27b4dcc514c6e09efc67cd898"], "statement_hash": "65954025781eb79b6d9db6bbf8a054c0bbfbb3855b258f5da4e82680abca0e9c"}}], "version": "9.6.22", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5a1e2b32ba24f2105020cf405dee28aa", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "调整 VPATH 构建规则，以支持较新版本的 Oracle Developer Studio 编译器", "evidence": {"same_day": true, "patch_ids": ["27d590e27b4dcc514c6e09efc67cd898"], "statement_hash": "65954025781eb79b6d9db6bbf8a054c0bbfbb3855b258f5da4e82680abca0e9c"}, "url": "/docs/compare/?release=13.3#13.3-f4f1281003126428", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "67c6b59641c1e9a17f6bd874be7e694c", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "调整 VPATH 构建规则，以支持较新版本的 Oracle Developer Studio 编译器", "evidence": {"same_day": true, "patch_ids": ["27d590e27b4dcc514c6e09efc67cd898"], "statement_hash": "65954025781eb79b6d9db6bbf8a054c0bbfbb3855b258f5da4e82680abca0e9c"}, "url": "/docs/compare/?release=12.7#12.7-29df11f62dca7309", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "2431ed226eb3ece1ee012e119ee804d6", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "调整 VPATH 构建规则，以支持较新版本的 Oracle Developer Studio 编译器", "evidence": {"same_day": true, "patch_ids": ["27d590e27b4dcc514c6e09efc67cd898"], "statement_hash": "65954025781eb79b6d9db6bbf8a054c0bbfbb3855b258f5da4e82680abca0e9c"}, "url": "/docs/compare/?release=11.12#11.12-09c5c2b451bafe18", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "77e1e3a9debc4e533cda64e3938174e2", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "调整 VPATH 构建规则，以支持较新版本的 Oracle Developer Studio 编译器", "evidence": {"same_day": true, "patch_ids": ["27d590e27b4dcc514c6e09efc67cd898"], "statement_hash": "65954025781eb79b6d9db6bbf8a054c0bbfbb3855b258f5da4e82680abca0e9c"}, "url": "/docs/compare/?release=10.17#10.17-09c5c2b451bafe18", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}, {"id": "9.6.22-0823a56806e72b56", "cves": [], "html": "<p>修复 Solaris 上 PL/Python 对 Python 3 的测试（Noah Misch）</p>", "text": "修复 Solaris 上 PL/Python 对 Python 3 的测试（Noah Misch）", "title": "修复 Solaris 上 PL/Python 对 Python 3 的测试", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.22/#id-1.11.6.7.6", "source_hash": "736a4b2b96c8b8b6a02b0043f8bbf9cd2bacd03ae9f4a236a7778da5d3905abf", "section_path": ["变更"], "commit_groups": [["14652a19f", "4a3de4092", "72a9bd047", "766c8fce5", "c3556f6fa", "e3ac7d176"]], "identity_text": "Fix testing of PL/Python for Python 3 on Solaris (Noah Misch)", "commit_aliases": ["14652a19f", "4a3de4092", "72a9bd047", "766c8fce5", "c3556f6fa", "e3ac7d176"], "source_commits": ["14652a19f"], "source_entry_id": "9.6.22/changes/023", "db_id": "2344812cc386e14dd7dd54e4a4e882fe", "patch_ids": ["898933cc13535691a9f7159709882e71"], "statement_hash": "db875be06f10f73c6306bcdc30de080ff4b7a4ed322c869b57a5b7c71143a3c7", "relations": [{"rule": 2, "type": "equivalent", "target": "17dbeb20be5ddeb53681473f23bc4b25", "evidence": {"same_day": true, "patch_ids": ["898933cc13535691a9f7159709882e71"], "statement_hash": "db875be06f10f73c6306bcdc30de080ff4b7a4ed322c869b57a5b7c71143a3c7"}}, {"rule": 2, "type": "equivalent", "target": "4f3f6954d89c0b65253f9600be8a9ec8", "evidence": {"same_day": true, "patch_ids": ["898933cc13535691a9f7159709882e71"], "statement_hash": "db875be06f10f73c6306bcdc30de080ff4b7a4ed322c869b57a5b7c71143a3c7"}}, {"rule": 2, "type": "equivalent", "target": "a029a502265ccdbd46a66494d03d3a76", "evidence": {"same_day": true, "patch_ids": ["898933cc13535691a9f7159709882e71"], "statement_hash": "db875be06f10f73c6306bcdc30de080ff4b7a4ed322c869b57a5b7c71143a3c7"}}, {"rule": 2, "type": "equivalent", "target": "b2d2752178e70fb98f83de3934d73d26", "evidence": {"same_day": true, "patch_ids": ["898933cc13535691a9f7159709882e71"], "statement_hash": "db875be06f10f73c6306bcdc30de080ff4b7a4ed322c869b57a5b7c71143a3c7"}}], "version": "9.6.22", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2d2752178e70fb98f83de3934d73d26", "kind": "equivalent", "version": "13.3", "label": "13.3", "title": "修复 Solaris 上针对 Python 3 的 PL/Python 测试", "evidence": {"same_day": true, "patch_ids": ["898933cc13535691a9f7159709882e71"], "statement_hash": "db875be06f10f73c6306bcdc30de080ff4b7a4ed322c869b57a5b7c71143a3c7"}, "url": "/docs/compare/?release=13.3#13.3-b1a59dd0a955e8eb", "source_url": "/docs/release/13.3/#id-1.11.6.26.5"}, {"db_id": "4f3f6954d89c0b65253f9600be8a9ec8", "kind": "equivalent", "version": "12.7", "label": "12.7", "title": "修复 Solaris 上针对 Python 3 的 PL/Python 测试", "evidence": {"same_day": true, "patch_ids": ["898933cc13535691a9f7159709882e71"], "statement_hash": "db875be06f10f73c6306bcdc30de080ff4b7a4ed322c869b57a5b7c71143a3c7"}, "url": "/docs/compare/?release=12.7#12.7-676562672b5b8180", "source_url": "/docs/release/12.7/#id-1.11.6.21.5"}, {"db_id": "17dbeb20be5ddeb53681473f23bc4b25", "kind": "equivalent", "version": "11.12", "label": "11.12", "title": "修复 Solaris 上针对 Python 3 的 PL/Python 测试", "evidence": {"same_day": true, "patch_ids": ["898933cc13535691a9f7159709882e71"], "statement_hash": "db875be06f10f73c6306bcdc30de080ff4b7a4ed322c869b57a5b7c71143a3c7"}, "url": "/docs/compare/?release=11.12#11.12-3011e96c7113dc41", "source_url": "/docs/release/11.12/#id-1.11.6.15.5"}, {"db_id": "a029a502265ccdbd46a66494d03d3a76", "kind": "equivalent", "version": "10.17", "label": "10.17", "title": "修复 Solaris 上针对 Python 3 的 PL/Python 测试", "evidence": {"same_day": true, "patch_ids": ["898933cc13535691a9f7159709882e71"], "statement_hash": "db875be06f10f73c6306bcdc30de080ff4b7a4ed322c869b57a5b7c71143a3c7"}, "url": "/docs/compare/?release=10.17#10.17-3011e96c7113dc41", "source_url": "/docs/release/10.17/#id-1.11.6.11.5"}]}]}, {"date": "2021-02-11", "build": "9.6.21", "major": "9.6", "minor": 21, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.21", "eol_date": "2021-11-11", "date_text": "2021-02-11", "supported": false, "manual_url": "/docs/9.6/release-9-6-21.html", "source_url": "/docs/release/9.6.21/", "entry_count": 36, "placeholder": false, "content_hash": "6285b5604f2c8eeded0a8af04dd55237586f1785671e356891fd0da9cffc517d", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 36, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，请看下面的第一条变更日志条目，它描述了升级之后可能宜对索引执行 REINDEX 的几种情况。</p>\n<p>另外，如果你是从 9.6.16 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-16.html\" title=\"E.9. 版本 9.6.16\">第 E.9 节</a>。</p>", "compatibility_count": 0, "label": "9.6.21", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2057, "support_days": -1784, "entries": [{"id": "9.6.21-81c964275820e048", "cves": [], "html": "<p>修复 <code>CREATE INDEX CONCURRENTLY</code>，使其等待并发的预备事务（Andrey Borodin）</p>\n<p>在 <code>CREATE INDEX CONCURRENTLY</code> 等待所有并发事务完成以便能看到它们插入的行的那个时刻，出于同样的原因，它也必须等待所有预备事务完成。此前没有这样做，意味着预备事务插入的行可能被遗漏在新索引之外，导致依赖该索引的查询漏掉这些行。在启用了预备事务的安装（<code>max_prepared_transactions</code> &gt; 0）中，如果并发构建索引时可能发生过此问题，建议对这些索引执行 REINDEX。</p>", "text": "修复 CREATE INDEX CONCURRENTLY，使其等待并发的预备事务（Andrey Borodin） 在 CREATE INDEX CONCURRENTLY 等待所有并发事务完成以便能看到它们插入的行的那个时刻，出于同样的原因，它也必须等待所有预备事务完成。此前没有这样做，意味着预备事务插入的行可能被遗漏在新索引之外，导致依赖该索引的查询漏掉这些行。在启用了预备事务的安装（max_prepared_transactions > 0）中，如果并发构建索引时可能发生过此问题，建议对这些索引执行 REINDEX。", "title": "修复 CREATE INDEX CONCURRENTLY，使其等待并发的预备事务", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "0faf2bbac81ece94ec7b6de91d93a3bc1b01235eacbcc3167f0a15aa4db1f037", "section_path": ["变更"], "commit_groups": [["179775135", "77a0e14f0", "86a5b309c", "8a54e12a3", "be843ce29", "d1ab4bf6e", "d683d6528"]], "identity_text": "Fix CREATE INDEX CONCURRENTLY to wait for concurrent prepared transactions (Andrey Borodin) At the point where CREATE INDEX CONCURRENTLY waits for all concurrent transactions to complete so that it can see rows they inserted, it must also wait for all prepared transactions to complete, for the same reason. Its failure to do so meant that rows inserted by prepared transactions might be omitted from the new index, causing queries relying on the index to miss such rows. In installations that have enabled prepared transactions (max_prepared_transactions > 0), it's recommended to reindex any concurrently-built indexes in case this problem occurred when they were built.", "commit_aliases": ["179775135", "77a0e14f0", "86a5b309c", "8a54e12a3", "be843ce29", "d1ab4bf6e", "d683d6528"], "source_commits": ["d683d6528"], "source_entry_id": "9.6.21/changes/001", "db_id": "494a295340e76f95a26a570b2ff33795", "patch_ids": ["97b1d3e873fa67283982d5e8259af9c7"], "statement_hash": "2ac677409e14ebb68239db9c8ed7a0f26edefa130e42c52e25a29e018f03d965", "relations": [{"rule": 2, "type": "equivalent", "target": "07d3d3811277eb54d17d13eaa7e634c6", "evidence": {"same_day": true, "patch_ids": ["97b1d3e873fa67283982d5e8259af9c7"], "statement_hash": "2ac677409e14ebb68239db9c8ed7a0f26edefa130e42c52e25a29e018f03d965"}}, {"rule": 2, "type": "equivalent", "target": "0e2152ee469b5ec3ecab1df56db3fb68", "evidence": {"same_day": true, "patch_ids": ["97b1d3e873fa67283982d5e8259af9c7"], "statement_hash": "2ac677409e14ebb68239db9c8ed7a0f26edefa130e42c52e25a29e018f03d965"}}, {"rule": 2, "type": "equivalent", "target": "0f5ca552229f4cf0b365389e270b9d9b", "evidence": {"same_day": true, "patch_ids": ["97b1d3e873fa67283982d5e8259af9c7"], "statement_hash": "2ac677409e14ebb68239db9c8ed7a0f26edefa130e42c52e25a29e018f03d965"}}, {"rule": 2, "type": "equivalent", "target": "323d4ca7c2f120f59863b8d4527719a7", "evidence": {"same_day": true, "patch_ids": ["97b1d3e873fa67283982d5e8259af9c7"], "statement_hash": "2ac677409e14ebb68239db9c8ed7a0f26edefa130e42c52e25a29e018f03d965"}}, {"rule": 2, "type": "equivalent", "target": "8dc698bfe18b10f76b21f4930769f7e0", "evidence": {"same_day": true, "patch_ids": ["97b1d3e873fa67283982d5e8259af9c7"], "statement_hash": "2ac677409e14ebb68239db9c8ed7a0f26edefa130e42c52e25a29e018f03d965"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "323d4ca7c2f120f59863b8d4527719a7", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复 CREATE INDEX CONCURRENTLY，使其等待并发的预备事务", "evidence": {"same_day": true, "patch_ids": ["97b1d3e873fa67283982d5e8259af9c7"], "statement_hash": "2ac677409e14ebb68239db9c8ed7a0f26edefa130e42c52e25a29e018f03d965"}, "url": "/docs/compare/?release=13.2#13.2-4a1b9e91efb7fc9f", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "8dc698bfe18b10f76b21f4930769f7e0", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复 CREATE INDEX CONCURRENTLY，使其等待并发的预备事务", "evidence": {"same_day": true, "patch_ids": ["97b1d3e873fa67283982d5e8259af9c7"], "statement_hash": "2ac677409e14ebb68239db9c8ed7a0f26edefa130e42c52e25a29e018f03d965"}, "url": "/docs/compare/?release=12.6#12.6-c5b6979fbe37c39d", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "07d3d3811277eb54d17d13eaa7e634c6", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复 CREATE INDEX CONCURRENTLY，使其等待并发的预备事务", "evidence": {"same_day": true, "patch_ids": ["97b1d3e873fa67283982d5e8259af9c7"], "statement_hash": "2ac677409e14ebb68239db9c8ed7a0f26edefa130e42c52e25a29e018f03d965"}, "url": "/docs/compare/?release=11.11#11.11-81c964275820e048", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "0e2152ee469b5ec3ecab1df56db3fb68", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复 CREATE INDEX CONCURRENTLY，使其等待并发的预备事务", "evidence": {"same_day": true, "patch_ids": ["97b1d3e873fa67283982d5e8259af9c7"], "statement_hash": "2ac677409e14ebb68239db9c8ed7a0f26edefa130e42c52e25a29e018f03d965"}, "url": "/docs/compare/?release=10.16#10.16-81c964275820e048", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "0f5ca552229f4cf0b365389e270b9d9b", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复 CREATE INDEX CONCURRENTLY，使其等待并发的预备事务", "evidence": {"same_day": true, "patch_ids": ["97b1d3e873fa67283982d5e8259af9c7"], "statement_hash": "2ac677409e14ebb68239db9c8ed7a0f26edefa130e42c52e25a29e018f03d965"}, "url": "/docs/compare/?release=9.5.25#9.5.25-81c964275820e048", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-b286a87dbff41cdd", "cves": [], "html": "<p>避免对计划包含 MergeAppend 节点的游标应用 <code>WHERE CURRENT OF</code> 时出现错误结果（Tom Lane）</p>\n<p>这种情况不受支持（一般而言，使用 <code>ORDER BY</code> 的游标不保证是简单可更新的）；但代码此前没有拒绝它，并且可能静默地给出假匹配。</p>", "text": "避免对计划包含 MergeAppend 节点的游标应用 WHERE CURRENT OF 时出现错误结果（Tom Lane） 这种情况不受支持（一般而言，使用 ORDER BY 的游标不保证是简单可更新的）；但代码此前没有拒绝它，并且可能静默地给出假匹配。", "title": "避免对计划包含 MergeAppend 节点的游标应用 WHERE CURRENT OF 时出现错误结果", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "6be39a7033a754a018a055e07a3891d854a28ff9a223d7b6f5df5f5705916083", "section_path": ["变更"], "commit_groups": [["0ab177bec", "188cd4f44", "625315996", "794562d07", "a0efda88a", "fac54bd5e", "fe8edbb82"]], "identity_text": "Avoid incorrect results when WHERE CURRENT OF is applied to a cursor whose plan contains a MergeAppend node (Tom Lane) This case is unsupported (in general, a cursor using ORDER BY is not guaranteed to be simply updatable); but the code previously did not reject it, and could silently give false matches.", "commit_aliases": ["0ab177bec", "188cd4f44", "625315996", "794562d07", "a0efda88a", "fac54bd5e", "fe8edbb82"], "source_commits": ["fe8edbb82"], "source_entry_id": "9.6.21/changes/002", "db_id": "80d2453523b17611e982d13c5cc9f7cb", "patch_ids": ["38b1c111b5f9ebc4acf9ca1df259369b"], "statement_hash": "2360c3ad0202ac6ae5635e1cc059f548862ac24c5ce1d7f8e3285a3149a96e5d", "relations": [{"rule": 2, "type": "equivalent", "target": "27d819cb6c154a99d33d813f2b4c69a7", "evidence": {"same_day": true, "patch_ids": ["38b1c111b5f9ebc4acf9ca1df259369b"], "statement_hash": "2360c3ad0202ac6ae5635e1cc059f548862ac24c5ce1d7f8e3285a3149a96e5d"}}, {"rule": 2, "type": "equivalent", "target": "a5f7bcd7a1cdefc425094fb36ed76c62", "evidence": {"same_day": true, "patch_ids": ["38b1c111b5f9ebc4acf9ca1df259369b"], "statement_hash": "2360c3ad0202ac6ae5635e1cc059f548862ac24c5ce1d7f8e3285a3149a96e5d"}}, {"rule": 2, "type": "equivalent", "target": "bc5409d53746f1d0c45c008d0bca2582", "evidence": {"same_day": true, "patch_ids": ["38b1c111b5f9ebc4acf9ca1df259369b"], "statement_hash": "2360c3ad0202ac6ae5635e1cc059f548862ac24c5ce1d7f8e3285a3149a96e5d"}}, {"rule": 2, "type": "equivalent", "target": "e280f6264d6446f12b5fc663be20c138", "evidence": {"same_day": true, "patch_ids": ["38b1c111b5f9ebc4acf9ca1df259369b"], "statement_hash": "2360c3ad0202ac6ae5635e1cc059f548862ac24c5ce1d7f8e3285a3149a96e5d"}}, {"rule": 2, "type": "equivalent", "target": "ee5c00578e2d4ad12fd8731e16c988e5", "evidence": {"same_day": true, "patch_ids": ["38b1c111b5f9ebc4acf9ca1df259369b"], "statement_hash": "2360c3ad0202ac6ae5635e1cc059f548862ac24c5ce1d7f8e3285a3149a96e5d"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bc5409d53746f1d0c45c008d0bca2582", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "避免将 WHERE CURRENT OF 应用于计划中包含 MergeAppend 节点的游标时产生错误结果", "evidence": {"same_day": true, "patch_ids": ["38b1c111b5f9ebc4acf9ca1df259369b"], "statement_hash": "2360c3ad0202ac6ae5635e1cc059f548862ac24c5ce1d7f8e3285a3149a96e5d"}, "url": "/docs/compare/?release=13.2#13.2-ed0ebabe1f9c3168", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "ee5c00578e2d4ad12fd8731e16c988e5", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "避免将 WHERE CURRENT OF 应用于计划中包含 MergeAppend 节点的游标时产生错误结果", "evidence": {"same_day": true, "patch_ids": ["38b1c111b5f9ebc4acf9ca1df259369b"], "statement_hash": "2360c3ad0202ac6ae5635e1cc059f548862ac24c5ce1d7f8e3285a3149a96e5d"}, "url": "/docs/compare/?release=12.6#12.6-f78308ca6776e765", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "a5f7bcd7a1cdefc425094fb36ed76c62", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "避免将 WHERE CURRENT OF 应用于计划中包含 MergeAppend 节点的游标时产生错误结果", "evidence": {"same_day": true, "patch_ids": ["38b1c111b5f9ebc4acf9ca1df259369b"], "statement_hash": "2360c3ad0202ac6ae5635e1cc059f548862ac24c5ce1d7f8e3285a3149a96e5d"}, "url": "/docs/compare/?release=11.11#11.11-a9312974ced005aa", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "27d819cb6c154a99d33d813f2b4c69a7", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "避免将 WHERE CURRENT OF 应用于计划中包含 MergeAppend 节点的游标时产生错误结果", "evidence": {"same_day": true, "patch_ids": ["38b1c111b5f9ebc4acf9ca1df259369b"], "statement_hash": "2360c3ad0202ac6ae5635e1cc059f548862ac24c5ce1d7f8e3285a3149a96e5d"}, "url": "/docs/compare/?release=10.16#10.16-a9312974ced005aa", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "e280f6264d6446f12b5fc663be20c138", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "避免对计划包含 MergeAppend 节点的游标应用 WHERE CURRENT OF 时出现错误结果", "evidence": {"same_day": true, "patch_ids": ["38b1c111b5f9ebc4acf9ca1df259369b"], "statement_hash": "2360c3ad0202ac6ae5635e1cc059f548862ac24c5ce1d7f8e3285a3149a96e5d"}, "url": "/docs/compare/?release=9.5.25#9.5.25-b286a87dbff41cdd", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-c1bc33c06f395eb7", "cves": [], "html": "<p>修复对计划包含自定义扫描节点的游标应用 <code>WHERE CURRENT OF</code> 时的崩溃（David Geier）</p>", "text": "修复对计划包含自定义扫描节点的游标应用 WHERE CURRENT OF 时的崩溃（David Geier）", "title": "修复对计划包含自定义扫描节点的游标应用 WHERE CURRENT OF 时的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "2a2d97118e37a77bedefea3521543fdcb2b932985c27eff8b3a0ec79ce2783d2", "section_path": ["变更"], "commit_groups": [["33a46993f", "5cd94de77", "60661bbf2", "ba80489c6", "de622e677", "f0f53195b", "ffbf17463"]], "identity_text": "Fix crash when WHERE CURRENT OF is applied to a cursor whose plan contains a custom scan node (David Geier)", "commit_aliases": ["33a46993f", "5cd94de77", "60661bbf2", "ba80489c6", "de622e677", "f0f53195b", "ffbf17463"], "source_commits": ["ffbf17463"], "source_entry_id": "9.6.21/changes/003", "db_id": "1f4bca1e8e9ca8e06d6506c54320998a", "patch_ids": ["e603172c9317ea579bcd7e2327a67eb1"], "statement_hash": "80ac1d84bbe849fbfd99e6b2ebb05b087cc9b198d1d7226f71d05dc0267bda45", "relations": [{"rule": 2, "type": "equivalent", "target": "5ca19e92fed1253a2a1a4170e7b5d2b4", "evidence": {"same_day": true, "patch_ids": ["e603172c9317ea579bcd7e2327a67eb1"], "statement_hash": "80ac1d84bbe849fbfd99e6b2ebb05b087cc9b198d1d7226f71d05dc0267bda45"}}, {"rule": 2, "type": "equivalent", "target": "68632768d31a602355d03c17b2e425d0", "evidence": {"same_day": true, "patch_ids": ["e603172c9317ea579bcd7e2327a67eb1"], "statement_hash": "80ac1d84bbe849fbfd99e6b2ebb05b087cc9b198d1d7226f71d05dc0267bda45"}}, {"rule": 2, "type": "equivalent", "target": "88eaa7fb83eff169caf25792dac1690b", "evidence": {"same_day": true, "patch_ids": ["e603172c9317ea579bcd7e2327a67eb1"], "statement_hash": "80ac1d84bbe849fbfd99e6b2ebb05b087cc9b198d1d7226f71d05dc0267bda45"}}, {"rule": 2, "type": "equivalent", "target": "de934059b476915fdb43a48fbb971a52", "evidence": {"same_day": true, "patch_ids": ["e603172c9317ea579bcd7e2327a67eb1"], "statement_hash": "80ac1d84bbe849fbfd99e6b2ebb05b087cc9b198d1d7226f71d05dc0267bda45"}}, {"rule": 2, "type": "equivalent", "target": "f9fab3a8ecb8966f5d82c5738764a72e", "evidence": {"same_day": true, "patch_ids": ["e603172c9317ea579bcd7e2327a67eb1"], "statement_hash": "80ac1d84bbe849fbfd99e6b2ebb05b087cc9b198d1d7226f71d05dc0267bda45"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ca19e92fed1253a2a1a4170e7b5d2b4", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复将 WHERE CURRENT OF 应用于计划中包含自定义扫描节点的游标时的崩溃", "evidence": {"same_day": true, "patch_ids": ["e603172c9317ea579bcd7e2327a67eb1"], "statement_hash": "80ac1d84bbe849fbfd99e6b2ebb05b087cc9b198d1d7226f71d05dc0267bda45"}, "url": "/docs/compare/?release=13.2#13.2-1e078dc3a91ff272", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "88eaa7fb83eff169caf25792dac1690b", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复将 WHERE CURRENT OF 应用于计划中包含自定义扫描节点的游标时的崩溃", "evidence": {"same_day": true, "patch_ids": ["e603172c9317ea579bcd7e2327a67eb1"], "statement_hash": "80ac1d84bbe849fbfd99e6b2ebb05b087cc9b198d1d7226f71d05dc0267bda45"}, "url": "/docs/compare/?release=12.6#12.6-6e369b06b576090c", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "68632768d31a602355d03c17b2e425d0", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复将 WHERE CURRENT OF 应用于计划中包含自定义扫描节点的游标时的崩溃", "evidence": {"same_day": true, "patch_ids": ["e603172c9317ea579bcd7e2327a67eb1"], "statement_hash": "80ac1d84bbe849fbfd99e6b2ebb05b087cc9b198d1d7226f71d05dc0267bda45"}, "url": "/docs/compare/?release=11.11#11.11-3f9247f6d8415936", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "de934059b476915fdb43a48fbb971a52", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复将 WHERE CURRENT OF 应用于计划中包含自定义扫描节点的游标时的崩溃", "evidence": {"same_day": true, "patch_ids": ["e603172c9317ea579bcd7e2327a67eb1"], "statement_hash": "80ac1d84bbe849fbfd99e6b2ebb05b087cc9b198d1d7226f71d05dc0267bda45"}, "url": "/docs/compare/?release=10.16#10.16-3f9247f6d8415936", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "f9fab3a8ecb8966f5d82c5738764a72e", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复对计划包含自定义扫描节点的游标应用 WHERE CURRENT OF 时的崩溃", "evidence": {"same_day": true, "patch_ids": ["e603172c9317ea579bcd7e2327a67eb1"], "statement_hash": "80ac1d84bbe849fbfd99e6b2ebb05b087cc9b198d1d7226f71d05dc0267bda45"}, "url": "/docs/compare/?release=9.5.25#9.5.25-c1bc33c06f395eb7", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-960072b119c01e5d", "cves": [], "html": "<p>修复规划器对在某个连接层级计算且仅在同一层级使用的占位符的处理（Tom Lane）</p>\n<p>这一疏漏可能导致 <span>“<span>failed to build any <em><code>N</code></em>-way joins</span>”</span> 规划器错误。</p>", "text": "修复规划器对在某个连接层级计算且仅在同一层级使用的占位符的处理（Tom Lane） 这一疏漏可能导致 “failed to build any N-way joins” 规划器错误。", "title": "修复规划器对在某个连接层级计算且仅在同一层级使用的占位符的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "af31e0476e4f3bb7dd5a11be62b466a27bafd58f5ab6d5b05476155e245e0729", "section_path": ["变更"], "commit_groups": [["4f728a1f5", "666a4de93", "785f4462d", "8c5da2d51", "ab4cbb4bc", "b1738ff6a", "caecab229"]], "identity_text": "Fix planner's handling of a placeholder that is computed at some join level and used only at that same level (Tom Lane) This oversight could lead to failed to build any N-way joins planner errors.", "commit_aliases": ["4f728a1f5", "666a4de93", "785f4462d", "8c5da2d51", "ab4cbb4bc", "b1738ff6a", "caecab229"], "source_commits": ["ab4cbb4bc"], "source_entry_id": "9.6.21/changes/004", "db_id": "c422b4ed815bf8c817f929e16ecd21b0", "patch_ids": ["a2e2b2cba805a92ec1e77f5f6a296c5a"], "statement_hash": "2eb8a946403c9afcf850315ef4f572f4938134b2d0e465ba39e50bddf29f5a1a", "relations": [{"rule": 2, "type": "equivalent", "target": "48a7de712fb5de14ea19ebc80469927c", "evidence": {"same_day": true, "patch_ids": ["a2e2b2cba805a92ec1e77f5f6a296c5a"], "statement_hash": "2eb8a946403c9afcf850315ef4f572f4938134b2d0e465ba39e50bddf29f5a1a"}}, {"rule": 2, "type": "equivalent", "target": "77473fe2cfe10e0160889736972a06bd", "evidence": {"same_day": true, "patch_ids": ["a2e2b2cba805a92ec1e77f5f6a296c5a"], "statement_hash": "2eb8a946403c9afcf850315ef4f572f4938134b2d0e465ba39e50bddf29f5a1a"}}, {"rule": 2, "type": "equivalent", "target": "a206cad7f02e74fc8eb8d57be50fd1af", "evidence": {"same_day": true, "patch_ids": ["a2e2b2cba805a92ec1e77f5f6a296c5a"], "statement_hash": "2eb8a946403c9afcf850315ef4f572f4938134b2d0e465ba39e50bddf29f5a1a"}}, {"rule": 2, "type": "equivalent", "target": "eb7959f448c582f05eb9fcf11d288e8c", "evidence": {"same_day": true, "patch_ids": ["a2e2b2cba805a92ec1e77f5f6a296c5a"], "statement_hash": "2eb8a946403c9afcf850315ef4f572f4938134b2d0e465ba39e50bddf29f5a1a"}}, {"rule": 2, "type": "equivalent", "target": "fff234c32ceec3672aa25ef7361e9b80", "evidence": {"same_day": true, "patch_ids": ["a2e2b2cba805a92ec1e77f5f6a296c5a"], "statement_hash": "2eb8a946403c9afcf850315ef4f572f4938134b2d0e465ba39e50bddf29f5a1a"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a206cad7f02e74fc8eb8d57be50fd1af", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复规划器对在某个连接层级计算、且仅在同一层级使用的占位符的处理", "evidence": {"same_day": true, "patch_ids": ["a2e2b2cba805a92ec1e77f5f6a296c5a"], "statement_hash": "2eb8a946403c9afcf850315ef4f572f4938134b2d0e465ba39e50bddf29f5a1a"}, "url": "/docs/compare/?release=13.2#13.2-8c5f37c59d39702d", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "eb7959f448c582f05eb9fcf11d288e8c", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复规划器对在某个连接层级计算、且仅在同一层级使用的占位符的处理", "evidence": {"same_day": true, "patch_ids": ["a2e2b2cba805a92ec1e77f5f6a296c5a"], "statement_hash": "2eb8a946403c9afcf850315ef4f572f4938134b2d0e465ba39e50bddf29f5a1a"}, "url": "/docs/compare/?release=12.6#12.6-def1840d7338062d", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "77473fe2cfe10e0160889736972a06bd", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复规划器对在某个连接层级计算、且仅在同一层级使用的占位符的处理", "evidence": {"same_day": true, "patch_ids": ["a2e2b2cba805a92ec1e77f5f6a296c5a"], "statement_hash": "2eb8a946403c9afcf850315ef4f572f4938134b2d0e465ba39e50bddf29f5a1a"}, "url": "/docs/compare/?release=11.11#11.11-99eb04b12c8604e1", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "48a7de712fb5de14ea19ebc80469927c", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复规划器对在某个连接层级计算、且仅在同一层级使用的占位符的处理", "evidence": {"same_day": true, "patch_ids": ["a2e2b2cba805a92ec1e77f5f6a296c5a"], "statement_hash": "2eb8a946403c9afcf850315ef4f572f4938134b2d0e465ba39e50bddf29f5a1a"}, "url": "/docs/compare/?release=10.16#10.16-99eb04b12c8604e1", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "fff234c32ceec3672aa25ef7361e9b80", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复规划器对在某个连接层级计算且仅在同一层级使用的占位符的处理", "evidence": {"same_day": true, "patch_ids": ["a2e2b2cba805a92ec1e77f5f6a296c5a"], "statement_hash": "2eb8a946403c9afcf850315ef4f572f4938134b2d0e465ba39e50bddf29f5a1a"}, "url": "/docs/compare/?release=9.5.25#9.5.25-960072b119c01e5d", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-274f83cea6213b4d", "cves": [], "html": "<p>更谨慎地判断索引访问方法是否支持 mark/restore（Andrew Gierth）</p>\n<p>这防止了罕见边界情况下缺少支持函数的错误。</p>", "text": "更谨慎地判断索引访问方法是否支持 mark/restore（Andrew Gierth） 这防止了罕见边界情况下缺少支持函数的错误。", "title": "更谨慎地判断索引访问方法是否支持 mark/restore", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "bd58c35e80cac0a6693696bc933d5a47b386940429ab1a20cdbb41f77b8bb797", "section_path": ["变更"], "commit_groups": [["018e7d98d", "321c87e5c", "59ed45e27", "6402afd98", "660b89928", "6dda05704", "ae5aa26dc"]], "identity_text": "Be more careful about whether index AMs support mark/restore (Andrew Gierth) This prevents errors about missing support functions in rare edge cases.", "commit_aliases": ["018e7d98d", "321c87e5c", "59ed45e27", "6402afd98", "660b89928", "6dda05704", "ae5aa26dc"], "source_commits": ["6402afd98"], "source_entry_id": "9.6.21/changes/005", "db_id": "e72e53f518365fa9545ab0f09475a9af", "patch_ids": ["749840e3c6ceb36efe87cb701e4462d4"], "statement_hash": "f53f3f70ebe52fca4dd085ea8ca596c6215cae44cf52ad6aa3c0ca701f01c185", "relations": [{"rule": 2, "type": "equivalent", "target": "57b6c2a714b843a87d0747aa8252c1f6", "evidence": {"same_day": true, "patch_ids": ["749840e3c6ceb36efe87cb701e4462d4"], "statement_hash": "f53f3f70ebe52fca4dd085ea8ca596c6215cae44cf52ad6aa3c0ca701f01c185"}}, {"rule": 2, "type": "equivalent", "target": "5ccd5b246b38d774e71b7453a3682bd7", "evidence": {"same_day": true, "patch_ids": ["749840e3c6ceb36efe87cb701e4462d4"], "statement_hash": "f53f3f70ebe52fca4dd085ea8ca596c6215cae44cf52ad6aa3c0ca701f01c185"}}, {"rule": 2, "type": "equivalent", "target": "ac4838555b4a14755d3dc36a71dcf02f", "evidence": {"same_day": true, "patch_ids": ["749840e3c6ceb36efe87cb701e4462d4"], "statement_hash": "f53f3f70ebe52fca4dd085ea8ca596c6215cae44cf52ad6aa3c0ca701f01c185"}}, {"rule": 2, "type": "equivalent", "target": "e30a1be42c0ba1ec75f41eaad102da5e", "evidence": {"same_day": true, "patch_ids": ["749840e3c6ceb36efe87cb701e4462d4"], "statement_hash": "f53f3f70ebe52fca4dd085ea8ca596c6215cae44cf52ad6aa3c0ca701f01c185"}}, {"rule": 2, "type": "equivalent", "target": "e74a9337e2fcd7bc439207ba18a84bdb", "evidence": {"same_day": true, "patch_ids": ["749840e3c6ceb36efe87cb701e4462d4"], "statement_hash": "f53f3f70ebe52fca4dd085ea8ca596c6215cae44cf52ad6aa3c0ca701f01c185"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ccd5b246b38d774e71b7453a3682bd7", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "更谨慎地判断索引访问方法是否支持标记/恢复", "evidence": {"same_day": true, "patch_ids": ["749840e3c6ceb36efe87cb701e4462d4"], "statement_hash": "f53f3f70ebe52fca4dd085ea8ca596c6215cae44cf52ad6aa3c0ca701f01c185"}, "url": "/docs/compare/?release=13.2#13.2-81bc777702fa6586", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "ac4838555b4a14755d3dc36a71dcf02f", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "更谨慎地判断索引访问方法是否支持标记/恢复", "evidence": {"same_day": true, "patch_ids": ["749840e3c6ceb36efe87cb701e4462d4"], "statement_hash": "f53f3f70ebe52fca4dd085ea8ca596c6215cae44cf52ad6aa3c0ca701f01c185"}, "url": "/docs/compare/?release=12.6#12.6-3ad714e7827b363a", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "57b6c2a714b843a87d0747aa8252c1f6", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "更谨慎地判断索引访问方法是否支持标记/恢复", "evidence": {"same_day": true, "patch_ids": ["749840e3c6ceb36efe87cb701e4462d4"], "statement_hash": "f53f3f70ebe52fca4dd085ea8ca596c6215cae44cf52ad6aa3c0ca701f01c185"}, "url": "/docs/compare/?release=11.11#11.11-bbf1e02f10d8af58", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "e74a9337e2fcd7bc439207ba18a84bdb", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "更谨慎地判断索引访问方法是否支持标记/恢复", "evidence": {"same_day": true, "patch_ids": ["749840e3c6ceb36efe87cb701e4462d4"], "statement_hash": "f53f3f70ebe52fca4dd085ea8ca596c6215cae44cf52ad6aa3c0ca701f01c185"}, "url": "/docs/compare/?release=10.16#10.16-bbf1e02f10d8af58", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "e30a1be42c0ba1ec75f41eaad102da5e", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "更谨慎地判断索引访问方法是否支持 mark/restore", "evidence": {"same_day": true, "patch_ids": ["749840e3c6ceb36efe87cb701e4462d4"], "statement_hash": "f53f3f70ebe52fca4dd085ea8ca596c6215cae44cf52ad6aa3c0ca701f01c185"}, "url": "/docs/compare/?release=9.5.25#9.5.25-274f83cea6213b4d", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-20ea2774f094b7d5", "cves": [], "html": "<p>修复 <code>ALTER DEFAULT PRIVILEGES</code> 安全处理重复参数的问题（Michael Paquier）</p>\n<p>同一条命令中重复的角色或模式名可能导致 <span>“<span>tuple already updated by self</span>”</span> 错误或唯一约束冲突。</p>", "text": "修复 ALTER DEFAULT PRIVILEGES 安全处理重复参数的问题（Michael Paquier） 同一条命令中重复的角色或模式名可能导致 “tuple already updated by self” 错误或唯一约束冲突。", "title": "修复 ALTER DEFAULT PRIVILEGES 安全处理重复参数的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "0efb26291cf108e8c2faefd8b35216c9e8c9e7d33c911dc4f7e4a81af8012d51", "section_path": ["变更"], "commit_groups": [["0ddb529cf", "1c3a4d44d", "21378e1fe", "31e0f9d76", "5ad672fc2", "74ee3abcf", "7dc3be9df"]], "identity_text": "Fix ALTER DEFAULT PRIVILEGES to handle duplicated arguments safely (Michael Paquier) Duplicate role or schema names within the same command could lead to tuple already updated by self errors or unique-constraint violations.", "commit_aliases": ["0ddb529cf", "1c3a4d44d", "21378e1fe", "31e0f9d76", "5ad672fc2", "74ee3abcf", "7dc3be9df"], "source_commits": ["7dc3be9df"], "source_entry_id": "9.6.21/changes/006", "db_id": "9ed5f0e33fbbefff8170d512c8e42a97", "patch_ids": ["a0c6a2e491da1fb8e4b1a21f34272605"], "statement_hash": "108f17490f863784eb6f9bdbade7fa76b54b75d89fcc6c1a882af5d59652cb24", "relations": [{"rule": 2, "type": "equivalent", "target": "033e71517443ed8592642e7692090256", "evidence": {"same_day": true, "patch_ids": ["a0c6a2e491da1fb8e4b1a21f34272605"], "statement_hash": "108f17490f863784eb6f9bdbade7fa76b54b75d89fcc6c1a882af5d59652cb24"}}, {"rule": 2, "type": "equivalent", "target": "c8c62e21e0bd403c5dab1f4ed86dfad6", "evidence": {"same_day": true, "patch_ids": ["a0c6a2e491da1fb8e4b1a21f34272605"], "statement_hash": "108f17490f863784eb6f9bdbade7fa76b54b75d89fcc6c1a882af5d59652cb24"}}, {"rule": 2, "type": "equivalent", "target": "cda3edcd94b5fcfc7addadcb6b6dcb74", "evidence": {"same_day": true, "patch_ids": ["a0c6a2e491da1fb8e4b1a21f34272605"], "statement_hash": "108f17490f863784eb6f9bdbade7fa76b54b75d89fcc6c1a882af5d59652cb24"}}, {"rule": 2, "type": "equivalent", "target": "e9014b95101a24369f0504a5e24d5026", "evidence": {"same_day": true, "patch_ids": ["a0c6a2e491da1fb8e4b1a21f34272605"], "statement_hash": "108f17490f863784eb6f9bdbade7fa76b54b75d89fcc6c1a882af5d59652cb24"}}, {"rule": 2, "type": "equivalent", "target": "f580b4b2ea35354c971a0096c1ffcc3d", "evidence": {"same_day": true, "patch_ids": ["a0c6a2e491da1fb8e4b1a21f34272605"], "statement_hash": "108f17490f863784eb6f9bdbade7fa76b54b75d89fcc6c1a882af5d59652cb24"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "033e71517443ed8592642e7692090256", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复 ALTER DEFAULT PRIVILEGES，使其安全地处理重复参数", "evidence": {"same_day": true, "patch_ids": ["a0c6a2e491da1fb8e4b1a21f34272605"], "statement_hash": "108f17490f863784eb6f9bdbade7fa76b54b75d89fcc6c1a882af5d59652cb24"}, "url": "/docs/compare/?release=13.2#13.2-4b47c52c3d1e42d3", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "cda3edcd94b5fcfc7addadcb6b6dcb74", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复 ALTER DEFAULT PRIVILEGES，使其安全地处理重复参数", "evidence": {"same_day": true, "patch_ids": ["a0c6a2e491da1fb8e4b1a21f34272605"], "statement_hash": "108f17490f863784eb6f9bdbade7fa76b54b75d89fcc6c1a882af5d59652cb24"}, "url": "/docs/compare/?release=12.6#12.6-436d765ebc16733b", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "f580b4b2ea35354c971a0096c1ffcc3d", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复 ALTER DEFAULT PRIVILEGES，使其安全地处理重复参数", "evidence": {"same_day": true, "patch_ids": ["a0c6a2e491da1fb8e4b1a21f34272605"], "statement_hash": "108f17490f863784eb6f9bdbade7fa76b54b75d89fcc6c1a882af5d59652cb24"}, "url": "/docs/compare/?release=11.11#11.11-2083a0cb1e3c3453", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "c8c62e21e0bd403c5dab1f4ed86dfad6", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复 ALTER DEFAULT PRIVILEGES，使其安全地处理重复参数", "evidence": {"same_day": true, "patch_ids": ["a0c6a2e491da1fb8e4b1a21f34272605"], "statement_hash": "108f17490f863784eb6f9bdbade7fa76b54b75d89fcc6c1a882af5d59652cb24"}, "url": "/docs/compare/?release=10.16#10.16-2083a0cb1e3c3453", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "e9014b95101a24369f0504a5e24d5026", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复 ALTER DEFAULT PRIVILEGES 安全处理重复参数的问题", "evidence": {"same_day": true, "patch_ids": ["a0c6a2e491da1fb8e4b1a21f34272605"], "statement_hash": "108f17490f863784eb6f9bdbade7fa76b54b75d89fcc6c1a882af5d59652cb24"}, "url": "/docs/compare/?release=9.5.25#9.5.25-20ea2774f094b7d5", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-3008e1f8b4e3be59", "cves": [], "html": "<p>当 <code>pg_authid</code> 变化时刷新与 ACL 相关的缓存（Noah Misch）</p>\n<p>这一更改确保与权限相关的决策能及时反映 <code>ALTER ROLE ... [NO] INHERIT</code> 的结果。</p>", "text": "当 pg_authid 变化时刷新与 ACL 相关的缓存（Noah Misch） 这一更改确保与权限相关的决策能及时反映 ALTER ROLE ... [NO] INHERIT 的结果。", "title": "当 pg_authid 变化时刷新与 ACL 相关的缓存", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "1bf06603d5a7df326ade343321dc2567712e259f96d752e651ac897047eec088", "section_path": ["变更"], "commit_groups": [["08db7c63f", "90383a613", "9f8a48bb2", "b81d3791e", "c96698806", "d7c197f46", "e83e8509b"], ["14649bf50", "3f920e876", "d176b9d5e"]], "identity_text": "Flush ACL-related caches when pg_authid changes (Noah Misch) This change ensures that permissions-related decisions will promptly reflect the results of ALTER ROLE ... [NO] INHERIT.", "commit_aliases": ["08db7c63f", "14649bf50", "3f920e876", "90383a613", "9f8a48bb2", "b81d3791e", "c96698806", "d176b9d5e", "d7c197f46", "e83e8509b"], "source_commits": ["3f920e876", "b81d3791e"], "source_entry_id": "9.6.21/changes/007", "db_id": "30b26947bab50767cbf4a381a86dcf86", "patch_ids": ["8261d1d2792ddf98e1639c826e0fca5a", "85c598aa5938b7851f892ebc19b03c85"], "statement_hash": "f55e706a15a623bb3ea44d542a02fce04b8937ca32553a1dc86b0ea042bfc81f", "relations": [{"rule": 2, "type": "equivalent", "target": "0e9618c2858aa82275318a85f0170c94", "evidence": {"same_day": true, "patch_ids": ["8261d1d2792ddf98e1639c826e0fca5a", "85c598aa5938b7851f892ebc19b03c85"], "statement_hash": "f55e706a15a623bb3ea44d542a02fce04b8937ca32553a1dc86b0ea042bfc81f"}}, {"rule": 2, "type": "equivalent", "target": "10c22711cf4429b157373c6219ddca31", "evidence": {"same_day": true, "patch_ids": ["8261d1d2792ddf98e1639c826e0fca5a", "85c598aa5938b7851f892ebc19b03c85"], "statement_hash": "f55e706a15a623bb3ea44d542a02fce04b8937ca32553a1dc86b0ea042bfc81f"}}, {"rule": 2, "type": "equivalent", "target": "95cb8893e5af3468866ac5a73d78c2f3", "evidence": {"same_day": true, "patch_ids": ["8261d1d2792ddf98e1639c826e0fca5a", "85c598aa5938b7851f892ebc19b03c85"], "statement_hash": "f55e706a15a623bb3ea44d542a02fce04b8937ca32553a1dc86b0ea042bfc81f"}}, {"rule": 2, "type": "equivalent", "target": "a188239a764bd7a2b1e76a548e2b8013", "evidence": {"same_day": true, "patch_ids": ["8261d1d2792ddf98e1639c826e0fca5a", "85c598aa5938b7851f892ebc19b03c85"], "statement_hash": "f55e706a15a623bb3ea44d542a02fce04b8937ca32553a1dc86b0ea042bfc81f"}}, {"rule": 2, "type": "equivalent", "target": "ca24cf617886cda982c367f2998358ba", "evidence": {"same_day": true, "patch_ids": ["8261d1d2792ddf98e1639c826e0fca5a", "85c598aa5938b7851f892ebc19b03c85"], "statement_hash": "f55e706a15a623bb3ea44d542a02fce04b8937ca32553a1dc86b0ea042bfc81f"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "10c22711cf4429b157373c6219ddca31", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "在 pg_authid 变更时清除 ACL 相关缓存", "evidence": {"same_day": true, "patch_ids": ["8261d1d2792ddf98e1639c826e0fca5a", "85c598aa5938b7851f892ebc19b03c85"], "statement_hash": "f55e706a15a623bb3ea44d542a02fce04b8937ca32553a1dc86b0ea042bfc81f"}, "url": "/docs/compare/?release=13.2#13.2-d17a09f2cbc4b675", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "ca24cf617886cda982c367f2998358ba", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "在 pg_authid 变更时清除 ACL 相关缓存", "evidence": {"same_day": true, "patch_ids": ["8261d1d2792ddf98e1639c826e0fca5a", "85c598aa5938b7851f892ebc19b03c85"], "statement_hash": "f55e706a15a623bb3ea44d542a02fce04b8937ca32553a1dc86b0ea042bfc81f"}, "url": "/docs/compare/?release=12.6#12.6-d4fb84be01500688", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "a188239a764bd7a2b1e76a548e2b8013", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "在 pg_authid 变更时清除 ACL 相关缓存", "evidence": {"same_day": true, "patch_ids": ["8261d1d2792ddf98e1639c826e0fca5a", "85c598aa5938b7851f892ebc19b03c85"], "statement_hash": "f55e706a15a623bb3ea44d542a02fce04b8937ca32553a1dc86b0ea042bfc81f"}, "url": "/docs/compare/?release=11.11#11.11-db16fa14eaf58336", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "95cb8893e5af3468866ac5a73d78c2f3", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "在 pg_authid 变更时清除 ACL 相关缓存", "evidence": {"same_day": true, "patch_ids": ["8261d1d2792ddf98e1639c826e0fca5a", "85c598aa5938b7851f892ebc19b03c85"], "statement_hash": "f55e706a15a623bb3ea44d542a02fce04b8937ca32553a1dc86b0ea042bfc81f"}, "url": "/docs/compare/?release=10.16#10.16-db16fa14eaf58336", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "0e9618c2858aa82275318a85f0170c94", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "当 pg_authid 变化时刷新与 ACL 相关的缓存", "evidence": {"same_day": true, "patch_ids": ["8261d1d2792ddf98e1639c826e0fca5a", "85c598aa5938b7851f892ebc19b03c85"], "statement_hash": "f55e706a15a623bb3ea44d542a02fce04b8937ca32553a1dc86b0ea042bfc81f"}, "url": "/docs/compare/?release=9.5.25#9.5.25-3008e1f8b4e3be59", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-97757803e9a177b4", "cves": [], "html": "<p>防止对有歧义的 <code>CREATE TABLE LIKE</code> 子句的错误处理（Tom Lane）</p>\n<p><code>LIKE</code> 子句在新表初始创建之后会被重新检查，以处理索引等的导入。这一重新检查有可能找到同名的另一张表，导致意外的行为；一个例子是新表是与 <code>LIKE</code> 目标同名的临时表。</p>", "text": "防止对有歧义的 CREATE TABLE LIKE 子句的错误处理（Tom Lane） LIKE 子句在新表初始创建之后会被重新检查，以处理索引等的导入。这一重新检查有可能找到同名的另一张表，导致意外的行为；一个例子是新表是与 LIKE 目标同名的临时表。", "title": "防止对有歧义的 CREATE TABLE LIKE 子句的错误处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "a595a0e4306d2c75f32a4cd8a4d363264bd5c0d112c041818f9a9317492d1a50", "section_path": ["变更"], "commit_groups": [["28bb8c496", "5f9b05ada", "d98e27dc6", "dffc82a5b", "f00c44002", "f7f83a55b", "fb500296d"]], "identity_text": "Prevent misprocessing of ambiguous CREATE TABLE LIKE clauses (Tom Lane) A LIKE clause is re-examined after initial creation of the new table, to handle importation of indexes and such. It was possible for this re-examination to find a different table of the same name, causing unexpected behavior; one example is where the new table is a temporary table of the same name as the LIKE target.", "commit_aliases": ["28bb8c496", "5f9b05ada", "d98e27dc6", "dffc82a5b", "f00c44002", "f7f83a55b", "fb500296d"], "source_commits": ["f00c44002"], "source_entry_id": "9.6.21/changes/008", "db_id": "dab4ca2474b40c1def5d933f49644da5", "patch_ids": ["ccd0a42fc952ae4b62a27ed30a0bf08d"], "statement_hash": "9e3e1d81e0e836e660fe572e4863d78cb1e67f2d84a93b39a583ca1849b67876", "relations": [{"rule": 2, "type": "equivalent", "target": "23f4a26e88e89ca226925b4c412eb711", "evidence": {"same_day": true, "patch_ids": ["ccd0a42fc952ae4b62a27ed30a0bf08d"], "statement_hash": "9e3e1d81e0e836e660fe572e4863d78cb1e67f2d84a93b39a583ca1849b67876"}}, {"rule": 2, "type": "equivalent", "target": "26a2e31b5f68c9ae150acdd4523c267e", "evidence": {"same_day": true, "patch_ids": ["ccd0a42fc952ae4b62a27ed30a0bf08d"], "statement_hash": "9e3e1d81e0e836e660fe572e4863d78cb1e67f2d84a93b39a583ca1849b67876"}}, {"rule": 2, "type": "equivalent", "target": "40e0b6c50a33af0b42faa8dc56ce327c", "evidence": {"same_day": true, "patch_ids": ["ccd0a42fc952ae4b62a27ed30a0bf08d"], "statement_hash": "9e3e1d81e0e836e660fe572e4863d78cb1e67f2d84a93b39a583ca1849b67876"}}, {"rule": 2, "type": "equivalent", "target": "88e4d65708e50deaf6646f984e32063d", "evidence": {"same_day": true, "patch_ids": ["ccd0a42fc952ae4b62a27ed30a0bf08d"], "statement_hash": "9e3e1d81e0e836e660fe572e4863d78cb1e67f2d84a93b39a583ca1849b67876"}}, {"rule": 2, "type": "equivalent", "target": "d23597eae668e6657fa42f0942d31d09", "evidence": {"same_day": true, "patch_ids": ["ccd0a42fc952ae4b62a27ed30a0bf08d"], "statement_hash": "9e3e1d81e0e836e660fe572e4863d78cb1e67f2d84a93b39a583ca1849b67876"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "23f4a26e88e89ca226925b4c412eb711", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "防止错误处理有歧义的 CREATE TABLE LIKE 子句", "evidence": {"same_day": true, "patch_ids": ["ccd0a42fc952ae4b62a27ed30a0bf08d"], "statement_hash": "9e3e1d81e0e836e660fe572e4863d78cb1e67f2d84a93b39a583ca1849b67876"}, "url": "/docs/compare/?release=13.2#13.2-481d2262162e5363", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "d23597eae668e6657fa42f0942d31d09", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "防止错误处理有歧义的 CREATE TABLE LIKE 子句", "evidence": {"same_day": true, "patch_ids": ["ccd0a42fc952ae4b62a27ed30a0bf08d"], "statement_hash": "9e3e1d81e0e836e660fe572e4863d78cb1e67f2d84a93b39a583ca1849b67876"}, "url": "/docs/compare/?release=12.6#12.6-402f740b85b2629f", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "88e4d65708e50deaf6646f984e32063d", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "防止错误处理有歧义的 CREATE TABLE LIKE 子句", "evidence": {"same_day": true, "patch_ids": ["ccd0a42fc952ae4b62a27ed30a0bf08d"], "statement_hash": "9e3e1d81e0e836e660fe572e4863d78cb1e67f2d84a93b39a583ca1849b67876"}, "url": "/docs/compare/?release=11.11#11.11-ccab9d4a9d7653dd", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "40e0b6c50a33af0b42faa8dc56ce327c", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "防止错误处理有歧义的 CREATE TABLE LIKE 子句", "evidence": {"same_day": true, "patch_ids": ["ccd0a42fc952ae4b62a27ed30a0bf08d"], "statement_hash": "9e3e1d81e0e836e660fe572e4863d78cb1e67f2d84a93b39a583ca1849b67876"}, "url": "/docs/compare/?release=10.16#10.16-ccab9d4a9d7653dd", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "26a2e31b5f68c9ae150acdd4523c267e", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "防止对有歧义的 CREATE TABLE LIKE 子句的错误处理", "evidence": {"same_day": true, "patch_ids": ["ccd0a42fc952ae4b62a27ed30a0bf08d"], "statement_hash": "9e3e1d81e0e836e660fe572e4863d78cb1e67f2d84a93b39a583ca1849b67876"}, "url": "/docs/compare/?release=9.5.25#9.5.25-97757803e9a177b4", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-9c9ac22a7d1f47f8", "cves": [], "html": "<p>调整 <code>CREATE TABLE LIKE</code> 中操作的顺序，使索引在外键约束构建之前被克隆（Tom Lane）</p>\n<p>这修复了外层 <code>CREATE TABLE</code> 中声明的自引用外键约束依赖于来自 <code>LIKE</code> 子句的索引的情况。</p>", "text": "调整 CREATE TABLE LIKE 中操作的顺序，使索引在外键约束构建之前被克隆（Tom Lane） 这修复了外层 CREATE TABLE 中声明的自引用外键约束依赖于来自 LIKE 子句的索引的情况。", "title": "调整 CREATE TABLE LIKE 中操作的顺序，使索引在外键约束构建之前被克隆", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "fb6b4f12d27c1edcc94cc8aa9b62fd8c87c71f89c7877a5b37e6d11b30f03a39", "section_path": ["变更"], "commit_groups": [["159b6775f", "513db7b70", "6631d5f26", "87ab46421", "97390fe8a", "98f3f1d5c", "c690ebbef"]], "identity_text": "Rearrange order of operations in CREATE TABLE LIKE so that indexes are cloned before building foreign key constraints (Tom Lane) This fixes the case where a self-referential foreign key constraint declared in the outer CREATE TABLE depends on an index that's coming from the LIKE clause.", "commit_aliases": ["159b6775f", "513db7b70", "6631d5f26", "87ab46421", "97390fe8a", "98f3f1d5c", "c690ebbef"], "source_commits": ["159b6775f"], "source_entry_id": "9.6.21/changes/009", "db_id": "fc47a4e8119a4993b02c5720841b1780", "patch_ids": ["83544fb9faed1caeaaa43c4794a999e9"], "statement_hash": "f8104c118d31dc4b71dcf243fe3bddd5b8593756af22533e15a149f878c2de3b", "relations": [{"rule": 2, "type": "equivalent", "target": "5c2c210d0d41728735f79ce7cc2e5c3a", "evidence": {"same_day": true, "patch_ids": ["83544fb9faed1caeaaa43c4794a999e9"], "statement_hash": "f8104c118d31dc4b71dcf243fe3bddd5b8593756af22533e15a149f878c2de3b"}}, {"rule": 2, "type": "equivalent", "target": "80bae2d134a0e89de77980d6d9dfece0", "evidence": {"same_day": true, "patch_ids": ["83544fb9faed1caeaaa43c4794a999e9"], "statement_hash": "f8104c118d31dc4b71dcf243fe3bddd5b8593756af22533e15a149f878c2de3b"}}, {"rule": 2, "type": "equivalent", "target": "8a18b068a7a2bf7287ee527d712b070f", "evidence": {"same_day": true, "patch_ids": ["83544fb9faed1caeaaa43c4794a999e9"], "statement_hash": "f8104c118d31dc4b71dcf243fe3bddd5b8593756af22533e15a149f878c2de3b"}}, {"rule": 2, "type": "equivalent", "target": "b903829f119022d2c32f8c760c34c854", "evidence": {"same_day": true, "patch_ids": ["83544fb9faed1caeaaa43c4794a999e9"], "statement_hash": "f8104c118d31dc4b71dcf243fe3bddd5b8593756af22533e15a149f878c2de3b"}}, {"rule": 2, "type": "equivalent", "target": "cd6614377025c75b71756ee4b9b3a5a4", "evidence": {"same_day": true, "patch_ids": ["83544fb9faed1caeaaa43c4794a999e9"], "statement_hash": "f8104c118d31dc4b71dcf243fe3bddd5b8593756af22533e15a149f878c2de3b"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8a18b068a7a2bf7287ee527d712b070f", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "调整 CREATE TABLE LIKE 中的操作顺序，在构建外键约束之前克隆索引", "evidence": {"same_day": true, "patch_ids": ["83544fb9faed1caeaaa43c4794a999e9"], "statement_hash": "f8104c118d31dc4b71dcf243fe3bddd5b8593756af22533e15a149f878c2de3b"}, "url": "/docs/compare/?release=13.2#13.2-236f0aeae4fb3282", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "cd6614377025c75b71756ee4b9b3a5a4", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "调整 CREATE TABLE LIKE 中的操作顺序，在构建外键约束之前克隆索引", "evidence": {"same_day": true, "patch_ids": ["83544fb9faed1caeaaa43c4794a999e9"], "statement_hash": "f8104c118d31dc4b71dcf243fe3bddd5b8593756af22533e15a149f878c2de3b"}, "url": "/docs/compare/?release=12.6#12.6-803eac80cf0ee388", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "80bae2d134a0e89de77980d6d9dfece0", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "调整 CREATE TABLE LIKE 中的操作顺序，在构建外键约束之前克隆索引", "evidence": {"same_day": true, "patch_ids": ["83544fb9faed1caeaaa43c4794a999e9"], "statement_hash": "f8104c118d31dc4b71dcf243fe3bddd5b8593756af22533e15a149f878c2de3b"}, "url": "/docs/compare/?release=11.11#11.11-478f181bb1c6a748", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "5c2c210d0d41728735f79ce7cc2e5c3a", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "调整 CREATE TABLE LIKE 中的操作顺序，在构建外键约束之前克隆索引", "evidence": {"same_day": true, "patch_ids": ["83544fb9faed1caeaaa43c4794a999e9"], "statement_hash": "f8104c118d31dc4b71dcf243fe3bddd5b8593756af22533e15a149f878c2de3b"}, "url": "/docs/compare/?release=10.16#10.16-478f181bb1c6a748", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "b903829f119022d2c32f8c760c34c854", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "调整 CREATE TABLE LIKE 中操作的顺序，使索引在外键约束构建之前被克隆", "evidence": {"same_day": true, "patch_ids": ["83544fb9faed1caeaaa43c4794a999e9"], "statement_hash": "f8104c118d31dc4b71dcf243fe3bddd5b8593756af22533e15a149f878c2de3b"}, "url": "/docs/compare/?release=9.5.25#9.5.25-9c9ac22a7d1f47f8", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-875df186a7acd301", "cves": [], "html": "<p>禁止把继承子表转换为视图（Tom Lane）</p>", "text": "禁止把继承子表转换为视图（Tom Lane）", "title": "禁止把继承子表转换为视图", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "15091d4950ea3fde1ac0cc20235df172f2825730e92a3999ff122fa281f55438", "section_path": ["变更"], "commit_groups": [["4353bc878", "580069037", "5ad03374b", "7736ab05f", "ad85e5efa", "dd705a039", "f73321957"]], "identity_text": "Disallow converting an inheritance child table to a view (Tom Lane)", "commit_aliases": ["4353bc878", "580069037", "5ad03374b", "7736ab05f", "ad85e5efa", "dd705a039", "f73321957"], "source_commits": ["7736ab05f"], "source_entry_id": "9.6.21/changes/010", "db_id": "12ef8b02516a4bf938446a4d0010aca5", "patch_ids": ["836946a2bd2e3da747d1b07b44a23c75"], "statement_hash": "434aa69d3d17fa25d9921282c0e17d7bbca55de5c1d442d36de556cb83a32be4", "relations": [{"rule": 2, "type": "equivalent", "target": "49e84999d920619f74274e63abddbdcc", "evidence": {"same_day": true, "patch_ids": ["836946a2bd2e3da747d1b07b44a23c75"], "statement_hash": "434aa69d3d17fa25d9921282c0e17d7bbca55de5c1d442d36de556cb83a32be4"}}, {"rule": 2, "type": "equivalent", "target": "61efb2638743b6c6a19bd3c5ef0f7667", "evidence": {"same_day": true, "patch_ids": ["836946a2bd2e3da747d1b07b44a23c75"], "statement_hash": "434aa69d3d17fa25d9921282c0e17d7bbca55de5c1d442d36de556cb83a32be4"}}, {"rule": 2, "type": "equivalent", "target": "8ba9b28638ea299c1e985749523345bf", "evidence": {"same_day": true, "patch_ids": ["836946a2bd2e3da747d1b07b44a23c75"], "statement_hash": "434aa69d3d17fa25d9921282c0e17d7bbca55de5c1d442d36de556cb83a32be4"}}, {"rule": 2, "type": "equivalent", "target": "95bac125c0f7972cc51bb60f17c0542e", "evidence": {"same_day": true, "patch_ids": ["836946a2bd2e3da747d1b07b44a23c75"], "statement_hash": "434aa69d3d17fa25d9921282c0e17d7bbca55de5c1d442d36de556cb83a32be4"}}, {"rule": 2, "type": "equivalent", "target": "979f38103a244f175d742166a38b3027", "evidence": {"same_day": true, "patch_ids": ["836946a2bd2e3da747d1b07b44a23c75"], "statement_hash": "434aa69d3d17fa25d9921282c0e17d7bbca55de5c1d442d36de556cb83a32be4"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "979f38103a244f175d742166a38b3027", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "禁止将继承子表转换为视图", "evidence": {"same_day": true, "patch_ids": ["836946a2bd2e3da747d1b07b44a23c75"], "statement_hash": "434aa69d3d17fa25d9921282c0e17d7bbca55de5c1d442d36de556cb83a32be4"}, "url": "/docs/compare/?release=13.2#13.2-3fb55a0b240e8013", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "95bac125c0f7972cc51bb60f17c0542e", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "禁止将继承子表转换为视图", "evidence": {"same_day": true, "patch_ids": ["836946a2bd2e3da747d1b07b44a23c75"], "statement_hash": "434aa69d3d17fa25d9921282c0e17d7bbca55de5c1d442d36de556cb83a32be4"}, "url": "/docs/compare/?release=12.6#12.6-dfe2f9b97f434670", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "61efb2638743b6c6a19bd3c5ef0f7667", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "禁止将继承子表转换为视图", "evidence": {"same_day": true, "patch_ids": ["836946a2bd2e3da747d1b07b44a23c75"], "statement_hash": "434aa69d3d17fa25d9921282c0e17d7bbca55de5c1d442d36de556cb83a32be4"}, "url": "/docs/compare/?release=11.11#11.11-b36aba62a30a6456", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "49e84999d920619f74274e63abddbdcc", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "禁止将继承子表转换为视图", "evidence": {"same_day": true, "patch_ids": ["836946a2bd2e3da747d1b07b44a23c75"], "statement_hash": "434aa69d3d17fa25d9921282c0e17d7bbca55de5c1d442d36de556cb83a32be4"}, "url": "/docs/compare/?release=10.16#10.16-b36aba62a30a6456", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "8ba9b28638ea299c1e985749523345bf", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "禁止把继承子表转换为视图", "evidence": {"same_day": true, "patch_ids": ["836946a2bd2e3da747d1b07b44a23c75"], "statement_hash": "434aa69d3d17fa25d9921282c0e17d7bbca55de5c1d442d36de556cb83a32be4"}, "url": "/docs/compare/?release=9.5.25#9.5.25-875df186a7acd301", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-3dd54f684c6c905c", "cves": [], "html": "<p>确保已删除关系占用的磁盘空间在提交时被及时释放（Thomas Munro）</p>\n<p>此前，如果被删除的关系跨越多个 1GB 段，只有第一段被立即截断。其他段只是被解除链接，只要还有其他后端打开着这些文件，这不会让内核释放存储。</p>", "text": "确保已删除关系占用的磁盘空间在提交时被及时释放（Thomas Munro） 此前，如果被删除的关系跨越多个 1GB 段，只有第一段被立即截断。其他段只是被解除链接，只要还有其他后端打开着这些文件，这不会让内核释放存储。", "title": "确保已删除关系占用的磁盘空间在提交时被及时释放", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "12a014f4d38333fc8e452277fe93877cd3012e4db264d40c5f149d4a51b5427e", "section_path": ["变更"], "commit_groups": [["22701755d", "50f338574", "9f35f9437", "d0bbe2122", "d5706ad7b", "e00928de8", "fd3a75d82"]], "identity_text": "Ensure that disk space allocated for a dropped relation is released promptly at commit (Thomas Munro) Previously, if the dropped relation spanned multiple 1GB segments, only the first segment was truncated immediately. Other segments were simply unlinked, which doesn't authorize the kernel to release the storage so long as any other backends still have the files open.", "commit_aliases": ["22701755d", "50f338574", "9f35f9437", "d0bbe2122", "d5706ad7b", "e00928de8", "fd3a75d82"], "source_commits": ["d0bbe2122"], "source_entry_id": "9.6.21/changes/011", "db_id": "03596b748ef6b859b5360dc3098acc41", "patch_ids": ["9a4fd327bc5dd3b37cfc3812f035c0d4"], "statement_hash": "aebfb9c3dffc144a48a2e672b5a0c64bb4ce8370cab25e69f7c81659350e83fe", "relations": [{"rule": 2, "type": "equivalent", "target": "504fa4cb832d7d3abdd8340498c93a8e", "evidence": {"same_day": true, "patch_ids": ["9a4fd327bc5dd3b37cfc3812f035c0d4"], "statement_hash": "aebfb9c3dffc144a48a2e672b5a0c64bb4ce8370cab25e69f7c81659350e83fe"}}, {"rule": 2, "type": "equivalent", "target": "9363d693d2e0464a5a6f1e5ed52c50d7", "evidence": {"same_day": true, "patch_ids": ["9a4fd327bc5dd3b37cfc3812f035c0d4"], "statement_hash": "aebfb9c3dffc144a48a2e672b5a0c64bb4ce8370cab25e69f7c81659350e83fe"}}, {"rule": 2, "type": "equivalent", "target": "9df8843b80b823c7a414a43eef881153", "evidence": {"same_day": true, "patch_ids": ["9a4fd327bc5dd3b37cfc3812f035c0d4"], "statement_hash": "aebfb9c3dffc144a48a2e672b5a0c64bb4ce8370cab25e69f7c81659350e83fe"}}, {"rule": 2, "type": "equivalent", "target": "c9d3233197479c3689485c037f0828c1", "evidence": {"same_day": true, "patch_ids": ["9a4fd327bc5dd3b37cfc3812f035c0d4"], "statement_hash": "aebfb9c3dffc144a48a2e672b5a0c64bb4ce8370cab25e69f7c81659350e83fe"}}, {"rule": 2, "type": "equivalent", "target": "e41c7c0f90f56e4a2d06f7ae8276c637", "evidence": {"same_day": true, "patch_ids": ["9a4fd327bc5dd3b37cfc3812f035c0d4"], "statement_hash": "aebfb9c3dffc144a48a2e672b5a0c64bb4ce8370cab25e69f7c81659350e83fe"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e41c7c0f90f56e4a2d06f7ae8276c637", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "确保为已删除关系分配的磁盘空间在提交时及时释放", "evidence": {"same_day": true, "patch_ids": ["9a4fd327bc5dd3b37cfc3812f035c0d4"], "statement_hash": "aebfb9c3dffc144a48a2e672b5a0c64bb4ce8370cab25e69f7c81659350e83fe"}, "url": "/docs/compare/?release=13.2#13.2-c47a5cddf73ea8ed", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "c9d3233197479c3689485c037f0828c1", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "确保为已删除关系分配的磁盘空间在提交时及时释放", "evidence": {"same_day": true, "patch_ids": ["9a4fd327bc5dd3b37cfc3812f035c0d4"], "statement_hash": "aebfb9c3dffc144a48a2e672b5a0c64bb4ce8370cab25e69f7c81659350e83fe"}, "url": "/docs/compare/?release=12.6#12.6-d2890c650882e77f", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "504fa4cb832d7d3abdd8340498c93a8e", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "确保为已删除关系分配的磁盘空间在提交时及时释放", "evidence": {"same_day": true, "patch_ids": ["9a4fd327bc5dd3b37cfc3812f035c0d4"], "statement_hash": "aebfb9c3dffc144a48a2e672b5a0c64bb4ce8370cab25e69f7c81659350e83fe"}, "url": "/docs/compare/?release=11.11#11.11-de5fc2f596a1ad74", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "9363d693d2e0464a5a6f1e5ed52c50d7", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "确保为已删除关系分配的磁盘空间在提交时及时释放", "evidence": {"same_day": true, "patch_ids": ["9a4fd327bc5dd3b37cfc3812f035c0d4"], "statement_hash": "aebfb9c3dffc144a48a2e672b5a0c64bb4ce8370cab25e69f7c81659350e83fe"}, "url": "/docs/compare/?release=10.16#10.16-de5fc2f596a1ad74", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "9df8843b80b823c7a414a43eef881153", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "确保已删除关系占用的磁盘空间在提交时被及时释放", "evidence": {"same_day": true, "patch_ids": ["9a4fd327bc5dd3b37cfc3812f035c0d4"], "statement_hash": "aebfb9c3dffc144a48a2e672b5a0c64bb4ce8370cab25e69f7c81659350e83fe"}, "url": "/docs/compare/?release=9.5.25#9.5.25-3dd54f684c6c905c", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-110768d662719e6b", "cves": [], "html": "<p>修复 <code>COPY FROM</code> 中反斜线转义的多字节字符的处理（Heikki Linnakangas）</p>\n<p>反斜线后跟多字节字符的情况没有被正确处理。在某些客户端字符编码下，这可能导致把多字节字符的一部分误解释为字段分隔符或复制数据结束标记。</p>", "text": "修复 COPY FROM 中反斜线转义的多字节字符的处理（Heikki Linnakangas） 反斜线后跟多字节字符的情况没有被正确处理。在某些客户端字符编码下，这可能导致把多字节字符的一部分误解释为字段分隔符或复制数据结束标记。", "title": "修复 COPY FROM 中反斜线转义的多字节字符的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "d24b85d35823d8cf94ca00c5d473e99864c622bd9639312cd7e81925aab7b32a", "section_path": ["变更"], "commit_groups": [["9b0ce8957", "aaf266157", "c06632e48", "c444472af", "c87cbd51e", "d9b4163c5", "e152ccc7f"]], "identity_text": "Fix handling of backslash-escaped multibyte characters in COPY FROM (Heikki Linnakangas) A backslash followed by a multibyte character was not handled correctly. In some client character encodings, this could lead to misinterpreting part of a multibyte character as a field separator or end-of-copy-data marker.", "commit_aliases": ["9b0ce8957", "aaf266157", "c06632e48", "c444472af", "c87cbd51e", "d9b4163c5", "e152ccc7f"], "source_commits": ["e152ccc7f"], "source_entry_id": "9.6.21/changes/012", "db_id": "24a0975624b55034a36cc45c82dda4fa", "patch_ids": ["461834a457f95e1e46e3f5f853762185"], "statement_hash": "a17e1d9ba5b15acc4ec34752b30d9a8117208c92aa6ae3f0a770360600bf6170", "relations": [{"rule": 2, "type": "equivalent", "target": "2ff2a9fef7757aea510f778f3aef08f9", "evidence": {"same_day": true, "patch_ids": ["461834a457f95e1e46e3f5f853762185"], "statement_hash": "a17e1d9ba5b15acc4ec34752b30d9a8117208c92aa6ae3f0a770360600bf6170"}}, {"rule": 2, "type": "equivalent", "target": "6a24303fb124f0e6a1b631499dbc5513", "evidence": {"same_day": true, "patch_ids": ["461834a457f95e1e46e3f5f853762185"], "statement_hash": "a17e1d9ba5b15acc4ec34752b30d9a8117208c92aa6ae3f0a770360600bf6170"}}, {"rule": 2, "type": "equivalent", "target": "94c3dc3f04b7d0b45cacb5b6966c3453", "evidence": {"same_day": true, "patch_ids": ["461834a457f95e1e46e3f5f853762185"], "statement_hash": "a17e1d9ba5b15acc4ec34752b30d9a8117208c92aa6ae3f0a770360600bf6170"}}, {"rule": 2, "type": "equivalent", "target": "c9c4eb396a62b6f9b564bb3623096201", "evidence": {"same_day": true, "patch_ids": ["461834a457f95e1e46e3f5f853762185"], "statement_hash": "a17e1d9ba5b15acc4ec34752b30d9a8117208c92aa6ae3f0a770360600bf6170"}}, {"rule": 2, "type": "equivalent", "target": "cdac1aaac0da3071bf9f337dbf09252b", "evidence": {"same_day": true, "patch_ids": ["461834a457f95e1e46e3f5f853762185"], "statement_hash": "a17e1d9ba5b15acc4ec34752b30d9a8117208c92aa6ae3f0a770360600bf6170"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "94c3dc3f04b7d0b45cacb5b6966c3453", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复 COPY FROM 对反斜杠转义的多字节字符的处理", "evidence": {"same_day": true, "patch_ids": ["461834a457f95e1e46e3f5f853762185"], "statement_hash": "a17e1d9ba5b15acc4ec34752b30d9a8117208c92aa6ae3f0a770360600bf6170"}, "url": "/docs/compare/?release=13.2#13.2-5594565506cbb214", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "6a24303fb124f0e6a1b631499dbc5513", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复 COPY FROM 对反斜杠转义的多字节字符的处理", "evidence": {"same_day": true, "patch_ids": ["461834a457f95e1e46e3f5f853762185"], "statement_hash": "a17e1d9ba5b15acc4ec34752b30d9a8117208c92aa6ae3f0a770360600bf6170"}, "url": "/docs/compare/?release=12.6#12.6-3f4fe8706c75c1ad", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "c9c4eb396a62b6f9b564bb3623096201", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复 COPY FROM 对反斜杠转义的多字节字符的处理", "evidence": {"same_day": true, "patch_ids": ["461834a457f95e1e46e3f5f853762185"], "statement_hash": "a17e1d9ba5b15acc4ec34752b30d9a8117208c92aa6ae3f0a770360600bf6170"}, "url": "/docs/compare/?release=11.11#11.11-0183a142e1f34345", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "2ff2a9fef7757aea510f778f3aef08f9", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复 COPY FROM 对反斜杠转义的多字节字符的处理", "evidence": {"same_day": true, "patch_ids": ["461834a457f95e1e46e3f5f853762185"], "statement_hash": "a17e1d9ba5b15acc4ec34752b30d9a8117208c92aa6ae3f0a770360600bf6170"}, "url": "/docs/compare/?release=10.16#10.16-0183a142e1f34345", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "cdac1aaac0da3071bf9f337dbf09252b", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复 COPY FROM 中反斜线转义的多字节字符的处理", "evidence": {"same_day": true, "patch_ids": ["461834a457f95e1e46e3f5f853762185"], "statement_hash": "a17e1d9ba5b15acc4ec34752b30d9a8117208c92aa6ae3f0a770360600bf6170"}, "url": "/docs/compare/?release=9.5.25#9.5.25-110768d662719e6b", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-6f7d4b6f6c58285f", "cves": [], "html": "<p>避免不带 <code>ANALYZE</code> 的 <code>EXPLAIN</code> 预先分配执行器哈希表（Alexey Bashtanov）</p>", "text": "避免不带 ANALYZE 的 EXPLAIN 预先分配执行器哈希表（Alexey Bashtanov）", "title": "避免不带 ANALYZE 的 EXPLAIN 预先分配执行器哈希表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "3ce759467897dbca4a3fa6ea85b9db9b71b9da456a9eccf36390e578812142a1", "section_path": ["变更"], "commit_groups": [["02a2dbe91", "1dbe627fd", "2cccb627f", "340ae3cfb", "57b5d8484", "888fa2bae", "ded7db4c1"]], "identity_text": "Avoid preallocating executor hash tables in EXPLAIN without ANALYZE (Alexey Bashtanov)", "commit_aliases": ["02a2dbe91", "1dbe627fd", "2cccb627f", "340ae3cfb", "57b5d8484", "888fa2bae", "ded7db4c1"], "source_commits": ["02a2dbe91"], "source_entry_id": "9.6.21/changes/013", "db_id": "a014d0f294fb7a68feb1a3fbe56009c8", "patch_ids": ["4a1cf728756c647334f001b492e3a124"], "statement_hash": "6bf62155f5b3356397e868e401d1d5d6199e4addaf7ca2fe79a8b7ebb693e14b", "relations": [{"rule": 2, "type": "equivalent", "target": "2179731eec94fc15c1d8b1ddc8c9f578", "evidence": {"same_day": true, "patch_ids": ["4a1cf728756c647334f001b492e3a124"], "statement_hash": "6bf62155f5b3356397e868e401d1d5d6199e4addaf7ca2fe79a8b7ebb693e14b"}}, {"rule": 2, "type": "equivalent", "target": "613217020774168de821a221f85c7056", "evidence": {"same_day": true, "patch_ids": ["4a1cf728756c647334f001b492e3a124"], "statement_hash": "6bf62155f5b3356397e868e401d1d5d6199e4addaf7ca2fe79a8b7ebb693e14b"}}, {"rule": 2, "type": "equivalent", "target": "9268e2d4c38c84ac444c39db96ad5274", "evidence": {"same_day": true, "patch_ids": ["4a1cf728756c647334f001b492e3a124"], "statement_hash": "6bf62155f5b3356397e868e401d1d5d6199e4addaf7ca2fe79a8b7ebb693e14b"}}, {"rule": 2, "type": "equivalent", "target": "c66edfd9590fc963e116f02cecf827d1", "evidence": {"same_day": true, "patch_ids": ["4a1cf728756c647334f001b492e3a124"], "statement_hash": "6bf62155f5b3356397e868e401d1d5d6199e4addaf7ca2fe79a8b7ebb693e14b"}}, {"rule": 2, "type": "equivalent", "target": "d27d3b5f08c4411d7aebdd0545cecbf3", "evidence": {"same_day": true, "patch_ids": ["4a1cf728756c647334f001b492e3a124"], "statement_hash": "6bf62155f5b3356397e868e401d1d5d6199e4addaf7ca2fe79a8b7ebb693e14b"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c66edfd9590fc963e116f02cecf827d1", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "在不带 ANALYZE 的 EXPLAIN 中，避免预先分配执行器 hash 表", "evidence": {"same_day": true, "patch_ids": ["4a1cf728756c647334f001b492e3a124"], "statement_hash": "6bf62155f5b3356397e868e401d1d5d6199e4addaf7ca2fe79a8b7ebb693e14b"}, "url": "/docs/compare/?release=13.2#13.2-82cfab27199806cf", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "613217020774168de821a221f85c7056", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "在不带 ANALYZE 的 EXPLAIN 中，避免预先分配执行器 hash 表", "evidence": {"same_day": true, "patch_ids": ["4a1cf728756c647334f001b492e3a124"], "statement_hash": "6bf62155f5b3356397e868e401d1d5d6199e4addaf7ca2fe79a8b7ebb693e14b"}, "url": "/docs/compare/?release=12.6#12.6-9f2e24cef700b29a", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "9268e2d4c38c84ac444c39db96ad5274", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "在不带 ANALYZE 的 EXPLAIN 中，避免预先分配执行器 hash 表", "evidence": {"same_day": true, "patch_ids": ["4a1cf728756c647334f001b492e3a124"], "statement_hash": "6bf62155f5b3356397e868e401d1d5d6199e4addaf7ca2fe79a8b7ebb693e14b"}, "url": "/docs/compare/?release=11.11#11.11-9f48e8cde1d885ff", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "2179731eec94fc15c1d8b1ddc8c9f578", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "在不带 ANALYZE 的 EXPLAIN 中，避免预先分配执行器 hash 表", "evidence": {"same_day": true, "patch_ids": ["4a1cf728756c647334f001b492e3a124"], "statement_hash": "6bf62155f5b3356397e868e401d1d5d6199e4addaf7ca2fe79a8b7ebb693e14b"}, "url": "/docs/compare/?release=10.16#10.16-9f48e8cde1d885ff", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "d27d3b5f08c4411d7aebdd0545cecbf3", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "避免不带 ANALYZE 的 EXPLAIN 预先分配执行器哈希表", "evidence": {"same_day": true, "patch_ids": ["4a1cf728756c647334f001b492e3a124"], "statement_hash": "6bf62155f5b3356397e868e401d1d5d6199e4addaf7ca2fe79a8b7ebb693e14b"}, "url": "/docs/compare/?release=9.5.25#9.5.25-6f7d4b6f6c58285f", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-275abb16981ff38f", "cves": [], "html": "<p>修复 <code>LISTEN</code>/<code>NOTIFY</code> 队列处理中新近引入的竞态条件（Tom Lane）</p>\n<p>新监听的后端可能试图读取正在被截断的 SLRU 页，可能导致错误。</p>\n<p>队列尾指针可能被设置为一个不等于任何后端队列位置的值，导致队列截断逻辑被有效禁用。继续使用 <code>NOTIFY</code> 随后会导致队列填满警告，最终在服务器重启之前无法再发送任何通知。</p>", "text": "修复 LISTEN/NOTIFY 队列处理中新近引入的竞态条件（Tom Lane） 新监听的后端可能试图读取正在被截断的 SLRU 页，可能导致错误。 队列尾指针可能被设置为一个不等于任何后端队列位置的值，导致队列截断逻辑被有效禁用。继续使用 NOTIFY 随后会导致队列填满警告，最终在服务器重启之前无法再发送任何通知。", "title": "修复 LISTEN/NOTIFY 队列处理中新近引入的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "f8c115b0b7d1478414e6e462bfe38411a65beff442ae4adc4d20ab3622b9da24", "section_path": ["变更"], "commit_groups": [["40f2fbe71", "60d6c7143", "8a4069766", "9c83b54a9", "cbc7a7a10", "f5de090cc", "f6324bbbe"]], "identity_text": "Fix recently-introduced race conditions in LISTEN/NOTIFY queue handling (Tom Lane) A newly-listening backend could attempt to read SLRU pages that were in process of being truncated, possibly causing an error. The queue tail pointer could become set to a value that's not equal to the queue position of any backend, resulting in effective disabling of the queue truncation logic. Continued use of NOTIFY then led to queue-fill warnings, and eventually to inability to send any more notifies until the server is restarted.", "commit_aliases": ["40f2fbe71", "60d6c7143", "8a4069766", "9c83b54a9", "cbc7a7a10", "f5de090cc", "f6324bbbe"], "source_commits": ["8a4069766"], "source_entry_id": "9.6.21/changes/014", "db_id": "7440d30cb4ded44aef75709a7d425fe4", "patch_ids": ["ea98013d52c6be2ab647d4476de3a52f"], "statement_hash": "aef50eaf19ec84d11a1b8fcc54d19020bb098d8f07e2e15d8bcb78cc68ddd3f8", "relations": [{"rule": 2, "type": "equivalent", "target": "0bf73cc3e92e396b8b7b8ef47ad0ed94", "evidence": {"same_day": true, "patch_ids": ["ea98013d52c6be2ab647d4476de3a52f"], "statement_hash": "aef50eaf19ec84d11a1b8fcc54d19020bb098d8f07e2e15d8bcb78cc68ddd3f8"}}, {"rule": 2, "type": "equivalent", "target": "4f36e867669616cefd25a3591d90ffd3", "evidence": {"same_day": true, "patch_ids": ["ea98013d52c6be2ab647d4476de3a52f"], "statement_hash": "aef50eaf19ec84d11a1b8fcc54d19020bb098d8f07e2e15d8bcb78cc68ddd3f8"}}, {"rule": 2, "type": "equivalent", "target": "7f1b660f6cf2d7c9e7f41a8bc976dc8c", "evidence": {"same_day": true, "patch_ids": ["ea98013d52c6be2ab647d4476de3a52f"]}}, {"rule": 2, "type": "equivalent", "target": "8d4a739a104f6fcb2e552035812da17f", "evidence": {"same_day": true, "patch_ids": ["ea98013d52c6be2ab647d4476de3a52f"], "statement_hash": "aef50eaf19ec84d11a1b8fcc54d19020bb098d8f07e2e15d8bcb78cc68ddd3f8"}}, {"rule": 2, "type": "equivalent", "target": "9eac3ad779207a104ee19f411657cc23", "evidence": {"same_day": true, "patch_ids": ["ea98013d52c6be2ab647d4476de3a52f"], "statement_hash": "aef50eaf19ec84d11a1b8fcc54d19020bb098d8f07e2e15d8bcb78cc68ddd3f8"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7f1b660f6cf2d7c9e7f41a8bc976dc8c", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复最近在 LISTEN/NOTIFY 队列处理中引入的竞争条件", "evidence": {"same_day": true, "patch_ids": ["ea98013d52c6be2ab647d4476de3a52f"]}, "url": "/docs/compare/?release=13.2#13.2-8b2573ca20f9058f", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "4f36e867669616cefd25a3591d90ffd3", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复最近在 LISTEN/NOTIFY 队列处理中引入的竞争条件", "evidence": {"same_day": true, "patch_ids": ["ea98013d52c6be2ab647d4476de3a52f"], "statement_hash": "aef50eaf19ec84d11a1b8fcc54d19020bb098d8f07e2e15d8bcb78cc68ddd3f8"}, "url": "/docs/compare/?release=12.6#12.6-4318846d64653bfa", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "0bf73cc3e92e396b8b7b8ef47ad0ed94", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复最近在 LISTEN/NOTIFY 队列处理中引入的竞争条件", "evidence": {"same_day": true, "patch_ids": ["ea98013d52c6be2ab647d4476de3a52f"], "statement_hash": "aef50eaf19ec84d11a1b8fcc54d19020bb098d8f07e2e15d8bcb78cc68ddd3f8"}, "url": "/docs/compare/?release=11.11#11.11-8bcb47c812aa446e", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "9eac3ad779207a104ee19f411657cc23", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复最近在 LISTEN/NOTIFY 队列处理中引入的竞争条件", "evidence": {"same_day": true, "patch_ids": ["ea98013d52c6be2ab647d4476de3a52f"], "statement_hash": "aef50eaf19ec84d11a1b8fcc54d19020bb098d8f07e2e15d8bcb78cc68ddd3f8"}, "url": "/docs/compare/?release=10.16#10.16-8bcb47c812aa446e", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "8d4a739a104f6fcb2e552035812da17f", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复 LISTEN/NOTIFY 队列处理中新近引入的竞态条件", "evidence": {"same_day": true, "patch_ids": ["ea98013d52c6be2ab647d4476de3a52f"], "statement_hash": "aef50eaf19ec84d11a1b8fcc54d19020bb098d8f07e2e15d8bcb78cc68ddd3f8"}, "url": "/docs/compare/?release=9.5.25#9.5.25-275abb16981ff38f", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-c426e60c3567d25e", "cves": [], "html": "<p>允许 <code>jsonb</code> 连接操作符处理 JSON 数据类型的所有组合（Tom Lane）</p>\n<p>我们可以连接两个 JSON 对象或两个 JSON 数组。其他情况通过把非数组输入包装成单元素数组再执行数组连接来处理。此前，某些输入组合遵循此规则，另一些则任意地抛出错误。</p>", "text": "允许 jsonb 连接操作符处理 JSON 数据类型的所有组合（Tom Lane） 我们可以连接两个 JSON 对象或两个 JSON 数组。其他情况通过把非数组输入包装成单元素数组再执行数组连接来处理。此前，某些输入组合遵循此规则，另一些则任意地抛出错误。", "title": "允许 jsonb 连接操作符处理 JSON 数据类型的所有组合", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "dcb4f4c66568eef7d36c26f5100c657a7d342bebadb3b311656c4fec9c6a3905", "section_path": ["变更"], "commit_groups": [["1d5f3f976", "38bef9e43", "38d30a14b", "542248f9d", "75c8ef5ae", "edcdbc44e", "ff5d5611c"]], "identity_text": "Allow the jsonb concatenation operator to handle all combinations of JSON data types (Tom Lane) We can concatenate two JSON objects or two JSON arrays. Handle other cases by wrapping non-array inputs in one-element arrays, then performing an array concatenation. Previously, some combinations of inputs followed this rule but others arbitrarily threw an error.", "commit_aliases": ["1d5f3f976", "38bef9e43", "38d30a14b", "542248f9d", "75c8ef5ae", "edcdbc44e", "ff5d5611c"], "source_commits": ["1d5f3f976"], "source_entry_id": "9.6.21/changes/015", "db_id": "7f671eec85cdff6361bb278d507f2096", "patch_ids": ["5ed799927271d5a1dcd801fb141eeaf0"], "statement_hash": "403ddc45ba47e71aa239099a08f7217e5f8adfb12b59c6860d4d562f6053dd5d", "relations": [{"rule": 2, "type": "equivalent", "target": "0c2bc94740c986e4ff61424643df510c", "evidence": {"same_day": true, "patch_ids": ["5ed799927271d5a1dcd801fb141eeaf0"], "statement_hash": "403ddc45ba47e71aa239099a08f7217e5f8adfb12b59c6860d4d562f6053dd5d"}}, {"rule": 2, "type": "equivalent", "target": "87044083e958310e18dffe61a245164f", "evidence": {"same_day": true, "patch_ids": ["5ed799927271d5a1dcd801fb141eeaf0"], "statement_hash": "403ddc45ba47e71aa239099a08f7217e5f8adfb12b59c6860d4d562f6053dd5d"}}, {"rule": 2, "type": "equivalent", "target": "93d7b6ccd36ac19c542c07094682ad7b", "evidence": {"same_day": true, "patch_ids": ["5ed799927271d5a1dcd801fb141eeaf0"], "statement_hash": "403ddc45ba47e71aa239099a08f7217e5f8adfb12b59c6860d4d562f6053dd5d"}}, {"rule": 2, "type": "equivalent", "target": "b6c0b49e9ab8978617cd32bb25db2d9a", "evidence": {"same_day": true, "patch_ids": ["5ed799927271d5a1dcd801fb141eeaf0"], "statement_hash": "403ddc45ba47e71aa239099a08f7217e5f8adfb12b59c6860d4d562f6053dd5d"}}, {"rule": 2, "type": "equivalent", "target": "b6ecd32d870e73bdcc62baa1fb18206e", "evidence": {"same_day": true, "patch_ids": ["5ed799927271d5a1dcd801fb141eeaf0"], "statement_hash": "403ddc45ba47e71aa239099a08f7217e5f8adfb12b59c6860d4d562f6053dd5d"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "93d7b6ccd36ac19c542c07094682ad7b", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "允许 jsonb 连接操作符处理所有 JSON 数据类型组合", "evidence": {"same_day": true, "patch_ids": ["5ed799927271d5a1dcd801fb141eeaf0"], "statement_hash": "403ddc45ba47e71aa239099a08f7217e5f8adfb12b59c6860d4d562f6053dd5d"}, "url": "/docs/compare/?release=13.2#13.2-e3de59e9f6540723", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "87044083e958310e18dffe61a245164f", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "允许 jsonb 连接操作符处理所有 JSON 数据类型组合", "evidence": {"same_day": true, "patch_ids": ["5ed799927271d5a1dcd801fb141eeaf0"], "statement_hash": "403ddc45ba47e71aa239099a08f7217e5f8adfb12b59c6860d4d562f6053dd5d"}, "url": "/docs/compare/?release=12.6#12.6-5fcd429eb0b12445", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "0c2bc94740c986e4ff61424643df510c", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "允许 jsonb 连接操作符处理所有 JSON 数据类型组合", "evidence": {"same_day": true, "patch_ids": ["5ed799927271d5a1dcd801fb141eeaf0"], "statement_hash": "403ddc45ba47e71aa239099a08f7217e5f8adfb12b59c6860d4d562f6053dd5d"}, "url": "/docs/compare/?release=11.11#11.11-c23fbc12ac3d63aa", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "b6ecd32d870e73bdcc62baa1fb18206e", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "允许 jsonb 连接操作符处理所有 JSON 数据类型组合", "evidence": {"same_day": true, "patch_ids": ["5ed799927271d5a1dcd801fb141eeaf0"], "statement_hash": "403ddc45ba47e71aa239099a08f7217e5f8adfb12b59c6860d4d562f6053dd5d"}, "url": "/docs/compare/?release=10.16#10.16-c23fbc12ac3d63aa", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "b6c0b49e9ab8978617cd32bb25db2d9a", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "允许 jsonb 连接操作符处理 JSON 数据类型的所有组合", "evidence": {"same_day": true, "patch_ids": ["5ed799927271d5a1dcd801fb141eeaf0"], "statement_hash": "403ddc45ba47e71aa239099a08f7217e5f8adfb12b59c6860d4d562f6053dd5d"}, "url": "/docs/compare/?release=9.5.25#9.5.25-c426e60c3567d25e", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-74da9d2a00b46289", "cves": [], "html": "<p>修复 BRE 模式正则表达式中解析 <code>*</code> 量词时使用未初始化值的问题（Tom Lane）</p>\n<p>这个错误可能导致量词表现为非贪婪，即表现得像完整正则表达式中的 <code>*?</code> 量词那样。</p>", "text": "修复 BRE 模式正则表达式中解析 * 量词时使用未初始化值的问题（Tom Lane） 这个错误可能导致量词表现为非贪婪，即表现得像完整正则表达式中的 *? 量词那样。", "title": "修复 BRE 模式正则表达式中解析 * 量词时使用未初始化值的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "860162dadd3cc9fba0d3d0ce03a6be081ab0cac1cde24cf2f7e896399c7261bd", "section_path": ["变更"], "commit_groups": [["085a1cfb3", "0c23f30fa", "2d540ac5f", "49c928c0c", "769908811", "8354371d0", "afcc8772e"]], "identity_text": "Fix use of uninitialized value while parsing a * quantifier in a BRE-mode regular expression (Tom Lane) This error could cause the quantifier to act non-greedy, that is behave like a *? quantifier would do in full regular expressions.", "commit_aliases": ["085a1cfb3", "0c23f30fa", "2d540ac5f", "49c928c0c", "769908811", "8354371d0", "afcc8772e"], "source_commits": ["085a1cfb3"], "source_entry_id": "9.6.21/changes/016", "db_id": "74002289ed03d453966dc62f078aaba8", "patch_ids": ["f24be14205c106551bb667154aa08f09"], "statement_hash": "3c9a5e1d9e972be54e82c8213c9cf18a49366243530e0b0fcb2323a0374f2cfb", "relations": [{"rule": 2, "type": "equivalent", "target": "99795ae89a9f2f0a886fb74a7ccfee0e", "evidence": {"same_day": true, "patch_ids": ["f24be14205c106551bb667154aa08f09"], "statement_hash": "3c9a5e1d9e972be54e82c8213c9cf18a49366243530e0b0fcb2323a0374f2cfb"}}, {"rule": 2, "type": "equivalent", "target": "a0afd625230c61a1d9194e23022131a1", "evidence": {"same_day": true, "patch_ids": ["f24be14205c106551bb667154aa08f09"], "statement_hash": "3c9a5e1d9e972be54e82c8213c9cf18a49366243530e0b0fcb2323a0374f2cfb"}}, {"rule": 2, "type": "equivalent", "target": "ccb52c73d830b6a15208b6b332ff4c5b", "evidence": {"same_day": true, "patch_ids": ["f24be14205c106551bb667154aa08f09"], "statement_hash": "3c9a5e1d9e972be54e82c8213c9cf18a49366243530e0b0fcb2323a0374f2cfb"}}, {"rule": 2, "type": "equivalent", "target": "ce360f5d545a6cb90bf66bffaf9c2c45", "evidence": {"same_day": true, "patch_ids": ["f24be14205c106551bb667154aa08f09"], "statement_hash": "3c9a5e1d9e972be54e82c8213c9cf18a49366243530e0b0fcb2323a0374f2cfb"}}, {"rule": 2, "type": "equivalent", "target": "e2f8fb6a9a20f77c454d599a131ff712", "evidence": {"same_day": true, "patch_ids": ["f24be14205c106551bb667154aa08f09"], "statement_hash": "3c9a5e1d9e972be54e82c8213c9cf18a49366243530e0b0fcb2323a0374f2cfb"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e2f8fb6a9a20f77c454d599a131ff712", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复解析 BRE 模式正则表达式中的 * 量词时使用未初始化值的问题", "evidence": {"same_day": true, "patch_ids": ["f24be14205c106551bb667154aa08f09"], "statement_hash": "3c9a5e1d9e972be54e82c8213c9cf18a49366243530e0b0fcb2323a0374f2cfb"}, "url": "/docs/compare/?release=13.2#13.2-3b1628b56821d4af", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "ccb52c73d830b6a15208b6b332ff4c5b", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复解析 BRE 模式正则表达式中的 * 量词时使用未初始化值的问题", "evidence": {"same_day": true, "patch_ids": ["f24be14205c106551bb667154aa08f09"], "statement_hash": "3c9a5e1d9e972be54e82c8213c9cf18a49366243530e0b0fcb2323a0374f2cfb"}, "url": "/docs/compare/?release=12.6#12.6-d58432140f841538", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "a0afd625230c61a1d9194e23022131a1", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复解析 BRE 模式正则表达式中的 * 量词时使用未初始化值的问题", "evidence": {"same_day": true, "patch_ids": ["f24be14205c106551bb667154aa08f09"], "statement_hash": "3c9a5e1d9e972be54e82c8213c9cf18a49366243530e0b0fcb2323a0374f2cfb"}, "url": "/docs/compare/?release=11.11#11.11-aa149163810a31e9", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "99795ae89a9f2f0a886fb74a7ccfee0e", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复解析 BRE 模式正则表达式中的 * 量词时使用未初始化值的问题", "evidence": {"same_day": true, "patch_ids": ["f24be14205c106551bb667154aa08f09"], "statement_hash": "3c9a5e1d9e972be54e82c8213c9cf18a49366243530e0b0fcb2323a0374f2cfb"}, "url": "/docs/compare/?release=10.16#10.16-aa149163810a31e9", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "ce360f5d545a6cb90bf66bffaf9c2c45", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复 BRE 模式正则表达式中解析 * 量词时使用未初始化值的问题", "evidence": {"same_day": true, "patch_ids": ["f24be14205c106551bb667154aa08f09"], "statement_hash": "3c9a5e1d9e972be54e82c8213c9cf18a49366243530e0b0fcb2323a0374f2cfb"}, "url": "/docs/compare/?release=9.5.25#9.5.25-74da9d2a00b46289", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-b5b8817157428b58", "cves": [], "html": "<p>修复 numeric <code>power()</code> 指数恰为 <code>INT_MIN</code>（-2147483648）的情况（Dean Rasheed）</p>\n<p>此前会产生没有任何有效数字的结果。</p>", "text": "修复 numeric power() 指数恰为 INT_MIN（-2147483648）的情况（Dean Rasheed） 此前会产生没有任何有效数字的结果。", "title": "修复 numeric power() 指数恰为 INT_MIN（-2147483648）的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "59ae59e980dece00fede2ae002ddcc700e72273249e6c461d9de1eb52dba9c40", "section_path": ["变更"], "commit_groups": [["0097193b1", "5777b6ea2", "740780a61", "ab042d010", "f0b9bada5", "fead67c24"], ["160a9e425", "258b77005", "275b190b3", "9a299dff2", "bc43b7c2c", "e15c384d7"]], "identity_text": "Fix numeric power() for the case where the exponent is exactly INT_MIN (-2147483648) (Dean Rasheed) Previously, a result with no significant digits was produced.", "commit_aliases": ["0097193b1", "160a9e425", "258b77005", "275b190b3", "5777b6ea2", "740780a61", "9a299dff2", "ab042d010", "bc43b7c2c", "e15c384d7", "f0b9bada5", "fead67c24"], "source_commits": ["9a299dff2", "f0b9bada5"], "source_entry_id": "9.6.21/changes/017", "db_id": "5e89f04f10b69e2b238fd3dfd74ad14e", "patch_ids": ["125709d508d3d5036d8c334168321c69", "f908550d1714b44d15d1881ae34843ab"], "statement_hash": "f15243a16f9c7a505a28136b6eca2480248a3843a3724cdd55f94daa6ec50db7", "relations": [{"rule": 2, "type": "equivalent", "target": "179170dc05245b90ed197c554d114bbe", "evidence": {"same_day": true, "patch_ids": ["125709d508d3d5036d8c334168321c69", "f908550d1714b44d15d1881ae34843ab"], "statement_hash": "f15243a16f9c7a505a28136b6eca2480248a3843a3724cdd55f94daa6ec50db7"}}, {"rule": 2, "type": "equivalent", "target": "4126106c6893a65f3ca17d3c82a5e2b8", "evidence": {"same_day": true, "patch_ids": ["125709d508d3d5036d8c334168321c69", "f908550d1714b44d15d1881ae34843ab"], "statement_hash": "f15243a16f9c7a505a28136b6eca2480248a3843a3724cdd55f94daa6ec50db7"}}, {"rule": 2, "type": "equivalent", "target": "abfa8a6eff35112bbc03ff90d6b33906", "evidence": {"same_day": true, "patch_ids": ["125709d508d3d5036d8c334168321c69", "f908550d1714b44d15d1881ae34843ab"], "statement_hash": "f15243a16f9c7a505a28136b6eca2480248a3843a3724cdd55f94daa6ec50db7"}}, {"rule": 2, "type": "equivalent", "target": "c361685144e7623aadb747f0957e72ce", "evidence": {"same_day": true, "patch_ids": ["125709d508d3d5036d8c334168321c69", "f908550d1714b44d15d1881ae34843ab"], "statement_hash": "f15243a16f9c7a505a28136b6eca2480248a3843a3724cdd55f94daa6ec50db7"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "abfa8a6eff35112bbc03ff90d6b33906", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复 numeric power() 在指数恰好为 INT_MIN（-2147483648）时的行为", "evidence": {"same_day": true, "patch_ids": ["125709d508d3d5036d8c334168321c69", "f908550d1714b44d15d1881ae34843ab"], "statement_hash": "f15243a16f9c7a505a28136b6eca2480248a3843a3724cdd55f94daa6ec50db7"}, "url": "/docs/compare/?release=13.2#13.2-01ec06c94959878b", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "c361685144e7623aadb747f0957e72ce", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复 numeric power() 在指数恰好为 INT_MIN（-2147483648）时的行为", "evidence": {"same_day": true, "patch_ids": ["125709d508d3d5036d8c334168321c69", "f908550d1714b44d15d1881ae34843ab"], "statement_hash": "f15243a16f9c7a505a28136b6eca2480248a3843a3724cdd55f94daa6ec50db7"}, "url": "/docs/compare/?release=12.6#12.6-a0c631e509e87510", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "4126106c6893a65f3ca17d3c82a5e2b8", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复 numeric power() 在指数恰好为 INT_MIN（-2147483648）时的行为", "evidence": {"same_day": true, "patch_ids": ["125709d508d3d5036d8c334168321c69", "f908550d1714b44d15d1881ae34843ab"], "statement_hash": "f15243a16f9c7a505a28136b6eca2480248a3843a3724cdd55f94daa6ec50db7"}, "url": "/docs/compare/?release=11.11#11.11-853d48d3302ee7e2", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "179170dc05245b90ed197c554d114bbe", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复 numeric power() 在指数恰好为 INT_MIN（-2147483648）时的行为", "evidence": {"same_day": true, "patch_ids": ["125709d508d3d5036d8c334168321c69", "f908550d1714b44d15d1881ae34843ab"], "statement_hash": "f15243a16f9c7a505a28136b6eca2480248a3843a3724cdd55f94daa6ec50db7"}, "url": "/docs/compare/?release=10.16#10.16-853d48d3302ee7e2", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}]}, {"id": "9.6.21-2b67fa6478ab6421", "cves": [], "html": "<p>防止因错误检测 SLRU 日志回卷点而可能发生的的数据丢失（Noah Misch）</p>\n<p>回卷点通常落在页中间，必须把它舍入到页边界，而这一步没有正确完成。除非安装已经到达距 SLRU 溢出不到一页的位置（在正常运行的系统中不太可能），否则不会出现问题。如果真的发生，之后会表现为 <span>“<span>apparent wraparound</span>”</span> 或 <span>“<span>could not access status of transaction</span>”</span> 错误。</p>", "text": "防止因错误检测 SLRU 日志回卷点而可能发生的的数据丢失（Noah Misch） 回卷点通常落在页中间，必须把它舍入到页边界，而这一步没有正确完成。除非安装已经到达距 SLRU 溢出不到一页的位置（在正常运行的系统中不太可能），否则不会出现问题。如果真的发生，之后会表现为 “apparent wraparound” 或 “could not access status of transaction” 错误。", "title": "防止因错误检测 SLRU 日志回卷点而可能发生的的数据丢失", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "622ae35637925cfd8894f6e7782c3fead9be1f05ee5efbe8f45faf069e46033b", "section_path": ["变更"], "commit_groups": [["1a31d8c52", "66087f7e9", "677f6cb1d", "6db992833", "6eb3fc7fc", "9afba9b0e", "c424c75f5"]], "identity_text": "Prevent possible data loss from incorrect detection of the wraparound point of an SLRU log (Noah Misch) The wraparound point typically falls in the middle of a page, which must be rounded off to a page boundary, and that was not done correctly. No issue could arise unless an installation had gotten to within one page of SLRU overflow, which is unlikely in a properly-functioning system. If this did happen, it would manifest in later apparent wraparound or could not access status of transaction errors.", "commit_aliases": ["1a31d8c52", "66087f7e9", "677f6cb1d", "6db992833", "6eb3fc7fc", "9afba9b0e", "c424c75f5"], "source_commits": ["1a31d8c52"], "source_entry_id": "9.6.21/changes/018", "db_id": "d78826c6d098cf8fdd1a0a4ed2e9b95d", "patch_ids": ["43edf42b8d0af7448c1134c6e0a51932"], "statement_hash": "74815865e964e4a540aa47551ac5f1743036a88d734402c5d1dbbc0f631dda41", "relations": [{"rule": 2, "type": "equivalent", "target": "15976083a26505a6d47ec9965e23b80b", "evidence": {"same_day": true, "patch_ids": ["43edf42b8d0af7448c1134c6e0a51932"], "statement_hash": "74815865e964e4a540aa47551ac5f1743036a88d734402c5d1dbbc0f631dda41"}}, {"rule": 2, "type": "equivalent", "target": "3e20cf24a2c485ff94decaa8471617f6", "evidence": {"same_day": true, "patch_ids": ["43edf42b8d0af7448c1134c6e0a51932"], "statement_hash": "74815865e964e4a540aa47551ac5f1743036a88d734402c5d1dbbc0f631dda41"}}, {"rule": 2, "type": "equivalent", "target": "8a91acd484f811761b08816ea4a34663", "evidence": {"same_day": true, "patch_ids": ["43edf42b8d0af7448c1134c6e0a51932"], "statement_hash": "74815865e964e4a540aa47551ac5f1743036a88d734402c5d1dbbc0f631dda41"}}, {"rule": 2, "type": "equivalent", "target": "9d6fefefda4424ff256117d078fb3a83", "evidence": {"same_day": true, "patch_ids": ["43edf42b8d0af7448c1134c6e0a51932"], "statement_hash": "74815865e964e4a540aa47551ac5f1743036a88d734402c5d1dbbc0f631dda41"}}, {"rule": 2, "type": "equivalent", "target": "a8dcf351c2c3ebb25cf0c94c4cdccd8b", "evidence": {"same_day": true, "patch_ids": ["43edf42b8d0af7448c1134c6e0a51932"], "statement_hash": "74815865e964e4a540aa47551ac5f1743036a88d734402c5d1dbbc0f631dda41"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d6fefefda4424ff256117d078fb3a83", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "防止因错误检测 SLRU 日志的回卷点而可能造成的数据丢失", "evidence": {"same_day": true, "patch_ids": ["43edf42b8d0af7448c1134c6e0a51932"], "statement_hash": "74815865e964e4a540aa47551ac5f1743036a88d734402c5d1dbbc0f631dda41"}, "url": "/docs/compare/?release=13.2#13.2-2eba45e485ce170f", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "15976083a26505a6d47ec9965e23b80b", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "防止因错误检测 SLRU 日志的回卷点而可能造成的数据丢失", "evidence": {"same_day": true, "patch_ids": ["43edf42b8d0af7448c1134c6e0a51932"], "statement_hash": "74815865e964e4a540aa47551ac5f1743036a88d734402c5d1dbbc0f631dda41"}, "url": "/docs/compare/?release=12.6#12.6-b019c5b0cb3344a6", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "3e20cf24a2c485ff94decaa8471617f6", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "防止因错误检测 SLRU 日志的回卷点而可能造成的数据丢失", "evidence": {"same_day": true, "patch_ids": ["43edf42b8d0af7448c1134c6e0a51932"], "statement_hash": "74815865e964e4a540aa47551ac5f1743036a88d734402c5d1dbbc0f631dda41"}, "url": "/docs/compare/?release=11.11#11.11-fcd856aa9415f57e", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "8a91acd484f811761b08816ea4a34663", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "防止因错误检测 SLRU 日志的回卷点而可能造成的数据丢失", "evidence": {"same_day": true, "patch_ids": ["43edf42b8d0af7448c1134c6e0a51932"], "statement_hash": "74815865e964e4a540aa47551ac5f1743036a88d734402c5d1dbbc0f631dda41"}, "url": "/docs/compare/?release=10.16#10.16-fcd856aa9415f57e", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "a8dcf351c2c3ebb25cf0c94c4cdccd8b", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "防止因错误检测 SLRU 日志回卷点而可能发生的的数据丢失", "evidence": {"same_day": true, "patch_ids": ["43edf42b8d0af7448c1134c6e0a51932"], "statement_hash": "74815865e964e4a540aa47551ac5f1743036a88d734402c5d1dbbc0f631dda41"}, "url": "/docs/compare/?release=9.5.25#9.5.25-2b67fa6478ab6421", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-f9c9dac274a4b5c8", "cves": [], "html": "<p>修复 walsender 进程在为逻辑解码发送新快照期间的内存泄漏（Amit Kapila）</p>", "text": "修复 walsender 进程在为逻辑解码发送新快照期间的内存泄漏（Amit Kapila）", "title": "修复 walsender 进程在为逻辑解码发送新快照期间的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "d2705da4eae681dda4108ea47f027f84d36eba682fc613b8ad59eee5a2f4d8f6", "section_path": ["变更"], "commit_groups": [["0685c5c1b", "0b2ae3c92", "4bccceaa9", "636b6f99c", "7adc408f4", "ee1b38f65", "f2b268ee0"]], "identity_text": "Fix memory leak in walsender processes while sending new snapshots for logical decoding (Amit Kapila)", "commit_aliases": ["0685c5c1b", "0b2ae3c92", "4bccceaa9", "636b6f99c", "7adc408f4", "ee1b38f65", "f2b268ee0"], "source_commits": ["f2b268ee0"], "source_entry_id": "9.6.21/changes/019", "db_id": "248168c9b873abc8f01b193d4ea3db8b", "patch_ids": ["5a1af854c74760936661b82bc4b40315"], "statement_hash": "0ba2c7d74cf0adba0015be64d2a810dbd7a648f4709426abca4f90e2a93d379b", "relations": [{"rule": 2, "type": "equivalent", "target": "223acd474f4edb99eabbb5ddb2c1de17", "evidence": {"same_day": true, "patch_ids": ["5a1af854c74760936661b82bc4b40315"], "statement_hash": "0ba2c7d74cf0adba0015be64d2a810dbd7a648f4709426abca4f90e2a93d379b"}}, {"rule": 2, "type": "equivalent", "target": "992b0a7048f1421bf7e451c45670a527", "evidence": {"same_day": true, "patch_ids": ["5a1af854c74760936661b82bc4b40315"], "statement_hash": "0ba2c7d74cf0adba0015be64d2a810dbd7a648f4709426abca4f90e2a93d379b"}}, {"rule": 2, "type": "equivalent", "target": "a6aa39364fd044803679df8a8b257492", "evidence": {"same_day": true, "patch_ids": ["5a1af854c74760936661b82bc4b40315"], "statement_hash": "0ba2c7d74cf0adba0015be64d2a810dbd7a648f4709426abca4f90e2a93d379b"}}, {"rule": 2, "type": "equivalent", "target": "ae92861fd5ea74b7c9fbe52d83cb6080", "evidence": {"same_day": true, "patch_ids": ["5a1af854c74760936661b82bc4b40315"], "statement_hash": "0ba2c7d74cf0adba0015be64d2a810dbd7a648f4709426abca4f90e2a93d379b"}}, {"rule": 2, "type": "equivalent", "target": "c9d476cdfa617702645106e5d7708479", "evidence": {"same_day": true, "patch_ids": ["5a1af854c74760936661b82bc4b40315"], "statement_hash": "0ba2c7d74cf0adba0015be64d2a810dbd7a648f4709426abca4f90e2a93d379b"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "992b0a7048f1421bf7e451c45670a527", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复 WAL 发送进程进程为逻辑解码发送新快照时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["5a1af854c74760936661b82bc4b40315"], "statement_hash": "0ba2c7d74cf0adba0015be64d2a810dbd7a648f4709426abca4f90e2a93d379b"}, "url": "/docs/compare/?release=13.2#13.2-56ad1633a063bb4f", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "223acd474f4edb99eabbb5ddb2c1de17", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复 WAL 发送进程进程为逻辑解码发送新快照时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["5a1af854c74760936661b82bc4b40315"], "statement_hash": "0ba2c7d74cf0adba0015be64d2a810dbd7a648f4709426abca4f90e2a93d379b"}, "url": "/docs/compare/?release=12.6#12.6-8e850d071919e267", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "a6aa39364fd044803679df8a8b257492", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复 WAL 发送进程进程为逻辑解码发送新快照时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["5a1af854c74760936661b82bc4b40315"], "statement_hash": "0ba2c7d74cf0adba0015be64d2a810dbd7a648f4709426abca4f90e2a93d379b"}, "url": "/docs/compare/?release=11.11#11.11-fb0ceb94d9c75cbf", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "ae92861fd5ea74b7c9fbe52d83cb6080", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复 WAL 发送进程进程为逻辑解码发送新快照时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["5a1af854c74760936661b82bc4b40315"], "statement_hash": "0ba2c7d74cf0adba0015be64d2a810dbd7a648f4709426abca4f90e2a93d379b"}, "url": "/docs/compare/?release=10.16#10.16-fb0ceb94d9c75cbf", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "c9d476cdfa617702645106e5d7708479", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复 walsender 进程在为逻辑解码发送新快照期间的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["5a1af854c74760936661b82bc4b40315"], "statement_hash": "0ba2c7d74cf0adba0015be64d2a810dbd7a648f4709426abca4f90e2a93d379b"}, "url": "/docs/compare/?release=9.5.25#9.5.25-f9c9dac274a4b5c8", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-fc861b165d7e565a", "cves": [], "html": "<p>修复 walsender 在终止复制之后接受其他命令的问题（Jeff Davis）</p>", "text": "修复 walsender 在终止复制之后接受其他命令的问题（Jeff Davis）", "title": "修复 walsender 在终止复制之后接受其他命令的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "63ee2da57e0ef0c6b111f6125ef4078b7ccfe6cc4fd4fd4cfb7317d480a87a58", "section_path": ["变更"], "commit_groups": [["133a0906d", "4ee058a3b", "706d84fe7", "a58db3aa1", "ac7df6e8f", "f10da1e9c", "fde5f130c"]], "identity_text": "Fix walsender to accept additional commands after terminating replication (Jeff Davis)", "commit_aliases": ["133a0906d", "4ee058a3b", "706d84fe7", "a58db3aa1", "ac7df6e8f", "f10da1e9c", "fde5f130c"], "source_commits": ["f10da1e9c"], "source_entry_id": "9.6.21/changes/020", "db_id": "48424e1920bdbaf65bcbaa1ff3f5926f", "patch_ids": ["114cacbd887f524b6efa39b9f1d67e16"], "statement_hash": "01c3cb4c26a2db836e3f6f75e2c3671456523c119069cb514345dd36e0043832", "relations": [{"rule": 2, "type": "equivalent", "target": "1bb31949c4d46ef10ecabc97100f5a93", "evidence": {"same_day": true, "patch_ids": ["114cacbd887f524b6efa39b9f1d67e16"], "statement_hash": "01c3cb4c26a2db836e3f6f75e2c3671456523c119069cb514345dd36e0043832"}}, {"rule": 2, "type": "equivalent", "target": "240031eb7995d8d60b8259f6c86980ea", "evidence": {"same_day": true, "patch_ids": ["114cacbd887f524b6efa39b9f1d67e16"], "statement_hash": "01c3cb4c26a2db836e3f6f75e2c3671456523c119069cb514345dd36e0043832"}}, {"rule": 2, "type": "equivalent", "target": "35f7f3f04c0302d296b43b7ec1d07903", "evidence": {"same_day": true, "patch_ids": ["114cacbd887f524b6efa39b9f1d67e16"], "statement_hash": "01c3cb4c26a2db836e3f6f75e2c3671456523c119069cb514345dd36e0043832"}}, {"rule": 2, "type": "equivalent", "target": "6ccf02ea61116b34c5472f0412965cd5", "evidence": {"same_day": true, "patch_ids": ["114cacbd887f524b6efa39b9f1d67e16"], "statement_hash": "01c3cb4c26a2db836e3f6f75e2c3671456523c119069cb514345dd36e0043832"}}, {"rule": 2, "type": "equivalent", "target": "e3632533a1b490faf0a6e7adf0c7bbe5", "evidence": {"same_day": true, "patch_ids": ["114cacbd887f524b6efa39b9f1d67e16"], "statement_hash": "01c3cb4c26a2db836e3f6f75e2c3671456523c119069cb514345dd36e0043832"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "240031eb7995d8d60b8259f6c86980ea", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复 WAL 发送进程，使其在终止复制后接受其他命令", "evidence": {"same_day": true, "patch_ids": ["114cacbd887f524b6efa39b9f1d67e16"], "statement_hash": "01c3cb4c26a2db836e3f6f75e2c3671456523c119069cb514345dd36e0043832"}, "url": "/docs/compare/?release=13.2#13.2-0b79d4c96da2de06", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "35f7f3f04c0302d296b43b7ec1d07903", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复 WAL 发送进程，使其在终止复制后接受其他命令", "evidence": {"same_day": true, "patch_ids": ["114cacbd887f524b6efa39b9f1d67e16"], "statement_hash": "01c3cb4c26a2db836e3f6f75e2c3671456523c119069cb514345dd36e0043832"}, "url": "/docs/compare/?release=12.6#12.6-3c6889ebbbc7cca0", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "6ccf02ea61116b34c5472f0412965cd5", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复 WAL 发送进程，使其在终止复制后接受其他命令", "evidence": {"same_day": true, "patch_ids": ["114cacbd887f524b6efa39b9f1d67e16"], "statement_hash": "01c3cb4c26a2db836e3f6f75e2c3671456523c119069cb514345dd36e0043832"}, "url": "/docs/compare/?release=11.11#11.11-51aa84460a9a3edb", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "1bb31949c4d46ef10ecabc97100f5a93", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复 WAL 发送进程，使其在终止复制后接受其他命令", "evidence": {"same_day": true, "patch_ids": ["114cacbd887f524b6efa39b9f1d67e16"], "statement_hash": "01c3cb4c26a2db836e3f6f75e2c3671456523c119069cb514345dd36e0043832"}, "url": "/docs/compare/?release=10.16#10.16-51aa84460a9a3edb", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "e3632533a1b490faf0a6e7adf0c7bbe5", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复 walsender 在终止复制之后接受其他命令的问题", "evidence": {"same_day": true, "patch_ids": ["114cacbd887f524b6efa39b9f1d67e16"], "statement_hash": "01c3cb4c26a2db836e3f6f75e2c3671456523c119069cb514345dd36e0043832"}, "url": "/docs/compare/?release=9.5.25#9.5.25-fc861b165d7e565a", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-6fdd3da8a76098a4", "cves": [], "html": "<p>确保检测热备后端与启动（WAL 应用）进程之间的死锁（Fujii Masao）</p>\n<p>启动进程不运行死锁检测代码，因此在启动进程最后一个加入循环等待的情况下，死锁可能永远不被识别。</p>", "text": "确保检测热备后端与启动（WAL 应用）进程之间的死锁（Fujii Masao） 启动进程不运行死锁检测代码，因此在启动进程最后一个加入循环等待的情况下，死锁可能永远不被识别。", "title": "确保检测热备后端与启动（WAL 应用）进程之间的死锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "dcca15cada72e5444623bbe6f8692ec2e4f69d1fd66b4598397da8a11c2f7231", "section_path": ["变更"], "commit_groups": [["0307b98d8", "0f8977b3f", "4c20e78f1", "8900b5a9d", "9f540f840", "e83771880"]], "identity_text": "Ensure detection of deadlocks between hot standby backends and the startup (WAL-application) process (Fujii Masao) The startup process did not run the deadlock detection code, so that in situations where the startup process is last to join a circular wait situation, the deadlock might never be recognized.", "commit_aliases": ["0307b98d8", "0f8977b3f", "4c20e78f1", "8900b5a9d", "9f540f840", "e83771880"], "source_commits": ["0307b98d8"], "source_entry_id": "9.6.21/changes/021", "db_id": "9582949b0e17b4be4348a40989470b2a", "patch_ids": ["d2e02a8277baac4766bf87577edfbc58"], "statement_hash": "8dfe882b6e40bab79ce2dda4d6fd93d0a82f988001228534e873ecc6f1fb7a03", "relations": [{"rule": 2, "type": "equivalent", "target": "3b66d211bec114dc35a6189045c9c808", "evidence": {"same_day": true, "patch_ids": ["d2e02a8277baac4766bf87577edfbc58"], "statement_hash": "8dfe882b6e40bab79ce2dda4d6fd93d0a82f988001228534e873ecc6f1fb7a03"}}, {"rule": 2, "type": "equivalent", "target": "436439ec95a41f87a0f329d48bcda1dd", "evidence": {"same_day": true, "patch_ids": ["d2e02a8277baac4766bf87577edfbc58"], "statement_hash": "8dfe882b6e40bab79ce2dda4d6fd93d0a82f988001228534e873ecc6f1fb7a03"}}, {"rule": 2, "type": "equivalent", "target": "bc1cb2744ffcefaf578008c3d1c71c72", "evidence": {"same_day": true, "patch_ids": ["d2e02a8277baac4766bf87577edfbc58"], "statement_hash": "8dfe882b6e40bab79ce2dda4d6fd93d0a82f988001228534e873ecc6f1fb7a03"}}, {"rule": 2, "type": "equivalent", "target": "ff508ecb1cc82a838ee9f0ae6555f776", "evidence": {"same_day": true, "patch_ids": ["d2e02a8277baac4766bf87577edfbc58"], "statement_hash": "8dfe882b6e40bab79ce2dda4d6fd93d0a82f988001228534e873ecc6f1fb7a03"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "436439ec95a41f87a0f329d48bcda1dd", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "确保检测热备后端与启动（WAL 应用）进程之间的死锁", "evidence": {"same_day": true, "patch_ids": ["d2e02a8277baac4766bf87577edfbc58"], "statement_hash": "8dfe882b6e40bab79ce2dda4d6fd93d0a82f988001228534e873ecc6f1fb7a03"}, "url": "/docs/compare/?release=13.2#13.2-8fb6618f0c0008bc", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "3b66d211bec114dc35a6189045c9c808", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "确保检测热备后端与启动（WAL 应用）进程之间的死锁", "evidence": {"same_day": true, "patch_ids": ["d2e02a8277baac4766bf87577edfbc58"], "statement_hash": "8dfe882b6e40bab79ce2dda4d6fd93d0a82f988001228534e873ecc6f1fb7a03"}, "url": "/docs/compare/?release=12.6#12.6-32ed92971214fc61", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "ff508ecb1cc82a838ee9f0ae6555f776", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "确保检测热备后端与启动（WAL 应用）进程之间的死锁", "evidence": {"same_day": true, "patch_ids": ["d2e02a8277baac4766bf87577edfbc58"], "statement_hash": "8dfe882b6e40bab79ce2dda4d6fd93d0a82f988001228534e873ecc6f1fb7a03"}, "url": "/docs/compare/?release=11.11#11.11-6fdd3da8a76098a4", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "bc1cb2744ffcefaf578008c3d1c71c72", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "确保检测热备后端与启动（WAL 应用）进程之间的死锁", "evidence": {"same_day": true, "patch_ids": ["d2e02a8277baac4766bf87577edfbc58"], "statement_hash": "8dfe882b6e40bab79ce2dda4d6fd93d0a82f988001228534e873ecc6f1fb7a03"}, "url": "/docs/compare/?release=10.16#10.16-6fdd3da8a76098a4", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}]}, {"id": "9.6.21-30632881d77fb2a8", "cves": [], "html": "<p>修复 <code>recovery_target_xid</code> 值解析中的可移植性问题（Michael Paquier）</p>\n<p>目标 XID 可能有 64 位宽，但它是用 <code>strtoul()</code> 解析的，在 <code>long</code> 为 32 位的平台（如 Windows）上导致错误行为。</p>", "text": "修复 recovery_target_xid 值解析中的可移植性问题（Michael Paquier） 目标 XID 可能有 64 位宽，但它是用 strtoul() 解析的，在 long 为 32 位的平台（如 Windows）上导致错误行为。", "title": "修复 recovery_target_xid 值解析中的可移植性问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "7fe24b16a514356e5554ffbf4c736b5b7cd07c902a1e677bb1c19d73812a0944", "section_path": ["变更"], "commit_groups": [["0b54a80a3", "1e54664ee", "35ad5c7c7", "67a9411d2", "6db27037b", "f3ee99df7"]], "identity_text": "Fix portability problem in parsing of recovery_target_xid values (Michael Paquier) The target XID is potentially 64 bits wide, but it was parsed with strtoul(), causing misbehavior on platforms where long is 32 bits (such as Windows).", "commit_aliases": ["0b54a80a3", "1e54664ee", "35ad5c7c7", "67a9411d2", "6db27037b", "f3ee99df7"], "source_commits": ["0b54a80a3"], "source_entry_id": "9.6.21/changes/022", "db_id": "4ff497608826a39b363795ec0548db1e", "patch_ids": ["afa0bf1d3eda5e44013639c4f8cf20fe"], "statement_hash": "f611d51da80a9d650fe73c8a2bd70c28c7b5e945ffd698db8deb330e1b73f15d", "relations": [{"rule": 2, "type": "equivalent", "target": "0c9793fff6b31e8a31c1dfe63aa3397a", "evidence": {"same_day": true, "patch_ids": ["afa0bf1d3eda5e44013639c4f8cf20fe"], "statement_hash": "f611d51da80a9d650fe73c8a2bd70c28c7b5e945ffd698db8deb330e1b73f15d"}}, {"rule": 2, "type": "equivalent", "target": "22c2262747854237227117014321f5c9", "evidence": {"same_day": true, "patch_ids": ["afa0bf1d3eda5e44013639c4f8cf20fe"], "statement_hash": "f611d51da80a9d650fe73c8a2bd70c28c7b5e945ffd698db8deb330e1b73f15d"}}, {"rule": 2, "type": "equivalent", "target": "35dacb59963008df6072dd3df62df0ac", "evidence": {"same_day": true, "patch_ids": ["afa0bf1d3eda5e44013639c4f8cf20fe"], "statement_hash": "f611d51da80a9d650fe73c8a2bd70c28c7b5e945ffd698db8deb330e1b73f15d"}}, {"rule": 2, "type": "equivalent", "target": "fe620e7aaf5623a5856590f0b0eb4d0f", "evidence": {"same_day": true, "patch_ids": ["afa0bf1d3eda5e44013639c4f8cf20fe"], "statement_hash": "f611d51da80a9d650fe73c8a2bd70c28c7b5e945ffd698db8deb330e1b73f15d"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fe620e7aaf5623a5856590f0b0eb4d0f", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复解析 recovery_target_xid 值时的可移植性问题", "evidence": {"same_day": true, "patch_ids": ["afa0bf1d3eda5e44013639c4f8cf20fe"], "statement_hash": "f611d51da80a9d650fe73c8a2bd70c28c7b5e945ffd698db8deb330e1b73f15d"}, "url": "/docs/compare/?release=13.2#13.2-1f07cae731648722", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "0c9793fff6b31e8a31c1dfe63aa3397a", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复解析 recovery_target_xid 值时的可移植性问题", "evidence": {"same_day": true, "patch_ids": ["afa0bf1d3eda5e44013639c4f8cf20fe"], "statement_hash": "f611d51da80a9d650fe73c8a2bd70c28c7b5e945ffd698db8deb330e1b73f15d"}, "url": "/docs/compare/?release=12.6#12.6-6871548c1a774dae", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "35dacb59963008df6072dd3df62df0ac", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复解析 recovery_target_xid 值时的可移植性问题", "evidence": {"same_day": true, "patch_ids": ["afa0bf1d3eda5e44013639c4f8cf20fe"], "statement_hash": "f611d51da80a9d650fe73c8a2bd70c28c7b5e945ffd698db8deb330e1b73f15d"}, "url": "/docs/compare/?release=11.11#11.11-ae32c3a3781ccb64", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "22c2262747854237227117014321f5c9", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复解析 recovery_target_xid 值时的可移植性问题", "evidence": {"same_day": true, "patch_ids": ["afa0bf1d3eda5e44013639c4f8cf20fe"], "statement_hash": "f611d51da80a9d650fe73c8a2bd70c28c7b5e945ffd698db8deb330e1b73f15d"}, "url": "/docs/compare/?release=10.16#10.16-ae32c3a3781ccb64", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}]}, {"id": "9.6.21-fb3daa89a2c822c7", "cves": [], "html": "<p>避免检查带 <code>TRANSFORM</code> 选项的函数时 <code>pg_get_functiondef()</code> 的断言失败（Tom Lane）</p>", "text": "避免检查带 TRANSFORM 选项的函数时 pg_get_functiondef() 的断言失败（Tom Lane）", "title": "避免检查带 TRANSFORM 选项的函数时 pg_get_functiondef() 的断言失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "ab5584987078be63391ffdfbc909158f8239e57a3fbd41e118c0a6d4f5d19dbc", "section_path": ["变更"], "commit_groups": [["07d46fceb", "41309f716", "4641b2a30", "57a7d6f49", "a26194f22", "a7cdd3f71", "d09e8789f"]], "identity_text": "Avoid assertion failure in pg_get_functiondef() when examining a function with a TRANSFORM option (Tom Lane)", "commit_aliases": ["07d46fceb", "41309f716", "4641b2a30", "57a7d6f49", "a26194f22", "a7cdd3f71", "d09e8789f"], "source_commits": ["57a7d6f49"], "source_entry_id": "9.6.21/changes/023", "db_id": "d16766bffb4fe7b7f7afd7b4f614b439", "patch_ids": ["45324432e8f42c11c163e8732655e2c4"], "statement_hash": "cd5237e6e37e33ccf257722ecdc180e95fb9a6a67b687a055a68c595db14770b", "relations": [{"rule": 2, "type": "equivalent", "target": "0327d4a9a7300867ae1eaabccbbc374c", "evidence": {"same_day": true, "patch_ids": ["45324432e8f42c11c163e8732655e2c4"], "statement_hash": "cd5237e6e37e33ccf257722ecdc180e95fb9a6a67b687a055a68c595db14770b"}}, {"rule": 2, "type": "equivalent", "target": "165e7d1d8fb573ec5454891482affe6a", "evidence": {"same_day": true, "patch_ids": ["45324432e8f42c11c163e8732655e2c4"], "statement_hash": "cd5237e6e37e33ccf257722ecdc180e95fb9a6a67b687a055a68c595db14770b"}}, {"rule": 2, "type": "equivalent", "target": "555b7d01a6a22019ea5aa215db2a86bc", "evidence": {"same_day": true, "patch_ids": ["45324432e8f42c11c163e8732655e2c4"], "statement_hash": "cd5237e6e37e33ccf257722ecdc180e95fb9a6a67b687a055a68c595db14770b"}}, {"rule": 2, "type": "equivalent", "target": "849c0755c372644197f02162cb31c956", "evidence": {"same_day": true, "patch_ids": ["45324432e8f42c11c163e8732655e2c4"], "statement_hash": "cd5237e6e37e33ccf257722ecdc180e95fb9a6a67b687a055a68c595db14770b"}}, {"rule": 2, "type": "equivalent", "target": "e4b3bf9d7ccf2a0e1eeff95c46553257", "evidence": {"same_day": true, "patch_ids": ["45324432e8f42c11c163e8732655e2c4"], "statement_hash": "cd5237e6e37e33ccf257722ecdc180e95fb9a6a67b687a055a68c595db14770b"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0327d4a9a7300867ae1eaabccbbc374c", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "避免 pg_get_functiondef() 检查带有 TRANSFORM 选项的函数时发生断言失败", "evidence": {"same_day": true, "patch_ids": ["45324432e8f42c11c163e8732655e2c4"], "statement_hash": "cd5237e6e37e33ccf257722ecdc180e95fb9a6a67b687a055a68c595db14770b"}, "url": "/docs/compare/?release=13.2#13.2-410b354d77a1aa49", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "555b7d01a6a22019ea5aa215db2a86bc", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "避免 pg_get_functiondef() 检查带有 TRANSFORM 选项的函数时发生断言失败", "evidence": {"same_day": true, "patch_ids": ["45324432e8f42c11c163e8732655e2c4"], "statement_hash": "cd5237e6e37e33ccf257722ecdc180e95fb9a6a67b687a055a68c595db14770b"}, "url": "/docs/compare/?release=12.6#12.6-62b7e4a3a80e339f", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "e4b3bf9d7ccf2a0e1eeff95c46553257", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "避免 pg_get_functiondef() 检查带有 TRANSFORM 选项的函数时发生断言失败", "evidence": {"same_day": true, "patch_ids": ["45324432e8f42c11c163e8732655e2c4"], "statement_hash": "cd5237e6e37e33ccf257722ecdc180e95fb9a6a67b687a055a68c595db14770b"}, "url": "/docs/compare/?release=11.11#11.11-23bf9c390348a033", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "849c0755c372644197f02162cb31c956", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "避免 pg_get_functiondef() 检查带有 TRANSFORM 选项的函数时发生断言失败", "evidence": {"same_day": true, "patch_ids": ["45324432e8f42c11c163e8732655e2c4"], "statement_hash": "cd5237e6e37e33ccf257722ecdc180e95fb9a6a67b687a055a68c595db14770b"}, "url": "/docs/compare/?release=10.16#10.16-23bf9c390348a033", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "165e7d1d8fb573ec5454891482affe6a", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "避免检查带 TRANSFORM 选项的函数时 pg_get_functiondef() 的断言失败", "evidence": {"same_day": true, "patch_ids": ["45324432e8f42c11c163e8732655e2c4"], "statement_hash": "cd5237e6e37e33ccf257722ecdc180e95fb9a6a67b687a055a68c595db14770b"}, "url": "/docs/compare/?release=9.5.25#9.5.25-fb3daa89a2c822c7", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-cc6d217bba445efd", "cves": [], "html": "<p>在 <span>psql</span> 中，重新允许在 <code>\\connect</code> 命令的 <em><code>connection_string</code></em> 参数中包含密码（Tom Lane）</p>\n<p>这过去可以工作，但最近的一次 bug 修复导致密码被忽略（结果是提示输入密码）。</p>", "text": "在 psql 中，重新允许在 \\connect 命令的 connection_string 参数中包含密码（Tom Lane） 这过去可以工作，但最近的一次 bug 修复导致密码被忽略（结果是提示输入密码）。", "title": "在 psql 中，重新允许在 \\connect 命令的 connection_string 参数中包含密码", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "841e03c6006eb001794001b74cadd0f9296907400c4697971326745265e4db4f", "section_path": ["变更"], "commit_groups": [["3958abdad", "3f59a05f0", "72b930f50", "777ac03a6", "7e5e1bba0", "946277fd4", "e2d5de150"]], "identity_text": "In psql, re-allow including a password in a connection_string argument of a \\connect command (Tom Lane) This used to work, but a recent bug fix caused the password to be ignored (resulting in prompting for a password).", "commit_aliases": ["3958abdad", "3f59a05f0", "72b930f50", "777ac03a6", "7e5e1bba0", "946277fd4", "e2d5de150"], "source_commits": ["3f59a05f0"], "source_entry_id": "9.6.21/changes/024", "db_id": "738cdf20526fdb30ff11c437290c0fcb", "patch_ids": ["e02be74e0a481c81f894cd7a231efb62"], "statement_hash": "9b914552672df8415de82ef578971eece6fe580bed6eaaba49ccb7321b567710", "relations": [{"rule": 2, "type": "equivalent", "target": "09b5a087c22bf206ee9d103d890fa85a", "evidence": {"same_day": true, "patch_ids": ["e02be74e0a481c81f894cd7a231efb62"], "statement_hash": "9b914552672df8415de82ef578971eece6fe580bed6eaaba49ccb7321b567710"}}, {"rule": 2, "type": "equivalent", "target": "8448f70b74221637125f8f640aaa199c", "evidence": {"same_day": true, "patch_ids": ["e02be74e0a481c81f894cd7a231efb62"], "statement_hash": "9b914552672df8415de82ef578971eece6fe580bed6eaaba49ccb7321b567710"}}, {"rule": 2, "type": "equivalent", "target": "8ff5c4e0e8e16923d3a32b4962370668", "evidence": {"same_day": true, "patch_ids": ["e02be74e0a481c81f894cd7a231efb62"], "statement_hash": "9b914552672df8415de82ef578971eece6fe580bed6eaaba49ccb7321b567710"}}, {"rule": 2, "type": "equivalent", "target": "9f809e3dbb722ce78c5acca3d5adea6d", "evidence": {"same_day": true, "patch_ids": ["e02be74e0a481c81f894cd7a231efb62"], "statement_hash": "9b914552672df8415de82ef578971eece6fe580bed6eaaba49ccb7321b567710"}}, {"rule": 2, "type": "equivalent", "target": "b212d7783359ee0af735b70cbfa125c2", "evidence": {"same_day": true, "patch_ids": ["e02be74e0a481c81f894cd7a231efb62"], "statement_hash": "9b914552672df8415de82ef578971eece6fe580bed6eaaba49ccb7321b567710"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "09b5a087c22bf206ee9d103d890fa85a", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "在 psql 中，重新允许在 \\connect 命令的 connection_string 参数中包含密码", "evidence": {"same_day": true, "patch_ids": ["e02be74e0a481c81f894cd7a231efb62"], "statement_hash": "9b914552672df8415de82ef578971eece6fe580bed6eaaba49ccb7321b567710"}, "url": "/docs/compare/?release=13.2#13.2-eb6e05868ca5109d", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "9f809e3dbb722ce78c5acca3d5adea6d", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "在 psql 中，重新允许在 \\connect 命令的 connection_string 参数中包含密码", "evidence": {"same_day": true, "patch_ids": ["e02be74e0a481c81f894cd7a231efb62"], "statement_hash": "9b914552672df8415de82ef578971eece6fe580bed6eaaba49ccb7321b567710"}, "url": "/docs/compare/?release=12.6#12.6-e53e029b4fb54864", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "8ff5c4e0e8e16923d3a32b4962370668", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "在 psql 中，重新允许在 \\connect 命令的 connection_string 参数中包含密码", "evidence": {"same_day": true, "patch_ids": ["e02be74e0a481c81f894cd7a231efb62"], "statement_hash": "9b914552672df8415de82ef578971eece6fe580bed6eaaba49ccb7321b567710"}, "url": "/docs/compare/?release=11.11#11.11-cc6d217bba445efd", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "b212d7783359ee0af735b70cbfa125c2", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "在 psql 中，重新允许在 \\connect 命令的 connection_string 参数中包含密码", "evidence": {"same_day": true, "patch_ids": ["e02be74e0a481c81f894cd7a231efb62"], "statement_hash": "9b914552672df8415de82ef578971eece6fe580bed6eaaba49ccb7321b567710"}, "url": "/docs/compare/?release=10.16#10.16-cc6d217bba445efd", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "8448f70b74221637125f8f640aaa199c", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "在 psql 中，重新允许在 \\connect 命令的 connection_string 参数中包含密码", "evidence": {"same_day": true, "patch_ids": ["e02be74e0a481c81f894cd7a231efb62"], "statement_hash": "9b914552672df8415de82ef578971eece6fe580bed6eaaba49ccb7321b567710"}, "url": "/docs/compare/?release=9.5.25#9.5.25-cc6d217bba445efd", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-96d9a76e16a1f628", "cves": [], "html": "<p>修复 <span>psql</span> 的 <code>\\help</code> 命令的若干 bug（Kyotaro Horiguchi、Tom Lane）</p>\n<p>带两个参数词的 <code>\\help</code> 未能只用第一个词找到命令说明，例如 <code>\\help reset all</code> 本应显示 <code>RESET</code> 的帮助但没有。此外，<code>\\help</code> 常常在应该调用分页器时没有调用。它还泄漏内存。</p>", "text": "修复 psql 的 \\help 命令的若干 bug（Kyotaro Horiguchi、Tom Lane） 带两个参数词的 \\help 未能只用第一个词找到命令说明，例如 \\help reset all 本应显示 RESET 的帮助但没有。此外，\\help 常常在应该调用分页器时没有调用。它还泄漏内存。", "title": "修复 psql 的 \\help 命令的若干 bug", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "6746ea04990dd454920cea8831d00b31c29005c48edf8f6f1d459e1682e78f57", "section_path": ["变更"], "commit_groups": [["131825cd5", "2c2e134b7", "3fa7b9078", "564cb2579", "64bdb6e5f", "82f97d33f", "f76a85000"]], "identity_text": "Fix assorted bugs in psql's \\help command (Kyotaro Horiguchi, Tom Lane) \\help with two argument words failed to find a command description using only the first word, for example \\help reset all should show the help for RESET but did not. Also, \\help often failed to invoke the pager when it should. It also leaked memory.", "commit_aliases": ["131825cd5", "2c2e134b7", "3fa7b9078", "564cb2579", "64bdb6e5f", "82f97d33f", "f76a85000"], "source_commits": ["2c2e134b7"], "source_entry_id": "9.6.21/changes/025", "db_id": "15b25825c44bc4b291b219deedb0738f", "patch_ids": ["91e559f30d2e8addfcd3208829625296"], "statement_hash": "86c9b0c47e8100f683719f024650d6409e0c0a09fcfb02ee61e642d3b06538ab", "relations": [{"rule": 2, "type": "equivalent", "target": "0e587f8ec96b375c129cb9dd61797406", "evidence": {"same_day": true, "patch_ids": ["91e559f30d2e8addfcd3208829625296"], "statement_hash": "86c9b0c47e8100f683719f024650d6409e0c0a09fcfb02ee61e642d3b06538ab"}}, {"rule": 2, "type": "equivalent", "target": "49e7dc96e00deaa82f7a77442fd14b34", "evidence": {"same_day": true, "patch_ids": ["91e559f30d2e8addfcd3208829625296"], "statement_hash": "86c9b0c47e8100f683719f024650d6409e0c0a09fcfb02ee61e642d3b06538ab"}}, {"rule": 2, "type": "equivalent", "target": "5f9fcf85ceef837e2b39e03e87427df7", "evidence": {"same_day": true, "patch_ids": ["91e559f30d2e8addfcd3208829625296"], "statement_hash": "86c9b0c47e8100f683719f024650d6409e0c0a09fcfb02ee61e642d3b06538ab"}}, {"rule": 2, "type": "equivalent", "target": "8bebd658e1744553c03f57d186cc5766", "evidence": {"same_day": true, "patch_ids": ["91e559f30d2e8addfcd3208829625296"], "statement_hash": "86c9b0c47e8100f683719f024650d6409e0c0a09fcfb02ee61e642d3b06538ab"}}, {"rule": 2, "type": "equivalent", "target": "a44fc1e5b581c2dc76e0a121b458b562", "evidence": {"same_day": true, "patch_ids": ["91e559f30d2e8addfcd3208829625296"], "statement_hash": "86c9b0c47e8100f683719f024650d6409e0c0a09fcfb02ee61e642d3b06538ab"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a44fc1e5b581c2dc76e0a121b458b562", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复 psql 的 \\help 命令中的多种缺陷", "evidence": {"same_day": true, "patch_ids": ["91e559f30d2e8addfcd3208829625296"], "statement_hash": "86c9b0c47e8100f683719f024650d6409e0c0a09fcfb02ee61e642d3b06538ab"}, "url": "/docs/compare/?release=13.2#13.2-e90a55ab80aa53e9", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "8bebd658e1744553c03f57d186cc5766", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复 psql 的 \\help 命令中的多种缺陷", "evidence": {"same_day": true, "patch_ids": ["91e559f30d2e8addfcd3208829625296"], "statement_hash": "86c9b0c47e8100f683719f024650d6409e0c0a09fcfb02ee61e642d3b06538ab"}, "url": "/docs/compare/?release=12.6#12.6-245814368820fa83", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "49e7dc96e00deaa82f7a77442fd14b34", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复 psql 的 \\help 命令中的多种缺陷", "evidence": {"same_day": true, "patch_ids": ["91e559f30d2e8addfcd3208829625296"], "statement_hash": "86c9b0c47e8100f683719f024650d6409e0c0a09fcfb02ee61e642d3b06538ab"}, "url": "/docs/compare/?release=11.11#11.11-24cfe2632f495571", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "0e587f8ec96b375c129cb9dd61797406", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复 psql 的 \\help 命令中的多种缺陷", "evidence": {"same_day": true, "patch_ids": ["91e559f30d2e8addfcd3208829625296"], "statement_hash": "86c9b0c47e8100f683719f024650d6409e0c0a09fcfb02ee61e642d3b06538ab"}, "url": "/docs/compare/?release=10.16#10.16-24cfe2632f495571", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "5f9fcf85ceef837e2b39e03e87427df7", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复 psql 的 \\help 命令的若干 bug", "evidence": {"same_day": true, "patch_ids": ["91e559f30d2e8addfcd3208829625296"], "statement_hash": "86c9b0c47e8100f683719f024650d6409e0c0a09fcfb02ee61e642d3b06538ab"}, "url": "/docs/compare/?release=9.5.25#9.5.25-96d9a76e16a1f628", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-fa6136341fb3d153", "cves": [], "html": "<p>修复 <span>pg_dump</span> 处理扩展初始权限中的 <code>WITH GRANT OPTION</code>（Noah Misch）</p>\n<p>如果扩展的脚本创建对象并以授予选项授予其权限，之后用户撤销了这些权限，<span>pg_dump</span> 会为重现这种情形生成错误的 SQL。（今天几乎没有扩展这样做。）</p>", "text": "修复 pg_dump 处理扩展初始权限中的 WITH GRANT OPTION（Noah Misch） 如果扩展的脚本创建对象并以授予选项授予其权限，之后用户撤销了这些权限，pg_dump 会为重现这种情形生成错误的 SQL。（今天几乎没有扩展这样做。）", "title": "修复 pg_dump 处理扩展初始权限中的 WITH GRANT OPTION", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "21d1a890373f29573db6e0a567e6c1228fea82481ad4ade3cac01a4e092dd340", "section_path": ["变更"], "commit_groups": [["a0d31b1c9", "ad2b7c9bb", "b8daf894f", "b933c9c0b", "c6ff165f9", "f713ff7c6"]], "identity_text": "Fix pg_dump to handle WITH GRANT OPTION in an extension's initial privileges (Noah Misch) If an extension's script creates an object and grants privileges on it with grant option, then later the user revokes such privileges, pg_dump would generate incorrect SQL for reproducing the situation. (Few if any extensions do this today.)", "commit_aliases": ["a0d31b1c9", "ad2b7c9bb", "b8daf894f", "b933c9c0b", "c6ff165f9", "f713ff7c6"], "source_commits": ["ad2b7c9bb"], "source_entry_id": "9.6.21/changes/026", "db_id": "4d4a47f55a2ffaa490b2e6a852497a47", "patch_ids": ["c9d3d979639038a8af13c6df31c5bac2"], "statement_hash": "462efa2d4dab4d135ad2ff732cd342d16a63a6bf1166438f0816cab8e58bc7bd", "relations": [{"rule": 2, "type": "equivalent", "target": "862b7ba39a0506a65cfb52cf115db81a", "evidence": {"same_day": true, "patch_ids": ["c9d3d979639038a8af13c6df31c5bac2"], "statement_hash": "462efa2d4dab4d135ad2ff732cd342d16a63a6bf1166438f0816cab8e58bc7bd"}}, {"rule": 2, "type": "equivalent", "target": "8710c3eb334af6ae8b3da8f520d55574", "evidence": {"same_day": true, "patch_ids": ["c9d3d979639038a8af13c6df31c5bac2"], "statement_hash": "462efa2d4dab4d135ad2ff732cd342d16a63a6bf1166438f0816cab8e58bc7bd"}}, {"rule": 2, "type": "equivalent", "target": "b747a2140ea168d1045ba4bd99b99172", "evidence": {"same_day": true, "patch_ids": ["c9d3d979639038a8af13c6df31c5bac2"], "statement_hash": "462efa2d4dab4d135ad2ff732cd342d16a63a6bf1166438f0816cab8e58bc7bd"}}, {"rule": 2, "type": "equivalent", "target": "ee665e4e21b683575a88c52e8e062124", "evidence": {"same_day": true, "patch_ids": ["c9d3d979639038a8af13c6df31c5bac2"], "statement_hash": "462efa2d4dab4d135ad2ff732cd342d16a63a6bf1166438f0816cab8e58bc7bd"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8710c3eb334af6ae8b3da8f520d55574", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复 pg_dump，使其处理扩展初始权限中的 WITH GRANT OPTION", "evidence": {"same_day": true, "patch_ids": ["c9d3d979639038a8af13c6df31c5bac2"], "statement_hash": "462efa2d4dab4d135ad2ff732cd342d16a63a6bf1166438f0816cab8e58bc7bd"}, "url": "/docs/compare/?release=13.2#13.2-1240d5e72e26aac2", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "862b7ba39a0506a65cfb52cf115db81a", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复 pg_dump，使其处理扩展初始权限中的 WITH GRANT OPTION", "evidence": {"same_day": true, "patch_ids": ["c9d3d979639038a8af13c6df31c5bac2"], "statement_hash": "462efa2d4dab4d135ad2ff732cd342d16a63a6bf1166438f0816cab8e58bc7bd"}, "url": "/docs/compare/?release=12.6#12.6-8849dc8edb638778", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "ee665e4e21b683575a88c52e8e062124", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复 pg_dump，使其处理扩展初始权限中的 WITH GRANT OPTION", "evidence": {"same_day": true, "patch_ids": ["c9d3d979639038a8af13c6df31c5bac2"], "statement_hash": "462efa2d4dab4d135ad2ff732cd342d16a63a6bf1166438f0816cab8e58bc7bd"}, "url": "/docs/compare/?release=11.11#11.11-d6978c1ad4f9b209", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "b747a2140ea168d1045ba4bd99b99172", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复 pg_dump，使其处理扩展初始权限中的 WITH GRANT OPTION", "evidence": {"same_day": true, "patch_ids": ["c9d3d979639038a8af13c6df31c5bac2"], "statement_hash": "462efa2d4dab4d135ad2ff732cd342d16a63a6bf1166438f0816cab8e58bc7bd"}, "url": "/docs/compare/?release=10.16#10.16-d6978c1ad4f9b209", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}]}, {"id": "9.6.21-e5db4b87c44aba02", "cves": [], "html": "<p>在 <span>pg_rewind</span> 中，确保回卷备库服务器时所有 WAL 都被考虑到（Ian Barwick、Heikki Linnakangas）</p>", "text": "在 pg_rewind 中，确保回卷备库服务器时所有 WAL 都被考虑到（Ian Barwick、Heikki Linnakangas）", "title": "在 pg_rewind 中，确保回卷备库服务器时所有 WAL 都被考虑到", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "7bfd4c99806f30241def537c73a5d4fd420e2feb24536db0177a8b8e8bab59bf", "section_path": ["变更"], "commit_groups": [["020f153db", "0740857de", "2b4f31303", "63e316f0b", "81e3c868f", "8b5c353ec", "abd0abfb7"], ["10d9c9d03", "3ea8e660c", "6ba581cf1", "98f8cdd48", "beb6b45ab", "d137b14c3", "e6dc04d43"], ["1dd608bba", "36a4ac20f", "45d363145", "a075c84f2", "ad3fb04b9", "cda50f211", "e41a2efbc"]], "identity_text": "In pg_rewind, ensure that all WAL is accounted for when rewinding a standby server (Ian Barwick, Heikki Linnakangas)", "commit_aliases": ["020f153db", "0740857de", "10d9c9d03", "1dd608bba", "2b4f31303", "36a4ac20f", "3ea8e660c", "45d363145", "63e316f0b", "6ba581cf1", "81e3c868f", "8b5c353ec", "98f8cdd48", "a075c84f2", "abd0abfb7", "ad3fb04b9", "beb6b45ab", "cda50f211", "d137b14c3", "e41a2efbc", "e6dc04d43"], "source_commits": ["0740857de", "3ea8e660c", "a075c84f2"], "source_entry_id": "9.6.21/changes/027", "db_id": "5f906c0ba42fcccf9df10cc1fabcab65", "patch_ids": ["5f4932b73328390ee5662160cbe90a71", "71c91d3a82ceaa59e7cac093de229314", "f375855d90ee10018cb753e0fcb48b10"], "statement_hash": "014ba33559110a324b22c635ae5f052eb12e2d55677225ec9841e4bfdda2818e", "relations": [{"rule": 2, "type": "equivalent", "target": "0d52501b668c02c4ed399b56199c008f", "evidence": {"same_day": true, "patch_ids": ["5f4932b73328390ee5662160cbe90a71", "71c91d3a82ceaa59e7cac093de229314", "f375855d90ee10018cb753e0fcb48b10"], "statement_hash": "014ba33559110a324b22c635ae5f052eb12e2d55677225ec9841e4bfdda2818e"}}, {"rule": 2, "type": "equivalent", "target": "1d47de8a57452fe3c338210ffbd91e81", "evidence": {"same_day": true, "patch_ids": ["5f4932b73328390ee5662160cbe90a71", "71c91d3a82ceaa59e7cac093de229314", "f375855d90ee10018cb753e0fcb48b10"], "statement_hash": "014ba33559110a324b22c635ae5f052eb12e2d55677225ec9841e4bfdda2818e"}}, {"rule": 2, "type": "equivalent", "target": "7c02c8d27f0f2fc55ec230579dfd0f9b", "evidence": {"same_day": true, "patch_ids": ["5f4932b73328390ee5662160cbe90a71", "71c91d3a82ceaa59e7cac093de229314", "f375855d90ee10018cb753e0fcb48b10"], "statement_hash": "014ba33559110a324b22c635ae5f052eb12e2d55677225ec9841e4bfdda2818e"}}, {"rule": 2, "type": "equivalent", "target": "999c85b5ef55bec51f9a0f8624f198fb", "evidence": {"same_day": true, "patch_ids": ["5f4932b73328390ee5662160cbe90a71", "71c91d3a82ceaa59e7cac093de229314", "f375855d90ee10018cb753e0fcb48b10"], "statement_hash": "014ba33559110a324b22c635ae5f052eb12e2d55677225ec9841e4bfdda2818e"}}, {"rule": 2, "type": "equivalent", "target": "f8986f1636c4d1816f59d95d9a0747b3", "evidence": {"same_day": true, "patch_ids": ["5f4932b73328390ee5662160cbe90a71", "71c91d3a82ceaa59e7cac093de229314", "f375855d90ee10018cb753e0fcb48b10"], "statement_hash": "014ba33559110a324b22c635ae5f052eb12e2d55677225ec9841e4bfdda2818e"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "999c85b5ef55bec51f9a0f8624f198fb", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "在 pg_rewind 中，确保回退备库时计入所有 WAL", "evidence": {"same_day": true, "patch_ids": ["5f4932b73328390ee5662160cbe90a71", "71c91d3a82ceaa59e7cac093de229314", "f375855d90ee10018cb753e0fcb48b10"], "statement_hash": "014ba33559110a324b22c635ae5f052eb12e2d55677225ec9841e4bfdda2818e"}, "url": "/docs/compare/?release=13.2#13.2-68d6cfb174a9d797", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "0d52501b668c02c4ed399b56199c008f", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "在 pg_rewind 中，确保回退备库时计入所有 WAL", "evidence": {"same_day": true, "patch_ids": ["5f4932b73328390ee5662160cbe90a71", "71c91d3a82ceaa59e7cac093de229314", "f375855d90ee10018cb753e0fcb48b10"], "statement_hash": "014ba33559110a324b22c635ae5f052eb12e2d55677225ec9841e4bfdda2818e"}, "url": "/docs/compare/?release=12.6#12.6-55211c0a896ce5d0", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "f8986f1636c4d1816f59d95d9a0747b3", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "在 pg_rewind 中，确保回退备库时计入所有 WAL", "evidence": {"same_day": true, "patch_ids": ["5f4932b73328390ee5662160cbe90a71", "71c91d3a82ceaa59e7cac093de229314", "f375855d90ee10018cb753e0fcb48b10"], "statement_hash": "014ba33559110a324b22c635ae5f052eb12e2d55677225ec9841e4bfdda2818e"}, "url": "/docs/compare/?release=11.11#11.11-8c4048a956453e2c", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "7c02c8d27f0f2fc55ec230579dfd0f9b", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "在 pg_rewind 中，确保回退备库时计入所有 WAL", "evidence": {"same_day": true, "patch_ids": ["5f4932b73328390ee5662160cbe90a71", "71c91d3a82ceaa59e7cac093de229314", "f375855d90ee10018cb753e0fcb48b10"], "statement_hash": "014ba33559110a324b22c635ae5f052eb12e2d55677225ec9841e4bfdda2818e"}, "url": "/docs/compare/?release=10.16#10.16-8c4048a956453e2c", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "1d47de8a57452fe3c338210ffbd91e81", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "在 pg_rewind 中，确保回卷备库服务器时所有 WAL 都被考虑到", "evidence": {"same_day": true, "patch_ids": ["5f4932b73328390ee5662160cbe90a71", "71c91d3a82ceaa59e7cac093de229314", "f375855d90ee10018cb753e0fcb48b10"], "statement_hash": "014ba33559110a324b22c635ae5f052eb12e2d55677225ec9841e4bfdda2818e"}, "url": "/docs/compare/?release=9.5.25#9.5.25-e5db4b87c44aba02", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-246a05d6ec85f511", "cves": [], "html": "<p>在部分客户端程序的连接失败错误消息中报告正确的数据库名（Álvaro Herrera）</p>\n<p>如果数据库名是默认推断而非在命令行上给出的，<span>pg_dumpall</span>、 <span>pgbench</span>、<span>oid2name</span> 和 <span>vacuumlo</span> 在连接失败之后会产生误导性的错误消息。</p>", "text": "在部分客户端程序的连接失败错误消息中报告正确的数据库名（Álvaro Herrera） 如果数据库名是默认推断而非在命令行上给出的，pg_dumpall、 pgbench、oid2name 和 vacuumlo 在连接失败之后会产生误导性的错误消息。", "title": "在部分客户端程序的连接失败错误消息中报告正确的数据库名", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "212106b2d79ef062adc8c499e7297a2b1ca7c8e6b60e3dda936535d7569152bf", "section_path": ["变更"], "commit_groups": [["11a708f81", "bcae842b9", "f17e8f33f", "f2dc96236", "fdd405c63", "fdf9d0054"]], "identity_text": "Report the correct database name in connection failure error messages from some client programs (Álvaro Herrera) If the database name was defaulted rather than given on the command line, pg_dumpall, pgbench, oid2name, and vacuumlo would produce misleading error messages after a connection failure.", "commit_aliases": ["11a708f81", "bcae842b9", "f17e8f33f", "f2dc96236", "fdd405c63", "fdf9d0054"], "source_commits": ["bcae842b9"], "source_entry_id": "9.6.21/changes/028", "db_id": "7ad568b9bae3112bc90120296eeaa02b", "patch_ids": ["2b87d6ffadc4f296858b94a2654cd70e"], "statement_hash": "b18e3c734bcc5032229b5acf57479a5e24ef13f1a8bed16d7fb261dbb6b947fa", "relations": [{"rule": 2, "type": "equivalent", "target": "2d89274d1836cabf0316bd99c10a7622", "evidence": {"same_day": true, "patch_ids": ["2b87d6ffadc4f296858b94a2654cd70e"], "statement_hash": "b18e3c734bcc5032229b5acf57479a5e24ef13f1a8bed16d7fb261dbb6b947fa"}}, {"rule": 2, "type": "equivalent", "target": "99907bc48e9c7e79be3ee046790b0db0", "evidence": {"same_day": true, "patch_ids": ["2b87d6ffadc4f296858b94a2654cd70e"], "statement_hash": "b18e3c734bcc5032229b5acf57479a5e24ef13f1a8bed16d7fb261dbb6b947fa"}}, {"rule": 2, "type": "equivalent", "target": "ae8df56bc2e6d9cfacb34fa93a1164e9", "evidence": {"same_day": true, "patch_ids": ["2b87d6ffadc4f296858b94a2654cd70e"], "statement_hash": "b18e3c734bcc5032229b5acf57479a5e24ef13f1a8bed16d7fb261dbb6b947fa"}}, {"rule": 2, "type": "equivalent", "target": "c8826738a862b233b1c200ad0693533a", "evidence": {"same_day": true, "patch_ids": ["2b87d6ffadc4f296858b94a2654cd70e"], "statement_hash": "b18e3c734bcc5032229b5acf57479a5e24ef13f1a8bed16d7fb261dbb6b947fa"}}, {"rule": 2, "type": "equivalent", "target": "cc31da39bb4e66c231813b95922060ea", "evidence": {"same_day": true, "patch_ids": ["2b87d6ffadc4f296858b94a2654cd70e"], "statement_hash": "b18e3c734bcc5032229b5acf57479a5e24ef13f1a8bed16d7fb261dbb6b947fa"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c8826738a862b233b1c200ad0693533a", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "在某些客户端程序的连接失败错误消息中报告正确的数据库名称", "evidence": {"same_day": true, "patch_ids": ["2b87d6ffadc4f296858b94a2654cd70e"], "statement_hash": "b18e3c734bcc5032229b5acf57479a5e24ef13f1a8bed16d7fb261dbb6b947fa"}, "url": "/docs/compare/?release=13.2#13.2-631064288b363529", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "cc31da39bb4e66c231813b95922060ea", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "在某些客户端程序的连接失败错误消息中报告正确的数据库名称", "evidence": {"same_day": true, "patch_ids": ["2b87d6ffadc4f296858b94a2654cd70e"], "statement_hash": "b18e3c734bcc5032229b5acf57479a5e24ef13f1a8bed16d7fb261dbb6b947fa"}, "url": "/docs/compare/?release=12.6#12.6-8c81f45f60567695", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "2d89274d1836cabf0316bd99c10a7622", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "在某些客户端程序的连接失败错误消息中报告正确的数据库名称", "evidence": {"same_day": true, "patch_ids": ["2b87d6ffadc4f296858b94a2654cd70e"], "statement_hash": "b18e3c734bcc5032229b5acf57479a5e24ef13f1a8bed16d7fb261dbb6b947fa"}, "url": "/docs/compare/?release=11.11#11.11-3921d801a3399e34", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "99907bc48e9c7e79be3ee046790b0db0", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "在某些客户端程序的连接失败错误消息中报告正确的数据库名称", "evidence": {"same_day": true, "patch_ids": ["2b87d6ffadc4f296858b94a2654cd70e"], "statement_hash": "b18e3c734bcc5032229b5acf57479a5e24ef13f1a8bed16d7fb261dbb6b947fa"}, "url": "/docs/compare/?release=10.16#10.16-3921d801a3399e34", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "ae8df56bc2e6d9cfacb34fa93a1164e9", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "在部分客户端程序的连接失败错误消息中报告正确的数据库名", "evidence": {"same_day": true, "patch_ids": ["2b87d6ffadc4f296858b94a2654cd70e"], "statement_hash": "b18e3c734bcc5032229b5acf57479a5e24ef13f1a8bed16d7fb261dbb6b947fa"}, "url": "/docs/compare/?release=9.5.25#9.5.25-246a05d6ec85f511", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-e1874e055351c880", "cves": [], "html": "<p>修复 <code>contrib/auto_explain</code> 中的内存泄漏（Japin Li）</p>\n<p>生成 <code>EXPLAIN</code> 输出期间消耗的内存直到当前事务结束（对顶层语句）或外围语句结束（对嵌套语句）才被释放。在启用 <code>log_nested_statements</code> 时这尤其成问题。</p>", "text": "修复 contrib/auto_explain 中的内存泄漏（Japin Li） 生成 EXPLAIN 输出期间消耗的内存直到当前事务结束（对顶层语句）或外围语句结束（对嵌套语句）才被释放。在启用 log_nested_statements 时这尤其成问题。", "title": "修复 contrib/auto_explain 中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "7b6b2ce86fb4c60bdd6c0ce77f28e17954962f26ea68b748d47eb35961686500", "section_path": ["变更"], "commit_groups": [["2671125c7", "586891394", "5c0f7cc54", "5fc5ff61c", "608cf2bfd", "742846958", "f0f9ed68d"]], "identity_text": "Fix memory leak in contrib/auto_explain (Japin Li) Memory consumed while producing the EXPLAIN output was not freed until the end of the current transaction (for a top-level statement) or the end of the surrounding statement (for a nested statement). This was particularly a problem with log_nested_statements enabled.", "commit_aliases": ["2671125c7", "586891394", "5c0f7cc54", "5fc5ff61c", "608cf2bfd", "742846958", "f0f9ed68d"], "source_commits": ["608cf2bfd"], "source_entry_id": "9.6.21/changes/029", "db_id": "6f110c32e58f350d28faf77fd7547609", "patch_ids": ["dc14cd67e92555ceef2ed270089dd5e1"], "statement_hash": "a46614e10ae34455a21adac1096f3a1229a47bde413e0143cb34438f3de43156", "relations": [{"rule": 2, "type": "equivalent", "target": "125a647431ede2c2032d14ce96560341", "evidence": {"same_day": true, "patch_ids": ["dc14cd67e92555ceef2ed270089dd5e1"], "statement_hash": "a46614e10ae34455a21adac1096f3a1229a47bde413e0143cb34438f3de43156"}}, {"rule": 2, "type": "equivalent", "target": "2aa1cc21db3729625834a9d5f00dffdd", "evidence": {"same_day": true, "patch_ids": ["dc14cd67e92555ceef2ed270089dd5e1"], "statement_hash": "a46614e10ae34455a21adac1096f3a1229a47bde413e0143cb34438f3de43156"}}, {"rule": 2, "type": "equivalent", "target": "31b7e7cfcd30fd630156a1a080d270c7", "evidence": {"same_day": true, "patch_ids": ["dc14cd67e92555ceef2ed270089dd5e1"], "statement_hash": "a46614e10ae34455a21adac1096f3a1229a47bde413e0143cb34438f3de43156"}}, {"rule": 2, "type": "equivalent", "target": "72ec61dbf91db72872519615cff377a7", "evidence": {"same_day": true, "patch_ids": ["dc14cd67e92555ceef2ed270089dd5e1"], "statement_hash": "a46614e10ae34455a21adac1096f3a1229a47bde413e0143cb34438f3de43156"}}, {"rule": 2, "type": "equivalent", "target": "9646d85b46ef7613b7ef4aa41fb2e20d", "evidence": {"same_day": true, "patch_ids": ["dc14cd67e92555ceef2ed270089dd5e1"], "statement_hash": "a46614e10ae34455a21adac1096f3a1229a47bde413e0143cb34438f3de43156"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "125a647431ede2c2032d14ce96560341", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复 contrib/auto_explain 中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["dc14cd67e92555ceef2ed270089dd5e1"], "statement_hash": "a46614e10ae34455a21adac1096f3a1229a47bde413e0143cb34438f3de43156"}, "url": "/docs/compare/?release=13.2#13.2-cbe385d241588429", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "2aa1cc21db3729625834a9d5f00dffdd", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复 contrib/auto_explain 中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["dc14cd67e92555ceef2ed270089dd5e1"], "statement_hash": "a46614e10ae34455a21adac1096f3a1229a47bde413e0143cb34438f3de43156"}, "url": "/docs/compare/?release=12.6#12.6-0fc5da56017c1bf2", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "72ec61dbf91db72872519615cff377a7", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复 contrib/auto_explain 中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["dc14cd67e92555ceef2ed270089dd5e1"], "statement_hash": "a46614e10ae34455a21adac1096f3a1229a47bde413e0143cb34438f3de43156"}, "url": "/docs/compare/?release=11.11#11.11-e1874e055351c880", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "31b7e7cfcd30fd630156a1a080d270c7", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复 contrib/auto_explain 中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["dc14cd67e92555ceef2ed270089dd5e1"], "statement_hash": "a46614e10ae34455a21adac1096f3a1229a47bde413e0143cb34438f3de43156"}, "url": "/docs/compare/?release=10.16#10.16-e1874e055351c880", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "9646d85b46ef7613b7ef4aa41fb2e20d", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复 contrib/auto_explain 中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["dc14cd67e92555ceef2ed270089dd5e1"], "statement_hash": "a46614e10ae34455a21adac1096f3a1229a47bde413e0143cb34438f3de43156"}, "url": "/docs/compare/?release=9.5.25#9.5.25-e1874e055351c880", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-7d5fc5711d25e4a5", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，避免删除用户映射或外部服务器对象时泄漏到远程服务器的打开连接（Bharath Rupireddy）</p>\n<p>依赖于被删除用户映射或外部服务器的打开连接不再能被引用，但此前它们仍会在本地会话期间被保留。</p>", "text": "在 contrib/postgres_fdw 中，避免删除用户映射或外部服务器对象时泄漏到远程服务器的打开连接（Bharath Rupireddy） 依赖于被删除用户映射或外部服务器的打开连接不再能被引用，但此前它们仍会在本地会话期间被保留。", "title": "在 contrib/postgres_fdw 中，避免删除用户映射或外部服务器对象时泄漏到远程服务器的打开连接", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "2b45d69b244cc7c9df99997593c1447df2bf2986b1b3dc70934007d793fe5402", "section_path": ["变更"], "commit_groups": [["03b7a1ee7", "294cdd7d0", "546f14374", "744357d84", "b5c73eef8", "e3ebcca84", "e792ca4ac"]], "identity_text": "In contrib/postgres_fdw, avoid leaking open connections to remote servers when a user mapping or foreign server object is dropped (Bharath Rupireddy) Open connections that depend on a dropped user mapping or foreign server can no longer be referenced, but formerly they were kept around anyway for the duration of the local session.", "commit_aliases": ["03b7a1ee7", "294cdd7d0", "546f14374", "744357d84", "b5c73eef8", "e3ebcca84", "e792ca4ac"], "source_commits": ["03b7a1ee7"], "source_entry_id": "9.6.21/changes/030", "db_id": "f399b562c0bb929bd1ccbaae305e8cce", "patch_ids": ["3c76f22ef8913b94c4e6ead338845f49"], "statement_hash": "461409a705919445b3634fdc54051f13092bd1ba78d22aebeb8aa91ad8ac3cff", "relations": [{"rule": 2, "type": "equivalent", "target": "07b3d52fcd6588730c7b19a3496d631f", "evidence": {"same_day": true, "patch_ids": ["3c76f22ef8913b94c4e6ead338845f49"], "statement_hash": "461409a705919445b3634fdc54051f13092bd1ba78d22aebeb8aa91ad8ac3cff"}}, {"rule": 2, "type": "equivalent", "target": "412ddff9cf704bd6c0c68cf92fbc60a4", "evidence": {"same_day": true, "patch_ids": ["3c76f22ef8913b94c4e6ead338845f49"], "statement_hash": "461409a705919445b3634fdc54051f13092bd1ba78d22aebeb8aa91ad8ac3cff"}}, {"rule": 2, "type": "equivalent", "target": "83172563daa129fb8c64ae34ed53bf2f", "evidence": {"same_day": true, "patch_ids": ["3c76f22ef8913b94c4e6ead338845f49"], "statement_hash": "461409a705919445b3634fdc54051f13092bd1ba78d22aebeb8aa91ad8ac3cff"}}, {"rule": 2, "type": "equivalent", "target": "a2d068e904b5c1a58640118c8012a8c1", "evidence": {"same_day": true, "patch_ids": ["3c76f22ef8913b94c4e6ead338845f49"], "statement_hash": "461409a705919445b3634fdc54051f13092bd1ba78d22aebeb8aa91ad8ac3cff"}}, {"rule": 2, "type": "equivalent", "target": "d50c2a7314e2f31bc3bfd21c1d90889d", "evidence": {"same_day": true, "patch_ids": ["3c76f22ef8913b94c4e6ead338845f49"], "statement_hash": "461409a705919445b3634fdc54051f13092bd1ba78d22aebeb8aa91ad8ac3cff"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "412ddff9cf704bd6c0c68cf92fbc60a4", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "在 contrib/postgres_fdw 中，避免删除用户映射或外部服务器对象时泄漏已打开的远程服务器连接", "evidence": {"same_day": true, "patch_ids": ["3c76f22ef8913b94c4e6ead338845f49"], "statement_hash": "461409a705919445b3634fdc54051f13092bd1ba78d22aebeb8aa91ad8ac3cff"}, "url": "/docs/compare/?release=13.2#13.2-b1d2521af8d5b287", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "07b3d52fcd6588730c7b19a3496d631f", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "在 contrib/postgres_fdw 中，避免删除用户映射或外部服务器对象时泄漏已打开的远程服务器连接", "evidence": {"same_day": true, "patch_ids": ["3c76f22ef8913b94c4e6ead338845f49"], "statement_hash": "461409a705919445b3634fdc54051f13092bd1ba78d22aebeb8aa91ad8ac3cff"}, "url": "/docs/compare/?release=12.6#12.6-3e8b8f5cb238e924", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "83172563daa129fb8c64ae34ed53bf2f", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "在 contrib/postgres_fdw 中，避免删除用户映射或外部服务器对象时泄漏已打开的远程服务器连接", "evidence": {"same_day": true, "patch_ids": ["3c76f22ef8913b94c4e6ead338845f49"], "statement_hash": "461409a705919445b3634fdc54051f13092bd1ba78d22aebeb8aa91ad8ac3cff"}, "url": "/docs/compare/?release=11.11#11.11-e21e489d6568f4c4", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "a2d068e904b5c1a58640118c8012a8c1", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "在 contrib/postgres_fdw 中，避免删除用户映射或外部服务器对象时泄漏已打开的远程服务器连接", "evidence": {"same_day": true, "patch_ids": ["3c76f22ef8913b94c4e6ead338845f49"], "statement_hash": "461409a705919445b3634fdc54051f13092bd1ba78d22aebeb8aa91ad8ac3cff"}, "url": "/docs/compare/?release=10.16#10.16-e21e489d6568f4c4", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "d50c2a7314e2f31bc3bfd21c1d90889d", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "在 contrib/postgres_fdw 中，避免删除用户映射或外部服务器对象时泄漏到远程服务器的打开连接", "evidence": {"same_day": true, "patch_ids": ["3c76f22ef8913b94c4e6ead338845f49"], "statement_hash": "461409a705919445b3634fdc54051f13092bd1ba78d22aebeb8aa91ad8ac3cff"}, "url": "/docs/compare/?release=9.5.25#9.5.25-7d5fc5711d25e4a5", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-ba78bf8e33b032ae", "cves": [], "html": "<p>在 <code>contrib/pgcrypto</code> 中，检查 OpenSSL EVP 函数的错误返回（Michael Paquier）</p>\n<p>我们并不真的预期这里会出错，但这一更改能让静态分析工具安静下来。</p>", "text": "在 contrib/pgcrypto 中，检查 OpenSSL EVP 函数的错误返回（Michael Paquier） 我们并不真的预期这里会出错，但这一更改能让静态分析工具安静下来。", "title": "在 contrib/pgcrypto 中，检查 OpenSSL EVP 函数的错误返回", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "b7686f3261566e3af71bf8b171da401e70942fca3fae77cdaa312b3f49bf122e", "section_path": ["变更"], "commit_groups": [["28d1601ad", "5ba1df0f1", "95992e5ed", "b88afd8b6", "d7ecba937", "dfd8bf2b9", "f95d9fd81"]], "identity_text": "In contrib/pgcrypto, check for error returns from OpenSSL's EVP functions (Michael Paquier) We do not really expect errors here, but this change silences warnings from static analysis tools.", "commit_aliases": ["28d1601ad", "5ba1df0f1", "95992e5ed", "b88afd8b6", "d7ecba937", "dfd8bf2b9", "f95d9fd81"], "source_commits": ["95992e5ed"], "source_entry_id": "9.6.21/changes/031", "db_id": "cbb7bc3f0b65264df75ce5df285704b4", "patch_ids": ["816638745287462ad4cd0683af7bef88"], "statement_hash": "b49651f0b46e73a62dc0192cd979d9ad3784314b3e238a18f1a422b06027e0a3", "relations": [{"rule": 2, "type": "equivalent", "target": "611e79b45feb395f9f5b49589f5f36b0", "evidence": {"same_day": true, "patch_ids": ["816638745287462ad4cd0683af7bef88"], "statement_hash": "b49651f0b46e73a62dc0192cd979d9ad3784314b3e238a18f1a422b06027e0a3"}}, {"rule": 2, "type": "equivalent", "target": "a76720e667d44c9e133e8d3af6b1285e", "evidence": {"same_day": true, "patch_ids": ["816638745287462ad4cd0683af7bef88"], "statement_hash": "b49651f0b46e73a62dc0192cd979d9ad3784314b3e238a18f1a422b06027e0a3"}}, {"rule": 2, "type": "equivalent", "target": "cbe074842e9ede704031080b60dea276", "evidence": {"same_day": true, "patch_ids": ["816638745287462ad4cd0683af7bef88"], "statement_hash": "b49651f0b46e73a62dc0192cd979d9ad3784314b3e238a18f1a422b06027e0a3"}}, {"rule": 2, "type": "equivalent", "target": "e812da2a129f90601c5b5a5f8bac146e", "evidence": {"same_day": true, "patch_ids": ["816638745287462ad4cd0683af7bef88"], "statement_hash": "b49651f0b46e73a62dc0192cd979d9ad3784314b3e238a18f1a422b06027e0a3"}}, {"rule": 2, "type": "equivalent", "target": "ea3d57be655e7c2c6425c025119b4135", "evidence": {"same_day": true, "patch_ids": ["816638745287462ad4cd0683af7bef88"], "statement_hash": "b49651f0b46e73a62dc0192cd979d9ad3784314b3e238a18f1a422b06027e0a3"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e812da2a129f90601c5b5a5f8bac146e", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "在 contrib/pgcrypto 中，检查 OpenSSL EVP 函数返回的错误", "evidence": {"same_day": true, "patch_ids": ["816638745287462ad4cd0683af7bef88"], "statement_hash": "b49651f0b46e73a62dc0192cd979d9ad3784314b3e238a18f1a422b06027e0a3"}, "url": "/docs/compare/?release=13.2#13.2-d090ef57bcc511ad", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "ea3d57be655e7c2c6425c025119b4135", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "在 contrib/pgcrypto 中，检查 OpenSSL EVP 函数返回的错误", "evidence": {"same_day": true, "patch_ids": ["816638745287462ad4cd0683af7bef88"], "statement_hash": "b49651f0b46e73a62dc0192cd979d9ad3784314b3e238a18f1a422b06027e0a3"}, "url": "/docs/compare/?release=12.6#12.6-2adaac067666f9cc", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "a76720e667d44c9e133e8d3af6b1285e", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "在 contrib/pgcrypto 中，检查 OpenSSL EVP 函数返回的错误", "evidence": {"same_day": true, "patch_ids": ["816638745287462ad4cd0683af7bef88"], "statement_hash": "b49651f0b46e73a62dc0192cd979d9ad3784314b3e238a18f1a422b06027e0a3"}, "url": "/docs/compare/?release=11.11#11.11-33f34c9aa327a532", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "611e79b45feb395f9f5b49589f5f36b0", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "在 contrib/pgcrypto 中，检查 OpenSSL EVP 函数返回的错误", "evidence": {"same_day": true, "patch_ids": ["816638745287462ad4cd0683af7bef88"], "statement_hash": "b49651f0b46e73a62dc0192cd979d9ad3784314b3e238a18f1a422b06027e0a3"}, "url": "/docs/compare/?release=10.16#10.16-33f34c9aa327a532", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "cbe074842e9ede704031080b60dea276", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "在 contrib/pgcrypto 中，检查 OpenSSL EVP 函数的错误返回", "evidence": {"same_day": true, "patch_ids": ["816638745287462ad4cd0683af7bef88"], "statement_hash": "b49651f0b46e73a62dc0192cd979d9ad3784314b3e238a18f1a422b06027e0a3"}, "url": "/docs/compare/?release=9.5.25#9.5.25-ba78bf8e33b032ae", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-6616d6efb4e9d2ca", "cves": [], "html": "<p>在 <code>contrib/pg_trgm</code> 的 GiST 索引支持中，避免 picksplit 恰好在两个索引项上被调用这一罕见情况下的崩溃（Andrew Gierth、Alexander Korotkov）</p>", "text": "在 contrib/pg_trgm 的 GiST 索引支持中，避免 picksplit 恰好在两个索引项上被调用这一罕见情况下的崩溃（Andrew Gierth、Alexander Korotkov）", "title": "在 contrib/pg_trgm 的 GiST 索引支持中，避免 picksplit 恰好在两个索引项上被调用这一罕见情况下的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "9465d225a0625dfd0e531a013a9590afcfdf07f0a32add78230d839864da027f", "section_path": ["变更"], "commit_groups": [["068de9dd4", "245a35f96", "3836d4b64", "48ab1fa30", "4b212b7c8", "7e3dc147d", "7f69ed4ae"]], "identity_text": "In contrib/pg_trgm's GiST index support, avoid crash in the rare case that picksplit is called on exactly two index items (Andrew Gierth, Alexander Korotkov)", "commit_aliases": ["068de9dd4", "245a35f96", "3836d4b64", "48ab1fa30", "4b212b7c8", "7e3dc147d", "7f69ed4ae"], "source_commits": ["245a35f96"], "source_entry_id": "9.6.21/changes/032", "db_id": "13452285fa296349f6fd51c1b0a651da", "patch_ids": ["bf10d4e176177ff58451e29658a498b8"], "statement_hash": "a28ccd8a10f9e16697aee2864ad15cbcae28b5e44735ad28d769581822d0fa9a", "relations": [{"rule": 2, "type": "equivalent", "target": "2772094820893c5e0c7f1677ce5ee6f8", "evidence": {"same_day": true, "patch_ids": ["bf10d4e176177ff58451e29658a498b8"], "statement_hash": "a28ccd8a10f9e16697aee2864ad15cbcae28b5e44735ad28d769581822d0fa9a"}}, {"rule": 2, "type": "equivalent", "target": "74aadc1d6ace914f0b99c2813ef8bd4c", "evidence": {"same_day": true, "patch_ids": ["bf10d4e176177ff58451e29658a498b8"], "statement_hash": "a28ccd8a10f9e16697aee2864ad15cbcae28b5e44735ad28d769581822d0fa9a"}}, {"rule": 2, "type": "equivalent", "target": "bcf925524e756e8bf9a4c6820b930067", "evidence": {"same_day": true, "patch_ids": ["bf10d4e176177ff58451e29658a498b8"], "statement_hash": "a28ccd8a10f9e16697aee2864ad15cbcae28b5e44735ad28d769581822d0fa9a"}}, {"rule": 2, "type": "equivalent", "target": "bf3eb6147a63892fe08868d269324a50", "evidence": {"same_day": true, "patch_ids": ["bf10d4e176177ff58451e29658a498b8"], "statement_hash": "a28ccd8a10f9e16697aee2864ad15cbcae28b5e44735ad28d769581822d0fa9a"}}, {"rule": 2, "type": "equivalent", "target": "c8ed84d747eac0b448c098c1b635f094", "evidence": {"same_day": true, "patch_ids": ["bf10d4e176177ff58451e29658a498b8"], "statement_hash": "a28ccd8a10f9e16697aee2864ad15cbcae28b5e44735ad28d769581822d0fa9a"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c8ed84d747eac0b448c098c1b635f094", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "在 contrib/pg_trgm 的 GiST 索引支持中，避免恰好对两个索引项调用 picksplit 这一罕见情况下的崩溃", "evidence": {"same_day": true, "patch_ids": ["bf10d4e176177ff58451e29658a498b8"], "statement_hash": "a28ccd8a10f9e16697aee2864ad15cbcae28b5e44735ad28d769581822d0fa9a"}, "url": "/docs/compare/?release=13.2#13.2-0873fefda9178ae4", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "bf3eb6147a63892fe08868d269324a50", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "在 contrib/pg_trgm 的 GiST 索引支持中，避免恰好对两个索引项调用 picksplit 这一罕见情况下的崩溃", "evidence": {"same_day": true, "patch_ids": ["bf10d4e176177ff58451e29658a498b8"], "statement_hash": "a28ccd8a10f9e16697aee2864ad15cbcae28b5e44735ad28d769581822d0fa9a"}, "url": "/docs/compare/?release=12.6#12.6-837ee7dac24eac0d", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "2772094820893c5e0c7f1677ce5ee6f8", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "在 contrib/pg_trgm 的 GiST 索引支持中，避免恰好对两个索引项调用 picksplit 这一罕见情况下的崩溃", "evidence": {"same_day": true, "patch_ids": ["bf10d4e176177ff58451e29658a498b8"], "statement_hash": "a28ccd8a10f9e16697aee2864ad15cbcae28b5e44735ad28d769581822d0fa9a"}, "url": "/docs/compare/?release=11.11#11.11-431ab861d1af6569", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "bcf925524e756e8bf9a4c6820b930067", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "在 contrib/pg_trgm 的 GiST 索引支持中，避免恰好对两个索引项调用 picksplit 这一罕见情况下的崩溃", "evidence": {"same_day": true, "patch_ids": ["bf10d4e176177ff58451e29658a498b8"], "statement_hash": "a28ccd8a10f9e16697aee2864ad15cbcae28b5e44735ad28d769581822d0fa9a"}, "url": "/docs/compare/?release=10.16#10.16-431ab861d1af6569", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "74aadc1d6ace914f0b99c2813ef8bd4c", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "在 contrib/pg_trgm 的 GiST 索引支持中，避免 picksplit 恰好在两个索引项上被调用这一罕见情况下的崩溃", "evidence": {"same_day": true, "patch_ids": ["bf10d4e176177ff58451e29658a498b8"], "statement_hash": "a28ccd8a10f9e16697aee2864ad15cbcae28b5e44735ad28d769581822d0fa9a"}, "url": "/docs/compare/?release=9.5.25#9.5.25-6616d6efb4e9d2ca", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-373ecccbd4b5e54f", "cves": [], "html": "<p>修复 <code>contrib/pg_prewarm</code> 和 <code>contrib/postgres_fdw</code> 中超时的计算错误（Alexey Kondratov、Tom Lane）</p>\n<p><code>contrib/pg_prewarm</code> 的 autoprewarm 父进程的主循环把期望的睡眠时间低估了 1000 倍，导致消耗远超预期的 CPU。在等待远程服务器的结果时，<code>contrib/postgres_fdw</code> 把期望的超时高估了 1000 倍（不过这个错误已被 60 秒的钳制所缓解）。</p>\n<p>这两个错误都源于把秒和微秒错误地转换为毫秒。引入新的 API <code>TimestampDifferenceMilliseconds()</code>，使将来更容易做对。</p>", "text": "修复 contrib/pg_prewarm 和 contrib/postgres_fdw 中超时的计算错误（Alexey Kondratov、Tom Lane） contrib/pg_prewarm 的 autoprewarm 父进程的主循环把期望的睡眠时间低估了 1000 倍，导致消耗远超预期的 CPU。在等待远程服务器的结果时，contrib/postgres_fdw 把期望的超时高估了 1000 倍（不过这个错误已被 60 秒的钳制所缓解）。 这两个错误都源于把秒和微秒错误地转换为毫秒。引入新的 API TimestampDifferenceMilliseconds()，使将来更容易做对。", "title": "修复 contrib/pg_prewarm 和 contrib/postgres_fdw 中超时的计算错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "b88e0e777b67f2a2cf3a7d5b52f9ae90ab0653e1c4910d5498849b8392881488", "section_path": ["变更"], "commit_groups": [["171c457cd", "210564a74", "3a89ea0eb", "afce7908d", "cd39c23a2", "e87139b43", "ec29427ce"]], "identity_text": "Fix miscalculation of timeouts in contrib/pg_prewarm and contrib/postgres_fdw (Alexey Kondratov, Tom Lane) The main loop in contrib/pg_prewarm's autoprewarm parent process underestimated its desired sleep time by a factor of 1000, causing it to consume much more CPU than intended. When waiting for a result from a remote server, contrib/postgres_fdw overestimated the desired timeout by a factor of 1000 (though this error had been mitigated by imposing a clamp to 60 seconds). Both of these errors stemmed from incorrectly converting seconds-and-microseconds to milliseconds. Introduce a new API TimestampDifferenceMilliseconds() to make it easier to get this right in the future.", "commit_aliases": ["171c457cd", "210564a74", "3a89ea0eb", "afce7908d", "cd39c23a2", "e87139b43", "ec29427ce"], "source_commits": ["cd39c23a2"], "source_entry_id": "9.6.21/changes/033", "db_id": "74a900e3ca707c8a971c55a3af1c980f", "patch_ids": ["92dbdc6e22269c8e460d527a5cd5f5c2"], "statement_hash": "ed8c163247d164a4a09c090b5a674552b88992a60b771ccd6098530e5650148a", "relations": [{"rule": 2, "type": "equivalent", "target": "044720a8bfd18c6ea3257ec1d40b8784", "evidence": {"same_day": true, "patch_ids": ["92dbdc6e22269c8e460d527a5cd5f5c2"], "statement_hash": "ed8c163247d164a4a09c090b5a674552b88992a60b771ccd6098530e5650148a"}}, {"rule": 2, "type": "equivalent", "target": "07b621f1e6578253c7fab49295494cd7", "evidence": {"same_day": true, "patch_ids": ["92dbdc6e22269c8e460d527a5cd5f5c2"], "statement_hash": "ed8c163247d164a4a09c090b5a674552b88992a60b771ccd6098530e5650148a"}}, {"rule": 2, "type": "equivalent", "target": "16cb32fd5cd90108fc979b3098e1b881", "evidence": {"same_day": true, "patch_ids": ["92dbdc6e22269c8e460d527a5cd5f5c2"], "statement_hash": "ed8c163247d164a4a09c090b5a674552b88992a60b771ccd6098530e5650148a"}}, {"rule": 2, "type": "equivalent", "target": "2acf41a696d058fbc5eebaf7d10ddfe3", "evidence": {"same_day": true, "patch_ids": ["92dbdc6e22269c8e460d527a5cd5f5c2"], "statement_hash": "ed8c163247d164a4a09c090b5a674552b88992a60b771ccd6098530e5650148a"}}, {"rule": 2, "type": "equivalent", "target": "face4799abd6ac7f943912d2ad8e372f", "evidence": {"same_day": true, "patch_ids": ["92dbdc6e22269c8e460d527a5cd5f5c2"], "statement_hash": "ed8c163247d164a4a09c090b5a674552b88992a60b771ccd6098530e5650148a"}}], "version": "9.6.21", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "044720a8bfd18c6ea3257ec1d40b8784", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "修复 contrib/pg_prewarm 和 contrib/postgres_fdw 中错误的超时计算", "evidence": {"same_day": true, "patch_ids": ["92dbdc6e22269c8e460d527a5cd5f5c2"], "statement_hash": "ed8c163247d164a4a09c090b5a674552b88992a60b771ccd6098530e5650148a"}, "url": "/docs/compare/?release=13.2#13.2-460ef1dc991025d6", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "face4799abd6ac7f943912d2ad8e372f", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "修复 contrib/pg_prewarm 和 contrib/postgres_fdw 中错误的超时计算", "evidence": {"same_day": true, "patch_ids": ["92dbdc6e22269c8e460d527a5cd5f5c2"], "statement_hash": "ed8c163247d164a4a09c090b5a674552b88992a60b771ccd6098530e5650148a"}, "url": "/docs/compare/?release=12.6#12.6-7ca6e1828cc4b1c4", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "2acf41a696d058fbc5eebaf7d10ddfe3", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "修复 contrib/pg_prewarm 和 contrib/postgres_fdw 中错误的超时计算", "evidence": {"same_day": true, "patch_ids": ["92dbdc6e22269c8e460d527a5cd5f5c2"], "statement_hash": "ed8c163247d164a4a09c090b5a674552b88992a60b771ccd6098530e5650148a"}, "url": "/docs/compare/?release=11.11#11.11-6ffcdfeeb8e9ba4d", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "16cb32fd5cd90108fc979b3098e1b881", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "修复 contrib/pg_prewarm 和 contrib/postgres_fdw 中错误的超时计算", "evidence": {"same_day": true, "patch_ids": ["92dbdc6e22269c8e460d527a5cd5f5c2"], "statement_hash": "ed8c163247d164a4a09c090b5a674552b88992a60b771ccd6098530e5650148a"}, "url": "/docs/compare/?release=10.16#10.16-6ffcdfeeb8e9ba4d", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "07b621f1e6578253c7fab49295494cd7", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "修复 contrib/pg_prewarm 和 contrib/postgres_fdw 中超时的计算错误", "evidence": {"same_day": true, "patch_ids": ["92dbdc6e22269c8e460d527a5cd5f5c2"], "statement_hash": "ed8c163247d164a4a09c090b5a674552b88992a60b771ccd6098530e5650148a"}, "url": "/docs/compare/?release=9.5.25#9.5.25-373ecccbd4b5e54f", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-c67fe5e4004c975a", "cves": [], "html": "<p>改进 <span>configure</span> 在 macOS 上选择 <code>PG_SYSROOT</code> 的启发式（Tom Lane）</p>\n<p>当 Xcode 比底层操作系统更新时，新方法更可能产生理想的结果。选择与操作系统版本不匹配的 sysroot 可能导致不可用的可执行文件。</p>", "text": "改进 configure 在 macOS 上选择 PG_SYSROOT 的启发式（Tom Lane） 当 Xcode 比底层操作系统更新时，新方法更可能产生理想的结果。选择与操作系统版本不匹配的 sysroot 可能导致不可用的可执行文件。", "title": "改进 configure 在 macOS 上选择 PG_SYSROOT 的启发式", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "76ce80fabad8c29c78f1213540cae6e6de6c360915792d65f61172b5f8282ae3", "section_path": ["变更"], "commit_groups": [["046c8face", "3934543c2", "4823621db", "5fa060c8f", "f44ae4db5", "f5d044eae", "fc6d08b27"], ["175f716a8", "561dd8d8a", "6671e8194", "9d23c15a0", "a3345383d", "cbcf7b130", "cbcff1729"]], "identity_text": "Improve configure's heuristics for selecting PG_SYSROOT on macOS (Tom Lane) The new method is more likely to produce desirable results when Xcode is newer than the underlying operating system. Choosing a sysroot that does not match the OS version may result in nonfunctional executables.", "commit_aliases": ["046c8face", "175f716a8", "3934543c2", "4823621db", "561dd8d8a", "5fa060c8f", "6671e8194", "9d23c15a0", "a3345383d", "cbcf7b130", "cbcff1729", "f44ae4db5", "f5d044eae", "fc6d08b27"], "source_commits": ["cbcf7b130", "fc6d08b27"], "source_entry_id": "9.6.21/changes/034", "db_id": "94f9a8122f50186e2c25690304ebbe59", "patch_ids": ["b98de5497cc4e1bedaa602e65ed903c3", "ffb94247fc42b8a6e9cf9a9bb7bd68ef"], "statement_hash": "16d396557e7e198bde05a3d447117a5a2e509700efc43f3a2dd68fa0bc0f941f", "relations": [{"rule": 2, "type": "equivalent", "target": "0d35ad6bcaa8006c1bfdbd27bc228140", "evidence": {"same_day": true, "patch_ids": ["b98de5497cc4e1bedaa602e65ed903c3", "ffb94247fc42b8a6e9cf9a9bb7bd68ef"], "statement_hash": "16d396557e7e198bde05a3d447117a5a2e509700efc43f3a2dd68fa0bc0f941f"}}, {"rule": 2, "type": "equivalent", "target": "28ae8e08a4c561e54d615965283db54d", "evidence": {"same_day": true, "patch_ids": ["b98de5497cc4e1bedaa602e65ed903c3", "ffb94247fc42b8a6e9cf9a9bb7bd68ef"], "statement_hash": "16d396557e7e198bde05a3d447117a5a2e509700efc43f3a2dd68fa0bc0f941f"}}, {"rule": 2, "type": "equivalent", "target": "332172d08954d7c312db25147cab116e", "evidence": {"same_day": true, "patch_ids": ["b98de5497cc4e1bedaa602e65ed903c3", "ffb94247fc42b8a6e9cf9a9bb7bd68ef"], "statement_hash": "16d396557e7e198bde05a3d447117a5a2e509700efc43f3a2dd68fa0bc0f941f"}}, {"rule": 2, "type": "equivalent", "target": "6afa264d9210ef5c24db0048e08c4cbd", "evidence": {"same_day": true, "patch_ids": ["b98de5497cc4e1bedaa602e65ed903c3", "ffb94247fc42b8a6e9cf9a9bb7bd68ef"], "statement_hash": "16d396557e7e198bde05a3d447117a5a2e509700efc43f3a2dd68fa0bc0f941f"}}, {"rule": 2, "type": "equivalent", "target": "ecda54d3e1145aa5606148955d54fd33", "evidence": {"same_day": true, "patch_ids": ["b98de5497cc4e1bedaa602e65ed903c3", "ffb94247fc42b8a6e9cf9a9bb7bd68ef"], "statement_hash": "16d396557e7e198bde05a3d447117a5a2e509700efc43f3a2dd68fa0bc0f941f"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ecda54d3e1145aa5606148955d54fd33", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "改进 configure 在 macOS 上选择 PG_SYSROOT 的启发式方法", "evidence": {"same_day": true, "patch_ids": ["b98de5497cc4e1bedaa602e65ed903c3", "ffb94247fc42b8a6e9cf9a9bb7bd68ef"], "statement_hash": "16d396557e7e198bde05a3d447117a5a2e509700efc43f3a2dd68fa0bc0f941f"}, "url": "/docs/compare/?release=13.2#13.2-7ed7f49fb60210a1", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "28ae8e08a4c561e54d615965283db54d", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "改进 configure 在 macOS 上选择 PG_SYSROOT 的启发式方法", "evidence": {"same_day": true, "patch_ids": ["b98de5497cc4e1bedaa602e65ed903c3", "ffb94247fc42b8a6e9cf9a9bb7bd68ef"], "statement_hash": "16d396557e7e198bde05a3d447117a5a2e509700efc43f3a2dd68fa0bc0f941f"}, "url": "/docs/compare/?release=12.6#12.6-6bc9f88081a9f69b", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "0d35ad6bcaa8006c1bfdbd27bc228140", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "改进 configure 在 macOS 上选择 PG_SYSROOT 的启发式方法", "evidence": {"same_day": true, "patch_ids": ["b98de5497cc4e1bedaa602e65ed903c3", "ffb94247fc42b8a6e9cf9a9bb7bd68ef"], "statement_hash": "16d396557e7e198bde05a3d447117a5a2e509700efc43f3a2dd68fa0bc0f941f"}, "url": "/docs/compare/?release=11.11#11.11-26c57269af904718", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "6afa264d9210ef5c24db0048e08c4cbd", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "改进 configure 在 macOS 上选择 PG_SYSROOT 的启发式方法", "evidence": {"same_day": true, "patch_ids": ["b98de5497cc4e1bedaa602e65ed903c3", "ffb94247fc42b8a6e9cf9a9bb7bd68ef"], "statement_hash": "16d396557e7e198bde05a3d447117a5a2e509700efc43f3a2dd68fa0bc0f941f"}, "url": "/docs/compare/?release=10.16#10.16-26c57269af904718", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "332172d08954d7c312db25147cab116e", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "改进 configure 在 macOS 上选择 PG_SYSROOT 的启发式", "evidence": {"same_day": true, "patch_ids": ["b98de5497cc4e1bedaa602e65ed903c3", "ffb94247fc42b8a6e9cf9a9bb7bd68ef"], "statement_hash": "16d396557e7e198bde05a3d447117a5a2e509700efc43f3a2dd68fa0bc0f941f"}, "url": "/docs/compare/?release=9.5.25#9.5.25-c67fe5e4004c975a", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-6cb74ef17cf0e1a6", "cves": [], "html": "<p>在 macOS 上构建时，在链接步骤和编译步骤中一样指定 <code>-isysroot</code>（James Hilliard）</p>\n<p>这同样改进了 Xcode 与操作系统不同步时的结果。</p>", "text": "在 macOS 上构建时，在链接步骤和编译步骤中一样指定 -isysroot（James Hilliard） 这同样改进了 Xcode 与操作系统不同步时的结果。", "title": "在 macOS 上构建时，在链接步骤和编译步骤中一样指定 -isysroot", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "3fbf3ef2c9896419ad33ce337280e8e803c94bf7fcb1dde7573f850e308bbfd7", "section_path": ["变更"], "commit_groups": [["153bf8d20", "2bb8c0f1d", "49407dc32", "5b8360427", "9e9a31bd0", "d01e37845", "e7abc1111"]], "identity_text": "While building on macOS, specify -isysroot in link steps as well as compile steps (James Hilliard) This likewise improves the results when Xcode is out of sync with the operating system.", "commit_aliases": ["153bf8d20", "2bb8c0f1d", "49407dc32", "5b8360427", "9e9a31bd0", "d01e37845", "e7abc1111"], "source_commits": ["e7abc1111"], "source_entry_id": "9.6.21/changes/035", "db_id": "00db00872ee8dd93b8ad2fddef7d7caa", "patch_ids": ["80130960bc3c7445ce6eed2f109cc92b"], "statement_hash": "d045eecb04941f70ac530e0e53b2b1ef916a0750a18a1105c60364660f4df848", "relations": [{"rule": 2, "type": "equivalent", "target": "2522eabd5feafb099b7f0b87e4ee4167", "evidence": {"same_day": true, "patch_ids": ["80130960bc3c7445ce6eed2f109cc92b"], "statement_hash": "d045eecb04941f70ac530e0e53b2b1ef916a0750a18a1105c60364660f4df848"}}, {"rule": 2, "type": "equivalent", "target": "8de8a5a4d24b7e9f21adea1c8492904a", "evidence": {"same_day": true, "patch_ids": ["80130960bc3c7445ce6eed2f109cc92b"], "statement_hash": "d045eecb04941f70ac530e0e53b2b1ef916a0750a18a1105c60364660f4df848"}}, {"rule": 2, "type": "equivalent", "target": "aeff8a687ff80c37bd0151fb3b282a9f", "evidence": {"same_day": true, "patch_ids": ["80130960bc3c7445ce6eed2f109cc92b"], "statement_hash": "d045eecb04941f70ac530e0e53b2b1ef916a0750a18a1105c60364660f4df848"}}, {"rule": 2, "type": "equivalent", "target": "c2af11e4ba24a0887d5a17c0dbbbcc87", "evidence": {"same_day": true, "patch_ids": ["80130960bc3c7445ce6eed2f109cc92b"], "statement_hash": "d045eecb04941f70ac530e0e53b2b1ef916a0750a18a1105c60364660f4df848"}}, {"rule": 2, "type": "equivalent", "target": "e12b96d5455ac0d984ccdbb7cc5e7b09", "evidence": {"same_day": true, "patch_ids": ["80130960bc3c7445ce6eed2f109cc92b"], "statement_hash": "d045eecb04941f70ac530e0e53b2b1ef916a0750a18a1105c60364660f4df848"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e12b96d5455ac0d984ccdbb7cc5e7b09", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "在 macOS 上构建时，在链接步骤和编译步骤中都指定 -isysroot", "evidence": {"same_day": true, "patch_ids": ["80130960bc3c7445ce6eed2f109cc92b"], "statement_hash": "d045eecb04941f70ac530e0e53b2b1ef916a0750a18a1105c60364660f4df848"}, "url": "/docs/compare/?release=13.2#13.2-a7db8bd1f039decd", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "c2af11e4ba24a0887d5a17c0dbbbcc87", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "在 macOS 上构建时，在链接步骤和编译步骤中都指定 -isysroot", "evidence": {"same_day": true, "patch_ids": ["80130960bc3c7445ce6eed2f109cc92b"], "statement_hash": "d045eecb04941f70ac530e0e53b2b1ef916a0750a18a1105c60364660f4df848"}, "url": "/docs/compare/?release=12.6#12.6-84b4eae14087132f", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "8de8a5a4d24b7e9f21adea1c8492904a", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "在 macOS 上构建时，在链接步骤和编译步骤中都指定 -isysroot", "evidence": {"same_day": true, "patch_ids": ["80130960bc3c7445ce6eed2f109cc92b"], "statement_hash": "d045eecb04941f70ac530e0e53b2b1ef916a0750a18a1105c60364660f4df848"}, "url": "/docs/compare/?release=11.11#11.11-d551fe959dfa4dbc", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "aeff8a687ff80c37bd0151fb3b282a9f", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "在 macOS 上构建时，在链接步骤和编译步骤中都指定 -isysroot", "evidence": {"same_day": true, "patch_ids": ["80130960bc3c7445ce6eed2f109cc92b"], "statement_hash": "d045eecb04941f70ac530e0e53b2b1ef916a0750a18a1105c60364660f4df848"}, "url": "/docs/compare/?release=10.16#10.16-d551fe959dfa4dbc", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "2522eabd5feafb099b7f0b87e4ee4167", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "在 macOS 上构建时，在链接步骤和编译步骤中一样指定 -isysroot", "evidence": {"same_day": true, "patch_ids": ["80130960bc3c7445ce6eed2f109cc92b"], "statement_hash": "d045eecb04941f70ac530e0e53b2b1ef916a0750a18a1105c60364660f4df848"}, "url": "/docs/compare/?release=9.5.25#9.5.25-6cb74ef17cf0e1a6", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}, {"id": "9.6.21-26398dcabece8712", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2021a，涉及俄罗斯（伏尔加格勒时区）和南苏丹的夏令时法规变更，以及澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史修正。</p>\n<p>值得注意的是，Australia/Currie 时区已被修正到与 Australia/Hobart 相同的程度。</p>", "text": "更新时区数据文件到 tzdata 版本 2021a，涉及俄罗斯（伏尔加格勒时区）和南苏丹的夏令时法规变更，以及澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史修正。 值得注意的是，Australia/Currie 时区已被修正到与 Australia/Hobart 相同的程度。", "title": "更新时区数据文件到 tzdata 版本 2021a，涉及俄罗斯（伏尔加格勒时区）和南苏丹的夏令时法规变更，以及澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.21/#id-1.11.6.8.6", "source_hash": "84286df1d5ce8921792821fe480849709ed150611aa519d52b04f25dfb6a3fc1", "section_path": ["变更"], "commit_groups": [["58a545344", "5db6ba303", "728971d5f", "7e0786751", "c26a0865d", "c7edf4ac2", "c82c015b5"]], "identity_text": "Update time zone data files to tzdata release 2021a for DST law changes in Russia (Volgograd zone) and South Sudan, plus historical corrections for Australia, Bahamas, Belize, Bermuda, Ghana, Israel, Kenya, Nigeria, Palestine, Seychelles, and Vanuatu. Notably, the Australia/Currie zone has been corrected to the point where it is identical to Australia/Hobart.", "commit_aliases": ["58a545344", "5db6ba303", "728971d5f", "7e0786751", "c26a0865d", "c7edf4ac2", "c82c015b5"], "source_commits": ["7e0786751"], "source_entry_id": "9.6.21/changes/036", "db_id": "da40f8f97e1684da7e34d005f155d61a", "patch_ids": ["7a5adfdb0365a88b0dba369addc9e369"], "statement_hash": "f4579da37e63d89946917caf47ef063989d54c7bfafb7ec83887d0e03c2df92c", "relations": [{"rule": 2, "type": "equivalent", "target": "13b3d5c0d37ba51a84d68cc873bc98b7", "evidence": {"same_day": true, "patch_ids": ["7a5adfdb0365a88b0dba369addc9e369"]}}, {"rule": 2, "type": "equivalent", "target": "a8793fc6cdc85db585208fac7583d7c2", "evidence": {"same_day": true, "patch_ids": ["7a5adfdb0365a88b0dba369addc9e369"]}}, {"rule": 2, "type": "equivalent", "target": "b38670a4a6df6b0f68d2a68e55b07fd3", "evidence": {"same_day": true, "patch_ids": ["7a5adfdb0365a88b0dba369addc9e369"], "statement_hash": "f4579da37e63d89946917caf47ef063989d54c7bfafb7ec83887d0e03c2df92c"}}, {"rule": 2, "type": "equivalent", "target": "cb9124df6411b29fcb6c954a1393bf96", "evidence": {"same_day": true, "patch_ids": ["7a5adfdb0365a88b0dba369addc9e369"], "statement_hash": "f4579da37e63d89946917caf47ef063989d54c7bfafb7ec83887d0e03c2df92c"}}, {"rule": 2, "type": "equivalent", "target": "ef8fcf4bc85f6a2f84c3cc4000f5ff63", "evidence": {"same_day": true, "patch_ids": ["7a5adfdb0365a88b0dba369addc9e369"], "statement_hash": "f4579da37e63d89946917caf47ef063989d54c7bfafb7ec83887d0e03c2df92c"}}], "version": "9.6.21", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a8793fc6cdc85db585208fac7583d7c2", "kind": "equivalent", "version": "13.2", "label": "13.2", "title": "将时区数据文件更新到 tzdata 2021a 版，以反映俄罗斯（Volgograd 时区）和南苏丹的夏令时法规变更，并修正澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史数据。", "evidence": {"same_day": true, "patch_ids": ["7a5adfdb0365a88b0dba369addc9e369"]}, "url": "/docs/compare/?release=13.2#13.2-38f2e080cb6caf67", "source_url": "/docs/release/13.2/#id-1.11.6.27.5"}, {"db_id": "13b3d5c0d37ba51a84d68cc873bc98b7", "kind": "equivalent", "version": "12.6", "label": "12.6", "title": "将时区数据文件更新到 tzdata 2021a 版，以反映俄罗斯（Volgograd 时区）和南苏丹的夏令时法规变更，并修正澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史数据。", "evidence": {"same_day": true, "patch_ids": ["7a5adfdb0365a88b0dba369addc9e369"]}, "url": "/docs/compare/?release=12.6#12.6-15453ed360de50a6", "source_url": "/docs/release/12.6/#id-1.11.6.22.5"}, {"db_id": "ef8fcf4bc85f6a2f84c3cc4000f5ff63", "kind": "equivalent", "version": "11.11", "label": "11.11", "title": "将时区数据文件更新到 tzdata 2021a 版，以反映俄罗斯（伏尔加格勒时区）和南苏丹的夏令时法规变更，并修正澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史数据。", "evidence": {"same_day": true, "patch_ids": ["7a5adfdb0365a88b0dba369addc9e369"], "statement_hash": "f4579da37e63d89946917caf47ef063989d54c7bfafb7ec83887d0e03c2df92c"}, "url": "/docs/compare/?release=11.11#11.11-d223c743b7cb02c8", "source_url": "/docs/release/11.11/#id-1.11.6.16.5"}, {"db_id": "cb9124df6411b29fcb6c954a1393bf96", "kind": "equivalent", "version": "10.16", "label": "10.16", "title": "将时区数据文件更新到 tzdata 2021a 版，以反映俄罗斯（伏尔加格勒时区）和南苏丹的夏令时法规变更，并修正澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史数据。", "evidence": {"same_day": true, "patch_ids": ["7a5adfdb0365a88b0dba369addc9e369"], "statement_hash": "f4579da37e63d89946917caf47ef063989d54c7bfafb7ec83887d0e03c2df92c"}, "url": "/docs/compare/?release=10.16#10.16-d223c743b7cb02c8", "source_url": "/docs/release/10.16/#id-1.11.6.12.5"}, {"db_id": "b38670a4a6df6b0f68d2a68e55b07fd3", "kind": "equivalent", "version": "9.5.25", "label": "9.5.25", "title": "更新时区数据文件到 tzdata 版本 2021a，涉及俄罗斯（伏尔加格勒时区）和南苏丹的夏令时法规变更，以及澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史修正。", "evidence": {"same_day": true, "patch_ids": ["7a5adfdb0365a88b0dba369addc9e369"], "statement_hash": "f4579da37e63d89946917caf47ef063989d54c7bfafb7ec83887d0e03c2df92c"}, "url": "/docs/compare/?release=9.5.25#9.5.25-26398dcabece8712", "source_url": "/docs/release/9.5.25/#id-1.11.6.5.6"}]}]}, {"date": "2020-11-12", "build": "9.6.20", "major": "9.6", "minor": 20, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.20", "eol_date": "2021-11-11", "date_text": "2020-11-12", "supported": false, "manual_url": "/docs/9.6/release-9-6-20.html", "source_url": "/docs/release/9.6.20/", "entry_count": 36, "placeholder": false, "content_hash": "3539e604ba2c60928726d87b246b3bb2e19660545418e5fa579dcc2d43e0a8e4", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 36, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.16 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-16.html\" title=\"E.9. 版本 9.6.16\">第 E.9 节</a>。</p>", "compatibility_count": 0, "label": "9.6.20", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2148, "support_days": -1784, "entries": [{"id": "9.6.20-30b9a257c6e59de0", "cves": ["CVE-2020-25695"], "html": "<p>禁止在索引表达式和物化视图查询中执行 <code>DECLARE CURSOR ... WITH HOLD</code> 以及触发延迟触发器（Noah Misch）</p>\n<p>这本质上是<span>“<span>安全受限操作</span>”</span>沙箱机制中的一种泄漏。有权创建非临时 SQL 对象的攻击者可以利用此泄漏以超级用户身份执行任意 SQL 代码。</p>\n<p><span>PostgreSQL</span> 项目感谢 Etienne Stalmans 报告此问题。(CVE-2020-25695)</p>", "text": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器（Noah Misch） 这本质上是“安全受限操作”沙箱机制中的一种泄漏。有权创建非临时 SQL 对象的攻击者可以利用此泄漏以超级用户身份执行任意 SQL 代码。 PostgreSQL 项目感谢 Etienne Stalmans 报告此问题。(CVE-2020-25695)", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "814cb76c05a030795ba5c25d2470a376d527e8335ab582ab70a276adbb08d59f", "section_path": ["变更"], "commit_groups": [["0c3185e96", "43ebfea5a", "ac8f6243c", "aefc625de", "c90c84b3f", "f97ecea1e", "ff3de4c21"]], "identity_text": "Block DECLARE CURSOR ... WITH HOLD and firing of deferred triggers within index expressions and materialized view queries (Noah Misch) This is essentially a leak in the security restricted operation sandbox mechanism. An attacker having permission to create non-temporary SQL objects could parlay this leak to execute arbitrary SQL code as a superuser. The PostgreSQL Project thanks Etienne Stalmans for reporting this problem. (CVE-2020-25695)", "commit_aliases": ["0c3185e96", "43ebfea5a", "ac8f6243c", "aefc625de", "c90c84b3f", "f97ecea1e", "ff3de4c21"], "source_commits": ["ff3de4c21"], "source_entry_id": "9.6.20/changes/001", "db_id": "32a38be39164587561246274bce57c11", "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24", "relations": [{"rule": 2, "type": "equivalent", "target": "27b2bc4c97af3cc7f3e3232b22c140cb", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}}, {"rule": 2, "type": "equivalent", "target": "754d0fa35c630453e7e8be4195e0d8a5", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}}, {"rule": 2, "type": "equivalent", "target": "b80a99246721d0a6d0290a38f05221c7", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}}, {"rule": 2, "type": "equivalent", "target": "c1e18d9b246a26244718162c48be2564", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}}, {"rule": 2, "type": "equivalent", "target": "d25e683f09292446d7a493aa4076cf0a", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}}], "version": "9.6.20", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "d25e683f09292446d7a493aa4076cf0a", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}, "url": "/docs/compare/?release=13.1#13.1-72b4bd56189200a8", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "754d0fa35c630453e7e8be4195e0d8a5", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}, "url": "/docs/compare/?release=12.5#12.5-58ffc2453b836b7c", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "27b2bc4c97af3cc7f3e3232b22c140cb", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}, "url": "/docs/compare/?release=11.10#11.10-30b9a257c6e59de0", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "c1e18d9b246a26244718162c48be2564", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}, "url": "/docs/compare/?release=10.15#10.15-30b9a257c6e59de0", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "b80a99246721d0a6d0290a38f05221c7", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}, "url": "/docs/compare/?release=9.5.24#9.5.24-30b9a257c6e59de0", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-be5bff9c020a9205", "cves": ["CVE-2020-25694"], "html": "<p>修复 <span>pg_dump</span>、<span>pg_restore</span>、 <span>clusterdb</span>、<span>reindexdb</span> 和 <span>vacuumdb</span> 中复杂连接字符串参数的用法（Tom Lane）</p>\n<p><span>pg_dump</span> 和 <span>pg_restore</span> 的 <code>-d</code> 参数，或所述其他程序的 <code>--maintenance-db</code> 参数，可以是包含多个连接参数的<span>“<span>连接字符串</span>”</span>而不只是数据库名。在这些程序需要发起额外连接的场合（如并行处理或多数据库处理），连接字符串被遗忘，额外连接只使用了基本连接参数（数据库名、主机、端口和用户名）。如果连接字符串包含任何其他必要信息（如非默认的 SSL 或 GSS 参数），这可能导致连接失败。更糟的是，连接可能成功但没有按预期加密，或者容易受到原本预期的连接参数可以阻止的中间人攻击。（CVE-2020-25694）</p>", "text": "修复 pg_dump、pg_restore、 clusterdb、reindexdb 和 vacuumdb 中复杂连接字符串参数的用法（Tom Lane） pg_dump 和 pg_restore 的 -d 参数，或所述其他程序的 --maintenance-db 参数，可以是包含多个连接参数的“连接字符串”而不只是数据库名。在这些程序需要发起额外连接的场合（如并行处理或多数据库处理），连接字符串被遗忘，额外连接只使用了基本连接参数（数据库名、主机、端口和用户名）。如果连接字符串包含任何其他必要信息（如非默认的 SSL 或 GSS 参数），这可能导致连接失败。更糟的是，连接可能成功但没有按预期加密，或者容易受到原本预期的连接参数可以阻止的中间人攻击。（CVE-2020-25694）", "title": "修复 pg_dump、pg_restore、 clusterdb、reindexdb 和 vacuumdb 中复杂连接字符串参数的用法", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "628fa1a73c120a108ce71d654206232b30b8e0bf5e289b9d768f34073e7b20a7", "section_path": ["变更"], "commit_groups": [["1738a61c8", "1888ff8d0", "56b46d3a1", "7c154f2fd", "a45bc8a4f", "cb8885ac4", "fb93f784f"], ["1814f915b", "5a9f99bed", "5c78f7977", "68f236993", "8e5793ab6", "c6d0b9b16", "da129a04a"]], "identity_text": "Fix usage of complex connection-string parameters in pg_dump, pg_restore, clusterdb, reindexdb, and vacuumdb (Tom Lane) The -d parameter of pg_dump and pg_restore, or the --maintenance-db parameter of the other programs mentioned, can be a connection string containing multiple connection parameters rather than just a database name. In cases where these programs need to initiate additional connections, such as parallel processing or processing of multiple databases, the connection string was forgotten and just the basic connection parameters (database name, host, port, and username) were used for the additional connections. This could lead to connection failures if the connection string included any other essential information, such as non-default SSL or GSS parameters. Worse, the connection might succeed but not be encrypted as intended, or be vulnerable to man-in-the-middle attacks that the intended connection parameters would have prevented. (CVE-2020-25694)", "commit_aliases": ["1738a61c8", "1814f915b", "1888ff8d0", "56b46d3a1", "5a9f99bed", "5c78f7977", "68f236993", "7c154f2fd", "8e5793ab6", "a45bc8a4f", "c6d0b9b16", "cb8885ac4", "da129a04a", "fb93f784f"], "source_commits": ["5c78f7977", "7c154f2fd"], "source_entry_id": "9.6.20/changes/002", "db_id": "9bb37934f19a023764ee700751964c41", "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa", "relations": [{"rule": 2, "type": "equivalent", "target": "6cffdf59a39c1e1204d363f316c25012", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}}, {"rule": 2, "type": "equivalent", "target": "90054100695610cba1c4a6aabb36f9c6", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}}, {"rule": 2, "type": "equivalent", "target": "bd180bdbb3017b36871742d1753f820f", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}}, {"rule": 2, "type": "equivalent", "target": "c5c358c8bfcf2af40a3f744b066dfe37", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}}, {"rule": 2, "type": "equivalent", "target": "f99483c0194bc236cd796fb70849abb1", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}}], "version": "9.6.20", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "90054100695610cba1c4a6aabb36f9c6", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}, "url": "/docs/compare/?release=13.1#13.1-1006a71ccc1ec016", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "6cffdf59a39c1e1204d363f316c25012", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}, "url": "/docs/compare/?release=12.5#12.5-66ca83b99f74f9b0", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "c5c358c8bfcf2af40a3f744b066dfe37", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}, "url": "/docs/compare/?release=11.10#11.10-f5695ef1c79fd91e", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "f99483c0194bc236cd796fb70849abb1", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}, "url": "/docs/compare/?release=10.15#10.15-f5695ef1c79fd91e", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "bd180bdbb3017b36871742d1753f820f", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 pg_dump、pg_restore、 clusterdb、reindexdb 和 vacuumdb 中复杂连接字符串参数的用法", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}, "url": "/docs/compare/?release=9.5.24#9.5.24-be5bff9c020a9205", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-1512bab65015e57b", "cves": ["CVE-2020-25694"], "html": "<p>当 <span>psql</span> 的 <code>\\connect</code> 命令复用连接参数时，确保先前连接字符串中所有未被覆盖的参数都被复用（Tom Lane）</p>\n<p>这避免了因遗漏相关参数（如非默认的 SSL 或 GSS 选项）而导致重连失败的情况。更糟的是，重连可能成功但没有按预期加密，或者容易受到原本预期的连接参数可以阻止的中间人攻击。这与刚才提到的 <span>pg_dump</span> 等程序的问题基本相同，不过 <span>psql</span> 的行为更复杂，因为用户可能有意覆盖某些连接参数。（CVE-2020-25694）</p>", "text": "当 psql 的 \\connect 命令复用连接参数时，确保先前连接字符串中所有未被覆盖的参数都被复用（Tom Lane） 这避免了因遗漏相关参数（如非默认的 SSL 或 GSS 选项）而导致重连失败的情况。更糟的是，重连可能成功但没有按预期加密，或者容易受到原本预期的连接参数可以阻止的中间人攻击。这与刚才提到的 pg_dump 等程序的问题基本相同，不过 psql 的行为更复杂，因为用户可能有意覆盖某些连接参数。（CVE-2020-25694）", "title": "当 psql 的 \\connect 命令复用连接参数时，确保先前连接字符串中所有未被覆盖的参数都被复用", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "521cb0e770601c76687d7eb159b1cbe99f5ea5c2cf7f37a7f0db18415977eb61", "section_path": ["变更"], "commit_groups": [["20be76d5c", "2e4af4110", "6997da09a", "8175da6e7", "85c54287a", "870a23230", "f656517ec"]], "identity_text": "When psql's \\connect command re-uses connection parameters, ensure that all non-overridden parameters from a previous connection string are re-used (Tom Lane) This avoids cases where reconnection might fail due to omission of relevant parameters, such as non-default SSL or GSS options. Worse, the reconnection might succeed but not be encrypted as intended, or be vulnerable to man-in-the-middle attacks that the intended connection parameters would have prevented. This is largely the same problem as just cited for pg_dump et al, although psql's behavior is more complex since the user may intentionally override some connection parameters. (CVE-2020-25694)", "commit_aliases": ["20be76d5c", "2e4af4110", "6997da09a", "8175da6e7", "85c54287a", "870a23230", "f656517ec"], "source_commits": ["870a23230"], "source_entry_id": "9.6.20/changes/003", "db_id": "09d652b358d89152448ded204db7f698", "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af", "relations": [{"rule": 2, "type": "equivalent", "target": "048a4d116a491d8b2e54c00d82075af2", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}}, {"rule": 2, "type": "equivalent", "target": "33dcaa91db9a340ad489a4dab2bf38de", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}}, {"rule": 2, "type": "equivalent", "target": "504ed64a289c20845de663a4c9b24733", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}}, {"rule": 2, "type": "equivalent", "target": "9c07eaa4cc364eeece248d77060d68a6", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}}, {"rule": 2, "type": "equivalent", "target": "eb6bb7847df32de22ae4279f01bac757", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}}], "version": "9.6.20", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "33dcaa91db9a340ad489a4dab2bf38de", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}, "url": "/docs/compare/?release=13.1#13.1-f1badba1aaec4ac5", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "504ed64a289c20845de663a4c9b24733", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}, "url": "/docs/compare/?release=12.5#12.5-3c25610dd990145e", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "048a4d116a491d8b2e54c00d82075af2", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}, "url": "/docs/compare/?release=11.10#11.10-58b05f4e0090a9b5", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "9c07eaa4cc364eeece248d77060d68a6", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}, "url": "/docs/compare/?release=10.15#10.15-58b05f4e0090a9b5", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "eb6bb7847df32de22ae4279f01bac757", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "当 psql 的 \\connect 命令复用连接参数时，确保先前连接字符串中所有未被覆盖的参数都被复用", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}, "url": "/docs/compare/?release=9.5.24#9.5.24-1512bab65015e57b", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-1f21dcb4d2e98063", "cves": ["CVE-2020-25696"], "html": "<p>防止 <span>psql</span> 的 <code>\\gset</code> 命令修改特殊处理的变量（Noah Misch）</p>\n<p>不带前缀的 <code>\\gset</code> 会覆盖服务器让它设置的任何变量。因此，一个被攻破的服务器可以设置 <code>PROMPT1</code> 等特殊处理的变量，从而能够在用户的会话中执行任意 shell 代码。</p>\n<p><span>PostgreSQL</span> 项目感谢 Nick Cleaton 报告此问题。(CVE-2020-25696)</p>", "text": "防止 psql 的 \\gset 命令修改特殊处理的变量（Noah Misch） 不带前缀的 \\gset 会覆盖服务器让它设置的任何变量。因此，一个被攻破的服务器可以设置 PROMPT1 等特殊处理的变量，从而能够在用户的会话中执行任意 shell 代码。 PostgreSQL 项目感谢 Nick Cleaton 报告此问题。(CVE-2020-25696)", "title": "防止 psql 的 \\gset 命令修改特殊处理的变量", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "22574e8d3f43dc2f6c39ea9b126d9d0921b55fd6c77a7fd42a9f557e7e78e0b1", "section_path": ["变更"], "commit_groups": [["098fb0079", "12fd81cb7", "3855e5b47", "67029845b", "7b356c78f", "a498db87b", "a54dfbee1"]], "identity_text": "Prevent psql's \\gset command from modifying specially-treated variables (Noah Misch) \\gset without a prefix would overwrite whatever variables the server told it to. Thus, a compromised server could set specially-treated variables such as PROMPT1, giving the ability to execute arbitrary shell code in the user's session. The PostgreSQL Project thanks Nick Cleaton for reporting this problem. (CVE-2020-25696)", "commit_aliases": ["098fb0079", "12fd81cb7", "3855e5b47", "67029845b", "7b356c78f", "a498db87b", "a54dfbee1"], "source_commits": ["12fd81cb7"], "source_entry_id": "9.6.20/changes/004", "db_id": "370feb049d035ea22d0a1524d0be1028", "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576", "relations": [{"rule": 2, "type": "equivalent", "target": "048000d3411816dd2fc965b0cd624522", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}}, {"rule": 2, "type": "equivalent", "target": "435fccf471fec61c697ec3f4e10aac11", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}}, {"rule": 2, "type": "equivalent", "target": "5a10d3cd862859a12f76a3057dc3036d", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}}, {"rule": 2, "type": "equivalent", "target": "684e218336a5bfa28d8f2dfa9d6632e6", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}}, {"rule": 2, "type": "equivalent", "target": "ed15ca1feec24d6238cd80fae70f0817", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}}], "version": "9.6.20", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed15ca1feec24d6238cd80fae70f0817", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "防止 psql 的 \\gset 命令修改具有特殊处理方式的变量", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}, "url": "/docs/compare/?release=13.1#13.1-9070105c8a130c54", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "684e218336a5bfa28d8f2dfa9d6632e6", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "防止 psql 的 \\gset 命令修改具有特殊处理方式的变量", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}, "url": "/docs/compare/?release=12.5#12.5-729d850c2da92e5e", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "5a10d3cd862859a12f76a3057dc3036d", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "防止 psql 的 \\gset 命令修改具有特殊处理方式的变量", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}, "url": "/docs/compare/?release=11.10#11.10-05f33833ef6a810b", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "048000d3411816dd2fc965b0cd624522", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "防止 psql 的 \\gset 命令修改具有特殊处理方式的变量", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}, "url": "/docs/compare/?release=10.15#10.15-05f33833ef6a810b", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "435fccf471fec61c697ec3f4e10aac11", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "防止 psql 的 \\gset 命令修改特殊处理的变量", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}, "url": "/docs/compare/?release=9.5.24#9.5.24-1f21dcb4d2e98063", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-8f9a3f0b30e2233f", "cves": [], "html": "<p>防止并发截断 SLRU 日志可能导致的数据丢失（Noah Misch）</p>\n<p>这一罕见问题之后会表现为 <span>“<span>apparent wraparound</span>”</span> 或 <span>“<span>could not access status of transaction</span>”</span> 错误。</p>", "text": "防止并发截断 SLRU 日志可能导致的数据丢失（Noah Misch） 这一罕见问题之后会表现为 “apparent wraparound” 或 “could not access status of transaction” 错误。", "title": "防止并发截断 SLRU 日志可能导致的数据丢失", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "dba4616395581fe29aa3b68351d063fc3d5d40311cc9978bd31ff6c48e8b21ea", "section_path": ["变更"], "commit_groups": [["06e50d8f7", "6af0b12a5", "85aa22cb1", "d8a22a387", "e8e44e890"], ["30e68a2ab", "3fbbf64ce", "566372b3d", "592a589a0", "5ae01df6f", "d4031d784", "e525770dd"]], "identity_text": "Prevent possible data loss from concurrent truncations of SLRU logs (Noah Misch) This rare problem would manifest in later apparent wraparound or could not access status of transaction errors.", "commit_aliases": ["06e50d8f7", "30e68a2ab", "3fbbf64ce", "566372b3d", "592a589a0", "5ae01df6f", "6af0b12a5", "85aa22cb1", "d4031d784", "d8a22a387", "e525770dd", "e8e44e890"], "source_commits": ["5ae01df6f", "85aa22cb1"], "source_entry_id": "9.6.20/changes/005", "db_id": "4008c0c7b4bea421ebc95a611a6b3bb2", "patch_ids": ["59c84036c83e92632eb26a24f7169cc5", "e110a891c56974765e1d1c8995307adc"], "statement_hash": "3608d7c697c0d9f2eb5f8baff64ac9352cc06fd5f64dfdf21a60dbfec1f6a1df", "relations": [{"rule": 2, "type": "equivalent", "target": "142e35fb126cfad46a4c91ec3c25b333", "evidence": {"same_day": true, "patch_ids": ["59c84036c83e92632eb26a24f7169cc5", "e110a891c56974765e1d1c8995307adc"], "statement_hash": "3608d7c697c0d9f2eb5f8baff64ac9352cc06fd5f64dfdf21a60dbfec1f6a1df"}}, {"rule": 2, "type": "equivalent", "target": "647df48e15d2e4550c179c178f286a29", "evidence": {"same_day": true, "patch_ids": ["59c84036c83e92632eb26a24f7169cc5", "e110a891c56974765e1d1c8995307adc"], "statement_hash": "3608d7c697c0d9f2eb5f8baff64ac9352cc06fd5f64dfdf21a60dbfec1f6a1df"}}, {"rule": 2, "type": "equivalent", "target": "9fe8cdab84f6de7b1358c60c093715c9", "evidence": {"same_day": true, "patch_ids": ["59c84036c83e92632eb26a24f7169cc5", "e110a891c56974765e1d1c8995307adc"], "statement_hash": "3608d7c697c0d9f2eb5f8baff64ac9352cc06fd5f64dfdf21a60dbfec1f6a1df"}}, {"rule": 2, "type": "equivalent", "target": "caa345643a6e9dcea5b73e8716e2cd8a", "evidence": {"same_day": true, "patch_ids": ["59c84036c83e92632eb26a24f7169cc5", "e110a891c56974765e1d1c8995307adc"], "statement_hash": "3608d7c697c0d9f2eb5f8baff64ac9352cc06fd5f64dfdf21a60dbfec1f6a1df"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "142e35fb126cfad46a4c91ec3c25b333", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "防止并发截断 SLRU 日志可能造成的数据丢失", "evidence": {"same_day": true, "patch_ids": ["59c84036c83e92632eb26a24f7169cc5", "e110a891c56974765e1d1c8995307adc"], "statement_hash": "3608d7c697c0d9f2eb5f8baff64ac9352cc06fd5f64dfdf21a60dbfec1f6a1df"}, "url": "/docs/compare/?release=12.5#12.5-bcc58e84b0ea3b33", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "9fe8cdab84f6de7b1358c60c093715c9", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "防止并发截断 SLRU 日志可能造成的数据丢失", "evidence": {"same_day": true, "patch_ids": ["59c84036c83e92632eb26a24f7169cc5", "e110a891c56974765e1d1c8995307adc"], "statement_hash": "3608d7c697c0d9f2eb5f8baff64ac9352cc06fd5f64dfdf21a60dbfec1f6a1df"}, "url": "/docs/compare/?release=11.10#11.10-70f2ad43a290d3d0", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "caa345643a6e9dcea5b73e8716e2cd8a", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "防止并发截断 SLRU 日志可能造成的数据丢失", "evidence": {"same_day": true, "patch_ids": ["59c84036c83e92632eb26a24f7169cc5", "e110a891c56974765e1d1c8995307adc"], "statement_hash": "3608d7c697c0d9f2eb5f8baff64ac9352cc06fd5f64dfdf21a60dbfec1f6a1df"}, "url": "/docs/compare/?release=10.15#10.15-70f2ad43a290d3d0", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "647df48e15d2e4550c179c178f286a29", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "防止并发截断 SLRU 日志可能导致的数据丢失", "evidence": {"same_day": true, "patch_ids": ["59c84036c83e92632eb26a24f7169cc5", "e110a891c56974765e1d1c8995307adc"], "statement_hash": "3608d7c697c0d9f2eb5f8baff64ac9352cc06fd5f64dfdf21a60dbfec1f6a1df"}, "url": "/docs/compare/?release=9.5.24#9.5.24-8f9a3f0b30e2233f", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-d68c2334c7420742", "cves": [], "html": "<p>确保检查点期间正确 fsync SLRU 目录（Thomas Munro）</p>\n<p>这防止了后续操作系统崩溃时可能的数据丢失。</p>", "text": "确保检查点期间正确 fsync SLRU 目录（Thomas Munro） 这防止了后续操作系统崩溃时可能的数据丢失。", "title": "确保检查点期间正确 fsync SLRU 目录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "dc069ce23a2491bb790a5df7a351d781056338159891a4b266bee9673237f187", "section_path": ["变更"], "commit_groups": [["052014a20", "23d8b3577", "7664cc869", "aca74843e", "c5a5bd0bb", "d38e15979", "dd36d6b00"]], "identity_text": "Ensure that SLRU directories are properly fsync'd during checkpoints (Thomas Munro) This prevents possible data loss in a subsequent operating system crash.", "commit_aliases": ["052014a20", "23d8b3577", "7664cc869", "aca74843e", "c5a5bd0bb", "d38e15979", "dd36d6b00"], "source_commits": ["d38e15979"], "source_entry_id": "9.6.20/changes/006", "db_id": "aa4a15ce9bf437e318685c548b299a9b", "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7", "relations": [{"rule": 2, "type": "equivalent", "target": "4eccc1a2390eb87494a76e3a5985f5d3", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}}, {"rule": 2, "type": "equivalent", "target": "5be2e7c4790799ca4c539a2d54536a91", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}}, {"rule": 2, "type": "equivalent", "target": "80cc9ce2bd43fa57595f97e3853bcd2c", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}}, {"rule": 2, "type": "equivalent", "target": "b06ef39e998c1dc910700de06c681e9a", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}}, {"rule": 2, "type": "equivalent", "target": "fb47558544b98f8abc71ea371925ccce", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b06ef39e998c1dc910700de06c681e9a", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "确保在检查点期间对 SLRU 目录正确执行 fsync", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}, "url": "/docs/compare/?release=13.1#13.1-fdad27ed414f6e2a", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "4eccc1a2390eb87494a76e3a5985f5d3", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "确保在检查点期间对 SLRU 目录正确执行 fsync", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}, "url": "/docs/compare/?release=12.5#12.5-3775a45a913e90e4", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "fb47558544b98f8abc71ea371925ccce", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "确保在检查点期间对 SLRU 目录正确执行 fsync", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}, "url": "/docs/compare/?release=11.10#11.10-ad98622e2349a742", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "5be2e7c4790799ca4c539a2d54536a91", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "确保在检查点期间对 SLRU 目录正确执行 fsync", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}, "url": "/docs/compare/?release=10.15#10.15-ad98622e2349a742", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "80cc9ce2bd43fa57595f97e3853bcd2c", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "确保检查点期间正确 fsync SLRU 目录", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}, "url": "/docs/compare/?release=9.5.24#9.5.24-d68c2334c7420742", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-893176c27ae69b2f", "cves": [], "html": "<p>修复对具有 <code>BYPASSRLS</code> 属性的用户的 <code>ALTER ROLE</code>（Tom Lane、Stephen Frost）</p>\n<p><code>BYPASSRLS</code> 属性只允许超级用户更改，但其他 <code>ALTER ROLE</code> 操作（如更改密码）应只需普通权限检查即可。原来的编码错误地把对此类角色的所有更改都限制为超级用户。</p>", "text": "修复对具有 BYPASSRLS 属性的用户的 ALTER ROLE（Tom Lane、Stephen Frost） BYPASSRLS 属性只允许超级用户更改，但其他 ALTER ROLE 操作（如更改密码）应只需普通权限检查即可。原来的编码错误地把对此类角色的所有更改都限制为超级用户。", "title": "修复对具有 BYPASSRLS 属性的用户的 ALTER ROLE", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "e663e37c4e18f31329b7fb7a8cbd6a95d3b6ee8562583ffb65ed97fe18a38b0a", "section_path": ["变更"], "commit_groups": [["04c4b495b", "136f87ea5", "501035a0a", "768dbef0d", "77df80cf6", "d907bd054", "df4405b78"]], "identity_text": "Fix ALTER ROLE for users with the BYPASSRLS attribute (Tom Lane, Stephen Frost) The BYPASSRLS attribute is only allowed to be changed by superusers, but other ALTER ROLE operations, such as password changes, should be allowed with only ordinary permission checks. The previous coding erroneously restricted all changes on such a role to superusers.", "commit_aliases": ["04c4b495b", "136f87ea5", "501035a0a", "768dbef0d", "77df80cf6", "d907bd054", "df4405b78"], "source_commits": ["04c4b495b"], "source_entry_id": "9.6.20/changes/007", "db_id": "940ff717682ea460b74a4952e333f1ed", "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b", "relations": [{"rule": 2, "type": "equivalent", "target": "06b53ae97a656f0644b54f91e35132a5", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}}, {"rule": 2, "type": "equivalent", "target": "8af3f6b3b1924b7f80369eb22d67b422", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}}, {"rule": 2, "type": "equivalent", "target": "98a5b51b9a41924b4e3b062a26969ef6", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}}, {"rule": 2, "type": "equivalent", "target": "a28441cf5f6775c071a4dad86f50a92e", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}}, {"rule": 2, "type": "equivalent", "target": "b24cf385ec511257e1ddab3e66318c0c", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}}], "version": "9.6.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "06b53ae97a656f0644b54f91e35132a5", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}, "url": "/docs/compare/?release=13.1#13.1-6a8c8bd73d0aa902", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "a28441cf5f6775c071a4dad86f50a92e", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}, "url": "/docs/compare/?release=12.5#12.5-f0bc8a0333a4e23a", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "b24cf385ec511257e1ddab3e66318c0c", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}, "url": "/docs/compare/?release=11.10#11.10-5d13bdf0c7f3f783", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "98a5b51b9a41924b4e3b062a26969ef6", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}, "url": "/docs/compare/?release=10.15#10.15-5d13bdf0c7f3f783", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "8af3f6b3b1924b7f80369eb22d67b422", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复对具有 BYPASSRLS 属性的用户的 ALTER ROLE", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}, "url": "/docs/compare/?release=9.5.24#9.5.24-893176c27ae69b2f", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-f719405a38b9e876", "cves": [], "html": "<p>修复带继承的 <code>CREATE TABLE LIKE</code> 中表达式的处理（Tom Lane）</p>\n<p>如果一条 <code>CREATE TABLE</code> 命令同时使用了 <code>LIKE</code> 和传统继承，来自 <code>LIKE</code> 父表的 <code>CHECK</code> 约束和表达式索引中的列引用容易被编错号，导致错误答案和/或离奇的错误消息。在拥有该特性的分支中，<code>GENERATED</code> 表达式也可能发生同样的问题。</p>", "text": "修复带继承的 CREATE TABLE LIKE 中表达式的处理（Tom Lane） 如果一条 CREATE TABLE 命令同时使用了 LIKE 和传统继承，来自 LIKE 父表的 CHECK 约束和表达式索引中的列引用容易被编错号，导致错误答案和/或离奇的错误消息。在拥有该特性的分支中，GENERATED 表达式也可能发生同样的问题。", "title": "修复带继承的 CREATE TABLE LIKE 中表达式的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "946a8df35fb93a7d91e15b37254f279dd8ee0a1aa85eeb52ecd129a532d9ac23", "section_path": ["变更"], "commit_groups": [["1371a1e41", "19f5a37b9", "1a9c93ec3", "783a21eff", "86b8ef139", "b380484a8", "f11210013"], ["21f8b1811", "373796524", "37681d7e9", "502898192", "894f5dea7", "d9253df12", "e22e29c25"]], "identity_text": "Fix handling of expressions in CREATE TABLE LIKE with inheritance (Tom Lane) If a CREATE TABLE command uses both LIKE and traditional inheritance, column references in CHECK constraints and expression indexes that came from a LIKE parent table tended to get mis-numbered, resulting in wrong answers and/or bizarre error messages. The same could happen in GENERATED expressions, in branches that have that feature.", "commit_aliases": ["1371a1e41", "19f5a37b9", "1a9c93ec3", "21f8b1811", "373796524", "37681d7e9", "502898192", "783a21eff", "86b8ef139", "894f5dea7", "b380484a8", "d9253df12", "e22e29c25", "f11210013"], "source_commits": ["1a9c93ec3", "37681d7e9"], "source_entry_id": "9.6.20/changes/008", "db_id": "bc148010404f0fadeaad86a21aad6d50", "patch_ids": ["182ef4abb2d07c878b05627461928631", "aadf0d3a878ade603bf7aff8aefadc47"], "statement_hash": "8c2141c4f566aa3aeb2a709a70d1bce1d14dc22b99377cec2dce377c24077f74", "relations": [{"rule": 2, "type": "equivalent", "target": "b3ec63b6c2ce4be77603a58fb807d8de", "evidence": {"same_day": true, "patch_ids": ["182ef4abb2d07c878b05627461928631", "aadf0d3a878ade603bf7aff8aefadc47"], "statement_hash": "8c2141c4f566aa3aeb2a709a70d1bce1d14dc22b99377cec2dce377c24077f74"}}, {"rule": 2, "type": "equivalent", "target": "cada443267211ce07eca1cb2e16ff830", "evidence": {"same_day": true, "patch_ids": ["182ef4abb2d07c878b05627461928631", "aadf0d3a878ade603bf7aff8aefadc47"], "statement_hash": "8c2141c4f566aa3aeb2a709a70d1bce1d14dc22b99377cec2dce377c24077f74"}}, {"rule": 2, "type": "equivalent", "target": "d1b5e089c7b0905faf36959a5fcb51a6", "evidence": {"same_day": true, "patch_ids": ["182ef4abb2d07c878b05627461928631", "aadf0d3a878ade603bf7aff8aefadc47"], "statement_hash": "8c2141c4f566aa3aeb2a709a70d1bce1d14dc22b99377cec2dce377c24077f74"}}, {"rule": 2, "type": "equivalent", "target": "ed5dc56a28ca5050284a77f376e431bf", "evidence": {"same_day": true, "patch_ids": ["182ef4abb2d07c878b05627461928631", "aadf0d3a878ade603bf7aff8aefadc47"], "statement_hash": "8c2141c4f566aa3aeb2a709a70d1bce1d14dc22b99377cec2dce377c24077f74"}}], "version": "9.6.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b3ec63b6c2ce4be77603a58fb807d8de", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复结合继承使用的 CREATE TABLE LIKE 中对表达式的处理", "evidence": {"same_day": true, "patch_ids": ["182ef4abb2d07c878b05627461928631", "aadf0d3a878ade603bf7aff8aefadc47"], "statement_hash": "8c2141c4f566aa3aeb2a709a70d1bce1d14dc22b99377cec2dce377c24077f74"}, "url": "/docs/compare/?release=12.5#12.5-c05f13c9bb569892", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "d1b5e089c7b0905faf36959a5fcb51a6", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复结合继承使用的 CREATE TABLE LIKE 中对表达式的处理", "evidence": {"same_day": true, "patch_ids": ["182ef4abb2d07c878b05627461928631", "aadf0d3a878ade603bf7aff8aefadc47"], "statement_hash": "8c2141c4f566aa3aeb2a709a70d1bce1d14dc22b99377cec2dce377c24077f74"}, "url": "/docs/compare/?release=11.10#11.10-06fc33f985441346", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "ed5dc56a28ca5050284a77f376e431bf", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复结合继承使用的 CREATE TABLE LIKE 中对表达式的处理", "evidence": {"same_day": true, "patch_ids": ["182ef4abb2d07c878b05627461928631", "aadf0d3a878ade603bf7aff8aefadc47"], "statement_hash": "8c2141c4f566aa3aeb2a709a70d1bce1d14dc22b99377cec2dce377c24077f74"}, "url": "/docs/compare/?release=10.15#10.15-06fc33f985441346", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "cada443267211ce07eca1cb2e16ff830", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复带继承的 CREATE TABLE LIKE 中表达式的处理", "evidence": {"same_day": true, "patch_ids": ["182ef4abb2d07c878b05627461928631", "aadf0d3a878ade603bf7aff8aefadc47"], "statement_hash": "8c2141c4f566aa3aeb2a709a70d1bce1d14dc22b99377cec2dce377c24077f74"}, "url": "/docs/compare/?release=9.5.24#9.5.24-f719405a38b9e876", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-45294dfc52627d6f", "cves": [], "html": "<p>修复 <code>to_date()</code> 和 <code>to_timestamp()</code> 中负年份转换为公元前日期的差一错误（Dar Alathar-Yemen、Tom Lane）</p>\n<p>同时，让负年份与显式<span>“<span>BC</span>”</span>标记的组合相互抵消并产生公元日期。</p>", "text": "修复 to_date() 和 to_timestamp() 中负年份转换为公元前日期的差一错误（Dar Alathar-Yemen、Tom Lane） 同时，让负年份与显式“BC”标记的组合相互抵消并产生公元日期。", "title": "修复 to_date() 和 to_timestamp() 中负年份转换为公元前日期的差一错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "c4fd98958a8d7269eb739a6ddb28aa60499b701dacb098a6a7c0f4bd46fb179b", "section_path": ["变更"], "commit_groups": [["19e798268", "4857e6fe1", "489c9c340", "99fd38c02", "b0fe0b022", "c5232dca8", "db96be24c"]], "identity_text": "Fix off-by-one conversion of negative years to BC dates in to_date() and to_timestamp() (Dar Alathar-Yemen, Tom Lane) Also, arrange for the combination of a negative year and an explicit BC marker to cancel out and produce AD.", "commit_aliases": ["19e798268", "4857e6fe1", "489c9c340", "99fd38c02", "b0fe0b022", "c5232dca8", "db96be24c"], "source_commits": ["19e798268"], "source_entry_id": "9.6.20/changes/009", "db_id": "84784e380c670115a62107d0b20c4f11", "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec", "relations": [{"rule": 2, "type": "equivalent", "target": "2fd0b94406c1d907f7cb0ca75b2f92ae", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}}, {"rule": 2, "type": "equivalent", "target": "428678237c4649112cd18135a78fceab", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}}, {"rule": 2, "type": "equivalent", "target": "76c32d6fff44d9fe7f6ce0693e97bd23", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}}, {"rule": 2, "type": "equivalent", "target": "c9d9de197271b1d2bd42dfae5adabae0", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}}, {"rule": 2, "type": "equivalent", "target": "f41231159e971c7ec0aead8f8434fc68", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}}], "version": "9.6.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2fd0b94406c1d907f7cb0ca75b2f92ae", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}, "url": "/docs/compare/?release=13.1#13.1-7d9550883a39e120", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "76c32d6fff44d9fe7f6ce0693e97bd23", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}, "url": "/docs/compare/?release=12.5#12.5-4d8b4715108b70a4", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "428678237c4649112cd18135a78fceab", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}, "url": "/docs/compare/?release=11.10#11.10-3c2e9970f05d1632", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "c9d9de197271b1d2bd42dfae5adabae0", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}, "url": "/docs/compare/?release=10.15#10.15-3c2e9970f05d1632", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "f41231159e971c7ec0aead8f8434fc68", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 to_date() 和 to_timestamp() 中负年份转换为公元前日期的差一错误", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}, "url": "/docs/compare/?release=9.5.24#9.5.24-45294dfc52627d6f", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-26225572f436edd7", "cves": [], "html": "<p>确保 <code>archive_mode</code> 设为 <code>always</code> 时备库服务器会归档 WAL 时间线历史文件（Grigory Smolkin、Fujii Masao）</p>\n<p>这一疏漏可能导致后续 PITR 恢复尝试失败。</p>", "text": "确保 archive_mode 设为 always 时备库服务器会归档 WAL 时间线历史文件（Grigory Smolkin、Fujii Masao） 这一疏漏可能导致后续 PITR 恢复尝试失败。", "title": "确保 archive_mode 设为 always 时备库服务器会归档 WAL 时间线历史文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "e83a93621cff0624f275becbf66899736d9397a28ef0bdbcc4d8015af30a70c5", "section_path": ["变更"], "commit_groups": [["059caf36c", "334417538", "40a8fb1e0", "462ff7966", "4d342b9d4", "7be02a3bf", "fd26f7823"]], "identity_text": "Ensure that standby servers will archive WAL timeline history files when archive_mode is set to always (Grigory Smolkin, Fujii Masao) This oversight could lead to failure of subsequent PITR recovery attempts.", "commit_aliases": ["059caf36c", "334417538", "40a8fb1e0", "462ff7966", "4d342b9d4", "7be02a3bf", "fd26f7823"], "source_commits": ["7be02a3bf"], "source_entry_id": "9.6.20/changes/010", "db_id": "1da516870d70e895fa4515a85374ec9e", "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587", "relations": [{"rule": 2, "type": "equivalent", "target": "053c209c339b478e67a27125edb9d08e", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}}, {"rule": 2, "type": "equivalent", "target": "64226a4dd5aec9b9132c2923c3ee3d1c", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}}, {"rule": 2, "type": "equivalent", "target": "6a9a910ffb65d51355590d4f0c108eb3", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}}, {"rule": 2, "type": "equivalent", "target": "75be688416a161ae255e49f6b3ac3332", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}}, {"rule": 2, "type": "equivalent", "target": "b27e4f45c04f28b1ef32f985c43dc224", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "64226a4dd5aec9b9132c2923c3ee3d1c", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}, "url": "/docs/compare/?release=13.1#13.1-f18215fa3b715eca", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "053c209c339b478e67a27125edb9d08e", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}, "url": "/docs/compare/?release=12.5#12.5-2b36622fcf63cc8d", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "6a9a910ffb65d51355590d4f0c108eb3", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}, "url": "/docs/compare/?release=11.10#11.10-0e26c59c858c6787", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "b27e4f45c04f28b1ef32f985c43dc224", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}, "url": "/docs/compare/?release=10.15#10.15-0e26c59c858c6787", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "75be688416a161ae255e49f6b3ac3332", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "确保 archive_mode 设为 always 时备库服务器会归档 WAL 时间线历史文件", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}, "url": "/docs/compare/?release=9.5.24#9.5.24-26225572f436edd7", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-6ae2ce8f0066fc22", "cves": [], "html": "<p>在<span>“<span>smart</span>”</span>关闭期间，直到所有客户端（前台）会话结束之前不要终止后台进程（Tom Lane）</p>\n<p>原来的行为破坏了并行查询处理，因为 postmaster 会终止并行工作者并拒绝启动新的。它还导致自动清理停止工作，如果幸存的客户端会话进行大量数据更改，这可能有严重的长期影响。</p>", "text": "在“smart”关闭期间，直到所有客户端（前台）会话结束之前不要终止后台进程（Tom Lane） 原来的行为破坏了并行查询处理，因为 postmaster 会终止并行工作者并拒绝启动新的。它还导致自动清理停止工作，如果幸存的客户端会话进行大量数据更改，这可能有严重的长期影响。", "title": "在“smart”关闭期间，直到所有客户端（前台）会话结束之前不要终止后台进程", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "bdfd302495b9ae3ec19d0f5c24185f5d2245916578bff4644645bffc7bb4e1e4", "section_path": ["变更"], "commit_groups": [["0038f9438", "1c6066fbd", "250aaa2de", "326b5fe0f", "42566a250", "b4d8be9f6"]], "identity_text": "During smart shutdown, don't terminate background processes until all client (foreground) sessions are done (Tom Lane) The previous behavior broke parallel query processing, since the postmaster would terminate parallel workers and refuse to launch any new ones. It also caused autovacuum to cease functioning, which could have dire long-term effects if the surviving client sessions make a lot of data changes.", "commit_aliases": ["0038f9438", "1c6066fbd", "250aaa2de", "326b5fe0f", "42566a250", "b4d8be9f6"], "source_commits": ["b4d8be9f6"], "source_entry_id": "9.6.20/changes/011", "db_id": "8c8cafc304613bf258b91c56b3098bdc", "patch_ids": ["83b5b8fc30512f647704f3b18d8da575"], "statement_hash": "9ea36dc6594a0057b296f3eda7cb0d5310d371473b4ee1dc297be85c37fb4c02", "relations": [{"rule": 2, "type": "equivalent", "target": "cd3ff34bda7c9613674a785b3b93f3d7", "evidence": {"same_day": true, "patch_ids": ["83b5b8fc30512f647704f3b18d8da575"], "statement_hash": "9ea36dc6594a0057b296f3eda7cb0d5310d371473b4ee1dc297be85c37fb4c02"}}, {"rule": 2, "type": "equivalent", "target": "d32e57284eb71b59557faaac2ca029c2", "evidence": {"same_day": true, "patch_ids": ["83b5b8fc30512f647704f3b18d8da575"], "statement_hash": "9ea36dc6594a0057b296f3eda7cb0d5310d371473b4ee1dc297be85c37fb4c02"}}, {"rule": 2, "type": "equivalent", "target": "e35232ff306351c6f3a7961aa36f4606", "evidence": {"same_day": true, "patch_ids": ["83b5b8fc30512f647704f3b18d8da575"], "statement_hash": "9ea36dc6594a0057b296f3eda7cb0d5310d371473b4ee1dc297be85c37fb4c02"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e35232ff306351c6f3a7961aa36f4606", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "在 “smart” 关闭期间，在所有客户端（前台）会话结束之前，不终止后台进程", "evidence": {"same_day": true, "patch_ids": ["83b5b8fc30512f647704f3b18d8da575"], "statement_hash": "9ea36dc6594a0057b296f3eda7cb0d5310d371473b4ee1dc297be85c37fb4c02"}, "url": "/docs/compare/?release=12.5#12.5-b52567248e8954ab", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "d32e57284eb71b59557faaac2ca029c2", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "在 “smart” 关闭期间，在所有客户端（前台）会话结束之前，不终止后台进程", "evidence": {"same_day": true, "patch_ids": ["83b5b8fc30512f647704f3b18d8da575"], "statement_hash": "9ea36dc6594a0057b296f3eda7cb0d5310d371473b4ee1dc297be85c37fb4c02"}, "url": "/docs/compare/?release=11.10#11.10-c9a1cc657a688be0", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "cd3ff34bda7c9613674a785b3b93f3d7", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "在 “smart” 关闭期间，在所有客户端（前台）会话结束之前，不终止后台进程", "evidence": {"same_day": true, "patch_ids": ["83b5b8fc30512f647704f3b18d8da575"], "statement_hash": "9ea36dc6594a0057b296f3eda7cb0d5310d371473b4ee1dc297be85c37fb4c02"}, "url": "/docs/compare/?release=10.15#10.15-c9a1cc657a688be0", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}]}, {"id": "9.6.20-1aebd712cdf1f7d2", "cves": [], "html": "<p>避免 postmaster 处理信号时递归消耗栈空间（Tom Lane）</p>\n<p>据观察，大量使用并行处理会因过多并发信号请求创建并行工作者进程而导致 postmaster 崩溃。</p>", "text": "避免 postmaster 处理信号时递归消耗栈空间（Tom Lane） 据观察，大量使用并行处理会因过多并发信号请求创建并行工作者进程而导致 postmaster 崩溃。", "title": "避免 postmaster 处理信号时递归消耗栈空间", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "8db2af8249e3c56587107d179809bf0f7930e0ea370c095257d48ec362e74833", "section_path": ["变更"], "commit_groups": [["4e95733b0", "7753ca49d", "85834023a", "8b53dbada", "9abb2bfc0"]], "identity_text": "Avoid recursive consumption of stack space while processing signals in the postmaster (Tom Lane) Heavy use of parallel processing has been observed to cause postmaster crashes due to too many concurrent signals requesting creation of a parallel worker process.", "commit_aliases": ["4e95733b0", "7753ca49d", "85834023a", "8b53dbada", "9abb2bfc0"], "source_commits": ["7753ca49d"], "source_entry_id": "9.6.20/changes/012", "db_id": "1669de05b54fd9a042a0ac27f7a60de7", "patch_ids": ["3b0f1d49759fcb378d014b2046e23800"], "statement_hash": "b89337693106918c4876f9c173e4d593f986db5b65715e7236e072b93b54a4a3", "relations": [{"rule": 2, "type": "equivalent", "target": "19678d08dd91a3e441f15bf787de395a", "evidence": {"same_day": true, "patch_ids": ["3b0f1d49759fcb378d014b2046e23800"], "statement_hash": "b89337693106918c4876f9c173e4d593f986db5b65715e7236e072b93b54a4a3"}}, {"rule": 2, "type": "equivalent", "target": "afe2369bc994cb5968c32d96522c8317", "evidence": {"same_day": true, "patch_ids": ["3b0f1d49759fcb378d014b2046e23800"], "statement_hash": "b89337693106918c4876f9c173e4d593f986db5b65715e7236e072b93b54a4a3"}}, {"rule": 2, "type": "equivalent", "target": "f7c5a40480ff68f0a8385fbc84f6b9be", "evidence": {"same_day": true, "patch_ids": ["3b0f1d49759fcb378d014b2046e23800"], "statement_hash": "b89337693106918c4876f9c173e4d593f986db5b65715e7236e072b93b54a4a3"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7c5a40480ff68f0a8385fbc84f6b9be", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "避免 postmaster 处理信号时递归消耗栈空间", "evidence": {"same_day": true, "patch_ids": ["3b0f1d49759fcb378d014b2046e23800"], "statement_hash": "b89337693106918c4876f9c173e4d593f986db5b65715e7236e072b93b54a4a3"}, "url": "/docs/compare/?release=12.5#12.5-b352e771268a35c9", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "19678d08dd91a3e441f15bf787de395a", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "避免 postmaster 处理信号时递归消耗栈空间", "evidence": {"same_day": true, "patch_ids": ["3b0f1d49759fcb378d014b2046e23800"], "statement_hash": "b89337693106918c4876f9c173e4d593f986db5b65715e7236e072b93b54a4a3"}, "url": "/docs/compare/?release=11.10#11.10-1aebd712cdf1f7d2", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "afe2369bc994cb5968c32d96522c8317", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "避免 postmaster 处理信号时递归消耗栈空间", "evidence": {"same_day": true, "patch_ids": ["3b0f1d49759fcb378d014b2046e23800"], "statement_hash": "b89337693106918c4876f9c173e4d593f986db5b65715e7236e072b93b54a4a3"}, "url": "/docs/compare/?release=10.15#10.15-1aebd712cdf1f7d2", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}]}, {"id": "9.6.20-4febea7cd6c829ab", "cves": [], "html": "<p>避免因 SIGQUIT 退出时运行 <span>atexit</span> 处理器（Kyotaro Horiguchi、Tom Lane）</p>\n<p>大多数服务器进程已经遵循这一做法，但归档器进程被遗漏了。仍在等待客户端启动包的后端也做错了。</p>", "text": "避免因 SIGQUIT 退出时运行 atexit 处理器（Kyotaro Horiguchi、Tom Lane） 大多数服务器进程已经遵循这一做法，但归档器进程被遗漏了。仍在等待客户端启动包的后端也做错了。", "title": "避免因 SIGQUIT 退出时运行 atexit 处理器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "2bd666c71670b0cfa3d4cca63ea0e110f0ae9d00b8873d4b9478794e9abe0d5d", "section_path": ["变更"], "commit_groups": [["35e59398a", "581855b6a", "67dde49a3", "95cd8902e", "b2eaddd9b", "bedadc732", "d038c6c63"], ["3f29aa48b", "4e10c0c8a", "58c6feccf", "93871b693", "ac695b8f2", "dc71c6409", "e2c9bedc9"]], "identity_text": "Avoid running atexit handlers when exiting due to SIGQUIT (Kyotaro Horiguchi, Tom Lane) Most server processes followed this practice already, but the archiver process was overlooked. Backends that were still waiting for a client startup packet got it wrong, too.", "commit_aliases": ["35e59398a", "3f29aa48b", "4e10c0c8a", "581855b6a", "58c6feccf", "67dde49a3", "93871b693", "95cd8902e", "ac695b8f2", "b2eaddd9b", "bedadc732", "d038c6c63", "dc71c6409", "e2c9bedc9"], "source_commits": ["b2eaddd9b", "dc71c6409"], "source_entry_id": "9.6.20/changes/013", "db_id": "5c177b095513e9b3c4d433c01b8e550d", "patch_ids": ["6fc50702807c244fcf4500f783819777", "97c2daa6592be20230d5f63250760bea"], "statement_hash": "f9175be4ed8812d92b08079b22d55686f12a1016305f6bf94ceff3570bc35097", "relations": [{"rule": 2, "type": "equivalent", "target": "3cfc1b4563212a1453ea78730175510e", "evidence": {"same_day": true, "patch_ids": ["6fc50702807c244fcf4500f783819777", "97c2daa6592be20230d5f63250760bea"], "statement_hash": "f9175be4ed8812d92b08079b22d55686f12a1016305f6bf94ceff3570bc35097"}}, {"rule": 2, "type": "equivalent", "target": "86b0c8d81f28cb6de6d3e02d1c2cdb38", "evidence": {"same_day": true, "patch_ids": ["6fc50702807c244fcf4500f783819777", "97c2daa6592be20230d5f63250760bea"], "statement_hash": "f9175be4ed8812d92b08079b22d55686f12a1016305f6bf94ceff3570bc35097"}}, {"rule": 2, "type": "equivalent", "target": "d54b4345a603ab0508f16bf041986ca7", "evidence": {"same_day": true, "patch_ids": ["6fc50702807c244fcf4500f783819777", "97c2daa6592be20230d5f63250760bea"], "statement_hash": "f9175be4ed8812d92b08079b22d55686f12a1016305f6bf94ceff3570bc35097"}}, {"rule": 2, "type": "equivalent", "target": "f2da64c370514fe62a3fd63fb720bcee", "evidence": {"same_day": true, "patch_ids": ["6fc50702807c244fcf4500f783819777", "97c2daa6592be20230d5f63250760bea"], "statement_hash": "f9175be4ed8812d92b08079b22d55686f12a1016305f6bf94ceff3570bc35097"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "86b0c8d81f28cb6de6d3e02d1c2cdb38", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "避免因 SIGQUIT 退出时运行 atexit 处理函数", "evidence": {"same_day": true, "patch_ids": ["6fc50702807c244fcf4500f783819777", "97c2daa6592be20230d5f63250760bea"], "statement_hash": "f9175be4ed8812d92b08079b22d55686f12a1016305f6bf94ceff3570bc35097"}, "url": "/docs/compare/?release=12.5#12.5-d128efa24a8cdd19", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "3cfc1b4563212a1453ea78730175510e", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "避免因 SIGQUIT 退出时运行 atexit 处理函数", "evidence": {"same_day": true, "patch_ids": ["6fc50702807c244fcf4500f783819777", "97c2daa6592be20230d5f63250760bea"], "statement_hash": "f9175be4ed8812d92b08079b22d55686f12a1016305f6bf94ceff3570bc35097"}, "url": "/docs/compare/?release=11.10#11.10-547919cd9eae76e0", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "d54b4345a603ab0508f16bf041986ca7", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "避免因 SIGQUIT 退出时运行 atexit 处理函数", "evidence": {"same_day": true, "patch_ids": ["6fc50702807c244fcf4500f783819777", "97c2daa6592be20230d5f63250760bea"], "statement_hash": "f9175be4ed8812d92b08079b22d55686f12a1016305f6bf94ceff3570bc35097"}, "url": "/docs/compare/?release=10.15#10.15-547919cd9eae76e0", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "f2da64c370514fe62a3fd63fb720bcee", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "避免因 SIGQUIT 退出时运行 atexit 处理器", "evidence": {"same_day": true, "patch_ids": ["6fc50702807c244fcf4500f783819777", "97c2daa6592be20230d5f63250760bea"], "statement_hash": "f9175be4ed8812d92b08079b22d55686f12a1016305f6bf94ceff3570bc35097"}, "url": "/docs/compare/?release=9.5.24#9.5.24-4febea7cd6c829ab", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-56a679e49690b05b", "cves": [], "html": "<p>避免错误优化引用表面常量分组列的子查询限定条件（Tom Lane）</p>\n<p>如果<span>“<span>常量</span>”</span>子查询输出列是只出现在部分分组集中的分组列，它就不是真正的常量。</p>", "text": "避免错误优化引用表面常量分组列的子查询限定条件（Tom Lane） 如果“常量”子查询输出列是只出现在部分分组集中的分组列，它就不是真正的常量。", "title": "避免错误优化引用表面常量分组列的子查询限定条件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "be68de3fced346512b0f22e12a0c46bd52c6c50bfcd15d301ad0960e895fc977", "section_path": ["变更"], "commit_groups": [["4d346def1", "6b701eaaa", "6fa403e61", "7edd36eae", "b439adcab", "d3701bc8a", "de627adaa"]], "identity_text": "Avoid misoptimization of subquery qualifications that reference apparently-constant grouping columns (Tom Lane) A constant subquery output column isn't really constant if it is a grouping column that appears in only some of the grouping sets.", "commit_aliases": ["4d346def1", "6b701eaaa", "6fa403e61", "7edd36eae", "b439adcab", "d3701bc8a", "de627adaa"], "source_commits": ["d3701bc8a"], "source_entry_id": "9.6.20/changes/014", "db_id": "890b5052ce09fdf2f0343fd75f919b07", "patch_ids": ["c1bb4b9085437890cd101c057ebf3c1c"], "statement_hash": "6958d4b39bfaed5615534e5cd09b9198ca7e46c3b54f9b7507f94de6676f7e42", "relations": [{"rule": 2, "type": "equivalent", "target": "68b64d3d47b9acb936df521fb7f5c8f9", "evidence": {"same_day": true, "patch_ids": ["c1bb4b9085437890cd101c057ebf3c1c"], "statement_hash": "6958d4b39bfaed5615534e5cd09b9198ca7e46c3b54f9b7507f94de6676f7e42"}}, {"rule": 2, "type": "equivalent", "target": "8b9119c81dce1d109b27e0691f2c9625", "evidence": {"same_day": true, "patch_ids": ["c1bb4b9085437890cd101c057ebf3c1c"], "statement_hash": "6958d4b39bfaed5615534e5cd09b9198ca7e46c3b54f9b7507f94de6676f7e42"}}, {"rule": 2, "type": "equivalent", "target": "d0ed26f8f54ad887ef4e0cca7062ceeb", "evidence": {"same_day": true, "patch_ids": ["c1bb4b9085437890cd101c057ebf3c1c"], "statement_hash": "6958d4b39bfaed5615534e5cd09b9198ca7e46c3b54f9b7507f94de6676f7e42"}}, {"rule": 2, "type": "equivalent", "target": "f66e915b7e2bb206744e4e30e62bf660", "evidence": {"same_day": true, "patch_ids": ["c1bb4b9085437890cd101c057ebf3c1c"], "statement_hash": "6958d4b39bfaed5615534e5cd09b9198ca7e46c3b54f9b7507f94de6676f7e42"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f66e915b7e2bb206744e4e30e62bf660", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "避免错误优化引用看似为常量的分组列的子查询限制条件", "evidence": {"same_day": true, "patch_ids": ["c1bb4b9085437890cd101c057ebf3c1c"], "statement_hash": "6958d4b39bfaed5615534e5cd09b9198ca7e46c3b54f9b7507f94de6676f7e42"}, "url": "/docs/compare/?release=12.5#12.5-f7afa19d2e53fc4e", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "68b64d3d47b9acb936df521fb7f5c8f9", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "避免错误优化引用看似为常量的分组列的子查询限制条件", "evidence": {"same_day": true, "patch_ids": ["c1bb4b9085437890cd101c057ebf3c1c"], "statement_hash": "6958d4b39bfaed5615534e5cd09b9198ca7e46c3b54f9b7507f94de6676f7e42"}, "url": "/docs/compare/?release=11.10#11.10-58b2c2e44d24a413", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "8b9119c81dce1d109b27e0691f2c9625", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "避免错误优化引用看似为常量的分组列的子查询限制条件", "evidence": {"same_day": true, "patch_ids": ["c1bb4b9085437890cd101c057ebf3c1c"], "statement_hash": "6958d4b39bfaed5615534e5cd09b9198ca7e46c3b54f9b7507f94de6676f7e42"}, "url": "/docs/compare/?release=10.15#10.15-58b2c2e44d24a413", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "d0ed26f8f54ad887ef4e0cca7062ceeb", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "避免错误优化引用表面常量分组列的子查询限定条件", "evidence": {"same_day": true, "patch_ids": ["c1bb4b9085437890cd101c057ebf3c1c"], "statement_hash": "6958d4b39bfaed5615534e5cd09b9198ca7e46c3b54f9b7507f94de6676f7e42"}, "url": "/docs/compare/?release=9.5.24#9.5.24-56a679e49690b05b", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-907a8537d07e2263", "cves": [], "html": "<p>避免 SQL 函数内联改变潜在可哈希子计划比较表达式形状时的失败（Tom Lane）</p>", "text": "避免 SQL 函数内联改变潜在可哈希子计划比较表达式形状时的失败（Tom Lane）", "title": "避免 SQL 函数内联改变潜在可哈希子计划比较表达式形状时的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "fc8f1f10eb4930f45740b3352246f73978c24fa52c01e5989d1381b23cf61969", "section_path": ["变更"], "commit_groups": [["1e7629d2c", "5190707d7", "7241edc4f", "912fb290c", "9d472b51e", "b538e83f1", "dea07098a"]], "identity_text": "Avoid failure when SQL function inlining changes the shape of a potentially-hashable subplan comparison expression (Tom Lane)", "commit_aliases": ["1e7629d2c", "5190707d7", "7241edc4f", "912fb290c", "9d472b51e", "b538e83f1", "dea07098a"], "source_commits": ["7241edc4f"], "source_entry_id": "9.6.20/changes/015", "db_id": "9fc2c7b38aac3a5f73bff0c462cbbbc8", "patch_ids": ["6555c6cf831e2195928e96ed9a5c15b1"], "statement_hash": "03b483637a5b1d523482262aace74db288932221be91ae705615c4f479f798e1", "relations": [{"rule": 2, "type": "equivalent", "target": "7b97c574c2b4409d6c5f68b2ed629cea", "evidence": {"same_day": true, "patch_ids": ["6555c6cf831e2195928e96ed9a5c15b1"], "statement_hash": "03b483637a5b1d523482262aace74db288932221be91ae705615c4f479f798e1"}}, {"rule": 2, "type": "equivalent", "target": "aa7c2b63f381d58c6c73fe1431979899", "evidence": {"same_day": true, "patch_ids": ["6555c6cf831e2195928e96ed9a5c15b1"], "statement_hash": "03b483637a5b1d523482262aace74db288932221be91ae705615c4f479f798e1"}}, {"rule": 2, "type": "equivalent", "target": "b47ca63cb6d953dc73dbc9bc599eda4d", "evidence": {"same_day": true, "patch_ids": ["6555c6cf831e2195928e96ed9a5c15b1"], "statement_hash": "03b483637a5b1d523482262aace74db288932221be91ae705615c4f479f798e1"}}, {"rule": 2, "type": "equivalent", "target": "f0729bd29c0b8c01cc6dbc6bfd6934c2", "evidence": {"same_day": true, "patch_ids": ["6555c6cf831e2195928e96ed9a5c15b1"], "statement_hash": "03b483637a5b1d523482262aace74db288932221be91ae705615c4f479f798e1"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "aa7c2b63f381d58c6c73fe1431979899", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "避免 SQL 函数内联改变可能用于 hash 处理的子计划比较表达式的形态时发生失败", "evidence": {"same_day": true, "patch_ids": ["6555c6cf831e2195928e96ed9a5c15b1"], "statement_hash": "03b483637a5b1d523482262aace74db288932221be91ae705615c4f479f798e1"}, "url": "/docs/compare/?release=12.5#12.5-d1079979f356661a", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "7b97c574c2b4409d6c5f68b2ed629cea", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "避免 SQL 函数内联改变可能用于 hash 处理的子计划比较表达式的形态时发生失败", "evidence": {"same_day": true, "patch_ids": ["6555c6cf831e2195928e96ed9a5c15b1"], "statement_hash": "03b483637a5b1d523482262aace74db288932221be91ae705615c4f479f798e1"}, "url": "/docs/compare/?release=11.10#11.10-04267ef12ff8f448", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "b47ca63cb6d953dc73dbc9bc599eda4d", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "避免 SQL 函数内联改变可能用于 hash 处理的子计划比较表达式的形态时发生失败", "evidence": {"same_day": true, "patch_ids": ["6555c6cf831e2195928e96ed9a5c15b1"], "statement_hash": "03b483637a5b1d523482262aace74db288932221be91ae705615c4f479f798e1"}, "url": "/docs/compare/?release=10.15#10.15-04267ef12ff8f448", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "f0729bd29c0b8c01cc6dbc6bfd6934c2", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "避免 SQL 函数内联改变潜在可哈希子计划比较表达式形状时的失败", "evidence": {"same_day": true, "patch_ids": ["6555c6cf831e2195928e96ed9a5c15b1"], "statement_hash": "03b483637a5b1d523482262aace74db288932221be91ae705615c4f479f798e1"}, "url": "/docs/compare/?release=9.5.24#9.5.24-907a8537d07e2263", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-b5e20e02cec118ca", "cves": [], "html": "<p>在构建或重建索引期间，容忍并发更新导致的新 HOT 链的出现（Anastasia Lubennikova、Álvaro Herrera）</p>\n<p>这一疏漏可能导致 <span>“<span>failed to find parent tuple for heap-only tuple</span>”</span> 错误。</p>", "text": "在构建或重建索引期间，容忍并发更新导致的新 HOT 链的出现（Anastasia Lubennikova、Álvaro Herrera） 这一疏漏可能导致 “failed to find parent tuple for heap-only tuple” 错误。", "title": "在构建或重建索引期间，容忍并发更新导致的新 HOT 链的出现", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "b361bfdcebfd960b08298950fd5ec4a42c2c4afb2f7d416a19a4376f1591ac2d", "section_path": ["变更"], "commit_groups": [["060e5bd70", "3a45ac076", "4f47c8e7d", "6e70443ed", "aa4da2674", "b83f1bcca", "d4d214903"], ["1122a903e", "2f29fd4cb", "385cbe8e4", "40bceae7b", "704de3739", "a811ea5bd", "e5902117d"]], "identity_text": "While building or re-building an index, tolerate the appearance of new HOT chains due to concurrent updates (Anastasia Lubennikova, Álvaro Herrera) This oversight could lead to failed to find parent tuple for heap-only tuple errors.", "commit_aliases": ["060e5bd70", "1122a903e", "2f29fd4cb", "385cbe8e4", "3a45ac076", "40bceae7b", "4f47c8e7d", "6e70443ed", "704de3739", "a811ea5bd", "aa4da2674", "b83f1bcca", "d4d214903", "e5902117d"], "source_commits": ["d4d214903", "e5902117d"], "source_entry_id": "9.6.20/changes/016", "db_id": "7e709106d3315058aaef8144b520c3e3", "patch_ids": ["46cd787dd1882f412c4f11c627cb8acc", "56b3562b6e7b8d132a3175b860d0b191"], "statement_hash": "cd21d032f41fe297a6331aac99e7b3ebf1e290c600221de3faed1db013606cc8", "relations": [{"rule": 2, "type": "equivalent", "target": "0c4157e8416c7478182d070c3e580ab0", "evidence": {"same_day": true, "patch_ids": ["46cd787dd1882f412c4f11c627cb8acc", "56b3562b6e7b8d132a3175b860d0b191"], "statement_hash": "cd21d032f41fe297a6331aac99e7b3ebf1e290c600221de3faed1db013606cc8"}}, {"rule": 2, "type": "equivalent", "target": "36fa7bda094380e83e6ec02244c144a7", "evidence": {"same_day": true, "patch_ids": ["46cd787dd1882f412c4f11c627cb8acc", "56b3562b6e7b8d132a3175b860d0b191"], "statement_hash": "cd21d032f41fe297a6331aac99e7b3ebf1e290c600221de3faed1db013606cc8"}}, {"rule": 2, "type": "equivalent", "target": "f01bdaa7fa6b88bc37ff331a23ea5daf", "evidence": {"same_day": true, "patch_ids": ["46cd787dd1882f412c4f11c627cb8acc", "56b3562b6e7b8d132a3175b860d0b191"], "statement_hash": "cd21d032f41fe297a6331aac99e7b3ebf1e290c600221de3faed1db013606cc8"}}, {"rule": 2, "type": "equivalent", "target": "f8342c93d24e87e03679db8fd4c15bbe", "evidence": {"same_day": true, "patch_ids": ["46cd787dd1882f412c4f11c627cb8acc", "56b3562b6e7b8d132a3175b860d0b191"], "statement_hash": "cd21d032f41fe297a6331aac99e7b3ebf1e290c600221de3faed1db013606cc8"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f01bdaa7fa6b88bc37ff331a23ea5daf", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "构建或重建索引时，容许因并发更新而出现新的 HOT 链", "evidence": {"same_day": true, "patch_ids": ["46cd787dd1882f412c4f11c627cb8acc", "56b3562b6e7b8d132a3175b860d0b191"], "statement_hash": "cd21d032f41fe297a6331aac99e7b3ebf1e290c600221de3faed1db013606cc8"}, "url": "/docs/compare/?release=12.5#12.5-26b5029246faa887", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "36fa7bda094380e83e6ec02244c144a7", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "构建或重建索引时，容许因并发更新而出现新的 HOT 链", "evidence": {"same_day": true, "patch_ids": ["46cd787dd1882f412c4f11c627cb8acc", "56b3562b6e7b8d132a3175b860d0b191"], "statement_hash": "cd21d032f41fe297a6331aac99e7b3ebf1e290c600221de3faed1db013606cc8"}, "url": "/docs/compare/?release=11.10#11.10-15347be501904b2a", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "0c4157e8416c7478182d070c3e580ab0", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "构建或重建索引时，容许因并发更新而出现新的 HOT 链", "evidence": {"same_day": true, "patch_ids": ["46cd787dd1882f412c4f11c627cb8acc", "56b3562b6e7b8d132a3175b860d0b191"], "statement_hash": "cd21d032f41fe297a6331aac99e7b3ebf1e290c600221de3faed1db013606cc8"}, "url": "/docs/compare/?release=10.15#10.15-15347be501904b2a", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "f8342c93d24e87e03679db8fd4c15bbe", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "在构建或重建索引期间，容忍并发更新导致的新 HOT 链的出现", "evidence": {"same_day": true, "patch_ids": ["46cd787dd1882f412c4f11c627cb8acc", "56b3562b6e7b8d132a3175b860d0b191"], "statement_hash": "cd21d032f41fe297a6331aac99e7b3ebf1e290c600221de3faed1db013606cc8"}, "url": "/docs/compare/?release=9.5.24#9.5.24-b5e20e02cec118ca", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-d22eb05e2689d363", "cves": [], "html": "<p>确保数据在插入 BRIN 索引之前被解 TOAST（Tomas Vondra）</p>\n<p>索引条目不应包含外联 TOAST 指针，但 BRIN 没有遵守这一点。这可能导致 <span>“<span>missing chunk number 0 for toast value NNN</span>”</span> 之类的错误。（如果现有索引报出这种错误，<code>REINDEX</code> 就足以修复。）</p>", "text": "确保数据在插入 BRIN 索引之前被解 TOAST（Tomas Vondra） 索引条目不应包含外联 TOAST 指针，但 BRIN 没有遵守这一点。这可能导致 “missing chunk number 0 for toast value NNN” 之类的错误。（如果现有索引报出这种错误，REINDEX 就足以修复。）", "title": "确保数据在插入 BRIN 索引之前被解 TOAST", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "79d9a74fde584dc1f9b46286c365fd0c6309241e8dd0234fb990da7819b785ee", "section_path": ["变更"], "commit_groups": [["0b96fc977", "6a7b55f37", "7577dd848", "8149e9f9a", "895d0f0e8", "bae31e75f", "d2d3a4bd3"]], "identity_text": "Ensure that data is detoasted before being inserted into a BRIN index (Tomas Vondra) Index entries are not supposed to contain out-of-line TOAST pointers, but BRIN didn't get that memo. This could lead to errors like missing chunk number 0 for toast value NNN. (If you are faced with such an error from an existing index, REINDEX should be enough to fix it.)", "commit_aliases": ["0b96fc977", "6a7b55f37", "7577dd848", "8149e9f9a", "895d0f0e8", "bae31e75f", "d2d3a4bd3"], "source_commits": ["bae31e75f"], "source_entry_id": "9.6.20/changes/017", "db_id": "bcd61f90172c14c33f00a2c033767381", "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3", "relations": [{"rule": 2, "type": "equivalent", "target": "3a95c594e79e1558d409445b7300f390", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}}, {"rule": 2, "type": "equivalent", "target": "49d146dcd44b3db32a631c0fe0867811", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}}, {"rule": 2, "type": "equivalent", "target": "6d3ae9234fedba53c33fc98ff81de64e", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}}, {"rule": 2, "type": "equivalent", "target": "95765ebcf7631dcde378d4d43c4c0712", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}}, {"rule": 2, "type": "equivalent", "target": "ab88194be714e40017e2bf390c01f821", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "95765ebcf7631dcde378d4d43c4c0712", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}, "url": "/docs/compare/?release=13.1#13.1-1fa45007c49735ce", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "6d3ae9234fedba53c33fc98ff81de64e", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}, "url": "/docs/compare/?release=12.5#12.5-5dba5e2a1baab5c8", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "3a95c594e79e1558d409445b7300f390", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}, "url": "/docs/compare/?release=11.10#11.10-c53d5ef58c33b47f", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "ab88194be714e40017e2bf390c01f821", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}, "url": "/docs/compare/?release=10.15#10.15-c53d5ef58c33b47f", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "49d146dcd44b3db32a631c0fe0867811", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "确保数据在插入 BRIN 索引之前被解 TOAST", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}, "url": "/docs/compare/?release=9.5.24#9.5.24-d22eb05e2689d363", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-4a4b0f9da65203f9", "cves": [], "html": "<p>在 BRIN 索引扫描期间正确处理并发取消摘要（Alexander Lakhin、Álvaro Herrera）</p>\n<p>此前，如果某个页范围恰好在错误的时间被取消摘要，索引扫描可能错误地报出指示索引损坏的错误。</p>", "text": "在 BRIN 索引扫描期间正确处理并发取消摘要（Alexander Lakhin、Álvaro Herrera） 此前，如果某个页范围恰好在错误的时间被取消摘要，索引扫描可能错误地报出指示索引损坏的错误。", "title": "在 BRIN 索引扫描期间正确处理并发取消摘要", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "407bca03b495be1a02c2fc500dcf666f2654680cd45fa2296909378ebfed944a", "section_path": ["变更"], "commit_groups": [["0426c75e7", "1f42d35a1", "721ef4d28", "7a3c261fb", "7af39993a", "8782ea2f3", "ce3a8fde8"]], "identity_text": "Handle concurrent desummarization correctly during BRIN index scans (Alexander Lakhin, Álvaro Herrera) Previously, if a page range was desummarized at just the wrong time, an index scan might falsely raise an error indicating index corruption.", "commit_aliases": ["0426c75e7", "1f42d35a1", "721ef4d28", "7a3c261fb", "7af39993a", "8782ea2f3", "ce3a8fde8"], "source_commits": ["7a3c261fb"], "source_entry_id": "9.6.20/changes/018", "db_id": "82130add7738c3d78e474a0a8d8e4203", "patch_ids": ["d2a569906c031d1485855cbad9d5244a"], "statement_hash": "b396b35af535447444e7f8afbbcf759a4b55ed99f99cc757070fc4bf0a296dc1", "relations": [{"rule": 2, "type": "equivalent", "target": "0a3ab21daf4706eff4f4f2df196c4b50", "evidence": {"same_day": true, "patch_ids": ["d2a569906c031d1485855cbad9d5244a"], "statement_hash": "b396b35af535447444e7f8afbbcf759a4b55ed99f99cc757070fc4bf0a296dc1"}}, {"rule": 2, "type": "equivalent", "target": "96d3a54ff2f798dd521091a2bf32abef", "evidence": {"same_day": true, "patch_ids": ["d2a569906c031d1485855cbad9d5244a"], "statement_hash": "b396b35af535447444e7f8afbbcf759a4b55ed99f99cc757070fc4bf0a296dc1"}}, {"rule": 2, "type": "equivalent", "target": "b0d851f55446341f7d688770837b557d", "evidence": {"same_day": true, "patch_ids": ["d2a569906c031d1485855cbad9d5244a"], "statement_hash": "b396b35af535447444e7f8afbbcf759a4b55ed99f99cc757070fc4bf0a296dc1"}}, {"rule": 2, "type": "equivalent", "target": "d091137bf92885fadfe180dc9f63789c", "evidence": {"same_day": true, "patch_ids": ["d2a569906c031d1485855cbad9d5244a"], "statement_hash": "b396b35af535447444e7f8afbbcf759a4b55ed99f99cc757070fc4bf0a296dc1"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "96d3a54ff2f798dd521091a2bf32abef", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "在 BRIN 索引扫描期间正确处理并发取消汇总", "evidence": {"same_day": true, "patch_ids": ["d2a569906c031d1485855cbad9d5244a"], "statement_hash": "b396b35af535447444e7f8afbbcf759a4b55ed99f99cc757070fc4bf0a296dc1"}, "url": "/docs/compare/?release=12.5#12.5-53d41972159f4d50", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "b0d851f55446341f7d688770837b557d", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "在 BRIN 索引扫描期间正确处理并发取消汇总", "evidence": {"same_day": true, "patch_ids": ["d2a569906c031d1485855cbad9d5244a"], "statement_hash": "b396b35af535447444e7f8afbbcf759a4b55ed99f99cc757070fc4bf0a296dc1"}, "url": "/docs/compare/?release=11.10#11.10-cc8e84ad6ca744c7", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "0a3ab21daf4706eff4f4f2df196c4b50", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "在 BRIN 索引扫描期间正确处理并发取消汇总", "evidence": {"same_day": true, "patch_ids": ["d2a569906c031d1485855cbad9d5244a"], "statement_hash": "b396b35af535447444e7f8afbbcf759a4b55ed99f99cc757070fc4bf0a296dc1"}, "url": "/docs/compare/?release=10.15#10.15-cc8e84ad6ca744c7", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "d091137bf92885fadfe180dc9f63789c", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "在 BRIN 索引扫描期间正确处理并发取消摘要", "evidence": {"same_day": true, "patch_ids": ["d2a569906c031d1485855cbad9d5244a"], "statement_hash": "b396b35af535447444e7f8afbbcf759a4b55ed99f99cc757070fc4bf0a296dc1"}, "url": "/docs/compare/?release=9.5.24#9.5.24-4a4b0f9da65203f9", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-224e82894a79c777", "cves": [], "html": "<p>修复多列 GIN 索引扫描中罕见的 <span>“<span>lost saved point in index</span>”</span> 错误（Tom Lane）</p>", "text": "修复多列 GIN 索引扫描中罕见的 “lost saved point in index” 错误（Tom Lane）", "title": "修复多列 GIN 索引扫描中罕见的 “lost saved point in index” 错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "6fdb32e427b93a96952db2eda1ac58aec56a8b1356c127f5ca1cb664b3cac377", "section_path": ["变更"], "commit_groups": [["0d3ad6540", "0dfec43c8", "10564ee02", "11ecf4bd2", "1df14a566", "fabd2f9c9", "ff3c16d1e"]], "identity_text": "Fix rare lost saved point in index errors in scans of multicolumn GIN indexes (Tom Lane)", "commit_aliases": ["0d3ad6540", "0dfec43c8", "10564ee02", "11ecf4bd2", "1df14a566", "fabd2f9c9", "ff3c16d1e"], "source_commits": ["0dfec43c8"], "source_entry_id": "9.6.20/changes/019", "db_id": "fbe37de2248d241f2356e247421d66de", "patch_ids": ["b924aefe2f76cd5bce604a07e377c598"], "statement_hash": "86104ab659d2ff370250d7157a2b7c23f91dfd1dfca52879c01db4ca63908536", "relations": [{"rule": 2, "type": "equivalent", "target": "064186f416a1a4aad8799c66c67a5447", "evidence": {"same_day": true, "patch_ids": ["b924aefe2f76cd5bce604a07e377c598"], "statement_hash": "86104ab659d2ff370250d7157a2b7c23f91dfd1dfca52879c01db4ca63908536"}}, {"rule": 2, "type": "equivalent", "target": "52d30363c69dac2bb8f3ae4975eb7ac9", "evidence": {"same_day": true, "patch_ids": ["b924aefe2f76cd5bce604a07e377c598"], "statement_hash": "86104ab659d2ff370250d7157a2b7c23f91dfd1dfca52879c01db4ca63908536"}}, {"rule": 2, "type": "equivalent", "target": "c334255955eec6880b1d2779cd57e4e4", "evidence": {"same_day": true, "patch_ids": ["b924aefe2f76cd5bce604a07e377c598"], "statement_hash": "86104ab659d2ff370250d7157a2b7c23f91dfd1dfca52879c01db4ca63908536"}}, {"rule": 2, "type": "equivalent", "target": "d541c04c0ca1ab8ab4f6fe954c577657", "evidence": {"same_day": true, "patch_ids": ["b924aefe2f76cd5bce604a07e377c598"], "statement_hash": "86104ab659d2ff370250d7157a2b7c23f91dfd1dfca52879c01db4ca63908536"}}], "version": "9.6.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "064186f416a1a4aad8799c66c67a5447", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复多列 GIN 索引扫描中罕见的 “lost saved point in index” 错误", "evidence": {"same_day": true, "patch_ids": ["b924aefe2f76cd5bce604a07e377c598"], "statement_hash": "86104ab659d2ff370250d7157a2b7c23f91dfd1dfca52879c01db4ca63908536"}, "url": "/docs/compare/?release=12.5#12.5-0e610eea7b5d8349", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "d541c04c0ca1ab8ab4f6fe954c577657", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复多列 GIN 索引扫描中罕见的 “lost saved point in index” 错误", "evidence": {"same_day": true, "patch_ids": ["b924aefe2f76cd5bce604a07e377c598"], "statement_hash": "86104ab659d2ff370250d7157a2b7c23f91dfd1dfca52879c01db4ca63908536"}, "url": "/docs/compare/?release=11.10#11.10-224e82894a79c777", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "52d30363c69dac2bb8f3ae4975eb7ac9", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复多列 GIN 索引扫描中罕见的 “lost saved point in index” 错误", "evidence": {"same_day": true, "patch_ids": ["b924aefe2f76cd5bce604a07e377c598"], "statement_hash": "86104ab659d2ff370250d7157a2b7c23f91dfd1dfca52879c01db4ca63908536"}, "url": "/docs/compare/?release=10.15#10.15-224e82894a79c777", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "c334255955eec6880b1d2779cd57e4e4", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复多列 GIN 索引扫描中罕见的 “lost saved point in index” 错误", "evidence": {"same_day": true, "patch_ids": ["b924aefe2f76cd5bce604a07e377c598"], "statement_hash": "86104ab659d2ff370250d7157a2b7c23f91dfd1dfca52879c01db4ca63908536"}, "url": "/docs/compare/?release=9.5.24#9.5.24-224e82894a79c777", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-00888948cb5f7865", "cves": [], "html": "<p>修复事件触发器监视 <code>ALTER TABLE</code> 操作时的释放后使用风险（Jehan-Guillaume de Rorthais）</p>", "text": "修复事件触发器监视 ALTER TABLE 操作时的释放后使用风险（Jehan-Guillaume de Rorthais）", "title": "修复事件触发器监视 ALTER TABLE 操作时的释放后使用风险", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "7aa01a0f91727242306e4dfeec9701131f843ded7faf46177b3c31a3d617f4d7", "section_path": ["变更"], "commit_groups": [["41c742a43", "66c036b4f", "7978ad025", "93f726c04", "cc623ed2f"], ["873cb8fca", "ced138e8c"]], "identity_text": "Fix use-after-free hazard when an event trigger monitors an ALTER TABLE operation (Jehan-Guillaume de Rorthais)", "commit_aliases": ["41c742a43", "66c036b4f", "7978ad025", "873cb8fca", "93f726c04", "cc623ed2f", "ced138e8c"], "source_commits": ["cc623ed2f", "ced138e8c"], "source_entry_id": "9.6.20/changes/020", "db_id": "70d23c4241781bf37fd90650cca4f4db", "patch_ids": ["1d42344b981776a2adc111e0ce62a067", "eeaf27df3fc50a62df45605bbd19d6cd"], "statement_hash": "a45d9b6c63cc4940d9f7ec00a694e95fcbf370520ccfcac5e1b7a29943732674", "relations": [{"rule": 2, "type": "equivalent", "target": "193dc3e287c03ead8171a72f5426788b", "evidence": {"same_day": true, "patch_ids": ["1d42344b981776a2adc111e0ce62a067", "eeaf27df3fc50a62df45605bbd19d6cd"], "statement_hash": "a45d9b6c63cc4940d9f7ec00a694e95fcbf370520ccfcac5e1b7a29943732674"}}, {"rule": 2, "type": "equivalent", "target": "3eaed1205c28007d943d49c8790574bb", "evidence": {"same_day": true, "patch_ids": ["1d42344b981776a2adc111e0ce62a067", "eeaf27df3fc50a62df45605bbd19d6cd"], "statement_hash": "a45d9b6c63cc4940d9f7ec00a694e95fcbf370520ccfcac5e1b7a29943732674"}}, {"rule": 2, "type": "equivalent", "target": "8dabdc610b8230ef3bac9552fc0514b9", "evidence": {"same_day": true, "patch_ids": ["1d42344b981776a2adc111e0ce62a067", "eeaf27df3fc50a62df45605bbd19d6cd"], "statement_hash": "a45d9b6c63cc4940d9f7ec00a694e95fcbf370520ccfcac5e1b7a29943732674"}}, {"rule": 2, "type": "equivalent", "target": "9f6d3c07ad0c94bb9d62ad25390390ac", "evidence": {"same_day": true, "patch_ids": ["1d42344b981776a2adc111e0ce62a067", "eeaf27df3fc50a62df45605bbd19d6cd"], "statement_hash": "a45d9b6c63cc4940d9f7ec00a694e95fcbf370520ccfcac5e1b7a29943732674"}}], "version": "9.6.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9f6d3c07ad0c94bb9d62ad25390390ac", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复事件触发器监控 ALTER TABLE 操作时的释放后使用隐患", "evidence": {"same_day": true, "patch_ids": ["1d42344b981776a2adc111e0ce62a067", "eeaf27df3fc50a62df45605bbd19d6cd"], "statement_hash": "a45d9b6c63cc4940d9f7ec00a694e95fcbf370520ccfcac5e1b7a29943732674"}, "url": "/docs/compare/?release=12.5#12.5-f4302a8e29613ece", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "193dc3e287c03ead8171a72f5426788b", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复事件触发器监控 ALTER TABLE 操作时的释放后使用隐患", "evidence": {"same_day": true, "patch_ids": ["1d42344b981776a2adc111e0ce62a067", "eeaf27df3fc50a62df45605bbd19d6cd"], "statement_hash": "a45d9b6c63cc4940d9f7ec00a694e95fcbf370520ccfcac5e1b7a29943732674"}, "url": "/docs/compare/?release=11.10#11.10-99dd95a6b1ba9ca5", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "3eaed1205c28007d943d49c8790574bb", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复事件触发器监控 ALTER TABLE 操作时的释放后使用隐患", "evidence": {"same_day": true, "patch_ids": ["1d42344b981776a2adc111e0ce62a067", "eeaf27df3fc50a62df45605bbd19d6cd"], "statement_hash": "a45d9b6c63cc4940d9f7ec00a694e95fcbf370520ccfcac5e1b7a29943732674"}, "url": "/docs/compare/?release=10.15#10.15-99dd95a6b1ba9ca5", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "8dabdc610b8230ef3bac9552fc0514b9", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复事件触发器监视 ALTER TABLE 操作时的释放后使用风险", "evidence": {"same_day": true, "patch_ids": ["1d42344b981776a2adc111e0ce62a067", "eeaf27df3fc50a62df45605bbd19d6cd"], "statement_hash": "a45d9b6c63cc4940d9f7ec00a694e95fcbf370520ccfcac5e1b7a29943732674"}, "url": "/docs/compare/?release=9.5.24#9.5.24-00888948cb5f7865", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-7ea69f80dfb12422", "cves": [], "html": "<p>修复关于移动聚合数据类型不一致的错误错误消息（Jeff Janes）</p>", "text": "修复关于移动聚合数据类型不一致的错误错误消息（Jeff Janes）", "title": "修复关于移动聚合数据类型不一致的错误错误消息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "9536ccf26ec1770838cda6c7a8b67546f025d9b64547b40926d23cbb0488721d", "section_path": ["变更"], "commit_groups": [["19ad7e1d7", "2939f613f", "baef6e5e9", "e0b4c7dd0", "f04203ab7", "f45dd3fed", "f71b93b86"]], "identity_text": "Fix incorrect error message about inconsistent moving-aggregate data types (Jeff Janes)", "commit_aliases": ["19ad7e1d7", "2939f613f", "baef6e5e9", "e0b4c7dd0", "f04203ab7", "f45dd3fed", "f71b93b86"], "source_commits": ["2939f613f"], "source_entry_id": "9.6.20/changes/021", "db_id": "5ba9e6ba479940ad29508d9f1f5f4557", "patch_ids": ["a6ee29024df492c5d25c7bde4de9462d"], "statement_hash": "2f86d5f772282f0258a4d8de711614f88964da3100750473f47d12c277bdeeea", "relations": [{"rule": 2, "type": "equivalent", "target": "75d932c479a5ee215f22f5cbe20fac12", "evidence": {"same_day": true, "patch_ids": ["a6ee29024df492c5d25c7bde4de9462d"], "statement_hash": "2f86d5f772282f0258a4d8de711614f88964da3100750473f47d12c277bdeeea"}}, {"rule": 2, "type": "equivalent", "target": "79da3f5b1b63a3182fa29eb6dd66f0ac", "evidence": {"same_day": true, "patch_ids": ["a6ee29024df492c5d25c7bde4de9462d"], "statement_hash": "2f86d5f772282f0258a4d8de711614f88964da3100750473f47d12c277bdeeea"}}, {"rule": 2, "type": "equivalent", "target": "b7734d735931a2594d8d810c0da0d263", "evidence": {"same_day": true, "patch_ids": ["a6ee29024df492c5d25c7bde4de9462d"], "statement_hash": "2f86d5f772282f0258a4d8de711614f88964da3100750473f47d12c277bdeeea"}}, {"rule": 2, "type": "equivalent", "target": "b92857f8895e8e33ac12acfd3b0da7b7", "evidence": {"same_day": true, "patch_ids": ["a6ee29024df492c5d25c7bde4de9462d"], "statement_hash": "2f86d5f772282f0258a4d8de711614f88964da3100750473f47d12c277bdeeea"}}], "version": "9.6.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b7734d735931a2594d8d810c0da0d263", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复关于移动聚合数据类型不一致的不正确错误消息", "evidence": {"same_day": true, "patch_ids": ["a6ee29024df492c5d25c7bde4de9462d"], "statement_hash": "2f86d5f772282f0258a4d8de711614f88964da3100750473f47d12c277bdeeea"}, "url": "/docs/compare/?release=12.5#12.5-d276df7b8740409c", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "b92857f8895e8e33ac12acfd3b0da7b7", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复关于移动聚合数据类型不一致的不正确错误消息", "evidence": {"same_day": true, "patch_ids": ["a6ee29024df492c5d25c7bde4de9462d"], "statement_hash": "2f86d5f772282f0258a4d8de711614f88964da3100750473f47d12c277bdeeea"}, "url": "/docs/compare/?release=11.10#11.10-0f9ea43ecaf5f362", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "75d932c479a5ee215f22f5cbe20fac12", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复关于移动聚合数据类型不一致的不正确错误消息", "evidence": {"same_day": true, "patch_ids": ["a6ee29024df492c5d25c7bde4de9462d"], "statement_hash": "2f86d5f772282f0258a4d8de711614f88964da3100750473f47d12c277bdeeea"}, "url": "/docs/compare/?release=10.15#10.15-0f9ea43ecaf5f362", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "79da3f5b1b63a3182fa29eb6dd66f0ac", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复关于移动聚合数据类型不一致的错误错误消息", "evidence": {"same_day": true, "patch_ids": ["a6ee29024df492c5d25c7bde4de9462d"], "statement_hash": "2f86d5f772282f0258a4d8de711614f88964da3100750473f47d12c277bdeeea"}, "url": "/docs/compare/?release=9.5.24#9.5.24-7ea69f80dfb12422", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-c539e3641874b0fb", "cves": [], "html": "<p>避免并行工作者报告很长的错误消息时的锁死（Vignesh C）</p>", "text": "避免并行工作者报告很长的错误消息时的锁死（Vignesh C）", "title": "避免并行工作者报告很长的错误消息时的锁死", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "c8383dc323de4c7e46a176035614089909818f78e40813b0311051f59621fe93", "section_path": ["变更"], "commit_groups": [["17424e79d", "2500e51e7", "2a938c793", "3738651f5", "526df0a23", "82dd373f2", "be4b0c007"]], "identity_text": "Avoid lockup when a parallel worker reports a very long error message (Vignesh C)", "commit_aliases": ["17424e79d", "2500e51e7", "2a938c793", "3738651f5", "526df0a23", "82dd373f2", "be4b0c007"], "source_commits": ["2500e51e7"], "source_entry_id": "9.6.20/changes/022", "db_id": "38691d1ad3e39be8aa41d7fb3c16628c", "patch_ids": ["c2dea10c2eaf9a14751919026d5a82f0"], "statement_hash": "9a1afa7cc019b644f33876e98b16a00d4e3796963507f87a87e058aaebe1fabe", "relations": [{"rule": 2, "type": "equivalent", "target": "6603b8505054465791635c102026e763", "evidence": {"same_day": true, "patch_ids": ["c2dea10c2eaf9a14751919026d5a82f0"], "statement_hash": "9a1afa7cc019b644f33876e98b16a00d4e3796963507f87a87e058aaebe1fabe"}}, {"rule": 2, "type": "equivalent", "target": "66672a1540adc34224fa39b4fbc3deff", "evidence": {"same_day": true, "patch_ids": ["c2dea10c2eaf9a14751919026d5a82f0"], "statement_hash": "9a1afa7cc019b644f33876e98b16a00d4e3796963507f87a87e058aaebe1fabe"}}, {"rule": 2, "type": "equivalent", "target": "adf19289b8ccad8481294cf61720a125", "evidence": {"same_day": true, "patch_ids": ["c2dea10c2eaf9a14751919026d5a82f0"], "statement_hash": "9a1afa7cc019b644f33876e98b16a00d4e3796963507f87a87e058aaebe1fabe"}}, {"rule": 2, "type": "equivalent", "target": "ca2fe3f27731efae36e979cc401b5d26", "evidence": {"same_day": true, "patch_ids": ["c2dea10c2eaf9a14751919026d5a82f0"], "statement_hash": "9a1afa7cc019b644f33876e98b16a00d4e3796963507f87a87e058aaebe1fabe"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6603b8505054465791635c102026e763", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "避免并行工作进程报告很长的错误消息时卡死", "evidence": {"same_day": true, "patch_ids": ["c2dea10c2eaf9a14751919026d5a82f0"], "statement_hash": "9a1afa7cc019b644f33876e98b16a00d4e3796963507f87a87e058aaebe1fabe"}, "url": "/docs/compare/?release=12.5#12.5-81a3e4982fc1d917", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "adf19289b8ccad8481294cf61720a125", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "避免并行工作进程报告很长的错误消息时卡死", "evidence": {"same_day": true, "patch_ids": ["c2dea10c2eaf9a14751919026d5a82f0"], "statement_hash": "9a1afa7cc019b644f33876e98b16a00d4e3796963507f87a87e058aaebe1fabe"}, "url": "/docs/compare/?release=11.10#11.10-e03c8a138e007d95", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "66672a1540adc34224fa39b4fbc3deff", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "避免并行工作进程报告很长的错误消息时卡死", "evidence": {"same_day": true, "patch_ids": ["c2dea10c2eaf9a14751919026d5a82f0"], "statement_hash": "9a1afa7cc019b644f33876e98b16a00d4e3796963507f87a87e058aaebe1fabe"}, "url": "/docs/compare/?release=10.15#10.15-e03c8a138e007d95", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "ca2fe3f27731efae36e979cc401b5d26", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "避免并行工作者报告很长的错误消息时的锁死", "evidence": {"same_day": true, "patch_ids": ["c2dea10c2eaf9a14751919026d5a82f0"], "statement_hash": "9a1afa7cc019b644f33876e98b16a00d4e3796963507f87a87e058aaebe1fabe"}, "url": "/docs/compare/?release=9.5.24#9.5.24-c539e3641874b0fb", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-f65391a2541e01bc", "cves": [], "html": "<p>避免通过共享内存队列传输超大载荷时不必要的失败（Markus Wanner）</p>", "text": "避免通过共享内存队列传输超大载荷时不必要的失败（Markus Wanner）", "title": "避免通过共享内存队列传输超大载荷时不必要的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "18dcb973a8aa1d15888a0643e70f4822d0c61ed875fe9841985c1aed2a44d39d", "section_path": ["变更"], "commit_groups": [["1f53d0b9f", "6e03a8a30", "bd0677bb8", "d27c18d26", "d4e654d15", "f78ebbe68"]], "identity_text": "Avoid unnecessary failure when transferring very large payloads through shared memory queues (Markus Wanner)", "commit_aliases": ["1f53d0b9f", "6e03a8a30", "bd0677bb8", "d27c18d26", "d4e654d15", "f78ebbe68"], "source_commits": ["d4e654d15"], "source_entry_id": "9.6.20/changes/023", "db_id": "bb9141f24650e5106970fe90e0922e78", "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878", "relations": [{"rule": 2, "type": "equivalent", "target": "12ff41f26722da3cc3a0ed8a75a9eec6", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}}, {"rule": 2, "type": "equivalent", "target": "4ba2ea381edaca1a2af12cc610701790", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}}, {"rule": 2, "type": "equivalent", "target": "722acae857036426760487d25452bcc2", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}}, {"rule": 2, "type": "equivalent", "target": "dece852415693fdfc7ab729e403fbc5e", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}}, {"rule": 2, "type": "equivalent", "target": "e93b23d1f0a5d1a9e2736c1b8a37d392", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dece852415693fdfc7ab729e403fbc5e", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "避免通过共享内存队列传输很大的数据载荷时发生不必要的失败", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}, "url": "/docs/compare/?release=13.1#13.1-210e18fd8bf5ac2c", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "12ff41f26722da3cc3a0ed8a75a9eec6", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "避免通过共享内存队列传输很大的数据载荷时发生不必要的失败", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}, "url": "/docs/compare/?release=12.5#12.5-7887982efb40aae8", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "4ba2ea381edaca1a2af12cc610701790", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "避免通过共享内存队列传输很大的数据载荷时发生不必要的失败", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}, "url": "/docs/compare/?release=11.10#11.10-53e2e6de806fd956", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "e93b23d1f0a5d1a9e2736c1b8a37d392", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "避免通过共享内存队列传输很大的数据载荷时发生不必要的失败", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}, "url": "/docs/compare/?release=10.15#10.15-53e2e6de806fd956", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "722acae857036426760487d25452bcc2", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "避免通过共享内存队列传输超大载荷时不必要的失败", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}, "url": "/docs/compare/?release=9.5.24#9.5.24-f65391a2541e01bc", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-5a50c23ad7cada50", "cves": [], "html": "<p>修复 RLS 策略导致的关系缓存内存泄漏（Tom Lane）</p>", "text": "修复 RLS 策略导致的关系缓存内存泄漏（Tom Lane）", "title": "修复 RLS 策略导致的关系缓存内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "ad39b66d30555a8f9f8e1de98abbbd5c677de58971fba9bb752919240a8c15d3", "section_path": ["变更"], "commit_groups": [["acab757ce", "bda32733c", "bf34ae930", "dd89ba578", "de6725deb", "e55f718fc", "f7873900f"]], "identity_text": "Fix relation cache memory leaks with RLS policies (Tom Lane)", "commit_aliases": ["acab757ce", "bda32733c", "bf34ae930", "dd89ba578", "de6725deb", "e55f718fc", "f7873900f"], "source_commits": ["acab757ce"], "source_entry_id": "9.6.20/changes/024", "db_id": "b391f3e10b25d2204b81bd3ea8bad6d7", "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6", "relations": [{"rule": 2, "type": "equivalent", "target": "07c3f5f11a8d2c9b2f973d49833ab88a", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}}, {"rule": 2, "type": "equivalent", "target": "1d1e000571e98ddba13a80b34159607c", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}}, {"rule": 2, "type": "equivalent", "target": "3d75c60cd5c1cd0602d6a8ef90e7175f", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}}, {"rule": 2, "type": "equivalent", "target": "7b847625301e69666a78bf22a37c5dbb", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}}, {"rule": 2, "type": "equivalent", "target": "96cd0fff2b6e9846599349b6ba5d2bd9", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}}], "version": "9.6.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3d75c60cd5c1cd0602d6a8ef90e7175f", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "修复 RLS 策略相关的关系缓存内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}, "url": "/docs/compare/?release=13.1#13.1-fc30b1fb28ea1177", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "1d1e000571e98ddba13a80b34159607c", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 RLS 策略相关的关系缓存内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}, "url": "/docs/compare/?release=12.5#12.5-b4dac1df6e1c72f6", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "96cd0fff2b6e9846599349b6ba5d2bd9", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 RLS 策略相关的关系缓存内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}, "url": "/docs/compare/?release=11.10#11.10-3873eccb92206723", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "07c3f5f11a8d2c9b2f973d49833ab88a", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 RLS 策略相关的关系缓存内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}, "url": "/docs/compare/?release=10.15#10.15-3873eccb92206723", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "7b847625301e69666a78bf22a37c5dbb", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 RLS 策略导致的关系缓存内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}, "url": "/docs/compare/?release=9.5.24#9.5.24-5a50c23ad7cada50", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-53884971cdd88e59", "cves": [], "html": "<p>修复 SIGHUP 处理判定新的 GUC 变量值必须重启才能应用时的小内存泄漏（Tom Lane）</p>", "text": "修复 SIGHUP 处理判定新的 GUC 变量值必须重启才能应用时的小内存泄漏（Tom Lane）", "title": "修复 SIGHUP 处理判定新的 GUC 变量值必须重启才能应用时的小内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "019c139ea4e1025a6be9c1b56a367902710a9e8280b58c7aff18348bc2f4fa2e", "section_path": ["变更"], "commit_groups": [["397ea901e", "43ca5e07d", "9343bfefa", "a5c77e6b8", "c7573ab1e", "cfa4cff30", "f35c11770"]], "identity_text": "Fix small memory leak when SIGHUP processing decides that a new GUC variable value cannot be applied without a restart (Tom Lane)", "commit_aliases": ["397ea901e", "43ca5e07d", "9343bfefa", "a5c77e6b8", "c7573ab1e", "cfa4cff30", "f35c11770"], "source_commits": ["c7573ab1e"], "source_entry_id": "9.6.20/changes/025", "db_id": "fb7d08b18e099bd56d514ea6ca3b5ea0", "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00", "relations": [{"rule": 2, "type": "equivalent", "target": "0be0283de15f1b9d28b4fe88d79cf481", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}}, {"rule": 2, "type": "equivalent", "target": "509d82dee875e19aea96bee48e3e49bf", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}}, {"rule": 2, "type": "equivalent", "target": "82baed7f6bc4e4089d9fa33cd5906ed1", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}}, {"rule": 2, "type": "equivalent", "target": "a373153a55f8a80e8ddf4a2c75367c01", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}}, {"rule": 2, "type": "equivalent", "target": "e3ce1a7779af456eb60753c476539994", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}}], "version": "9.6.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a373153a55f8a80e8ddf4a2c75367c01", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}, "url": "/docs/compare/?release=13.1#13.1-6cc9fe20ad617d75", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "509d82dee875e19aea96bee48e3e49bf", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}, "url": "/docs/compare/?release=12.5#12.5-1d7c96a719aa7a02", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "0be0283de15f1b9d28b4fe88d79cf481", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}, "url": "/docs/compare/?release=11.10#11.10-418a4d7581b7a8c6", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "e3ce1a7779af456eb60753c476539994", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}, "url": "/docs/compare/?release=10.15#10.15-418a4d7581b7a8c6", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "82baed7f6bc4e4089d9fa33cd5906ed1", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 SIGHUP 处理判定新的 GUC 变量值必须重启才能应用时的小内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}, "url": "/docs/compare/?release=9.5.24#9.5.24-53884971cdd88e59", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-56fef15f6bf39ed2", "cves": [], "html": "<p>让 <span>libpq</span> 支持 <code>.pgpass</code> 文件中任意长度的行（Tom Lane）</p>\n<p>这主要用于允许使用很长的安全令牌作为密码。</p>", "text": "让 libpq 支持 .pgpass 文件中任意长度的行（Tom Lane） 这主要用于允许使用很长的安全令牌作为密码。", "title": "让 libpq 支持 .pgpass 文件中任意长度的行", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "2490b3fa5d69682a9e8b5d6c981f5b28e89810f1450177ae4f79c7aa5867d0a3", "section_path": ["变更"], "commit_groups": [["0c0a3a859", "4178b7499", "55aea0c70", "8d486cfbf", "b55b4dad9", "ba23174dd", "df8020b32"], ["4d41823c5", "546479f34", "8df601bd4", "d7ae549e3", "fc37c6f61"]], "identity_text": "Make libpq support arbitrary-length lines in .pgpass files (Tom Lane) This is mostly useful to allow using very long security tokens as passwords.", "commit_aliases": ["0c0a3a859", "4178b7499", "4d41823c5", "546479f34", "55aea0c70", "8d486cfbf", "8df601bd4", "b55b4dad9", "ba23174dd", "d7ae549e3", "df8020b32", "fc37c6f61"], "source_commits": ["4d41823c5", "ba23174dd"], "source_entry_id": "9.6.20/changes/026", "db_id": "226b9718830bf38fe8891045cd1d0647", "patch_ids": ["2951f41d3eeb6c1a9df52e929f7316a7", "c7b0b5432d7230e7d6eaec7c119c6292"], "statement_hash": "b34f03452c03656619e8482178cbd67b9a43704fb74edfb899e9320794189587", "relations": [{"rule": 2, "type": "equivalent", "target": "42985fac1d65c9be84f4309528a5cc93", "evidence": {"same_day": true, "patch_ids": ["2951f41d3eeb6c1a9df52e929f7316a7", "c7b0b5432d7230e7d6eaec7c119c6292"], "statement_hash": "b34f03452c03656619e8482178cbd67b9a43704fb74edfb899e9320794189587"}}, {"rule": 2, "type": "equivalent", "target": "7ab509524aab4c60c5a68bcd37aa7242", "evidence": {"same_day": true, "patch_ids": ["2951f41d3eeb6c1a9df52e929f7316a7", "c7b0b5432d7230e7d6eaec7c119c6292"], "statement_hash": "b34f03452c03656619e8482178cbd67b9a43704fb74edfb899e9320794189587"}}, {"rule": 2, "type": "equivalent", "target": "92c53642b4a035ddb2479098010e33a5", "evidence": {"same_day": true, "patch_ids": ["2951f41d3eeb6c1a9df52e929f7316a7", "c7b0b5432d7230e7d6eaec7c119c6292"], "statement_hash": "b34f03452c03656619e8482178cbd67b9a43704fb74edfb899e9320794189587"}}, {"rule": 2, "type": "equivalent", "target": "a8756cf7c9f018cdc0b1de84f1974ed2", "evidence": {"same_day": true, "patch_ids": ["2951f41d3eeb6c1a9df52e929f7316a7", "c7b0b5432d7230e7d6eaec7c119c6292"], "statement_hash": "b34f03452c03656619e8482178cbd67b9a43704fb74edfb899e9320794189587"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "42985fac1d65c9be84f4309528a5cc93", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "使 libpq 支持 .pgpass 文件中任意长度的行", "evidence": {"same_day": true, "patch_ids": ["2951f41d3eeb6c1a9df52e929f7316a7", "c7b0b5432d7230e7d6eaec7c119c6292"], "statement_hash": "b34f03452c03656619e8482178cbd67b9a43704fb74edfb899e9320794189587"}, "url": "/docs/compare/?release=12.5#12.5-4a1fbec55ab6bb73", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "7ab509524aab4c60c5a68bcd37aa7242", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "使 libpq 支持 .pgpass 文件中任意长度的行", "evidence": {"same_day": true, "patch_ids": ["2951f41d3eeb6c1a9df52e929f7316a7", "c7b0b5432d7230e7d6eaec7c119c6292"], "statement_hash": "b34f03452c03656619e8482178cbd67b9a43704fb74edfb899e9320794189587"}, "url": "/docs/compare/?release=11.10#11.10-13ee787597e73f7c", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "92c53642b4a035ddb2479098010e33a5", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "使 libpq 支持 .pgpass 文件中任意长度的行", "evidence": {"same_day": true, "patch_ids": ["2951f41d3eeb6c1a9df52e929f7316a7", "c7b0b5432d7230e7d6eaec7c119c6292"], "statement_hash": "b34f03452c03656619e8482178cbd67b9a43704fb74edfb899e9320794189587"}, "url": "/docs/compare/?release=10.15#10.15-13ee787597e73f7c", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "a8756cf7c9f018cdc0b1de84f1974ed2", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "让 libpq 支持 .pgpass 文件中任意长度的行", "evidence": {"same_day": true, "patch_ids": ["2951f41d3eeb6c1a9df52e929f7316a7", "c7b0b5432d7230e7d6eaec7c119c6292"], "statement_hash": "b34f03452c03656619e8482178cbd67b9a43704fb74edfb899e9320794189587"}, "url": "/docs/compare/?release=9.5.24#9.5.24-56fef15f6bf39ed2", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-c7326ef3480a3d5e", "cves": [], "html": "<p>在 Windows 的 <span>libpq</span> 中，每进程调用一次 <code>WSAStartup()</code>，完全不调用 <code>WSACleanup()</code>（Tom Lane、Alexander Lakhin）</p>\n<p>此前，<span>libpq</span> 在连接开始时调用 <code>WSAStartup()</code>，在连接清理时调用 <code>WSACleanup()</code>。然而，调用 <code>WSACleanup()</code> 似乎会干扰其他程序操作；特别是，我们观察到向 stdout 输出预期内容偶尔失败。省略该调用似乎没有不良影响，因此就这么做。（这还消除了程序执行一系列数据库连接时因反复加载和卸载 DLL 导致的性能问题。）</p>", "text": "在 Windows 的 libpq 中，每进程调用一次 WSAStartup()，完全不调用 WSACleanup()（Tom Lane、Alexander Lakhin） 此前，libpq 在连接开始时调用 WSAStartup()，在连接清理时调用 WSACleanup()。然而，调用 WSACleanup() 似乎会干扰其他程序操作；特别是，我们观察到向 stdout 输出预期内容偶尔失败。省略该调用似乎没有不良影响，因此就这么做。（这还消除了程序执行一系列数据库连接时因反复加载和卸载 DLL 导致的性能问题。）", "title": "在 Windows 的 libpq 中，每进程调用一次 WSAStartup()，完全不调用 WSACleanup()", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "28a90648931a2165088fd76744271c17b87573f8e9020f4a2c76fcad9af48642", "section_path": ["变更"], "commit_groups": [["407580aab", "6670e9107", "6acc31a20", "7d00a6b2d", "883226441", "cdc7ace16", "d2074daeb"]], "identity_text": "In libpq for Windows, call WSAStartup() once per process and WSACleanup() not at all (Tom Lane, Alexander Lakhin) Previously, libpq invoked WSAStartup() at connection start and WSACleanup() at connection cleanup. However, it appears that calling WSACleanup() can interfere with other program operations; notably, we have observed rare failures to emit expected output to stdout. There appear to be no ill effects from omitting the call, so do that. (This also eliminates a performance issue from repeated DLL loads and unloads when a program performs a series of database connections.)", "commit_aliases": ["407580aab", "6670e9107", "6acc31a20", "7d00a6b2d", "883226441", "cdc7ace16", "d2074daeb"], "source_commits": ["cdc7ace16"], "source_entry_id": "9.6.20/changes/027", "db_id": "b799ee795c42f584d54fb75fe00674ad", "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4", "relations": [{"rule": 2, "type": "equivalent", "target": "49590203e538551c9c91e4b6b8ad895d", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}}, {"rule": 2, "type": "equivalent", "target": "b2230b031cd5496b65a99fb8f06b34a6", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}}, {"rule": 2, "type": "equivalent", "target": "e172f23ad3c58dbb9c06c75a27dbccc8", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}}, {"rule": 2, "type": "equivalent", "target": "e5f84643de5061ea41929a264d95d11f", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}}, {"rule": 2, "type": "equivalent", "target": "ff3e868befa45aef3ed64fbcffa619da", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e172f23ad3c58dbb9c06c75a27dbccc8", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}, "url": "/docs/compare/?release=13.1#13.1-6506f10a9caa9696", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "b2230b031cd5496b65a99fb8f06b34a6", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}, "url": "/docs/compare/?release=12.5#12.5-e80962d233c1a58a", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "49590203e538551c9c91e4b6b8ad895d", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}, "url": "/docs/compare/?release=11.10#11.10-16475b1bf65ba826", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "e5f84643de5061ea41929a264d95d11f", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}, "url": "/docs/compare/?release=10.15#10.15-16475b1bf65ba826", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "ff3e868befa45aef3ed64fbcffa619da", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "在 Windows 的 libpq 中，每进程调用一次 WSAStartup()，完全不调用 WSACleanup()", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}, "url": "/docs/compare/?release=9.5.24#9.5.24-c7326ef3480a3d5e", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-a0471424af6bfc5b", "cves": [], "html": "<p>修复 <span>ecpg</span> 库在 Windows 上的每线程初始化逻辑（Tom Lane、Alexander Lakhin）</p>\n<p>多线程的 <span>ecpg</span> 应用可能因错误的锁定而出现罕见的错误行为。</p>", "text": "修复 ecpg 库在 Windows 上的每线程初始化逻辑（Tom Lane、Alexander Lakhin） 多线程的 ecpg 应用可能因错误的锁定而出现罕见的错误行为。", "title": "修复 ecpg 库在 Windows 上的每线程初始化逻辑", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "99f7bf3d61baa02caba6f28520d63160755fde7d973bc4c7db77144df7313bcd", "section_path": ["变更"], "commit_groups": [["12a73f29f", "21d36747d", "379c43bda", "758b45e83", "bdc79ddd1", "f38b66ec0", "fd048e0cb"]], "identity_text": "Fix ecpg library's per-thread initialization logic for Windows (Tom Lane, Alexander Lakhin) Multi-threaded ecpg applications could suffer rare misbehavior due to incorrect locking.", "commit_aliases": ["12a73f29f", "21d36747d", "379c43bda", "758b45e83", "bdc79ddd1", "f38b66ec0", "fd048e0cb"], "source_commits": ["379c43bda"], "source_entry_id": "9.6.20/changes/028", "db_id": "bdf254d55b6f5ae4944f832d4e4aba90", "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6", "relations": [{"rule": 2, "type": "equivalent", "target": "0c91ba08f7a39546e2d58212d390fb9f", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}}, {"rule": 2, "type": "equivalent", "target": "1ed5dde67f6486babd2a0d24dffdc57d", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}}, {"rule": 2, "type": "equivalent", "target": "694cc9062e942a7e36d2268cc47ca86b", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}}, {"rule": 2, "type": "equivalent", "target": "b685c8ce1e0ac047162d851829393e09", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}}, {"rule": 2, "type": "equivalent", "target": "c250772a9e8ab85f9074deec9d995871", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}}], "version": "9.6.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "694cc9062e942a7e36d2268cc47ca86b", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "修复 ecpg 库在 Windows 上的逐线程初始化逻辑", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}, "url": "/docs/compare/?release=13.1#13.1-2267e558b078d8ca", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "c250772a9e8ab85f9074deec9d995871", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 ecpg 库在 Windows 上的逐线程初始化逻辑", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}, "url": "/docs/compare/?release=12.5#12.5-2d54e279cfe61ffc", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "b685c8ce1e0ac047162d851829393e09", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 ecpg 库在 Windows 上的逐线程初始化逻辑", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}, "url": "/docs/compare/?release=11.10#11.10-8f267a5ed7701a1a", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "0c91ba08f7a39546e2d58212d390fb9f", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 ecpg 库在 Windows 上的逐线程初始化逻辑", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}, "url": "/docs/compare/?release=10.15#10.15-8f267a5ed7701a1a", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "1ed5dde67f6486babd2a0d24dffdc57d", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 ecpg 库在 Windows 上的每线程初始化逻辑", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}, "url": "/docs/compare/?release=9.5.24#9.5.24-a0471424af6bfc5b", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-8ec23b68565f2603", "cves": [], "html": "<p>在 Windows 上，让 <span>psql</span> 以文本模式而非二进制模式读取反引号命令的输出（Tom Lane）</p>\n<p>这确保正确处理换行符。</p>", "text": "在 Windows 上，让 psql 以文本模式而非二进制模式读取反引号命令的输出（Tom Lane） 这确保正确处理换行符。", "title": "在 Windows 上，让 psql 以文本模式而非二进制模式读取反引号命令的输出", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "6b29405967cb7ae70adc82bf7f16f1c1e5277b4d6761baeff5e8e2c075b78702", "section_path": ["变更"], "commit_groups": [["204d77969", "504f963f7", "66f8687a8", "9eb250339", "aff06436c", "ba4f5413e", "cb0982ba9"]], "identity_text": "On Windows, make psql read the output of a backtick command in text mode, not binary mode (Tom Lane) This ensures proper handling of newlines.", "commit_aliases": ["204d77969", "504f963f7", "66f8687a8", "9eb250339", "aff06436c", "ba4f5413e", "cb0982ba9"], "source_commits": ["204d77969"], "source_entry_id": "9.6.20/changes/029", "db_id": "9b1ff42f9ce9a78c5329d18bf7b57a2c", "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0", "relations": [{"rule": 2, "type": "equivalent", "target": "12b9e9de7e0b7392bbc1d550c6cd6df6", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}}, {"rule": 2, "type": "equivalent", "target": "4913189de70c687d45c2182a4f59108c", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}}, {"rule": 2, "type": "equivalent", "target": "53bb8143f97e643054b70a519a5cd076", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}}, {"rule": 2, "type": "equivalent", "target": "acc4b62da548c94c0aaf301e49228dab", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}}, {"rule": 2, "type": "equivalent", "target": "f6660ce4942f7be69fae916d43edbb2c", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4913189de70c687d45c2182a4f59108c", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}, "url": "/docs/compare/?release=13.1#13.1-56791cce9174d808", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "acc4b62da548c94c0aaf301e49228dab", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}, "url": "/docs/compare/?release=12.5#12.5-57376eee8ffa54c5", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "53bb8143f97e643054b70a519a5cd076", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}, "url": "/docs/compare/?release=11.10#11.10-32081410b5ff0fa7", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "f6660ce4942f7be69fae916d43edbb2c", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}, "url": "/docs/compare/?release=10.15#10.15-32081410b5ff0fa7", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "12b9e9de7e0b7392bbc1d550c6cd6df6", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "在 Windows 上，让 psql 以文本模式而非二进制模式读取反引号命令的输出", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}, "url": "/docs/compare/?release=9.5.24#9.5.24-8ec23b68565f2603", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-e219d3bedd5c79f3", "cves": [], "html": "<p>确保 <span>pg_dump</span> 收集扩展配置表的逐列信息（Fabrízio de Royes Mello、Tom Lane）</p>\n<p>没有做到这一点会导致指定 <code>--inserts</code> 时崩溃，或在使用 <code>COPY</code> 重新装载表数据时生成欠指定（虽然通常正确）的 <code>COPY</code> 命令。</p>", "text": "确保 pg_dump 收集扩展配置表的逐列信息（Fabrízio de Royes Mello、Tom Lane） 没有做到这一点会导致指定 --inserts 时崩溃，或在使用 COPY 重新装载表数据时生成欠指定（虽然通常正确）的 COPY 命令。", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "3e4d79ca28ccb731bc2f77bcaa506dc5fa7ed6ff1ec574f1ca97276b1ef475be", "section_path": ["变更"], "commit_groups": [["0bfe356c5", "0c79dcb36", "2ea624b4b", "710c0a66d", "9e5f1f21a", "d8c2a2199", "f2c6e94f0"], ["3eb3d3e78", "616110eac", "72857482c"]], "identity_text": "Ensure that pg_dump collects per-column information about extension configuration tables (Fabrízio de Royes Mello, Tom Lane) Failure to do this led to crashes when specifying --inserts, or underspecified (though usually correct) COPY commands when using COPY to reload the tables' data.", "commit_aliases": ["0bfe356c5", "0c79dcb36", "2ea624b4b", "3eb3d3e78", "616110eac", "710c0a66d", "72857482c", "9e5f1f21a", "d8c2a2199", "f2c6e94f0"], "source_commits": ["3eb3d3e78", "710c0a66d"], "source_entry_id": "9.6.20/changes/030", "db_id": "881989477a3ccb0c1e3be1c41ac86018", "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c", "relations": [{"rule": 2, "type": "equivalent", "target": "492efa905a110daab55e63b023fda63d", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}}, {"rule": 2, "type": "equivalent", "target": "51e97125f2d3faef60a22cf9e030b5e0", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}}, {"rule": 2, "type": "equivalent", "target": "65fb8ca7077f8c4ac19b871ef61dbc21", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}}, {"rule": 2, "type": "equivalent", "target": "85b52706041163f2bfee5e624f8f1742", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}}, {"rule": 2, "type": "equivalent", "target": "e75980d75dea2292bf4b5340ea8c6f24", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "492efa905a110daab55e63b023fda63d", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}, "url": "/docs/compare/?release=13.1#13.1-289eab149154ff12", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "e75980d75dea2292bf4b5340ea8c6f24", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}, "url": "/docs/compare/?release=12.5#12.5-dfe9b23fbfb99337", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "85b52706041163f2bfee5e624f8f1742", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}, "url": "/docs/compare/?release=11.10#11.10-e219d3bedd5c79f3", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "65fb8ca7077f8c4ac19b871ef61dbc21", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}, "url": "/docs/compare/?release=10.15#10.15-e219d3bedd5c79f3", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "51e97125f2d3faef60a22cf9e030b5e0", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}, "url": "/docs/compare/?release=9.5.24#9.5.24-e219d3bedd5c79f3", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-a8ab8dfebde36bbb", "cves": [], "html": "<p>让 <span>pg_upgrade</span> 检查目标集簇中表空间目录的预先存在（Bruce Momjian）</p>", "text": "让 pg_upgrade 检查目标集簇中表空间目录的预先存在（Bruce Momjian）", "title": "让 pg_upgrade 检查目标集簇中表空间目录的预先存在", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "336003d169692029566c5178cd822a0932a24384836bb0284efb2c6666ef6b50", "section_path": ["变更"], "commit_groups": [["0ab7ca98a", "16be4e435", "536de14e2", "6e34cc8ab", "79fe23465", "9dcffe69a", "b05672c72"], ["39c23c199", "3c0471b5f", "59cfff65b", "85fedf39f", "a106236d8", "d9ae2297b", "eb421c83b"]], "identity_text": "Make pg_upgrade check for pre-existence of tablespace directories in the target cluster (Bruce Momjian)", "commit_aliases": ["0ab7ca98a", "16be4e435", "39c23c199", "3c0471b5f", "536de14e2", "59cfff65b", "6e34cc8ab", "79fe23465", "85fedf39f", "9dcffe69a", "a106236d8", "b05672c72", "d9ae2297b", "eb421c83b"], "source_commits": ["39c23c199", "9dcffe69a"], "source_entry_id": "9.6.20/changes/031", "db_id": "d0d308a14a919dcdd011ad9f5ffbb853", "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740", "relations": [{"rule": 2, "type": "equivalent", "target": "487015ba212a94883add480a0161d282", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}}, {"rule": 2, "type": "equivalent", "target": "6359b4855420c50bac500e091bcf21ac", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}}, {"rule": 2, "type": "equivalent", "target": "97763d342fba71c440133e01ec21602b", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}}, {"rule": 2, "type": "equivalent", "target": "98c82203e1de7fa217bd04b22e341a62", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}}, {"rule": 2, "type": "equivalent", "target": "9cabfbf717fd03e9b875f151dac12f27", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "98c82203e1de7fa217bd04b22e341a62", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "使 pg_upgrade 检查目标集群中的表空间目录是否已存在", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}, "url": "/docs/compare/?release=13.1#13.1-75fe4af2348b834a", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "487015ba212a94883add480a0161d282", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "使 pg_upgrade 检查目标集群中的表空间目录是否已存在", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}, "url": "/docs/compare/?release=12.5#12.5-4b61295613a298fd", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "97763d342fba71c440133e01ec21602b", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "使 pg_upgrade 检查目标集群中的表空间目录是否已存在", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}, "url": "/docs/compare/?release=11.10#11.10-afa10de72fe92b10", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "6359b4855420c50bac500e091bcf21ac", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "使 pg_upgrade 检查目标集群中的表空间目录是否已存在", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}, "url": "/docs/compare/?release=10.15#10.15-afa10de72fe92b10", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "9cabfbf717fd03e9b875f151dac12f27", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "让 pg_upgrade 检查目标集簇中表空间目录的预先存在", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}, "url": "/docs/compare/?release=9.5.24#9.5.24-a8ab8dfebde36bbb", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-c708d505f68a3e88", "cves": [], "html": "<p>修复 <code>contrib/pgcrypto</code> 中潜在的内存泄漏（Michael Paquier）</p>", "text": "修复 contrib/pgcrypto 中潜在的内存泄漏（Michael Paquier）", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "f5d26ca4fd4928d25e44b9aa5a0fdf1b7a33637495d3fb03ccc6bd543212aa67", "section_path": ["变更"], "commit_groups": [["099238322", "1bd9b2b23", "57bdf29dd", "914139081", "994a02f7f", "ca2a12c93", "e8d36f9ec"]], "identity_text": "Fix potential memory leak in contrib/pgcrypto (Michael Paquier)", "commit_aliases": ["099238322", "1bd9b2b23", "57bdf29dd", "914139081", "994a02f7f", "ca2a12c93", "e8d36f9ec"], "source_commits": ["994a02f7f"], "source_entry_id": "9.6.20/changes/032", "db_id": "84f48de4e35f0e3df8a91dd97a3c1ace", "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3", "relations": [{"rule": 2, "type": "equivalent", "target": "1cea404266f3f4251614e74fb269c3c6", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}}, {"rule": 2, "type": "equivalent", "target": "45ceced99bffb96ca8569d3037b11626", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}}, {"rule": 2, "type": "equivalent", "target": "98075fcb9c2c925ab7ae15b877964c92", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}}, {"rule": 2, "type": "equivalent", "target": "a090170563e74e2c4325af5b54d15723", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}}, {"rule": 2, "type": "equivalent", "target": "b7f3d4c288208e0731eaebf124833acb", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}}], "version": "9.6.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "45ceced99bffb96ca8569d3037b11626", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}, "url": "/docs/compare/?release=13.1#13.1-a00da32fc1ac8675", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "b7f3d4c288208e0731eaebf124833acb", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}, "url": "/docs/compare/?release=12.5#12.5-d5c4b8e65d7a01af", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "98075fcb9c2c925ab7ae15b877964c92", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}, "url": "/docs/compare/?release=11.10#11.10-c708d505f68a3e88", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "1cea404266f3f4251614e74fb269c3c6", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}, "url": "/docs/compare/?release=10.15#10.15-c708d505f68a3e88", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "a090170563e74e2c4325af5b54d15723", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}, "url": "/docs/compare/?release=9.5.24#9.5.24-c708d505f68a3e88", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-c4df30e1bb4d4367", "cves": [], "html": "<p>在 <code>contrib/pgcrypto</code> 中为一个不太可能发生的失败情况添加检查（Daniel Gustafsson）</p>", "text": "在 contrib/pgcrypto 中为一个不太可能发生的失败情况添加检查（Daniel Gustafsson）", "title": "在 contrib/pgcrypto 中为一个不太可能发生的失败情况添加检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "41bf74c9b53982e68b88b186789f6289fc14029c2b3c76c2dec4f7d2980a073c", "section_path": ["变更"], "commit_groups": [["02a75f836", "1eb2d7e3e", "3d338a46a", "3e1a4c260", "7004ce758", "9c3032881", "e15115b4d"]], "identity_text": "Add check for an unlikely failure case in contrib/pgcrypto (Daniel Gustafsson)", "commit_aliases": ["02a75f836", "1eb2d7e3e", "3d338a46a", "3e1a4c260", "7004ce758", "9c3032881", "e15115b4d"], "source_commits": ["e15115b4d"], "source_entry_id": "9.6.20/changes/033", "db_id": "dbac2d5baf492e2785e215805432046b", "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4", "relations": [{"rule": 2, "type": "equivalent", "target": "0d5d2e9e50fda96c7c7a5634bd6c0240", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}}, {"rule": 2, "type": "equivalent", "target": "3c818cf27839b50c64d7fe4ebfc48a48", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}}, {"rule": 2, "type": "equivalent", "target": "3cb5853a4b4a15ef6c0d06d259305fe2", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}}, {"rule": 2, "type": "equivalent", "target": "693a364e73f018703ffd62b9539df0e4", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}}, {"rule": 2, "type": "equivalent", "target": "ea8273c89c569c3245f6055814b1914d", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "693a364e73f018703ffd62b9539df0e4", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}, "url": "/docs/compare/?release=13.1#13.1-94626e77d35a3bca", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "3c818cf27839b50c64d7fe4ebfc48a48", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}, "url": "/docs/compare/?release=12.5#12.5-c48c2f474d5286b5", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "3cb5853a4b4a15ef6c0d06d259305fe2", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}, "url": "/docs/compare/?release=11.10#11.10-d014e971353ca539", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "ea8273c89c569c3245f6055814b1914d", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}, "url": "/docs/compare/?release=10.15#10.15-d014e971353ca539", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "0d5d2e9e50fda96c7c7a5634bd6c0240", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "在 contrib/pgcrypto 中为一个不太可能发生的失败情况添加检查", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}, "url": "/docs/compare/?release=9.5.24#9.5.24-c4df30e1bb4d4367", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-2d7f63cadd6d8b46", "cves": [], "html": "<p>在 <span>configure</span> 的测试程序中使用 <code>return</code> 而非 <code>exit()</code>（Peter Eisentraut）</p>\n<p>这避免了更挑剔的编译器下的失败。</p>", "text": "在 configure 的测试程序中使用 return 而非 exit()（Peter Eisentraut） 这避免了更挑剔的编译器下的失败。", "title": "在 configure 的测试程序中使用 return 而非 exit()", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "037b57dd07cc4b20aeddf8d5d6a023e94a7d008ac46fb6890c4546637b885faa", "section_path": ["变更"], "commit_groups": [["27acbd51e", "69fdf3d2e"]], "identity_text": "Use return not exit() in configure's test programs (Peter Eisentraut) This avoids failures with pickier compilers.", "commit_aliases": ["27acbd51e", "69fdf3d2e"], "source_commits": ["27acbd51e"], "source_entry_id": "9.6.20/changes/034", "db_id": "9c165c8882f2cb01f7d7939b06df1491", "patch_ids": ["eee64dd7a8f2b3cc4e0fae4d983f8c56"], "statement_hash": "df850f290b353cd403d647ee4e63722cbff3365f8609abacd74a49d906a77151", "relations": [{"rule": 2, "type": "equivalent", "target": "6f8b512ffdd121f50538543a8ce0659a", "evidence": {"same_day": true, "patch_ids": ["eee64dd7a8f2b3cc4e0fae4d983f8c56"], "statement_hash": "df850f290b353cd403d647ee4e63722cbff3365f8609abacd74a49d906a77151"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6f8b512ffdd121f50538543a8ce0659a", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "在 configure 的测试程序中使用 return 而非 exit()", "evidence": {"same_day": true, "patch_ids": ["eee64dd7a8f2b3cc4e0fae4d983f8c56"], "statement_hash": "df850f290b353cd403d647ee4e63722cbff3365f8609abacd74a49d906a77151"}, "url": "/docs/compare/?release=9.5.24#9.5.24-2d7f63cadd6d8b46", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-87c614097f028f7e", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2020d，涉及斐济、摩洛哥、巴勒斯坦、加拿大育空、麦夸里岛和凯西站（南极洲）的夏令时法规变更，以及法国、匈牙利、摩纳哥和巴勒斯坦的历史修正。</p>", "text": "更新时区数据文件到 tzdata 版本 2020d，涉及斐济、摩洛哥、巴勒斯坦、加拿大育空、麦夸里岛和凯西站（南极洲）的夏令时法规变更，以及法国、匈牙利、摩纳哥和巴勒斯坦的历史修正。", "title": "更新时区数据文件到 tzdata 版本 2020d，涉及斐济、摩洛哥、巴勒斯坦、加拿大育空、麦夸里岛和凯西站（南极洲）的夏令时法规变更，以及法国、匈牙利、摩纳哥和巴勒斯坦的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "f6bdff0a8fdb91b0f0e988a3519ba36883dfd2fd351418a57c718a977ac6eba1", "section_path": ["变更"], "commit_groups": [["02f86d523", "05a36321a", "0abebb58f", "78ccf7f42", "7d6d6bce4", "96ed2ae93", "a357cc05d"], ["13dbf4ab8", "2b9166dbc", "3f26dca76", "aae4097b0", "b39c94097", "c4a803ac7", "c8cb243cb"]], "identity_text": "Update time zone data files to tzdata release 2020d for DST law changes in Fiji, Morocco, Palestine, the Canadian Yukon, Macquarie Island, and Casey Station (Antarctica); plus historical corrections for France, Hungary, Monaco, and Palestine.", "commit_aliases": ["02f86d523", "05a36321a", "0abebb58f", "13dbf4ab8", "2b9166dbc", "3f26dca76", "78ccf7f42", "7d6d6bce4", "96ed2ae93", "a357cc05d", "aae4097b0", "b39c94097", "c4a803ac7", "c8cb243cb"], "source_commits": ["05a36321a", "13dbf4ab8"], "source_entry_id": "9.6.20/changes/035", "db_id": "24974773d2daa01debb16ce936e6bdc1", "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"], "statement_hash": "2a075a0e6a5a346da450498bbc5587d29d21cc4b4fbbd59f884adfbea8b7fef8", "relations": [{"rule": 2, "type": "equivalent", "target": "0c059116f712fa34ddefc1f3c11c86f8", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"], "statement_hash": "2a075a0e6a5a346da450498bbc5587d29d21cc4b4fbbd59f884adfbea8b7fef8"}}, {"rule": 2, "type": "equivalent", "target": "17ad90072e2a8914a07d4372466d24e4", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}}, {"rule": 2, "type": "equivalent", "target": "5971ee3b479e16b4b8d6835dad1bb9e3", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"], "statement_hash": "2a075a0e6a5a346da450498bbc5587d29d21cc4b4fbbd59f884adfbea8b7fef8"}}, {"rule": 2, "type": "equivalent", "target": "5feb640716a0600d1dca369557b946b5", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"], "statement_hash": "2a075a0e6a5a346da450498bbc5587d29d21cc4b4fbbd59f884adfbea8b7fef8"}}, {"rule": 2, "type": "equivalent", "target": "c58c928aec65249ba5f1bb5034af5752", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "17ad90072e2a8914a07d4372466d24e4", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}, "url": "/docs/compare/?release=13.1#13.1-69c39fa41c88aa05", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "c58c928aec65249ba5f1bb5034af5752", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}, "url": "/docs/compare/?release=12.5#12.5-a596e773c3224b3e", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "5feb640716a0600d1dca369557b946b5", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"], "statement_hash": "2a075a0e6a5a346da450498bbc5587d29d21cc4b4fbbd59f884adfbea8b7fef8"}, "url": "/docs/compare/?release=11.10#11.10-35674ee16596b2e4", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "0c059116f712fa34ddefc1f3c11c86f8", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"], "statement_hash": "2a075a0e6a5a346da450498bbc5587d29d21cc4b4fbbd59f884adfbea8b7fef8"}, "url": "/docs/compare/?release=10.15#10.15-35674ee16596b2e4", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "5971ee3b479e16b4b8d6835dad1bb9e3", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "更新时区数据文件到 tzdata 版本 2020d，涉及斐济、摩洛哥、巴勒斯坦、加拿大育空、麦夸里岛和凯西站（南极洲）的夏令时法规变更，以及法国、匈牙利、摩纳哥和巴勒斯坦的历史修正。", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"], "statement_hash": "2a075a0e6a5a346da450498bbc5587d29d21cc4b4fbbd59f884adfbea8b7fef8"}, "url": "/docs/compare/?release=9.5.24#9.5.24-87c614097f028f7e", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "9.6.20-158d67700c1237ce", "cves": [], "html": "<p>把我们的时区库副本与 IANA tzcode 版本 2020d 同步（Tom Lane）</p>\n<p>这吸收了上游把 <span>zic</span> 默认输出选项从 <span>“<span>fat</span>”</span> 改为 <span>“<span>slim</span>”</span> 的变更。对我们的用途而言这只是表面变化，因为我们在 v13 之前的分支中继续选择 <span>“<span>fat</span>”</span> 模式。这一更改还确保 <code>strftime()</code> 不会在未失败时更改 <code>errno</code>。</p>", "text": "把我们的时区库副本与 IANA tzcode 版本 2020d 同步（Tom Lane） 这吸收了上游把 zic 默认输出选项从 “fat” 改为 “slim” 的变更。对我们的用途而言这只是表面变化，因为我们在 v13 之前的分支中继续选择 “fat” 模式。这一更改还确保 strftime() 不会在未失败时更改 errno。", "title": "把我们的时区库副本与 IANA tzcode 版本 2020d 同步", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5", "source_hash": "d742fe68dce82313447d35442c904c4db87076c073428a009d7821ad69a18725", "section_path": ["变更"], "commit_groups": [["0e551533b", "34285083b", "58f9f52a3", "c5054da0d", "d2ffe0a00", "f56c42e50", "ff26f804a"], ["38fac9c1f", "3d13a8307", "41eeeb348", "4a2528bfa", "5515c73a6", "ce0e97f80", "e0cf5e9b2"]], "identity_text": "Sync our copy of the timezone library with IANA tzcode release 2020d (Tom Lane) This absorbs upstream's change of zic's default output option from fat to slim. That's just cosmetic for our purposes, as we continue to select the fat mode in pre-v13 branches. This change also ensures that strftime() does not change errno unless it fails.", "commit_aliases": ["0e551533b", "34285083b", "38fac9c1f", "3d13a8307", "41eeeb348", "4a2528bfa", "5515c73a6", "58f9f52a3", "c5054da0d", "ce0e97f80", "d2ffe0a00", "e0cf5e9b2", "f56c42e50", "ff26f804a"], "source_commits": ["5515c73a6", "58f9f52a3"], "source_entry_id": "9.6.20/changes/036", "db_id": "6336dce9078f25448e30e2435b0ec30b", "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd", "relations": [{"rule": 2, "type": "equivalent", "target": "156883958c90dfb68c440d6f4e13dd68", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}}, {"rule": 2, "type": "equivalent", "target": "409e74a5e9afc7b68a41d7cbf221d59a", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}}, {"rule": 2, "type": "equivalent", "target": "52d347da31273abef1af14ed10ad0fb1", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}}, {"rule": 2, "type": "equivalent", "target": "9c701cb8701480bb7bf7c82ff3b881ed", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}}, {"rule": 2, "type": "equivalent", "target": "ec084e870ae41f74062a40300d06758a", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}}], "version": "9.6.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec084e870ae41f74062a40300d06758a", "kind": "equivalent", "version": "13.1", "label": "13.1", "title": "将我们使用的时区库副本同步到 IANA tzcode 2020d 版", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}, "url": "/docs/compare/?release=13.1#13.1-a63484f22ea7c05b", "source_url": "/docs/release/13.1/#id-1.11.6.28.5"}, {"db_id": "9c701cb8701480bb7bf7c82ff3b881ed", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "将我们使用的时区库副本同步到 IANA tzcode 2020d 版", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}, "url": "/docs/compare/?release=12.5#12.5-e5bcd809852f6361", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "409e74a5e9afc7b68a41d7cbf221d59a", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "将我们使用的时区库副本同步到 IANA tzcode 2020d 版", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}, "url": "/docs/compare/?release=11.10#11.10-7078d7176841368b", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "156883958c90dfb68c440d6f4e13dd68", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "将我们使用的时区库副本同步到 IANA tzcode 2020d 版", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}, "url": "/docs/compare/?release=10.15#10.15-7078d7176841368b", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "52d347da31273abef1af14ed10ad0fb1", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "把我们的时区库副本与 IANA tzcode 版本 2020d 同步", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}, "url": "/docs/compare/?release=9.5.24#9.5.24-158d67700c1237ce", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}]}, {"date": "2020-08-13", "build": "9.6.19", "major": "9.6", "minor": 19, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.19", "eol_date": "2021-11-11", "date_text": "2020-08-13", "supported": false, "manual_url": "/docs/9.6/release-9-6-19.html", "source_url": "/docs/release/9.6.19/", "entry_count": 27, "placeholder": false, "content_hash": "b945aad531f3d3e0c77e1eeddb891028abbdda3992c5e8d27474d92b881677cc", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 27, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.16 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-16.html\" title=\"E.9. 版本 9.6.16\">第 E.9 节</a>。</p>", "compatibility_count": 0, "label": "9.6.19", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2239, "support_days": -1784, "entries": [{"id": "9.6.19-781ce435b7e40fa2", "cves": ["CVE-2018-1058", "CVE-2020-14350"], "html": "<p>使 contrib 模块的安装脚本更安全（Tom Lane）</p>\n<p>如果攻击者能在扩展的目标模式或某个前置扩展的模式中创建对象，就可以对扩展安装脚本发动类似 CVE-2018-1058 所述的攻击。由于扩展的安装通常需要超级用户权限，这就开辟了一条获得超级用户权限的路径。为降低此风险，我们更加谨慎地处理运行安装脚本所用的 <code>search_path</code>；在脚本内禁用 <code>check_function_bodies</code>；并修复部分 contrib 模块中使用的目录调整查询以确保其安全。同时提供文档帮助第三方扩展作者使其安装脚本安全。这不是完整的解决方案；依赖其他扩展的扩展如果安装时不小心，仍然可能有风险。（CVE-2020-14350）</p>", "text": "使 contrib 模块的安装脚本更安全（Tom Lane） 如果攻击者能在扩展的目标模式或某个前置扩展的模式中创建对象，就可以对扩展安装脚本发动类似 CVE-2018-1058 所述的攻击。由于扩展的安装通常需要超级用户权限，这就开辟了一条获得超级用户权限的路径。为降低此风险，我们更加谨慎地处理运行安装脚本所用的 search_path；在脚本内禁用 check_function_bodies；并修复部分 contrib 模块中使用的目录调整查询以确保其安全。同时提供文档帮助第三方扩展作者使其安装脚本安全。这不是完整的解决方案；依赖其他扩展的扩展如果安装时不小心，仍然可能有风险。（CVE-2020-14350）", "title": "使 contrib 模块的安装脚本更安全", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "641f118ab88a1eae885f23e308fa24073b7b643ec64a145a8a06c5e41680e1d5", "section_path": ["变更"], "commit_groups": [["2ea8a60fc", "3ba967084", "6b11a4687", "7eeb1d986", "96cbfe92d", "98ca64899", "afa358786"]], "identity_text": "Make contrib modules' installation scripts more secure (Tom Lane) Attacks similar to those described in CVE-2018-1058 could be carried out against an extension installation script, if the attacker can create objects in either the extension's target schema or the schema of some prerequisite extension. Since extensions often require superuser privilege to install, this can open a path to obtaining superuser privilege. To mitigate this risk, be more careful about the search_path used to run an installation script; disable check_function_bodies within the script; and fix catalog-adjustment queries used in some contrib modules to ensure they are secure. Also provide documentation to help third-party extension authors make their installation scripts secure. This is not a complete solution; extensions that depend on other extensions can still be at risk if installed carelessly. (CVE-2020-14350)", "commit_aliases": ["2ea8a60fc", "3ba967084", "6b11a4687", "7eeb1d986", "96cbfe92d", "98ca64899", "afa358786"], "source_commits": ["2ea8a60fc"], "source_entry_id": "9.6.19/changes/001", "db_id": "719efe348b34d6b22cc8b21765cddeb0", "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf", "relations": [{"rule": 2, "type": "equivalent", "target": "18cf5409de16d861fde3ac6d27bd135e", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}}, {"rule": 2, "type": "equivalent", "target": "6f776698fb9e7668f490543cb90859bb", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}}, {"rule": 2, "type": "equivalent", "target": "8377f2e90aa926ed72be984f89dc8aa4", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}}, {"rule": 2, "type": "equivalent", "target": "b3ef8ce8154cffacc73ec6326dbc1607", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}}], "version": "9.6.19", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "8377f2e90aa926ed72be984f89dc8aa4", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "提高 contrib 模块安装脚本的安全性", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}, "url": "/docs/compare/?release=12.4#12.4-5dfe16e1743c0c3d", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "6f776698fb9e7668f490543cb90859bb", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "提高 contrib 模块安装脚本的安全性", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}, "url": "/docs/compare/?release=11.9#11.9-3ae0ed313be57173", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "b3ef8ce8154cffacc73ec6326dbc1607", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "提高 contrib 模块安装脚本的安全性", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}, "url": "/docs/compare/?release=10.14#10.14-3ae0ed313be57173", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "18cf5409de16d861fde3ac6d27bd135e", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "使 contrib 模块的安装脚本更安全", "evidence": {"same_day": true, "patch_ids": ["ee963513d01d5da2f56347e9a5e977d1"], "statement_hash": "72bc96feb7b321b3936e8e59c3c9140d5205fa59dcccfd38f357e6419436a7cf"}, "url": "/docs/compare/?release=9.5.23#9.5.23-781ce435b7e40fa2", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-37a06f1dc47f50aa", "cves": [], "html": "<p>修复逻辑复制 walsender 在发送 keepalive 消息之后未能发送反馈消息的问题（Álvaro Herrera）</p>\n<p>在使用内置逻辑复制时这是个相对次要的问题，因为内置 walreceiver 本来就会相当频繁地发送反馈应答（从而清除错误状态）。但在使用 <span>pglogical</span> 等其他复制系统时，它会导致显著的性能问题。</p>", "text": "修复逻辑复制 walsender 在发送 keepalive 消息之后未能发送反馈消息的问题（Álvaro Herrera） 在使用内置逻辑复制时这是个相对次要的问题，因为内置 walreceiver 本来就会相当频繁地发送反馈应答（从而清除错误状态）。但在使用 pglogical 等其他复制系统时，它会导致显著的性能问题。", "title": "修复逻辑复制 walsender 在发送 keepalive 消息之后未能发送反馈消息的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "63a075b4a274ce32cf770e7b98ea05afd71e3e822d104be87e754b4ecbcf1c7a", "section_path": ["变更"], "commit_groups": [["1fa6eec97", "470687b4a", "55d42c917", "85cb4ec50", "900429d0c", "ca8e87ea0", "d81387da9"]], "identity_text": "In logical replication walsender, fix failure to send feedback messages after sending a keepalive message (Álvaro Herrera) This is a relatively minor problem when using built-in logical replication, because the built-in walreceiver will send a feedback reply (which clears the incorrect state) fairly frequently anyway. But with some other replication systems, such as pglogical, it causes significant performance issues.", "commit_aliases": ["1fa6eec97", "470687b4a", "55d42c917", "85cb4ec50", "900429d0c", "ca8e87ea0", "d81387da9"], "source_commits": ["55d42c917"], "source_entry_id": "9.6.19/changes/002", "db_id": "26d0301c25e8ff9458d315d4fd36dc12", "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305", "relations": [{"rule": 2, "type": "equivalent", "target": "0f8294d4511e6191c83434f1d7d3f675", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}}, {"rule": 2, "type": "equivalent", "target": "bf7ce45c7e479e2754cb90d6dc92e697", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}}, {"rule": 2, "type": "equivalent", "target": "cabe354a4208fbcbb835fca837dc4c3f", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}}, {"rule": 2, "type": "equivalent", "target": "e90504cd0a2ff10b93ddac26b1dfa3dc", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0f8294d4511e6191c83434f1d7d3f675", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "在逻辑复制 WAL 发送进程中，修复发送保活消息后未能发送反馈消息的问题", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}, "url": "/docs/compare/?release=12.4#12.4-87adc0f482e81c62", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "e90504cd0a2ff10b93ddac26b1dfa3dc", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "在逻辑复制 WAL 发送进程中，修复发送保活消息后未能发送反馈消息的问题", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}, "url": "/docs/compare/?release=11.9#11.9-e4ea67f7f949aa8d", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "cabe354a4208fbcbb835fca837dc4c3f", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "在逻辑复制 WAL 发送进程中，修复发送保活消息后未能发送反馈消息的问题", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}, "url": "/docs/compare/?release=10.14#10.14-e4ea67f7f949aa8d", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "bf7ce45c7e479e2754cb90d6dc92e697", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复逻辑复制 walsender 在发送 keepalive 消息之后未能发送反馈消息的问题", "evidence": {"same_day": true, "patch_ids": ["838ee285907cf70653d5136c563a4a64"], "statement_hash": "78da1dce2a46c2301983dd99575b9c7d468b780be37c0d23a591172aa024a305"}, "url": "/docs/compare/?release=9.5.23#9.5.23-37a06f1dc47f50aa", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-fba032e16a76b93b", "cves": [], "html": "<p>修复 <code>ts_headline()</code> 执行缓慢的问题（Tom Lane）</p>\n<p>上一批小版本中加入的短语搜索修复可能导致 <code>ts_headline()</code> 对长文档花费不合理的时间；更糟的是，该查询在有问题的循环内不可取消。</p>", "text": "修复 ts_headline() 执行缓慢的问题（Tom Lane） 上一批小版本中加入的短语搜索修复可能导致 ts_headline() 对长文档花费不合理的时间；更糟的是，该查询在有问题的循环内不可取消。", "title": "修复 ts_headline() 执行缓慢的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "ddb905b3de74b4d997efb740a98982f7f0c61037f6ac1c592f6d9c6415619c80", "section_path": ["变更"], "commit_groups": [["11dce63d6", "5e724125a", "70248d8f5", "78e73e875", "8ab00b9fe", "da596fb4b"]], "identity_text": "Fix slow execution of ts_headline() (Tom Lane) The phrase-search fix added in our previous set of minor releases could cause ts_headline() to take unreasonable amounts of time for long documents; to make matters worse, the query was not cancellable within the troublesome loop.", "commit_aliases": ["11dce63d6", "5e724125a", "70248d8f5", "78e73e875", "8ab00b9fe", "da596fb4b"], "source_commits": ["8ab00b9fe"], "source_entry_id": "9.6.19/changes/003", "db_id": "2903b0e2b8b517aa2358e9c39bd0edef", "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd", "relations": [{"rule": 2, "type": "equivalent", "target": "3a6bd7f257642f29dfd5b17705d8273e", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}}, {"rule": 2, "type": "equivalent", "target": "af3cb895615673e2019ab1a456e05cbc", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}}, {"rule": 2, "type": "equivalent", "target": "c01eed12150b02f68a4db66c612558b1", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3a6bd7f257642f29dfd5b17705d8273e", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 ts_headline() 执行缓慢的问题", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}, "url": "/docs/compare/?release=12.4#12.4-0483a3a3f7fc0ce4", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "af3cb895615673e2019ab1a456e05cbc", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 ts_headline() 执行缓慢的问题", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}, "url": "/docs/compare/?release=11.9#11.9-fba032e16a76b93b", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "c01eed12150b02f68a4db66c612558b1", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复 ts_headline() 执行缓慢的问题", "evidence": {"same_day": true, "patch_ids": ["8322acde7b8b6b69b09ff453a5c47bad"], "statement_hash": "0f7876de56ba91c7213ee4d7ef5c736c75448ebe1c88943bd7af2114630f61bd"}, "url": "/docs/compare/?release=10.14#10.14-fba032e16a76b93b", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}]}, {"id": "9.6.19-3dea74ebc61ab921", "cves": [], "html": "<p>确保 <code>repeat()</code> 函数可以被查询取消中断（Joe Conway）</p>", "text": "确保 repeat() 函数可以被查询取消中断（Joe Conway）", "title": "确保 repeat() 函数可以被查询取消中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "c4c870bb6c01fbafbd3d5ad5e7c7d102aa67305159bc6116fc59c6130cef41e6", "section_path": ["变更"], "commit_groups": [["28e2c6eac", "2cbe3a954", "36758c472", "3ccae5445", "887cdff4d", "bfb9595a7"]], "identity_text": "Ensure the repeat() function can be interrupted by query cancel (Joe Conway)", "commit_aliases": ["28e2c6eac", "2cbe3a954", "36758c472", "3ccae5445", "887cdff4d", "bfb9595a7"], "source_commits": ["28e2c6eac"], "source_entry_id": "9.6.19/changes/004", "db_id": "2894d36583a162925688dafe9493c932", "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558", "relations": [{"rule": 2, "type": "equivalent", "target": "15590131856ea79ace85971af4f361ce", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}}, {"rule": 2, "type": "equivalent", "target": "4d5a1085e5fe26c29b807e655f12e460", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}}, {"rule": 2, "type": "equivalent", "target": "d9948925bfe5a457879a410568ae0724", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}}, {"rule": 2, "type": "equivalent", "target": "d9d7373454e44d4651cf6d3584ec5cd2", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d9948925bfe5a457879a410568ae0724", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "确保 repeat() 函数可以被查询取消中断", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}, "url": "/docs/compare/?release=12.4#12.4-1696fc1f133a0290", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "d9d7373454e44d4651cf6d3584ec5cd2", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "确保 repeat() 函数可以被查询取消中断", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}, "url": "/docs/compare/?release=11.9#11.9-3dea74ebc61ab921", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "15590131856ea79ace85971af4f361ce", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "确保 repeat() 函数可以被查询取消中断", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}, "url": "/docs/compare/?release=10.14#10.14-3dea74ebc61ab921", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "4d5a1085e5fe26c29b807e655f12e460", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "确保 repeat() 函数可以被查询取消中断", "evidence": {"same_day": true, "patch_ids": ["dbe397e5b04b09dc9905e418f5e5447b"], "statement_hash": "80f387e3113963f9e5f61df238bc01044b908d1c7118370baa5fd727e5e76558"}, "url": "/docs/compare/?release=9.5.23#9.5.23-3dea74ebc61ab921", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-7cf193c4e5adfe9e", "cves": [], "html": "<p>修复 <code>numeric</code> 类型列并行聚合时对 <code>NaN</code> 输入的错误处理（Tom Lane）</p>\n<p>如果某些部分聚合工作者只遇到 <code>NaN</code> 而另一些只遇到非 <code>NaN</code>，结果的合并是错误的，可能导致错误的总体结果（即本应为 <code>NaN</code> 时不是）。</p>", "text": "修复 numeric 类型列并行聚合时对 NaN 输入的错误处理（Tom Lane） 如果某些部分聚合工作者只遇到 NaN 而另一些只遇到非 NaN，结果的合并是错误的，可能导致错误的总体结果（即本应为 NaN 时不是）。", "title": "修复 numeric 类型列并行聚合时对 NaN 输入的错误处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "7c806206db96dcf2d04ca90d1674abdb1e2b77eb41686b43d1a9bfc2addff2c0", "section_path": ["变更"], "commit_groups": [["36df06e25", "411a4626e", "4284e1184", "49e0a42dd", "77a3be32f", "ee788ba99"]], "identity_text": "Fix mis-handling of NaN inputs during parallel aggregation on numeric-type columns (Tom Lane) If some partial aggregation workers found only NaNs while others found only non-NaNs, the results were combined incorrectly, possibly leading to the wrong overall result (i.e., not NaN when it should be).", "commit_aliases": ["36df06e25", "411a4626e", "4284e1184", "49e0a42dd", "77a3be32f", "ee788ba99"], "source_commits": ["36df06e25"], "source_entry_id": "9.6.19/changes/005", "db_id": "54421606eedc972d78b8211ccef16057", "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5", "relations": [{"rule": 2, "type": "equivalent", "target": "115465b505e68c4f7ee5a54b04440a2f", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}}, {"rule": 2, "type": "equivalent", "target": "8816f5a56079fd900dbc62d961f15191", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}}, {"rule": 2, "type": "equivalent", "target": "d86e84f2c21284e9036e37da06e39c2f", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d86e84f2c21284e9036e37da06e39c2f", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复对 numeric 类型列进行并行聚合时对 NaN 输入的错误处理", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}, "url": "/docs/compare/?release=12.4#12.4-61e54fcb719bd8df", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "8816f5a56079fd900dbc62d961f15191", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复对 numeric 类型列进行并行聚合时对 NaN 输入的错误处理", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}, "url": "/docs/compare/?release=11.9#11.9-538b1f2a7b50c47f", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "115465b505e68c4f7ee5a54b04440a2f", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复对 numeric 类型列进行并行聚合时对 NaN 输入的错误处理", "evidence": {"same_day": true, "patch_ids": ["6b493e5a0009b33497690821d4cd18a3"], "statement_hash": "276c0fb2fb3bf4049e914f7a786c802044a803f579e8a686a079d33226ae9dd5"}, "url": "/docs/compare/?release=10.14#10.14-538b1f2a7b50c47f", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}]}, {"id": "9.6.19-a6a7ef93c2c1dc36", "cves": [], "html": "<p>撤销 <code>EXPLAIN</code> 非文本输出格式中对索引名的双重引号（Tom Lane、Euler Taveira）</p>", "text": "撤销 EXPLAIN 非文本输出格式中对索引名的双重引号（Tom Lane、Euler Taveira）", "title": "撤销 EXPLAIN 非文本输出格式中对索引名的双重引号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "9789ce8ceb15ed285c8bccd1e8b6b3e840380254c5f3e5835d07296e0069536f", "section_path": ["变更"], "commit_groups": [["35a8e227e", "57f8b9913", "63d2ac23b", "6d9f7a094", "bd53ea2b2", "d3d875518", "dda25c599"]], "identity_text": "Undo double-quoting of index names in EXPLAIN's non-text output formats (Tom Lane, Euler Taveira)", "commit_aliases": ["35a8e227e", "57f8b9913", "63d2ac23b", "6d9f7a094", "bd53ea2b2", "d3d875518", "dda25c599"], "source_commits": ["bd53ea2b2"], "source_entry_id": "9.6.19/changes/006", "db_id": "59ad7e26b0dbce1e812dfd5c4323c057", "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c", "relations": [{"rule": 2, "type": "equivalent", "target": "011162654ab589bcdcdc140fdaf08bac", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}}, {"rule": 2, "type": "equivalent", "target": "22d4b5a3aaf064d42438c0ab2b0aa8bc", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}}, {"rule": 2, "type": "equivalent", "target": "83aea5e38bc3569d62122d9c586ba273", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}}, {"rule": 2, "type": "equivalent", "target": "ddb6a1a686d5e87d667272bf9f2be994", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ddb6a1a686d5e87d667272bf9f2be994", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "撤销 EXPLAIN 非文本输出格式中为索引名称添加双引号的行为", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}, "url": "/docs/compare/?release=12.4#12.4-5b4591cebb679f3a", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "83aea5e38bc3569d62122d9c586ba273", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "撤销 EXPLAIN 非文本输出格式中为索引名称添加双引号的行为", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}, "url": "/docs/compare/?release=11.9#11.9-3d9a2136bc15fdbb", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "011162654ab589bcdcdc140fdaf08bac", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "撤销 EXPLAIN 非文本输出格式中为索引名称添加双引号的行为", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}, "url": "/docs/compare/?release=10.14#10.14-3d9a2136bc15fdbb", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "22d4b5a3aaf064d42438c0ab2b0aa8bc", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "撤销 EXPLAIN 非文本输出格式中对索引名的双重引号", "evidence": {"same_day": true, "patch_ids": ["3dcb6f38666b8f8fc786881aae1a8f73"], "statement_hash": "156c0c86e9280a437e95682cbe16ec3a72beb945ead97808f01aeb4df6dca95c"}, "url": "/docs/compare/?release=9.5.23#9.5.23-a6a7ef93c2c1dc36", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-85e01238f9ff3c85", "cves": [], "html": "<p>修复 <code>ALTER TABLE</code> 中约束重新验证的时机（David Rowley）</p>\n<p>如果 <code>ALTER TABLE</code> 既需要完全重写表内容（例如因为更改列的数据类型），又需要扫描表以重新验证外键或 <code>CHECK</code> 约束，它有时会以错误的顺序行事，导致诸如 <span>“<span>could not read block 0 in file \"base/nnnnn/nnnnn\": read only 0 of 8192 bytes</span>”</span> 之类的奇怪错误。</p>", "text": "修复 ALTER TABLE 中约束重新验证的时机（David Rowley） 如果 ALTER TABLE 既需要完全重写表内容（例如因为更改列的数据类型），又需要扫描表以重新验证外键或 CHECK 约束，它有时会以错误的顺序行事，导致诸如 “could not read block 0 in file \"base/nnnnn/nnnnn\": read only 0 of 8192 bytes” 之类的奇怪错误。", "title": "修复 ALTER TABLE 中约束重新验证的时机", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "f909317eb0e1e8c5fc231fef9f0ed301433c1e5e7dc2d4e08450b4f5e9da883a", "section_path": ["变更"], "commit_groups": [["1231a0b0e", "4e02f88a4", "b82730429", "c732df133", "d2761b680", "e20003fa0", "f1fcf2d3b"]], "identity_text": "Fix timing of constraint revalidation in ALTER TABLE (David Rowley) If ALTER TABLE needs to fully rewrite the table's contents (for example, due to change of a column's data type) and also needs to scan the table to re-validate foreign keys or CHECK constraints, it sometimes did things in the wrong order, leading to odd errors such as could not read block 0 in file \"base/nnnnn/nnnnn\": read only 0 of 8192 bytes.", "commit_aliases": ["1231a0b0e", "4e02f88a4", "b82730429", "c732df133", "d2761b680", "e20003fa0", "f1fcf2d3b"], "source_commits": ["c732df133"], "source_entry_id": "9.6.19/changes/007", "db_id": "7ed9ce2430e727ad9838dcfd2cfb5bdb", "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c", "relations": [{"rule": 2, "type": "equivalent", "target": "0274fabb0bf25d05d42e8ffe40c0f534", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}}, {"rule": 2, "type": "equivalent", "target": "18f5d381707525c995a95b216fb986ab", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}}, {"rule": 2, "type": "equivalent", "target": "650585e53a9a45b27f8e5169b83839a8", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}}, {"rule": 2, "type": "equivalent", "target": "d9ed901b6505a3d692a1664fb900b5d2", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "18f5d381707525c995a95b216fb986ab", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 ALTER TABLE 中重新验证约束的时机", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}, "url": "/docs/compare/?release=12.4#12.4-d59e20076dcde465", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "d9ed901b6505a3d692a1664fb900b5d2", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 ALTER TABLE 中重新验证约束的时机", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}, "url": "/docs/compare/?release=11.9#11.9-82fef7cf6beac3ff", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "650585e53a9a45b27f8e5169b83839a8", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复 ALTER TABLE 中重新验证约束的时机", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}, "url": "/docs/compare/?release=10.14#10.14-82fef7cf6beac3ff", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "0274fabb0bf25d05d42e8ffe40c0f534", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 ALTER TABLE 中约束重新验证的时机", "evidence": {"same_day": true, "patch_ids": ["be0b530bb3bbcfe75ad800c4de8c01cc"], "statement_hash": "14e4c4d9c85acc0b496a4b265809a1fcb471b1e6b160dd5e4d3b39009cabe84c"}, "url": "/docs/compare/?release=9.5.23#9.5.23-85e01238f9ff3c85", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-f1fe92045666a9c2", "cves": [], "html": "<p>正确处理 <code>FROM</code> 子句中未展平子 <code>SELECT</code> 上附加的限定子句中的 <code>LATERAL</code> 引用（Tom Lane）</p>\n<p>这一疏漏可能导致查询执行时的断言失败或崩溃。</p>", "text": "正确处理 FROM 子句中未展平子 SELECT 上附加的限定子句中的 LATERAL 引用（Tom Lane） 这一疏漏可能导致查询执行时的断言失败或崩溃。", "title": "正确处理 FROM 子句中未展平子 SELECT 上附加的限定子句中的 LATERAL 引用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "1dc1103f67c34fa219ed45884f54556815bb4d9395425fdab5526bd36ae37d94", "section_path": ["变更"], "commit_groups": [["0734dbc45", "3753df8f8", "6443cd2e2", "80d8f6d1d", "a742ecf9c", "d3b642ad9", "dc6bb0994"]], "identity_text": "Cope with LATERAL references in restriction clauses attached to an un-flattened sub-SELECT in the FROM clause (Tom Lane) This oversight could result in assertion failures or crashes at query execution.", "commit_aliases": ["0734dbc45", "3753df8f8", "6443cd2e2", "80d8f6d1d", "a742ecf9c", "d3b642ad9", "dc6bb0994"], "source_commits": ["dc6bb0994"], "source_entry_id": "9.6.19/changes/008", "db_id": "91d8f4ed8ce0a5718851159438cb8a31", "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe", "relations": [{"rule": 2, "type": "equivalent", "target": "d8c7357f304b21f9fc1ebf108bbf6a5a", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}}, {"rule": 2, "type": "equivalent", "target": "e606d5a48ac34be50b0f673b8d4782f3", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}}, {"rule": 2, "type": "equivalent", "target": "fded70ef2a9174c6d7c72c000533182c", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}}, {"rule": 2, "type": "equivalent", "target": "ff4bab21f50db780d6cd4d93f8659b2c", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d8c7357f304b21f9fc1ebf108bbf6a5a", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "处理附加到 FROM 子句中未扁平化的子 SELECT 上的限制子句里的 LATERAL 引用", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}, "url": "/docs/compare/?release=12.4#12.4-1f16cdd10f8a5230", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "ff4bab21f50db780d6cd4d93f8659b2c", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "处理附加到 FROM 子句中未扁平化的子 SELECT 上的限制子句里的 LATERAL 引用", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}, "url": "/docs/compare/?release=11.9#11.9-d6df8bcf969a57d0", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "e606d5a48ac34be50b0f673b8d4782f3", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "处理附加到 FROM 子句中未扁平化的子 SELECT 上的限制子句里的 LATERAL 引用", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}, "url": "/docs/compare/?release=10.14#10.14-d6df8bcf969a57d0", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "fded70ef2a9174c6d7c72c000533182c", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "正确处理 FROM 子句中未展平子 SELECT 上附加的限定子句中的 LATERAL 引用", "evidence": {"same_day": true, "patch_ids": ["76aa4cd9f96f3951664a29a6e03efa0a"], "statement_hash": "6aaf7fb09bf7d0ed8f0129c28a10df00d91d1e13a018ac16e5d8f79dbe278abe"}, "url": "/docs/compare/?release=9.5.23#9.5.23-f1fe92045666a9c2", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-ae76464e5d135a1e", "cves": [], "html": "<p>避免认为从未分析过的外部表有零个元组（Tom Lane）</p>\n<p>这主要影响规划器对 <code>GROUP BY</code> 将得到的分组数的估计。</p>", "text": "避免认为从未分析过的外部表有零个元组（Tom Lane） 这主要影响规划器对 GROUP BY 将得到的分组数的估计。", "title": "避免认为从未分析过的外部表有零个元组", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "00a24459b51d2f60394ca719703fe441c7f2bf3de00ebf37648c744169a82252", "section_path": ["变更"], "commit_groups": [["153c14cdd", "5144a40f3", "69a3fe6e6", "9233624b1", "ca5e93f76", "d83d59e42", "ef799bdd0"]], "identity_text": "Avoid believing that a never-analyzed foreign table has zero tuples (Tom Lane) This primarily affected the planner's estimate of the number of groups that would be obtained by GROUP BY.", "commit_aliases": ["153c14cdd", "5144a40f3", "69a3fe6e6", "9233624b1", "ca5e93f76", "d83d59e42", "ef799bdd0"], "source_commits": ["69a3fe6e6"], "source_entry_id": "9.6.19/changes/009", "db_id": "509f6265362c993246154f7e6d416f7b", "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc", "relations": [{"rule": 2, "type": "equivalent", "target": "025fc1c7ae7c871b4afc7e1f16e37657", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}}, {"rule": 2, "type": "equivalent", "target": "132ce6a798fd1a76c44f79f80e7cc51f", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}}, {"rule": 2, "type": "equivalent", "target": "5629ff9fbbbff59243125adbc75788a8", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}}, {"rule": 2, "type": "equivalent", "target": "7fc348056e7166c8dd44664a79827fbe", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fc348056e7166c8dd44664a79827fbe", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "避免认为从未分析过的外部表具有零个元组", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}, "url": "/docs/compare/?release=12.4#12.4-e1a1948006c90799", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "5629ff9fbbbff59243125adbc75788a8", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "避免认为从未分析过的外部表具有零个元组", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}, "url": "/docs/compare/?release=11.9#11.9-c7ffcf70bb332364", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "132ce6a798fd1a76c44f79f80e7cc51f", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "避免认为从未分析过的外部表具有零个元组", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}, "url": "/docs/compare/?release=10.14#10.14-c7ffcf70bb332364", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "025fc1c7ae7c871b4afc7e1f16e37657", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "避免认为从未分析过的外部表有零个元组", "evidence": {"same_day": true, "patch_ids": ["fd340f8bf089002ade33d19a7c76826e"], "statement_hash": "a56d32ce8f1efc3401e21bbba4ad88925758252d0b4fe2dbcde6ceaa0b1c31fc"}, "url": "/docs/compare/?release=9.5.23#9.5.23-ae76464e5d135a1e", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-44ca8519b07ffb6e", "cves": [], "html": "<p>改进服务器 <code>buffile</code> 模块中的错误处理（Thomas Munro）</p>\n<p>修复了一些 I/O 错误与到达 EOF 无法区分、或者根本不被报告的情况。还在适当之处添加了块号和字节数等细节。</p>", "text": "改进服务器 buffile 模块中的错误处理（Thomas Munro） 修复了一些 I/O 错误与到达 EOF 无法区分、或者根本不被报告的情况。还在适当之处添加了块号和字节数等细节。", "title": "改进服务器 buffile 模块中的错误处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "88a943dbae0b9006fcaf90297bcf7d6c640adad9dbd4bf16985955fe3d91225b", "section_path": ["变更"], "commit_groups": [["028f0c3a8", "3725c8ce4", "42dee8b8e", "47adb2488", "6b366190d", "8bf4e69a7", "fac4145bf"], ["02b71f06b", "28ee12669", "3e0b08c40", "7897e3bb9", "89020a92f", "95647a1c7", "9c14d6024"]], "identity_text": "Improve error handling in the server's buffile module (Thomas Munro) Fix some cases where I/O errors were indistinguishable from reaching EOF, or were not reported at all. Also add details such as block numbers and byte counts where appropriate.", "commit_aliases": ["028f0c3a8", "02b71f06b", "28ee12669", "3725c8ce4", "3e0b08c40", "42dee8b8e", "47adb2488", "6b366190d", "7897e3bb9", "89020a92f", "8bf4e69a7", "95647a1c7", "9c14d6024", "fac4145bf"], "source_commits": ["02b71f06b", "47adb2488"], "source_entry_id": "9.6.19/changes/010", "db_id": "14be8fb2c3f982fe6b1b6dbcbb0ff804", "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa", "relations": [{"rule": 2, "type": "equivalent", "target": "3c69e549c4dfbe5e9ac8979f5d13b214", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}}, {"rule": 2, "type": "equivalent", "target": "42f60f7617299a4bf6748fafe11efad2", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}}, {"rule": 2, "type": "equivalent", "target": "cfae48ffbb34b721ed501b88a22ec505", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}}, {"rule": 2, "type": "equivalent", "target": "dba1ef7cc327183b7c89863c61a64da1", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dba1ef7cc327183b7c89863c61a64da1", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "改进服务器 buffile 模块中的错误处理", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}, "url": "/docs/compare/?release=12.4#12.4-b29baed8c244c3d3", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "3c69e549c4dfbe5e9ac8979f5d13b214", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "改进服务器 buffile 模块中的错误处理", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}, "url": "/docs/compare/?release=11.9#11.9-44ca8519b07ffb6e", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "cfae48ffbb34b721ed501b88a22ec505", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "改进服务器 buffile 模块中的错误处理", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}, "url": "/docs/compare/?release=10.14#10.14-44ca8519b07ffb6e", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "42f60f7617299a4bf6748fafe11efad2", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "改进服务器 buffile 模块中的错误处理", "evidence": {"same_day": true, "patch_ids": ["3cfa5dd68e4213eeb0063dccd0f61037", "3efe2002531599381d76d0da2ce97ce7"], "statement_hash": "9b959c59b636685cb7c0d1617182325c48d28e9c774d749107837a830c2a6faa"}, "url": "/docs/compare/?release=9.5.23#9.5.23-44ca8519b07ffb6e", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-2815ad76a363781c", "cves": [], "html": "<p>修复 <code>SERIALIZABLE</code> 隔离模式下的冲突检查异常（Peter Geoghegan）</p>\n<p>如果一个并发插入的元组被另一个并发事务更新，而这两个元组版本对当前事务的快照都不可见，序列化冲突检查可能就元组是否与当前事务的结果相关得出错误结论。这可能使一个可序列化事务在不该提交时（本应报序列化错误）成功提交。</p>", "text": "修复 SERIALIZABLE 隔离模式下的冲突检查异常（Peter Geoghegan） 如果一个并发插入的元组被另一个并发事务更新，而这两个元组版本对当前事务的快照都不可见，序列化冲突检查可能就元组是否与当前事务的结果相关得出错误结论。这可能使一个可序列化事务在不该提交时（本应报序列化错误）成功提交。", "title": "修复 SERIALIZABLE 隔离模式下的冲突检查异常", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "04199ec9e2a853b43ae8e368fac42601291d92363b6e94c60f7ba1ee8d60f4fc", "section_path": ["变更"], "commit_groups": [["19a6e1bc3", "5940ffb22", "6df7105e5", "c05f6b354", "dd616f2ec", "e620a38c2", "e81dc2b7e"]], "identity_text": "Fix conflict-checking anomalies in SERIALIZABLE isolation mode (Peter Geoghegan) If a concurrently-inserted tuple was updated by a different concurrent transaction, and neither tuple version was visible to the current transaction's snapshot, serialization conflict checking could draw the wrong conclusions about whether the tuple was relevant to the results of the current transaction. This could allow a serializable transaction to commit when it should have failed with a serialization error.", "commit_aliases": ["19a6e1bc3", "5940ffb22", "6df7105e5", "c05f6b354", "dd616f2ec", "e620a38c2", "e81dc2b7e"], "source_commits": ["e81dc2b7e"], "source_entry_id": "9.6.19/changes/011", "db_id": "6c34af70afc8367885d279059a8c7678", "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137", "relations": [{"rule": 2, "type": "equivalent", "target": "138c43e0ae188ef556140730c361821d", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}}, {"rule": 2, "type": "equivalent", "target": "282bd64770b1b7dd5335d8829c504008", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}}, {"rule": 2, "type": "equivalent", "target": "709ab5266dc4930684d28fe6b9d24c51", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}}, {"rule": 2, "type": "equivalent", "target": "98761d6491ab87fdd228d1d2bbcb1ff2", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "138c43e0ae188ef556140730c361821d", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 SERIALIZABLE 隔离模式中的冲突检查异常", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}, "url": "/docs/compare/?release=12.4#12.4-45fab7df1be57512", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "98761d6491ab87fdd228d1d2bbcb1ff2", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 SERIALIZABLE 隔离模式中的冲突检查异常", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}, "url": "/docs/compare/?release=11.9#11.9-9785d8b8cef9c4a9", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "709ab5266dc4930684d28fe6b9d24c51", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复 SERIALIZABLE 隔离模式中的冲突检查异常", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}, "url": "/docs/compare/?release=10.14#10.14-9785d8b8cef9c4a9", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "282bd64770b1b7dd5335d8829c504008", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 SERIALIZABLE 隔离模式下的冲突检查异常", "evidence": {"same_day": true, "patch_ids": ["63b3781076b1620a95f6998eaf9d6ea8"], "statement_hash": "13ac0bd21db252a6b2ccfd02526cde6ab024a70861a86aabb2f64693fc634137"}, "url": "/docs/compare/?release=9.5.23#9.5.23-2815ad76a363781c", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-e2d239f429422919", "cves": [], "html": "<p>避免重复把死 btree 索引条目标记为死（Masahiko Sawada）</p>\n<p>虽然功能上无害，但在启用校验和或打开 <code>wal_log_hints</code> 时，这会导致无用的 WAL 流量。</p>", "text": "避免重复把死 btree 索引条目标记为死（Masahiko Sawada） 虽然功能上无害，但在启用校验和或打开 wal_log_hints 时，这会导致无用的 WAL 流量。", "title": "避免重复把死 btree 索引条目标记为死", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "ab3395166b739b543326e43746c3314375f2b549c3113487aa16d5c778bc6d8e", "section_path": ["变更"], "commit_groups": [["09f2752b0", "0a319699d", "1d84751c6", "242dfcbaf", "37b5c5fde", "4649eb919"]], "identity_text": "Avoid repeated marking of dead btree index entries as dead (Masahiko Sawada) While functionally harmless, this led to useless WAL traffic when checksums are enabled or wal_log_hints is on.", "commit_aliases": ["09f2752b0", "0a319699d", "1d84751c6", "242dfcbaf", "37b5c5fde", "4649eb919"], "source_commits": ["4649eb919"], "source_entry_id": "9.6.19/changes/012", "db_id": "7bd481af76e7894efd9e627af3b8595a", "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4", "relations": [{"rule": 2, "type": "equivalent", "target": "033d22474f002ecfe8030d3e5033a189", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}}, {"rule": 2, "type": "equivalent", "target": "2906e5fb50454b32c0b892457ec23c14", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}}, {"rule": 2, "type": "equivalent", "target": "5e0a40f96ba835b9ecff811dd8702e1a", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}}, {"rule": 2, "type": "equivalent", "target": "a25347ec5c2c32d229fea4a88611e4e0", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e0a40f96ba835b9ecff811dd8702e1a", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "避免将已失效的 B-树索引条目反复标记为失效", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}, "url": "/docs/compare/?release=12.4#12.4-7a0efc383eed6820", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "033d22474f002ecfe8030d3e5033a189", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "避免将已失效的 B-树索引条目反复标记为失效", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}, "url": "/docs/compare/?release=11.9#11.9-db254ba445f0275d", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "a25347ec5c2c32d229fea4a88611e4e0", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "避免将已失效的 B-树索引条目反复标记为失效", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}, "url": "/docs/compare/?release=10.14#10.14-db254ba445f0275d", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "2906e5fb50454b32c0b892457ec23c14", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "避免重复把死 btree 索引条目标记为死", "evidence": {"same_day": true, "patch_ids": ["64dcf709d1b1dce4fc1941bc3f20f2ab"], "statement_hash": "cd2ec7e3869ff3059a5f2db520104c85be6b1da7513840160c253325e92704d4"}, "url": "/docs/compare/?release=9.5.23#9.5.23-e2d239f429422919", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-5d123fa449660c85", "cves": [], "html": "<p>修复某些代码路径在修改 <code>pg_control</code> 之前未获取正确锁的问题（Nathan Bossart、Fujii Masao）</p>\n<p>这一疏漏可能使 <code>pg_control</code> 以不一致的校验和写出，之后可能引起麻烦，包括在下一次 <code>pg_control</code> 更新之前崩溃时无法重启数据库。</p>", "text": "修复某些代码路径在修改 pg_control 之前未获取正确锁的问题（Nathan Bossart、Fujii Masao） 这一疏漏可能使 pg_control 以不一致的校验和写出，之后可能引起麻烦，包括在下一次 pg_control 更新之前崩溃时无法重启数据库。", "title": "修复某些代码路径在修改 pg_control 之前未获取正确锁的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "696f813620c099c3552b03daac0e6b5269e53a9f6ab482efbdb6fa7b8b92f9a6", "section_path": ["变更"], "commit_groups": [["09dc17486", "48eb6a3c8", "57cb80630", "644cac32a", "72766ad63", "acefa2cca", "fd11b842e"]], "identity_text": "Fix failure of some code paths to acquire the correct lock before modifying pg_control (Nathan Bossart, Fujii Masao) This oversight could allow pg_control to be written out with an inconsistent checksum, possibly causing trouble later, including inability to restart the database if it crashed before the next pg_control update.", "commit_aliases": ["09dc17486", "48eb6a3c8", "57cb80630", "644cac32a", "72766ad63", "acefa2cca", "fd11b842e"], "source_commits": ["644cac32a"], "source_entry_id": "9.6.19/changes/013", "db_id": "bd811e0b3435a1c993681d54b70f3910", "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02", "relations": [{"rule": 2, "type": "equivalent", "target": "433e4a2cc9e4f98815c5c9d4a2bde523", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}}, {"rule": 2, "type": "equivalent", "target": "7243515f84270761166407e65daa9451", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}}, {"rule": 2, "type": "equivalent", "target": "9d62bcac7998b528e307d472fe674a0e", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}}, {"rule": 2, "type": "equivalent", "target": "e24da9b240d6a97b8a81f152cb9fb97e", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e24da9b240d6a97b8a81f152cb9fb97e", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复某些代码路径修改 pg_control 前未获取正确锁的问题", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}, "url": "/docs/compare/?release=12.4#12.4-39f524ab36db0b02", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "433e4a2cc9e4f98815c5c9d4a2bde523", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复某些代码路径修改 pg_control 前未获取正确锁的问题", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}, "url": "/docs/compare/?release=11.9#11.9-c3b6f7cdb9a5a569", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "7243515f84270761166407e65daa9451", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复某些代码路径修改 pg_control 前未获取正确锁的问题", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}, "url": "/docs/compare/?release=10.14#10.14-c3b6f7cdb9a5a569", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "9d62bcac7998b528e307d472fe674a0e", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复某些代码路径在修改 pg_control 之前未获取正确锁的问题", "evidence": {"same_day": true, "patch_ids": ["d7a107aa9b62c095395a4ad42a44eebc"], "statement_hash": "939d569f3741be6f7269da9408c893507c52e3d0581d2670eecf58bf95c87a02"}, "url": "/docs/compare/?release=9.5.23#9.5.23-5d123fa449660c85", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-8880427fca0301c2", "cves": [], "html": "<p>修复 <code>currtid()</code> 和 <code>currtid2()</code> 中的错误（Michael Paquier）</p>\n<p>这些函数（未写入文档且只被古老版本的 ODBC 驱动使用）包含可导致崩溃的编码错误，或者在应用于没有存储的关系时产生诸如 <span>“<span>could not open file</span>”</span> 之类令人困惑的错误消息。</p>", "text": "修复 currtid() 和 currtid2() 中的错误（Michael Paquier） 这些函数（未写入文档且只被古老版本的 ODBC 驱动使用）包含可导致崩溃的编码错误，或者在应用于没有存储的关系时产生诸如 “could not open file” 之类令人困惑的错误消息。", "title": "修复 currtid() 和 currtid2() 中的错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "d190ec2582ddf2e149472c71d5f1f61d48772b832eb4e83175601e1a662ae904", "section_path": ["变更"], "commit_groups": [["894041eb2", "8bc74490d", "a36f21620", "a8c6eb5b4", "ce1c5b9ae", "e2fa9732f"], ["95e389b3c", "e786be5fc"]], "identity_text": "Fix errors in currtid() and currtid2() (Michael Paquier) These functions (which are undocumented and used only by ancient versions of the ODBC driver) contained coding errors that could result in crashes, or in confusing error messages such as could not open file when applied to a relation having no storage.", "commit_aliases": ["894041eb2", "8bc74490d", "95e389b3c", "a36f21620", "a8c6eb5b4", "ce1c5b9ae", "e2fa9732f", "e786be5fc"], "source_commits": ["e2fa9732f", "e786be5fc"], "source_entry_id": "9.6.19/changes/014", "db_id": "4b9438976fc11a64def60e2e14c652c8", "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e", "relations": [{"rule": 2, "type": "equivalent", "target": "4d15a7ac89a61a2fffe20006bd28ae46", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}}, {"rule": 2, "type": "equivalent", "target": "552c322559e6002617a1451a657e45d3", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}}, {"rule": 2, "type": "equivalent", "target": "70795be678e21023800cb9753e241fd3", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}}, {"rule": 2, "type": "equivalent", "target": "aaa48914a0c8e3c550f7d7992dd674eb", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "70795be678e21023800cb9753e241fd3", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 currtid() 和 currtid2() 中的错误", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}, "url": "/docs/compare/?release=12.4#12.4-9851c4fef48f4afb", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "aaa48914a0c8e3c550f7d7992dd674eb", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 currtid() 和 currtid2() 中的错误", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}, "url": "/docs/compare/?release=11.9#11.9-8880427fca0301c2", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "552c322559e6002617a1451a657e45d3", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复 currtid() 和 currtid2() 中的错误", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}, "url": "/docs/compare/?release=10.14#10.14-8880427fca0301c2", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "4d15a7ac89a61a2fffe20006bd28ae46", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 currtid() 和 currtid2() 中的错误", "evidence": {"same_day": true, "patch_ids": ["27b2dcabf26eaf1c7674e7a13a96398d", "a7dea211061f215b8cdf044872714d4f"], "statement_hash": "7316ade9ee367fcf2766788a37169597556db8ce5091e1b5b0ac0124f9dc2c1e"}, "url": "/docs/compare/?release=9.5.23#9.5.23-8880427fca0301c2", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-1dd7aea73c9ed756", "cves": [], "html": "<p>避免在持有自旋锁时调用 <code>elog()</code> 或 <code>palloc()</code>（Michael Paquier、Tom Lane）</p>\n<p>与复制槽相关的逻辑有几处违反了这一编码规则。虽然出问题的几率很低，但被调用函数中的错误会导致自旋锁卡死。</p>", "text": "避免在持有自旋锁时调用 elog() 或 palloc()（Michael Paquier、Tom Lane） 与复制槽相关的逻辑有几处违反了这一编码规则。虽然出问题的几率很低，但被调用函数中的错误会导致自旋锁卡死。", "title": "避免在持有自旋锁时调用 elog() 或 palloc()", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "a33c2c78408c1dd1a2234148cb1ecfdce72deeb91017a24a596507dd946bfdc4", "section_path": ["变更"], "commit_groups": [["03aa25b6e", "4a9809e34", "5ed8b4a98", "b41a85f53", "c1669fd58", "e7a134b58"], ["0c735c686", "3d474a079", "7a8cb4a61", "f88bd3139"]], "identity_text": "Avoid calling elog() or palloc() while holding a spinlock (Michael Paquier, Tom Lane) Logic associated with replication slots had several violations of this coding rule. While the odds of trouble are quite low, an error in the called function would lead to a stuck spinlock.", "commit_aliases": ["03aa25b6e", "0c735c686", "3d474a079", "4a9809e34", "5ed8b4a98", "7a8cb4a61", "b41a85f53", "c1669fd58", "e7a134b58", "f88bd3139"], "source_commits": ["e7a134b58", "f88bd3139"], "source_entry_id": "9.6.19/changes/015", "db_id": "df3daeeb0faa8cca216633e36c3b3a40", "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa", "relations": [{"rule": 2, "type": "equivalent", "target": "273e54be3953e1f9eb204765452993e3", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}}, {"rule": 2, "type": "equivalent", "target": "27a280a730fb0fcdb290872f1203c1b5", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}}, {"rule": 2, "type": "equivalent", "target": "855df8283d480b191956104315e45be1", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}}, {"rule": 2, "type": "equivalent", "target": "e70d7d936f76c777484f5273067ac6f5", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "27a280a730fb0fcdb290872f1203c1b5", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "避免持有自旋锁时调用 elog() 或 palloc()", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}, "url": "/docs/compare/?release=12.4#12.4-e98082ace3e3bb8c", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "e70d7d936f76c777484f5273067ac6f5", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "避免持有自旋锁时调用 elog() 或 palloc()", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}, "url": "/docs/compare/?release=11.9#11.9-ebbc29f772fc9f55", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "273e54be3953e1f9eb204765452993e3", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "避免持有自旋锁时调用 elog() 或 palloc()", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}, "url": "/docs/compare/?release=10.14#10.14-ebbc29f772fc9f55", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "855df8283d480b191956104315e45be1", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "避免在持有自旋锁时调用 elog() 或 palloc()", "evidence": {"same_day": true, "patch_ids": ["7b8a6d0c9a6cc48f6b25baa0ad760128", "c4aea02cbcfbc000949bf778b61af270"], "statement_hash": "81ffb82d876dcf112322599128dceaeadcd558ff62e24ed871ed78320da6a1aa"}, "url": "/docs/compare/?release=9.5.23#9.5.23-1dd7aea73c9ed756", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-35bcfccc4c8e8a31", "cves": [], "html": "<p>在 <span>pg_dump</span> 和 <span>pg_basebackup</span> 中正确报告磁盘空间不足错误（Justin Pryzby、Tom Lane、Álvaro Herrera）</p>\n<p>某些代码路径会产生诸如 <span>“<span>could not write file: Success</span>”</span> 之类的可笑报告。</p>", "text": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误（Justin Pryzby、Tom Lane、Álvaro Herrera） 某些代码路径会产生诸如 “could not write file: Success” 之类的可笑报告。", "title": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "13d77b8f4d64824f2b1cd39ed2aac5f8d69b1bcda587c7204cddf4dcf0d4bb61", "section_path": ["变更"], "commit_groups": [["2e155d90d", "411febd53", "5b52008a6", "83762d0a9", "ae3259c55", "bbbce94dc", "e74559c97"]], "identity_text": "Report out-of-disk-space errors properly in pg_dump and pg_basebackup (Justin Pryzby, Tom Lane, Álvaro Herrera) Some code paths could produce silly reports like could not write file: Success.", "commit_aliases": ["2e155d90d", "411febd53", "5b52008a6", "83762d0a9", "ae3259c55", "bbbce94dc", "e74559c97"], "source_commits": ["83762d0a9"], "source_entry_id": "9.6.19/changes/016", "db_id": "7e050f5c0843580f658aabff79c8b235", "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482", "relations": [{"rule": 2, "type": "equivalent", "target": "49d37d1b7dedb9dd758f522fd1f10fc3", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}}, {"rule": 2, "type": "equivalent", "target": "816aa6194d1480bdbf0300ca564778bd", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}}, {"rule": 2, "type": "equivalent", "target": "97d7d04b2ecc6d3a2e86a0f6843f12c1", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}}, {"rule": 2, "type": "equivalent", "target": "a3216795e64fd0a84bf6514a41fdbf68", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a3216795e64fd0a84bf6514a41fdbf68", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}, "url": "/docs/compare/?release=12.4#12.4-408b798dd21d79f4", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "816aa6194d1480bdbf0300ca564778bd", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}, "url": "/docs/compare/?release=11.9#11.9-35bcfccc4c8e8a31", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "97d7d04b2ecc6d3a2e86a0f6843f12c1", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}, "url": "/docs/compare/?release=10.14#10.14-35bcfccc4c8e8a31", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "49d37d1b7dedb9dd758f522fd1f10fc3", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "在 pg_dump 和 pg_basebackup 中正确报告磁盘空间不足错误", "evidence": {"same_day": true, "patch_ids": ["35d198e9f9b3e496eefade6e41d625b9"], "statement_hash": "db1a02b7055edcec6bcca7aaf801b30a336bbd5fd379bf86909423d9272d4482"}, "url": "/docs/compare/?release=9.5.23#9.5.23-35bcfccc4c8e8a31", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-a3f80256e4336bb6", "cves": [], "html": "<p>修复同时具有表级权限和列级权限的表的并行恢复（Tom Lane）</p>\n<p>表级权限授予必须先被应用，但并行恢复不能可靠地按此排序；这可能导致 <span>“<span>tuple concurrently updated</span>”</span> 错误，或某些列级权限授予消失。修复方法是在归档文件中的此类条目之间包含依赖链接，这意味着必须用修正后的 <span>pg_dump</span> 重新转储，以确保问题不会复发。</p>", "text": "修复同时具有表级权限和列级权限的表的并行恢复（Tom Lane） 表级权限授予必须先被应用，但并行恢复不能可靠地按此排序；这可能导致 “tuple concurrently updated” 错误，或某些列级权限授予消失。修复方法是在归档文件中的此类条目之间包含依赖链接，这意味着必须用修正后的 pg_dump 重新转储，以确保问题不会复发。", "title": "修复同时具有表级权限和列级权限的表的并行恢复", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "c92c859680e980b21cab09e1530e88ce7aa6606b8e8747fa3e779f7d18d6cf5c", "section_path": ["变更"], "commit_groups": [["2d43c3057", "303322c5a", "4fdc559c8", "5fea14f4b", "bc9aaac1a", "db820b9a9", "ea9125304"]], "identity_text": "Fix parallel restore of tables having both table-level privileges and per-column privileges (Tom Lane) The table-level privilege grants have to be applied first, but a parallel restore did not reliably order them that way; this could lead to tuple concurrently updated errors, or to disappearance of some per-column privilege grants. The fix for this is to include dependency links between such entries in the archive file, meaning that a new dump has to be taken with a corrected pg_dump to ensure that the problem will not recur.", "commit_aliases": ["2d43c3057", "303322c5a", "4fdc559c8", "5fea14f4b", "bc9aaac1a", "db820b9a9", "ea9125304"], "source_commits": ["303322c5a"], "source_entry_id": "9.6.19/changes/017", "db_id": "b0f033bc567b79af6912da8a9b851249", "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f", "relations": [{"rule": 2, "type": "equivalent", "target": "6747b5e78db70a510d6064262fc45727", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}}, {"rule": 2, "type": "equivalent", "target": "6b7ffb66793c929fb75d5305434cc701", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}}, {"rule": 2, "type": "equivalent", "target": "d2b27ac2b44e756e280154aab82b9f16", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}}, {"rule": 2, "type": "equivalent", "target": "ec4ff64a62c56fab736ff690d4c2325b", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec4ff64a62c56fab736ff690d4c2325b", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复同时具有表级权限和逐列权限的表的并行恢复", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}, "url": "/docs/compare/?release=12.4#12.4-f21be96544e8e42e", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "6b7ffb66793c929fb75d5305434cc701", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复同时具有表级权限和逐列权限的表的并行恢复", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}, "url": "/docs/compare/?release=11.9#11.9-e9e714167d3e4211", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "6747b5e78db70a510d6064262fc45727", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复同时具有表级权限和逐列权限的表的并行恢复", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}, "url": "/docs/compare/?release=10.14#10.14-e9e714167d3e4211", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "d2b27ac2b44e756e280154aab82b9f16", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复同时具有表级权限和列级权限的表的并行恢复", "evidence": {"same_day": true, "patch_ids": ["483cb11346131b13cd9681ce8d606ba5"], "statement_hash": "b203809ad3b9fe21738c3e6bc8139c263eae1bf4f2299fa486fcb2963b6a939f"}, "url": "/docs/compare/?release=9.5.23#9.5.23-a3f80256e4336bb6", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-4028204c112b0892", "cves": [], "html": "<p>确保 <span>pg_upgrade</span> 在目标集簇中运行时 <code>vacuum_defer_cleanup_age</code> 被设为零（Bruce Momjian）</p>\n<p>如果目标集簇的配置被修改为把 <code>vacuum_defer_cleanup_age</code> 设为非零值，会妨碍系统目录的冻结正常工作，导致升级以令人困惑的方式失败。确保升级期间覆盖任何此类设置。</p>", "text": "确保 pg_upgrade 在目标集簇中运行时 vacuum_defer_cleanup_age 被设为零（Bruce Momjian） 如果目标集簇的配置被修改为把 vacuum_defer_cleanup_age 设为非零值，会妨碍系统目录的冻结正常工作，导致升级以令人困惑的方式失败。确保升级期间覆盖任何此类设置。", "title": "确保 pg_upgrade 在目标集簇中运行时 vacuum_defer_cleanup_age 被设为零", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "611b2336f765c81890b1de71a08933c7dd7af6323338bf78a592e7e6005fbd76", "section_path": ["变更"], "commit_groups": [["39c698cff", "3f5863e15", "5c1bfd627", "8e933596c", "9170da96d", "a2c72851a", "aeb785c0f"]], "identity_text": "Ensure that pg_upgrade runs with vacuum_defer_cleanup_age set to zero in the target cluster (Bruce Momjian) If the target cluster's configuration has been modified to set vacuum_defer_cleanup_age to a nonzero value, that prevented freezing of the system catalogs from working properly, which caused the upgrade to fail in confusing ways. Ensure that any such setting is overridden for the duration of the upgrade.", "commit_aliases": ["39c698cff", "3f5863e15", "5c1bfd627", "8e933596c", "9170da96d", "a2c72851a", "aeb785c0f"], "source_commits": ["5c1bfd627"], "source_entry_id": "9.6.19/changes/018", "db_id": "fd3219318bdac20b2e41ff3632b076f9", "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748", "relations": [{"rule": 2, "type": "equivalent", "target": "59d36c4a54d742189212fa483f320346", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}}, {"rule": 2, "type": "equivalent", "target": "642d5e8d27e0c6f02a7fbadafce573be", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}}, {"rule": 2, "type": "equivalent", "target": "665e0bfbae089802b6bd3c8dd8b5faaf", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}}, {"rule": 2, "type": "equivalent", "target": "7e6ceb1eb07affde79b46b2a279cb38d", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "59d36c4a54d742189212fa483f320346", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "确保 pg_upgrade 运行时，将目标集群中的 vacuum_defer_cleanup_age 设为零", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}, "url": "/docs/compare/?release=12.4#12.4-cd259605abab70fd", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "665e0bfbae089802b6bd3c8dd8b5faaf", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "确保 pg_upgrade 运行时，将目标集群中的 vacuum_defer_cleanup_age 设为零", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}, "url": "/docs/compare/?release=11.9#11.9-e1e311b29f42aec4", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "7e6ceb1eb07affde79b46b2a279cb38d", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "确保 pg_upgrade 运行时，将目标集群中的 vacuum_defer_cleanup_age 设为零", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}, "url": "/docs/compare/?release=10.14#10.14-e1e311b29f42aec4", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "642d5e8d27e0c6f02a7fbadafce573be", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "确保 pg_upgrade 在目标集簇中运行时 vacuum_defer_cleanup_age 被设为零", "evidence": {"same_day": true, "patch_ids": ["c3b9dd773fa38ed393bec0b3f5342139"], "statement_hash": "4492eab8a7263a56a09e69ef539fd88dd7dd72cf5292a97939b1f90482b93748"}, "url": "/docs/compare/?release=9.5.23#9.5.23-4028204c112b0892", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-c41aefd874abd8ed", "cves": [], "html": "<p>修复 <span>pg_recvlogical</span> 在退出前排空未决消息的问题（Noah Misch）</p>\n<p>没有这一修复，复制发送端可能检测到发送失败并在对复制槽 LSN 位置进行预期的最终更新之前退出。这导致下次连接之后重新传输数据。还可能错过 <span>pg_recvlogical</span> 想消费的最后数据之后发送的错误消息。</p>", "text": "修复 pg_recvlogical 在退出前排空未决消息的问题（Noah Misch） 没有这一修复，复制发送端可能检测到发送失败并在对复制槽 LSN 位置进行预期的最终更新之前退出。这导致下次连接之后重新传输数据。还可能错过 pg_recvlogical 想消费的最后数据之后发送的错误消息。", "title": "修复 pg_recvlogical 在退出前排空未决消息的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "b048d1038f01f0c0e99a0a9dbb590ba23f10975cb5f7a34f206721aadcf9f29f", "section_path": ["变更"], "commit_groups": [["1ab5b672e", "595b4115c", "73a5c0d81", "970ed4493", "a26789452", "cee9cadb5"], ["357012e17", "7130be8aa", "8222a9d9a", "a28db2081"]], "identity_text": "Fix pg_recvlogical to drain pending messages before exiting (Noah Misch) Without this, the replication sender might detect a send failure and exit without making the expected final update to the replication slot's LSN position. That led to re-transmitting data after the next connection. It was also possible to miss error messages sent after the last data that pg_recvlogical wants to consume.", "commit_aliases": ["1ab5b672e", "357012e17", "595b4115c", "7130be8aa", "73a5c0d81", "8222a9d9a", "970ed4493", "a26789452", "a28db2081", "cee9cadb5"], "source_commits": ["1ab5b672e", "8222a9d9a"], "source_entry_id": "9.6.19/changes/019", "db_id": "661f36f02121caf181a09d07f2b16ac3", "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e", "relations": [{"rule": 2, "type": "equivalent", "target": "3f03e2858ed25def99c4ba9a8de84c0c", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}}, {"rule": 2, "type": "equivalent", "target": "42c474d377d40ad2929968a29b7fa7de", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}}, {"rule": 2, "type": "equivalent", "target": "9e63a4ff6399dbedc4c73a9b981d185d", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}}, {"rule": 2, "type": "equivalent", "target": "cda54712abe9745e3b7b483355640060", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cda54712abe9745e3b7b483355640060", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 pg_recvlogical，使其在退出前读取完待处理消息", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}, "url": "/docs/compare/?release=12.4#12.4-7d5f05eb4a0f2c7b", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "3f03e2858ed25def99c4ba9a8de84c0c", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 pg_recvlogical，使其在退出前读取完待处理消息", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}, "url": "/docs/compare/?release=11.9#11.9-3bcb1320a04bd275", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "42c474d377d40ad2929968a29b7fa7de", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复 pg_recvlogical，使其在退出前读取完待处理消息", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}, "url": "/docs/compare/?release=10.14#10.14-3bcb1320a04bd275", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "9e63a4ff6399dbedc4c73a9b981d185d", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 pg_recvlogical 在退出前排空未决消息的问题", "evidence": {"same_day": true, "patch_ids": ["622954ed1f0e4eb81efda83543b5c515", "b3753579c98b38e9d96c4303019b6c28"], "statement_hash": "8426a68951fe3f32978ae46e92debb32d4177246f5a6f9252bb6b0d035f28b9e"}, "url": "/docs/compare/?release=9.5.23#9.5.23-c41aefd874abd8ed", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-da550c9e85393596", "cves": [], "html": "<p>修复 <span>pg_rewind</span> 对源数据目录中刚被删除文件的处理（Justin Pryzby、Michael Paquier）</p>\n<p>使用在线源数据库工作时，并发文件删除是可能的，但如果删除恰好发生在看到文件目录项与用 <code>stat()</code> 检查它之间， <span>pg_rewind</span> 就会困惑。</p>", "text": "修复 pg_rewind 对源数据目录中刚被删除文件的处理（Justin Pryzby、Michael Paquier） 使用在线源数据库工作时，并发文件删除是可能的，但如果删除恰好发生在看到文件目录项与用 stat() 检查它之间， pg_rewind 就会困惑。", "title": "修复 pg_rewind 对源数据目录中刚被删除文件的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "1b1b4c433deb9363c32d3b51ebae9a81126a2e9b0a2aad9c529e24d4cf5b57a0", "section_path": ["变更"], "commit_groups": [["14fe80413", "18ec25412", "1d09fb1f0", "23924feca", "5f89bb4cf", "92927477f", "c6d33d144"]], "identity_text": "Fix pg_rewind's handling of just-deleted files in the source data directory (Justin Pryzby, Michael Paquier) When working with an on-line source database, concurrent file deletions are possible, but pg_rewind would get confused if deletion happened between seeing a file's directory entry and examining it with stat().", "commit_aliases": ["14fe80413", "18ec25412", "1d09fb1f0", "23924feca", "5f89bb4cf", "92927477f", "c6d33d144"], "source_commits": ["14fe80413"], "source_entry_id": "9.6.19/changes/020", "db_id": "c52576da644edded7b31204bd8e0f9d1", "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f", "relations": [{"rule": 2, "type": "equivalent", "target": "423a5e98056171752639b9c3b2ef463e", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}}, {"rule": 2, "type": "equivalent", "target": "8b5e9612827204adac9507d77c98be37", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}}, {"rule": 2, "type": "equivalent", "target": "b7fab023f441a7e955aede15032fb065", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}}, {"rule": 2, "type": "equivalent", "target": "f23b125b1b287c3962119a086b6788c0", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b7fab023f441a7e955aede15032fb065", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 pg_rewind 对源数据目录中刚删除的文件的处理", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}, "url": "/docs/compare/?release=12.4#12.4-8d166a1ede28e23a", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "8b5e9612827204adac9507d77c98be37", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 pg_rewind 对源数据目录中刚删除的文件的处理", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}, "url": "/docs/compare/?release=11.9#11.9-22dcf45ade8af2a4", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "f23b125b1b287c3962119a086b6788c0", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复 pg_rewind 对源数据目录中刚删除的文件的处理", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}, "url": "/docs/compare/?release=10.14#10.14-22dcf45ade8af2a4", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "423a5e98056171752639b9c3b2ef463e", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 pg_rewind 对源数据目录中刚被删除文件的处理", "evidence": {"same_day": true, "patch_ids": ["843d02cd3d60b7c4a9b93852f58b6af5"], "statement_hash": "cda6e58c8f9d2638b48239be399a5802122288d9d2bbd2a0ba7e10337edd6c5f"}, "url": "/docs/compare/?release=9.5.23#9.5.23-da550c9e85393596", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-bcd81073169d22d5", "cves": [], "html": "<p>让 <span>pg_test_fsync</span> 在 Windows 上使用二进制 I/O 模式（Michael Paquier）</p>\n<p>此前它以文本模式写测试文件，这不能准确反映 <span>PostgreSQL</span> 的实际用法。</p>", "text": "让 pg_test_fsync 在 Windows 上使用二进制 I/O 模式（Michael Paquier） 此前它以文本模式写测试文件，这不能准确反映 PostgreSQL 的实际用法。", "title": "让 pg_test_fsync 在 Windows 上使用二进制 I/O 模式", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "2fd36749592ba0863d620c2dd06ed45761293a1db2a2ac1e593803fd9fa1872f", "section_path": ["变更"], "commit_groups": [["800ec48f5", "932f9fb50", "a452b239e", "ab7ce97ec", "beebbb39d", "cd113a0b4", "de559c2b0"]], "identity_text": "Make pg_test_fsync use binary I/O mode on Windows (Michael Paquier) Previously it wrote the test file in text mode, which is not an accurate reflection of PostgreSQL's actual usage.", "commit_aliases": ["800ec48f5", "932f9fb50", "a452b239e", "ab7ce97ec", "beebbb39d", "cd113a0b4", "de559c2b0"], "source_commits": ["a452b239e"], "source_entry_id": "9.6.19/changes/021", "db_id": "3135e3c9d723243c6bd93805f24d69b9", "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647", "relations": [{"rule": 2, "type": "equivalent", "target": "780a9579c719cf7fcfa5a878c70af3ab", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}}, {"rule": 2, "type": "equivalent", "target": "b16acde76c53f00bcd28b7bd9319c717", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}}, {"rule": 2, "type": "equivalent", "target": "ba808e0b274d529a9318d7dc31100455", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}}, {"rule": 2, "type": "equivalent", "target": "f367982a55f859e29a9e4cb61ef463f2", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b16acde76c53f00bcd28b7bd9319c717", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "使 pg_test_fsync 在 Windows 上使用二进制 I/O 模式", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}, "url": "/docs/compare/?release=12.4#12.4-ed4b723fa77f9343", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "f367982a55f859e29a9e4cb61ef463f2", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "使 pg_test_fsync 在 Windows 上使用二进制 I/O 模式", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}, "url": "/docs/compare/?release=11.9#11.9-d3e3b67792604d61", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "780a9579c719cf7fcfa5a878c70af3ab", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "使 pg_test_fsync 在 Windows 上使用二进制 I/O 模式", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}, "url": "/docs/compare/?release=10.14#10.14-d3e3b67792604d61", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "ba808e0b274d529a9318d7dc31100455", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "让 pg_test_fsync 在 Windows 上使用二进制 I/O 模式", "evidence": {"same_day": true, "patch_ids": ["6fb0c57fa5dcc20f7e429e860ef1bfbe"], "statement_hash": "4618ab0945e540cfd17b971caa82ec45092c83f12fdde01e7f61a67ef5be4647"}, "url": "/docs/compare/?release=9.5.23#9.5.23-bcd81073169d22d5", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-0ea9376ebe5ef835", "cves": [], "html": "<p>修复 <code>contrib/dblink</code> 未能正确初始化本地状态的问题（Joe Conway）</p>\n<p>在恰当的环境组合下，这可能导致 <code>dblink_close()</code> 发出意外的远程 <code>COMMIT</code>。</p>", "text": "修复 contrib/dblink 未能正确初始化本地状态的问题（Joe Conway） 在恰当的环境组合下，这可能导致 dblink_close() 发出意外的远程 COMMIT。", "title": "修复 contrib/dblink 未能正确初始化本地状态的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "1fcceb1d633060781a2c1dd767e4c2bd66d44967e4e86d872b1436588cedd7cb", "section_path": ["变更"], "commit_groups": [["43d3d7318", "43d7934a3", "49a00e07c", "9003b76e1", "e8eb48595", "f140d9b6e"]], "identity_text": "Fix failure to initialize local state correctly in contrib/dblink (Joe Conway) With the right combination of circumstances, this could lead to dblink_close() issuing an unexpected remote COMMIT.", "commit_aliases": ["43d3d7318", "43d7934a3", "49a00e07c", "9003b76e1", "e8eb48595", "f140d9b6e"], "source_commits": ["43d7934a3"], "source_entry_id": "9.6.19/changes/022", "db_id": "3d7c21d661753de7c04efe9e8180dae4", "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb", "relations": [{"rule": 2, "type": "equivalent", "target": "5f5604a421f793ccda86a39947d0b0f8", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}}, {"rule": 2, "type": "equivalent", "target": "694e0bfe6a45e34b9bb0e939b878084c", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}}, {"rule": 2, "type": "equivalent", "target": "9fe028914bd32b13bfcb52ff54d768a4", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}}, {"rule": 2, "type": "equivalent", "target": "c5b653fb8275ef23b759c81bebb72138", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9fe028914bd32b13bfcb52ff54d768a4", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 contrib/dblink 未能正确初始化本地状态的问题", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}, "url": "/docs/compare/?release=12.4#12.4-31b2ce6886fd1cb1", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "5f5604a421f793ccda86a39947d0b0f8", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 contrib/dblink 未能正确初始化本地状态的问题", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}, "url": "/docs/compare/?release=11.9#11.9-0ea9376ebe5ef835", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "c5b653fb8275ef23b759c81bebb72138", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复 contrib/dblink 未能正确初始化本地状态的问题", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}, "url": "/docs/compare/?release=10.14#10.14-0ea9376ebe5ef835", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "694e0bfe6a45e34b9bb0e939b878084c", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 contrib/dblink 未能正确初始化本地状态的问题", "evidence": {"same_day": true, "patch_ids": ["823e9ac1b4747f4b70d29a203e6599a3"], "statement_hash": "153036545f32a848a91997f4c15072198778589eddb7db59974683fd49b299eb"}, "url": "/docs/compare/?release=9.5.23#9.5.23-0ea9376ebe5ef835", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-5c9a7d9c06f17743", "cves": [], "html": "<p>修复 <code>contrib/pgcrypto</code> 对 <code>deflate()</code> 的误用（Tom Lane）</p>\n<p>由于错误处理 <span>zlib</span> 的 API 要求，<code>pgp_sym_encrypt</code> 函数可能产生错误的压缩数据。我们没有收到过这个错误在原版 <span>zlib</span> 下显现的报告，但在使用 IBM 的 <span>zlibNX</span> 实现时可以看到。</p>", "text": "修复 contrib/pgcrypto 对 deflate() 的误用（Tom Lane） 由于错误处理 zlib 的 API 要求，pgp_sym_encrypt 函数可能产生错误的压缩数据。我们没有收到过这个错误在原版 zlib 下显现的报告，但在使用 IBM 的 zlibNX 实现时可以看到。", "title": "修复 contrib/pgcrypto 对 deflate() 的误用", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "529b136ed6953e0c8401adfbd45df080746b21e7a7604c7316b2ac626ef7a6c5", "section_path": ["变更"], "commit_groups": [["3d4a77815", "475c69c97", "7dab4569d", "b9b610577", "ccf964a80", "d0519e9fe", "d8ec3b126"]], "identity_text": "Fix contrib/pgcrypto's misuse of deflate() (Tom Lane) The pgp_sym_encrypt functions could produce incorrect compressed data due to mishandling of zlib's API requirements. We have no reports of this error manifesting with stock zlib, but it can be seen when using IBM's zlibNX implementation.", "commit_aliases": ["3d4a77815", "475c69c97", "7dab4569d", "b9b610577", "ccf964a80", "d0519e9fe", "d8ec3b126"], "source_commits": ["ccf964a80"], "source_entry_id": "9.6.19/changes/023", "db_id": "9b8a7f4ef7320656fa1778b6c988e0b3", "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b", "relations": [{"rule": 2, "type": "equivalent", "target": "2cfc769b52e3b07c540770d8283bad5b", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}}, {"rule": 2, "type": "equivalent", "target": "30ed2bb590f94a7150a5174047c4c46e", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}}, {"rule": 2, "type": "equivalent", "target": "3242f866b02f758989303ae7152085c6", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}}, {"rule": 2, "type": "equivalent", "target": "cece28d53d5ccaba7d257ead3597a228", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "30ed2bb590f94a7150a5174047c4c46e", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 contrib/pgcrypto 对 deflate() 的错误使用", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}, "url": "/docs/compare/?release=12.4#12.4-735fb83115b00403", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "3242f866b02f758989303ae7152085c6", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 contrib/pgcrypto 对 deflate() 的错误使用", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}, "url": "/docs/compare/?release=11.9#11.9-a6be2c33bf5dd43b", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "2cfc769b52e3b07c540770d8283bad5b", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复 contrib/pgcrypto 对 deflate() 的错误使用", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}, "url": "/docs/compare/?release=10.14#10.14-a6be2c33bf5dd43b", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "cece28d53d5ccaba7d257ead3597a228", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 contrib/pgcrypto 对 deflate() 的误用", "evidence": {"same_day": true, "patch_ids": ["087f44a663efed6f1d4571ac678b572a"], "statement_hash": "52db2818133c10c81f88c1f897519c4c2b29b2f346466b1b4570ebafb687358b"}, "url": "/docs/compare/?release=9.5.23#9.5.23-5c9a7d9c06f17743", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-d338711d701e80b8", "cves": [], "html": "<p>修复 <code>contrib/pgcrypto</code> 的 <code>pgp_sym_decrypt</code> 函数中解压逻辑的边界情况（Kyotaro Horiguchi、Michael Paquier）</p>\n<p>压缩流可以合法地以空包结束，但解压器未能处理这一点，会抱怨数据损坏。</p>", "text": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压逻辑的边界情况（Kyotaro Horiguchi、Michael Paquier） 压缩流可以合法地以空包结束，但解压器未能处理这一点，会抱怨数据损坏。", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压逻辑的边界情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "445dd32ff8e4cbeae53dbc9682cfc8afb77a2855a9be37747f6dc3523538679f", "section_path": ["变更"], "commit_groups": [["0caf1fc6e", "202fc4ca5", "5bd087eb5", "8a60f541f", "9729f9979", "a3ab7a707", "aaa132a65"], ["1785ac8ad", "e1b4135cf"]], "identity_text": "Fix corner case in decompression logic in contrib/pgcrypto's pgp_sym_decrypt functions (Kyotaro Horiguchi, Michael Paquier) A compressed stream can validly end with an empty packet, but the decompressor failed to handle this and would complain about corrupt data.", "commit_aliases": ["0caf1fc6e", "1785ac8ad", "202fc4ca5", "5bd087eb5", "8a60f541f", "9729f9979", "a3ab7a707", "aaa132a65", "e1b4135cf"], "source_commits": ["1785ac8ad", "8a60f541f"], "source_entry_id": "9.6.19/changes/024", "db_id": "69a4ff8bc694aa26df8362ad2f30e65f", "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7", "relations": [{"rule": 2, "type": "equivalent", "target": "6eedd6b7f3936c1d43da147811fe4a2e", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}}, {"rule": 2, "type": "equivalent", "target": "8bf29fde1686423ed401a4b399872762", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}}, {"rule": 2, "type": "equivalent", "target": "a347b27d5d31e5c242a6e9e4844240eb", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}}, {"rule": 2, "type": "equivalent", "target": "b794019002cfa4cfd994ac78451bd99d", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}}], "version": "9.6.19", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b794019002cfa4cfd994ac78451bd99d", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压缩逻辑的边界情况", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}, "url": "/docs/compare/?release=12.4#12.4-95c9d9cc4ef44537", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "6eedd6b7f3936c1d43da147811fe4a2e", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压缩逻辑的边界情况", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}, "url": "/docs/compare/?release=11.9#11.9-bc929af91332cf40", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "a347b27d5d31e5c242a6e9e4844240eb", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压缩逻辑的边界情况", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}, "url": "/docs/compare/?release=10.14#10.14-bc929af91332cf40", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "8bf29fde1686423ed401a4b399872762", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "修复 contrib/pgcrypto 的 pgp_sym_decrypt 函数中解压逻辑的边界情况", "evidence": {"same_day": true, "patch_ids": ["61d82dcc8c38e53faf8364e391734fe1", "9c392716155fc2eb2bae306a88822441"], "statement_hash": "1ecdd9e3b54b8c7d8e46289ae2edd1e4bc6beea4db3de9460f01ba41a54c41e7"}, "url": "/docs/compare/?release=9.5.23#9.5.23-d338711d701e80b8", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-bf16b9da3b7a579d", "cves": [], "html": "<p>用 POSIX 标准的 <code>strsignal()</code> 取代 BSD 风格的 <code>sys_siglist[]</code>（Tom Lane）</p>\n<p>这避免了在非常新的 <span>glibc</span> 版本下的构建失败。</p>", "text": "用 POSIX 标准的 strsignal() 取代 BSD 风格的 sys_siglist[]（Tom Lane） 这避免了在非常新的 glibc 版本下的构建失败。", "title": "用 POSIX 标准的 strsignal() 取代 BSD 风格的 sys_siglist[]", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "1b96b79edd2f39467268e818d3af473138070266900f9047c9c5fdf9ad9a6c72", "section_path": ["变更"], "commit_groups": [["0140dec18", "9e043d93c", "c6d43ffab", "d61dcccaf"]], "identity_text": "Use POSIX-standard strsignal() in place of the BSD-ish sys_siglist[] (Tom Lane) This avoids build failures with very recent versions of glibc.", "commit_aliases": ["0140dec18", "9e043d93c", "c6d43ffab", "d61dcccaf"], "source_commits": ["9e043d93c"], "source_entry_id": "9.6.19/changes/025", "db_id": "46e5daea2f0847cec44a18497ff6126c", "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727", "relations": [{"rule": 2, "type": "equivalent", "target": "0e1ef68c98289abd4464164b89ed8fc6", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}}, {"rule": 2, "type": "equivalent", "target": "11c8390d1363c2ad27288a93b9e12f4d", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}}, {"rule": 2, "type": "equivalent", "target": "2e3f3ff9857fd9a01af97181e3c53926", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "11c8390d1363c2ad27288a93b9e12f4d", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "使用 POSIX 标准的 strsignal() 代替 BSD 风格的 sys_siglist[]", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}, "url": "/docs/compare/?release=11.9#11.9-5c30a5f3e596c441", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "0e1ef68c98289abd4464164b89ed8fc6", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "使用 POSIX 标准的 strsignal() 代替 BSD 风格的 sys_siglist[]", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}, "url": "/docs/compare/?release=10.14#10.14-5c30a5f3e596c441", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "2e3f3ff9857fd9a01af97181e3c53926", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "用 POSIX 标准的 strsignal() 取代 BSD 风格的 sys_siglist[]", "evidence": {"same_day": true, "patch_ids": ["8b4b174fbfc5c320414b8d1090768229"], "statement_hash": "35774db9837bbe4977831b19e301689547363e99eab364396688bb26d62c2727"}, "url": "/docs/compare/?release=9.5.23#9.5.23-bf16b9da3b7a579d", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-9ee9b115482b6daa", "cves": [], "html": "<p>支持用 Microsoft Visual Studio 2015 或更高版本构建我们的 NLS 代码（Juan José Santamaría Flecha、Davinder Singh、Amit Kapila）</p>", "text": "支持用 Microsoft Visual Studio 2015 或更高版本构建我们的 NLS 代码（Juan José Santamaría Flecha、Davinder Singh、Amit Kapila）", "title": "支持用 Microsoft Visual Studio 2015 或更高版本构建我们的 NLS 代码", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "91c9783ff803ed9451b6e288ef17f19609903d6015cf0c49458c0fb3b2647ae5", "section_path": ["变更"], "commit_groups": [["1fbfc3d8a", "33b772801", "650952aeb", "98171e59a", "a1466e194", "a16915545"]], "identity_text": "Support building our NLS code with Microsoft Visual Studio 2015 or later (Juan José Santamaría Flecha, Davinder Singh, Amit Kapila)", "commit_aliases": ["1fbfc3d8a", "33b772801", "650952aeb", "98171e59a", "a1466e194", "a16915545"], "source_commits": ["a1466e194"], "source_entry_id": "9.6.19/changes/026", "db_id": "814a7e63822d73a1c68beb16e8364c98", "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247", "relations": [{"rule": 2, "type": "equivalent", "target": "5e8328bd2c68165315f21ff3129b48bd", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}}, {"rule": 2, "type": "equivalent", "target": "7a6e7b9b3a637f86c82de6f4b558b6a7", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}}, {"rule": 2, "type": "equivalent", "target": "7fcdeb83f6c5f8f71c7139afaa23b33b", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}}, {"rule": 2, "type": "equivalent", "target": "e4c66e7ff3064c0cbe27c65be6d1acc9", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e8328bd2c68165315f21ff3129b48bd", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "支持使用 Microsoft Visual Studio 2015 及更新版本构建我们的 NLS 代码", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}, "url": "/docs/compare/?release=12.4#12.4-a0295a56e16600b4", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "e4c66e7ff3064c0cbe27c65be6d1acc9", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "支持使用 Microsoft Visual Studio 2015 及更新版本构建我们的 NLS 代码", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}, "url": "/docs/compare/?release=11.9#11.9-faefe54ad3081668", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "7a6e7b9b3a637f86c82de6f4b558b6a7", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "支持使用 Microsoft Visual Studio 2015 及更新版本构建我们的 NLS 代码", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}, "url": "/docs/compare/?release=10.14#10.14-faefe54ad3081668", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "7fcdeb83f6c5f8f71c7139afaa23b33b", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "支持用 Microsoft Visual Studio 2015 或更高版本构建我们的 NLS 代码", "evidence": {"same_day": true, "patch_ids": ["29c2e08d0a2c29f552c731dd9bcc98c8"], "statement_hash": "9c793d4eef81b10eff8ed2ec31b24a42fc2218018d4a48e08538ac6a6e313247"}, "url": "/docs/compare/?release=9.5.23#9.5.23-9ee9b115482b6daa", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}, {"id": "9.6.19-fc10bc0a2cbeb4a2", "cves": [], "html": "<p>避免源代码树之上若干层存在名为 <code>configure</code> 的文件时我们的 MSVC 安装脚本可能失败的问题（Arnold Müller）</p>\n<p>这可能干扰某些通过寻找 <code>configure</code> 来识别源代码树顶层的逻辑。</p>", "text": "避免源代码树之上若干层存在名为 configure 的文件时我们的 MSVC 安装脚本可能失败的问题（Arnold Müller） 这可能干扰某些通过寻找 configure 来识别源代码树顶层的逻辑。", "title": "避免源代码树之上若干层存在名为 configure 的文件时我们的 MSVC 安装脚本可能失败的问题", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.19/#id-1.11.6.10.5", "source_hash": "c946708268137e7b5d7a8201d4923263bb583291486391098e287829429cf6f0", "section_path": ["变更"], "commit_groups": [["089baec6f", "57dc672c2", "8de137017", "8dfc7d888", "bb24af50d", "d2a995990"]], "identity_text": "Avoid possible failure of our MSVC install script when there is a file named configure several levels above the source code tree (Arnold Müller) This could confuse some logic that looked for configure to identify the top level of the source tree.", "commit_aliases": ["089baec6f", "57dc672c2", "8de137017", "8dfc7d888", "bb24af50d", "d2a995990"], "source_commits": ["57dc672c2"], "source_entry_id": "9.6.19/changes/027", "db_id": "5a089c519a74010d8f68abcb082f9f80", "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c", "relations": [{"rule": 2, "type": "equivalent", "target": "49af0f329df4d0658c7f13de20eaea19", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}}, {"rule": 2, "type": "equivalent", "target": "7e1d74c3902963942f3cc35a944362c7", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}}, {"rule": 2, "type": "equivalent", "target": "9b06130ba16057cabf80b9788e09efdf", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}}, {"rule": 2, "type": "equivalent", "target": "f6d196b7059fdce8b38b8f34ab16fa29", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}}], "version": "9.6.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f6d196b7059fdce8b38b8f34ab16fa29", "kind": "equivalent", "version": "12.4", "label": "12.4", "title": "避免源代码树上方数级目录中存在名为 configure 的文件时，MSVC 安装脚本可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}, "url": "/docs/compare/?release=12.4#12.4-ec32180a01a307a3", "source_url": "/docs/release/12.4/#id-1.11.6.24.5"}, {"db_id": "9b06130ba16057cabf80b9788e09efdf", "kind": "equivalent", "version": "11.9", "label": "11.9", "title": "避免源代码树上方数级目录中存在名为 configure 的文件时，MSVC 安装脚本可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}, "url": "/docs/compare/?release=11.9#11.9-5602feb7d8813647", "source_url": "/docs/release/11.9/#id-1.11.6.18.5"}, {"db_id": "7e1d74c3902963942f3cc35a944362c7", "kind": "equivalent", "version": "10.14", "label": "10.14", "title": "避免源代码树上方数级目录中存在名为 configure 的文件时，MSVC 安装脚本可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}, "url": "/docs/compare/?release=10.14#10.14-5602feb7d8813647", "source_url": "/docs/release/10.14/#id-1.11.6.14.5"}, {"db_id": "49af0f329df4d0658c7f13de20eaea19", "kind": "equivalent", "version": "9.5.23", "label": "9.5.23", "title": "避免源代码树之上若干层存在名为 configure 的文件时我们的 MSVC 安装脚本可能失败的问题", "evidence": {"same_day": true, "patch_ids": ["33d02dc79563883aa8b39226b08f0af4"], "statement_hash": "180711604c7bdb67464d7f68349556b50b1819f8da9705e30bcaeb82dadd2f6c"}, "url": "/docs/compare/?release=9.5.23#9.5.23-fc10bc0a2cbeb4a2", "source_url": "/docs/release/9.5.23/#id-1.11.6.7.6"}]}]}, {"date": "2020-05-14", "build": "9.6.18", "major": "9.6", "minor": 18, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.18", "eol_date": "2021-11-11", "date_text": "2020-05-14", "supported": false, "manual_url": "/docs/9.6/release-9-6-18.html", "source_url": "/docs/release/9.6.18/", "entry_count": 38, "placeholder": false, "content_hash": "7d5b79fd627e49db36d7085c11b28825edfa725f0e13a66afdcea53a26e00a02", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 38, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.16 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-16.html\" title=\"E.9. 版本 9.6.16\">第 E.9 节</a>。</p>", "compatibility_count": 0, "label": "9.6.18", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2330, "support_days": -1784, "entries": [{"id": "9.6.18-78ac153ed45e974e", "cves": [], "html": "<p>保留被 <code>ALTER TABLE</code> 重写的索引的 <code>indisclustered</code> 设置（Amit Langote、Justin Pryzby）</p>\n<p>此前，<code>ALTER TABLE</code> 会丢失哪个索引用于过 <code>CLUSTER</code> 的记录。</p>", "text": "保留被 ALTER TABLE 重写的索引的 indisclustered 设置（Amit Langote、Justin Pryzby） 此前，ALTER TABLE 会丢失哪个索引用于过 CLUSTER 的记录。", "title": "保留被 ALTER TABLE 重写的索引的 indisclustered 设置", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "7642559d43ceb4ab95593d3871b37661f8e0221001061680a694f127c84274f1", "section_path": ["变更"], "commit_groups": [["3e62dd3a9", "3f77a6702", "41faafbd7", "61a161fe4", "a40caf5f8", "cef2b8d52"]], "identity_text": "Preserve the indisclustered setting of indexes rewritten by ALTER TABLE (Amit Langote, Justin Pryzby) Previously, ALTER TABLE lost track of which index had been used for CLUSTER.", "commit_aliases": ["3e62dd3a9", "3f77a6702", "41faafbd7", "61a161fe4", "a40caf5f8", "cef2b8d52"], "source_commits": ["61a161fe4"], "source_entry_id": "9.6.18/changes/001", "db_id": "9d3feb851533a7bd7f80b46a32b96b76", "patch_ids": ["a3d58f3f9a0ced8f81a46512e08d0142"], "statement_hash": "e73380b336aeae9f134a2fa1551a90fbac46f24486c0d1fb70a63a39782adaa4", "relations": [{"rule": 2, "type": "equivalent", "target": "52ecc0d4cc8abdd919ce40c9c2820454", "evidence": {"same_day": true, "patch_ids": ["a3d58f3f9a0ced8f81a46512e08d0142"], "statement_hash": "e73380b336aeae9f134a2fa1551a90fbac46f24486c0d1fb70a63a39782adaa4"}}, {"rule": 2, "type": "equivalent", "target": "620d5b1e2a35bdfa579cba009111e695", "evidence": {"same_day": true, "patch_ids": ["a3d58f3f9a0ced8f81a46512e08d0142"], "statement_hash": "e73380b336aeae9f134a2fa1551a90fbac46f24486c0d1fb70a63a39782adaa4"}}, {"rule": 2, "type": "equivalent", "target": "65a191e2b5bcc36adf6eefaa83040fa7", "evidence": {"same_day": true, "patch_ids": ["a3d58f3f9a0ced8f81a46512e08d0142"], "statement_hash": "e73380b336aeae9f134a2fa1551a90fbac46f24486c0d1fb70a63a39782adaa4"}}, {"rule": 2, "type": "equivalent", "target": "d107db295029a5527f462c1bff6c1a27", "evidence": {"same_day": true, "patch_ids": ["a3d58f3f9a0ced8f81a46512e08d0142"], "statement_hash": "e73380b336aeae9f134a2fa1551a90fbac46f24486c0d1fb70a63a39782adaa4"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "52ecc0d4cc8abdd919ce40c9c2820454", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "保留由 ALTER TABLE 重写的索引的 indisclustered 设置", "evidence": {"same_day": true, "patch_ids": ["a3d58f3f9a0ced8f81a46512e08d0142"], "statement_hash": "e73380b336aeae9f134a2fa1551a90fbac46f24486c0d1fb70a63a39782adaa4"}, "url": "/docs/compare/?release=12.3#12.3-4d459a22fa14784c", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "d107db295029a5527f462c1bff6c1a27", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "保留由 ALTER TABLE 重写的索引的 indisclustered 设置", "evidence": {"same_day": true, "patch_ids": ["a3d58f3f9a0ced8f81a46512e08d0142"], "statement_hash": "e73380b336aeae9f134a2fa1551a90fbac46f24486c0d1fb70a63a39782adaa4"}, "url": "/docs/compare/?release=11.8#11.8-3a0eef37db292531", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "620d5b1e2a35bdfa579cba009111e695", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "保留由 ALTER TABLE 重写的索引的 indisclustered 设置", "evidence": {"same_day": true, "patch_ids": ["a3d58f3f9a0ced8f81a46512e08d0142"], "statement_hash": "e73380b336aeae9f134a2fa1551a90fbac46f24486c0d1fb70a63a39782adaa4"}, "url": "/docs/compare/?release=10.13#10.13-3a0eef37db292531", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "65a191e2b5bcc36adf6eefaa83040fa7", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "保留被 ALTER TABLE 重写的索引的 indisclustered 设置", "evidence": {"same_day": true, "patch_ids": ["a3d58f3f9a0ced8f81a46512e08d0142"], "statement_hash": "e73380b336aeae9f134a2fa1551a90fbac46f24486c0d1fb70a63a39782adaa4"}, "url": "/docs/compare/?release=9.5.22#9.5.22-78ac153ed45e974e", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-9c4d55e6730370e2", "cves": [], "html": "<p>保留被 <code>ALTER TABLE</code> 重写的索引的副本身份属性（Quan Zongliang、Peter Eisentraut）</p>", "text": "保留被 ALTER TABLE 重写的索引的副本身份属性（Quan Zongliang、Peter Eisentraut）", "title": "保留被 ALTER TABLE 重写的索引的副本身份属性", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "b859cfdb47bd44b1d58936d66c59a2467c91c00e51d6dd536830b3407ce7b817", "section_path": ["变更"], "commit_groups": [["02530da73", "15cbbf81a", "1cc9c2412", "2f0dd9d93", "c15d35041", "c9ef507e8"]], "identity_text": "Preserve the replica identity properties of indexes rewritten by ALTER TABLE (Quan Zongliang, Peter Eisentraut)", "commit_aliases": ["02530da73", "15cbbf81a", "1cc9c2412", "2f0dd9d93", "c15d35041", "c9ef507e8"], "source_commits": ["2f0dd9d93"], "source_entry_id": "9.6.18/changes/002", "db_id": "97f8a7f5579d633d7c8874b8cb9efc79", "patch_ids": ["5f143403ac7ede3cb9b05827102dbcb6"], "statement_hash": "26c3931f188a2f7417a8997ea1bf534b497c5060c4316ab69ac7e12c8700e8f0", "relations": [{"rule": 2, "type": "equivalent", "target": "7524e5da19e7e21429f369e719cc627b", "evidence": {"same_day": true, "patch_ids": ["5f143403ac7ede3cb9b05827102dbcb6"], "statement_hash": "26c3931f188a2f7417a8997ea1bf534b497c5060c4316ab69ac7e12c8700e8f0"}}, {"rule": 2, "type": "equivalent", "target": "7c7f78d697ceda39bbb2282b08683ed2", "evidence": {"same_day": true, "patch_ids": ["5f143403ac7ede3cb9b05827102dbcb6"], "statement_hash": "26c3931f188a2f7417a8997ea1bf534b497c5060c4316ab69ac7e12c8700e8f0"}}, {"rule": 2, "type": "equivalent", "target": "9189c4123c00f9dbcd0c24c57151433f", "evidence": {"same_day": true, "patch_ids": ["5f143403ac7ede3cb9b05827102dbcb6"], "statement_hash": "26c3931f188a2f7417a8997ea1bf534b497c5060c4316ab69ac7e12c8700e8f0"}}, {"rule": 2, "type": "equivalent", "target": "984926ec824bea70185d470ecb69ee2c", "evidence": {"same_day": true, "patch_ids": ["5f143403ac7ede3cb9b05827102dbcb6"], "statement_hash": "26c3931f188a2f7417a8997ea1bf534b497c5060c4316ab69ac7e12c8700e8f0"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7c7f78d697ceda39bbb2282b08683ed2", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "保留由 ALTER TABLE 重写的索引的复制标识属性", "evidence": {"same_day": true, "patch_ids": ["5f143403ac7ede3cb9b05827102dbcb6"], "statement_hash": "26c3931f188a2f7417a8997ea1bf534b497c5060c4316ab69ac7e12c8700e8f0"}, "url": "/docs/compare/?release=12.3#12.3-8c748217e5dc8031", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "7524e5da19e7e21429f369e719cc627b", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "保留由 ALTER TABLE 重写的索引的复制标识属性", "evidence": {"same_day": true, "patch_ids": ["5f143403ac7ede3cb9b05827102dbcb6"], "statement_hash": "26c3931f188a2f7417a8997ea1bf534b497c5060c4316ab69ac7e12c8700e8f0"}, "url": "/docs/compare/?release=11.8#11.8-dc3633495c3ae37e", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "984926ec824bea70185d470ecb69ee2c", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "保留由 ALTER TABLE 重写的索引的复制标识属性", "evidence": {"same_day": true, "patch_ids": ["5f143403ac7ede3cb9b05827102dbcb6"], "statement_hash": "26c3931f188a2f7417a8997ea1bf534b497c5060c4316ab69ac7e12c8700e8f0"}, "url": "/docs/compare/?release=10.13#10.13-dc3633495c3ae37e", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "9189c4123c00f9dbcd0c24c57151433f", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "保留被 ALTER TABLE 重写的索引的副本身份属性", "evidence": {"same_day": true, "patch_ids": ["5f143403ac7ede3cb9b05827102dbcb6"], "statement_hash": "26c3931f188a2f7417a8997ea1bf534b497c5060c4316ab69ac7e12c8700e8f0"}, "url": "/docs/compare/?release=9.5.22#9.5.22-9c4d55e6730370e2", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-a169fd265e1fb8da", "cves": [], "html": "<p>在 <code>DROP OWNED BY</code> 期间更早地锁定对象（Álvaro Herrera）</p>\n<p>这避免了另一会话正在删除部分相同对象的竞态情况下的失败。</p>", "text": "在 DROP OWNED BY 期间更早地锁定对象（Álvaro Herrera） 这避免了另一会话正在删除部分相同对象的竞态情况下的失败。", "title": "在 DROP OWNED BY 期间更早地锁定对象", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "b4f96bd66c75c73fd1ad59e03ab8ca7bec4a6adc7afbb28f7db6be9f5536fd01", "section_path": ["变更"], "commit_groups": [["2bf56f50e", "2eea49471", "4d21263ff", "59273a7ce", "5be594caf", "91d97462c"]], "identity_text": "Lock objects sooner during DROP OWNED BY (Álvaro Herrera) This avoids failures in race-condition cases where another session is deleting some of the same objects.", "commit_aliases": ["2bf56f50e", "2eea49471", "4d21263ff", "59273a7ce", "5be594caf", "91d97462c"], "source_commits": ["2bf56f50e"], "source_entry_id": "9.6.18/changes/003", "db_id": "b880955b0903f08de5edd387587989cf", "patch_ids": ["eee91683461656e730a1b3106c0ccf9e"], "statement_hash": "5ed4dd630b92c11eae811699b77ba32efff981ca47302abf11390ec5c837420d", "relations": [{"rule": 2, "type": "equivalent", "target": "4daaa443285739f9d53ae1c69016a44d", "evidence": {"same_day": true, "patch_ids": ["eee91683461656e730a1b3106c0ccf9e"], "statement_hash": "5ed4dd630b92c11eae811699b77ba32efff981ca47302abf11390ec5c837420d"}}, {"rule": 2, "type": "equivalent", "target": "772e2a40689c1ca396d33ecc55e1b9c3", "evidence": {"same_day": true, "patch_ids": ["eee91683461656e730a1b3106c0ccf9e"], "statement_hash": "5ed4dd630b92c11eae811699b77ba32efff981ca47302abf11390ec5c837420d"}}, {"rule": 2, "type": "equivalent", "target": "90546408dd43a05d233aea11bd7febb1", "evidence": {"same_day": true, "patch_ids": ["eee91683461656e730a1b3106c0ccf9e"], "statement_hash": "5ed4dd630b92c11eae811699b77ba32efff981ca47302abf11390ec5c837420d"}}, {"rule": 2, "type": "equivalent", "target": "caabcd93149b6e748a51634556714b66", "evidence": {"same_day": true, "patch_ids": ["eee91683461656e730a1b3106c0ccf9e"], "statement_hash": "5ed4dd630b92c11eae811699b77ba32efff981ca47302abf11390ec5c837420d"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "772e2a40689c1ca396d33ecc55e1b9c3", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "在 DROP OWNED BY 期间更早地锁定对象", "evidence": {"same_day": true, "patch_ids": ["eee91683461656e730a1b3106c0ccf9e"], "statement_hash": "5ed4dd630b92c11eae811699b77ba32efff981ca47302abf11390ec5c837420d"}, "url": "/docs/compare/?release=12.3#12.3-7524755657239ae6", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "caabcd93149b6e748a51634556714b66", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "在 DROP OWNED BY 期间更早地锁定对象", "evidence": {"same_day": true, "patch_ids": ["eee91683461656e730a1b3106c0ccf9e"], "statement_hash": "5ed4dd630b92c11eae811699b77ba32efff981ca47302abf11390ec5c837420d"}, "url": "/docs/compare/?release=11.8#11.8-a169fd265e1fb8da", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "90546408dd43a05d233aea11bd7febb1", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "在 DROP OWNED BY 期间更早地锁定对象", "evidence": {"same_day": true, "patch_ids": ["eee91683461656e730a1b3106c0ccf9e"], "statement_hash": "5ed4dd630b92c11eae811699b77ba32efff981ca47302abf11390ec5c837420d"}, "url": "/docs/compare/?release=10.13#10.13-a169fd265e1fb8da", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "4daaa443285739f9d53ae1c69016a44d", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "在 DROP OWNED BY 期间更早地锁定对象", "evidence": {"same_day": true, "patch_ids": ["eee91683461656e730a1b3106c0ccf9e"], "statement_hash": "5ed4dd630b92c11eae811699b77ba32efff981ca47302abf11390ec5c837420d"}, "url": "/docs/compare/?release=9.5.22#9.5.22-a169fd265e1fb8da", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-5faff5e0ce585418", "cves": [], "html": "<p>修复 <code>CREATE ROLE ... IN ROLE</code> 的错误情况处理（Andrew Gierth）</p>\n<p>某些错误情况会被报告为 <span>“<span>unexpected node type</span>”</span> 之类，而不是预期的消息。</p>", "text": "修复 CREATE ROLE ... IN ROLE 的错误情况处理（Andrew Gierth） 某些错误情况会被报告为 “unexpected node type” 之类，而不是预期的消息。", "title": "修复 CREATE ROLE ... IN ROLE 的错误情况处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "b746e99dcedcf958f3beec12126cc2a8c91d16f1dc326d7056dafdf951aceb52", "section_path": ["变更"], "commit_groups": [["0f4970d1a", "287f6d2d9", "86b7a4e6f", "b3824ca22", "d0360632d", "d9a4cce29"]], "identity_text": "Fix error-case processing for CREATE ROLE ... IN ROLE (Andrew Gierth) Some error cases would be reported as unexpected node type or the like, instead of the intended message.", "commit_aliases": ["0f4970d1a", "287f6d2d9", "86b7a4e6f", "b3824ca22", "d0360632d", "d9a4cce29"], "source_commits": ["86b7a4e6f"], "source_entry_id": "9.6.18/changes/004", "db_id": "f32ccadcd1b96be90e58dd86ae477aa3", "patch_ids": ["fed980cc171da5b77defa2af630b4fe6"], "statement_hash": "b5a81806262ba790d024d3a37a399706e4053e6d7e1874c7e49d23d238c8159e", "relations": [{"rule": 2, "type": "equivalent", "target": "ac10184120a6201dc5a23020315c9d20", "evidence": {"same_day": true, "patch_ids": ["fed980cc171da5b77defa2af630b4fe6"], "statement_hash": "b5a81806262ba790d024d3a37a399706e4053e6d7e1874c7e49d23d238c8159e"}}, {"rule": 2, "type": "equivalent", "target": "d71b6196cb3f83fef5fcb5c4f6e84849", "evidence": {"same_day": true, "patch_ids": ["fed980cc171da5b77defa2af630b4fe6"], "statement_hash": "b5a81806262ba790d024d3a37a399706e4053e6d7e1874c7e49d23d238c8159e"}}, {"rule": 2, "type": "equivalent", "target": "f64514781f36efd6407c638a79349547", "evidence": {"same_day": true, "patch_ids": ["fed980cc171da5b77defa2af630b4fe6"], "statement_hash": "b5a81806262ba790d024d3a37a399706e4053e6d7e1874c7e49d23d238c8159e"}}, {"rule": 2, "type": "equivalent", "target": "ff88690f590c6b2db573e5b359beebb7", "evidence": {"same_day": true, "patch_ids": ["fed980cc171da5b77defa2af630b4fe6"], "statement_hash": "b5a81806262ba790d024d3a37a399706e4053e6d7e1874c7e49d23d238c8159e"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f64514781f36efd6407c638a79349547", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复 CREATE ROLE ... IN ROLE 的错误情况处理", "evidence": {"same_day": true, "patch_ids": ["fed980cc171da5b77defa2af630b4fe6"], "statement_hash": "b5a81806262ba790d024d3a37a399706e4053e6d7e1874c7e49d23d238c8159e"}, "url": "/docs/compare/?release=12.3#12.3-1a0519cbce8717ae", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "ac10184120a6201dc5a23020315c9d20", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复 CREATE ROLE ... IN ROLE 的错误情况处理", "evidence": {"same_day": true, "patch_ids": ["fed980cc171da5b77defa2af630b4fe6"], "statement_hash": "b5a81806262ba790d024d3a37a399706e4053e6d7e1874c7e49d23d238c8159e"}, "url": "/docs/compare/?release=11.8#11.8-5faff5e0ce585418", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "d71b6196cb3f83fef5fcb5c4f6e84849", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复 CREATE ROLE ... IN ROLE 的错误情况处理", "evidence": {"same_day": true, "patch_ids": ["fed980cc171da5b77defa2af630b4fe6"], "statement_hash": "b5a81806262ba790d024d3a37a399706e4053e6d7e1874c7e49d23d238c8159e"}, "url": "/docs/compare/?release=10.13#10.13-5faff5e0ce585418", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "ff88690f590c6b2db573e5b359beebb7", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "修复 CREATE ROLE ... IN ROLE 的错误情况处理", "evidence": {"same_day": true, "patch_ids": ["fed980cc171da5b77defa2af630b4fe6"], "statement_hash": "b5a81806262ba790d024d3a37a399706e4053e6d7e1874c7e49d23d238c8159e"}, "url": "/docs/compare/?release=9.5.22#9.5.22-5faff5e0ce585418", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-aaae68746d616ca4", "cves": [], "html": "<p>修复全文搜索正确处理短语搜索之上的 NOT（Tom Lane）</p>\n<p>诸如 <code>!(foo&lt;-&gt;bar)</code> 之类的查询在作为 GiST 或 GIN 索引搜索实现时找不到匹配的行。</p>", "text": "修复全文搜索正确处理短语搜索之上的 NOT（Tom Lane） 诸如 !(foo<->bar) 之类的查询在作为 GiST 或 GIN 索引搜索实现时找不到匹配的行。", "title": "修复全文搜索正确处理短语搜索之上的 NOT", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "385acf1f82f0be7c8569064cb6c2a3986bc5e10f2f47dbaaaadc02f3811ec642", "section_path": ["变更"], "commit_groups": [["072a86327", "18f7e856c", "22dcb6c20", "98a4d6950", "e81e5741a"]], "identity_text": "Fix full text search to handle NOT above a phrase search correctly (Tom Lane) Queries such as !(foo<->bar) failed to find matching rows when implemented as a GiST or GIN index search.", "commit_aliases": ["072a86327", "18f7e856c", "22dcb6c20", "98a4d6950", "e81e5741a"], "source_commits": ["22dcb6c20"], "source_entry_id": "9.6.18/changes/005", "db_id": "1443887885f5eb8d02444e92c10622a7", "patch_ids": ["4c065a93e83d7e8ddb430e3cabeb6777"], "statement_hash": "0f9befcbc11a5c7d98250bbdebecfdd1a0ed4b0e19492da8193013d6552c9f31", "relations": [{"rule": 2, "type": "equivalent", "target": "1a294ef8778e35fb300eb8013ef32728", "evidence": {"same_day": true, "patch_ids": ["4c065a93e83d7e8ddb430e3cabeb6777"], "statement_hash": "0f9befcbc11a5c7d98250bbdebecfdd1a0ed4b0e19492da8193013d6552c9f31"}}, {"rule": 2, "type": "equivalent", "target": "1a9756f3e2d5f6d871733a5cf6d8ea3c", "evidence": {"same_day": true, "patch_ids": ["4c065a93e83d7e8ddb430e3cabeb6777"], "statement_hash": "0f9befcbc11a5c7d98250bbdebecfdd1a0ed4b0e19492da8193013d6552c9f31"}}, {"rule": 2, "type": "equivalent", "target": "5c572a86618501d36bccafaf7df0bec9", "evidence": {"same_day": true, "patch_ids": ["4c065a93e83d7e8ddb430e3cabeb6777"], "statement_hash": "0f9befcbc11a5c7d98250bbdebecfdd1a0ed4b0e19492da8193013d6552c9f31"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1a294ef8778e35fb300eb8013ef32728", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复全文检索，使其正确处理短语搜索之上的 NOT", "evidence": {"same_day": true, "patch_ids": ["4c065a93e83d7e8ddb430e3cabeb6777"], "statement_hash": "0f9befcbc11a5c7d98250bbdebecfdd1a0ed4b0e19492da8193013d6552c9f31"}, "url": "/docs/compare/?release=12.3#12.3-0bc4f4609693408e", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "1a9756f3e2d5f6d871733a5cf6d8ea3c", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复全文检索，使其正确处理短语搜索之上的 NOT", "evidence": {"same_day": true, "patch_ids": ["4c065a93e83d7e8ddb430e3cabeb6777"], "statement_hash": "0f9befcbc11a5c7d98250bbdebecfdd1a0ed4b0e19492da8193013d6552c9f31"}, "url": "/docs/compare/?release=11.8#11.8-f9293e59b50f27e7", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "5c572a86618501d36bccafaf7df0bec9", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复全文检索，使其正确处理短语搜索之上的 NOT", "evidence": {"same_day": true, "patch_ids": ["4c065a93e83d7e8ddb430e3cabeb6777"], "statement_hash": "0f9befcbc11a5c7d98250bbdebecfdd1a0ed4b0e19492da8193013d6552c9f31"}, "url": "/docs/compare/?release=10.13#10.13-f9293e59b50f27e7", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}]}, {"id": "9.6.18-1cde8db21188f106", "cves": [], "html": "<p>修复短语搜索包含同时带前缀匹配和权重限制的项时的全文搜索（Tom Lane）</p>", "text": "修复短语搜索包含同时带前缀匹配和权重限制的项时的全文搜索（Tom Lane）", "title": "修复短语搜索包含同时带前缀匹配和权重限制的项时的全文搜索", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "2f3ea8dd09052869a59b1aaa0da5c11b21a4bee257c10a8aa8d935997564cf54", "section_path": ["变更"], "commit_groups": [["26cf16a93", "5db48808c", "7c9d9aa5c", "db89f0e3a", "e1d70ba43"]], "identity_text": "Fix full text search for cases where a phrase search includes an item with both prefix matching and a weight restriction (Tom Lane)", "commit_aliases": ["26cf16a93", "5db48808c", "7c9d9aa5c", "db89f0e3a", "e1d70ba43"], "source_commits": ["7c9d9aa5c"], "source_entry_id": "9.6.18/changes/006", "db_id": "36ae0e640041409f9bc0e542585162d9", "patch_ids": ["c4a10f963e4d201d72e139ffd9452a8b"], "statement_hash": "cebc232f649653b5c901b796d97b3dbf3edb719a87ddbde51ad78af32a02dc5b", "relations": [{"rule": 2, "type": "equivalent", "target": "3b47250a54454dd03e951b3540ef1996", "evidence": {"same_day": true, "patch_ids": ["c4a10f963e4d201d72e139ffd9452a8b"], "statement_hash": "cebc232f649653b5c901b796d97b3dbf3edb719a87ddbde51ad78af32a02dc5b"}}, {"rule": 2, "type": "equivalent", "target": "7f51f7943f89609513a3c5e717ed1544", "evidence": {"same_day": true, "patch_ids": ["c4a10f963e4d201d72e139ffd9452a8b"], "statement_hash": "cebc232f649653b5c901b796d97b3dbf3edb719a87ddbde51ad78af32a02dc5b"}}, {"rule": 2, "type": "equivalent", "target": "a9860c60fe2c08be1ec64c68bc3cc4e1", "evidence": {"same_day": true, "patch_ids": ["c4a10f963e4d201d72e139ffd9452a8b"], "statement_hash": "cebc232f649653b5c901b796d97b3dbf3edb719a87ddbde51ad78af32a02dc5b"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3b47250a54454dd03e951b3540ef1996", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复短语搜索包含同时具有前缀匹配和权重限制的项时的全文检索", "evidence": {"same_day": true, "patch_ids": ["c4a10f963e4d201d72e139ffd9452a8b"], "statement_hash": "cebc232f649653b5c901b796d97b3dbf3edb719a87ddbde51ad78af32a02dc5b"}, "url": "/docs/compare/?release=12.3#12.3-8700ecf62b37847e", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "a9860c60fe2c08be1ec64c68bc3cc4e1", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复短语搜索包含同时具有前缀匹配和权重限制的项时的全文检索", "evidence": {"same_day": true, "patch_ids": ["c4a10f963e4d201d72e139ffd9452a8b"], "statement_hash": "cebc232f649653b5c901b796d97b3dbf3edb719a87ddbde51ad78af32a02dc5b"}, "url": "/docs/compare/?release=11.8#11.8-4334394cd73d4e28", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "7f51f7943f89609513a3c5e717ed1544", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复短语搜索包含同时具有前缀匹配和权重限制的项时的全文检索", "evidence": {"same_day": true, "patch_ids": ["c4a10f963e4d201d72e139ffd9452a8b"], "statement_hash": "cebc232f649653b5c901b796d97b3dbf3edb719a87ddbde51ad78af32a02dc5b"}, "url": "/docs/compare/?release=10.13#10.13-4334394cd73d4e28", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}]}, {"id": "9.6.18-e9aa75742234c75d", "cves": [], "html": "<p>修复 <code>ts_headline()</code> 在处理短语查询时做出更好的标题选择（Tom Lane）</p>", "text": "修复 ts_headline() 在处理短语查询时做出更好的标题选择（Tom Lane）", "title": "修复 ts_headline() 在处理短语查询时做出更好的标题选择", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "379d0b6fa7df7e948f236da5376af5ace38b342c4ef8fc861d614d778c639bcd", "section_path": ["变更"], "commit_groups": [["07453e9e3", "2e0e409e3", "9be664d71", "c2599b93d", "d9a3fe4c5"], ["1306edeae", "638519156", "afab39986", "b10f8bb9f", "ff081d6bb"], ["5f7247b3b", "841378947", "91be1d190", "c81de3a82", "c9b0c678d"]], "identity_text": "Fix ts_headline() to make better headline selections when working with phrase queries (Tom Lane)", "commit_aliases": ["07453e9e3", "1306edeae", "2e0e409e3", "5f7247b3b", "638519156", "841378947", "91be1d190", "9be664d71", "afab39986", "b10f8bb9f", "c2599b93d", "c81de3a82", "c9b0c678d", "d9a3fe4c5", "ff081d6bb"], "source_commits": ["638519156", "c2599b93d", "c81de3a82"], "source_entry_id": "9.6.18/changes/007", "db_id": "8468f175f88b157656c21ac51f42be55", "patch_ids": ["bfa46abbba45286e1f67db60b563bdb1", "fa8b0153f8be6d206f0a0f4592c0b8c2", "fe22db681fdd3ecf9e668c6e77832a4d"], "statement_hash": "f33179b5d06b6ea40df304e1a0bf3f5c33edd172261d9265d307c8b9cc03227a", "relations": [{"rule": 2, "type": "equivalent", "target": "09df5984511f6a9263a549076f9f6536", "evidence": {"same_day": true, "patch_ids": ["bfa46abbba45286e1f67db60b563bdb1", "fa8b0153f8be6d206f0a0f4592c0b8c2", "fe22db681fdd3ecf9e668c6e77832a4d"], "statement_hash": "f33179b5d06b6ea40df304e1a0bf3f5c33edd172261d9265d307c8b9cc03227a"}}, {"rule": 2, "type": "equivalent", "target": "46a917c585065298c22091b1f0d58c30", "evidence": {"same_day": true, "patch_ids": ["bfa46abbba45286e1f67db60b563bdb1", "fa8b0153f8be6d206f0a0f4592c0b8c2", "fe22db681fdd3ecf9e668c6e77832a4d"], "statement_hash": "f33179b5d06b6ea40df304e1a0bf3f5c33edd172261d9265d307c8b9cc03227a"}}, {"rule": 2, "type": "equivalent", "target": "66909ef8a0f6018c8ade0044be29d0a0", "evidence": {"same_day": true, "patch_ids": ["bfa46abbba45286e1f67db60b563bdb1", "fa8b0153f8be6d206f0a0f4592c0b8c2", "fe22db681fdd3ecf9e668c6e77832a4d"], "statement_hash": "f33179b5d06b6ea40df304e1a0bf3f5c33edd172261d9265d307c8b9cc03227a"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "09df5984511f6a9263a549076f9f6536", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复 ts_headline()，使其处理短语查询时更恰当地选择摘要片段", "evidence": {"same_day": true, "patch_ids": ["bfa46abbba45286e1f67db60b563bdb1", "fa8b0153f8be6d206f0a0f4592c0b8c2", "fe22db681fdd3ecf9e668c6e77832a4d"], "statement_hash": "f33179b5d06b6ea40df304e1a0bf3f5c33edd172261d9265d307c8b9cc03227a"}, "url": "/docs/compare/?release=12.3#12.3-75ae71da6092eb23", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "46a917c585065298c22091b1f0d58c30", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复 ts_headline()，使其处理短语查询时更恰当地选择摘要片段", "evidence": {"same_day": true, "patch_ids": ["bfa46abbba45286e1f67db60b563bdb1", "fa8b0153f8be6d206f0a0f4592c0b8c2", "fe22db681fdd3ecf9e668c6e77832a4d"], "statement_hash": "f33179b5d06b6ea40df304e1a0bf3f5c33edd172261d9265d307c8b9cc03227a"}, "url": "/docs/compare/?release=11.8#11.8-a113d40008f4681b", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "66909ef8a0f6018c8ade0044be29d0a0", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复 ts_headline()，使其处理短语查询时更恰当地选择摘要片段", "evidence": {"same_day": true, "patch_ids": ["bfa46abbba45286e1f67db60b563bdb1", "fa8b0153f8be6d206f0a0f4592c0b8c2", "fe22db681fdd3ecf9e668c6e77832a4d"], "statement_hash": "f33179b5d06b6ea40df304e1a0bf3f5c33edd172261d9265d307c8b9cc03227a"}, "url": "/docs/compare/?release=10.13#10.13-a113d40008f4681b", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}]}, {"id": "9.6.18-46e30f1f6da58564", "cves": [], "html": "<p>修复 <code>gin_fuzzy_search_limit</code> 处理中的 bug（Adé Heyward、Tom Lane）</p>\n<p><code>gin_fuzzy_search_limit</code> 的值较小时，可能因无意中多次重新扫描同一索引页而导致意外缓慢。另一条代码路径则完全没有应用预期的过滤，可能返回过多的值。</p>", "text": "修复 gin_fuzzy_search_limit 处理中的 bug（Adé Heyward、Tom Lane） gin_fuzzy_search_limit 的值较小时，可能因无意中多次重新扫描同一索引页而导致意外缓慢。另一条代码路径则完全没有应用预期的过滤，可能返回过多的值。", "title": "修复 gin_fuzzy_search_limit 处理中的 bug", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "c9211a831f52431921d0b9898605156ac3882fb4e264bbcda620e350d6096600", "section_path": ["变更"], "commit_groups": [["05f4a8818", "0912fb39c", "44c763fe9", "49b0d13d7", "8150f7813", "e41955faf"], ["e82b6e00a"]], "identity_text": "Fix bugs in gin_fuzzy_search_limit processing (Adé Heyward, Tom Lane) A small value of gin_fuzzy_search_limit could result in unexpected slowness due to unintentionally rescanning the same index page many times. Another code path failed to apply the intended filtering at all, possibly returning too many values.", "commit_aliases": ["05f4a8818", "0912fb39c", "44c763fe9", "49b0d13d7", "8150f7813", "e41955faf", "e82b6e00a"], "source_commits": ["49b0d13d7", "e82b6e00a"], "source_entry_id": "9.6.18/changes/008", "db_id": "93dbe527a90d99e13678426a914b3416", "patch_ids": ["b8bb0d81c60af19216ffa864a7b577c7", "de9c0320cb3de44bbd93dc8f31f6559f"], "statement_hash": "da375522d3043852049eb4ae8b368d8336f5be207db74838c2d59b3fd68c4f6e", "relations": [{"rule": 2, "type": "equivalent", "target": "09584b0af0680ba4e6050bf38472cff4", "evidence": {"same_day": true, "patch_ids": ["b8bb0d81c60af19216ffa864a7b577c7", "de9c0320cb3de44bbd93dc8f31f6559f"], "statement_hash": "da375522d3043852049eb4ae8b368d8336f5be207db74838c2d59b3fd68c4f6e"}}, {"rule": 2, "type": "equivalent", "target": "1e5f67b8aae46bd27e453f940f6b9eb0", "evidence": {"same_day": true, "patch_ids": ["b8bb0d81c60af19216ffa864a7b577c7", "de9c0320cb3de44bbd93dc8f31f6559f"], "statement_hash": "da375522d3043852049eb4ae8b368d8336f5be207db74838c2d59b3fd68c4f6e"}}, {"rule": 2, "type": "equivalent", "target": "f6f36ce7d2957806f7d55a306c174856", "evidence": {"same_day": true, "patch_ids": ["b8bb0d81c60af19216ffa864a7b577c7", "de9c0320cb3de44bbd93dc8f31f6559f"], "statement_hash": "da375522d3043852049eb4ae8b368d8336f5be207db74838c2d59b3fd68c4f6e"}}, {"rule": 2, "type": "equivalent", "target": "fecd827b2710a5609eedf3dcb1d03184", "evidence": {"same_day": true, "patch_ids": ["b8bb0d81c60af19216ffa864a7b577c7", "de9c0320cb3de44bbd93dc8f31f6559f"], "statement_hash": "da375522d3043852049eb4ae8b368d8336f5be207db74838c2d59b3fd68c4f6e"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "09584b0af0680ba4e6050bf38472cff4", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复 gin_fuzzy_search_limit 处理中的缺陷", "evidence": {"same_day": true, "patch_ids": ["b8bb0d81c60af19216ffa864a7b577c7", "de9c0320cb3de44bbd93dc8f31f6559f"], "statement_hash": "da375522d3043852049eb4ae8b368d8336f5be207db74838c2d59b3fd68c4f6e"}, "url": "/docs/compare/?release=12.3#12.3-193854715e7e97a9", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "1e5f67b8aae46bd27e453f940f6b9eb0", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复 gin_fuzzy_search_limit 处理中的缺陷", "evidence": {"same_day": true, "patch_ids": ["b8bb0d81c60af19216ffa864a7b577c7", "de9c0320cb3de44bbd93dc8f31f6559f"], "statement_hash": "da375522d3043852049eb4ae8b368d8336f5be207db74838c2d59b3fd68c4f6e"}, "url": "/docs/compare/?release=11.8#11.8-5259498d78a24be6", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "fecd827b2710a5609eedf3dcb1d03184", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复 gin_fuzzy_search_limit 处理中的缺陷", "evidence": {"same_day": true, "patch_ids": ["b8bb0d81c60af19216ffa864a7b577c7", "de9c0320cb3de44bbd93dc8f31f6559f"], "statement_hash": "da375522d3043852049eb4ae8b368d8336f5be207db74838c2d59b3fd68c4f6e"}, "url": "/docs/compare/?release=10.13#10.13-5259498d78a24be6", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "f6f36ce7d2957806f7d55a306c174856", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "修复 gin_fuzzy_search_limit 处理中的 bug", "evidence": {"same_day": true, "patch_ids": ["b8bb0d81c60af19216ffa864a7b577c7", "de9c0320cb3de44bbd93dc8f31f6559f"], "statement_hash": "da375522d3043852049eb4ae8b368d8336f5be207db74838c2d59b3fd68c4f6e"}, "url": "/docs/compare/?release=9.5.22#9.5.22-46e30f1f6da58564", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-cdc70eed27abebe7", "cves": [], "html": "<p>允许 <code>circle</code> 类型的输入接受文档所述的 <span>“<span><code>(<em><code>x</code></em>,<em><code>y</code></em>),<em><code>r</code></em></code></span>”</span> 格式（David Zhang）</p>", "text": "允许 circle 类型的输入接受文档所述的 “(x,y),r” 格式（David Zhang）", "title": "允许 circle 类型的输入接受文档所述的 “(x,y),r” 格式", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "ffe165dbd6c3b5d3c760e9faeaab0a41d693ded1bde8d67ff6d34d88e63453d1", "section_path": ["变更"], "commit_groups": [["049e9f48e", "35d1eefb2", "41a194f49", "4c7a311a2", "5fae66410", "ebd194ac5"]], "identity_text": "Allow input of type circle to accept the format (x,y),r as the documentation says it does (David Zhang)", "commit_aliases": ["049e9f48e", "35d1eefb2", "41a194f49", "4c7a311a2", "5fae66410", "ebd194ac5"], "source_commits": ["049e9f48e"], "source_entry_id": "9.6.18/changes/009", "db_id": "3f2df768da8f3bf407764cff619d1fc3", "patch_ids": ["d23a6a1644d907e31f815425f7cae628"], "statement_hash": "4019857a7b00e200088e0baaf99b75a9dea6cc10e87cc83f270119e8da52da94", "relations": [{"rule": 2, "type": "equivalent", "target": "02a4159dc5fe88a2758c2487d288fda8", "evidence": {"same_day": true, "patch_ids": ["d23a6a1644d907e31f815425f7cae628"], "statement_hash": "4019857a7b00e200088e0baaf99b75a9dea6cc10e87cc83f270119e8da52da94"}}, {"rule": 2, "type": "equivalent", "target": "49b648b768d3a6bc8863806258218bd0", "evidence": {"same_day": true, "patch_ids": ["d23a6a1644d907e31f815425f7cae628"], "statement_hash": "4019857a7b00e200088e0baaf99b75a9dea6cc10e87cc83f270119e8da52da94"}}, {"rule": 2, "type": "equivalent", "target": "f325785ed83a0c11f112cc710c25838e", "evidence": {"same_day": true, "patch_ids": ["d23a6a1644d907e31f815425f7cae628"], "statement_hash": "4019857a7b00e200088e0baaf99b75a9dea6cc10e87cc83f270119e8da52da94"}}, {"rule": 2, "type": "equivalent", "target": "fa76a6a1501c7fbabbcb6ebe705a09b1", "evidence": {"same_day": true, "patch_ids": ["d23a6a1644d907e31f815425f7cae628"], "statement_hash": "4019857a7b00e200088e0baaf99b75a9dea6cc10e87cc83f270119e8da52da94"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa76a6a1501c7fbabbcb6ebe705a09b1", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "允许 circle 类型的输入按文档所述接受 “(x,y),r” 格式", "evidence": {"same_day": true, "patch_ids": ["d23a6a1644d907e31f815425f7cae628"], "statement_hash": "4019857a7b00e200088e0baaf99b75a9dea6cc10e87cc83f270119e8da52da94"}, "url": "/docs/compare/?release=12.3#12.3-d7d01c1a0f6d276b", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "f325785ed83a0c11f112cc710c25838e", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "允许 circle 类型的输入按文档所述接受 “(x,y),r” 格式", "evidence": {"same_day": true, "patch_ids": ["d23a6a1644d907e31f815425f7cae628"], "statement_hash": "4019857a7b00e200088e0baaf99b75a9dea6cc10e87cc83f270119e8da52da94"}, "url": "/docs/compare/?release=11.8#11.8-7bab0555f16380bd", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "49b648b768d3a6bc8863806258218bd0", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "允许 circle 类型的输入按文档所述接受 “(x,y),r” 格式", "evidence": {"same_day": true, "patch_ids": ["d23a6a1644d907e31f815425f7cae628"], "statement_hash": "4019857a7b00e200088e0baaf99b75a9dea6cc10e87cc83f270119e8da52da94"}, "url": "/docs/compare/?release=10.13#10.13-7bab0555f16380bd", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "02a4159dc5fe88a2758c2487d288fda8", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "允许 circle 类型的输入接受文档所述的 “(x,y),r” 格式", "evidence": {"same_day": true, "patch_ids": ["d23a6a1644d907e31f815425f7cae628"], "statement_hash": "4019857a7b00e200088e0baaf99b75a9dea6cc10e87cc83f270119e8da52da94"}, "url": "/docs/compare/?release=9.5.22#9.5.22-cdc70eed27abebe7", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-030f702a88b76b01", "cves": [], "html": "<p>让 <code>get_bit()</code> 和 <code>set_bit()</code> 函数应对长于 256MB 的 <code>bytea</code> 字符串（Movead Li）</p>\n<p>由于位号参数只有 <code>int4</code>，不可能用这些函数访问长 <code>bytea</code> 前 256MB 之外的位。我们将在 v13 中把参数放宽为 <code>int8</code>，但在此之前，允许这些函数处理长 <code>bytea</code> 的初始子串。</p>", "text": "让 get_bit() 和 set_bit() 函数应对长于 256MB 的 bytea 字符串（Movead Li） 由于位号参数只有 int4，不可能用这些函数访问长 bytea 前 256MB 之外的位。我们将在 v13 中把参数放宽为 int8，但在此之前，允许这些函数处理长 bytea 的初始子串。", "title": "让 get_bit() 和 set_bit() 函数应对长于 256MB 的 bytea 字符串", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "89fdbda6ce157d75e71ed8eec44cfadd46f9ec9d2ab41b9db157bb71faf5714a", "section_path": ["变更"], "commit_groups": [["26a944cf2", "5d79fc60c", "6e6b74a20", "889786e0e", "dbb121038", "e40c4d491"]], "identity_text": "Make the get_bit() and set_bit() functions cope with bytea strings longer than 256MB (Movead Li) Since the bit number argument is only int4, it's impossible to use these functions to access bits beyond the first 256MB of a long bytea. We'll widen the argument to int8 in v13, but in the meantime, allow these functions to work on the initial substring of a long bytea.", "commit_aliases": ["26a944cf2", "5d79fc60c", "6e6b74a20", "889786e0e", "dbb121038", "e40c4d491"], "source_commits": ["e40c4d491"], "source_entry_id": "9.6.18/changes/010", "db_id": "bd37d88fde696a029e43ffc64a6db4aa", "patch_ids": ["1f035cd3ed3162eae50f4cfd66d60f73"], "statement_hash": "ee54f9138685176f7db555e5d0353926be9843bbb1b3a628a40730f582e25a90", "relations": [{"rule": 2, "type": "equivalent", "target": "0ea209ac716ba0f4bed1d348ba9b11e8", "evidence": {"same_day": true, "patch_ids": ["1f035cd3ed3162eae50f4cfd66d60f73"], "statement_hash": "ee54f9138685176f7db555e5d0353926be9843bbb1b3a628a40730f582e25a90"}}, {"rule": 2, "type": "related", "target": "36951132033efe9497121c46a1b696f0", "evidence": {"same_day": false, "patch_ids": ["1f035cd3ed3162eae50f4cfd66d60f73"]}}, {"rule": 2, "type": "equivalent", "target": "73bef7cb7ccfd7e6c375b8b1bf28469a", "evidence": {"same_day": true, "patch_ids": ["1f035cd3ed3162eae50f4cfd66d60f73"], "statement_hash": "ee54f9138685176f7db555e5d0353926be9843bbb1b3a628a40730f582e25a90"}}, {"rule": 2, "type": "equivalent", "target": "c9ab8b3b22e6103c90868ddecabecbb7", "evidence": {"same_day": true, "patch_ids": ["1f035cd3ed3162eae50f4cfd66d60f73"], "statement_hash": "ee54f9138685176f7db555e5d0353926be9843bbb1b3a628a40730f582e25a90"}}, {"rule": 2, "type": "equivalent", "target": "f5409b29c53848f4f3a571148b1b7a0b", "evidence": {"same_day": true, "patch_ids": ["1f035cd3ed3162eae50f4cfd66d60f73"], "statement_hash": "ee54f9138685176f7db555e5d0353926be9843bbb1b3a628a40730f582e25a90"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "36951132033efe9497121c46a1b696f0", "kind": "related", "version": "13.0", "label": "13.0", "title": "允许 get_bit() 和 set_bit() 设置 bytea 值前 256MB 之外的位", "evidence": {"same_day": false, "patch_ids": ["1f035cd3ed3162eae50f4cfd66d60f73"]}, "url": "/docs/compare/?release=13.0#13.0-9211d3b40994cff4", "source_url": "/docs/release/13.0/#id-1.11.6.29.5.7"}, {"db_id": "c9ab8b3b22e6103c90868ddecabecbb7", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "使 get_bit() 和 set_bit() 函数能够处理长于 256MB 的 bytea 字符串", "evidence": {"same_day": true, "patch_ids": ["1f035cd3ed3162eae50f4cfd66d60f73"], "statement_hash": "ee54f9138685176f7db555e5d0353926be9843bbb1b3a628a40730f582e25a90"}, "url": "/docs/compare/?release=12.3#12.3-4330b9ced58daa0c", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "0ea209ac716ba0f4bed1d348ba9b11e8", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "使 get_bit() 和 set_bit() 函数能够处理长于 256MB 的 bytea 字符串", "evidence": {"same_day": true, "patch_ids": ["1f035cd3ed3162eae50f4cfd66d60f73"], "statement_hash": "ee54f9138685176f7db555e5d0353926be9843bbb1b3a628a40730f582e25a90"}, "url": "/docs/compare/?release=11.8#11.8-ca336e3d80787ea1", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "f5409b29c53848f4f3a571148b1b7a0b", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "使 get_bit() 和 set_bit() 函数能够处理长于 256MB 的 bytea 字符串", "evidence": {"same_day": true, "patch_ids": ["1f035cd3ed3162eae50f4cfd66d60f73"], "statement_hash": "ee54f9138685176f7db555e5d0353926be9843bbb1b3a628a40730f582e25a90"}, "url": "/docs/compare/?release=10.13#10.13-ca336e3d80787ea1", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "73bef7cb7ccfd7e6c375b8b1bf28469a", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "让 get_bit() 和 set_bit() 函数应对长于 256MB 的 bytea 字符串", "evidence": {"same_day": true, "patch_ids": ["1f035cd3ed3162eae50f4cfd66d60f73"], "statement_hash": "ee54f9138685176f7db555e5d0353926be9843bbb1b3a628a40730f582e25a90"}, "url": "/docs/compare/?release=9.5.22#9.5.22-030f702a88b76b01", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-16fc7a96aad45414", "cves": [], "html": "<p>避免 <code>pg_ls_dir()</code>、<code>pg_timezone_names()</code>、<code>pg_tablespace_databases()</code> 及相关函数可能泄漏打开的目录文件描述符（Justin Pryzby）</p>", "text": "避免 pg_ls_dir()、pg_timezone_names()、pg_tablespace_databases() 及相关函数可能泄漏打开的目录文件描述符（Justin Pryzby）", "title": "避免 pg_ls_dir()、pg_timezone_names()、pg_tablespace_databases() 及相关函数可能泄漏打开的目录文件描述符", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "a4e37edb20b10a51658209e260345a1861a5e9411f0a84095bf52b11be1650cd", "section_path": ["变更"], "commit_groups": [["05283dd5b", "085b6b667", "3c8864fc1", "63b51dfec"], ["064e029e6", "13f353b0e", "630590d6f", "a029a0641"], ["2a89455aa", "5e4a0b719", "819d55257", "b4570d33a", "cd6a05187", "da254148f"]], "identity_text": "Avoid possibly leaking an open-file descriptor for a directory in pg_ls_dir(), pg_timezone_names(), pg_tablespace_databases(), and allied functions (Justin Pryzby)", "commit_aliases": ["05283dd5b", "064e029e6", "085b6b667", "13f353b0e", "2a89455aa", "3c8864fc1", "5e4a0b719", "630590d6f", "63b51dfec", "819d55257", "a029a0641", "b4570d33a", "cd6a05187", "da254148f"], "source_commits": ["085b6b667", "a029a0641", "cd6a05187"], "source_entry_id": "9.6.18/changes/011", "db_id": "3651e77329c1b8cbf43057557a78f2f0", "patch_ids": ["6965fab968b0028d99d3375bf6bf3a81", "b07ac928d42a5f36e1085a6187339d06", "d35664a827be025d5e11684c5683ffbf"], "statement_hash": "8914a59000e449b21e0f0467c5e9306d9a22e8cab1a3950508d35c8873b0e152", "relations": [{"rule": 2, "type": "equivalent", "target": "3002d0cf86be9cc1f814b6ae533276b6", "evidence": {"same_day": true, "patch_ids": ["6965fab968b0028d99d3375bf6bf3a81", "b07ac928d42a5f36e1085a6187339d06", "d35664a827be025d5e11684c5683ffbf"], "statement_hash": "8914a59000e449b21e0f0467c5e9306d9a22e8cab1a3950508d35c8873b0e152"}}, {"rule": 2, "type": "equivalent", "target": "6518d4773783a87134e5073515347704", "evidence": {"same_day": true, "patch_ids": ["6965fab968b0028d99d3375bf6bf3a81", "b07ac928d42a5f36e1085a6187339d06", "d35664a827be025d5e11684c5683ffbf"], "statement_hash": "8914a59000e449b21e0f0467c5e9306d9a22e8cab1a3950508d35c8873b0e152"}}, {"rule": 2, "type": "equivalent", "target": "6e4a007c94e742e531786dbfdb04e421", "evidence": {"same_day": true, "patch_ids": ["6965fab968b0028d99d3375bf6bf3a81", "b07ac928d42a5f36e1085a6187339d06", "d35664a827be025d5e11684c5683ffbf"], "statement_hash": "8914a59000e449b21e0f0467c5e9306d9a22e8cab1a3950508d35c8873b0e152"}}, {"rule": 2, "type": "equivalent", "target": "e7671b3a3d8cfeddb3a8df698a63eea4", "evidence": {"same_day": true, "patch_ids": ["6965fab968b0028d99d3375bf6bf3a81", "b07ac928d42a5f36e1085a6187339d06", "d35664a827be025d5e11684c5683ffbf"], "statement_hash": "8914a59000e449b21e0f0467c5e9306d9a22e8cab1a3950508d35c8873b0e152"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e7671b3a3d8cfeddb3a8df698a63eea4", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "避免 pg_ls_dir()、pg_timezone_names()、pg_tablespace_databases() 及相关函数可能泄漏目录的打开文件描述符", "evidence": {"same_day": true, "patch_ids": ["6965fab968b0028d99d3375bf6bf3a81", "b07ac928d42a5f36e1085a6187339d06", "d35664a827be025d5e11684c5683ffbf"], "statement_hash": "8914a59000e449b21e0f0467c5e9306d9a22e8cab1a3950508d35c8873b0e152"}, "url": "/docs/compare/?release=12.3#12.3-b44f6daddd387391", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "6e4a007c94e742e531786dbfdb04e421", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "避免 pg_ls_dir()、pg_timezone_names()、pg_tablespace_databases() 及相关函数可能泄漏目录的打开文件描述符", "evidence": {"same_day": true, "patch_ids": ["6965fab968b0028d99d3375bf6bf3a81", "b07ac928d42a5f36e1085a6187339d06", "d35664a827be025d5e11684c5683ffbf"], "statement_hash": "8914a59000e449b21e0f0467c5e9306d9a22e8cab1a3950508d35c8873b0e152"}, "url": "/docs/compare/?release=11.8#11.8-37bd61020f50b305", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "3002d0cf86be9cc1f814b6ae533276b6", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "避免 pg_ls_dir()、pg_timezone_names()、pg_tablespace_databases() 及相关函数可能泄漏目录的打开文件描述符", "evidence": {"same_day": true, "patch_ids": ["6965fab968b0028d99d3375bf6bf3a81", "b07ac928d42a5f36e1085a6187339d06", "d35664a827be025d5e11684c5683ffbf"], "statement_hash": "8914a59000e449b21e0f0467c5e9306d9a22e8cab1a3950508d35c8873b0e152"}, "url": "/docs/compare/?release=10.13#10.13-37bd61020f50b305", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "6518d4773783a87134e5073515347704", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "避免 pg_ls_dir()、pg_timezone_names()、pg_tablespace_databases() 及相关函数可能泄漏打开的目录文件描述符", "evidence": {"same_day": true, "patch_ids": ["6965fab968b0028d99d3375bf6bf3a81", "b07ac928d42a5f36e1085a6187339d06", "d35664a827be025d5e11684c5683ffbf"], "statement_hash": "8914a59000e449b21e0f0467c5e9306d9a22e8cab1a3950508d35c8873b0e152"}, "url": "/docs/compare/?release=9.5.22#9.5.22-16fc7a96aad45414", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-0ef4214f6455de4b", "cves": [], "html": "<p>修复多态函数类型解析，使其在只给出 <code>anyrange</code> 输入时正确推断 <code>anyarray</code> 输出的实际类型（Tom Lane）</p>", "text": "修复多态函数类型解析，使其在只给出 anyrange 输入时正确推断 anyarray 输出的实际类型（Tom Lane）", "title": "修复多态函数类型解析，使其在只给出 anyrange 输入时正确推断 anyarray 输出的实际类型", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "164111d68c4ae1531554d19274f4438e98f86a10eea9e9e62a9bd1d9d615d79c", "section_path": ["变更"], "commit_groups": [["30e491653", "390984f92", "4dbcb3f84", "540ef37cc", "61d14971d", "a1ef0f373"]], "identity_text": "Fix polymorphic-function type resolution to correctly infer the actual type of an anyarray output when given only an anyrange input (Tom Lane)", "commit_aliases": ["30e491653", "390984f92", "4dbcb3f84", "540ef37cc", "61d14971d", "a1ef0f373"], "source_commits": ["30e491653"], "source_entry_id": "9.6.18/changes/012", "db_id": "41354b0878062eb0c0cc0c69aa37f30f", "patch_ids": ["eb89055136b92aff5e4993b6426c337d"], "statement_hash": "9365a05eaf0557bf6600ee8c31ed6a6d2ae3d1cd5a69114b097045cbcde8794e", "relations": [{"rule": 2, "type": "equivalent", "target": "599c96a091f3961e0670a9ef44822842", "evidence": {"same_day": true, "patch_ids": ["eb89055136b92aff5e4993b6426c337d"], "statement_hash": "9365a05eaf0557bf6600ee8c31ed6a6d2ae3d1cd5a69114b097045cbcde8794e"}}, {"rule": 2, "type": "equivalent", "target": "5ffb8a7e83a86ba7bf69175991f079e4", "evidence": {"same_day": true, "patch_ids": ["eb89055136b92aff5e4993b6426c337d"], "statement_hash": "9365a05eaf0557bf6600ee8c31ed6a6d2ae3d1cd5a69114b097045cbcde8794e"}}, {"rule": 2, "type": "equivalent", "target": "687c29378d9400cc17df64f60c36172b", "evidence": {"same_day": true, "patch_ids": ["eb89055136b92aff5e4993b6426c337d"], "statement_hash": "9365a05eaf0557bf6600ee8c31ed6a6d2ae3d1cd5a69114b097045cbcde8794e"}}, {"rule": 2, "type": "equivalent", "target": "ca1e27769aa9ef58d169a884cf871cfd", "evidence": {"same_day": true, "patch_ids": ["eb89055136b92aff5e4993b6426c337d"], "statement_hash": "9365a05eaf0557bf6600ee8c31ed6a6d2ae3d1cd5a69114b097045cbcde8794e"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "599c96a091f3961e0670a9ef44822842", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复多态函数的类型解析，使其仅给定 anyrange 输入时，也能正确推断 anyarray 输出的实际类型", "evidence": {"same_day": true, "patch_ids": ["eb89055136b92aff5e4993b6426c337d"], "statement_hash": "9365a05eaf0557bf6600ee8c31ed6a6d2ae3d1cd5a69114b097045cbcde8794e"}, "url": "/docs/compare/?release=12.3#12.3-66cc4092623868fe", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "5ffb8a7e83a86ba7bf69175991f079e4", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复多态函数的类型解析，使其仅给定 anyrange 输入时，也能正确推断 anyarray 输出的实际类型", "evidence": {"same_day": true, "patch_ids": ["eb89055136b92aff5e4993b6426c337d"], "statement_hash": "9365a05eaf0557bf6600ee8c31ed6a6d2ae3d1cd5a69114b097045cbcde8794e"}, "url": "/docs/compare/?release=11.8#11.8-086421a9a86e829d", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "ca1e27769aa9ef58d169a884cf871cfd", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复多态函数的类型解析，使其仅给定 anyrange 输入时，也能正确推断 anyarray 输出的实际类型", "evidence": {"same_day": true, "patch_ids": ["eb89055136b92aff5e4993b6426c337d"], "statement_hash": "9365a05eaf0557bf6600ee8c31ed6a6d2ae3d1cd5a69114b097045cbcde8794e"}, "url": "/docs/compare/?release=10.13#10.13-086421a9a86e829d", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "687c29378d9400cc17df64f60c36172b", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "修复多态函数类型解析，使其在只给出 anyrange 输入时正确推断 anyarray 输出的实际类型", "evidence": {"same_day": true, "patch_ids": ["eb89055136b92aff5e4993b6426c337d"], "statement_hash": "9365a05eaf0557bf6600ee8c31ed6a6d2ae3d1cd5a69114b097045cbcde8794e"}, "url": "/docs/compare/?release=9.5.22#9.5.22-0ef4214f6455de4b", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-59284c3f3f51e4e6", "cves": [], "html": "<p>避免 <code>REINDEX</code> 被会话关闭信号终止时不太可能的崩溃（Tom Lane）</p>", "text": "避免 REINDEX 被会话关闭信号终止时不太可能的崩溃（Tom Lane）", "title": "避免 REINDEX 被会话关闭信号终止时不太可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "bceb4b70b8bedd02a318051a781c30a05d851c9875f56564624009f24e228cc5", "section_path": ["变更"], "commit_groups": [["36714f8ca", "56259c377", "5a4efd100", "5c1c27eef", "d12bdba77", "e6c17c85a"]], "identity_text": "Avoid unlikely crash when REINDEX is terminated by a session-shutdown signal (Tom Lane)", "commit_aliases": ["36714f8ca", "56259c377", "5a4efd100", "5c1c27eef", "d12bdba77", "e6c17c85a"], "source_commits": ["5c1c27eef"], "source_entry_id": "9.6.18/changes/013", "db_id": "8e77a4cbf712530695ebc246fff6d222", "patch_ids": ["e584c6fbf636fab8bdaa4b26a6cb8507"], "statement_hash": "4daf22f440ba785e0df9e5c6ad9f45d57e049326d5355620c17ac684f81a9abf", "relations": [{"rule": 2, "type": "equivalent", "target": "470958c617fce082ce01f09045d87294", "evidence": {"same_day": true, "patch_ids": ["e584c6fbf636fab8bdaa4b26a6cb8507"], "statement_hash": "4daf22f440ba785e0df9e5c6ad9f45d57e049326d5355620c17ac684f81a9abf"}}, {"rule": 2, "type": "equivalent", "target": "a8ee89fc7cc017fcf58ef70b534e8e4a", "evidence": {"same_day": true, "patch_ids": ["e584c6fbf636fab8bdaa4b26a6cb8507"], "statement_hash": "4daf22f440ba785e0df9e5c6ad9f45d57e049326d5355620c17ac684f81a9abf"}}, {"rule": 2, "type": "equivalent", "target": "ca91ad43271b31819041e045b6c093cb", "evidence": {"same_day": true, "patch_ids": ["e584c6fbf636fab8bdaa4b26a6cb8507"], "statement_hash": "4daf22f440ba785e0df9e5c6ad9f45d57e049326d5355620c17ac684f81a9abf"}}, {"rule": 2, "type": "equivalent", "target": "d883634d5a0b645136c5e0cc28cb9dac", "evidence": {"same_day": true, "patch_ids": ["e584c6fbf636fab8bdaa4b26a6cb8507"], "statement_hash": "4daf22f440ba785e0df9e5c6ad9f45d57e049326d5355620c17ac684f81a9abf"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ca91ad43271b31819041e045b6c093cb", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "避免 REINDEX 被会话关闭信号终止时不太可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["e584c6fbf636fab8bdaa4b26a6cb8507"], "statement_hash": "4daf22f440ba785e0df9e5c6ad9f45d57e049326d5355620c17ac684f81a9abf"}, "url": "/docs/compare/?release=12.3#12.3-9301d33327f1df9f", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "d883634d5a0b645136c5e0cc28cb9dac", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "避免 REINDEX 被会话关闭信号终止时不太可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["e584c6fbf636fab8bdaa4b26a6cb8507"], "statement_hash": "4daf22f440ba785e0df9e5c6ad9f45d57e049326d5355620c17ac684f81a9abf"}, "url": "/docs/compare/?release=11.8#11.8-c287f3c512e0cfaa", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "470958c617fce082ce01f09045d87294", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "避免 REINDEX 被会话关闭信号终止时不太可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["e584c6fbf636fab8bdaa4b26a6cb8507"], "statement_hash": "4daf22f440ba785e0df9e5c6ad9f45d57e049326d5355620c17ac684f81a9abf"}, "url": "/docs/compare/?release=10.13#10.13-c287f3c512e0cfaa", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "a8ee89fc7cc017fcf58ef70b534e8e4a", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "避免 REINDEX 被会话关闭信号终止时不太可能的崩溃", "evidence": {"same_day": true, "patch_ids": ["e584c6fbf636fab8bdaa4b26a6cb8507"], "statement_hash": "4daf22f440ba785e0df9e5c6ad9f45d57e049326d5355620c17ac684f81a9abf"}, "url": "/docs/compare/?release=9.5.22#9.5.22-59284c3f3f51e4e6", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-64df1d61f3e893da", "cves": [], "html": "<p>防止 <code>EXPLAIN</code> 打印可能不正确的哈希连接表统计信息（Konstantin Knizhnik、Tom Lane、Thomas Munro）</p>", "text": "防止 EXPLAIN 打印可能不正确的哈希连接表统计信息（Konstantin Knizhnik、Tom Lane、Thomas Munro）", "title": "防止 EXPLAIN 打印可能不正确的哈希连接表统计信息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "5801c8cf0248e97abf166e4e1f50a8515c5e7ad705ccea23f3240df221282b49", "section_path": ["变更"], "commit_groups": [["1e6bb6125", "242ca479f", "30ce86367", "5c27bce7f", "8ffb86644", "f3d06e524"]], "identity_text": "Prevent printout of possibly-incorrect hash join table statistics in EXPLAIN (Konstantin Knizhnik, Tom Lane, Thomas Munro)", "commit_aliases": ["1e6bb6125", "242ca479f", "30ce86367", "5c27bce7f", "8ffb86644", "f3d06e524"], "source_commits": ["242ca479f"], "source_entry_id": "9.6.18/changes/014", "db_id": "955099ee349d2397f1db43973f3a00cc", "patch_ids": ["9577a3f9e890732d3b8029b442f97a49"], "statement_hash": "6b761f25669dcf69182088dcf43cc4200c5b0afd2d993c851d926aa0844d62e6", "relations": [{"rule": 2, "type": "equivalent", "target": "0b69cf96620a007e873e288dfec21e5c", "evidence": {"same_day": true, "patch_ids": ["9577a3f9e890732d3b8029b442f97a49"], "statement_hash": "6b761f25669dcf69182088dcf43cc4200c5b0afd2d993c851d926aa0844d62e6"}}, {"rule": 2, "type": "equivalent", "target": "6ae9cf112681e0d57b773127c74e7e9a", "evidence": {"same_day": true, "patch_ids": ["9577a3f9e890732d3b8029b442f97a49"], "statement_hash": "6b761f25669dcf69182088dcf43cc4200c5b0afd2d993c851d926aa0844d62e6"}}, {"rule": 2, "type": "equivalent", "target": "acb9bc74cea9bb725741f4b518b7d085", "evidence": {"same_day": true, "patch_ids": ["9577a3f9e890732d3b8029b442f97a49"], "statement_hash": "6b761f25669dcf69182088dcf43cc4200c5b0afd2d993c851d926aa0844d62e6"}}, {"rule": 2, "type": "equivalent", "target": "d5b3cc0f62b878c539db27f07470e4cf", "evidence": {"same_day": true, "patch_ids": ["9577a3f9e890732d3b8029b442f97a49"], "statement_hash": "6b761f25669dcf69182088dcf43cc4200c5b0afd2d993c851d926aa0844d62e6"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6ae9cf112681e0d57b773127c74e7e9a", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "防止 EXPLAIN 输出可能不正确的哈希连接表统计信息", "evidence": {"same_day": true, "patch_ids": ["9577a3f9e890732d3b8029b442f97a49"], "statement_hash": "6b761f25669dcf69182088dcf43cc4200c5b0afd2d993c851d926aa0844d62e6"}, "url": "/docs/compare/?release=12.3#12.3-33ce58e1ee58dfbb", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "acb9bc74cea9bb725741f4b518b7d085", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "防止 EXPLAIN 输出可能不正确的哈希连接表统计信息", "evidence": {"same_day": true, "patch_ids": ["9577a3f9e890732d3b8029b442f97a49"], "statement_hash": "6b761f25669dcf69182088dcf43cc4200c5b0afd2d993c851d926aa0844d62e6"}, "url": "/docs/compare/?release=11.8#11.8-5c39232081c348b8", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "d5b3cc0f62b878c539db27f07470e4cf", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "防止 EXPLAIN 输出可能不正确的哈希连接表统计信息", "evidence": {"same_day": true, "patch_ids": ["9577a3f9e890732d3b8029b442f97a49"], "statement_hash": "6b761f25669dcf69182088dcf43cc4200c5b0afd2d993c851d926aa0844d62e6"}, "url": "/docs/compare/?release=10.13#10.13-5c39232081c348b8", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "0b69cf96620a007e873e288dfec21e5c", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "防止 EXPLAIN 打印可能不正确的哈希连接表统计信息", "evidence": {"same_day": true, "patch_ids": ["9577a3f9e890732d3b8029b442f97a49"], "statement_hash": "6b761f25669dcf69182088dcf43cc4200c5b0afd2d993c851d926aa0844d62e6"}, "url": "/docs/compare/?release=9.5.22#9.5.22-64df1d61f3e893da", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-a4ad8ab2bac81621", "cves": [], "html": "<p>修复 <code>VACUUM VERBOSE</code> 中堆截断步骤所用时间的报告（Tatsuhito Kasahara）</p>", "text": "修复 VACUUM VERBOSE 中堆截断步骤所用时间的报告（Tatsuhito Kasahara）", "title": "修复 VACUUM VERBOSE 中堆截断步骤所用时间的报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "956489f4bffa576d5fe758f6a9c0ef39cacfe40f1301316b8a953f87cbaa5ca4", "section_path": ["变更"], "commit_groups": [["007491979", "16e6c968b", "307c27037", "414ed1ca2", "4a3f164b7", "79f344d52"]], "identity_text": "Fix reporting of elapsed time for heap truncation steps in VACUUM VERBOSE (Tatsuhito Kasahara)", "commit_aliases": ["007491979", "16e6c968b", "307c27037", "414ed1ca2", "4a3f164b7", "79f344d52"], "source_commits": ["307c27037"], "source_entry_id": "9.6.18/changes/015", "db_id": "77a1e10a809727d4e8e804035b515ae8", "patch_ids": ["7809976285699f9f48bdae7877bd16bc"], "statement_hash": "f20cd0a369c926dc94614ecb2b6e088940f49cbdadf07ecf10c542337a4314bc", "relations": [{"rule": 2, "type": "equivalent", "target": "344ea7e477af969207ab4e124de71907", "evidence": {"same_day": true, "patch_ids": ["7809976285699f9f48bdae7877bd16bc"], "statement_hash": "f20cd0a369c926dc94614ecb2b6e088940f49cbdadf07ecf10c542337a4314bc"}}, {"rule": 2, "type": "equivalent", "target": "88c1644901e76c430dd137b8d694c8b6", "evidence": {"same_day": true, "patch_ids": ["7809976285699f9f48bdae7877bd16bc"], "statement_hash": "f20cd0a369c926dc94614ecb2b6e088940f49cbdadf07ecf10c542337a4314bc"}}, {"rule": 2, "type": "equivalent", "target": "8a633a7ef2133d8fa0646de0147187f2", "evidence": {"same_day": true, "patch_ids": ["7809976285699f9f48bdae7877bd16bc"], "statement_hash": "f20cd0a369c926dc94614ecb2b6e088940f49cbdadf07ecf10c542337a4314bc"}}, {"rule": 2, "type": "equivalent", "target": "be137f76a1ae493f53cfb3d23ee2e247", "evidence": {"same_day": true, "patch_ids": ["7809976285699f9f48bdae7877bd16bc"], "statement_hash": "f20cd0a369c926dc94614ecb2b6e088940f49cbdadf07ecf10c542337a4314bc"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "344ea7e477af969207ab4e124de71907", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复 VACUUM VERBOSE 对堆截断步骤耗时的报告", "evidence": {"same_day": true, "patch_ids": ["7809976285699f9f48bdae7877bd16bc"], "statement_hash": "f20cd0a369c926dc94614ecb2b6e088940f49cbdadf07ecf10c542337a4314bc"}, "url": "/docs/compare/?release=12.3#12.3-88379a7c527ad2c4", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "88c1644901e76c430dd137b8d694c8b6", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复 VACUUM VERBOSE 对堆截断步骤耗时的报告", "evidence": {"same_day": true, "patch_ids": ["7809976285699f9f48bdae7877bd16bc"], "statement_hash": "f20cd0a369c926dc94614ecb2b6e088940f49cbdadf07ecf10c542337a4314bc"}, "url": "/docs/compare/?release=11.8#11.8-80b9d060d40bebed", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "8a633a7ef2133d8fa0646de0147187f2", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复 VACUUM VERBOSE 对堆截断步骤耗时的报告", "evidence": {"same_day": true, "patch_ids": ["7809976285699f9f48bdae7877bd16bc"], "statement_hash": "f20cd0a369c926dc94614ecb2b6e088940f49cbdadf07ecf10c542337a4314bc"}, "url": "/docs/compare/?release=10.13#10.13-80b9d060d40bebed", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "be137f76a1ae493f53cfb3d23ee2e247", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "修复 VACUUM VERBOSE 中堆截断步骤所用时间的报告", "evidence": {"same_day": true, "patch_ids": ["7809976285699f9f48bdae7877bd16bc"], "statement_hash": "f20cd0a369c926dc94614ecb2b6e088940f49cbdadf07ecf10c542337a4314bc"}, "url": "/docs/compare/?release=9.5.22#9.5.22-a4ad8ab2bac81621", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-f648cc703038394b", "cves": [], "html": "<p>避免进程的 PS 状态中可能两次显示 <span>“<span>waiting</span>”</span>（Masahiko Sawada）</p>", "text": "避免进程的 PS 状态中可能两次显示 “waiting”（Masahiko Sawada）", "title": "避免进程的 PS 状态中可能两次显示 “waiting”", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "6e9e8db344a83e623a181aa17c8d6a654a1033a2bbe85cb1a4118024e762f269", "section_path": ["变更"], "commit_groups": [["17d3fcdc3", "82c04e483", "c9a47b81e", "d1b414e7e", "e54183cb0", "e9c4eaacd"]], "identity_text": "Avoid possibly showing waiting twice in a process's PS status (Masahiko Sawada)", "commit_aliases": ["17d3fcdc3", "82c04e483", "c9a47b81e", "d1b414e7e", "e54183cb0", "e9c4eaacd"], "source_commits": ["d1b414e7e"], "source_entry_id": "9.6.18/changes/016", "db_id": "d90ea1969e6efed6f293f894e2b16d72", "patch_ids": ["8cc2e23b39efb918497ce937a490afc6"], "statement_hash": "b2492270143de8c203a1998678437872e10fd4d369ec3ee00abba52e19fa69ea", "relations": [{"rule": 2, "type": "equivalent", "target": "22918bbd723838fd326c43f73db0beb2", "evidence": {"same_day": true, "patch_ids": ["8cc2e23b39efb918497ce937a490afc6"], "statement_hash": "b2492270143de8c203a1998678437872e10fd4d369ec3ee00abba52e19fa69ea"}}, {"rule": 2, "type": "equivalent", "target": "4e3a1a2456aba94194356a01413e3114", "evidence": {"same_day": true, "patch_ids": ["8cc2e23b39efb918497ce937a490afc6"], "statement_hash": "b2492270143de8c203a1998678437872e10fd4d369ec3ee00abba52e19fa69ea"}}, {"rule": 2, "type": "equivalent", "target": "9c38c588942a2de8ba8e7fb0147649d5", "evidence": {"same_day": true, "patch_ids": ["8cc2e23b39efb918497ce937a490afc6"], "statement_hash": "b2492270143de8c203a1998678437872e10fd4d369ec3ee00abba52e19fa69ea"}}, {"rule": 2, "type": "equivalent", "target": "bc7286641728a1efd19e31a44b3cd6a2", "evidence": {"same_day": true, "patch_ids": ["8cc2e23b39efb918497ce937a490afc6"], "statement_hash": "b2492270143de8c203a1998678437872e10fd4d369ec3ee00abba52e19fa69ea"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4e3a1a2456aba94194356a01413e3114", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "避免在进程的 PS 状态中可能两次显示 “waiting”", "evidence": {"same_day": true, "patch_ids": ["8cc2e23b39efb918497ce937a490afc6"], "statement_hash": "b2492270143de8c203a1998678437872e10fd4d369ec3ee00abba52e19fa69ea"}, "url": "/docs/compare/?release=12.3#12.3-43091f93f1eb20ec", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "9c38c588942a2de8ba8e7fb0147649d5", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "避免在进程的 PS 状态中可能两次显示 “waiting”", "evidence": {"same_day": true, "patch_ids": ["8cc2e23b39efb918497ce937a490afc6"], "statement_hash": "b2492270143de8c203a1998678437872e10fd4d369ec3ee00abba52e19fa69ea"}, "url": "/docs/compare/?release=11.8#11.8-1973e2fb461472c9", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "22918bbd723838fd326c43f73db0beb2", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "避免在进程的 PS 状态中可能两次显示 “waiting”", "evidence": {"same_day": true, "patch_ids": ["8cc2e23b39efb918497ce937a490afc6"], "statement_hash": "b2492270143de8c203a1998678437872e10fd4d369ec3ee00abba52e19fa69ea"}, "url": "/docs/compare/?release=10.13#10.13-1973e2fb461472c9", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "bc7286641728a1efd19e31a44b3cd6a2", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "避免进程的 PS 状态中可能两次显示 “waiting”", "evidence": {"same_day": true, "patch_ids": ["8cc2e23b39efb918497ce937a490afc6"], "statement_hash": "b2492270143de8c203a1998678437872e10fd4d369ec3ee00abba52e19fa69ea"}, "url": "/docs/compare/?release=9.5.22#9.5.22-f648cc703038394b", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-a3d32e1cca66132d", "cves": [], "html": "<p>避免崩溃恢复期间过早回收 WAL 段（Jehan-Guillaume de Rorthais）</p>\n<p>崩溃恢复期间变为可归档的 WAL 段有可能在未被归档的情况下就被回收。</p>", "text": "避免崩溃恢复期间过早回收 WAL 段（Jehan-Guillaume de Rorthais） 崩溃恢复期间变为可归档的 WAL 段有可能在未被归档的情况下就被回收。", "title": "避免崩溃恢复期间过早回收 WAL 段", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "de8310288828f378f918e7c6304ef9b82688813093c9934c4750c2aa5027490c", "section_path": ["变更"], "commit_groups": [["02657c421", "22db5269b", "2d24ca00b", "4e87c4836", "9eff11653", "c2d8ae0df"], ["0d04e9d76", "11f004699", "26057550d", "3d9cae5ad", "a4726998d", "f9c1b8dba"]], "identity_text": "Avoid premature recycling of WAL segments during crash recovery (Jehan-Guillaume de Rorthais) WAL segments that become ready to be archived during crash recovery were potentially recycled without being archived.", "commit_aliases": ["02657c421", "0d04e9d76", "11f004699", "22db5269b", "26057550d", "2d24ca00b", "3d9cae5ad", "4e87c4836", "9eff11653", "a4726998d", "c2d8ae0df", "f9c1b8dba"], "source_commits": ["11f004699", "c2d8ae0df"], "source_entry_id": "9.6.18/changes/017", "db_id": "a1cf124a3a5ff64bf30d3e3981c63683", "patch_ids": ["0ee7a470a5b9e090e3628d7926425f49", "f4914ad864daad2b94a0f1e6a2922dab"], "statement_hash": "b017931b378881898e4a300452eab798a7beeb68000b31d89ea1d54fffaf78a6", "relations": [{"rule": 2, "type": "equivalent", "target": "339630ead3e826cc8ce60a76a0891a79", "evidence": {"same_day": true, "patch_ids": ["0ee7a470a5b9e090e3628d7926425f49", "f4914ad864daad2b94a0f1e6a2922dab"], "statement_hash": "b017931b378881898e4a300452eab798a7beeb68000b31d89ea1d54fffaf78a6"}}, {"rule": 2, "type": "equivalent", "target": "64260b75f6c405aa52cf45d5527ccf2d", "evidence": {"same_day": true, "patch_ids": ["0ee7a470a5b9e090e3628d7926425f49", "f4914ad864daad2b94a0f1e6a2922dab"], "statement_hash": "b017931b378881898e4a300452eab798a7beeb68000b31d89ea1d54fffaf78a6"}}, {"rule": 2, "type": "equivalent", "target": "b12c1aa5e0e23993f2ac453638df2a86", "evidence": {"same_day": true, "patch_ids": ["0ee7a470a5b9e090e3628d7926425f49", "f4914ad864daad2b94a0f1e6a2922dab"], "statement_hash": "b017931b378881898e4a300452eab798a7beeb68000b31d89ea1d54fffaf78a6"}}, {"rule": 2, "type": "equivalent", "target": "b5f60a1946e72223e6f7b1c0c3bfb9de", "evidence": {"same_day": true, "patch_ids": ["0ee7a470a5b9e090e3628d7926425f49", "f4914ad864daad2b94a0f1e6a2922dab"], "statement_hash": "b017931b378881898e4a300452eab798a7beeb68000b31d89ea1d54fffaf78a6"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "64260b75f6c405aa52cf45d5527ccf2d", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "避免崩溃恢复期间过早回收 WAL 段", "evidence": {"same_day": true, "patch_ids": ["0ee7a470a5b9e090e3628d7926425f49", "f4914ad864daad2b94a0f1e6a2922dab"], "statement_hash": "b017931b378881898e4a300452eab798a7beeb68000b31d89ea1d54fffaf78a6"}, "url": "/docs/compare/?release=12.3#12.3-3e080ce59871ccc2", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "339630ead3e826cc8ce60a76a0891a79", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "避免崩溃恢复期间过早回收 WAL 段", "evidence": {"same_day": true, "patch_ids": ["0ee7a470a5b9e090e3628d7926425f49", "f4914ad864daad2b94a0f1e6a2922dab"], "statement_hash": "b017931b378881898e4a300452eab798a7beeb68000b31d89ea1d54fffaf78a6"}, "url": "/docs/compare/?release=11.8#11.8-a3d32e1cca66132d", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "b5f60a1946e72223e6f7b1c0c3bfb9de", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "避免崩溃恢复期间过早回收 WAL 段", "evidence": {"same_day": true, "patch_ids": ["0ee7a470a5b9e090e3628d7926425f49", "f4914ad864daad2b94a0f1e6a2922dab"], "statement_hash": "b017931b378881898e4a300452eab798a7beeb68000b31d89ea1d54fffaf78a6"}, "url": "/docs/compare/?release=10.13#10.13-a3d32e1cca66132d", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "b12c1aa5e0e23993f2ac453638df2a86", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "避免崩溃恢复期间过早回收 WAL 段", "evidence": {"same_day": true, "patch_ids": ["0ee7a470a5b9e090e3628d7926425f49", "f4914ad864daad2b94a0f1e6a2922dab"], "statement_hash": "b017931b378881898e4a300452eab798a7beeb68000b31d89ea1d54fffaf78a6"}, "url": "/docs/compare/?release=9.5.22#9.5.22-a3d32e1cca66132d", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-1a459e89e5863aa7", "cves": [], "html": "<p>避免归档恢复期间扫描无关时间线（Kyotaro Horiguchi）</p>\n<p>这可以消除许多从归档存储获取不存在 WAL 文件的尝试，在归档访问缓慢时很有帮助。</p>", "text": "避免归档恢复期间扫描无关时间线（Kyotaro Horiguchi） 这可以消除许多从归档存储获取不存在 WAL 文件的尝试，在归档访问缓慢时很有帮助。", "title": "避免归档恢复期间扫描无关时间线", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "3364dd19429d62393af350f7b632c779f459cbb4a0df499ffb72d06442ea751e", "section_path": ["变更"], "commit_groups": [["4bd0ad9e4", "660f1fc40", "683e0ef55", "70b597974", "dcd1569fb", "e3f5b148e"]], "identity_text": "Avoid scanning irrelevant timelines during archive recovery (Kyotaro Horiguchi) This can eliminate many attempts to fetch non-existent WAL files from archive storage, which is helpful if archive access is slow.", "commit_aliases": ["4bd0ad9e4", "660f1fc40", "683e0ef55", "70b597974", "dcd1569fb", "e3f5b148e"], "source_commits": ["70b597974"], "source_entry_id": "9.6.18/changes/018", "db_id": "80ad996d70bbd32642295566050cb53b", "patch_ids": ["d25704ffbad36923b683cfb9e6d1f49c"], "statement_hash": "f80a2b94b71207f2fa0359669721847ebdd99286b7efe8f407f9482a0727efcd", "relations": [{"rule": 2, "type": "equivalent", "target": "12ca930645248f1c5424dd484b54f738", "evidence": {"same_day": true, "patch_ids": ["d25704ffbad36923b683cfb9e6d1f49c"], "statement_hash": "f80a2b94b71207f2fa0359669721847ebdd99286b7efe8f407f9482a0727efcd"}}, {"rule": 2, "type": "equivalent", "target": "5534623022d01e53ee6dbef702811fac", "evidence": {"same_day": true, "patch_ids": ["d25704ffbad36923b683cfb9e6d1f49c"], "statement_hash": "f80a2b94b71207f2fa0359669721847ebdd99286b7efe8f407f9482a0727efcd"}}, {"rule": 2, "type": "equivalent", "target": "5e62d45bd81c8df3ebef93b76e51df11", "evidence": {"same_day": true, "patch_ids": ["d25704ffbad36923b683cfb9e6d1f49c"], "statement_hash": "f80a2b94b71207f2fa0359669721847ebdd99286b7efe8f407f9482a0727efcd"}}, {"rule": 2, "type": "equivalent", "target": "d1cc31e1b4252b551f40b53f1cf377ef", "evidence": {"same_day": true, "patch_ids": ["d25704ffbad36923b683cfb9e6d1f49c"], "statement_hash": "f80a2b94b71207f2fa0359669721847ebdd99286b7efe8f407f9482a0727efcd"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d1cc31e1b4252b551f40b53f1cf377ef", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "避免归档恢复期间扫描无关的时间线", "evidence": {"same_day": true, "patch_ids": ["d25704ffbad36923b683cfb9e6d1f49c"], "statement_hash": "f80a2b94b71207f2fa0359669721847ebdd99286b7efe8f407f9482a0727efcd"}, "url": "/docs/compare/?release=12.3#12.3-12416a0b66723211", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "12ca930645248f1c5424dd484b54f738", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "避免归档恢复期间扫描无关的时间线", "evidence": {"same_day": true, "patch_ids": ["d25704ffbad36923b683cfb9e6d1f49c"], "statement_hash": "f80a2b94b71207f2fa0359669721847ebdd99286b7efe8f407f9482a0727efcd"}, "url": "/docs/compare/?release=11.8#11.8-78197daaaef890ec", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "5e62d45bd81c8df3ebef93b76e51df11", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "避免归档恢复期间扫描无关的时间线", "evidence": {"same_day": true, "patch_ids": ["d25704ffbad36923b683cfb9e6d1f49c"], "statement_hash": "f80a2b94b71207f2fa0359669721847ebdd99286b7efe8f407f9482a0727efcd"}, "url": "/docs/compare/?release=10.13#10.13-78197daaaef890ec", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "5534623022d01e53ee6dbef702811fac", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "避免归档恢复期间扫描无关时间线", "evidence": {"same_day": true, "patch_ids": ["d25704ffbad36923b683cfb9e6d1f49c"], "statement_hash": "f80a2b94b71207f2fa0359669721847ebdd99286b7efe8f407f9482a0727efcd"}, "url": "/docs/compare/?release=9.5.22#9.5.22-1a459e89e5863aa7", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-0e828a8ecd846f2a", "cves": [], "html": "<p>移除逻辑解码中虚假的 <span>“<span>subtransaction logged without previous top-level txn record</span>”</span> 错误检查（Arseny Sher、Amit Kapila）</p>\n<p>这一条件在各种场景下都可以合法达到，因此移除该检查。</p>", "text": "移除逻辑解码中虚假的 “subtransaction logged without previous top-level txn record” 错误检查（Arseny Sher、Amit Kapila） 这一条件在各种场景下都可以合法达到，因此移除该检查。", "title": "移除逻辑解码中虚假的 “subtransaction logged without previous top-level txn record” 错误检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "d04db0c135e8d1d98fb7705903f289af2953020be50ae1c71657710a3843ac8e", "section_path": ["变更"], "commit_groups": [["05555f7aa", "59112f235", "59c1a03f0", "b448aa441", "bff456d7a", "e3ff789ac"]], "identity_text": "Remove bogus subtransaction logged without previous top-level txn record error check in logical decoding (Arseny Sher, Amit Kapila) This condition is legitimately reachable in various scenarios, so remove the check.", "commit_aliases": ["05555f7aa", "59112f235", "59c1a03f0", "b448aa441", "bff456d7a", "e3ff789ac"], "source_commits": ["59c1a03f0"], "source_entry_id": "9.6.18/changes/019", "db_id": "dbd2f9061c003f5c98a421520d57c263", "patch_ids": ["47911020be76b484c25bd78c8fe351b6"], "statement_hash": "7064bb1ed3eb9ee61c0bc38570e493d8d4fb28a533ec04bf9a03eb9166236b25", "relations": [{"rule": 2, "type": "equivalent", "target": "013381b18e4797fb6c20449ccad2be10", "evidence": {"same_day": true, "patch_ids": ["47911020be76b484c25bd78c8fe351b6"], "statement_hash": "7064bb1ed3eb9ee61c0bc38570e493d8d4fb28a533ec04bf9a03eb9166236b25"}}, {"rule": 2, "type": "equivalent", "target": "091f71c96c354f4647b9ebc343fb55a9", "evidence": {"same_day": true, "patch_ids": ["47911020be76b484c25bd78c8fe351b6"], "statement_hash": "7064bb1ed3eb9ee61c0bc38570e493d8d4fb28a533ec04bf9a03eb9166236b25"}}, {"rule": 2, "type": "equivalent", "target": "e6f4e104e82b45a8ae35c2ce2581b76f", "evidence": {"same_day": true, "patch_ids": ["47911020be76b484c25bd78c8fe351b6"], "statement_hash": "7064bb1ed3eb9ee61c0bc38570e493d8d4fb28a533ec04bf9a03eb9166236b25"}}, {"rule": 2, "type": "equivalent", "target": "f1e4dd966202377068b8ccf850797012", "evidence": {"same_day": true, "patch_ids": ["47911020be76b484c25bd78c8fe351b6"], "statement_hash": "7064bb1ed3eb9ee61c0bc38570e493d8d4fb28a533ec04bf9a03eb9166236b25"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "091f71c96c354f4647b9ebc343fb55a9", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "移除逻辑解码中不正确的 “subtransaction logged without previous top-level txn record” 错误检查", "evidence": {"same_day": true, "patch_ids": ["47911020be76b484c25bd78c8fe351b6"], "statement_hash": "7064bb1ed3eb9ee61c0bc38570e493d8d4fb28a533ec04bf9a03eb9166236b25"}, "url": "/docs/compare/?release=12.3#12.3-22c28a3d58382dfb", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "013381b18e4797fb6c20449ccad2be10", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "移除逻辑解码中不正确的 “subtransaction logged without previous top-level txn record” 错误检查", "evidence": {"same_day": true, "patch_ids": ["47911020be76b484c25bd78c8fe351b6"], "statement_hash": "7064bb1ed3eb9ee61c0bc38570e493d8d4fb28a533ec04bf9a03eb9166236b25"}, "url": "/docs/compare/?release=11.8#11.8-fd829a21505bdb58", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "e6f4e104e82b45a8ae35c2ce2581b76f", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "移除逻辑解码中不正确的 “subtransaction logged without previous top-level txn record” 错误检查", "evidence": {"same_day": true, "patch_ids": ["47911020be76b484c25bd78c8fe351b6"], "statement_hash": "7064bb1ed3eb9ee61c0bc38570e493d8d4fb28a533ec04bf9a03eb9166236b25"}, "url": "/docs/compare/?release=10.13#10.13-fd829a21505bdb58", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "f1e4dd966202377068b8ccf850797012", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "移除逻辑解码中虚假的 “subtransaction logged without previous top-level txn record” 错误检查", "evidence": {"same_day": true, "patch_ids": ["47911020be76b484c25bd78c8fe351b6"], "statement_hash": "7064bb1ed3eb9ee61c0bc38570e493d8d4fb28a533ec04bf9a03eb9166236b25"}, "url": "/docs/compare/?release=9.5.22#9.5.22-0e828a8ecd846f2a", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-1d9e9eb64368fe4a", "cves": [], "html": "<p>确保复制槽的 <code>io_in_progress_lock</code> 在失败代码路径中被释放（Pavan Deolasee）</p>\n<p>这可能导致 walsender 之后卡在等待该锁上。</p>", "text": "确保复制槽的 io_in_progress_lock 在失败代码路径中被释放（Pavan Deolasee） 这可能导致 walsender 之后卡在等待该锁上。", "title": "确保复制槽的 io_in_progress_lock 在失败代码路径中被释放", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "3c9c95224f594934b2d722bd26c89302864785795360d8cd2665af9c3dd33ac0", "section_path": ["变更"], "commit_groups": [["038c9bbe9", "250041a56", "3dcaea4b0", "72b2b9c52", "a9d9bdd3a", "d278d4e1a"], ["223e9c77d", "2d8597ba6", "49bf81536", "ba4cc05ce", "ce28a43ff", "f36a10434"]], "identity_text": "Ensure that a replication slot's io_in_progress_lock is released in failure code paths (Pavan Deolasee) This could result in a walsender later becoming stuck waiting for the lock.", "commit_aliases": ["038c9bbe9", "223e9c77d", "250041a56", "2d8597ba6", "3dcaea4b0", "49bf81536", "72b2b9c52", "a9d9bdd3a", "ba4cc05ce", "ce28a43ff", "d278d4e1a", "f36a10434"], "source_commits": ["2d8597ba6", "3dcaea4b0"], "source_entry_id": "9.6.18/changes/020", "db_id": "b7a2a434b31db8fe9d51a32ffdcbd2c9", "patch_ids": ["073769dfbdef30ab82ee4a086842dae7", "250c289a57b7e94fadf518914341b9aa"], "statement_hash": "fe35fa7ec988e0c03d34cc7fb21c8134735fe9ad2a4b82cdd5aea88145d85cf3", "relations": [{"rule": 2, "type": "equivalent", "target": "49e6106f1b8c589675911ae6e8114480", "evidence": {"same_day": true, "patch_ids": ["073769dfbdef30ab82ee4a086842dae7", "250c289a57b7e94fadf518914341b9aa"], "statement_hash": "fe35fa7ec988e0c03d34cc7fb21c8134735fe9ad2a4b82cdd5aea88145d85cf3"}}, {"rule": 2, "type": "equivalent", "target": "8d5b02d64733f6ae2be77f9406700aca", "evidence": {"same_day": true, "patch_ids": ["073769dfbdef30ab82ee4a086842dae7", "250c289a57b7e94fadf518914341b9aa"], "statement_hash": "fe35fa7ec988e0c03d34cc7fb21c8134735fe9ad2a4b82cdd5aea88145d85cf3"}}, {"rule": 2, "type": "equivalent", "target": "a09a60a9acd28901f8e195523cbf8280", "evidence": {"same_day": true, "patch_ids": ["073769dfbdef30ab82ee4a086842dae7", "250c289a57b7e94fadf518914341b9aa"], "statement_hash": "fe35fa7ec988e0c03d34cc7fb21c8134735fe9ad2a4b82cdd5aea88145d85cf3"}}, {"rule": 2, "type": "equivalent", "target": "aefd8832d249a50994aafa4483e439d2", "evidence": {"same_day": true, "patch_ids": ["073769dfbdef30ab82ee4a086842dae7", "250c289a57b7e94fadf518914341b9aa"], "statement_hash": "fe35fa7ec988e0c03d34cc7fb21c8134735fe9ad2a4b82cdd5aea88145d85cf3"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8d5b02d64733f6ae2be77f9406700aca", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "确保在失败代码路径中释放复制槽的 io_in_progress_lock", "evidence": {"same_day": true, "patch_ids": ["073769dfbdef30ab82ee4a086842dae7", "250c289a57b7e94fadf518914341b9aa"], "statement_hash": "fe35fa7ec988e0c03d34cc7fb21c8134735fe9ad2a4b82cdd5aea88145d85cf3"}, "url": "/docs/compare/?release=12.3#12.3-2b91a72492c7f156", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "49e6106f1b8c589675911ae6e8114480", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "确保在失败代码路径中释放复制槽的 io_in_progress_lock", "evidence": {"same_day": true, "patch_ids": ["073769dfbdef30ab82ee4a086842dae7", "250c289a57b7e94fadf518914341b9aa"], "statement_hash": "fe35fa7ec988e0c03d34cc7fb21c8134735fe9ad2a4b82cdd5aea88145d85cf3"}, "url": "/docs/compare/?release=11.8#11.8-e0835f75d9ce7568", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "aefd8832d249a50994aafa4483e439d2", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "确保在失败代码路径中释放复制槽的 io_in_progress_lock", "evidence": {"same_day": true, "patch_ids": ["073769dfbdef30ab82ee4a086842dae7", "250c289a57b7e94fadf518914341b9aa"], "statement_hash": "fe35fa7ec988e0c03d34cc7fb21c8134735fe9ad2a4b82cdd5aea88145d85cf3"}, "url": "/docs/compare/?release=10.13#10.13-e0835f75d9ce7568", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "a09a60a9acd28901f8e195523cbf8280", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "确保复制槽的 io_in_progress_lock 在失败代码路径中被释放", "evidence": {"same_day": true, "patch_ids": ["073769dfbdef30ab82ee4a086842dae7", "250c289a57b7e94fadf518914341b9aa"], "statement_hash": "fe35fa7ec988e0c03d34cc7fb21c8134735fe9ad2a4b82cdd5aea88145d85cf3"}, "url": "/docs/compare/?release=9.5.22#9.5.22-1d9e9eb64368fe4a", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-a57b113a3c5767d3", "cves": [], "html": "<p>修复同步备库管理中的竞态条件（Tom Lane）</p>\n<p>在 <code>synchronous_standby_names</code> 设置更改期间，存在一个时间窗口，可能对是否可以释放等待同步提交的事务做出错误决定。如果一个 walsender 进程退出并立即被另一个取代，也存在类似错误决定的风险。</p>", "text": "修复同步备库管理中的竞态条件（Tom Lane） 在 synchronous_standby_names 设置更改期间，存在一个时间窗口，可能对是否可以释放等待同步提交的事务做出错误决定。如果一个 walsender 进程退出并立即被另一个取代，也存在类似错误决定的风险。", "title": "修复同步备库管理中的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "e88bfae157d70b9e6683fd628f9f2753a300d4a9cd96ba69b5ee78a0b6db6d83", "section_path": ["变更"], "commit_groups": [["00ef5d52c", "63ecdaf75", "b3fa6d016", "c65c1aa82", "f332241a6"]], "identity_text": "Fix race conditions in synchronous standby management (Tom Lane) During a change in the synchronous_standby_names setting, there was a window in which wrong decisions could be made about whether it is OK to release transactions that are waiting for synchronous commit. Another hazard for similarly wrong decisions existed if a walsender process exited and was immediately replaced by another.", "commit_aliases": ["00ef5d52c", "63ecdaf75", "b3fa6d016", "c65c1aa82", "f332241a6"], "source_commits": ["c65c1aa82"], "source_entry_id": "9.6.18/changes/021", "db_id": "4de61a23e2a85d85bf4191ffea954456", "patch_ids": ["81c6d9613c2be59166df8736bd552a1e"], "statement_hash": "3b2e79cc728e2d728a973e00c748471dc2dcdb5b728a01491d5bd55d046167c2", "relations": [{"rule": 2, "type": "equivalent", "target": "2ebb9093c6f5738e41f7b66b2a761a25", "evidence": {"same_day": true, "patch_ids": ["81c6d9613c2be59166df8736bd552a1e"], "statement_hash": "3b2e79cc728e2d728a973e00c748471dc2dcdb5b728a01491d5bd55d046167c2"}}, {"rule": 2, "type": "equivalent", "target": "34926f4569a2a531df24a36bbcb8a1bf", "evidence": {"same_day": true, "patch_ids": ["81c6d9613c2be59166df8736bd552a1e"], "statement_hash": "3b2e79cc728e2d728a973e00c748471dc2dcdb5b728a01491d5bd55d046167c2"}}, {"rule": 2, "type": "equivalent", "target": "4bdc3f545b9148d6817d7438cf8b47e1", "evidence": {"same_day": true, "patch_ids": ["81c6d9613c2be59166df8736bd552a1e"], "statement_hash": "3b2e79cc728e2d728a973e00c748471dc2dcdb5b728a01491d5bd55d046167c2"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2ebb9093c6f5738e41f7b66b2a761a25", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复同步备库管理中的竞争条件", "evidence": {"same_day": true, "patch_ids": ["81c6d9613c2be59166df8736bd552a1e"], "statement_hash": "3b2e79cc728e2d728a973e00c748471dc2dcdb5b728a01491d5bd55d046167c2"}, "url": "/docs/compare/?release=12.3#12.3-13d10710a5b5adb5", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "4bdc3f545b9148d6817d7438cf8b47e1", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复同步备库管理中的竞争条件", "evidence": {"same_day": true, "patch_ids": ["81c6d9613c2be59166df8736bd552a1e"], "statement_hash": "3b2e79cc728e2d728a973e00c748471dc2dcdb5b728a01491d5bd55d046167c2"}, "url": "/docs/compare/?release=11.8#11.8-44452efc7953fb6b", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "34926f4569a2a531df24a36bbcb8a1bf", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复同步备库管理中的竞争条件", "evidence": {"same_day": true, "patch_ids": ["81c6d9613c2be59166df8736bd552a1e"], "statement_hash": "3b2e79cc728e2d728a973e00c748471dc2dcdb5b728a01491d5bd55d046167c2"}, "url": "/docs/compare/?release=10.13#10.13-44452efc7953fb6b", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}]}, {"id": "9.6.18-68ac647cd62a7cc2", "cves": [], "html": "<p>确保备库服务器上 <code>nextXid</code> 不会倒退（Eka Palamadai）</p>\n<p>这一竞态条件可能使错误的热备反馈消息被发回主库，可能导致主库过早运行 <code>VACUUM</code>。</p>", "text": "确保备库服务器上 nextXid 不会倒退（Eka Palamadai） 这一竞态条件可能使错误的热备反馈消息被发回主库，可能导致主库过早运行 VACUUM。", "title": "确保备库服务器上 nextXid 不会倒退", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "9a70d8dae80f48065fd95ebc80b1c4bebed9cbc0e206455ddf826449c84b7580", "section_path": ["变更"], "commit_groups": [["05e0aff58", "4e8cad2da", "a493f9334", "d22ac5378"]], "identity_text": "Ensure nextXid can't go backwards on a standby server (Eka Palamadai) This race condition could allow incorrect hot standby feedback messages to be sent back to the primary server, potentially allowing VACUUM to run too soon on the primary.", "commit_aliases": ["05e0aff58", "4e8cad2da", "a493f9334", "d22ac5378"], "source_commits": ["4e8cad2da"], "source_entry_id": "9.6.18/changes/022", "db_id": "70c6ac53973e68036f34916e0d9f1d5e", "patch_ids": ["3f3de0e3455c037f2437ef94a6399660"], "statement_hash": "9e9968f30cc4fe2014b90d42a4ff0e09dc036676583b5a22db13ffc767c2af18", "relations": [{"rule": 2, "type": "equivalent", "target": "272601a64a732b1a4a44f7b76e926bf4", "evidence": {"same_day": true, "patch_ids": ["3f3de0e3455c037f2437ef94a6399660"], "statement_hash": "9e9968f30cc4fe2014b90d42a4ff0e09dc036676583b5a22db13ffc767c2af18"}}, {"rule": 2, "type": "equivalent", "target": "a2820077d8e7c05a8915fa36543d7e04", "evidence": {"same_day": true, "patch_ids": ["3f3de0e3455c037f2437ef94a6399660"], "statement_hash": "9e9968f30cc4fe2014b90d42a4ff0e09dc036676583b5a22db13ffc767c2af18"}}, {"rule": 2, "type": "equivalent", "target": "b0b809dd4145aaf18e208e689f412a45", "evidence": {"same_day": true, "patch_ids": ["3f3de0e3455c037f2437ef94a6399660"], "statement_hash": "9e9968f30cc4fe2014b90d42a4ff0e09dc036676583b5a22db13ffc767c2af18"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2820077d8e7c05a8915fa36543d7e04", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "确保备库上的 nextXid 不会倒退", "evidence": {"same_day": true, "patch_ids": ["3f3de0e3455c037f2437ef94a6399660"], "statement_hash": "9e9968f30cc4fe2014b90d42a4ff0e09dc036676583b5a22db13ffc767c2af18"}, "url": "/docs/compare/?release=11.8#11.8-81f9c755f6992459", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "b0b809dd4145aaf18e208e689f412a45", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "确保备库上的 nextXid 不会倒退", "evidence": {"same_day": true, "patch_ids": ["3f3de0e3455c037f2437ef94a6399660"], "statement_hash": "9e9968f30cc4fe2014b90d42a4ff0e09dc036676583b5a22db13ffc767c2af18"}, "url": "/docs/compare/?release=10.13#10.13-81f9c755f6992459", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "272601a64a732b1a4a44f7b76e926bf4", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "确保备库服务器上 nextXid 不会倒退", "evidence": {"same_day": true, "patch_ids": ["3f3de0e3455c037f2437ef94a6399660"], "statement_hash": "9e9968f30cc4fe2014b90d42a4ff0e09dc036676583b5a22db13ffc767c2af18"}, "url": "/docs/compare/?release=9.5.22#9.5.22-68ac647cd62a7cc2", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-1f7df64db7301187", "cves": [], "html": "<p>为少数错误报告补上缺失的 SQLSTATE 值（Sawada Masahiko）</p>", "text": "为少数错误报告补上缺失的 SQLSTATE 值（Sawada Masahiko）", "title": "为少数错误报告补上缺失的 SQLSTATE 值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "5186270cbf3a283af074aa48b126e771cdf551d12ecdf57470828941227cbece", "section_path": ["变更"], "commit_groups": [["18c41cb6b", "569f9354b", "6bdfe428d", "b4f140869", "e37824136", "fe27ce1c1"]], "identity_text": "Add missing SQLSTATE values to a few error reports (Sawada Masahiko)", "commit_aliases": ["18c41cb6b", "569f9354b", "6bdfe428d", "b4f140869", "e37824136", "fe27ce1c1"], "source_commits": ["fe27ce1c1"], "source_entry_id": "9.6.18/changes/023", "db_id": "e9e16b73da900751d27af9717dc9cadd", "patch_ids": ["95fa83e84fa735fa6772c5a7cf0e20e9"], "statement_hash": "6203b18db9bc05790271f3024f22277b886efb401268603c980bfd01f6336c79", "relations": [{"rule": 2, "type": "equivalent", "target": "2065c32f3e3290021e9f29159ed0031b", "evidence": {"same_day": true, "patch_ids": ["95fa83e84fa735fa6772c5a7cf0e20e9"], "statement_hash": "6203b18db9bc05790271f3024f22277b886efb401268603c980bfd01f6336c79"}}, {"rule": 2, "type": "equivalent", "target": "6c228a9d22842aa71a7727972e8eaa10", "evidence": {"same_day": true, "patch_ids": ["95fa83e84fa735fa6772c5a7cf0e20e9"], "statement_hash": "6203b18db9bc05790271f3024f22277b886efb401268603c980bfd01f6336c79"}}, {"rule": 2, "type": "equivalent", "target": "a15b05ed8fbbf3ab85b57e40fb4ce586", "evidence": {"same_day": true, "patch_ids": ["95fa83e84fa735fa6772c5a7cf0e20e9"], "statement_hash": "6203b18db9bc05790271f3024f22277b886efb401268603c980bfd01f6336c79"}}, {"rule": 2, "type": "equivalent", "target": "cb9b44a4464ed285e5e6555c0074c1c4", "evidence": {"same_day": true, "patch_ids": ["95fa83e84fa735fa6772c5a7cf0e20e9"], "statement_hash": "6203b18db9bc05790271f3024f22277b886efb401268603c980bfd01f6336c79"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cb9b44a4464ed285e5e6555c0074c1c4", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "为几个错误报告补上缺失的 SQLSTATE 值", "evidence": {"same_day": true, "patch_ids": ["95fa83e84fa735fa6772c5a7cf0e20e9"], "statement_hash": "6203b18db9bc05790271f3024f22277b886efb401268603c980bfd01f6336c79"}, "url": "/docs/compare/?release=12.3#12.3-b781c8aa94e5cf99", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "2065c32f3e3290021e9f29159ed0031b", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "为几个错误报告补上缺失的 SQLSTATE 值", "evidence": {"same_day": true, "patch_ids": ["95fa83e84fa735fa6772c5a7cf0e20e9"], "statement_hash": "6203b18db9bc05790271f3024f22277b886efb401268603c980bfd01f6336c79"}, "url": "/docs/compare/?release=11.8#11.8-69ca7fb3ed12cfcf", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "a15b05ed8fbbf3ab85b57e40fb4ce586", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "为几个错误报告补上缺失的 SQLSTATE 值", "evidence": {"same_day": true, "patch_ids": ["95fa83e84fa735fa6772c5a7cf0e20e9"], "statement_hash": "6203b18db9bc05790271f3024f22277b886efb401268603c980bfd01f6336c79"}, "url": "/docs/compare/?release=10.13#10.13-69ca7fb3ed12cfcf", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "6c228a9d22842aa71a7727972e8eaa10", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "为少数错误报告补上缺失的 SQLSTATE 值", "evidence": {"same_day": true, "patch_ids": ["95fa83e84fa735fa6772c5a7cf0e20e9"], "statement_hash": "6203b18db9bc05790271f3024f22277b886efb401268603c980bfd01f6336c79"}, "url": "/docs/compare/?release=9.5.22#9.5.22-1f7df64db7301187", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-b6a18b5603ac59cb", "cves": [], "html": "<p>修复 PL/pgSQL，使其可靠地拒绝把事件触发器函数当作普通函数执行（Tom Lane）</p>", "text": "修复 PL/pgSQL，使其可靠地拒绝把事件触发器函数当作普通函数执行（Tom Lane）", "title": "修复 PL/pgSQL，使其可靠地拒绝把事件触发器函数当作普通函数执行", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "9a0932d3f5f760cf96dd4cbcd9d9f783dacbb6eeb4dfb93bad71da607d4929cf", "section_path": ["变更"], "commit_groups": [["32aa14d40", "3e5308969", "612d207bc", "6af63cf8c", "761a5688b", "bbefb1154"]], "identity_text": "Fix PL/pgSQL to reliably refuse to execute an event trigger function as a plain function (Tom Lane)", "commit_aliases": ["32aa14d40", "3e5308969", "612d207bc", "6af63cf8c", "761a5688b", "bbefb1154"], "source_commits": ["3e5308969"], "source_entry_id": "9.6.18/changes/024", "db_id": "f95727f67cae98416ee2b67e932b89d5", "patch_ids": ["cc39e7a39baa7a5827063f9e683a9178"], "statement_hash": "b1218664b3a80ba7853a331cb331df7cb761258c8bb10c7b23779bcde812e55d", "relations": [{"rule": 2, "type": "equivalent", "target": "345cbc43e1407eb019d6ed1f60ee8f91", "evidence": {"same_day": true, "patch_ids": ["cc39e7a39baa7a5827063f9e683a9178"], "statement_hash": "b1218664b3a80ba7853a331cb331df7cb761258c8bb10c7b23779bcde812e55d"}}, {"rule": 2, "type": "equivalent", "target": "4e52c2f502c6e0897d8a1b3e9ca67efe", "evidence": {"same_day": true, "patch_ids": ["cc39e7a39baa7a5827063f9e683a9178"], "statement_hash": "b1218664b3a80ba7853a331cb331df7cb761258c8bb10c7b23779bcde812e55d"}}, {"rule": 2, "type": "equivalent", "target": "9387468acfa91ec955cd14175f688f42", "evidence": {"same_day": true, "patch_ids": ["cc39e7a39baa7a5827063f9e683a9178"], "statement_hash": "b1218664b3a80ba7853a331cb331df7cb761258c8bb10c7b23779bcde812e55d"}}, {"rule": 2, "type": "equivalent", "target": "c6f5e3f95c20ab12d143eca9a07cb33c", "evidence": {"same_day": true, "patch_ids": ["cc39e7a39baa7a5827063f9e683a9178"], "statement_hash": "b1218664b3a80ba7853a331cb331df7cb761258c8bb10c7b23779bcde812e55d"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "345cbc43e1407eb019d6ed1f60ee8f91", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复 PL/pgSQL，使其可靠地拒绝将事件触发器函数作为普通函数执行", "evidence": {"same_day": true, "patch_ids": ["cc39e7a39baa7a5827063f9e683a9178"], "statement_hash": "b1218664b3a80ba7853a331cb331df7cb761258c8bb10c7b23779bcde812e55d"}, "url": "/docs/compare/?release=12.3#12.3-36e71327f0690bd8", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "4e52c2f502c6e0897d8a1b3e9ca67efe", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复 PL/pgSQL，使其可靠地拒绝将事件触发器函数作为普通函数执行", "evidence": {"same_day": true, "patch_ids": ["cc39e7a39baa7a5827063f9e683a9178"], "statement_hash": "b1218664b3a80ba7853a331cb331df7cb761258c8bb10c7b23779bcde812e55d"}, "url": "/docs/compare/?release=11.8#11.8-a5d07257463b709b", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "9387468acfa91ec955cd14175f688f42", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复 PL/pgSQL，使其可靠地拒绝将事件触发器函数作为普通函数执行", "evidence": {"same_day": true, "patch_ids": ["cc39e7a39baa7a5827063f9e683a9178"], "statement_hash": "b1218664b3a80ba7853a331cb331df7cb761258c8bb10c7b23779bcde812e55d"}, "url": "/docs/compare/?release=10.13#10.13-a5d07257463b709b", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "c6f5e3f95c20ab12d143eca9a07cb33c", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "修复 PL/pgSQL，使其可靠地拒绝把事件触发器函数当作普通函数执行", "evidence": {"same_day": true, "patch_ids": ["cc39e7a39baa7a5827063f9e683a9178"], "statement_hash": "b1218664b3a80ba7853a331cb331df7cb761258c8bb10c7b23779bcde812e55d"}, "url": "/docs/compare/?release=9.5.22#9.5.22-b6a18b5603ac59cb", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-492272dff32caf3d", "cves": [], "html": "<p>修复使用 <code>sslmode=verify-full</code> 时 <span>libpq</span> 中的内存泄漏（Roman Peshkurov）</p>\n<p>连接启动期间的证书验证可能泄漏一些内存。如果客户端进程在其生命周期内打开许多数据库连接，这就会成为问题。</p>", "text": "修复使用 sslmode=verify-full 时 libpq 中的内存泄漏（Roman Peshkurov） 连接启动期间的证书验证可能泄漏一些内存。如果客户端进程在其生命周期内打开许多数据库连接，这就会成为问题。", "title": "修复使用 sslmode=verify-full 时 libpq 中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "502962e287e8255780f8616029ba884105524b0c2eb5a01aefce54df52a8e5b3", "section_path": ["变更"], "commit_groups": [["1bb0293d8", "27dbe1a18", "35d08658d", "c9c15790d", "e1c08722a", "e5e295d50"]], "identity_text": "Fix memory leak in libpq when using sslmode=verify-full (Roman Peshkurov) Certificate verification during connection startup could leak some memory. This would become an issue if a client process opened many database connections during its lifetime.", "commit_aliases": ["1bb0293d8", "27dbe1a18", "35d08658d", "c9c15790d", "e1c08722a", "e5e295d50"], "source_commits": ["c9c15790d"], "source_entry_id": "9.6.18/changes/025", "db_id": "59d9303b6ecf3005ed2806e24a3ba6f4", "patch_ids": ["6d68db2cc74c3575a3afa59fb55211ad"], "statement_hash": "29132bba58d823484ab45df669644623c0af1ba28d677b90d9d5630154a0450e", "relations": [{"rule": 2, "type": "equivalent", "target": "4b86d16c3aa59d9c7464466f086ce6d8", "evidence": {"same_day": true, "patch_ids": ["6d68db2cc74c3575a3afa59fb55211ad"], "statement_hash": "29132bba58d823484ab45df669644623c0af1ba28d677b90d9d5630154a0450e"}}, {"rule": 2, "type": "equivalent", "target": "553edcbd407f274601a6a08ef3271069", "evidence": {"same_day": true, "patch_ids": ["6d68db2cc74c3575a3afa59fb55211ad"], "statement_hash": "29132bba58d823484ab45df669644623c0af1ba28d677b90d9d5630154a0450e"}}, {"rule": 2, "type": "equivalent", "target": "7569ce1fedee0ca0d57987004a2130bf", "evidence": {"same_day": true, "patch_ids": ["6d68db2cc74c3575a3afa59fb55211ad"], "statement_hash": "29132bba58d823484ab45df669644623c0af1ba28d677b90d9d5630154a0450e"}}, {"rule": 2, "type": "equivalent", "target": "9663fe9a33076a65f15e72ec78500a20", "evidence": {"same_day": true, "patch_ids": ["6d68db2cc74c3575a3afa59fb55211ad"], "statement_hash": "29132bba58d823484ab45df669644623c0af1ba28d677b90d9d5630154a0450e"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b86d16c3aa59d9c7464466f086ce6d8", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复 libpq 使用 sslmode=verify-full 时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["6d68db2cc74c3575a3afa59fb55211ad"], "statement_hash": "29132bba58d823484ab45df669644623c0af1ba28d677b90d9d5630154a0450e"}, "url": "/docs/compare/?release=12.3#12.3-7b36727397290db4", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "9663fe9a33076a65f15e72ec78500a20", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复 libpq 使用 sslmode=verify-full 时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["6d68db2cc74c3575a3afa59fb55211ad"], "statement_hash": "29132bba58d823484ab45df669644623c0af1ba28d677b90d9d5630154a0450e"}, "url": "/docs/compare/?release=11.8#11.8-30b08a02b4d835d8", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "553edcbd407f274601a6a08ef3271069", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复 libpq 使用 sslmode=verify-full 时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["6d68db2cc74c3575a3afa59fb55211ad"], "statement_hash": "29132bba58d823484ab45df669644623c0af1ba28d677b90d9d5630154a0450e"}, "url": "/docs/compare/?release=10.13#10.13-30b08a02b4d835d8", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "7569ce1fedee0ca0d57987004a2130bf", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "修复使用 sslmode=verify-full 时 libpq 中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["6d68db2cc74c3575a3afa59fb55211ad"], "statement_hash": "29132bba58d823484ab45df669644623c0af1ba28d677b90d9d5630154a0450e"}, "url": "/docs/compare/?release=9.5.22#9.5.22-492272dff32caf3d", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-52fc5c246d4ce733", "cves": [], "html": "<p>修复 <span>ecpg</span> 在所有平台上都把仅为 <span>“<span><code>-</code></span>”</span> 的参数当作<span>“<span>从 stdin 读取</span>”</span>（Tom Lane）</p>", "text": "修复 ecpg 在所有平台上都把仅为 “-” 的参数当作“从 stdin 读取”（Tom Lane）", "title": "修复 ecpg 在所有平台上都把仅为 “-” 的参数当作“从 stdin 读取”", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "0278da3ecbb04c38090155c5ca4c08017257ac0f27c093213b5b9e4506290cb6", "section_path": ["变更"], "commit_groups": [["036fdf6be", "5f9eace5d", "980a70b97", "aae7e8530", "c0eb57dd9", "ef7d6d79a"]], "identity_text": "Fix ecpg to treat an argument of just - as meaning read from stdin on all platforms (Tom Lane)", "commit_aliases": ["036fdf6be", "5f9eace5d", "980a70b97", "aae7e8530", "c0eb57dd9", "ef7d6d79a"], "source_commits": ["c0eb57dd9"], "source_entry_id": "9.6.18/changes/026", "db_id": "42a1e53540d420214fd96dc1547d3c54", "patch_ids": ["eecf16befc61b5f87fa45adb19719c26"], "statement_hash": "0e2f8b5a400dc9db1aa8fb81c895cf7be77f219ebbd3b7e2f74231a86a117875", "relations": [{"rule": 2, "type": "equivalent", "target": "6a4a3a091caf806f6bc9bd9b1cb2d194", "evidence": {"same_day": true, "patch_ids": ["eecf16befc61b5f87fa45adb19719c26"], "statement_hash": "0e2f8b5a400dc9db1aa8fb81c895cf7be77f219ebbd3b7e2f74231a86a117875"}}, {"rule": 2, "type": "equivalent", "target": "819404475daf180026c644a2b44c5436", "evidence": {"same_day": true, "patch_ids": ["eecf16befc61b5f87fa45adb19719c26"], "statement_hash": "0e2f8b5a400dc9db1aa8fb81c895cf7be77f219ebbd3b7e2f74231a86a117875"}}, {"rule": 2, "type": "equivalent", "target": "b8f1ac84fc1653c621e609a0c48e8a4c", "evidence": {"same_day": true, "patch_ids": ["eecf16befc61b5f87fa45adb19719c26"], "statement_hash": "0e2f8b5a400dc9db1aa8fb81c895cf7be77f219ebbd3b7e2f74231a86a117875"}}, {"rule": 2, "type": "equivalent", "target": "cff5e6ff586cca37f65f333e05c359ae", "evidence": {"same_day": true, "patch_ids": ["eecf16befc61b5f87fa45adb19719c26"], "statement_hash": "0e2f8b5a400dc9db1aa8fb81c895cf7be77f219ebbd3b7e2f74231a86a117875"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6a4a3a091caf806f6bc9bd9b1cb2d194", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复 ecpg，使其在所有平台上都将仅包含 “-” 的参数解释为“从 stdin 读取”", "evidence": {"same_day": true, "patch_ids": ["eecf16befc61b5f87fa45adb19719c26"], "statement_hash": "0e2f8b5a400dc9db1aa8fb81c895cf7be77f219ebbd3b7e2f74231a86a117875"}, "url": "/docs/compare/?release=12.3#12.3-f9e6f47b17c5484d", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "819404475daf180026c644a2b44c5436", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复 ecpg，使其在所有平台上都将仅包含 “-” 的参数解释为“从 stdin 读取”", "evidence": {"same_day": true, "patch_ids": ["eecf16befc61b5f87fa45adb19719c26"], "statement_hash": "0e2f8b5a400dc9db1aa8fb81c895cf7be77f219ebbd3b7e2f74231a86a117875"}, "url": "/docs/compare/?release=11.8#11.8-2774b02c4bef748f", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "b8f1ac84fc1653c621e609a0c48e8a4c", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复 ecpg，使其在所有平台上都将仅包含 “-” 的参数解释为“从 stdin 读取”", "evidence": {"same_day": true, "patch_ids": ["eecf16befc61b5f87fa45adb19719c26"], "statement_hash": "0e2f8b5a400dc9db1aa8fb81c895cf7be77f219ebbd3b7e2f74231a86a117875"}, "url": "/docs/compare/?release=10.13#10.13-2774b02c4bef748f", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "cff5e6ff586cca37f65f333e05c359ae", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "修复 ecpg 在所有平台上都把仅为 “-” 的参数当作“从 stdin 读取”", "evidence": {"same_day": true, "patch_ids": ["eecf16befc61b5f87fa45adb19719c26"], "statement_hash": "0e2f8b5a400dc9db1aa8fb81c895cf7be77f219ebbd3b7e2f74231a86a117875"}, "url": "/docs/compare/?release=9.5.22#9.5.22-52fc5c246d4ce733", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-5e6a1bc08a502e55", "cves": [], "html": "<p>为 <span>pg_dump</span> 添加 <code>ALTER ... DEPENDS ON EXTENSION</code> 支持（Álvaro Herrera）</p>\n<p><span>pg_dump</span> 此前忽略以这种方式添加的依赖，导致它们在转储/恢复或 <span>pg_upgrade</span> 期间被遗忘。</p>", "text": "为 pg_dump 添加 ALTER ... DEPENDS ON EXTENSION 支持（Álvaro Herrera） pg_dump 此前忽略以这种方式添加的依赖，导致它们在转储/恢复或 pg_upgrade 期间被遗忘。", "title": "为 pg_dump 添加 ALTER ... DEPENDS ON EXTENSION 支持", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "4959ef4f14129eabbd5ed818e519f99de6358b3f4ae260ac2ed132bdb97cf4c5", "section_path": ["变更"], "commit_groups": [["046001fe3", "55978e28c", "7984c7e9f", "c6b75b3f1", "cf72898c6"], ["2b9d70159", "b08dee24a", "d04e342ba", "e70187c9b", "f977e6dec"], ["3dfd2d6cd", "73b31e784", "7c094a11c", "899a04f5e", "b7739ebec"]], "identity_text": "Add pg_dump support for ALTER ... DEPENDS ON EXTENSION (Álvaro Herrera) pg_dump previously ignored dependencies added this way, causing them to be forgotten during dump/restore or pg_upgrade.", "commit_aliases": ["046001fe3", "2b9d70159", "3dfd2d6cd", "55978e28c", "73b31e784", "7984c7e9f", "7c094a11c", "899a04f5e", "b08dee24a", "b7739ebec", "c6b75b3f1", "cf72898c6", "d04e342ba", "e70187c9b", "f977e6dec"], "source_commits": ["2b9d70159", "73b31e784", "7984c7e9f"], "source_entry_id": "9.6.18/changes/027", "db_id": "f8199b9150558f0053448f93f9642254", "patch_ids": ["14fe4ec45c18e9be4475d97abba84500", "b9d0c01e4ae27a7b990254dc87619ef1", "f7eaa8c4c51d282e9625c7e21ffffc6b"], "statement_hash": "c491d88bf7cd0f1546c0dec5502016f034b2d3c24c58dafe883234e3639d6990", "relations": [{"rule": 2, "type": "equivalent", "target": "09d7cf6a3624acb5929f8c14a86d320b", "evidence": {"same_day": true, "patch_ids": ["14fe4ec45c18e9be4475d97abba84500", "b9d0c01e4ae27a7b990254dc87619ef1", "f7eaa8c4c51d282e9625c7e21ffffc6b"], "statement_hash": "c491d88bf7cd0f1546c0dec5502016f034b2d3c24c58dafe883234e3639d6990"}}, {"rule": 2, "type": "equivalent", "target": "cb4d4c22e907f01398e86e346dc9c676", "evidence": {"same_day": true, "patch_ids": ["14fe4ec45c18e9be4475d97abba84500", "b9d0c01e4ae27a7b990254dc87619ef1", "f7eaa8c4c51d282e9625c7e21ffffc6b"], "statement_hash": "c491d88bf7cd0f1546c0dec5502016f034b2d3c24c58dafe883234e3639d6990"}}, {"rule": 2, "type": "equivalent", "target": "e5e6db0c574e7d072ec7a26f32ef0c29", "evidence": {"same_day": true, "patch_ids": ["14fe4ec45c18e9be4475d97abba84500", "b9d0c01e4ae27a7b990254dc87619ef1", "f7eaa8c4c51d282e9625c7e21ffffc6b"], "statement_hash": "c491d88bf7cd0f1546c0dec5502016f034b2d3c24c58dafe883234e3639d6990"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5e6db0c574e7d072ec7a26f32ef0c29", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "为 pg_dump 增加对 ALTER ... DEPENDS ON EXTENSION 的支持", "evidence": {"same_day": true, "patch_ids": ["14fe4ec45c18e9be4475d97abba84500", "b9d0c01e4ae27a7b990254dc87619ef1", "f7eaa8c4c51d282e9625c7e21ffffc6b"], "statement_hash": "c491d88bf7cd0f1546c0dec5502016f034b2d3c24c58dafe883234e3639d6990"}, "url": "/docs/compare/?release=12.3#12.3-8dabb85d87a70973", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "09d7cf6a3624acb5929f8c14a86d320b", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "为 pg_dump 增加对 ALTER ... DEPENDS ON EXTENSION 的支持", "evidence": {"same_day": true, "patch_ids": ["14fe4ec45c18e9be4475d97abba84500", "b9d0c01e4ae27a7b990254dc87619ef1", "f7eaa8c4c51d282e9625c7e21ffffc6b"], "statement_hash": "c491d88bf7cd0f1546c0dec5502016f034b2d3c24c58dafe883234e3639d6990"}, "url": "/docs/compare/?release=11.8#11.8-6570405611594d3c", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "cb4d4c22e907f01398e86e346dc9c676", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "为 pg_dump 增加对 ALTER ... DEPENDS ON EXTENSION 的支持", "evidence": {"same_day": true, "patch_ids": ["14fe4ec45c18e9be4475d97abba84500", "b9d0c01e4ae27a7b990254dc87619ef1", "f7eaa8c4c51d282e9625c7e21ffffc6b"], "statement_hash": "c491d88bf7cd0f1546c0dec5502016f034b2d3c24c58dafe883234e3639d6990"}, "url": "/docs/compare/?release=10.13#10.13-6570405611594d3c", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}]}, {"id": "9.6.18-631ca1215d6c17dd", "cves": [], "html": "<p>修复 <span>pg_dump</span> 转储 RLS 策略对象上的注释（Tom Lane）</p>", "text": "修复 pg_dump 转储 RLS 策略对象上的注释（Tom Lane）", "title": "修复 pg_dump 转储 RLS 策略对象上的注释", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "6df1f163968c9afa5df2aba40a793658b29b80ec7b4c68a6cfdc204cd2186c03", "section_path": ["变更"], "commit_groups": [["3380b9931", "6da7d3630", "bd2cd138f", "d9ec8d1d7", "f31364676", "f9d7bb68d"]], "identity_text": "Fix pg_dump to dump comments on RLS policy objects (Tom Lane)", "commit_aliases": ["3380b9931", "6da7d3630", "bd2cd138f", "d9ec8d1d7", "f31364676", "f9d7bb68d"], "source_commits": ["3380b9931"], "source_entry_id": "9.6.18/changes/028", "db_id": "44ee977d75639b5be3b742c340c30f16", "patch_ids": ["606311355c1c8c1d3af833d23d39feca"], "statement_hash": "5046af0d46dab82846d39781f89af0c569dc1a95b3647553bac73f3d2bd3a6d9", "relations": [{"rule": 2, "type": "equivalent", "target": "58313ea4c080dfe15d965f5a0df51e1d", "evidence": {"same_day": true, "patch_ids": ["606311355c1c8c1d3af833d23d39feca"], "statement_hash": "5046af0d46dab82846d39781f89af0c569dc1a95b3647553bac73f3d2bd3a6d9"}}, {"rule": 2, "type": "equivalent", "target": "5f17f8c0425c4560b262fff7d341eede", "evidence": {"same_day": true, "patch_ids": ["606311355c1c8c1d3af833d23d39feca"], "statement_hash": "5046af0d46dab82846d39781f89af0c569dc1a95b3647553bac73f3d2bd3a6d9"}}, {"rule": 2, "type": "equivalent", "target": "8006ac44eeafaedba4e129814d0deaba", "evidence": {"same_day": true, "patch_ids": ["606311355c1c8c1d3af833d23d39feca"], "statement_hash": "5046af0d46dab82846d39781f89af0c569dc1a95b3647553bac73f3d2bd3a6d9"}}, {"rule": 2, "type": "equivalent", "target": "e859422314570f65827212ac979a8497", "evidence": {"same_day": true, "patch_ids": ["606311355c1c8c1d3af833d23d39feca"], "statement_hash": "5046af0d46dab82846d39781f89af0c569dc1a95b3647553bac73f3d2bd3a6d9"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5f17f8c0425c4560b262fff7d341eede", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复 pg_dump，使其转储 RLS 策略对象上的注释", "evidence": {"same_day": true, "patch_ids": ["606311355c1c8c1d3af833d23d39feca"], "statement_hash": "5046af0d46dab82846d39781f89af0c569dc1a95b3647553bac73f3d2bd3a6d9"}, "url": "/docs/compare/?release=12.3#12.3-49a2377051f5c702", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "e859422314570f65827212ac979a8497", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复 pg_dump，使其转储 RLS 策略对象上的注释", "evidence": {"same_day": true, "patch_ids": ["606311355c1c8c1d3af833d23d39feca"], "statement_hash": "5046af0d46dab82846d39781f89af0c569dc1a95b3647553bac73f3d2bd3a6d9"}, "url": "/docs/compare/?release=11.8#11.8-45af8ee4eb6fc4b4", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "58313ea4c080dfe15d965f5a0df51e1d", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复 pg_dump，使其转储 RLS 策略对象上的注释", "evidence": {"same_day": true, "patch_ids": ["606311355c1c8c1d3af833d23d39feca"], "statement_hash": "5046af0d46dab82846d39781f89af0c569dc1a95b3647553bac73f3d2bd3a6d9"}, "url": "/docs/compare/?release=10.13#10.13-45af8ee4eb6fc4b4", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "8006ac44eeafaedba4e129814d0deaba", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "修复 pg_dump 转储 RLS 策略对象上的注释", "evidence": {"same_day": true, "patch_ids": ["606311355c1c8c1d3af833d23d39feca"], "statement_hash": "5046af0d46dab82846d39781f89af0c569dc1a95b3647553bac73f3d2bd3a6d9"}, "url": "/docs/compare/?release=9.5.22#9.5.22-631ca1215d6c17dd", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-e807ca1d6ba56c52", "cves": [], "html": "<p>在 <span>pg_dump</span> 中，把事件触发器的恢复推迟到最后（Fabrízio de Royes Mello、Hamid Akhtar、Tom Lane）</p>\n<p>这能把事件触发器干扰其他对象恢复的风险降到最低。</p>", "text": "在 pg_dump 中，把事件触发器的恢复推迟到最后（Fabrízio de Royes Mello、Hamid Akhtar、Tom Lane） 这能把事件触发器干扰其他对象恢复的风险降到最低。", "title": "在 pg_dump 中，把事件触发器的恢复推迟到最后", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "16589c1cbf23d661eb59277eeda3a6b22167ef5d7cc6f44f57f8fdd56d4b41fc", "section_path": ["变更"], "commit_groups": [["0b0247644", "475b061c8", "4c40b27b5", "8728b2c70", "f5d49f226", "fab545635"], ["564c1e6d7", "778066052", "830471e0d", "983ed99a6", "a9d70c108", "d050c6113"]], "identity_text": "In pg_dump, postpone restore of event triggers till the end (Fabrízio de Royes Mello, Hamid Akhtar, Tom Lane) This minimizes the risk that an event trigger could interfere with the restoration of other objects.", "commit_aliases": ["0b0247644", "475b061c8", "4c40b27b5", "564c1e6d7", "778066052", "830471e0d", "8728b2c70", "983ed99a6", "a9d70c108", "d050c6113", "f5d49f226", "fab545635"], "source_commits": ["778066052", "fab545635"], "source_entry_id": "9.6.18/changes/029", "db_id": "7e97a71c98aa5c34bb8003cd9dee00e0", "patch_ids": ["7125087871ca3469f00248abdd74d860", "bc95c0ec7766b7e38caf6e40b88c818d"], "statement_hash": "2bd7226e75e0b61b188a08034319a5c534b9c38743fdf702147e9b5444031542", "relations": [{"rule": 2, "type": "equivalent", "target": "072107359d0067312815b12da199c072", "evidence": {"same_day": true, "patch_ids": ["7125087871ca3469f00248abdd74d860", "bc95c0ec7766b7e38caf6e40b88c818d"], "statement_hash": "2bd7226e75e0b61b188a08034319a5c534b9c38743fdf702147e9b5444031542"}}, {"rule": 2, "type": "equivalent", "target": "1f39f9ecb7b6e16f5b92519fc00c3c99", "evidence": {"same_day": true, "patch_ids": ["7125087871ca3469f00248abdd74d860", "bc95c0ec7766b7e38caf6e40b88c818d"], "statement_hash": "2bd7226e75e0b61b188a08034319a5c534b9c38743fdf702147e9b5444031542"}}, {"rule": 2, "type": "equivalent", "target": "921238244a4ace6028c6720eaae54c6d", "evidence": {"same_day": true, "patch_ids": ["7125087871ca3469f00248abdd74d860", "bc95c0ec7766b7e38caf6e40b88c818d"], "statement_hash": "2bd7226e75e0b61b188a08034319a5c534b9c38743fdf702147e9b5444031542"}}, {"rule": 2, "type": "equivalent", "target": "f8e9cbf12893ff4d294069968a78257f", "evidence": {"same_day": true, "patch_ids": ["7125087871ca3469f00248abdd74d860", "bc95c0ec7766b7e38caf6e40b88c818d"], "statement_hash": "2bd7226e75e0b61b188a08034319a5c534b9c38743fdf702147e9b5444031542"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "072107359d0067312815b12da199c072", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "在 pg_dump 中，将事件触发器的恢复推迟到最后", "evidence": {"same_day": true, "patch_ids": ["7125087871ca3469f00248abdd74d860", "bc95c0ec7766b7e38caf6e40b88c818d"], "statement_hash": "2bd7226e75e0b61b188a08034319a5c534b9c38743fdf702147e9b5444031542"}, "url": "/docs/compare/?release=12.3#12.3-c5def455b9cb038d", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "f8e9cbf12893ff4d294069968a78257f", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "在 pg_dump 中，将事件触发器的恢复推迟到最后", "evidence": {"same_day": true, "patch_ids": ["7125087871ca3469f00248abdd74d860", "bc95c0ec7766b7e38caf6e40b88c818d"], "statement_hash": "2bd7226e75e0b61b188a08034319a5c534b9c38743fdf702147e9b5444031542"}, "url": "/docs/compare/?release=11.8#11.8-e5ac383e1f0be379", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "1f39f9ecb7b6e16f5b92519fc00c3c99", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "在 pg_dump 中，将事件触发器的恢复推迟到最后", "evidence": {"same_day": true, "patch_ids": ["7125087871ca3469f00248abdd74d860", "bc95c0ec7766b7e38caf6e40b88c818d"], "statement_hash": "2bd7226e75e0b61b188a08034319a5c534b9c38743fdf702147e9b5444031542"}, "url": "/docs/compare/?release=10.13#10.13-e5ac383e1f0be379", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "921238244a4ace6028c6720eaae54c6d", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "在 pg_dump 中，把事件触发器的恢复推迟到最后", "evidence": {"same_day": true, "patch_ids": ["7125087871ca3469f00248abdd74d860", "bc95c0ec7766b7e38caf6e40b88c818d"], "statement_hash": "2bd7226e75e0b61b188a08034319a5c534b9c38743fdf702147e9b5444031542"}, "url": "/docs/compare/?release=9.5.22#9.5.22-e807ca1d6ba56c52", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-9896aab3c02f3e64", "cves": [], "html": "<p>修复 <span>createdb</span> 实用程序中 <code>--encoding</code>、<code>--lc-ctype</code> 和 <code>--lc-collate</code> 值的引号处理（Michael Paquier）</p>", "text": "修复 createdb 实用程序中 --encoding、--lc-ctype 和 --lc-collate 值的引号处理（Michael Paquier）", "title": "修复 createdb 实用程序中 --encoding、--lc-ctype 和 --lc-collate 值的引号处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "0186d54b9c5c4beb764f8efc608b6cb8334b66e66e90a1982ae0ba893ac1ec87", "section_path": ["变更"], "commit_groups": [["008cf0409", "240c7c75f", "3340034f2", "49300e4cf", "83bd732eb", "943affb3d"], ["8e076f4f9", "aeb846edb", "c4b0edb07"]], "identity_text": "Fix quoting of --encoding, --lc-ctype and --lc-collate values in createdb utility (Michael Paquier)", "commit_aliases": ["008cf0409", "240c7c75f", "3340034f2", "49300e4cf", "83bd732eb", "8e076f4f9", "943affb3d", "aeb846edb", "c4b0edb07"], "source_commits": ["3340034f2", "c4b0edb07"], "source_entry_id": "9.6.18/changes/030", "db_id": "3019b8163e1c995314dc518c40596313", "patch_ids": ["992c59a6a7bca749fb7a9be60e255a10", "cac6eb876e8059ad8a904202b840f43b"], "statement_hash": "6bf2fe67a63664cc9b6ca95efe5b662add72403837d94af1ddc4f37d8e4b78d0", "relations": [{"rule": 2, "type": "equivalent", "target": "0ebb156c576c2265fcbed0fd4b28f6e6", "evidence": {"same_day": true, "patch_ids": ["992c59a6a7bca749fb7a9be60e255a10", "cac6eb876e8059ad8a904202b840f43b"], "statement_hash": "6bf2fe67a63664cc9b6ca95efe5b662add72403837d94af1ddc4f37d8e4b78d0"}}, {"rule": 2, "type": "equivalent", "target": "61804e0bbd8b50e13be46639d6db4196", "evidence": {"same_day": true, "patch_ids": ["992c59a6a7bca749fb7a9be60e255a10", "cac6eb876e8059ad8a904202b840f43b"], "statement_hash": "6bf2fe67a63664cc9b6ca95efe5b662add72403837d94af1ddc4f37d8e4b78d0"}}, {"rule": 2, "type": "equivalent", "target": "9631fea169d3e2bda212def89fad0300", "evidence": {"same_day": true, "patch_ids": ["992c59a6a7bca749fb7a9be60e255a10", "cac6eb876e8059ad8a904202b840f43b"], "statement_hash": "6bf2fe67a63664cc9b6ca95efe5b662add72403837d94af1ddc4f37d8e4b78d0"}}, {"rule": 2, "type": "equivalent", "target": "d890ca8665f057654035ee52656c258d", "evidence": {"same_day": true, "patch_ids": ["992c59a6a7bca749fb7a9be60e255a10", "cac6eb876e8059ad8a904202b840f43b"], "statement_hash": "6bf2fe67a63664cc9b6ca95efe5b662add72403837d94af1ddc4f37d8e4b78d0"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "61804e0bbd8b50e13be46639d6db4196", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复 createdb 工具中 --encoding、--lc-ctype 和 --lc-collate 值的引号处理", "evidence": {"same_day": true, "patch_ids": ["992c59a6a7bca749fb7a9be60e255a10", "cac6eb876e8059ad8a904202b840f43b"], "statement_hash": "6bf2fe67a63664cc9b6ca95efe5b662add72403837d94af1ddc4f37d8e4b78d0"}, "url": "/docs/compare/?release=12.3#12.3-d286099819e8671b", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "d890ca8665f057654035ee52656c258d", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复 createdb 工具中 --encoding、--lc-ctype 和 --lc-collate 值的引号处理", "evidence": {"same_day": true, "patch_ids": ["992c59a6a7bca749fb7a9be60e255a10", "cac6eb876e8059ad8a904202b840f43b"], "statement_hash": "6bf2fe67a63664cc9b6ca95efe5b662add72403837d94af1ddc4f37d8e4b78d0"}, "url": "/docs/compare/?release=11.8#11.8-8efba8920817e6a2", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "0ebb156c576c2265fcbed0fd4b28f6e6", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复 createdb 工具中 --encoding、--lc-ctype 和 --lc-collate 值的引号处理", "evidence": {"same_day": true, "patch_ids": ["992c59a6a7bca749fb7a9be60e255a10", "cac6eb876e8059ad8a904202b840f43b"], "statement_hash": "6bf2fe67a63664cc9b6ca95efe5b662add72403837d94af1ddc4f37d8e4b78d0"}, "url": "/docs/compare/?release=10.13#10.13-8efba8920817e6a2", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "9631fea169d3e2bda212def89fad0300", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "修复 createdb 实用程序中 --encoding、--lc-ctype 和 --lc-collate 值的引号处理", "evidence": {"same_day": true, "patch_ids": ["992c59a6a7bca749fb7a9be60e255a10", "cac6eb876e8059ad8a904202b840f43b"], "statement_hash": "6bf2fe67a63664cc9b6ca95efe5b662add72403837d94af1ddc4f37d8e4b78d0"}, "url": "/docs/compare/?release=9.5.22#9.5.22-9896aab3c02f3e64", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-e2d45b363d19ce8d", "cves": [], "html": "<p><code>contrib/lo</code> 的 <code>lo_manage()</code> 函数在被直接调用而非作为触发器调用时崩溃（Tom Lane）</p>", "text": "contrib/lo 的 lo_manage() 函数在被直接调用而非作为触发器调用时崩溃（Tom Lane）", "title": "contrib/lo 的 lo_manage() 函数在被直接调用而非作为触发器调用时崩溃", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "9012358325a7a047184d34c786acda10202ddf0426e12f94dbfc78c37cefb1b0", "section_path": ["变更"], "commit_groups": [["6dd9f3577", "7b1552283", "82bc56e63", "85f0d4703", "a9f821f48", "d56657c35"]], "identity_text": "contrib/lo's lo_manage() function crashed if called directly rather than as a trigger (Tom Lane)", "commit_aliases": ["6dd9f3577", "7b1552283", "82bc56e63", "85f0d4703", "a9f821f48", "d56657c35"], "source_commits": ["a9f821f48"], "source_entry_id": "9.6.18/changes/031", "db_id": "30ce258b16113589c905777f61676eed", "patch_ids": ["105321cacfa53733e73c715a8cfa6e7c"], "statement_hash": "39dd260ca6069ccc414dfaa950cfbe672f1eb396089b7ac9c0b7c44669cea5f5", "relations": [{"rule": 2, "type": "equivalent", "target": "69f9255589357b61beee5334257d8da5", "evidence": {"same_day": true, "patch_ids": ["105321cacfa53733e73c715a8cfa6e7c"], "statement_hash": "39dd260ca6069ccc414dfaa950cfbe672f1eb396089b7ac9c0b7c44669cea5f5"}}, {"rule": 2, "type": "equivalent", "target": "72595b9ea60880022a25cf3adf9c2543", "evidence": {"same_day": true, "patch_ids": ["105321cacfa53733e73c715a8cfa6e7c"], "statement_hash": "39dd260ca6069ccc414dfaa950cfbe672f1eb396089b7ac9c0b7c44669cea5f5"}}, {"rule": 2, "type": "equivalent", "target": "afe650853d30a9ef20f26cd2872adca2", "evidence": {"same_day": true, "patch_ids": ["105321cacfa53733e73c715a8cfa6e7c"], "statement_hash": "39dd260ca6069ccc414dfaa950cfbe672f1eb396089b7ac9c0b7c44669cea5f5"}}, {"rule": 2, "type": "equivalent", "target": "d832f23d03cce13f5515d8c16ded0771", "evidence": {"same_day": true, "patch_ids": ["105321cacfa53733e73c715a8cfa6e7c"], "statement_hash": "39dd260ca6069ccc414dfaa950cfbe672f1eb396089b7ac9c0b7c44669cea5f5"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "69f9255589357b61beee5334257d8da5", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "直接调用 contrib/lo 的 lo_manage() 函数，而非作为触发器调用时，会发生崩溃", "evidence": {"same_day": true, "patch_ids": ["105321cacfa53733e73c715a8cfa6e7c"], "statement_hash": "39dd260ca6069ccc414dfaa950cfbe672f1eb396089b7ac9c0b7c44669cea5f5"}, "url": "/docs/compare/?release=12.3#12.3-72929a5c7fb10bf9", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "72595b9ea60880022a25cf3adf9c2543", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "直接调用 contrib/lo 的 lo_manage() 函数，而非作为触发器调用时，会发生崩溃", "evidence": {"same_day": true, "patch_ids": ["105321cacfa53733e73c715a8cfa6e7c"], "statement_hash": "39dd260ca6069ccc414dfaa950cfbe672f1eb396089b7ac9c0b7c44669cea5f5"}, "url": "/docs/compare/?release=11.8#11.8-6169e3de25d3c4a5", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "afe650853d30a9ef20f26cd2872adca2", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "直接调用 contrib/lo 的 lo_manage() 函数，而非作为触发器调用时，会发生崩溃", "evidence": {"same_day": true, "patch_ids": ["105321cacfa53733e73c715a8cfa6e7c"], "statement_hash": "39dd260ca6069ccc414dfaa950cfbe672f1eb396089b7ac9c0b7c44669cea5f5"}, "url": "/docs/compare/?release=10.13#10.13-6169e3de25d3c4a5", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "d832f23d03cce13f5515d8c16ded0771", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "contrib/lo 的 lo_manage() 函数在被直接调用而非作为触发器调用时崩溃", "evidence": {"same_day": true, "patch_ids": ["105321cacfa53733e73c715a8cfa6e7c"], "statement_hash": "39dd260ca6069ccc414dfaa950cfbe672f1eb396089b7ac9c0b7c44669cea5f5"}, "url": "/docs/compare/?release=9.5.22#9.5.22-e2d45b363d19ce8d", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-e84668cbe1db2ced", "cves": [], "html": "<p>在 <code>contrib/ltree</code> 中，防止 <code>ltree</code> 和 <code>lquery</code> 长度字段溢出（Nikita Glukhov）</p>", "text": "在 contrib/ltree 中，防止 ltree 和 lquery 长度字段溢出（Nikita Glukhov）", "title": "在 contrib/ltree 中，防止 ltree 和 lquery 长度字段溢出", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "4b0884f28932596d931bfee886cecc33a87015f48d12aea58a186114de3c0995", "section_path": ["变更"], "commit_groups": [["2618ac6c6", "2bb6bdbe5", "39491aa0d", "5feb3d0b3", "8e1e630d0", "95f7ddfda"]], "identity_text": "In contrib/ltree, protect against overflow of ltree and lquery length fields (Nikita Glukhov)", "commit_aliases": ["2618ac6c6", "2bb6bdbe5", "39491aa0d", "5feb3d0b3", "8e1e630d0", "95f7ddfda"], "source_commits": ["39491aa0d"], "source_entry_id": "9.6.18/changes/032", "db_id": "21b634db37867a9f6df498958edbb065", "patch_ids": ["1f01fc809a15a524e654d974b33b2ee6"], "statement_hash": "25e480641d9e671d47377be05227b1cca605632176f1880e634826f6b4ea6efd", "relations": [{"rule": 2, "type": "equivalent", "target": "33838ca8a9d0c94f348a51e701caa3f7", "evidence": {"same_day": true, "patch_ids": ["1f01fc809a15a524e654d974b33b2ee6"], "statement_hash": "25e480641d9e671d47377be05227b1cca605632176f1880e634826f6b4ea6efd"}}, {"rule": 2, "type": "equivalent", "target": "446c6564bfb710f10301497a3a712101", "evidence": {"same_day": true, "patch_ids": ["1f01fc809a15a524e654d974b33b2ee6"], "statement_hash": "25e480641d9e671d47377be05227b1cca605632176f1880e634826f6b4ea6efd"}}, {"rule": 2, "type": "equivalent", "target": "77e2bb5ff65af969073921d3cd6c14c4", "evidence": {"same_day": true, "patch_ids": ["1f01fc809a15a524e654d974b33b2ee6"], "statement_hash": "25e480641d9e671d47377be05227b1cca605632176f1880e634826f6b4ea6efd"}}, {"rule": 2, "type": "equivalent", "target": "c59013ac9aa7e195fe75c8ab58ff6641", "evidence": {"same_day": true, "patch_ids": ["1f01fc809a15a524e654d974b33b2ee6"], "statement_hash": "25e480641d9e671d47377be05227b1cca605632176f1880e634826f6b4ea6efd"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "77e2bb5ff65af969073921d3cd6c14c4", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "在 contrib/ltree 中，防止 ltree 和 lquery 长度字段溢出", "evidence": {"same_day": true, "patch_ids": ["1f01fc809a15a524e654d974b33b2ee6"], "statement_hash": "25e480641d9e671d47377be05227b1cca605632176f1880e634826f6b4ea6efd"}, "url": "/docs/compare/?release=12.3#12.3-6ee2a90dc57cf857", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "c59013ac9aa7e195fe75c8ab58ff6641", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "在 contrib/ltree 中，防止 ltree 和 lquery 长度字段溢出", "evidence": {"same_day": true, "patch_ids": ["1f01fc809a15a524e654d974b33b2ee6"], "statement_hash": "25e480641d9e671d47377be05227b1cca605632176f1880e634826f6b4ea6efd"}, "url": "/docs/compare/?release=11.8#11.8-e84668cbe1db2ced", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "33838ca8a9d0c94f348a51e701caa3f7", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "在 contrib/ltree 中，防止 ltree 和 lquery 长度字段溢出", "evidence": {"same_day": true, "patch_ids": ["1f01fc809a15a524e654d974b33b2ee6"], "statement_hash": "25e480641d9e671d47377be05227b1cca605632176f1880e634826f6b4ea6efd"}, "url": "/docs/compare/?release=10.13#10.13-e84668cbe1db2ced", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "446c6564bfb710f10301497a3a712101", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "在 contrib/ltree 中，防止 ltree 和 lquery 长度字段溢出", "evidence": {"same_day": true, "patch_ids": ["1f01fc809a15a524e654d974b33b2ee6"], "statement_hash": "25e480641d9e671d47377be05227b1cca605632176f1880e634826f6b4ea6efd"}, "url": "/docs/compare/?release=9.5.22#9.5.22-e84668cbe1db2ced", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-924229b253a1d1d9", "cves": [], "html": "<p>修复 <code>contrib/sepgsql</code> 中的缓存引用泄漏（Michael Luo）</p>", "text": "修复 contrib/sepgsql 中的缓存引用泄漏（Michael Luo）", "title": "修复 contrib/sepgsql 中的缓存引用泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "b3537777b7b2d019af14c81a82915ebbf92ee60eef4e4c8b346ebf1c0d655d93", "section_path": ["变更"], "commit_groups": [["3cdf2421a", "46b1b6379", "687e566b9", "cc2737ab0", "f4a420056", "fc576b7c4"]], "identity_text": "Fix cache reference leak in contrib/sepgsql (Michael Luo)", "commit_aliases": ["3cdf2421a", "46b1b6379", "687e566b9", "cc2737ab0", "f4a420056", "fc576b7c4"], "source_commits": ["3cdf2421a"], "source_entry_id": "9.6.18/changes/033", "db_id": "31afc388b27d37b792fe5acf81d32a91", "patch_ids": ["60b4dc41bbad59ed833fc2e96b324160"], "statement_hash": "d36459f90623beacf2d25ca3a927be93ebc24e9ef2bbcfe4fa8c9e50f6503fe8", "relations": [{"rule": 2, "type": "equivalent", "target": "0999d93b8aad134fc72404ddd8befcd2", "evidence": {"same_day": true, "patch_ids": ["60b4dc41bbad59ed833fc2e96b324160"], "statement_hash": "d36459f90623beacf2d25ca3a927be93ebc24e9ef2bbcfe4fa8c9e50f6503fe8"}}, {"rule": 2, "type": "equivalent", "target": "851de3a1319fb3a68bfa615f1d2b2ec2", "evidence": {"same_day": true, "patch_ids": ["60b4dc41bbad59ed833fc2e96b324160"], "statement_hash": "d36459f90623beacf2d25ca3a927be93ebc24e9ef2bbcfe4fa8c9e50f6503fe8"}}, {"rule": 2, "type": "equivalent", "target": "ef00e736ed73f5625a760bb8c60f376b", "evidence": {"same_day": true, "patch_ids": ["60b4dc41bbad59ed833fc2e96b324160"], "statement_hash": "d36459f90623beacf2d25ca3a927be93ebc24e9ef2bbcfe4fa8c9e50f6503fe8"}}, {"rule": 2, "type": "equivalent", "target": "f8cd3b19cbc8066968f11767d3a43568", "evidence": {"same_day": true, "patch_ids": ["60b4dc41bbad59ed833fc2e96b324160"], "statement_hash": "d36459f90623beacf2d25ca3a927be93ebc24e9ef2bbcfe4fa8c9e50f6503fe8"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "851de3a1319fb3a68bfa615f1d2b2ec2", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "修复 contrib/sepgsql 中的缓存引用泄漏", "evidence": {"same_day": true, "patch_ids": ["60b4dc41bbad59ed833fc2e96b324160"], "statement_hash": "d36459f90623beacf2d25ca3a927be93ebc24e9ef2bbcfe4fa8c9e50f6503fe8"}, "url": "/docs/compare/?release=12.3#12.3-df348f281c986254", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "0999d93b8aad134fc72404ddd8befcd2", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "修复 contrib/sepgsql 中的缓存引用泄漏", "evidence": {"same_day": true, "patch_ids": ["60b4dc41bbad59ed833fc2e96b324160"], "statement_hash": "d36459f90623beacf2d25ca3a927be93ebc24e9ef2bbcfe4fa8c9e50f6503fe8"}, "url": "/docs/compare/?release=11.8#11.8-924229b253a1d1d9", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "f8cd3b19cbc8066968f11767d3a43568", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "修复 contrib/sepgsql 中的缓存引用泄漏", "evidence": {"same_day": true, "patch_ids": ["60b4dc41bbad59ed833fc2e96b324160"], "statement_hash": "d36459f90623beacf2d25ca3a927be93ebc24e9ef2bbcfe4fa8c9e50f6503fe8"}, "url": "/docs/compare/?release=10.13#10.13-924229b253a1d1d9", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "ef00e736ed73f5625a760bb8c60f376b", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "修复 contrib/sepgsql 中的缓存引用泄漏", "evidence": {"same_day": true, "patch_ids": ["60b4dc41bbad59ed833fc2e96b324160"], "statement_hash": "d36459f90623beacf2d25ca3a927be93ebc24e9ef2bbcfe4fa8c9e50f6503fe8"}, "url": "/docs/compare/?release=9.5.22#9.5.22-924229b253a1d1d9", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-111f6724f6609fc4", "cves": [], "html": "<p>避免在 Windows 上处理 Unix 风格区域名时的失败（Juan José Santamaría Flecha）</p>", "text": "避免在 Windows 上处理 Unix 风格区域名时的失败（Juan José Santamaría Flecha）", "title": "避免在 Windows 上处理 Unix 风格区域名时的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "0a804b9d5b621279b50f00aa0f81ed13cc0ab69b65feb72eea1181849b843aac", "section_path": ["变更"], "commit_groups": [["4bc3a1667", "6dac1e858", "8c49454ca", "d59e83cf5", "de5b9db36", "f15f5edee"]], "identity_text": "Avoid failures when dealing with Unix-style locale names on Windows (Juan José Santamaría Flecha)", "commit_aliases": ["4bc3a1667", "6dac1e858", "8c49454ca", "d59e83cf5", "de5b9db36", "f15f5edee"], "source_commits": ["f15f5edee"], "source_entry_id": "9.6.18/changes/034", "db_id": "618190f478bc54c146532aca2449b5fe", "patch_ids": ["c657cd9c5478e303ec401593cb5de734"], "statement_hash": "9a8407997aa8db3c6fd5066de2675c602df794a7008f0617a54fa957b3d61cf8", "relations": [{"rule": 2, "type": "equivalent", "target": "c8d670683fce6f86d2217dcb8515de0d", "evidence": {"same_day": true, "patch_ids": ["c657cd9c5478e303ec401593cb5de734"], "statement_hash": "9a8407997aa8db3c6fd5066de2675c602df794a7008f0617a54fa957b3d61cf8"}}, {"rule": 2, "type": "equivalent", "target": "cad42e7939880eaefb16481983255b17", "evidence": {"same_day": true, "patch_ids": ["c657cd9c5478e303ec401593cb5de734"], "statement_hash": "9a8407997aa8db3c6fd5066de2675c602df794a7008f0617a54fa957b3d61cf8"}}, {"rule": 2, "type": "equivalent", "target": "cf106fb69523eea8d00925bc9065d98f", "evidence": {"same_day": true, "patch_ids": ["c657cd9c5478e303ec401593cb5de734"], "statement_hash": "9a8407997aa8db3c6fd5066de2675c602df794a7008f0617a54fa957b3d61cf8"}}, {"rule": 2, "type": "equivalent", "target": "cfbd62af139b6b70b199555029cb0263", "evidence": {"same_day": true, "patch_ids": ["c657cd9c5478e303ec401593cb5de734"], "statement_hash": "9a8407997aa8db3c6fd5066de2675c602df794a7008f0617a54fa957b3d61cf8"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cfbd62af139b6b70b199555029cb0263", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "避免在 Windows 上处理 Unix 风格区域设置名称时发生失败", "evidence": {"same_day": true, "patch_ids": ["c657cd9c5478e303ec401593cb5de734"], "statement_hash": "9a8407997aa8db3c6fd5066de2675c602df794a7008f0617a54fa957b3d61cf8"}, "url": "/docs/compare/?release=12.3#12.3-be3bcce25d6a5ed8", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "c8d670683fce6f86d2217dcb8515de0d", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "避免在 Windows 上处理 Unix 风格区域设置名称时发生失败", "evidence": {"same_day": true, "patch_ids": ["c657cd9c5478e303ec401593cb5de734"], "statement_hash": "9a8407997aa8db3c6fd5066de2675c602df794a7008f0617a54fa957b3d61cf8"}, "url": "/docs/compare/?release=11.8#11.8-596472144cb5706b", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "cf106fb69523eea8d00925bc9065d98f", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "避免在 Windows 上处理 Unix 风格区域设置名称时发生失败", "evidence": {"same_day": true, "patch_ids": ["c657cd9c5478e303ec401593cb5de734"], "statement_hash": "9a8407997aa8db3c6fd5066de2675c602df794a7008f0617a54fa957b3d61cf8"}, "url": "/docs/compare/?release=10.13#10.13-596472144cb5706b", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "cad42e7939880eaefb16481983255b17", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "避免在 Windows 上处理 Unix 风格区域名时的失败", "evidence": {"same_day": true, "patch_ids": ["c657cd9c5478e303ec401593cb5de734"], "statement_hash": "9a8407997aa8db3c6fd5066de2675c602df794a7008f0617a54fa957b3d61cf8"}, "url": "/docs/compare/?release=9.5.22#9.5.22-111f6724f6609fc4", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-bae71a53194d4401", "cves": [], "html": "<p>在 MSVC 构建中，处理 Python 路径名中的空格（Victor Wagner）</p>", "text": "在 MSVC 构建中，处理 Python 路径名中的空格（Victor Wagner）", "title": "在 MSVC 构建中，处理 Python 路径名中的空格", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "ecb6308fee8625204c03b5fe606fae255cb24fd6cc91cdfa89141031fb8bbce1", "section_path": ["变更"], "commit_groups": [["307ed98b0", "8c0939dad", "984aca448", "ad53d6efe", "beb2516e9", "e07fdc126"]], "identity_text": "In MSVC builds, cope with spaces in the path name for Python (Victor Wagner)", "commit_aliases": ["307ed98b0", "8c0939dad", "984aca448", "ad53d6efe", "beb2516e9", "e07fdc126"], "source_commits": ["e07fdc126"], "source_entry_id": "9.6.18/changes/035", "db_id": "85922ac0b7dfcf77afae9fb612ffb63f", "patch_ids": ["fe29dc1dae0fde16f1a528a87b647934"], "statement_hash": "4f3a3a43b159b6f290fa7553d5356a5d9e4c32d0ab7519b33471b8188b52d4ac", "relations": [{"rule": 2, "type": "equivalent", "target": "3ecc6d96e57e02bcac994f223f46c8ae", "evidence": {"same_day": true, "patch_ids": ["fe29dc1dae0fde16f1a528a87b647934"], "statement_hash": "4f3a3a43b159b6f290fa7553d5356a5d9e4c32d0ab7519b33471b8188b52d4ac"}}, {"rule": 2, "type": "equivalent", "target": "cab163a56507e9a58328f6d7550cc16c", "evidence": {"same_day": true, "patch_ids": ["fe29dc1dae0fde16f1a528a87b647934"], "statement_hash": "4f3a3a43b159b6f290fa7553d5356a5d9e4c32d0ab7519b33471b8188b52d4ac"}}, {"rule": 2, "type": "equivalent", "target": "e1fc7c47c3f91a87315032845c953520", "evidence": {"same_day": true, "patch_ids": ["fe29dc1dae0fde16f1a528a87b647934"], "statement_hash": "4f3a3a43b159b6f290fa7553d5356a5d9e4c32d0ab7519b33471b8188b52d4ac"}}, {"rule": 2, "type": "equivalent", "target": "f75739c9b2331c8ea9fcf7f7d98d7cbf", "evidence": {"same_day": true, "patch_ids": ["fe29dc1dae0fde16f1a528a87b647934"], "statement_hash": "4f3a3a43b159b6f290fa7553d5356a5d9e4c32d0ab7519b33471b8188b52d4ac"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cab163a56507e9a58328f6d7550cc16c", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "在 MSVC 构建中，处理 Python 路径名中的空格", "evidence": {"same_day": true, "patch_ids": ["fe29dc1dae0fde16f1a528a87b647934"], "statement_hash": "4f3a3a43b159b6f290fa7553d5356a5d9e4c32d0ab7519b33471b8188b52d4ac"}, "url": "/docs/compare/?release=12.3#12.3-f81a271d41d259af", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "f75739c9b2331c8ea9fcf7f7d98d7cbf", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "在 MSVC 构建中，处理 Python 路径名中的空格", "evidence": {"same_day": true, "patch_ids": ["fe29dc1dae0fde16f1a528a87b647934"], "statement_hash": "4f3a3a43b159b6f290fa7553d5356a5d9e4c32d0ab7519b33471b8188b52d4ac"}, "url": "/docs/compare/?release=11.8#11.8-bae71a53194d4401", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "3ecc6d96e57e02bcac994f223f46c8ae", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "在 MSVC 构建中，处理 Python 路径名中的空格", "evidence": {"same_day": true, "patch_ids": ["fe29dc1dae0fde16f1a528a87b647934"], "statement_hash": "4f3a3a43b159b6f290fa7553d5356a5d9e4c32d0ab7519b33471b8188b52d4ac"}, "url": "/docs/compare/?release=10.13#10.13-bae71a53194d4401", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "e1fc7c47c3f91a87315032845c953520", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "在 MSVC 构建中，处理 Python 路径名中的空格", "evidence": {"same_day": true, "patch_ids": ["fe29dc1dae0fde16f1a528a87b647934"], "statement_hash": "4f3a3a43b159b6f290fa7553d5356a5d9e4c32d0ab7519b33471b8188b52d4ac"}, "url": "/docs/compare/?release=9.5.22#9.5.22-bae71a53194d4401", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-e45b8263fca24bad", "cves": [], "html": "<p>在 MSVC 构建中，修复 Visual Studio 版本检测以适应更多语言设置（Andrew Dunstan）</p>", "text": "在 MSVC 构建中，修复 Visual Studio 版本检测以适应更多语言设置（Andrew Dunstan）", "title": "在 MSVC 构建中，修复 Visual Studio 版本检测以适应更多语言设置", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "3cb7630191c65531b9bf63a5028eea90f922dc531024117bce3405dda564f354", "section_path": ["变更"], "commit_groups": [["3ca17999f", "4c9239d08", "6b02bee66", "758814224", "a9659fb65", "ddac64f2d"]], "identity_text": "In MSVC builds, fix detection of Visual Studio version to work with more language settings (Andrew Dunstan)", "commit_aliases": ["3ca17999f", "4c9239d08", "6b02bee66", "758814224", "a9659fb65", "ddac64f2d"], "source_commits": ["4c9239d08"], "source_entry_id": "9.6.18/changes/036", "db_id": "5862a44a00581c91933761eb30883ff3", "patch_ids": ["ac82ac6f720233c45fd83cd116e17de9"], "statement_hash": "05bb21fcc80736a894a41c2b34ca8363926eec3584f4bd5b29711fa15ffd2524", "relations": [{"rule": 2, "type": "equivalent", "target": "00fda960ae46834024a000891161c6f4", "evidence": {"same_day": true, "patch_ids": ["ac82ac6f720233c45fd83cd116e17de9"], "statement_hash": "05bb21fcc80736a894a41c2b34ca8363926eec3584f4bd5b29711fa15ffd2524"}}, {"rule": 2, "type": "equivalent", "target": "149da31b78f2dacb3304cbce55a58832", "evidence": {"same_day": true, "patch_ids": ["ac82ac6f720233c45fd83cd116e17de9"], "statement_hash": "05bb21fcc80736a894a41c2b34ca8363926eec3584f4bd5b29711fa15ffd2524"}}, {"rule": 2, "type": "equivalent", "target": "1aa28dec243bc3fb9c3f44f7c9e3140e", "evidence": {"same_day": true, "patch_ids": ["ac82ac6f720233c45fd83cd116e17de9"], "statement_hash": "05bb21fcc80736a894a41c2b34ca8363926eec3584f4bd5b29711fa15ffd2524"}}, {"rule": 2, "type": "equivalent", "target": "25f142bd24abd40c480b00e6c18600a0", "evidence": {"same_day": true, "patch_ids": ["ac82ac6f720233c45fd83cd116e17de9"], "statement_hash": "05bb21fcc80736a894a41c2b34ca8363926eec3584f4bd5b29711fa15ffd2524"}}], "version": "9.6.18", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "00fda960ae46834024a000891161c6f4", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "在 MSVC 构建中，修复 Visual Studio 版本检测，使其适用于更多语言设置", "evidence": {"same_day": true, "patch_ids": ["ac82ac6f720233c45fd83cd116e17de9"], "statement_hash": "05bb21fcc80736a894a41c2b34ca8363926eec3584f4bd5b29711fa15ffd2524"}, "url": "/docs/compare/?release=12.3#12.3-0423eb9bbddb20f8", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "25f142bd24abd40c480b00e6c18600a0", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "在 MSVC 构建中，修复 Visual Studio 版本检测，使其适用于更多语言设置", "evidence": {"same_day": true, "patch_ids": ["ac82ac6f720233c45fd83cd116e17de9"], "statement_hash": "05bb21fcc80736a894a41c2b34ca8363926eec3584f4bd5b29711fa15ffd2524"}, "url": "/docs/compare/?release=11.8#11.8-ef16d7ba22e8b874", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "149da31b78f2dacb3304cbce55a58832", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "在 MSVC 构建中，修复 Visual Studio 版本检测，使其适用于更多语言设置", "evidence": {"same_day": true, "patch_ids": ["ac82ac6f720233c45fd83cd116e17de9"], "statement_hash": "05bb21fcc80736a894a41c2b34ca8363926eec3584f4bd5b29711fa15ffd2524"}, "url": "/docs/compare/?release=10.13#10.13-ef16d7ba22e8b874", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "1aa28dec243bc3fb9c3f44f7c9e3140e", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "在 MSVC 构建中，修复 Visual Studio 版本检测以适应更多语言设置", "evidence": {"same_day": true, "patch_ids": ["ac82ac6f720233c45fd83cd116e17de9"], "statement_hash": "05bb21fcc80736a894a41c2b34ca8363926eec3584f4bd5b29711fa15ffd2524"}, "url": "/docs/compare/?release=9.5.22#9.5.22-e45b8263fca24bad", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-629774e3f0311503", "cves": [], "html": "<p>在 MSVC 构建中，对 3.0 之后的 bison 版本使用 <code>-Wno-deprecated</code>，与非 Windows 构建已经做的一样（Andrew Dunstan）</p>", "text": "在 MSVC 构建中，对 3.0 之后的 bison 版本使用 -Wno-deprecated，与非 Windows 构建已经做的一样（Andrew Dunstan）", "title": "在 MSVC 构建中，对 3.0 之后的 bison 版本使用 -Wno-deprecated，与非 Windows 构建已经做的一样", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "0dbf0b58dc4626bddbb43424c76e49981dd111ef033933c14a2787ac4aae413c", "section_path": ["变更"], "commit_groups": [["3163349fd", "467b40832", "71c2fd0c0", "80370836f", "d0747714e", "e8a6391fc"]], "identity_text": "In MSVC builds, use -Wno-deprecated with bison versions newer than 3.0, as non-Windows builds already do (Andrew Dunstan)", "commit_aliases": ["3163349fd", "467b40832", "71c2fd0c0", "80370836f", "d0747714e", "e8a6391fc"], "source_commits": ["80370836f"], "source_entry_id": "9.6.18/changes/037", "db_id": "a63dc5011f682eb0d974c5280cbe49c8", "patch_ids": ["8207380c85dae25f82a497ab4bd094bc"], "statement_hash": "80e3b843d2469cca0f95cb8d1d9051c31a80127544516155dc2273a85ebbe5e3", "relations": [{"rule": 2, "type": "equivalent", "target": "781b1069e93a5c87fc53cef184cd8e6b", "evidence": {"same_day": true, "patch_ids": ["8207380c85dae25f82a497ab4bd094bc"], "statement_hash": "80e3b843d2469cca0f95cb8d1d9051c31a80127544516155dc2273a85ebbe5e3"}}, {"rule": 2, "type": "equivalent", "target": "867821c64e4237e0170771ad809d1d57", "evidence": {"same_day": true, "patch_ids": ["8207380c85dae25f82a497ab4bd094bc"], "statement_hash": "80e3b843d2469cca0f95cb8d1d9051c31a80127544516155dc2273a85ebbe5e3"}}, {"rule": 2, "type": "equivalent", "target": "a2b464387fc65926eb27c30151c6291c", "evidence": {"same_day": true, "patch_ids": ["8207380c85dae25f82a497ab4bd094bc"], "statement_hash": "80e3b843d2469cca0f95cb8d1d9051c31a80127544516155dc2273a85ebbe5e3"}}, {"rule": 2, "type": "equivalent", "target": "e98154d53927ee357929e6035953a6e2", "evidence": {"same_day": true, "patch_ids": ["8207380c85dae25f82a497ab4bd094bc"], "statement_hash": "80e3b843d2469cca0f95cb8d1d9051c31a80127544516155dc2273a85ebbe5e3"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2b464387fc65926eb27c30151c6291c", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "在 MSVC 构建中，对高于 3.0 的 bison 版本使用 -Wno-deprecated，与非 Windows 构建现有行为一致", "evidence": {"same_day": true, "patch_ids": ["8207380c85dae25f82a497ab4bd094bc"], "statement_hash": "80e3b843d2469cca0f95cb8d1d9051c31a80127544516155dc2273a85ebbe5e3"}, "url": "/docs/compare/?release=12.3#12.3-85cae5c373d7ed16", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "e98154d53927ee357929e6035953a6e2", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "在 MSVC 构建中，对高于 3.0 的 bison 版本使用 -Wno-deprecated，与非 Windows 构建现有行为一致", "evidence": {"same_day": true, "patch_ids": ["8207380c85dae25f82a497ab4bd094bc"], "statement_hash": "80e3b843d2469cca0f95cb8d1d9051c31a80127544516155dc2273a85ebbe5e3"}, "url": "/docs/compare/?release=11.8#11.8-c2ad5dd7fb75ff22", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "867821c64e4237e0170771ad809d1d57", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "在 MSVC 构建中，对高于 3.0 的 bison 版本使用 -Wno-deprecated，与非 Windows 构建现有行为一致", "evidence": {"same_day": true, "patch_ids": ["8207380c85dae25f82a497ab4bd094bc"], "statement_hash": "80e3b843d2469cca0f95cb8d1d9051c31a80127544516155dc2273a85ebbe5e3"}, "url": "/docs/compare/?release=10.13#10.13-c2ad5dd7fb75ff22", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "781b1069e93a5c87fc53cef184cd8e6b", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "在 MSVC 构建中，对 3.0 之后的 bison 版本使用 -Wno-deprecated，与非 Windows 构建已经做的一样", "evidence": {"same_day": true, "patch_ids": ["8207380c85dae25f82a497ab4bd094bc"], "statement_hash": "80e3b843d2469cca0f95cb8d1d9051c31a80127544516155dc2273a85ebbe5e3"}, "url": "/docs/compare/?release=9.5.22#9.5.22-629774e3f0311503", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}, {"id": "9.6.18-20f382e14391e21c", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2020a，涉及摩洛哥和加拿大育空的夏令时法规变更，以及上海的历史修正。</p>\n<p>America/Godthab 时区已更名为 America/Nuuk 以反映当前英语用法；不过，旧名称仍作为兼容链接可用。</p>\n<p>同时，更新 <span>initdb</span> 的已知 Windows 时区名列表以包含新近添加的名称，提高它在该平台上正确翻译系统时区设置的几率。</p>", "text": "更新时区数据文件到 tzdata 版本 2020a，涉及摩洛哥和加拿大育空的夏令时法规变更，以及上海的历史修正。 America/Godthab 时区已更名为 America/Nuuk 以反映当前英语用法；不过，旧名称仍作为兼容链接可用。 同时，更新 initdb 的已知 Windows 时区名列表以包含新近添加的名称，提高它在该平台上正确翻译系统时区设置的几率。", "title": "更新时区数据文件到 tzdata 版本 2020a，涉及摩洛哥和加拿大育空的夏令时法规变更，以及上海的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.18/#id-1.11.6.11.5", "source_hash": "82cb9be8f2f41f4c3b5692da862dc9245c307e1ac03bac01557317b164ce9885", "section_path": ["变更"], "commit_groups": [["1e07e3fc0", "3cdb45c54", "40d4bc5ac", "6c5f91616", "b31f9fd63", "f65f3a5d8"], ["351252904", "3f3ab184c", "4985b3b84", "99c9ed224", "a2342c658", "bd8c5cee9"], ["39006ae7a", "4cac3a49e", "66be99742", "898921a18", "c820692bd", "eb335bc62"]], "identity_text": "Update time zone data files to tzdata release 2020a for DST law changes in Morocco and the Canadian Yukon, plus historical corrections for Shanghai. The America/Godthab zone has been renamed to America/Nuuk to reflect current English usage; however, the old name remains available as a compatibility link. Also, update initdb's list of known Windows time zone names to include recent additions, improving the odds that it will correctly translate the system time zone setting on that platform.", "commit_aliases": ["1e07e3fc0", "351252904", "39006ae7a", "3cdb45c54", "3f3ab184c", "40d4bc5ac", "4985b3b84", "4cac3a49e", "66be99742", "6c5f91616", "898921a18", "99c9ed224", "a2342c658", "b31f9fd63", "bd8c5cee9", "c820692bd", "eb335bc62", "f65f3a5d8"], "source_commits": ["351252904", "66be99742", "f65f3a5d8"], "source_entry_id": "9.6.18/changes/038", "db_id": "78700f89eac4464583602eff3f2efff1", "patch_ids": ["6b0e2eae73eff06e8b112dc510b6f46c", "a3db554c04faeca515c6443540ba2f98", "dccfdc8741e1af73db4e9ae1b3ee68ea"], "statement_hash": "5944fe8ebe5cd54625bd39c2a888b310be985f439aa5e340c2ead74544fc6ee4", "relations": [{"rule": 2, "type": "equivalent", "target": "082e3124590e139fbc890ad8e6c1cfbb", "evidence": {"same_day": true, "patch_ids": ["6b0e2eae73eff06e8b112dc510b6f46c", "a3db554c04faeca515c6443540ba2f98", "dccfdc8741e1af73db4e9ae1b3ee68ea"], "statement_hash": "5944fe8ebe5cd54625bd39c2a888b310be985f439aa5e340c2ead74544fc6ee4"}}, {"rule": 2, "type": "equivalent", "target": "0e1d44c5c78b1de1d61e0a2e08ecd487", "evidence": {"same_day": true, "patch_ids": ["6b0e2eae73eff06e8b112dc510b6f46c", "a3db554c04faeca515c6443540ba2f98", "dccfdc8741e1af73db4e9ae1b3ee68ea"]}}, {"rule": 2, "type": "equivalent", "target": "37edc767b610263d920f70cc5dce0d3a", "evidence": {"same_day": true, "patch_ids": ["6b0e2eae73eff06e8b112dc510b6f46c", "a3db554c04faeca515c6443540ba2f98", "dccfdc8741e1af73db4e9ae1b3ee68ea"], "statement_hash": "5944fe8ebe5cd54625bd39c2a888b310be985f439aa5e340c2ead74544fc6ee4"}}, {"rule": 2, "type": "equivalent", "target": "b34439464cb4306067e1821595585664", "evidence": {"same_day": true, "patch_ids": ["6b0e2eae73eff06e8b112dc510b6f46c", "a3db554c04faeca515c6443540ba2f98", "dccfdc8741e1af73db4e9ae1b3ee68ea"], "statement_hash": "5944fe8ebe5cd54625bd39c2a888b310be985f439aa5e340c2ead74544fc6ee4"}}], "version": "9.6.18", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e1d44c5c78b1de1d61e0a2e08ecd487", "kind": "equivalent", "version": "12.3", "label": "12.3", "title": "将时区数据文件更新到 tzdata 2020a 版，以反映摩洛哥和加拿大育空地区的夏令时法规变更，并修正上海的历史数据。", "evidence": {"same_day": true, "patch_ids": ["6b0e2eae73eff06e8b112dc510b6f46c", "a3db554c04faeca515c6443540ba2f98", "dccfdc8741e1af73db4e9ae1b3ee68ea"]}, "url": "/docs/compare/?release=12.3#12.3-93a238e676d9ea58", "source_url": "/docs/release/12.3/#id-1.11.6.25.5"}, {"db_id": "37edc767b610263d920f70cc5dce0d3a", "kind": "equivalent", "version": "11.8", "label": "11.8", "title": "将时区数据文件更新到 tzdata 2020a 版，以反映摩洛哥和加拿大育空地区的夏令时法规变更，并修正上海的历史数据。", "evidence": {"same_day": true, "patch_ids": ["6b0e2eae73eff06e8b112dc510b6f46c", "a3db554c04faeca515c6443540ba2f98", "dccfdc8741e1af73db4e9ae1b3ee68ea"], "statement_hash": "5944fe8ebe5cd54625bd39c2a888b310be985f439aa5e340c2ead74544fc6ee4"}, "url": "/docs/compare/?release=11.8#11.8-d589194aabb1df08", "source_url": "/docs/release/11.8/#id-1.11.6.19.5"}, {"db_id": "b34439464cb4306067e1821595585664", "kind": "equivalent", "version": "10.13", "label": "10.13", "title": "将时区数据文件更新到 tzdata 2020a 版，以反映摩洛哥和加拿大育空地区的夏令时法规变更，并修正上海的历史数据。", "evidence": {"same_day": true, "patch_ids": ["6b0e2eae73eff06e8b112dc510b6f46c", "a3db554c04faeca515c6443540ba2f98", "dccfdc8741e1af73db4e9ae1b3ee68ea"], "statement_hash": "5944fe8ebe5cd54625bd39c2a888b310be985f439aa5e340c2ead74544fc6ee4"}, "url": "/docs/compare/?release=10.13#10.13-d589194aabb1df08", "source_url": "/docs/release/10.13/#id-1.11.6.15.5"}, {"db_id": "082e3124590e139fbc890ad8e6c1cfbb", "kind": "equivalent", "version": "9.5.22", "label": "9.5.22", "title": "更新时区数据文件到 tzdata 版本 2020a，涉及摩洛哥和加拿大育空的夏令时法规变更，以及上海的历史修正。", "evidence": {"same_day": true, "patch_ids": ["6b0e2eae73eff06e8b112dc510b6f46c", "a3db554c04faeca515c6443540ba2f98", "dccfdc8741e1af73db4e9ae1b3ee68ea"], "statement_hash": "5944fe8ebe5cd54625bd39c2a888b310be985f439aa5e340c2ead74544fc6ee4"}, "url": "/docs/compare/?release=9.5.22#9.5.22-20f382e14391e21c", "source_url": "/docs/release/9.5.22/#id-1.11.6.8.6"}]}]}, {"date": "2020-02-13", "build": "9.6.17", "major": "9.6", "minor": 17, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.17", "eol_date": "2021-11-11", "date_text": "2020-02-13", "supported": false, "manual_url": "/docs/9.6/release-9-6-17.html", "source_url": "/docs/release/9.6.17/", "entry_count": 33, "placeholder": false, "content_hash": "9cb807f9a639ec44bb4804e6fe10b110909b8476f58488a6794ee13c48b7b111", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 33, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.16 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-16.html\" title=\"E.9. 版本 9.6.16\">第 E.9 节</a>。</p>", "compatibility_count": 0, "label": "9.6.17", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2421, "support_days": -1784, "entries": [{"id": "9.6.17-43b06b9c53a094d4", "cves": ["CVE-2020-1720"], "html": "<p>为 <code>ALTER ... DEPENDS ON EXTENSION</code> 补上缺失的权限检查（Álvaro Herrera）</p>\n<p>把对象标记为依赖于扩展此前没有任何权限检查。这一疏漏允许任何用户把例程、触发器、物化视图或索引标记为任何能删除扩展的人都可以删除的对象。现在要求调用用户拥有指定对象（从而有权删除它）。（CVE-2020-1720）</p>", "text": "为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查（Álvaro Herrera） 把对象标记为依赖于扩展此前没有任何权限检查。这一疏漏允许任何用户把例程、触发器、物化视图或索引标记为任何能删除扩展的人都可以删除的对象。现在要求调用用户拥有指定对象（从而有权删除它）。（CVE-2020-1720）", "title": "为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "d0fa67e696a624ffaee54fcc80de35cabb2415d61c297f3b562313504ae8714e", "section_path": ["变更"], "commit_groups": [["2ad125322", "ac1a998ed", "b048f558d", "bdd19e48a", "e8b8eb937"]], "identity_text": "Add missing permissions checks for ALTER ... DEPENDS ON EXTENSION (Álvaro Herrera) Marking an object as dependent on an extension did not have any privilege check whatsoever. This oversight allowed any user to mark routines, triggers, materialized views, or indexes as droppable by anyone able to drop an extension. Require that the calling user own the specified object (and hence have privilege to drop it). (CVE-2020-1720)", "commit_aliases": ["2ad125322", "ac1a998ed", "b048f558d", "bdd19e48a", "e8b8eb937"], "source_commits": ["e8b8eb937"], "source_entry_id": "9.6.17/changes/001", "db_id": "e7c3294c568782d7f22c5b777ffb6235", "patch_ids": ["63b3debbf84673645f7ac9b987c30ca0"], "statement_hash": "af764eb0a2c95d985bd43741228f2ce69db83bb4a9b5160bf1ab42bbd0a0fb7e", "relations": [{"rule": 2, "type": "equivalent", "target": "0996f001cb1ffbb122a5bba8cf55764f", "evidence": {"same_day": true, "patch_ids": ["63b3debbf84673645f7ac9b987c30ca0"], "statement_hash": "af764eb0a2c95d985bd43741228f2ce69db83bb4a9b5160bf1ab42bbd0a0fb7e"}}, {"rule": 2, "type": "equivalent", "target": "98301dcc33caa482d422a6f57fbf5957", "evidence": {"same_day": true, "patch_ids": ["63b3debbf84673645f7ac9b987c30ca0"], "statement_hash": "af764eb0a2c95d985bd43741228f2ce69db83bb4a9b5160bf1ab42bbd0a0fb7e"}}, {"rule": 2, "type": "equivalent", "target": "d70df0706df2abf1bfb334c185608edf", "evidence": {"same_day": true, "patch_ids": ["63b3debbf84673645f7ac9b987c30ca0"], "statement_hash": "af764eb0a2c95d985bd43741228f2ce69db83bb4a9b5160bf1ab42bbd0a0fb7e"}}], "version": "9.6.17", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "d70df0706df2abf1bfb334c185608edf", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查", "evidence": {"same_day": true, "patch_ids": ["63b3debbf84673645f7ac9b987c30ca0"], "statement_hash": "af764eb0a2c95d985bd43741228f2ce69db83bb4a9b5160bf1ab42bbd0a0fb7e"}, "url": "/docs/compare/?release=12.2#12.2-aa2ddd8e29f6283e", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "0996f001cb1ffbb122a5bba8cf55764f", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查", "evidence": {"same_day": true, "patch_ids": ["63b3debbf84673645f7ac9b987c30ca0"], "statement_hash": "af764eb0a2c95d985bd43741228f2ce69db83bb4a9b5160bf1ab42bbd0a0fb7e"}, "url": "/docs/compare/?release=11.7#11.7-43b06b9c53a094d4", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "98301dcc33caa482d422a6f57fbf5957", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查", "evidence": {"same_day": true, "patch_ids": ["63b3debbf84673645f7ac9b987c30ca0"], "statement_hash": "af764eb0a2c95d985bd43741228f2ce69db83bb4a9b5160bf1ab42bbd0a0fb7e"}, "url": "/docs/compare/?release=10.12#10.12-43b06b9c53a094d4", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}]}, {"id": "9.6.17-2a411fa7a7c90adf", "cves": [], "html": "<p>修复大事务必须被溢出到许多单独临时文件时逻辑解码的失败（Amit Khandekar）</p>", "text": "修复大事务必须被溢出到许多单独临时文件时逻辑解码的失败（Amit Khandekar）", "title": "修复大事务必须被溢出到许多单独临时文件时逻辑解码的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "7eb53778167e5b3409b06f17f619be72f9afa6eef28c73bbad99d64013e003f4", "section_path": ["变更"], "commit_groups": [["17869eca7", "ed7bb5c31", "f9e95252a", "fa1eaebfa"], ["1ad47e875", "27b5f48c7", "3e3a79735", "a6f4f407a", "ba5b4e506", "d20703805", "f8a6d8e71"]], "identity_text": "Avoid failure in logical decoding when a large transaction must be spilled into many separate temporary files (Amit Khandekar)", "commit_aliases": ["17869eca7", "1ad47e875", "27b5f48c7", "3e3a79735", "a6f4f407a", "ba5b4e506", "d20703805", "ed7bb5c31", "f8a6d8e71", "f9e95252a", "fa1eaebfa"], "source_commits": ["ba5b4e506", "ed7bb5c31"], "source_entry_id": "9.6.17/changes/002", "db_id": "8152a6b8f545280daf022279f4c3d05d", "patch_ids": ["7873f3c15aeba6e04159e49c910ab6c5", "ba9fb0a08c7a9f3e14a8eef4a462b4f6"], "statement_hash": "cfce4214cc870b1929d4ffd6e6ea956c6b88212d0df22fe921f0b5bfc818b553", "relations": [{"rule": 2, "type": "equivalent", "target": "2d998ba88a4a32c7f02f2c0a1eec85f8", "evidence": {"same_day": true, "patch_ids": ["7873f3c15aeba6e04159e49c910ab6c5", "ba9fb0a08c7a9f3e14a8eef4a462b4f6"], "statement_hash": "cfce4214cc870b1929d4ffd6e6ea956c6b88212d0df22fe921f0b5bfc818b553"}}, {"rule": 2, "type": "equivalent", "target": "4c6102cafd4a5d2470d743e4aa779d47", "evidence": {"same_day": true, "patch_ids": ["7873f3c15aeba6e04159e49c910ab6c5", "ba9fb0a08c7a9f3e14a8eef4a462b4f6"], "statement_hash": "cfce4214cc870b1929d4ffd6e6ea956c6b88212d0df22fe921f0b5bfc818b553"}}, {"rule": 2, "type": "equivalent", "target": "513700ddaf2321d10b3500d50a8d1699", "evidence": {"same_day": true, "patch_ids": ["7873f3c15aeba6e04159e49c910ab6c5", "ba9fb0a08c7a9f3e14a8eef4a462b4f6"], "statement_hash": "cfce4214cc870b1929d4ffd6e6ea956c6b88212d0df22fe921f0b5bfc818b553"}}, {"rule": 2, "type": "equivalent", "target": "c00a4ec8d0168caec4abb79741c56f83", "evidence": {"same_day": true, "patch_ids": ["7873f3c15aeba6e04159e49c910ab6c5", "ba9fb0a08c7a9f3e14a8eef4a462b4f6"], "statement_hash": "cfce4214cc870b1929d4ffd6e6ea956c6b88212d0df22fe921f0b5bfc818b553"}}, {"rule": 2, "type": "equivalent", "target": "f8dcaeea8d85b6d20f07efe349465535", "evidence": {"same_day": true, "patch_ids": ["7873f3c15aeba6e04159e49c910ab6c5", "ba9fb0a08c7a9f3e14a8eef4a462b4f6"], "statement_hash": "cfce4214cc870b1929d4ffd6e6ea956c6b88212d0df22fe921f0b5bfc818b553"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f8dcaeea8d85b6d20f07efe349465535", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "避免大事务必须溢写到许多独立临时文件时逻辑解码发生失败", "evidence": {"same_day": true, "patch_ids": ["7873f3c15aeba6e04159e49c910ab6c5", "ba9fb0a08c7a9f3e14a8eef4a462b4f6"], "statement_hash": "cfce4214cc870b1929d4ffd6e6ea956c6b88212d0df22fe921f0b5bfc818b553"}, "url": "/docs/compare/?release=12.2#12.2-b7d94cbf0f06a3c9", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "c00a4ec8d0168caec4abb79741c56f83", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "避免大事务必须溢写到许多独立临时文件时逻辑解码发生失败", "evidence": {"same_day": true, "patch_ids": ["7873f3c15aeba6e04159e49c910ab6c5", "ba9fb0a08c7a9f3e14a8eef4a462b4f6"], "statement_hash": "cfce4214cc870b1929d4ffd6e6ea956c6b88212d0df22fe921f0b5bfc818b553"}, "url": "/docs/compare/?release=11.7#11.7-ec420340a4da7fb3", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "4c6102cafd4a5d2470d743e4aa779d47", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "避免大事务必须溢写到许多独立临时文件时逻辑解码发生失败", "evidence": {"same_day": true, "patch_ids": ["7873f3c15aeba6e04159e49c910ab6c5", "ba9fb0a08c7a9f3e14a8eef4a462b4f6"], "statement_hash": "cfce4214cc870b1929d4ffd6e6ea956c6b88212d0df22fe921f0b5bfc818b553"}, "url": "/docs/compare/?release=10.12#10.12-ec420340a4da7fb3", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "513700ddaf2321d10b3500d50a8d1699", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复大事务必须被溢出到许多单独临时文件时逻辑解码的失败", "evidence": {"same_day": true, "patch_ids": ["7873f3c15aeba6e04159e49c910ab6c5", "ba9fb0a08c7a9f3e14a8eef4a462b4f6"], "statement_hash": "cfce4214cc870b1929d4ffd6e6ea956c6b88212d0df22fe921f0b5bfc818b553"}, "url": "/docs/compare/?release=9.5.21#9.5.21-2a411fa7a7c90adf", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "2d998ba88a4a32c7f02f2c0a1eec85f8", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复大事务必须被溢出到许多单独临时文件时逻辑解码的失败", "evidence": {"same_day": true, "patch_ids": ["7873f3c15aeba6e04159e49c910ab6c5", "ba9fb0a08c7a9f3e14a8eef4a462b4f6"], "statement_hash": "cfce4214cc870b1929d4ffd6e6ea956c6b88212d0df22fe921f0b5bfc818b553"}, "url": "/docs/compare/?release=9.4.26#9.4.26-2a411fa7a7c90adf", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-bb73047540aea4a6", "cves": [], "html": "<p>修复数据库崩溃并重启之后逻辑复制发布方的失败（Vignesh C）</p>", "text": "修复数据库崩溃并重启之后逻辑复制发布方的失败（Vignesh C）", "title": "修复数据库崩溃并重启之后逻辑复制发布方的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "f3e085313def01bd4942a676a22c9e7959daeafbbc93a033f0bccee00af750fa", "section_path": ["变更"], "commit_groups": [["15cac3a52", "20a1dc1e3", "58997ace5", "bc2140627", "cdb14154b", "e3154aae3", "fe955ebee"]], "identity_text": "Fix failure in logical replication publisher after a database crash and restart (Vignesh C)", "commit_aliases": ["15cac3a52", "20a1dc1e3", "58997ace5", "bc2140627", "cdb14154b", "e3154aae3", "fe955ebee"], "source_commits": ["cdb14154b"], "source_entry_id": "9.6.17/changes/003", "db_id": "13a4ebbb62f816078b950dca41b5176f", "patch_ids": ["f2ffa9572aba4ae2d2a48ee347082cf8"], "statement_hash": "6aa2b325bf72bd1e6c55231d63ce0dc8c7973d98bf84b5311b3b54dc630c7b0b", "relations": [{"rule": 2, "type": "equivalent", "target": "1439b88ee7359150b890bfd4fe23b881", "evidence": {"same_day": true, "patch_ids": ["f2ffa9572aba4ae2d2a48ee347082cf8"], "statement_hash": "6aa2b325bf72bd1e6c55231d63ce0dc8c7973d98bf84b5311b3b54dc630c7b0b"}}, {"rule": 2, "type": "equivalent", "target": "bb33ba157feb3169dd07ff305f37c896", "evidence": {"same_day": true, "patch_ids": ["f2ffa9572aba4ae2d2a48ee347082cf8"], "statement_hash": "6aa2b325bf72bd1e6c55231d63ce0dc8c7973d98bf84b5311b3b54dc630c7b0b"}}, {"rule": 2, "type": "equivalent", "target": "c97e1f22cceb95da773367228c582c34", "evidence": {"same_day": true, "patch_ids": ["f2ffa9572aba4ae2d2a48ee347082cf8"], "statement_hash": "6aa2b325bf72bd1e6c55231d63ce0dc8c7973d98bf84b5311b3b54dc630c7b0b"}}, {"rule": 2, "type": "equivalent", "target": "e09e97ef6771dfc7645f23e799878130", "evidence": {"same_day": true, "patch_ids": ["f2ffa9572aba4ae2d2a48ee347082cf8"], "statement_hash": "6aa2b325bf72bd1e6c55231d63ce0dc8c7973d98bf84b5311b3b54dc630c7b0b"}}, {"rule": 2, "type": "equivalent", "target": "fb326a72fe79a9793c3b84416b31cf6e", "evidence": {"same_day": true, "patch_ids": ["f2ffa9572aba4ae2d2a48ee347082cf8"], "statement_hash": "6aa2b325bf72bd1e6c55231d63ce0dc8c7973d98bf84b5311b3b54dc630c7b0b"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fb326a72fe79a9793c3b84416b31cf6e", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复数据库崩溃并重启后逻辑复制发布者的失败", "evidence": {"same_day": true, "patch_ids": ["f2ffa9572aba4ae2d2a48ee347082cf8"], "statement_hash": "6aa2b325bf72bd1e6c55231d63ce0dc8c7973d98bf84b5311b3b54dc630c7b0b"}, "url": "/docs/compare/?release=12.2#12.2-9f094e8e9a48d1df", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "e09e97ef6771dfc7645f23e799878130", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复数据库崩溃并重启后逻辑复制发布者的失败", "evidence": {"same_day": true, "patch_ids": ["f2ffa9572aba4ae2d2a48ee347082cf8"], "statement_hash": "6aa2b325bf72bd1e6c55231d63ce0dc8c7973d98bf84b5311b3b54dc630c7b0b"}, "url": "/docs/compare/?release=11.7#11.7-afe7bf7c09cc7a15", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "bb33ba157feb3169dd07ff305f37c896", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复数据库崩溃并重启后逻辑复制发布者的失败", "evidence": {"same_day": true, "patch_ids": ["f2ffa9572aba4ae2d2a48ee347082cf8"], "statement_hash": "6aa2b325bf72bd1e6c55231d63ce0dc8c7973d98bf84b5311b3b54dc630c7b0b"}, "url": "/docs/compare/?release=10.12#10.12-afe7bf7c09cc7a15", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "1439b88ee7359150b890bfd4fe23b881", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复数据库崩溃并重启之后逻辑复制发布方的失败", "evidence": {"same_day": true, "patch_ids": ["f2ffa9572aba4ae2d2a48ee347082cf8"], "statement_hash": "6aa2b325bf72bd1e6c55231d63ce0dc8c7973d98bf84b5311b3b54dc630c7b0b"}, "url": "/docs/compare/?release=9.5.21#9.5.21-bb73047540aea4a6", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "c97e1f22cceb95da773367228c582c34", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复数据库崩溃并重启之后逻辑复制发布方的失败", "evidence": {"same_day": true, "patch_ids": ["f2ffa9572aba4ae2d2a48ee347082cf8"], "statement_hash": "6aa2b325bf72bd1e6c55231d63ce0dc8c7973d98bf84b5311b3b54dc630c7b0b"}, "url": "/docs/compare/?release=9.4.26#9.4.26-bb73047540aea4a6", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-cf57a0132267fb11", "cves": [], "html": "<p>防止位于 Limit 节点之下的 Gather 或 GatherMerge 计划节点过早关闭（Amit Kapila）</p>\n<p>这避免了此类计划节点需要被扫描多次时的失败，例如当它位于 nestloop 内侧时。</p>", "text": "防止位于 Limit 节点之下的 Gather 或 GatherMerge 计划节点过早关闭（Amit Kapila） 这避免了此类计划节点需要被扫描多次时的失败，例如当它位于 nestloop 内侧时。", "title": "防止位于 Limit 节点之下的 Gather 或 GatherMerge 计划节点过早关闭", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "5044f042baacaa08448d04861de44433908c0c6c273e1764f5099a4ebb38697e", "section_path": ["变更"], "commit_groups": [["080313f82", "1ad0df67c", "1cc3a90c7", "d0ccfa9d6", "f7ae68aac"]], "identity_text": "Prevent premature shutdown of a Gather or GatherMerge plan node that is underneath a Limit node (Amit Kapila) This avoids failure if such a plan node needs to be scanned more than once, as for instance if it is on the inside of a nestloop.", "commit_aliases": ["080313f82", "1ad0df67c", "1cc3a90c7", "d0ccfa9d6", "f7ae68aac"], "source_commits": ["1ad0df67c"], "source_entry_id": "9.6.17/changes/004", "db_id": "3b9453a17ccc702c506c79746e5ba421", "patch_ids": ["ae20cbf89e29f4005017f037b249493b"], "statement_hash": "1f92ba2fffc4a678b50d81f64a3f0e9f14dd99adf8edc4996af62aade7874ca6", "relations": [{"rule": 2, "type": "equivalent", "target": "0736925131e2a1aa47c59c632711680f", "evidence": {"same_day": true, "patch_ids": ["ae20cbf89e29f4005017f037b249493b"], "statement_hash": "1f92ba2fffc4a678b50d81f64a3f0e9f14dd99adf8edc4996af62aade7874ca6"}}, {"rule": 2, "type": "equivalent", "target": "5f88ee03759351364b6139686c2c4363", "evidence": {"same_day": true, "patch_ids": ["ae20cbf89e29f4005017f037b249493b"], "statement_hash": "1f92ba2fffc4a678b50d81f64a3f0e9f14dd99adf8edc4996af62aade7874ca6"}}, {"rule": 2, "type": "equivalent", "target": "c522b4d56b52473e55baecaf0a9ee541", "evidence": {"same_day": true, "patch_ids": ["ae20cbf89e29f4005017f037b249493b"], "statement_hash": "1f92ba2fffc4a678b50d81f64a3f0e9f14dd99adf8edc4996af62aade7874ca6"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0736925131e2a1aa47c59c632711680f", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "防止过早关闭位于 Limit 节点下方的 Gather 或 GatherMerge 计划节点", "evidence": {"same_day": true, "patch_ids": ["ae20cbf89e29f4005017f037b249493b"], "statement_hash": "1f92ba2fffc4a678b50d81f64a3f0e9f14dd99adf8edc4996af62aade7874ca6"}, "url": "/docs/compare/?release=12.2#12.2-f220ed06d9d08439", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "5f88ee03759351364b6139686c2c4363", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "防止过早关闭位于 Limit 节点下方的 Gather 或 GatherMerge 计划节点", "evidence": {"same_day": true, "patch_ids": ["ae20cbf89e29f4005017f037b249493b"], "statement_hash": "1f92ba2fffc4a678b50d81f64a3f0e9f14dd99adf8edc4996af62aade7874ca6"}, "url": "/docs/compare/?release=11.7#11.7-4ca5fbf6a06d3712", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "c522b4d56b52473e55baecaf0a9ee541", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "防止过早关闭位于 Limit 节点下方的 Gather 或 GatherMerge 计划节点", "evidence": {"same_day": true, "patch_ids": ["ae20cbf89e29f4005017f037b249493b"], "statement_hash": "1f92ba2fffc4a678b50d81f64a3f0e9f14dd99adf8edc4996af62aade7874ca6"}, "url": "/docs/compare/?release=10.12#10.12-4ca5fbf6a06d3712", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}]}, {"id": "9.6.17-3cba81c9a7bf45df", "cves": [], "html": "<p>避免没有空闲动态共享内存槽位时的内存泄漏（Thomas Munro）</p>", "text": "避免没有空闲动态共享内存槽位时的内存泄漏（Thomas Munro）", "title": "避免没有空闲动态共享内存槽位时的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "f1037c30413aa202e95448cccf2b74261a7dd8651f1993cc2aaf649272f76097", "section_path": ["变更"], "commit_groups": [["24dd34af1", "600387f5d", "93745f1e0", "93be45245", "95936c795", "a5f45c3dd", "aab30cd4e"]], "identity_text": "Avoid memory leak when there are no free dynamic shared memory slots (Thomas Munro)", "commit_aliases": ["24dd34af1", "600387f5d", "93745f1e0", "93be45245", "95936c795", "a5f45c3dd", "aab30cd4e"], "source_commits": ["93be45245"], "source_entry_id": "9.6.17/changes/005", "db_id": "5e2f4f77c98c1824485cb030a9acdc86", "patch_ids": ["8afd81caf08066e62fe0151510b70316"], "statement_hash": "d120380ee87a8eb9c6373c3e3dbe226784646299975215e18461754478df75bd", "relations": [{"rule": 2, "type": "equivalent", "target": "28e588ec50dad9c08c90a47528c2384a", "evidence": {"same_day": true, "patch_ids": ["8afd81caf08066e62fe0151510b70316"], "statement_hash": "d120380ee87a8eb9c6373c3e3dbe226784646299975215e18461754478df75bd"}}, {"rule": 2, "type": "equivalent", "target": "2fbc97d14f34ee4610c171e22430c3eb", "evidence": {"same_day": true, "patch_ids": ["8afd81caf08066e62fe0151510b70316"], "statement_hash": "d120380ee87a8eb9c6373c3e3dbe226784646299975215e18461754478df75bd"}}, {"rule": 2, "type": "equivalent", "target": "9030c00e8e7259264942b4fc186c7cff", "evidence": {"same_day": true, "patch_ids": ["8afd81caf08066e62fe0151510b70316"], "statement_hash": "d120380ee87a8eb9c6373c3e3dbe226784646299975215e18461754478df75bd"}}, {"rule": 2, "type": "equivalent", "target": "922f0696cbfcdd119487a61a4b5c3e0f", "evidence": {"same_day": true, "patch_ids": ["8afd81caf08066e62fe0151510b70316"], "statement_hash": "d120380ee87a8eb9c6373c3e3dbe226784646299975215e18461754478df75bd"}}, {"rule": 2, "type": "equivalent", "target": "a9adae9994911ba8a4cfc85bad76adb2", "evidence": {"same_day": true, "patch_ids": ["8afd81caf08066e62fe0151510b70316"], "statement_hash": "d120380ee87a8eb9c6373c3e3dbe226784646299975215e18461754478df75bd"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9030c00e8e7259264942b4fc186c7cff", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "避免没有空闲动态共享内存槽时发生内存泄漏", "evidence": {"same_day": true, "patch_ids": ["8afd81caf08066e62fe0151510b70316"], "statement_hash": "d120380ee87a8eb9c6373c3e3dbe226784646299975215e18461754478df75bd"}, "url": "/docs/compare/?release=12.2#12.2-68dbd8d3853a1a9d", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "2fbc97d14f34ee4610c171e22430c3eb", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "避免没有空闲动态共享内存槽时发生内存泄漏", "evidence": {"same_day": true, "patch_ids": ["8afd81caf08066e62fe0151510b70316"], "statement_hash": "d120380ee87a8eb9c6373c3e3dbe226784646299975215e18461754478df75bd"}, "url": "/docs/compare/?release=11.7#11.7-4d5931233667908f", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "28e588ec50dad9c08c90a47528c2384a", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "避免没有空闲动态共享内存槽时发生内存泄漏", "evidence": {"same_day": true, "patch_ids": ["8afd81caf08066e62fe0151510b70316"], "statement_hash": "d120380ee87a8eb9c6373c3e3dbe226784646299975215e18461754478df75bd"}, "url": "/docs/compare/?release=10.12#10.12-4d5931233667908f", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "922f0696cbfcdd119487a61a4b5c3e0f", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "避免没有空闲动态共享内存槽位时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["8afd81caf08066e62fe0151510b70316"], "statement_hash": "d120380ee87a8eb9c6373c3e3dbe226784646299975215e18461754478df75bd"}, "url": "/docs/compare/?release=9.5.21#9.5.21-3cba81c9a7bf45df", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "a9adae9994911ba8a4cfc85bad76adb2", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "避免没有空闲动态共享内存槽位时的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["8afd81caf08066e62fe0151510b70316"], "statement_hash": "d120380ee87a8eb9c6373c3e3dbe226784646299975215e18461754478df75bd"}, "url": "/docs/compare/?release=9.4.26#9.4.26-3cba81c9a7bf45df", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-3ccce672ad5d3a6f", "cves": [], "html": "<p>对临时表执行索引创建、删除或重建时忽略 <code>CONCURRENTLY</code> 选项（Michael Paquier、Heikki Linnakangas、Andres Freund）</p>\n<p>这避免了临时表带有 <code>ON COMMIT</code> 动作时的奇怪失败。反正对临时表使用 <code>CONCURRENTLY</code> 没有益处，因为其他会话无法访问该表，额外的处理毫无意义。</p>", "text": "对临时表执行索引创建、删除或重建时忽略 CONCURRENTLY 选项（Michael Paquier、Heikki Linnakangas、Andres Freund） 这避免了临时表带有 ON COMMIT 动作时的奇怪失败。反正对临时表使用 CONCURRENTLY 没有益处，因为其他会话无法访问该表，额外的处理毫无意义。", "title": "对临时表执行索引创建、删除或重建时忽略 CONCURRENTLY 选项", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "4fad64c68bd2e414f2fd6032d73b8a4c56b86d098c5d4cbc814a370570776e1d", "section_path": ["变更"], "commit_groups": [["5b4b07fa9", "817a1b88a", "9055344b4", "a904abe2e", "c39f45598", "d76652edc", "ef33edeb5"]], "identity_text": "Ignore the CONCURRENTLY option when performing an index creation, drop, or rebuild on a temporary table (Michael Paquier, Heikki Linnakangas, Andres Freund) This avoids strange failures if the temporary table has an ON COMMIT action. There is no benefit in using CONCURRENTLY for a temporary table anyway, since other sessions cannot access the table, making the extra processing pointless.", "commit_aliases": ["5b4b07fa9", "817a1b88a", "9055344b4", "a904abe2e", "c39f45598", "d76652edc", "ef33edeb5"], "source_commits": ["ef33edeb5"], "source_entry_id": "9.6.17/changes/006", "db_id": "1ef6ab0fe5752bbfa61615312ee12220", "patch_ids": ["160560ced7cd4414f6a596bdbc1cd1f3"], "statement_hash": "1e672d30a52f2ae770d93c187ed303c83766147300618606cf0605977114780b", "relations": [{"rule": 2, "type": "equivalent", "target": "1fda7e81ac8a1705fadbac8958c8be79", "evidence": {"same_day": true, "patch_ids": ["160560ced7cd4414f6a596bdbc1cd1f3"], "statement_hash": "1e672d30a52f2ae770d93c187ed303c83766147300618606cf0605977114780b"}}, {"rule": 2, "type": "equivalent", "target": "74b9411413f95a70a3972f85e0c2dd7d", "evidence": {"same_day": true, "patch_ids": ["160560ced7cd4414f6a596bdbc1cd1f3"], "statement_hash": "1e672d30a52f2ae770d93c187ed303c83766147300618606cf0605977114780b"}}, {"rule": 2, "type": "equivalent", "target": "81d83e8d0bb1a990c2664a42c44d825c", "evidence": {"same_day": true, "patch_ids": ["160560ced7cd4414f6a596bdbc1cd1f3"], "statement_hash": "1e672d30a52f2ae770d93c187ed303c83766147300618606cf0605977114780b"}}, {"rule": 2, "type": "equivalent", "target": "a2dfdb2ad6a366ce0ab3a02e54e52d3c", "evidence": {"same_day": true, "patch_ids": ["160560ced7cd4414f6a596bdbc1cd1f3"], "statement_hash": "1e672d30a52f2ae770d93c187ed303c83766147300618606cf0605977114780b"}}, {"rule": 2, "type": "equivalent", "target": "bce130b79a518098d2bae3fa099dda62", "evidence": {"same_day": true, "patch_ids": ["160560ced7cd4414f6a596bdbc1cd1f3"], "statement_hash": "1e672d30a52f2ae770d93c187ed303c83766147300618606cf0605977114780b"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bce130b79a518098d2bae3fa099dda62", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "在临时表上创建、删除或重建索引时，忽略 CONCURRENTLY 选项", "evidence": {"same_day": true, "patch_ids": ["160560ced7cd4414f6a596bdbc1cd1f3"], "statement_hash": "1e672d30a52f2ae770d93c187ed303c83766147300618606cf0605977114780b"}, "url": "/docs/compare/?release=12.2#12.2-6dd4435540f1aa1f", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "74b9411413f95a70a3972f85e0c2dd7d", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "在临时表上创建、删除或重建索引时，忽略 CONCURRENTLY 选项", "evidence": {"same_day": true, "patch_ids": ["160560ced7cd4414f6a596bdbc1cd1f3"], "statement_hash": "1e672d30a52f2ae770d93c187ed303c83766147300618606cf0605977114780b"}, "url": "/docs/compare/?release=11.7#11.7-b6aea19cca5f1154", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "1fda7e81ac8a1705fadbac8958c8be79", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "在临时表上创建、删除或重建索引时，忽略 CONCURRENTLY 选项", "evidence": {"same_day": true, "patch_ids": ["160560ced7cd4414f6a596bdbc1cd1f3"], "statement_hash": "1e672d30a52f2ae770d93c187ed303c83766147300618606cf0605977114780b"}, "url": "/docs/compare/?release=10.12#10.12-b6aea19cca5f1154", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "a2dfdb2ad6a366ce0ab3a02e54e52d3c", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "对临时表执行索引创建、删除或重建时忽略 CONCURRENTLY 选项", "evidence": {"same_day": true, "patch_ids": ["160560ced7cd4414f6a596bdbc1cd1f3"], "statement_hash": "1e672d30a52f2ae770d93c187ed303c83766147300618606cf0605977114780b"}, "url": "/docs/compare/?release=9.5.21#9.5.21-3ccce672ad5d3a6f", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "81d83e8d0bb1a990c2664a42c44d825c", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "对临时表执行索引创建、删除或重建时忽略 CONCURRENTLY 选项", "evidence": {"same_day": true, "patch_ids": ["160560ced7cd4414f6a596bdbc1cd1f3"], "statement_hash": "1e672d30a52f2ae770d93c187ed303c83766147300618606cf0605977114780b"}, "url": "/docs/compare/?release=9.4.26#9.4.26-3ccce672ad5d3a6f", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-785cdb35ca3fa1d3", "cves": [], "html": "<p>修复重置标记为 <code>ON COMMIT DELETE ROWS</code> 的临时表上的表达式索引时可能的失败（Tom Lane）</p>", "text": "修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的表达式索引时可能的失败（Tom Lane）", "title": "修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的表达式索引时可能的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "806aa53be998a186a4dfb1ae779e2fac14dbb74f758087e7d0c625ed58482948", "section_path": ["变更"], "commit_groups": [["0c84e992c", "25c7183c0", "283f095d0", "768a401e2", "b154d70f7", "c35b714ca", "cfffa8a6b"]], "identity_text": "Fix possible failure when resetting expression indexes on temporary tables that are marked ON COMMIT DELETE ROWS (Tom Lane)", "commit_aliases": ["0c84e992c", "25c7183c0", "283f095d0", "768a401e2", "b154d70f7", "c35b714ca", "cfffa8a6b"], "source_commits": ["283f095d0"], "source_entry_id": "9.6.17/changes/007", "db_id": "e25762d447d9f6d0e649c022b2324661", "patch_ids": ["d42d4ae6f194be7c0690b06444bc16a2"], "statement_hash": "197220b9fb34990fbf91e24bf9b9a2cc0e239aa17932aab3c2b329e106c38017", "relations": [{"rule": 2, "type": "equivalent", "target": "19c0cd27ddfaf38099b0d6dceec72740", "evidence": {"same_day": true, "patch_ids": ["d42d4ae6f194be7c0690b06444bc16a2"], "statement_hash": "197220b9fb34990fbf91e24bf9b9a2cc0e239aa17932aab3c2b329e106c38017"}}, {"rule": 2, "type": "equivalent", "target": "9b7ce358661e494a8f98a2913a29e84d", "evidence": {"same_day": true, "patch_ids": ["d42d4ae6f194be7c0690b06444bc16a2"], "statement_hash": "197220b9fb34990fbf91e24bf9b9a2cc0e239aa17932aab3c2b329e106c38017"}}, {"rule": 2, "type": "equivalent", "target": "bd2bdb9fd93c223dfe82e4631a020d1a", "evidence": {"same_day": true, "patch_ids": ["d42d4ae6f194be7c0690b06444bc16a2"], "statement_hash": "197220b9fb34990fbf91e24bf9b9a2cc0e239aa17932aab3c2b329e106c38017"}}, {"rule": 2, "type": "equivalent", "target": "c7ad22067c9cf2e6ad0b90fc4c4bafec", "evidence": {"same_day": true, "patch_ids": ["d42d4ae6f194be7c0690b06444bc16a2"], "statement_hash": "197220b9fb34990fbf91e24bf9b9a2cc0e239aa17932aab3c2b329e106c38017"}}, {"rule": 2, "type": "equivalent", "target": "e6d3ce0118db9057dc27c54ff834d1a0", "evidence": {"same_day": true, "patch_ids": ["d42d4ae6f194be7c0690b06444bc16a2"], "statement_hash": "197220b9fb34990fbf91e24bf9b9a2cc0e239aa17932aab3c2b329e106c38017"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e6d3ce0118db9057dc27c54ff834d1a0", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的表达式索引时可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["d42d4ae6f194be7c0690b06444bc16a2"], "statement_hash": "197220b9fb34990fbf91e24bf9b9a2cc0e239aa17932aab3c2b329e106c38017"}, "url": "/docs/compare/?release=12.2#12.2-17f4b0fbe04898b0", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "9b7ce358661e494a8f98a2913a29e84d", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的表达式索引时可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["d42d4ae6f194be7c0690b06444bc16a2"], "statement_hash": "197220b9fb34990fbf91e24bf9b9a2cc0e239aa17932aab3c2b329e106c38017"}, "url": "/docs/compare/?release=11.7#11.7-cefb17b7aa176da2", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "c7ad22067c9cf2e6ad0b90fc4c4bafec", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的表达式索引时可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["d42d4ae6f194be7c0690b06444bc16a2"], "statement_hash": "197220b9fb34990fbf91e24bf9b9a2cc0e239aa17932aab3c2b329e106c38017"}, "url": "/docs/compare/?release=10.12#10.12-cefb17b7aa176da2", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "bd2bdb9fd93c223dfe82e4631a020d1a", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的表达式索引时可能的失败", "evidence": {"same_day": true, "patch_ids": ["d42d4ae6f194be7c0690b06444bc16a2"], "statement_hash": "197220b9fb34990fbf91e24bf9b9a2cc0e239aa17932aab3c2b329e106c38017"}, "url": "/docs/compare/?release=9.5.21#9.5.21-785cdb35ca3fa1d3", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "19c0cd27ddfaf38099b0d6dceec72740", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的表达式索引时可能的失败", "evidence": {"same_day": true, "patch_ids": ["d42d4ae6f194be7c0690b06444bc16a2"], "statement_hash": "197220b9fb34990fbf91e24bf9b9a2cc0e239aa17932aab3c2b329e106c38017"}, "url": "/docs/compare/?release=9.4.26#9.4.26-785cdb35ca3fa1d3", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-ba50284679678c9a", "cves": [], "html": "<p>修复对 <code>box</code>、<code>range</code> 和 <code>inet</code> 数据类型执行 BRIN 索引操作时可能的崩溃（Heikki Linnakangas）</p>", "text": "修复对 box、range 和 inet 数据类型执行 BRIN 索引操作时可能的崩溃（Heikki Linnakangas）", "title": "修复对 box、range 和 inet 数据类型执行 BRIN 索引操作时可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "4fd5de34758c467952aacc49d278e63669b19941904195fc67b92a7c7163bb5b", "section_path": ["变更"], "commit_groups": [["4c8701098", "98f0d2837", "da7abcf0f", "e96f30d89", "fd436bba0", "ff0c567cb"]], "identity_text": "Fix possible crash in BRIN index operations with box, range and inet data types (Heikki Linnakangas)", "commit_aliases": ["4c8701098", "98f0d2837", "da7abcf0f", "e96f30d89", "fd436bba0", "ff0c567cb"], "source_commits": ["e96f30d89"], "source_entry_id": "9.6.17/changes/008", "db_id": "12ad963273ec88e8c7a7dffa7d317b13", "patch_ids": ["459068976a8e29ddf25a5336ace1f8cc"], "statement_hash": "42b7080a586af06174e0e4a2fd87330321b281b51acf0010f5ce8a3d66857230", "relations": [{"rule": 2, "type": "equivalent", "target": "1235864c3c57c21c0c5a10b209ca85b4", "evidence": {"same_day": true, "patch_ids": ["459068976a8e29ddf25a5336ace1f8cc"], "statement_hash": "42b7080a586af06174e0e4a2fd87330321b281b51acf0010f5ce8a3d66857230"}}, {"rule": 2, "type": "equivalent", "target": "97b781d31fc46815140196138432fd72", "evidence": {"same_day": true, "patch_ids": ["459068976a8e29ddf25a5336ace1f8cc"], "statement_hash": "42b7080a586af06174e0e4a2fd87330321b281b51acf0010f5ce8a3d66857230"}}, {"rule": 2, "type": "equivalent", "target": "b4d4c0f54025cb1b7f6c445dfca85b32", "evidence": {"same_day": true, "patch_ids": ["459068976a8e29ddf25a5336ace1f8cc"], "statement_hash": "42b7080a586af06174e0e4a2fd87330321b281b51acf0010f5ce8a3d66857230"}}, {"rule": 2, "type": "equivalent", "target": "ddc83fcc1582b3dbf2bbc9c60e8f7071", "evidence": {"same_day": true, "patch_ids": ["459068976a8e29ddf25a5336ace1f8cc"], "statement_hash": "42b7080a586af06174e0e4a2fd87330321b281b51acf0010f5ce8a3d66857230"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "97b781d31fc46815140196138432fd72", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复对 box、range 和 inet 数据类型执行 BRIN 索引操作时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["459068976a8e29ddf25a5336ace1f8cc"], "statement_hash": "42b7080a586af06174e0e4a2fd87330321b281b51acf0010f5ce8a3d66857230"}, "url": "/docs/compare/?release=12.2#12.2-c0f90603cf117fad", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "ddc83fcc1582b3dbf2bbc9c60e8f7071", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复对 box、range 和 inet 数据类型执行 BRIN 索引操作时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["459068976a8e29ddf25a5336ace1f8cc"], "statement_hash": "42b7080a586af06174e0e4a2fd87330321b281b51acf0010f5ce8a3d66857230"}, "url": "/docs/compare/?release=11.7#11.7-7fe5570d13abef64", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "b4d4c0f54025cb1b7f6c445dfca85b32", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复对 box、range 和 inet 数据类型执行 BRIN 索引操作时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["459068976a8e29ddf25a5336ace1f8cc"], "statement_hash": "42b7080a586af06174e0e4a2fd87330321b281b51acf0010f5ce8a3d66857230"}, "url": "/docs/compare/?release=10.12#10.12-7fe5570d13abef64", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "1235864c3c57c21c0c5a10b209ca85b4", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复对 box、range 和 inet 数据类型执行 BRIN 索引操作时可能的崩溃", "evidence": {"same_day": true, "patch_ids": ["459068976a8e29ddf25a5336ace1f8cc"], "statement_hash": "42b7080a586af06174e0e4a2fd87330321b281b51acf0010f5ce8a3d66857230"}, "url": "/docs/compare/?release=9.5.21#9.5.21-ba50284679678c9a", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}]}, {"id": "9.6.17-32e05da2ada9e89b", "cves": [], "html": "<p>修复 GIN 索引中对已删除页的处理（Alexander Korotkov）</p>\n<p>避免可能的死锁、已删除页状态的错误更新，以及穿过最近删除页的遍历失败。</p>", "text": "修复 GIN 索引中对已删除页的处理（Alexander Korotkov） 避免可能的死锁、已删除页状态的错误更新，以及穿过最近删除页的遍历失败。", "title": "修复 GIN 索引中对已删除页的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "d370ba5411edd13ee37c902a0718707541d83c4830bb49ec4243e295f7cfff13", "section_path": ["变更"], "commit_groups": [["051c50c01", "21ad61ab3", "9f2927989", "e14641197"], ["1414821e1", "4fc485684", "99f5888d3", "ab64b474d", "c0bf35421", "d5ad7a09a", "ee437ca74"], ["4093ff573", "baf487123", "f91706b00"], ["7d467dee0", "a64e7e05a", "b10714080"]], "identity_text": "Fix handling of deleted pages in GIN indexes (Alexander Korotkov) Avoid possible deadlocks, incorrect updates of a deleted page's state, and failure to traverse through a recently-deleted page.", "commit_aliases": ["051c50c01", "1414821e1", "21ad61ab3", "4093ff573", "4fc485684", "7d467dee0", "99f5888d3", "9f2927989", "a64e7e05a", "ab64b474d", "b10714080", "baf487123", "c0bf35421", "d5ad7a09a", "e14641197", "ee437ca74", "f91706b00"], "source_commits": ["4093ff573", "99f5888d3", "b10714080", "e14641197"], "source_entry_id": "9.6.17/changes/009", "db_id": "1c0ccf06670d2279d01e43d3f63aaab6", "patch_ids": ["0fb51caa2a6599d8ae03ec723df72516", "2d779b29920a9156df03dacbfed95bdf", "5614389161137ab83fc478bb6dc593c7", "70da9dc7f21eb7c1acbaa8639acbac5e"], "statement_hash": "a4489e08e273e747212a8ae0efaec9bc58505c38caaac21cc5fa44b30e80bb46", "relations": [{"rule": 2, "type": "equivalent", "target": "163a1188a571ecf3210d6a867b91e4d2", "evidence": {"same_day": true, "patch_ids": ["0fb51caa2a6599d8ae03ec723df72516", "2d779b29920a9156df03dacbfed95bdf", "5614389161137ab83fc478bb6dc593c7", "70da9dc7f21eb7c1acbaa8639acbac5e"], "statement_hash": "a4489e08e273e747212a8ae0efaec9bc58505c38caaac21cc5fa44b30e80bb46"}}, {"rule": 2, "type": "equivalent", "target": "382e9c585cfb14f9b1c242bd2db98948", "evidence": {"same_day": true, "patch_ids": ["0fb51caa2a6599d8ae03ec723df72516", "2d779b29920a9156df03dacbfed95bdf", "5614389161137ab83fc478bb6dc593c7", "70da9dc7f21eb7c1acbaa8639acbac5e"], "statement_hash": "a4489e08e273e747212a8ae0efaec9bc58505c38caaac21cc5fa44b30e80bb46"}}, {"rule": 2, "type": "equivalent", "target": "4f986828312e793956423c2975a5b2c8", "evidence": {"same_day": true, "patch_ids": ["0fb51caa2a6599d8ae03ec723df72516", "2d779b29920a9156df03dacbfed95bdf", "5614389161137ab83fc478bb6dc593c7", "70da9dc7f21eb7c1acbaa8639acbac5e"], "statement_hash": "a4489e08e273e747212a8ae0efaec9bc58505c38caaac21cc5fa44b30e80bb46"}}, {"rule": 2, "type": "equivalent", "target": "ba63d0d0210c6a9fd78797edfd452c32", "evidence": {"same_day": true, "patch_ids": ["0fb51caa2a6599d8ae03ec723df72516", "2d779b29920a9156df03dacbfed95bdf", "5614389161137ab83fc478bb6dc593c7", "70da9dc7f21eb7c1acbaa8639acbac5e"], "statement_hash": "a4489e08e273e747212a8ae0efaec9bc58505c38caaac21cc5fa44b30e80bb46"}}, {"rule": 2, "type": "equivalent", "target": "baa0df43bab5ee15154867b855376f70", "evidence": {"same_day": true, "patch_ids": ["0fb51caa2a6599d8ae03ec723df72516", "2d779b29920a9156df03dacbfed95bdf", "5614389161137ab83fc478bb6dc593c7", "70da9dc7f21eb7c1acbaa8639acbac5e"], "statement_hash": "a4489e08e273e747212a8ae0efaec9bc58505c38caaac21cc5fa44b30e80bb46"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f986828312e793956423c2975a5b2c8", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复 GIN 索引中对已删除页面的处理", "evidence": {"same_day": true, "patch_ids": ["0fb51caa2a6599d8ae03ec723df72516", "2d779b29920a9156df03dacbfed95bdf", "5614389161137ab83fc478bb6dc593c7", "70da9dc7f21eb7c1acbaa8639acbac5e"], "statement_hash": "a4489e08e273e747212a8ae0efaec9bc58505c38caaac21cc5fa44b30e80bb46"}, "url": "/docs/compare/?release=12.2#12.2-5be8d704bafc0f2f", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "baa0df43bab5ee15154867b855376f70", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复 GIN 索引中对已删除页面的处理", "evidence": {"same_day": true, "patch_ids": ["0fb51caa2a6599d8ae03ec723df72516", "2d779b29920a9156df03dacbfed95bdf", "5614389161137ab83fc478bb6dc593c7", "70da9dc7f21eb7c1acbaa8639acbac5e"], "statement_hash": "a4489e08e273e747212a8ae0efaec9bc58505c38caaac21cc5fa44b30e80bb46"}, "url": "/docs/compare/?release=11.7#11.7-266952a113d1e196", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "ba63d0d0210c6a9fd78797edfd452c32", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复 GIN 索引中对已删除页面的处理", "evidence": {"same_day": true, "patch_ids": ["0fb51caa2a6599d8ae03ec723df72516", "2d779b29920a9156df03dacbfed95bdf", "5614389161137ab83fc478bb6dc593c7", "70da9dc7f21eb7c1acbaa8639acbac5e"], "statement_hash": "a4489e08e273e747212a8ae0efaec9bc58505c38caaac21cc5fa44b30e80bb46"}, "url": "/docs/compare/?release=10.12#10.12-266952a113d1e196", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "163a1188a571ecf3210d6a867b91e4d2", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复 GIN 索引中对已删除页的处理", "evidence": {"same_day": true, "patch_ids": ["0fb51caa2a6599d8ae03ec723df72516", "2d779b29920a9156df03dacbfed95bdf", "5614389161137ab83fc478bb6dc593c7", "70da9dc7f21eb7c1acbaa8639acbac5e"], "statement_hash": "a4489e08e273e747212a8ae0efaec9bc58505c38caaac21cc5fa44b30e80bb46"}, "url": "/docs/compare/?release=9.5.21#9.5.21-32e05da2ada9e89b", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "382e9c585cfb14f9b1c242bd2db98948", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复 GIN 索引中对已删除页的处理", "evidence": {"same_day": true, "patch_ids": ["0fb51caa2a6599d8ae03ec723df72516", "2d779b29920a9156df03dacbfed95bdf", "5614389161137ab83fc478bb6dc593c7", "70da9dc7f21eb7c1acbaa8639acbac5e"], "statement_hash": "a4489e08e273e747212a8ae0efaec9bc58505c38caaac21cc5fa44b30e80bb46"}, "url": "/docs/compare/?release=9.4.26#9.4.26-32e05da2ada9e89b", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-7095f012d7edd6c2", "cves": [], "html": "<p>修复多行 <code>VALUES</code> 列表中包含 SubPlan（子 <code>SELECT</code>）时可能的崩溃（Tom Lane）</p>", "text": "修复多行 VALUES 列表中包含 SubPlan（子 SELECT）时可能的崩溃（Tom Lane）", "title": "修复多行 VALUES 列表中包含 SubPlan（子 SELECT）时可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "5d7b0719cf5ee2b2f6f2769e01167f3197b990c16d3a4872b98217099fd5b2d7", "section_path": ["变更"], "commit_groups": [["167fd022f", "2e2646060", "396472278", "41c6f9db2", "45f03cfa5", "d8e877b86", "eb9d1f050"]], "identity_text": "Fix possible crash with a SubPlan (sub-SELECT) within a multi-row VALUES list (Tom Lane)", "commit_aliases": ["167fd022f", "2e2646060", "396472278", "41c6f9db2", "45f03cfa5", "d8e877b86", "eb9d1f050"], "source_commits": ["45f03cfa5"], "source_entry_id": "9.6.17/changes/010", "db_id": "23f1e9f5f1eecf6bc98e3d1dbf8dbf61", "patch_ids": ["0e17af1c06016767dcaf523c34b89247"], "statement_hash": "eaa0685446b3ea3d2207ebce434bedbb3076bf723e74a802fae6db261235f49b", "relations": [{"rule": 2, "type": "equivalent", "target": "04698fe64e11862558442505d05ca0d6", "evidence": {"same_day": true, "patch_ids": ["0e17af1c06016767dcaf523c34b89247"], "statement_hash": "eaa0685446b3ea3d2207ebce434bedbb3076bf723e74a802fae6db261235f49b"}}, {"rule": 2, "type": "equivalent", "target": "8d45a10666899d1d1a204650d114bf63", "evidence": {"same_day": true, "patch_ids": ["0e17af1c06016767dcaf523c34b89247"], "statement_hash": "eaa0685446b3ea3d2207ebce434bedbb3076bf723e74a802fae6db261235f49b"}}, {"rule": 2, "type": "equivalent", "target": "cd3c71415d61d2b5bb0e321d7fbda1f0", "evidence": {"same_day": true, "patch_ids": ["0e17af1c06016767dcaf523c34b89247"], "statement_hash": "eaa0685446b3ea3d2207ebce434bedbb3076bf723e74a802fae6db261235f49b"}}, {"rule": 2, "type": "equivalent", "target": "cfcc37a35ec28d0ca50bbc931b129973", "evidence": {"same_day": true, "patch_ids": ["0e17af1c06016767dcaf523c34b89247"], "statement_hash": "eaa0685446b3ea3d2207ebce434bedbb3076bf723e74a802fae6db261235f49b"}}, {"rule": 2, "type": "equivalent", "target": "f68d6dcdc3d684e7fbb68f4ebc48aa5c", "evidence": {"same_day": true, "patch_ids": ["0e17af1c06016767dcaf523c34b89247"], "statement_hash": "eaa0685446b3ea3d2207ebce434bedbb3076bf723e74a802fae6db261235f49b"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cfcc37a35ec28d0ca50bbc931b129973", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复多行 VALUES 列表中包含 SubPlan（子 SELECT）时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["0e17af1c06016767dcaf523c34b89247"], "statement_hash": "eaa0685446b3ea3d2207ebce434bedbb3076bf723e74a802fae6db261235f49b"}, "url": "/docs/compare/?release=12.2#12.2-3536e7c874996cfb", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "04698fe64e11862558442505d05ca0d6", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复多行 VALUES 列表中包含 SubPlan（子 SELECT）时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["0e17af1c06016767dcaf523c34b89247"], "statement_hash": "eaa0685446b3ea3d2207ebce434bedbb3076bf723e74a802fae6db261235f49b"}, "url": "/docs/compare/?release=11.7#11.7-79315b8d0599d7b8", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "cd3c71415d61d2b5bb0e321d7fbda1f0", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复多行 VALUES 列表中包含 SubPlan（子 SELECT）时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["0e17af1c06016767dcaf523c34b89247"], "statement_hash": "eaa0685446b3ea3d2207ebce434bedbb3076bf723e74a802fae6db261235f49b"}, "url": "/docs/compare/?release=10.12#10.12-79315b8d0599d7b8", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "f68d6dcdc3d684e7fbb68f4ebc48aa5c", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复多行 VALUES 列表中包含 SubPlan（子 SELECT）时可能的崩溃", "evidence": {"same_day": true, "patch_ids": ["0e17af1c06016767dcaf523c34b89247"], "statement_hash": "eaa0685446b3ea3d2207ebce434bedbb3076bf723e74a802fae6db261235f49b"}, "url": "/docs/compare/?release=9.5.21#9.5.21-7095f012d7edd6c2", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "8d45a10666899d1d1a204650d114bf63", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复多行 VALUES 列表中包含 SubPlan（子 SELECT）时可能的崩溃", "evidence": {"same_day": true, "patch_ids": ["0e17af1c06016767dcaf523c34b89247"], "statement_hash": "eaa0685446b3ea3d2207ebce434bedbb3076bf723e74a802fae6db261235f49b"}, "url": "/docs/compare/?release=9.4.26#9.4.26-7095f012d7edd6c2", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-3c11e63680e64497", "cves": [], "html": "<p>修复按引用传递的聚合转换状态不太可能的崩溃（Andres Freund、Teodor Sigaev）</p>", "text": "修复按引用传递的聚合转换状态不太可能的崩溃（Andres Freund、Teodor Sigaev）", "title": "修复按引用传递的聚合转换状态不太可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "e3a8cde999f990b67762e4cfa5dc0d1119fd9b7d9fc37ebbf108f0be990593f6", "section_path": ["变更"], "commit_groups": [["21fdfd0e8", "8bb006a41", "affdde2e1", "ba1dfbe22", "c8e0e560e", "d4c339924", "f651976d9"]], "identity_text": "Fix unlikely crash with pass-by-reference aggregate transition states (Andres Freund, Teodor Sigaev)", "commit_aliases": ["21fdfd0e8", "8bb006a41", "affdde2e1", "ba1dfbe22", "c8e0e560e", "d4c339924", "f651976d9"], "source_commits": ["d4c339924"], "source_entry_id": "9.6.17/changes/011", "db_id": "aa38fe8a84a05ccb7d5ca2231a4a9ab2", "patch_ids": ["730f997a58a04f63067e9ce63b4b26a6"], "statement_hash": "247ecf8b0f57ea41bff13f5eb478cd6d22e7b98f79a7290a54702aa6470249b2", "relations": [{"rule": 2, "type": "equivalent", "target": "36852c66d198f3d3882a089f2fe0f1b9", "evidence": {"same_day": true, "patch_ids": ["730f997a58a04f63067e9ce63b4b26a6"], "statement_hash": "247ecf8b0f57ea41bff13f5eb478cd6d22e7b98f79a7290a54702aa6470249b2"}}, {"rule": 2, "type": "equivalent", "target": "55eecb13c679c1b456e4f63a0afa50a3", "evidence": {"same_day": true, "patch_ids": ["730f997a58a04f63067e9ce63b4b26a6"], "statement_hash": "247ecf8b0f57ea41bff13f5eb478cd6d22e7b98f79a7290a54702aa6470249b2"}}, {"rule": 2, "type": "equivalent", "target": "7bbdbe671f37e7a8f307651f9934bbb5", "evidence": {"same_day": true, "patch_ids": ["730f997a58a04f63067e9ce63b4b26a6"], "statement_hash": "247ecf8b0f57ea41bff13f5eb478cd6d22e7b98f79a7290a54702aa6470249b2"}}, {"rule": 2, "type": "equivalent", "target": "7c398b24a82fde3f229eb10a248b5b97", "evidence": {"same_day": true, "patch_ids": ["730f997a58a04f63067e9ce63b4b26a6"], "statement_hash": "247ecf8b0f57ea41bff13f5eb478cd6d22e7b98f79a7290a54702aa6470249b2"}}, {"rule": 2, "type": "equivalent", "target": "a4516e116251828c608ebe40de67937c", "evidence": {"same_day": true, "patch_ids": ["730f997a58a04f63067e9ce63b4b26a6"], "statement_hash": "247ecf8b0f57ea41bff13f5eb478cd6d22e7b98f79a7290a54702aa6470249b2"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7c398b24a82fde3f229eb10a248b5b97", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复使用按引用传递的聚合转换状态时发生的罕见崩溃", "evidence": {"same_day": true, "patch_ids": ["730f997a58a04f63067e9ce63b4b26a6"], "statement_hash": "247ecf8b0f57ea41bff13f5eb478cd6d22e7b98f79a7290a54702aa6470249b2"}, "url": "/docs/compare/?release=12.2#12.2-30062929998dd8f5", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "55eecb13c679c1b456e4f63a0afa50a3", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复使用按引用传递的聚合转换状态时发生的罕见崩溃", "evidence": {"same_day": true, "patch_ids": ["730f997a58a04f63067e9ce63b4b26a6"], "statement_hash": "247ecf8b0f57ea41bff13f5eb478cd6d22e7b98f79a7290a54702aa6470249b2"}, "url": "/docs/compare/?release=11.7#11.7-1145da8fb2f19235", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "7bbdbe671f37e7a8f307651f9934bbb5", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复使用按引用传递的聚合转换状态时发生的罕见崩溃", "evidence": {"same_day": true, "patch_ids": ["730f997a58a04f63067e9ce63b4b26a6"], "statement_hash": "247ecf8b0f57ea41bff13f5eb478cd6d22e7b98f79a7290a54702aa6470249b2"}, "url": "/docs/compare/?release=10.12#10.12-1145da8fb2f19235", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "a4516e116251828c608ebe40de67937c", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复按引用传递的聚合转换状态不太可能的崩溃", "evidence": {"same_day": true, "patch_ids": ["730f997a58a04f63067e9ce63b4b26a6"], "statement_hash": "247ecf8b0f57ea41bff13f5eb478cd6d22e7b98f79a7290a54702aa6470249b2"}, "url": "/docs/compare/?release=9.5.21#9.5.21-3c11e63680e64497", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "36852c66d198f3d3882a089f2fe0f1b9", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复按引用传递的聚合转换状态不太可能的崩溃", "evidence": {"same_day": true, "patch_ids": ["730f997a58a04f63067e9ce63b4b26a6"], "statement_hash": "247ecf8b0f57ea41bff13f5eb478cd6d22e7b98f79a7290a54702aa6470249b2"}, "url": "/docs/compare/?release=9.4.26#9.4.26-3c11e63680e64497", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-b115320876673b56", "cves": [], "html": "<p>改进 <code>to_date()</code> 和 <code>to_timestamp()</code> 中的错误报告（Tom Lane、Álvaro Herrera）</p>\n<p>关于输入字符串中不正确月份或日期名称的报告，可能在多字节字符中间截断输入，导致错误编码的错误消息并引发后续失败。现在改为在下一个空白处截断。</p>", "text": "改进 to_date() 和 to_timestamp() 中的错误报告（Tom Lane、Álvaro Herrera） 关于输入字符串中不正确月份或日期名称的报告，可能在多字节字符中间截断输入，导致错误编码的错误消息并引发后续失败。现在改为在下一个空白处截断。", "title": "改进 to_date() 和 to_timestamp() 中的错误报告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "b8e9685b7e0be50a64fe8219ed7bf855fea6068a7c7987125824976a871f1543", "section_path": ["变更"], "commit_groups": [["0e63d9641", "451f50813", "7a9fef299", "8fc33e6cc", "9a3a75cb8", "d6a9548b2", "f309c812e"], ["212b870d6", "4c70098ff", "600b953d7", "9e24575f6", "a576f2a8f", "be13f227f", "fb12aefaa"]], "identity_text": "Improve error reporting in to_date() and to_timestamp() (Tom Lane, Álvaro Herrera) Reports about incorrect month or day names in input strings could truncate the input in the middle of a multi-byte character, leading to an improperly encoded error message that could cause follow-on failures. Truncate at the next whitespace instead.", "commit_aliases": ["0e63d9641", "212b870d6", "451f50813", "4c70098ff", "600b953d7", "7a9fef299", "8fc33e6cc", "9a3a75cb8", "9e24575f6", "a576f2a8f", "be13f227f", "d6a9548b2", "f309c812e", "fb12aefaa"], "source_commits": ["451f50813", "9e24575f6"], "source_entry_id": "9.6.17/changes/012", "db_id": "ba9b3b2bf6101c85ca968cf1bc4c2a39", "patch_ids": ["881a4ad4e73e5bd4a9e5a289b084a789", "b3676034f161a2b8e0f55f02dbf6ca1d"], "statement_hash": "9e20b30958a588fb9e31c02ef288f2ed5e1df59831e7e09f29ac2a8de8f66856", "relations": [{"rule": 2, "type": "equivalent", "target": "2e88f289c1234dc88f881d954d466e4a", "evidence": {"same_day": true, "patch_ids": ["881a4ad4e73e5bd4a9e5a289b084a789", "b3676034f161a2b8e0f55f02dbf6ca1d"], "statement_hash": "9e20b30958a588fb9e31c02ef288f2ed5e1df59831e7e09f29ac2a8de8f66856"}}, {"rule": 2, "type": "equivalent", "target": "39630b7768bb1c46d4b6752581ccf6ce", "evidence": {"same_day": true, "patch_ids": ["881a4ad4e73e5bd4a9e5a289b084a789", "b3676034f161a2b8e0f55f02dbf6ca1d"], "statement_hash": "9e20b30958a588fb9e31c02ef288f2ed5e1df59831e7e09f29ac2a8de8f66856"}}, {"rule": 2, "type": "equivalent", "target": "70492e26779a8a1656d44ae93b8feaa6", "evidence": {"same_day": true, "patch_ids": ["881a4ad4e73e5bd4a9e5a289b084a789", "b3676034f161a2b8e0f55f02dbf6ca1d"], "statement_hash": "9e20b30958a588fb9e31c02ef288f2ed5e1df59831e7e09f29ac2a8de8f66856"}}, {"rule": 2, "type": "equivalent", "target": "cdbf4f801b3c350a10257de0582a1372", "evidence": {"same_day": true, "patch_ids": ["881a4ad4e73e5bd4a9e5a289b084a789", "b3676034f161a2b8e0f55f02dbf6ca1d"], "statement_hash": "9e20b30958a588fb9e31c02ef288f2ed5e1df59831e7e09f29ac2a8de8f66856"}}, {"rule": 2, "type": "equivalent", "target": "e5a881c43afb38e00e461fd4d589dc16", "evidence": {"same_day": true, "patch_ids": ["881a4ad4e73e5bd4a9e5a289b084a789", "b3676034f161a2b8e0f55f02dbf6ca1d"], "statement_hash": "9e20b30958a588fb9e31c02ef288f2ed5e1df59831e7e09f29ac2a8de8f66856"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e88f289c1234dc88f881d954d466e4a", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "改进 to_date() 和 to_timestamp() 中的错误报告", "evidence": {"same_day": true, "patch_ids": ["881a4ad4e73e5bd4a9e5a289b084a789", "b3676034f161a2b8e0f55f02dbf6ca1d"], "statement_hash": "9e20b30958a588fb9e31c02ef288f2ed5e1df59831e7e09f29ac2a8de8f66856"}, "url": "/docs/compare/?release=12.2#12.2-0bc48a9f176e3069", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "70492e26779a8a1656d44ae93b8feaa6", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "改进 to_date() 和 to_timestamp() 中的错误报告", "evidence": {"same_day": true, "patch_ids": ["881a4ad4e73e5bd4a9e5a289b084a789", "b3676034f161a2b8e0f55f02dbf6ca1d"], "statement_hash": "9e20b30958a588fb9e31c02ef288f2ed5e1df59831e7e09f29ac2a8de8f66856"}, "url": "/docs/compare/?release=11.7#11.7-b115320876673b56", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "cdbf4f801b3c350a10257de0582a1372", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "改进 to_date() 和 to_timestamp() 中的错误报告", "evidence": {"same_day": true, "patch_ids": ["881a4ad4e73e5bd4a9e5a289b084a789", "b3676034f161a2b8e0f55f02dbf6ca1d"], "statement_hash": "9e20b30958a588fb9e31c02ef288f2ed5e1df59831e7e09f29ac2a8de8f66856"}, "url": "/docs/compare/?release=10.12#10.12-b115320876673b56", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "39630b7768bb1c46d4b6752581ccf6ce", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "改进 to_date() 和 to_timestamp() 中的错误报告", "evidence": {"same_day": true, "patch_ids": ["881a4ad4e73e5bd4a9e5a289b084a789", "b3676034f161a2b8e0f55f02dbf6ca1d"], "statement_hash": "9e20b30958a588fb9e31c02ef288f2ed5e1df59831e7e09f29ac2a8de8f66856"}, "url": "/docs/compare/?release=9.5.21#9.5.21-b115320876673b56", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "e5a881c43afb38e00e461fd4d589dc16", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "改进 to_date() 和 to_timestamp() 中的错误报告", "evidence": {"same_day": true, "patch_ids": ["881a4ad4e73e5bd4a9e5a289b084a789", "b3676034f161a2b8e0f55f02dbf6ca1d"], "statement_hash": "9e20b30958a588fb9e31c02ef288f2ed5e1df59831e7e09f29ac2a8de8f66856"}, "url": "/docs/compare/?release=9.4.26#9.4.26-b115320876673b56", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-c797d83d4d4b0861", "cves": [], "html": "<p>修复公元前日期的 <code>EXTRACT(ISOYEAR FROM <em><code>timestamp</code></em>)</code> 的差一结果（Tom Lane）</p>", "text": "修复公元前日期的 EXTRACT(ISOYEAR FROM timestamp) 的差一结果（Tom Lane）", "title": "修复公元前日期的 EXTRACT(ISOYEAR FROM timestamp) 的差一结果", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "8c0700d91b9d82d47ef15f3b31d5033089d21951a0ccf0f8319a4588fbea4992", "section_path": ["变更"], "commit_groups": [["07c4b6ac7", "1a3efa1eb", "323c47925", "332584da9", "6aa126311", "6e2ac8d66", "c965c42a5"]], "identity_text": "Fix off-by-one result for EXTRACT(ISOYEAR FROM timestamp) for BC dates (Tom Lane)", "commit_aliases": ["07c4b6ac7", "1a3efa1eb", "323c47925", "332584da9", "6aa126311", "6e2ac8d66", "c965c42a5"], "source_commits": ["6e2ac8d66"], "source_entry_id": "9.6.17/changes/013", "db_id": "8165e96592be79ede7a550c4a042b9d4", "patch_ids": ["e64c1aedea53edbdb2a27f60e946cd5f"], "statement_hash": "0a67a694ed58e0baf5b93141608db1f69dce394feec5bdb8f7c817eb8767ed8d", "relations": [{"rule": 2, "type": "equivalent", "target": "976efdd3073cd52012c4d8fad816cc02", "evidence": {"same_day": true, "patch_ids": ["e64c1aedea53edbdb2a27f60e946cd5f"], "statement_hash": "0a67a694ed58e0baf5b93141608db1f69dce394feec5bdb8f7c817eb8767ed8d"}}, {"rule": 2, "type": "equivalent", "target": "a2a9f3ed8a680dc61d461557c9720630", "evidence": {"same_day": true, "patch_ids": ["e64c1aedea53edbdb2a27f60e946cd5f"], "statement_hash": "0a67a694ed58e0baf5b93141608db1f69dce394feec5bdb8f7c817eb8767ed8d"}}, {"rule": 2, "type": "equivalent", "target": "a3244dabefb4bb88f7b0a7987bd3ae31", "evidence": {"same_day": true, "patch_ids": ["e64c1aedea53edbdb2a27f60e946cd5f"], "statement_hash": "0a67a694ed58e0baf5b93141608db1f69dce394feec5bdb8f7c817eb8767ed8d"}}, {"rule": 2, "type": "equivalent", "target": "b5b8b7b90208d81bd67592a4a8638877", "evidence": {"same_day": true, "patch_ids": ["e64c1aedea53edbdb2a27f60e946cd5f"], "statement_hash": "0a67a694ed58e0baf5b93141608db1f69dce394feec5bdb8f7c817eb8767ed8d"}}, {"rule": 2, "type": "equivalent", "target": "d41730767b50746673b7b49da97f6bb1", "evidence": {"same_day": true, "patch_ids": ["e64c1aedea53edbdb2a27f60e946cd5f"], "statement_hash": "0a67a694ed58e0baf5b93141608db1f69dce394feec5bdb8f7c817eb8767ed8d"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2a9f3ed8a680dc61d461557c9720630", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复对公元前日期计算 EXTRACT(ISOYEAR FROM timestamp) 时结果相差一的问题", "evidence": {"same_day": true, "patch_ids": ["e64c1aedea53edbdb2a27f60e946cd5f"], "statement_hash": "0a67a694ed58e0baf5b93141608db1f69dce394feec5bdb8f7c817eb8767ed8d"}, "url": "/docs/compare/?release=12.2#12.2-1044778c53f32f8d", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "976efdd3073cd52012c4d8fad816cc02", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复对公元前日期计算 EXTRACT(ISOYEAR FROM timestamp) 时结果相差一的问题", "evidence": {"same_day": true, "patch_ids": ["e64c1aedea53edbdb2a27f60e946cd5f"], "statement_hash": "0a67a694ed58e0baf5b93141608db1f69dce394feec5bdb8f7c817eb8767ed8d"}, "url": "/docs/compare/?release=11.7#11.7-c369b627d2709619", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "d41730767b50746673b7b49da97f6bb1", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复对公元前日期计算 EXTRACT(ISOYEAR FROM timestamp) 时结果相差一的问题", "evidence": {"same_day": true, "patch_ids": ["e64c1aedea53edbdb2a27f60e946cd5f"], "statement_hash": "0a67a694ed58e0baf5b93141608db1f69dce394feec5bdb8f7c817eb8767ed8d"}, "url": "/docs/compare/?release=10.12#10.12-c369b627d2709619", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "b5b8b7b90208d81bd67592a4a8638877", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复公元前日期的 EXTRACT(ISOYEAR FROM timestamp) 的差一结果", "evidence": {"same_day": true, "patch_ids": ["e64c1aedea53edbdb2a27f60e946cd5f"], "statement_hash": "0a67a694ed58e0baf5b93141608db1f69dce394feec5bdb8f7c817eb8767ed8d"}, "url": "/docs/compare/?release=9.5.21#9.5.21-c797d83d4d4b0861", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "a3244dabefb4bb88f7b0a7987bd3ae31", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复公元前日期的 EXTRACT(ISOYEAR FROM timestamp) 的差一结果", "evidence": {"same_day": true, "patch_ids": ["e64c1aedea53edbdb2a27f60e946cd5f"], "statement_hash": "0a67a694ed58e0baf5b93141608db1f69dce394feec5bdb8f7c817eb8767ed8d"}, "url": "/docs/compare/?release=9.4.26#9.4.26-c797d83d4d4b0861", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-1a4a5880e6239261", "cves": [], "html": "<p>避免系统目录中存在自引用视图时 <code>information_schema</code> 视图中的栈溢出（Tom Lane）</p>\n<p>自引用视图无法工作；它总是导致无限递归。我们在尝试执行该视图时能正确处理这种情况，但在查询它是否自动可更新时不能。</p>", "text": "避免系统目录中存在自引用视图时 information_schema 视图中的栈溢出（Tom Lane） 自引用视图无法工作；它总是导致无限递归。我们在尝试执行该视图时能正确处理这种情况，但在查询它是否自动可更新时不能。", "title": "避免系统目录中存在自引用视图时 information_schema 视图中的栈溢出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "4137c5b7625f4d5cc1e46b9daf3d378bd89d98b5eaeef8698089eddba7d7b424", "section_path": ["变更"], "commit_groups": [["4a0aab14d", "5186f7625", "52434ba73", "669138ebd", "b9f3d7a53", "bcd541897", "f09829017"]], "identity_text": "Avoid stack overflow in information_schema views when a self-referential view exists in the system catalogs (Tom Lane) A self-referential view can't work; it will always result in infinite recursion. We handled that situation correctly when trying to execute the view, but not when inquiring whether it is automatically updatable.", "commit_aliases": ["4a0aab14d", "5186f7625", "52434ba73", "669138ebd", "b9f3d7a53", "bcd541897", "f09829017"], "source_commits": ["52434ba73"], "source_entry_id": "9.6.17/changes/014", "db_id": "1b330957449f4b21da4a1725df3776af", "patch_ids": ["ee445a89d96850907b66829bdd2041c7"], "statement_hash": "d38af59ef3e029aa8eb8934c03824ef4b851b43bc0892f344b143600ae7807ce", "relations": [{"rule": 2, "type": "equivalent", "target": "4c60a3ca30b315e9f22ac913e2ce2d4b", "evidence": {"same_day": true, "patch_ids": ["ee445a89d96850907b66829bdd2041c7"], "statement_hash": "d38af59ef3e029aa8eb8934c03824ef4b851b43bc0892f344b143600ae7807ce"}}, {"rule": 2, "type": "equivalent", "target": "acf1d52fad98389a471114b8df0c0fdc", "evidence": {"same_day": true, "patch_ids": ["ee445a89d96850907b66829bdd2041c7"], "statement_hash": "d38af59ef3e029aa8eb8934c03824ef4b851b43bc0892f344b143600ae7807ce"}}, {"rule": 2, "type": "equivalent", "target": "b491675de114029fc48083e9392427fe", "evidence": {"same_day": true, "patch_ids": ["ee445a89d96850907b66829bdd2041c7"], "statement_hash": "d38af59ef3e029aa8eb8934c03824ef4b851b43bc0892f344b143600ae7807ce"}}, {"rule": 2, "type": "equivalent", "target": "b933e5d77c8aa2e81fd04399a0e55040", "evidence": {"same_day": true, "patch_ids": ["ee445a89d96850907b66829bdd2041c7"], "statement_hash": "d38af59ef3e029aa8eb8934c03824ef4b851b43bc0892f344b143600ae7807ce"}}, {"rule": 2, "type": "equivalent", "target": "e552e8dba5a3299576dfb60b582319bc", "evidence": {"same_day": true, "patch_ids": ["ee445a89d96850907b66829bdd2041c7"], "statement_hash": "d38af59ef3e029aa8eb8934c03824ef4b851b43bc0892f344b143600ae7807ce"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "acf1d52fad98389a471114b8df0c0fdc", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "避免系统目录中存在自引用视图时 information_schema 视图发生栈溢出", "evidence": {"same_day": true, "patch_ids": ["ee445a89d96850907b66829bdd2041c7"], "statement_hash": "d38af59ef3e029aa8eb8934c03824ef4b851b43bc0892f344b143600ae7807ce"}, "url": "/docs/compare/?release=12.2#12.2-78335de878eb3d78", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "e552e8dba5a3299576dfb60b582319bc", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "避免系统目录中存在自引用视图时 information_schema 视图发生栈溢出", "evidence": {"same_day": true, "patch_ids": ["ee445a89d96850907b66829bdd2041c7"], "statement_hash": "d38af59ef3e029aa8eb8934c03824ef4b851b43bc0892f344b143600ae7807ce"}, "url": "/docs/compare/?release=11.7#11.7-a585e920494ebca6", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "b491675de114029fc48083e9392427fe", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "避免系统目录中存在自引用视图时 information_schema 视图发生栈溢出", "evidence": {"same_day": true, "patch_ids": ["ee445a89d96850907b66829bdd2041c7"], "statement_hash": "d38af59ef3e029aa8eb8934c03824ef4b851b43bc0892f344b143600ae7807ce"}, "url": "/docs/compare/?release=10.12#10.12-a585e920494ebca6", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "b933e5d77c8aa2e81fd04399a0e55040", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "避免系统目录中存在自引用视图时 information_schema 视图中的栈溢出", "evidence": {"same_day": true, "patch_ids": ["ee445a89d96850907b66829bdd2041c7"], "statement_hash": "d38af59ef3e029aa8eb8934c03824ef4b851b43bc0892f344b143600ae7807ce"}, "url": "/docs/compare/?release=9.5.21#9.5.21-1a4a5880e6239261", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "4c60a3ca30b315e9f22ac913e2ce2d4b", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "避免系统目录中存在自引用视图时 information_schema 视图中的栈溢出", "evidence": {"same_day": true, "patch_ids": ["ee445a89d96850907b66829bdd2041c7"], "statement_hash": "d38af59ef3e029aa8eb8934c03824ef4b851b43bc0892f344b143600ae7807ce"}, "url": "/docs/compare/?release=9.4.26#9.4.26-1a4a5880e6239261", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-ba72bdf7449915cf", "cves": [], "html": "<p>改进有超大内侧关系的哈希连接的性能（Thomas Munro）</p>", "text": "改进有超大内侧关系的哈希连接的性能（Thomas Munro）", "title": "改进有超大内侧关系的哈希连接的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "ea9c247303cf1e473b9f46057f918da380615d1a49456fcadda768eaa113d832", "section_path": ["变更"], "commit_groups": [["15861deb6", "5c0a132cf", "8052aaf52", "893eaf0be", "8e89bc6df", "9e551a14c", "e69d64454"]], "identity_text": "Improve performance of hash joins with very large inner relations (Thomas Munro)", "commit_aliases": ["15861deb6", "5c0a132cf", "8052aaf52", "893eaf0be", "8e89bc6df", "9e551a14c", "e69d64454"], "source_commits": ["15861deb6"], "source_entry_id": "9.6.17/changes/015", "db_id": "b3cb781746ac72afd92d36eb4d30e449", "patch_ids": ["4fd40ea9c8ea4eadf6c96b64d56d3642"], "statement_hash": "2df267ae22df679eccfb91c9e704ed41b727a5277b344abfcc0fa5ca790fe3bd", "relations": [{"rule": 2, "type": "equivalent", "target": "0895ef11a5e64d19ab1da8f1b5310d96", "evidence": {"same_day": true, "patch_ids": ["4fd40ea9c8ea4eadf6c96b64d56d3642"], "statement_hash": "2df267ae22df679eccfb91c9e704ed41b727a5277b344abfcc0fa5ca790fe3bd"}}, {"rule": 2, "type": "equivalent", "target": "116f6d8659176bcd964a41e0209aedea", "evidence": {"same_day": true, "patch_ids": ["4fd40ea9c8ea4eadf6c96b64d56d3642"], "statement_hash": "2df267ae22df679eccfb91c9e704ed41b727a5277b344abfcc0fa5ca790fe3bd"}}, {"rule": 2, "type": "equivalent", "target": "17ab53f94dcefd2c93fabf044fcac49e", "evidence": {"same_day": true, "patch_ids": ["4fd40ea9c8ea4eadf6c96b64d56d3642"], "statement_hash": "2df267ae22df679eccfb91c9e704ed41b727a5277b344abfcc0fa5ca790fe3bd"}}, {"rule": 2, "type": "equivalent", "target": "470ba833faa3f091a2c921a50dcf0786", "evidence": {"same_day": true, "patch_ids": ["4fd40ea9c8ea4eadf6c96b64d56d3642"], "statement_hash": "2df267ae22df679eccfb91c9e704ed41b727a5277b344abfcc0fa5ca790fe3bd"}}, {"rule": 2, "type": "equivalent", "target": "d2e309cdc378e915039257fd8823d0bf", "evidence": {"same_day": true, "patch_ids": ["4fd40ea9c8ea4eadf6c96b64d56d3642"], "statement_hash": "2df267ae22df679eccfb91c9e704ed41b727a5277b344abfcc0fa5ca790fe3bd"}}], "version": "9.6.17", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "17ab53f94dcefd2c93fabf044fcac49e", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "提高内侧关系非常大时的哈希连接性能", "evidence": {"same_day": true, "patch_ids": ["4fd40ea9c8ea4eadf6c96b64d56d3642"], "statement_hash": "2df267ae22df679eccfb91c9e704ed41b727a5277b344abfcc0fa5ca790fe3bd"}, "url": "/docs/compare/?release=12.2#12.2-fd4ec8b7ca5e3534", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "d2e309cdc378e915039257fd8823d0bf", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "提高内侧关系非常大时的哈希连接性能", "evidence": {"same_day": true, "patch_ids": ["4fd40ea9c8ea4eadf6c96b64d56d3642"], "statement_hash": "2df267ae22df679eccfb91c9e704ed41b727a5277b344abfcc0fa5ca790fe3bd"}, "url": "/docs/compare/?release=11.7#11.7-c524cf29609d73b0", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "116f6d8659176bcd964a41e0209aedea", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "提高内侧关系非常大时的哈希连接性能", "evidence": {"same_day": true, "patch_ids": ["4fd40ea9c8ea4eadf6c96b64d56d3642"], "statement_hash": "2df267ae22df679eccfb91c9e704ed41b727a5277b344abfcc0fa5ca790fe3bd"}, "url": "/docs/compare/?release=10.12#10.12-c524cf29609d73b0", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "470ba833faa3f091a2c921a50dcf0786", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "改进有超大内侧关系的哈希连接的性能", "evidence": {"same_day": true, "patch_ids": ["4fd40ea9c8ea4eadf6c96b64d56d3642"], "statement_hash": "2df267ae22df679eccfb91c9e704ed41b727a5277b344abfcc0fa5ca790fe3bd"}, "url": "/docs/compare/?release=9.5.21#9.5.21-ba72bdf7449915cf", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "0895ef11a5e64d19ab1da8f1b5310d96", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "改进有超大内侧关系的哈希连接的性能", "evidence": {"same_day": true, "patch_ids": ["4fd40ea9c8ea4eadf6c96b64d56d3642"], "statement_hash": "2df267ae22df679eccfb91c9e704ed41b727a5277b344abfcc0fa5ca790fe3bd"}, "url": "/docs/compare/?release=9.4.26#9.4.26-ba72bdf7449915cf", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-8b8cb30dd25eac7f", "cves": [], "html": "<p>修复 <code>&lt;@</code> 和 <code>@&gt;</code> 范围操作符选择率计算中的边界崩溃和估计错误（Michael Paquier、Andrey Borodin、Tom Lane）</p>", "text": "修复 <@ 和 @> 范围操作符选择率计算中的边界崩溃和估计错误（Michael Paquier、Andrey Borodin、Tom Lane）", "title": "修复 <@ 和 @> 范围操作符选择率计算中的边界崩溃和估计错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "c4be8a36f9461dfa640c2307f2729b4d7361950f48d88071365cf2c9fee10e4a", "section_path": ["变更"], "commit_groups": [["2dd10477c", "5832be6ca", "652686a33", "6bd567b65", "70c17a812", "784c58da1", "8c8b456b5"]], "identity_text": "Fix edge-case crashes and misestimations in selectivity calculations for the <@ and @> range operators (Michael Paquier, Andrey Borodin, Tom Lane)", "commit_aliases": ["2dd10477c", "5832be6ca", "652686a33", "6bd567b65", "70c17a812", "784c58da1", "8c8b456b5"], "source_commits": ["2dd10477c"], "source_entry_id": "9.6.17/changes/016", "db_id": "0961d7751c5492d2b84a38d198cdf128", "patch_ids": ["4425958e08be3e89a78ee9b62d849cf3"], "statement_hash": "6f94d2044f860f50d8d6b357be87022695af2a03bbef74ed8e9916f71ecce695", "relations": [{"rule": 2, "type": "equivalent", "target": "3e9147b0ae8d405e39d48172b2657379", "evidence": {"same_day": true, "patch_ids": ["4425958e08be3e89a78ee9b62d849cf3"], "statement_hash": "6f94d2044f860f50d8d6b357be87022695af2a03bbef74ed8e9916f71ecce695"}}, {"rule": 2, "type": "equivalent", "target": "4307f0bc311d7b89cc4a721613633ad8", "evidence": {"same_day": true, "patch_ids": ["4425958e08be3e89a78ee9b62d849cf3"], "statement_hash": "6f94d2044f860f50d8d6b357be87022695af2a03bbef74ed8e9916f71ecce695"}}, {"rule": 2, "type": "equivalent", "target": "691c00f1e97381d8ffaec7f1f4a3c6e9", "evidence": {"same_day": true, "patch_ids": ["4425958e08be3e89a78ee9b62d849cf3"], "statement_hash": "6f94d2044f860f50d8d6b357be87022695af2a03bbef74ed8e9916f71ecce695"}}, {"rule": 2, "type": "equivalent", "target": "aef27d6d21de7e23502c594e8807df56", "evidence": {"same_day": true, "patch_ids": ["4425958e08be3e89a78ee9b62d849cf3"], "statement_hash": "6f94d2044f860f50d8d6b357be87022695af2a03bbef74ed8e9916f71ecce695"}}, {"rule": 2, "type": "equivalent", "target": "be5fcc5dce8879026b2c0741f46e490c", "evidence": {"same_day": true, "patch_ids": ["4425958e08be3e89a78ee9b62d849cf3"], "statement_hash": "6f94d2044f860f50d8d6b357be87022695af2a03bbef74ed8e9916f71ecce695"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4307f0bc311d7b89cc4a721613633ad8", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复为范围操作符 <@ 和 @> 计算选择率时在边界情况下发生的崩溃和估算错误", "evidence": {"same_day": true, "patch_ids": ["4425958e08be3e89a78ee9b62d849cf3"], "statement_hash": "6f94d2044f860f50d8d6b357be87022695af2a03bbef74ed8e9916f71ecce695"}, "url": "/docs/compare/?release=12.2#12.2-f56a7665ee2764ef", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "aef27d6d21de7e23502c594e8807df56", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复为范围操作符 <@ 和 @> 计算选择率时在边界情况下发生的崩溃和估算错误", "evidence": {"same_day": true, "patch_ids": ["4425958e08be3e89a78ee9b62d849cf3"], "statement_hash": "6f94d2044f860f50d8d6b357be87022695af2a03bbef74ed8e9916f71ecce695"}, "url": "/docs/compare/?release=11.7#11.7-3914b7cb2a0346b0", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "691c00f1e97381d8ffaec7f1f4a3c6e9", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复为范围操作符 <@ 和 @> 计算选择率时在边界情况下发生的崩溃和估算错误", "evidence": {"same_day": true, "patch_ids": ["4425958e08be3e89a78ee9b62d849cf3"], "statement_hash": "6f94d2044f860f50d8d6b357be87022695af2a03bbef74ed8e9916f71ecce695"}, "url": "/docs/compare/?release=10.12#10.12-3914b7cb2a0346b0", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "be5fcc5dce8879026b2c0741f46e490c", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复 <@ 和 @> 范围操作符选择率计算中的边界崩溃和估计错误", "evidence": {"same_day": true, "patch_ids": ["4425958e08be3e89a78ee9b62d849cf3"], "statement_hash": "6f94d2044f860f50d8d6b357be87022695af2a03bbef74ed8e9916f71ecce695"}, "url": "/docs/compare/?release=9.5.21#9.5.21-8b8cb30dd25eac7f", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "3e9147b0ae8d405e39d48172b2657379", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复 <@ 和 @> 范围操作符选择率计算中的边界崩溃和估计错误", "evidence": {"same_day": true, "patch_ids": ["4425958e08be3e89a78ee9b62d849cf3"], "statement_hash": "6f94d2044f860f50d8d6b357be87022695af2a03bbef74ed8e9916f71ecce695"}, "url": "/docs/compare/?release=9.4.26#9.4.26-8b8cb30dd25eac7f", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-2af30e94440f1b18", "cves": [], "html": "<p>改进对试图在带条件 <code>INSTEAD</code> 规则的视图上使用自动更新的错误报告（Dean Rasheed）</p>\n<p>这从未被支持过，但此前错误只在执行时抛出，因此可能被规划器错误掩盖。</p>", "text": "改进对试图在带条件 INSTEAD 规则的视图上使用自动更新的错误报告（Dean Rasheed） 这从未被支持过，但此前错误只在执行时抛出，因此可能被规划器错误掩盖。", "title": "改进对试图在带条件 INSTEAD 规则的视图上使用自动更新的错误报告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "a90ed90b9c10030cfb638ad722558ef71e3bd32b52fe92e49de8fc4105422549", "section_path": ["变更"], "commit_groups": [["353cd826f", "9bdb1f0e3", "9be6fcb3e", "bb09a9414", "d751ba523", "fd5476b79", "fd87262de"]], "identity_text": "Improve error reporting for attempts to use automatic updating of views with conditional INSTEAD rules (Dean Rasheed) This has never been supported, but previously the error was thrown only at execution time, so that it could be masked by planner errors.", "commit_aliases": ["353cd826f", "9bdb1f0e3", "9be6fcb3e", "bb09a9414", "d751ba523", "fd5476b79", "fd87262de"], "source_commits": ["fd87262de"], "source_entry_id": "9.6.17/changes/017", "db_id": "646ae9c6eeaa9bddece446e464cf5a8b", "patch_ids": ["83c7e47d9b1c9e8c2a4bac13bbbac361"], "statement_hash": "640c1858997877f97952553ab17f0024c19eabd56a1824f1e665ebe039970517", "relations": [{"rule": 2, "type": "equivalent", "target": "6442085995f48457f67674804be68be5", "evidence": {"same_day": true, "patch_ids": ["83c7e47d9b1c9e8c2a4bac13bbbac361"], "statement_hash": "640c1858997877f97952553ab17f0024c19eabd56a1824f1e665ebe039970517"}}, {"rule": 2, "type": "equivalent", "target": "9d92be7c89b9bc2ab41a36e67bd07fa3", "evidence": {"same_day": true, "patch_ids": ["83c7e47d9b1c9e8c2a4bac13bbbac361"], "statement_hash": "640c1858997877f97952553ab17f0024c19eabd56a1824f1e665ebe039970517"}}, {"rule": 2, "type": "equivalent", "target": "ab7f2c29a2205a2026611703391223db", "evidence": {"same_day": true, "patch_ids": ["83c7e47d9b1c9e8c2a4bac13bbbac361"], "statement_hash": "640c1858997877f97952553ab17f0024c19eabd56a1824f1e665ebe039970517"}}, {"rule": 2, "type": "equivalent", "target": "c9ab6a2569ad820f5fcbce804d8d3c80", "evidence": {"same_day": true, "patch_ids": ["83c7e47d9b1c9e8c2a4bac13bbbac361"], "statement_hash": "640c1858997877f97952553ab17f0024c19eabd56a1824f1e665ebe039970517"}}, {"rule": 2, "type": "equivalent", "target": "f0ee5749c0a83d8cc1d5c36dd742602e", "evidence": {"same_day": true, "patch_ids": ["83c7e47d9b1c9e8c2a4bac13bbbac361"], "statement_hash": "640c1858997877f97952553ab17f0024c19eabd56a1824f1e665ebe039970517"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d92be7c89b9bc2ab41a36e67bd07fa3", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "改进对带条件 INSTEAD 规则的视图尝试使用自动更新时的错误报告", "evidence": {"same_day": true, "patch_ids": ["83c7e47d9b1c9e8c2a4bac13bbbac361"], "statement_hash": "640c1858997877f97952553ab17f0024c19eabd56a1824f1e665ebe039970517"}, "url": "/docs/compare/?release=12.2#12.2-d1508c69413dbdc4", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "6442085995f48457f67674804be68be5", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "改进对带条件 INSTEAD 规则的视图尝试使用自动更新时的错误报告", "evidence": {"same_day": true, "patch_ids": ["83c7e47d9b1c9e8c2a4bac13bbbac361"], "statement_hash": "640c1858997877f97952553ab17f0024c19eabd56a1824f1e665ebe039970517"}, "url": "/docs/compare/?release=11.7#11.7-d7ff4e00c12d1f8f", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "c9ab6a2569ad820f5fcbce804d8d3c80", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "改进对带条件 INSTEAD 规则的视图尝试使用自动更新时的错误报告", "evidence": {"same_day": true, "patch_ids": ["83c7e47d9b1c9e8c2a4bac13bbbac361"], "statement_hash": "640c1858997877f97952553ab17f0024c19eabd56a1824f1e665ebe039970517"}, "url": "/docs/compare/?release=10.12#10.12-d7ff4e00c12d1f8f", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "f0ee5749c0a83d8cc1d5c36dd742602e", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "改进对试图在带条件 INSTEAD 规则的视图上使用自动更新的错误报告", "evidence": {"same_day": true, "patch_ids": ["83c7e47d9b1c9e8c2a4bac13bbbac361"], "statement_hash": "640c1858997877f97952553ab17f0024c19eabd56a1824f1e665ebe039970517"}, "url": "/docs/compare/?release=9.5.21#9.5.21-2af30e94440f1b18", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "ab7f2c29a2205a2026611703391223db", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "改进对试图在带条件 INSTEAD 规则的视图上使用自动更新的错误报告", "evidence": {"same_day": true, "patch_ids": ["83c7e47d9b1c9e8c2a4bac13bbbac361"], "statement_hash": "640c1858997877f97952553ab17f0024c19eabd56a1824f1e665ebe039970517"}, "url": "/docs/compare/?release=9.4.26#9.4.26-2af30e94440f1b18", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-48690d42f8d5438e", "cves": [], "html": "<p>防止复合类型通过范围类型间接包含自身（Tom Lane、Julien Rouhaud）</p>", "text": "防止复合类型通过范围类型间接包含自身（Tom Lane、Julien Rouhaud）", "title": "防止复合类型通过范围类型间接包含自身", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "42113818971343b95c7d380201570a8dad0f7bd57c6dcb8fa907e3c7a655a9a0", "section_path": ["变更"], "commit_groups": [["0d245d13c", "31dfa40a8", "354d913f9", "4af2531d0", "6609c3ad9", "976cb11f6", "fc7695891"], ["25dc267a1", "59047b6d0", "65aa15513", "742c646c1", "74b35eb46", "de3d2df75", "f521ef0ae"]], "identity_text": "Prevent a composite type from being included in itself indirectly via a range type (Tom Lane, Julien Rouhaud)", "commit_aliases": ["0d245d13c", "25dc267a1", "31dfa40a8", "354d913f9", "4af2531d0", "59047b6d0", "65aa15513", "6609c3ad9", "742c646c1", "74b35eb46", "976cb11f6", "de3d2df75", "f521ef0ae", "fc7695891"], "source_commits": ["354d913f9", "742c646c1"], "source_entry_id": "9.6.17/changes/018", "db_id": "a2f957278a64b12dad6638c4a2a238a3", "patch_ids": ["c52b1e33ff03c0a7dd458178601d99df", "d106744efdd32c05bf5cf6e0d1da13bc"], "statement_hash": "f1d1bba4b13cb2d41b5076b349c2869b1a75ad694d10325d17019e4f1e158ef0", "relations": [{"rule": 2, "type": "equivalent", "target": "2d785e978a00eda25468d8fb4cfb2f75", "evidence": {"same_day": true, "patch_ids": ["c52b1e33ff03c0a7dd458178601d99df", "d106744efdd32c05bf5cf6e0d1da13bc"], "statement_hash": "f1d1bba4b13cb2d41b5076b349c2869b1a75ad694d10325d17019e4f1e158ef0"}}, {"rule": 2, "type": "equivalent", "target": "35c56caabddafddc3571fbc8e4d52531", "evidence": {"same_day": true, "patch_ids": ["c52b1e33ff03c0a7dd458178601d99df", "d106744efdd32c05bf5cf6e0d1da13bc"], "statement_hash": "f1d1bba4b13cb2d41b5076b349c2869b1a75ad694d10325d17019e4f1e158ef0"}}, {"rule": 2, "type": "equivalent", "target": "e67d212ae0c11e78088262e4b34e72aa", "evidence": {"same_day": true, "patch_ids": ["c52b1e33ff03c0a7dd458178601d99df", "d106744efdd32c05bf5cf6e0d1da13bc"], "statement_hash": "f1d1bba4b13cb2d41b5076b349c2869b1a75ad694d10325d17019e4f1e158ef0"}}, {"rule": 2, "type": "equivalent", "target": "fb5b776882ac9cf61570568881850052", "evidence": {"same_day": true, "patch_ids": ["c52b1e33ff03c0a7dd458178601d99df", "d106744efdd32c05bf5cf6e0d1da13bc"], "statement_hash": "f1d1bba4b13cb2d41b5076b349c2869b1a75ad694d10325d17019e4f1e158ef0"}}, {"rule": 2, "type": "equivalent", "target": "fffa3fefd5d79f160d2ddf4bf5538921", "evidence": {"same_day": true, "patch_ids": ["c52b1e33ff03c0a7dd458178601d99df", "d106744efdd32c05bf5cf6e0d1da13bc"], "statement_hash": "f1d1bba4b13cb2d41b5076b349c2869b1a75ad694d10325d17019e4f1e158ef0"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e67d212ae0c11e78088262e4b34e72aa", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "防止复合类型通过范围类型间接包含自身", "evidence": {"same_day": true, "patch_ids": ["c52b1e33ff03c0a7dd458178601d99df", "d106744efdd32c05bf5cf6e0d1da13bc"], "statement_hash": "f1d1bba4b13cb2d41b5076b349c2869b1a75ad694d10325d17019e4f1e158ef0"}, "url": "/docs/compare/?release=12.2#12.2-497f5e61d9c1b201", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "fb5b776882ac9cf61570568881850052", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "防止复合类型通过范围类型间接包含自身", "evidence": {"same_day": true, "patch_ids": ["c52b1e33ff03c0a7dd458178601d99df", "d106744efdd32c05bf5cf6e0d1da13bc"], "statement_hash": "f1d1bba4b13cb2d41b5076b349c2869b1a75ad694d10325d17019e4f1e158ef0"}, "url": "/docs/compare/?release=11.7#11.7-48690d42f8d5438e", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "35c56caabddafddc3571fbc8e4d52531", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "防止复合类型通过范围类型间接包含自身", "evidence": {"same_day": true, "patch_ids": ["c52b1e33ff03c0a7dd458178601d99df", "d106744efdd32c05bf5cf6e0d1da13bc"], "statement_hash": "f1d1bba4b13cb2d41b5076b349c2869b1a75ad694d10325d17019e4f1e158ef0"}, "url": "/docs/compare/?release=10.12#10.12-48690d42f8d5438e", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "fffa3fefd5d79f160d2ddf4bf5538921", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "防止复合类型通过范围类型间接包含自身", "evidence": {"same_day": true, "patch_ids": ["c52b1e33ff03c0a7dd458178601d99df", "d106744efdd32c05bf5cf6e0d1da13bc"], "statement_hash": "f1d1bba4b13cb2d41b5076b349c2869b1a75ad694d10325d17019e4f1e158ef0"}, "url": "/docs/compare/?release=9.5.21#9.5.21-48690d42f8d5438e", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "2d785e978a00eda25468d8fb4cfb2f75", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "防止复合类型通过范围类型间接包含自身", "evidence": {"same_day": true, "patch_ids": ["c52b1e33ff03c0a7dd458178601d99df", "d106744efdd32c05bf5cf6e0d1da13bc"], "statement_hash": "f1d1bba4b13cb2d41b5076b349c2869b1a75ad694d10325d17019e4f1e158ef0"}, "url": "/docs/compare/?release=9.4.26#9.4.26-48690d42f8d5438e", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-e4b18e7f6b9a4016", "cves": [], "html": "<p>修复对禁止类型索引表达式的错误报告（Amit Langote）</p>", "text": "修复对禁止类型索引表达式的错误报告（Amit Langote）", "title": "修复对禁止类型索引表达式的错误报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "20695d5a33e1805e533c87ae85745b0a899879353436f132c357a9fc5646b576", "section_path": ["变更"], "commit_groups": [["275a8ac4f", "298d056d9", "2acab054b", "5c5a268c6", "97ba30fab", "da5dd4218", "fc449abc3"]], "identity_text": "Fix error reporting for index expressions of prohibited types (Amit Langote)", "commit_aliases": ["275a8ac4f", "298d056d9", "2acab054b", "5c5a268c6", "97ba30fab", "da5dd4218", "fc449abc3"], "source_commits": ["275a8ac4f"], "source_entry_id": "9.6.17/changes/019", "db_id": "4c8354beb60a5626a666682abda93b92", "patch_ids": ["9ebd2a16b818858b89002e88642403f2"], "statement_hash": "28d1e927697d02690e4caea98e721555cea4c2b840ec748b42cd629016dc759c", "relations": [{"rule": 2, "type": "equivalent", "target": "1bdd4656461fd2b6d206dbe16e040209", "evidence": {"same_day": true, "patch_ids": ["9ebd2a16b818858b89002e88642403f2"], "statement_hash": "28d1e927697d02690e4caea98e721555cea4c2b840ec748b42cd629016dc759c"}}, {"rule": 2, "type": "equivalent", "target": "c67e1dcc68db8ad7eaad8c63d5deabf3", "evidence": {"same_day": true, "patch_ids": ["9ebd2a16b818858b89002e88642403f2"], "statement_hash": "28d1e927697d02690e4caea98e721555cea4c2b840ec748b42cd629016dc759c"}}, {"rule": 2, "type": "equivalent", "target": "c68cb246482528c6d028f8424cbc1206", "evidence": {"same_day": true, "patch_ids": ["9ebd2a16b818858b89002e88642403f2"], "statement_hash": "28d1e927697d02690e4caea98e721555cea4c2b840ec748b42cd629016dc759c"}}, {"rule": 2, "type": "equivalent", "target": "d703eb963ada69f3f8f94e175186b02a", "evidence": {"same_day": true, "patch_ids": ["9ebd2a16b818858b89002e88642403f2"], "statement_hash": "28d1e927697d02690e4caea98e721555cea4c2b840ec748b42cd629016dc759c"}}, {"rule": 2, "type": "equivalent", "target": "e8ba847993f879f935751b4d4f862b2c", "evidence": {"same_day": true, "patch_ids": ["9ebd2a16b818858b89002e88642403f2"], "statement_hash": "28d1e927697d02690e4caea98e721555cea4c2b840ec748b42cd629016dc759c"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e8ba847993f879f935751b4d4f862b2c", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复索引表达式使用禁止的类型时的错误报告", "evidence": {"same_day": true, "patch_ids": ["9ebd2a16b818858b89002e88642403f2"], "statement_hash": "28d1e927697d02690e4caea98e721555cea4c2b840ec748b42cd629016dc759c"}, "url": "/docs/compare/?release=12.2#12.2-6143d250a536d32b", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "d703eb963ada69f3f8f94e175186b02a", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复索引表达式使用禁止的类型时的错误报告", "evidence": {"same_day": true, "patch_ids": ["9ebd2a16b818858b89002e88642403f2"], "statement_hash": "28d1e927697d02690e4caea98e721555cea4c2b840ec748b42cd629016dc759c"}, "url": "/docs/compare/?release=11.7#11.7-a5b54460a1e82b29", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "1bdd4656461fd2b6d206dbe16e040209", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复索引表达式使用禁止的类型时的错误报告", "evidence": {"same_day": true, "patch_ids": ["9ebd2a16b818858b89002e88642403f2"], "statement_hash": "28d1e927697d02690e4caea98e721555cea4c2b840ec748b42cd629016dc759c"}, "url": "/docs/compare/?release=10.12#10.12-a5b54460a1e82b29", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "c68cb246482528c6d028f8424cbc1206", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复对禁止类型索引表达式的错误报告", "evidence": {"same_day": true, "patch_ids": ["9ebd2a16b818858b89002e88642403f2"], "statement_hash": "28d1e927697d02690e4caea98e721555cea4c2b840ec748b42cd629016dc759c"}, "url": "/docs/compare/?release=9.5.21#9.5.21-e4b18e7f6b9a4016", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "c67e1dcc68db8ad7eaad8c63d5deabf3", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复对禁止类型索引表达式的错误报告", "evidence": {"same_day": true, "patch_ids": ["9ebd2a16b818858b89002e88642403f2"], "statement_hash": "28d1e927697d02690e4caea98e721555cea4c2b840ec748b42cd629016dc759c"}, "url": "/docs/compare/?release=9.4.26#9.4.26-e4b18e7f6b9a4016", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-271ea55e3cdb7c40", "cves": [], "html": "<p>修复仅包含 <code>VALUES</code> 列表的视图的转储，以处理视图输出列被改名的情况（Tom Lane）</p>", "text": "修复仅包含 VALUES 列表的视图的转储，以处理视图输出列被改名的情况（Tom Lane）", "title": "修复仅包含 VALUES 列表的视图的转储，以处理视图输出列被改名的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "f9c3cd26c99745837db498fdafca21abc88a7e64b854ef655b5dfe0b81a177e9", "section_path": ["变更"], "commit_groups": [["65da6dd1d", "a1b2cf095", "bf2efc55d", "d898edf4f", "e4865bbdc", "ecb533af6", "fcaf29d87"]], "identity_text": "Fix dumping of views that contain only a VALUES list to handle cases where a view output column has been renamed (Tom Lane)", "commit_aliases": ["65da6dd1d", "a1b2cf095", "bf2efc55d", "d898edf4f", "e4865bbdc", "ecb533af6", "fcaf29d87"], "source_commits": ["e4865bbdc"], "source_entry_id": "9.6.17/changes/020", "db_id": "c5a470b36ead1242493daddc8fb98bc3", "patch_ids": ["d0e5f9a5954b0ba7bf2c6cded4624789"], "statement_hash": "30dd3a000cd75714571897ab68be85070f76b5e6845e37b477eb18f25418d8db", "relations": [{"rule": 2, "type": "equivalent", "target": "04dbf98c6fd89d5d83a6ee1523f36485", "evidence": {"same_day": true, "patch_ids": ["d0e5f9a5954b0ba7bf2c6cded4624789"], "statement_hash": "30dd3a000cd75714571897ab68be85070f76b5e6845e37b477eb18f25418d8db"}}, {"rule": 2, "type": "equivalent", "target": "4e641d633934a272f25b013ed45ef490", "evidence": {"same_day": true, "patch_ids": ["d0e5f9a5954b0ba7bf2c6cded4624789"], "statement_hash": "30dd3a000cd75714571897ab68be85070f76b5e6845e37b477eb18f25418d8db"}}, {"rule": 2, "type": "equivalent", "target": "b4b2f6890a3b567f11f25ea786365222", "evidence": {"same_day": true, "patch_ids": ["d0e5f9a5954b0ba7bf2c6cded4624789"], "statement_hash": "30dd3a000cd75714571897ab68be85070f76b5e6845e37b477eb18f25418d8db"}}, {"rule": 2, "type": "equivalent", "target": "d463514a5b782724319f0c99cd0e05d3", "evidence": {"same_day": true, "patch_ids": ["d0e5f9a5954b0ba7bf2c6cded4624789"], "statement_hash": "30dd3a000cd75714571897ab68be85070f76b5e6845e37b477eb18f25418d8db"}}, {"rule": 2, "type": "equivalent", "target": "dc0527aebbd5c1db7a8a5297167be3f1", "evidence": {"same_day": true, "patch_ids": ["d0e5f9a5954b0ba7bf2c6cded4624789"], "statement_hash": "30dd3a000cd75714571897ab68be85070f76b5e6845e37b477eb18f25418d8db"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b4b2f6890a3b567f11f25ea786365222", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复仅包含 VALUES 列表的视图的转储，使其能够处理视图输出列被重命名的情况", "evidence": {"same_day": true, "patch_ids": ["d0e5f9a5954b0ba7bf2c6cded4624789"], "statement_hash": "30dd3a000cd75714571897ab68be85070f76b5e6845e37b477eb18f25418d8db"}, "url": "/docs/compare/?release=12.2#12.2-6951d1f6b70962f5", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "dc0527aebbd5c1db7a8a5297167be3f1", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复仅包含 VALUES 列表的视图的转储，使其能够处理视图输出列被重命名的情况", "evidence": {"same_day": true, "patch_ids": ["d0e5f9a5954b0ba7bf2c6cded4624789"], "statement_hash": "30dd3a000cd75714571897ab68be85070f76b5e6845e37b477eb18f25418d8db"}, "url": "/docs/compare/?release=11.7#11.7-3a20ba2926c3cd68", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "04dbf98c6fd89d5d83a6ee1523f36485", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复仅包含 VALUES 列表的视图的转储，使其能够处理视图输出列被重命名的情况", "evidence": {"same_day": true, "patch_ids": ["d0e5f9a5954b0ba7bf2c6cded4624789"], "statement_hash": "30dd3a000cd75714571897ab68be85070f76b5e6845e37b477eb18f25418d8db"}, "url": "/docs/compare/?release=10.12#10.12-3a20ba2926c3cd68", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "d463514a5b782724319f0c99cd0e05d3", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复仅包含 VALUES 列表的视图的转储，以处理视图输出列被改名的情况", "evidence": {"same_day": true, "patch_ids": ["d0e5f9a5954b0ba7bf2c6cded4624789"], "statement_hash": "30dd3a000cd75714571897ab68be85070f76b5e6845e37b477eb18f25418d8db"}, "url": "/docs/compare/?release=9.5.21#9.5.21-271ea55e3cdb7c40", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "4e641d633934a272f25b013ed45ef490", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复仅包含 VALUES 列表的视图的转储，以处理视图输出列被改名的情况", "evidence": {"same_day": true, "patch_ids": ["d0e5f9a5954b0ba7bf2c6cded4624789"], "statement_hash": "30dd3a000cd75714571897ab68be85070f76b5e6845e37b477eb18f25418d8db"}, "url": "/docs/compare/?release=9.4.26#9.4.26-271ea55e3cdb7c40", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-c62c77f1fc1b6427", "cves": [], "html": "<p>把传入的 <code>NOTIFY</code> 消息在发送 <code>ReadyForQuery</code> 之前而不是之后传给客户端（Tom Lane）</p>\n<p>这一更改确保在使用 libpq 及行为类似它的其他客户端库时，事务期间收到的任何通知在客户端认为事务完成之时都已可用。这在实际应用中可能没有差别（反正都需要应对异步通知）；但它使构建行为可重现的测试用例更容易。</p>", "text": "把传入的 NOTIFY 消息在发送 ReadyForQuery 之前而不是之后传给客户端（Tom Lane） 这一更改确保在使用 libpq 及行为类似它的其他客户端库时，事务期间收到的任何通知在客户端认为事务完成之时都已可用。这在实际应用中可能没有差别（反正都需要应对异步通知）；但它使构建行为可重现的测试用例更容易。", "title": "把传入的 NOTIFY 消息在发送 ReadyForQuery 之前而不是之后传给客户端", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "53741ecbef9c45c8cca27f721f703a9cd58e483c8986fca31daa2903b96341d3", "section_path": ["变更"], "commit_groups": [["111298aa6", "377d1b95b", "790026972", "c47f498c9", "dbe15524b"]], "identity_text": "Transmit incoming NOTIFY messages to the client before sending ReadyForQuery, rather than after (Tom Lane) This change ensures that, with libpq and other client libraries that act similarly to it, any notifications received during a transaction will be available by the time the client thinks the transaction is complete. This probably makes no difference in practical applications (which would need to cope with asynchronous notifications in any case); but it makes it easier to build test cases with reproducible behavior.", "commit_aliases": ["111298aa6", "377d1b95b", "790026972", "c47f498c9", "dbe15524b"], "source_commits": ["111298aa6"], "source_entry_id": "9.6.17/changes/021", "db_id": "f7b4edeffd8f7e2bbd60da7e8191bcaf", "patch_ids": ["143ac7220b04444a8a549b7e07106f4c"], "statement_hash": "8312a6e591ff94226aa79fbd57a837b0f77fedcc878f005bd0cf9b138118552a", "relations": [{"rule": 2, "type": "equivalent", "target": "0d54b92cb025561e0cae46f0875d9f49", "evidence": {"same_day": true, "patch_ids": ["143ac7220b04444a8a549b7e07106f4c"], "statement_hash": "8312a6e591ff94226aa79fbd57a837b0f77fedcc878f005bd0cf9b138118552a"}}, {"rule": 2, "type": "equivalent", "target": "a39c1e72595c5bfe66bdafb5f1287cbf", "evidence": {"same_day": true, "patch_ids": ["143ac7220b04444a8a549b7e07106f4c"], "statement_hash": "8312a6e591ff94226aa79fbd57a837b0f77fedcc878f005bd0cf9b138118552a"}}, {"rule": 2, "type": "equivalent", "target": "c119abea7e9d42151b4f9b00b579082b", "evidence": {"same_day": true, "patch_ids": ["143ac7220b04444a8a549b7e07106f4c"], "statement_hash": "8312a6e591ff94226aa79fbd57a837b0f77fedcc878f005bd0cf9b138118552a"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a39c1e72595c5bfe66bdafb5f1287cbf", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "在发送 ReadyForQuery 之前向客户端传送收到的 NOTIFY 消息，而非在之后发送", "evidence": {"same_day": true, "patch_ids": ["143ac7220b04444a8a549b7e07106f4c"], "statement_hash": "8312a6e591ff94226aa79fbd57a837b0f77fedcc878f005bd0cf9b138118552a"}, "url": "/docs/compare/?release=12.2#12.2-889874eb8cc1b3e7", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "0d54b92cb025561e0cae46f0875d9f49", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "在发送 ReadyForQuery 之前向客户端传送收到的 NOTIFY 消息，而非在之后发送", "evidence": {"same_day": true, "patch_ids": ["143ac7220b04444a8a549b7e07106f4c"], "statement_hash": "8312a6e591ff94226aa79fbd57a837b0f77fedcc878f005bd0cf9b138118552a"}, "url": "/docs/compare/?release=11.7#11.7-8d456906e9cde243", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "c119abea7e9d42151b4f9b00b579082b", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "在发送 ReadyForQuery 之前向客户端传送收到的 NOTIFY 消息，而非在之后发送", "evidence": {"same_day": true, "patch_ids": ["143ac7220b04444a8a549b7e07106f4c"], "statement_hash": "8312a6e591ff94226aa79fbd57a837b0f77fedcc878f005bd0cf9b138118552a"}, "url": "/docs/compare/?release=10.12#10.12-8d456906e9cde243", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}]}, {"id": "9.6.17-1eba4957cff6dc49", "cves": [], "html": "<p>允许 <span>libpq</span> 在未编译 GSSAPI 代码时也解析所有与 GSS 相关的连接参数（Tom Lane）</p>\n<p>这使行为与我们的 SSL 支持相似——很久以前我们就认为始终接受所有相关参数是个好主意，即使在特定构建中因缺少该特性而忽略或限制某些参数。</p>", "text": "允许 libpq 在未编译 GSSAPI 代码时也解析所有与 GSS 相关的连接参数（Tom Lane） 这使行为与我们的 SSL 支持相似——很久以前我们就认为始终接受所有相关参数是个好主意，即使在特定构建中因缺少该特性而忽略或限制某些参数。", "title": "允许 libpq 在未编译 GSSAPI 代码时也解析所有与 GSS 相关的连接参数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "6bb4a12738abdd750816a2c4baebcd5ca131dcbd4bc10b862310251e5731286d", "section_path": ["变更"], "commit_groups": [["1a77ea02d", "5e22a1111", "875c7d70d", "c11bd6c10", "d09cfa3e2", "e60b480d3", "e8f60e6fe"]], "identity_text": "Allow libpq to parse all GSS-related connection parameters even when the GSSAPI code hasn't been compiled in (Tom Lane) This makes the behavior similar to our SSL support, where it was long ago deemed to be a good idea to always accept all the related parameters, even if some are ignored or restricted due to lack of the feature in a particular build.", "commit_aliases": ["1a77ea02d", "5e22a1111", "875c7d70d", "c11bd6c10", "d09cfa3e2", "e60b480d3", "e8f60e6fe"], "source_commits": ["c11bd6c10"], "source_entry_id": "9.6.17/changes/022", "db_id": "403244521d4fdb482380e481cc2ced93", "patch_ids": ["545032ece7d355adeec65ef480fad60d"], "statement_hash": "1206a1ac182d983384194ddf901975451c4f893e2c798f2df70cc5614c46e763", "relations": [{"rule": 2, "type": "equivalent", "target": "1bb2f6337ba2898734544030a669e49d", "evidence": {"same_day": true, "patch_ids": ["545032ece7d355adeec65ef480fad60d"], "statement_hash": "1206a1ac182d983384194ddf901975451c4f893e2c798f2df70cc5614c46e763"}}, {"rule": 2, "type": "equivalent", "target": "2d073031d898b2ce379669b11bf00500", "evidence": {"same_day": true, "patch_ids": ["545032ece7d355adeec65ef480fad60d"], "statement_hash": "1206a1ac182d983384194ddf901975451c4f893e2c798f2df70cc5614c46e763"}}, {"rule": 2, "type": "equivalent", "target": "484d7d42670f34504842f8b64f8610bc", "evidence": {"same_day": true, "patch_ids": ["545032ece7d355adeec65ef480fad60d"], "statement_hash": "1206a1ac182d983384194ddf901975451c4f893e2c798f2df70cc5614c46e763"}}, {"rule": 2, "type": "equivalent", "target": "784fb8e33c762755c78c61d3c0255575", "evidence": {"same_day": true, "patch_ids": ["545032ece7d355adeec65ef480fad60d"], "statement_hash": "1206a1ac182d983384194ddf901975451c4f893e2c798f2df70cc5614c46e763"}}, {"rule": 2, "type": "equivalent", "target": "b722089a0263aa3d6c363961a1789ede", "evidence": {"same_day": true, "patch_ids": ["545032ece7d355adeec65ef480fad60d"], "statement_hash": "1206a1ac182d983384194ddf901975451c4f893e2c798f2df70cc5614c46e763"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b722089a0263aa3d6c363961a1789ede", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "即使未编译 GSSAPI 代码，也允许 libpq 解析所有与 GSS 有关的连接参数", "evidence": {"same_day": true, "patch_ids": ["545032ece7d355adeec65ef480fad60d"], "statement_hash": "1206a1ac182d983384194ddf901975451c4f893e2c798f2df70cc5614c46e763"}, "url": "/docs/compare/?release=12.2#12.2-fe8985d3df13efcf", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "1bb2f6337ba2898734544030a669e49d", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "即使未编译 GSSAPI 代码，也允许 libpq 解析所有与 GSS 有关的连接参数", "evidence": {"same_day": true, "patch_ids": ["545032ece7d355adeec65ef480fad60d"], "statement_hash": "1206a1ac182d983384194ddf901975451c4f893e2c798f2df70cc5614c46e763"}, "url": "/docs/compare/?release=11.7#11.7-a18dd44ba61d6ab0", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "784fb8e33c762755c78c61d3c0255575", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "即使未编译 GSSAPI 代码，也允许 libpq 解析所有与 GSS 有关的连接参数", "evidence": {"same_day": true, "patch_ids": ["545032ece7d355adeec65ef480fad60d"], "statement_hash": "1206a1ac182d983384194ddf901975451c4f893e2c798f2df70cc5614c46e763"}, "url": "/docs/compare/?release=10.12#10.12-a18dd44ba61d6ab0", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "2d073031d898b2ce379669b11bf00500", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "允许 libpq 在未编译 GSSAPI 代码时也解析所有与 GSS 相关的连接参数", "evidence": {"same_day": true, "patch_ids": ["545032ece7d355adeec65ef480fad60d"], "statement_hash": "1206a1ac182d983384194ddf901975451c4f893e2c798f2df70cc5614c46e763"}, "url": "/docs/compare/?release=9.5.21#9.5.21-1eba4957cff6dc49", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "484d7d42670f34504842f8b64f8610bc", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "允许 libpq 在未编译 GSSAPI 代码时也解析所有与 GSS 相关的连接参数", "evidence": {"same_day": true, "patch_ids": ["545032ece7d355adeec65ef480fad60d"], "statement_hash": "1206a1ac182d983384194ddf901975451c4f893e2c798f2df70cc5614c46e763"}, "url": "/docs/compare/?release=9.4.26#9.4.26-1eba4957cff6dc49", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-0c629553afdfef1a", "cves": [], "html": "<p>修复 <span>ecpg</span> 的 <code>PGTYPEStimestamp_fmt_asc()</code> 函数中 <code>%b</code> 和 <code>%B</code> 格式代码的错误处理（Tomas Vondra）</p>\n<p>由于差一错误，这些代码会打印错误的月份名称，或者可能崩溃。</p>", "text": "修复 ecpg 的 PGTYPEStimestamp_fmt_asc() 函数中 %b 和 %B 格式代码的错误处理（Tomas Vondra） 由于差一错误，这些代码会打印错误的月份名称，或者可能崩溃。", "title": "修复 ecpg 的 PGTYPEStimestamp_fmt_asc() 函数中 %b 和 %B 格式代码的错误处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "cb73abd0179aff744368d094303667835d295d77290fd6eeab3f343c6f3389fd", "section_path": ["变更"], "commit_groups": [["0dafed6fe", "3ff660bbe", "9668bf5d5", "a17602de1", "c59414da7", "d9b974e99", "f71b22f53"]], "identity_text": "Fix incorrect handling of %b and %B format codes in ecpg's PGTYPEStimestamp_fmt_asc() function (Tomas Vondra) Due to an off-by-one error, these codes would print the wrong month name, or possibly crash.", "commit_aliases": ["0dafed6fe", "3ff660bbe", "9668bf5d5", "a17602de1", "c59414da7", "d9b974e99", "f71b22f53"], "source_commits": ["c59414da7"], "source_entry_id": "9.6.17/changes/023", "db_id": "ccd200283e6eaabea774bf29b3a5c9b0", "patch_ids": ["98ce3485e7421c58dabcd04707a8b4dc"], "statement_hash": "55f40e67e7ff67ce051d1e229c5b9805045fa9e0750b98da37f72bd574814bf6", "relations": [{"rule": 2, "type": "equivalent", "target": "07c9c08c3f6d8a9d7bb489a91bc7bfad", "evidence": {"same_day": true, "patch_ids": ["98ce3485e7421c58dabcd04707a8b4dc"], "statement_hash": "55f40e67e7ff67ce051d1e229c5b9805045fa9e0750b98da37f72bd574814bf6"}}, {"rule": 2, "type": "equivalent", "target": "4c483fea559a83716ed5879fc5f8ebc4", "evidence": {"same_day": true, "patch_ids": ["98ce3485e7421c58dabcd04707a8b4dc"], "statement_hash": "55f40e67e7ff67ce051d1e229c5b9805045fa9e0750b98da37f72bd574814bf6"}}, {"rule": 2, "type": "equivalent", "target": "7fc768077bbbaba7bb2800f2d9790945", "evidence": {"same_day": true, "patch_ids": ["98ce3485e7421c58dabcd04707a8b4dc"], "statement_hash": "55f40e67e7ff67ce051d1e229c5b9805045fa9e0750b98da37f72bd574814bf6"}}, {"rule": 2, "type": "equivalent", "target": "a18b89f65dd1e0d20dfd4b9c304a3ed2", "evidence": {"same_day": true, "patch_ids": ["98ce3485e7421c58dabcd04707a8b4dc"], "statement_hash": "55f40e67e7ff67ce051d1e229c5b9805045fa9e0750b98da37f72bd574814bf6"}}, {"rule": 2, "type": "equivalent", "target": "f7eb19a202cef3c275a0ac6028d63ec8", "evidence": {"same_day": true, "patch_ids": ["98ce3485e7421c58dabcd04707a8b4dc"], "statement_hash": "55f40e67e7ff67ce051d1e229c5b9805045fa9e0750b98da37f72bd574814bf6"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fc768077bbbaba7bb2800f2d9790945", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复 ecpg 的 PGTYPEStimestamp_fmt_asc() 函数对格式代码 %b 和 %B 的不正确处理", "evidence": {"same_day": true, "patch_ids": ["98ce3485e7421c58dabcd04707a8b4dc"], "statement_hash": "55f40e67e7ff67ce051d1e229c5b9805045fa9e0750b98da37f72bd574814bf6"}, "url": "/docs/compare/?release=12.2#12.2-1e9b09723b65ec71", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "4c483fea559a83716ed5879fc5f8ebc4", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复 ecpg 的 PGTYPEStimestamp_fmt_asc() 函数对格式代码 %b 和 %B 的不正确处理", "evidence": {"same_day": true, "patch_ids": ["98ce3485e7421c58dabcd04707a8b4dc"], "statement_hash": "55f40e67e7ff67ce051d1e229c5b9805045fa9e0750b98da37f72bd574814bf6"}, "url": "/docs/compare/?release=11.7#11.7-fec0d969ab1ed0c5", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "f7eb19a202cef3c275a0ac6028d63ec8", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复 ecpg 的 PGTYPEStimestamp_fmt_asc() 函数对格式代码 %b 和 %B 的不正确处理", "evidence": {"same_day": true, "patch_ids": ["98ce3485e7421c58dabcd04707a8b4dc"], "statement_hash": "55f40e67e7ff67ce051d1e229c5b9805045fa9e0750b98da37f72bd574814bf6"}, "url": "/docs/compare/?release=10.12#10.12-fec0d969ab1ed0c5", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "a18b89f65dd1e0d20dfd4b9c304a3ed2", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复 ecpg 的 PGTYPEStimestamp_fmt_asc() 函数中 %b 和 %B 格式代码的错误处理", "evidence": {"same_day": true, "patch_ids": ["98ce3485e7421c58dabcd04707a8b4dc"], "statement_hash": "55f40e67e7ff67ce051d1e229c5b9805045fa9e0750b98da37f72bd574814bf6"}, "url": "/docs/compare/?release=9.5.21#9.5.21-0c629553afdfef1a", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "07c9c08c3f6d8a9d7bb489a91bc7bfad", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复 ecpg 的 PGTYPEStimestamp_fmt_asc() 函数中 %b 和 %B 格式代码的错误处理", "evidence": {"same_day": true, "patch_ids": ["98ce3485e7421c58dabcd04707a8b4dc"], "statement_hash": "55f40e67e7ff67ce051d1e229c5b9805045fa9e0750b98da37f72bd574814bf6"}, "url": "/docs/compare/?release=9.4.26#9.4.26-0c629553afdfef1a", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-dcdce388ce7b0731", "cves": [], "html": "<p>修复并行 <span>pg_dump</span>/<span>pg_restore</span> 更优雅地处理工作者进程创建失败（Tom Lane）</p>", "text": "修复并行 pg_dump/pg_restore 更优雅地处理工作者进程创建失败（Tom Lane）", "title": "修复并行 pg_dump/pg_restore 更优雅地处理工作者进程创建失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "9297ce6cbade008bd268013fec521839ec1a8b8b3d42f4f968b22e26010e0d94", "section_path": ["变更"], "commit_groups": [["0c84199f7", "1b78759a6", "2425f8f71", "5d60df830", "63634883f", "8b1d447a7", "cb4c04a4e"]], "identity_text": "Fix parallel pg_dump/pg_restore to more gracefully handle failure to create worker processes (Tom Lane)", "commit_aliases": ["0c84199f7", "1b78759a6", "2425f8f71", "5d60df830", "63634883f", "8b1d447a7", "cb4c04a4e"], "source_commits": ["cb4c04a4e"], "source_entry_id": "9.6.17/changes/024", "db_id": "0ab31d1c876e317b3b92455400a0ad54", "patch_ids": ["0d7f5bc545ea1e1a61a67392cf699588"], "statement_hash": "7e204789eeadc31c686e16ec9957cb9befb4b28d48d5c03d21cddfba4184ac1b", "relations": [{"rule": 2, "type": "equivalent", "target": "8a9244297667d21859c24d9abc30e876", "evidence": {"same_day": true, "patch_ids": ["0d7f5bc545ea1e1a61a67392cf699588"], "statement_hash": "7e204789eeadc31c686e16ec9957cb9befb4b28d48d5c03d21cddfba4184ac1b"}}, {"rule": 2, "type": "equivalent", "target": "a1d22ded062e9e3096bacd967cdc61ef", "evidence": {"same_day": true, "patch_ids": ["0d7f5bc545ea1e1a61a67392cf699588"], "statement_hash": "7e204789eeadc31c686e16ec9957cb9befb4b28d48d5c03d21cddfba4184ac1b"}}, {"rule": 2, "type": "equivalent", "target": "a3267b55c0fd1e4e3eb579367cfbf7d5", "evidence": {"same_day": true, "patch_ids": ["0d7f5bc545ea1e1a61a67392cf699588"], "statement_hash": "7e204789eeadc31c686e16ec9957cb9befb4b28d48d5c03d21cddfba4184ac1b"}}, {"rule": 2, "type": "equivalent", "target": "c1a394e88df8828ac55b88015435150b", "evidence": {"same_day": true, "patch_ids": ["0d7f5bc545ea1e1a61a67392cf699588"], "statement_hash": "7e204789eeadc31c686e16ec9957cb9befb4b28d48d5c03d21cddfba4184ac1b"}}, {"rule": 2, "type": "equivalent", "target": "e0a38ce313ac6d1f4adca0f715b2100c", "evidence": {"same_day": true, "patch_ids": ["0d7f5bc545ea1e1a61a67392cf699588"], "statement_hash": "7e204789eeadc31c686e16ec9957cb9befb4b28d48d5c03d21cddfba4184ac1b"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8a9244297667d21859c24d9abc30e876", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复并行 pg_dump/pg_restore，使其更妥善地处理无法创建工作进程的情况", "evidence": {"same_day": true, "patch_ids": ["0d7f5bc545ea1e1a61a67392cf699588"], "statement_hash": "7e204789eeadc31c686e16ec9957cb9befb4b28d48d5c03d21cddfba4184ac1b"}, "url": "/docs/compare/?release=12.2#12.2-e74f446ac1d82f13", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "a1d22ded062e9e3096bacd967cdc61ef", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复并行 pg_dump/pg_restore，使其更妥善地处理无法创建工作进程的情况", "evidence": {"same_day": true, "patch_ids": ["0d7f5bc545ea1e1a61a67392cf699588"], "statement_hash": "7e204789eeadc31c686e16ec9957cb9befb4b28d48d5c03d21cddfba4184ac1b"}, "url": "/docs/compare/?release=11.7#11.7-5ae69ff611ec986e", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "c1a394e88df8828ac55b88015435150b", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复并行 pg_dump/pg_restore，使其更妥善地处理无法创建工作进程的情况", "evidence": {"same_day": true, "patch_ids": ["0d7f5bc545ea1e1a61a67392cf699588"], "statement_hash": "7e204789eeadc31c686e16ec9957cb9befb4b28d48d5c03d21cddfba4184ac1b"}, "url": "/docs/compare/?release=10.12#10.12-5ae69ff611ec986e", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "a3267b55c0fd1e4e3eb579367cfbf7d5", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复并行 pg_dump/pg_restore 更优雅地处理工作者进程创建失败", "evidence": {"same_day": true, "patch_ids": ["0d7f5bc545ea1e1a61a67392cf699588"], "statement_hash": "7e204789eeadc31c686e16ec9957cb9befb4b28d48d5c03d21cddfba4184ac1b"}, "url": "/docs/compare/?release=9.5.21#9.5.21-dcdce388ce7b0731", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "e0a38ce313ac6d1f4adca0f715b2100c", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复并行 pg_dump/pg_restore 更优雅地处理工作者进程创建失败", "evidence": {"same_day": true, "patch_ids": ["0d7f5bc545ea1e1a61a67392cf699588"], "statement_hash": "7e204789eeadc31c686e16ec9957cb9befb4b28d48d5c03d21cddfba4184ac1b"}, "url": "/docs/compare/?release=9.4.26#9.4.26-dcdce388ce7b0731", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-a790382d436d3cc1", "cves": [], "html": "<p>防止试图通过信号终止并行 <span>pg_dump</span>/ <span>pg_restore</span> 运行时可能的崩溃或锁死（Tom Lane）</p>", "text": "防止试图通过信号终止并行 pg_dump/ pg_restore 运行时可能的崩溃或锁死（Tom Lane）", "title": "防止试图通过信号终止并行 pg_dump/ pg_restore 运行时可能的崩溃或锁死", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "5fcb64b657a1d223789fd2fb7a27ea6bb84a238b5886bac1410bb8d3a04be770", "section_path": ["变更"], "commit_groups": [["208e262f9", "42e538fe6", "4ea5cf403", "6f6daa1be", "71b121f42", "b1392a950", "cd23a2019"]], "identity_text": "Prevent possible crash or lockup when attempting to terminate a parallel pg_dump/pg_restore run via a signal (Tom Lane)", "commit_aliases": ["208e262f9", "42e538fe6", "4ea5cf403", "6f6daa1be", "71b121f42", "b1392a950", "cd23a2019"], "source_commits": ["208e262f9"], "source_entry_id": "9.6.17/changes/025", "db_id": "30c6a89696ef02370e40ff591f5789bf", "patch_ids": ["e1cd77d183d2459836ef8973a423eb92"], "statement_hash": "4c13e614942a0d58d6085d345b46b5cdafb2d5bc4ba245d4f7cae8ffa05c14ad", "relations": [{"rule": 2, "type": "equivalent", "target": "0646cf398136f66e7d5ea03ec7db8d18", "evidence": {"same_day": true, "patch_ids": ["e1cd77d183d2459836ef8973a423eb92"], "statement_hash": "4c13e614942a0d58d6085d345b46b5cdafb2d5bc4ba245d4f7cae8ffa05c14ad"}}, {"rule": 2, "type": "equivalent", "target": "1a15011a7e46a553a64c592b19223755", "evidence": {"same_day": true, "patch_ids": ["e1cd77d183d2459836ef8973a423eb92"], "statement_hash": "4c13e614942a0d58d6085d345b46b5cdafb2d5bc4ba245d4f7cae8ffa05c14ad"}}, {"rule": 2, "type": "equivalent", "target": "59290e6cad80d05142e78788b0a3d970", "evidence": {"same_day": true, "patch_ids": ["e1cd77d183d2459836ef8973a423eb92"], "statement_hash": "4c13e614942a0d58d6085d345b46b5cdafb2d5bc4ba245d4f7cae8ffa05c14ad"}}, {"rule": 2, "type": "equivalent", "target": "791b656bd54dbd56091c423512e75420", "evidence": {"same_day": true, "patch_ids": ["e1cd77d183d2459836ef8973a423eb92"], "statement_hash": "4c13e614942a0d58d6085d345b46b5cdafb2d5bc4ba245d4f7cae8ffa05c14ad"}}, {"rule": 2, "type": "equivalent", "target": "c8a304f2379323f0227ce2a1b8869c64", "evidence": {"same_day": true, "patch_ids": ["e1cd77d183d2459836ef8973a423eb92"], "statement_hash": "4c13e614942a0d58d6085d345b46b5cdafb2d5bc4ba245d4f7cae8ffa05c14ad"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "59290e6cad80d05142e78788b0a3d970", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "防止尝试通过信号终止并行 pg_dump/pg_restore 运行时可能发生的崩溃或卡死", "evidence": {"same_day": true, "patch_ids": ["e1cd77d183d2459836ef8973a423eb92"], "statement_hash": "4c13e614942a0d58d6085d345b46b5cdafb2d5bc4ba245d4f7cae8ffa05c14ad"}, "url": "/docs/compare/?release=12.2#12.2-8e1bf144ec0b5547", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "0646cf398136f66e7d5ea03ec7db8d18", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "防止尝试通过信号终止并行 pg_dump/pg_restore 运行时可能发生的崩溃或卡死", "evidence": {"same_day": true, "patch_ids": ["e1cd77d183d2459836ef8973a423eb92"], "statement_hash": "4c13e614942a0d58d6085d345b46b5cdafb2d5bc4ba245d4f7cae8ffa05c14ad"}, "url": "/docs/compare/?release=11.7#11.7-0d312ba445ab7934", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "791b656bd54dbd56091c423512e75420", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "防止尝试通过信号终止并行 pg_dump/pg_restore 运行时可能发生的崩溃或卡死", "evidence": {"same_day": true, "patch_ids": ["e1cd77d183d2459836ef8973a423eb92"], "statement_hash": "4c13e614942a0d58d6085d345b46b5cdafb2d5bc4ba245d4f7cae8ffa05c14ad"}, "url": "/docs/compare/?release=10.12#10.12-0d312ba445ab7934", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "1a15011a7e46a553a64c592b19223755", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "防止试图通过信号终止并行 pg_dump/ pg_restore 运行时可能的崩溃或锁死", "evidence": {"same_day": true, "patch_ids": ["e1cd77d183d2459836ef8973a423eb92"], "statement_hash": "4c13e614942a0d58d6085d345b46b5cdafb2d5bc4ba245d4f7cae8ffa05c14ad"}, "url": "/docs/compare/?release=9.5.21#9.5.21-a790382d436d3cc1", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "c8a304f2379323f0227ce2a1b8869c64", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "防止试图通过信号终止并行 pg_dump/ pg_restore 运行时可能的崩溃或锁死", "evidence": {"same_day": true, "patch_ids": ["e1cd77d183d2459836ef8973a423eb92"], "statement_hash": "4c13e614942a0d58d6085d345b46b5cdafb2d5bc4ba245d4f7cae8ffa05c14ad"}, "url": "/docs/compare/?release=9.4.26#9.4.26-a790382d436d3cc1", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-be93656835fc86aa", "cves": [], "html": "<p>在 <span>pg_upgrade</span> 中，搜索表中不可升级数据类型时深入数组和范围内部（Tom Lane）</p>", "text": "在 pg_upgrade 中，搜索表中不可升级数据类型时深入数组和范围内部（Tom Lane）", "title": "在 pg_upgrade 中，搜索表中不可升级数据类型时深入数组和范围内部", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "507c565109d1038112f26259c4d59f0ff3b3d272974b269b9533a8c5a46d4d48", "section_path": ["变更"], "commit_groups": [["1cd57b05e", "29aeda6e4", "56c06999d", "8e4ef3287", "c443e3c43", "f378d4dac", "fb26754af"]], "identity_text": "In pg_upgrade, look inside arrays and ranges while searching for non-upgradable data types in tables (Tom Lane)", "commit_aliases": ["1cd57b05e", "29aeda6e4", "56c06999d", "8e4ef3287", "c443e3c43", "f378d4dac", "fb26754af"], "source_commits": ["f378d4dac"], "source_entry_id": "9.6.17/changes/026", "db_id": "0ab2f2ca5c2b135c457c21f3595980b8", "patch_ids": ["74d41ab4c40159181bb8920ee36a3c7e"], "statement_hash": "a5dd0a05f1c41159d81f38173b9d06bd1a19f0b19513ef285505231dcf1cba9c", "relations": [{"rule": 2, "type": "equivalent", "target": "02eab376408822d258054b57c978ee9a", "evidence": {"same_day": true, "patch_ids": ["74d41ab4c40159181bb8920ee36a3c7e"], "statement_hash": "a5dd0a05f1c41159d81f38173b9d06bd1a19f0b19513ef285505231dcf1cba9c"}}, {"rule": 2, "type": "equivalent", "target": "37b9438c61c71a41a14ec10f666bad3e", "evidence": {"same_day": true, "patch_ids": ["74d41ab4c40159181bb8920ee36a3c7e"], "statement_hash": "a5dd0a05f1c41159d81f38173b9d06bd1a19f0b19513ef285505231dcf1cba9c"}}, {"rule": 2, "type": "equivalent", "target": "74783fe19c389a77224012f635160ade", "evidence": {"same_day": true, "patch_ids": ["74d41ab4c40159181bb8920ee36a3c7e"], "statement_hash": "a5dd0a05f1c41159d81f38173b9d06bd1a19f0b19513ef285505231dcf1cba9c"}}, {"rule": 2, "type": "equivalent", "target": "904360e0029d096e5daae91d6704e4d5", "evidence": {"same_day": true, "patch_ids": ["74d41ab4c40159181bb8920ee36a3c7e"], "statement_hash": "a5dd0a05f1c41159d81f38173b9d06bd1a19f0b19513ef285505231dcf1cba9c"}}, {"rule": 2, "type": "equivalent", "target": "d375731f1521db7f32c2863cc0c09f10", "evidence": {"same_day": true, "patch_ids": ["74d41ab4c40159181bb8920ee36a3c7e"], "statement_hash": "a5dd0a05f1c41159d81f38173b9d06bd1a19f0b19513ef285505231dcf1cba9c"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "02eab376408822d258054b57c978ee9a", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "在 pg_upgrade 搜索表中不可升级的数据类型时，检查数组和范围的内部类型", "evidence": {"same_day": true, "patch_ids": ["74d41ab4c40159181bb8920ee36a3c7e"], "statement_hash": "a5dd0a05f1c41159d81f38173b9d06bd1a19f0b19513ef285505231dcf1cba9c"}, "url": "/docs/compare/?release=12.2#12.2-f82145fb208b3b57", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "37b9438c61c71a41a14ec10f666bad3e", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "在 pg_upgrade 搜索表中不可升级的数据类型时，检查数组和范围的内部类型", "evidence": {"same_day": true, "patch_ids": ["74d41ab4c40159181bb8920ee36a3c7e"], "statement_hash": "a5dd0a05f1c41159d81f38173b9d06bd1a19f0b19513ef285505231dcf1cba9c"}, "url": "/docs/compare/?release=11.7#11.7-41d9427b28e0b0b3", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "74783fe19c389a77224012f635160ade", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "在 pg_upgrade 搜索表中不可升级的数据类型时，检查数组和范围的内部类型", "evidence": {"same_day": true, "patch_ids": ["74d41ab4c40159181bb8920ee36a3c7e"], "statement_hash": "a5dd0a05f1c41159d81f38173b9d06bd1a19f0b19513ef285505231dcf1cba9c"}, "url": "/docs/compare/?release=10.12#10.12-41d9427b28e0b0b3", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "904360e0029d096e5daae91d6704e4d5", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "在 pg_upgrade 中，搜索表中不可升级数据类型时深入数组和范围内部", "evidence": {"same_day": true, "patch_ids": ["74d41ab4c40159181bb8920ee36a3c7e"], "statement_hash": "a5dd0a05f1c41159d81f38173b9d06bd1a19f0b19513ef285505231dcf1cba9c"}, "url": "/docs/compare/?release=9.5.21#9.5.21-be93656835fc86aa", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "d375731f1521db7f32c2863cc0c09f10", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "在 pg_upgrade 中，搜索表中不可升级数据类型时深入数组和范围内部", "evidence": {"same_day": true, "patch_ids": ["74d41ab4c40159181bb8920ee36a3c7e"], "statement_hash": "a5dd0a05f1c41159d81f38173b9d06bd1a19f0b19513ef285505231dcf1cba9c"}, "url": "/docs/compare/?release=9.4.26#9.4.26-be93656835fc86aa", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-b082d655815777b8", "cves": [], "html": "<p>对 <span>createuser</span> 的 <code>--connection-limit</code> 选项应用更彻底的语法检查（Álvaro Herrera）</p>", "text": "对 createuser 的 --connection-limit 选项应用更彻底的语法检查（Álvaro Herrera）", "title": "对 createuser 的 --connection-limit 选项应用更彻底的语法检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "c55018da922aee17b64a80fb3753da5b9fd2248524891309840afc771b7f7442", "section_path": ["变更"], "commit_groups": [["163161723", "1b2ae4bcd", "5575fc208", "6f1e443a6", "87d014da9", "8fa8e0115", "ca902add6"]], "identity_text": "Apply more thorough syntax checking to createuser's --connection-limit option (Álvaro Herrera)", "commit_aliases": ["163161723", "1b2ae4bcd", "5575fc208", "6f1e443a6", "87d014da9", "8fa8e0115", "ca902add6"], "source_commits": ["5575fc208"], "source_entry_id": "9.6.17/changes/027", "db_id": "f24349c048fce4cf9edd50066318ee95", "patch_ids": ["82bbe077a5af18f2fb190df9988f8463"], "statement_hash": "582979dc3b176f6fe8326b28f8781ab6c9c1284e0a8238baca9f056232b0a7bf", "relations": [{"rule": 2, "type": "equivalent", "target": "251c97e39a1665d69d24ec758192362f", "evidence": {"same_day": true, "patch_ids": ["82bbe077a5af18f2fb190df9988f8463"], "statement_hash": "582979dc3b176f6fe8326b28f8781ab6c9c1284e0a8238baca9f056232b0a7bf"}}, {"rule": 2, "type": "equivalent", "target": "4ceac8f8c708a57d280435a5930bf355", "evidence": {"same_day": true, "patch_ids": ["82bbe077a5af18f2fb190df9988f8463"], "statement_hash": "582979dc3b176f6fe8326b28f8781ab6c9c1284e0a8238baca9f056232b0a7bf"}}, {"rule": 2, "type": "equivalent", "target": "6ec6a13d850db767e6e2536e23768de0", "evidence": {"same_day": true, "patch_ids": ["82bbe077a5af18f2fb190df9988f8463"], "statement_hash": "582979dc3b176f6fe8326b28f8781ab6c9c1284e0a8238baca9f056232b0a7bf"}}, {"rule": 2, "type": "equivalent", "target": "810a38c8206fd67caad1e272734dbdb1", "evidence": {"same_day": true, "patch_ids": ["82bbe077a5af18f2fb190df9988f8463"], "statement_hash": "582979dc3b176f6fe8326b28f8781ab6c9c1284e0a8238baca9f056232b0a7bf"}}, {"rule": 2, "type": "equivalent", "target": "d397985b8c27d118d2429c51e75259be", "evidence": {"same_day": true, "patch_ids": ["82bbe077a5af18f2fb190df9988f8463"], "statement_hash": "582979dc3b176f6fe8326b28f8781ab6c9c1284e0a8238baca9f056232b0a7bf"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "810a38c8206fd67caad1e272734dbdb1", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "对 createuser 的 --connection-limit 选项进行更全面的语法检查", "evidence": {"same_day": true, "patch_ids": ["82bbe077a5af18f2fb190df9988f8463"], "statement_hash": "582979dc3b176f6fe8326b28f8781ab6c9c1284e0a8238baca9f056232b0a7bf"}, "url": "/docs/compare/?release=12.2#12.2-3c91cc41c205a9fc", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "4ceac8f8c708a57d280435a5930bf355", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "对 createuser 的 --connection-limit 选项进行更全面的语法检查", "evidence": {"same_day": true, "patch_ids": ["82bbe077a5af18f2fb190df9988f8463"], "statement_hash": "582979dc3b176f6fe8326b28f8781ab6c9c1284e0a8238baca9f056232b0a7bf"}, "url": "/docs/compare/?release=11.7#11.7-371020823f41ae89", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "6ec6a13d850db767e6e2536e23768de0", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "对 createuser 的 --connection-limit 选项进行更全面的语法检查", "evidence": {"same_day": true, "patch_ids": ["82bbe077a5af18f2fb190df9988f8463"], "statement_hash": "582979dc3b176f6fe8326b28f8781ab6c9c1284e0a8238baca9f056232b0a7bf"}, "url": "/docs/compare/?release=10.12#10.12-371020823f41ae89", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "251c97e39a1665d69d24ec758192362f", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "对 createuser 的 --connection-limit 选项应用更彻底的语法检查", "evidence": {"same_day": true, "patch_ids": ["82bbe077a5af18f2fb190df9988f8463"], "statement_hash": "582979dc3b176f6fe8326b28f8781ab6c9c1284e0a8238baca9f056232b0a7bf"}, "url": "/docs/compare/?release=9.5.21#9.5.21-b082d655815777b8", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "d397985b8c27d118d2429c51e75259be", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "对 createuser 的 --connection-limit 选项应用更彻底的语法检查", "evidence": {"same_day": true, "patch_ids": ["82bbe077a5af18f2fb190df9988f8463"], "statement_hash": "582979dc3b176f6fe8326b28f8781ab6c9c1284e0a8238baca9f056232b0a7bf"}, "url": "/docs/compare/?release=9.4.26#9.4.26-b082d655815777b8", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-4782f6a441481636", "cves": [], "html": "<p>避免 <code>postgres_fdw</code> 尝试向远程服务器发送诸如 <code>UPDATE remote_tab SET (x,y) = (SELECT ...)</code> 之类的命令时崩溃（Tom Lane）</p>", "text": "避免 postgres_fdw 尝试向远程服务器发送诸如 UPDATE remote_tab SET (x,y) = (SELECT ...) 之类的命令时崩溃（Tom Lane）", "title": "避免 postgres_fdw 尝试向远程服务器发送诸如 UPDATE remote_tab SET (x,y) = (SELECT ...) 之类的命令时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "7413f6b413adabc2adc14d23c8e24a6d268f9b0cebe99f4c13790a8ea74b5fbf", "section_path": ["变更"], "commit_groups": [["215824f91", "43a648f57", "5220ced0d", "603e03b4c", "7294f99a0"]], "identity_text": "Avoid crash in postgres_fdw when trying to send a command like UPDATE remote_tab SET (x,y) = (SELECT ...) to the remote server (Tom Lane)", "commit_aliases": ["215824f91", "43a648f57", "5220ced0d", "603e03b4c", "7294f99a0"], "source_commits": ["43a648f57"], "source_entry_id": "9.6.17/changes/028", "db_id": "e27112c0d6245df3a5108ead7215cfd0", "patch_ids": ["5040564ec8a1a3c07025a342dbe47d2a"], "statement_hash": "d24bc08f7ca52c7726e29023ac359690d8b71936f3627a5f64f27acc39488998", "relations": [{"rule": 2, "type": "equivalent", "target": "1b18a0c8007f1ac294823092ae270aae", "evidence": {"same_day": true, "patch_ids": ["5040564ec8a1a3c07025a342dbe47d2a"], "statement_hash": "d24bc08f7ca52c7726e29023ac359690d8b71936f3627a5f64f27acc39488998"}}, {"rule": 2, "type": "equivalent", "target": "47bda0c9b65e721eb9e7e84b25109437", "evidence": {"same_day": true, "patch_ids": ["5040564ec8a1a3c07025a342dbe47d2a"], "statement_hash": "d24bc08f7ca52c7726e29023ac359690d8b71936f3627a5f64f27acc39488998"}}, {"rule": 2, "type": "equivalent", "target": "7f3c7ba755d87c1bdb76fee6cb3e78c2", "evidence": {"same_day": true, "patch_ids": ["5040564ec8a1a3c07025a342dbe47d2a"], "statement_hash": "d24bc08f7ca52c7726e29023ac359690d8b71936f3627a5f64f27acc39488998"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7f3c7ba755d87c1bdb76fee6cb3e78c2", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "避免 postgres_fdw 尝试向远程服务器发送 UPDATE remote_tab SET (x,y) = (SELECT ...) 之类命令时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["5040564ec8a1a3c07025a342dbe47d2a"], "statement_hash": "d24bc08f7ca52c7726e29023ac359690d8b71936f3627a5f64f27acc39488998"}, "url": "/docs/compare/?release=12.2#12.2-a9eafd86a4d8d535", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "1b18a0c8007f1ac294823092ae270aae", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "避免 postgres_fdw 尝试向远程服务器发送 UPDATE remote_tab SET (x,y) = (SELECT ...) 之类命令时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["5040564ec8a1a3c07025a342dbe47d2a"], "statement_hash": "d24bc08f7ca52c7726e29023ac359690d8b71936f3627a5f64f27acc39488998"}, "url": "/docs/compare/?release=11.7#11.7-967ee5bb1eff39ff", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "47bda0c9b65e721eb9e7e84b25109437", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "避免 postgres_fdw 尝试向远程服务器发送 UPDATE remote_tab SET (x,y) = (SELECT ...) 之类命令时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["5040564ec8a1a3c07025a342dbe47d2a"], "statement_hash": "d24bc08f7ca52c7726e29023ac359690d8b71936f3627a5f64f27acc39488998"}, "url": "/docs/compare/?release=10.12#10.12-967ee5bb1eff39ff", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}]}, {"id": "9.6.17-a7dcf58cc8a56710", "cves": [], "html": "<p>在 <code>contrib/dict_int</code> 中，拒绝小于一的 <code>maxlen</code> 设置（Tomas Vondra）</p>\n<p>这防止了该参数的愚蠢设置可能导致的崩溃。</p>", "text": "在 contrib/dict_int 中，拒绝小于一的 maxlen 设置（Tomas Vondra） 这防止了该参数的愚蠢设置可能导致的崩溃。", "title": "在 contrib/dict_int 中，拒绝小于一的 maxlen 设置", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "3adc0776daf9fa8018174f6f048b202a5d4a675bb49458ccba5f578bd5e619a0", "section_path": ["变更"], "commit_groups": [["267eb954c", "44381b1af", "46ce37b67", "a2fdeb786", "a8a8c6b29", "b52739436", "fabdad822"]], "identity_text": "In contrib/dict_int, reject maxlen settings less than one (Tomas Vondra) This prevents a possible crash with silly settings for that parameter.", "commit_aliases": ["267eb954c", "44381b1af", "46ce37b67", "a2fdeb786", "a8a8c6b29", "b52739436", "fabdad822"], "source_commits": ["fabdad822"], "source_entry_id": "9.6.17/changes/029", "db_id": "c5e06cb8326bc8a725a74efea95e71ec", "patch_ids": ["78950363d28b5b851c829de00fe014dd"], "statement_hash": "d3ed30d197b4f05dcc2cc52d1553b7542cc1246fc43ff2c7d37678facadf864b", "relations": [{"rule": 2, "type": "equivalent", "target": "58302165faa498ba63d2b7016ca2c1f1", "evidence": {"same_day": true, "patch_ids": ["78950363d28b5b851c829de00fe014dd"], "statement_hash": "d3ed30d197b4f05dcc2cc52d1553b7542cc1246fc43ff2c7d37678facadf864b"}}, {"rule": 2, "type": "equivalent", "target": "96dd0d425154ac899e6e4b526f92e194", "evidence": {"same_day": true, "patch_ids": ["78950363d28b5b851c829de00fe014dd"], "statement_hash": "d3ed30d197b4f05dcc2cc52d1553b7542cc1246fc43ff2c7d37678facadf864b"}}, {"rule": 2, "type": "equivalent", "target": "a8e549afa20e818e690acee052bb0448", "evidence": {"same_day": true, "patch_ids": ["78950363d28b5b851c829de00fe014dd"], "statement_hash": "d3ed30d197b4f05dcc2cc52d1553b7542cc1246fc43ff2c7d37678facadf864b"}}, {"rule": 2, "type": "equivalent", "target": "bf83de008875737dca0e646e1d486e02", "evidence": {"same_day": true, "patch_ids": ["78950363d28b5b851c829de00fe014dd"], "statement_hash": "d3ed30d197b4f05dcc2cc52d1553b7542cc1246fc43ff2c7d37678facadf864b"}}, {"rule": 2, "type": "equivalent", "target": "ed1985f91bf6854da58a13ad7b975fa2", "evidence": {"same_day": true, "patch_ids": ["78950363d28b5b851c829de00fe014dd"], "statement_hash": "d3ed30d197b4f05dcc2cc52d1553b7542cc1246fc43ff2c7d37678facadf864b"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed1985f91bf6854da58a13ad7b975fa2", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "在 contrib/dict_int 中，拒绝小于一的 maxlen 设置", "evidence": {"same_day": true, "patch_ids": ["78950363d28b5b851c829de00fe014dd"], "statement_hash": "d3ed30d197b4f05dcc2cc52d1553b7542cc1246fc43ff2c7d37678facadf864b"}, "url": "/docs/compare/?release=12.2#12.2-7cdd017124b2400a", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "58302165faa498ba63d2b7016ca2c1f1", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "在 contrib/dict_int 中，拒绝小于一的 maxlen 设置", "evidence": {"same_day": true, "patch_ids": ["78950363d28b5b851c829de00fe014dd"], "statement_hash": "d3ed30d197b4f05dcc2cc52d1553b7542cc1246fc43ff2c7d37678facadf864b"}, "url": "/docs/compare/?release=11.7#11.7-a7dcf58cc8a56710", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "bf83de008875737dca0e646e1d486e02", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "在 contrib/dict_int 中，拒绝小于一的 maxlen 设置", "evidence": {"same_day": true, "patch_ids": ["78950363d28b5b851c829de00fe014dd"], "statement_hash": "d3ed30d197b4f05dcc2cc52d1553b7542cc1246fc43ff2c7d37678facadf864b"}, "url": "/docs/compare/?release=10.12#10.12-a7dcf58cc8a56710", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "96dd0d425154ac899e6e4b526f92e194", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "在 contrib/dict_int 中，拒绝小于一的 maxlen 设置", "evidence": {"same_day": true, "patch_ids": ["78950363d28b5b851c829de00fe014dd"], "statement_hash": "d3ed30d197b4f05dcc2cc52d1553b7542cc1246fc43ff2c7d37678facadf864b"}, "url": "/docs/compare/?release=9.5.21#9.5.21-a7dcf58cc8a56710", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "a8e549afa20e818e690acee052bb0448", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "在 contrib/dict_int 中，拒绝小于一的 maxlen 设置", "evidence": {"same_day": true, "patch_ids": ["78950363d28b5b851c829de00fe014dd"], "statement_hash": "d3ed30d197b4f05dcc2cc52d1553b7542cc1246fc43ff2c7d37678facadf864b"}, "url": "/docs/compare/?release=9.4.26#9.4.26-a7dcf58cc8a56710", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-765b25a9800cd9d2", "cves": [], "html": "<p>禁止 <code>contrib/tablefunc</code> 的 <code>crosstab()</code> 函数中的 NULL 类别值（Joe Conway）</p>\n<p>这种情况从来就不能正常工作，而且在某些平台上会崩溃。</p>", "text": "禁止 contrib/tablefunc 的 crosstab() 函数中的 NULL 类别值（Joe Conway） 这种情况从来就不能正常工作，而且在某些平台上会崩溃。", "title": "禁止 contrib/tablefunc 的 crosstab() 函数中的 NULL 类别值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "2f2dbc7486f1dbc6a2455690eb9820298baef953d4326e31d0b555c6c121ed90", "section_path": ["变更"], "commit_groups": [["3757c1640", "4a3cdb531", "70fc6c4ef", "81be0c57e", "b5e7569dd", "d5b9c2baf", "f49e5efbc"]], "identity_text": "Disallow NULL category values in contrib/tablefunc's crosstab() function (Joe Conway) This case never worked usefully, and it would crash on some platforms.", "commit_aliases": ["3757c1640", "4a3cdb531", "70fc6c4ef", "81be0c57e", "b5e7569dd", "d5b9c2baf", "f49e5efbc"], "source_commits": ["3757c1640"], "source_entry_id": "9.6.17/changes/030", "db_id": "0c98a8da40ed6ad88d98ca9f21729dfc", "patch_ids": ["f2a9c1eb425c6456d03f47fabd3d3e7e"], "statement_hash": "0bde96774dd728bfb5560fb48ede623d28e36ff4adc4a371bf0dd6f6456a87fe", "relations": [{"rule": 2, "type": "equivalent", "target": "09f5d81b24b38998d7a990a50ac72fc3", "evidence": {"same_day": true, "patch_ids": ["f2a9c1eb425c6456d03f47fabd3d3e7e"], "statement_hash": "0bde96774dd728bfb5560fb48ede623d28e36ff4adc4a371bf0dd6f6456a87fe"}}, {"rule": 2, "type": "equivalent", "target": "0b8ef0b2e246e06e7f1a9fc3eaf980ff", "evidence": {"same_day": true, "patch_ids": ["f2a9c1eb425c6456d03f47fabd3d3e7e"], "statement_hash": "0bde96774dd728bfb5560fb48ede623d28e36ff4adc4a371bf0dd6f6456a87fe"}}, {"rule": 2, "type": "equivalent", "target": "23016bbb0168f2db4667294c322483f7", "evidence": {"same_day": true, "patch_ids": ["f2a9c1eb425c6456d03f47fabd3d3e7e"], "statement_hash": "0bde96774dd728bfb5560fb48ede623d28e36ff4adc4a371bf0dd6f6456a87fe"}}, {"rule": 2, "type": "equivalent", "target": "b22fe0463a8bcce1b8fec6a9c289d8b5", "evidence": {"same_day": true, "patch_ids": ["f2a9c1eb425c6456d03f47fabd3d3e7e"], "statement_hash": "0bde96774dd728bfb5560fb48ede623d28e36ff4adc4a371bf0dd6f6456a87fe"}}, {"rule": 2, "type": "equivalent", "target": "f83454331b5ef1e28904b1610d5ddd72", "evidence": {"same_day": true, "patch_ids": ["f2a9c1eb425c6456d03f47fabd3d3e7e"], "statement_hash": "0bde96774dd728bfb5560fb48ede623d28e36ff4adc4a371bf0dd6f6456a87fe"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "23016bbb0168f2db4667294c322483f7", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "在 contrib/tablefunc 的 crosstab() 函数中禁止 NULL 类别值", "evidence": {"same_day": true, "patch_ids": ["f2a9c1eb425c6456d03f47fabd3d3e7e"], "statement_hash": "0bde96774dd728bfb5560fb48ede623d28e36ff4adc4a371bf0dd6f6456a87fe"}, "url": "/docs/compare/?release=12.2#12.2-1cc3d7186ea0c38f", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "b22fe0463a8bcce1b8fec6a9c289d8b5", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "在 contrib/tablefunc 的 crosstab() 函数中禁止 NULL 类别值", "evidence": {"same_day": true, "patch_ids": ["f2a9c1eb425c6456d03f47fabd3d3e7e"], "statement_hash": "0bde96774dd728bfb5560fb48ede623d28e36ff4adc4a371bf0dd6f6456a87fe"}, "url": "/docs/compare/?release=11.7#11.7-24a922487b468ce3", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "f83454331b5ef1e28904b1610d5ddd72", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "在 contrib/tablefunc 的 crosstab() 函数中禁止 NULL 类别值", "evidence": {"same_day": true, "patch_ids": ["f2a9c1eb425c6456d03f47fabd3d3e7e"], "statement_hash": "0bde96774dd728bfb5560fb48ede623d28e36ff4adc4a371bf0dd6f6456a87fe"}, "url": "/docs/compare/?release=10.12#10.12-24a922487b468ce3", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "09f5d81b24b38998d7a990a50ac72fc3", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "禁止 contrib/tablefunc 的 crosstab() 函数中的 NULL 类别值", "evidence": {"same_day": true, "patch_ids": ["f2a9c1eb425c6456d03f47fabd3d3e7e"], "statement_hash": "0bde96774dd728bfb5560fb48ede623d28e36ff4adc4a371bf0dd6f6456a87fe"}, "url": "/docs/compare/?release=9.5.21#9.5.21-765b25a9800cd9d2", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "0b8ef0b2e246e06e7f1a9fc3eaf980ff", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "禁止 contrib/tablefunc 的 crosstab() 函数中的 NULL 类别值", "evidence": {"same_day": true, "patch_ids": ["f2a9c1eb425c6456d03f47fabd3d3e7e"], "statement_hash": "0bde96774dd728bfb5560fb48ede623d28e36ff4adc4a371bf0dd6f6456a87fe"}, "url": "/docs/compare/?release=9.4.26#9.4.26-765b25a9800cd9d2", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-6abd3d3d31b0412d", "cves": [], "html": "<p>把一些超时和统计追踪 GUC 变量标记为 <code>PGDLLIMPORT</code>，以允许扩展在 Windows 上访问它们（Pascal Legrand）</p>\n<p>这适用于 <code>idle_in_transaction_session_timeout</code>、<code>lock_timeout</code>、<code>statement_timeout</code>、<code>track_activities</code>、<code>track_counts</code> 和 <code>track_functions</code>。</p>", "text": "把一些超时和统计追踪 GUC 变量标记为 PGDLLIMPORT，以允许扩展在 Windows 上访问它们（Pascal Legrand） 这适用于 idle_in_transaction_session_timeout、lock_timeout、statement_timeout、track_activities、track_counts 和 track_functions。", "title": "把一些超时和统计追踪 GUC 变量标记为 PGDLLIMPORT，以允许扩展在 Windows 上访问它们", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "75887f284188c8ae760979f93c6cf95ade7d855faa15f574c5720ad478fdaa84", "section_path": ["变更"], "commit_groups": [["1ef7332b7", "4a49149b9", "62c9b5223", "7c7026bb7", "9740cdbe5", "dbe405b78", "ef8e6b2c2"]], "identity_text": "Mark some timeout and statistics-tracking GUC variables as PGDLLIMPORT, to allow extensions to access them on Windows (Pascal Legrand) This applies to idle_in_transaction_session_timeout, lock_timeout, statement_timeout, track_activities, track_counts, and track_functions.", "commit_aliases": ["1ef7332b7", "4a49149b9", "62c9b5223", "7c7026bb7", "9740cdbe5", "dbe405b78", "ef8e6b2c2"], "source_commits": ["9740cdbe5"], "source_entry_id": "9.6.17/changes/031", "db_id": "275acdb8831839189050f410a327525f", "patch_ids": ["f1d97a9ee24e3765b7a8b6ec9f27c91d"], "statement_hash": "22c7ce86ae7b61116cfa7cebc5eb4a1e7334fe6e0dc9dd399b62cb86d2905f2b", "relations": [{"rule": 2, "type": "equivalent", "target": "0be833c7a6c43149b3322fa3ef57a180", "evidence": {"same_day": true, "patch_ids": ["f1d97a9ee24e3765b7a8b6ec9f27c91d"], "statement_hash": "22c7ce86ae7b61116cfa7cebc5eb4a1e7334fe6e0dc9dd399b62cb86d2905f2b"}}, {"rule": 2, "type": "equivalent", "target": "54d3a8810a8ca6ccdafb8b416327d62f", "evidence": {"same_day": true, "patch_ids": ["f1d97a9ee24e3765b7a8b6ec9f27c91d"], "statement_hash": "22c7ce86ae7b61116cfa7cebc5eb4a1e7334fe6e0dc9dd399b62cb86d2905f2b"}}, {"rule": 2, "type": "equivalent", "target": "5c99c87fd84b0d7fbed665b0ed341573", "evidence": {"same_day": true, "patch_ids": ["f1d97a9ee24e3765b7a8b6ec9f27c91d"], "statement_hash": "22c7ce86ae7b61116cfa7cebc5eb4a1e7334fe6e0dc9dd399b62cb86d2905f2b"}}, {"rule": 2, "type": "equivalent", "target": "5f16f2650aa7e4372fce60e9ac6c1685", "evidence": {"same_day": true, "patch_ids": ["f1d97a9ee24e3765b7a8b6ec9f27c91d"]}}, {"rule": 2, "type": "equivalent", "target": "ccf122e4b6400ba74448f285a3129261", "evidence": {"same_day": true, "patch_ids": ["f1d97a9ee24e3765b7a8b6ec9f27c91d"], "statement_hash": "22c7ce86ae7b61116cfa7cebc5eb4a1e7334fe6e0dc9dd399b62cb86d2905f2b"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0be833c7a6c43149b3322fa3ef57a180", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "将某些超时和统计跟踪 GUC 变量标记为 PGDLLIMPORT，以允许扩展在 Windows 上访问它们", "evidence": {"same_day": true, "patch_ids": ["f1d97a9ee24e3765b7a8b6ec9f27c91d"], "statement_hash": "22c7ce86ae7b61116cfa7cebc5eb4a1e7334fe6e0dc9dd399b62cb86d2905f2b"}, "url": "/docs/compare/?release=12.2#12.2-3c17a110231d698f", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "5c99c87fd84b0d7fbed665b0ed341573", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "将某些超时和统计跟踪 GUC 变量标记为 PGDLLIMPORT，以允许扩展在 Windows 上访问它们", "evidence": {"same_day": true, "patch_ids": ["f1d97a9ee24e3765b7a8b6ec9f27c91d"], "statement_hash": "22c7ce86ae7b61116cfa7cebc5eb4a1e7334fe6e0dc9dd399b62cb86d2905f2b"}, "url": "/docs/compare/?release=11.7#11.7-7267b3966bed0938", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "54d3a8810a8ca6ccdafb8b416327d62f", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "将某些超时和统计跟踪 GUC 变量标记为 PGDLLIMPORT，以允许扩展在 Windows 上访问它们", "evidence": {"same_day": true, "patch_ids": ["f1d97a9ee24e3765b7a8b6ec9f27c91d"], "statement_hash": "22c7ce86ae7b61116cfa7cebc5eb4a1e7334fe6e0dc9dd399b62cb86d2905f2b"}, "url": "/docs/compare/?release=10.12#10.12-7267b3966bed0938", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "5f16f2650aa7e4372fce60e9ac6c1685", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "把一些超时和统计跟踪 GUC 变量标记为 PGDLLIMPORT，以允许扩展在 Windows 上访问它们", "evidence": {"same_day": true, "patch_ids": ["f1d97a9ee24e3765b7a8b6ec9f27c91d"]}, "url": "/docs/compare/?release=9.5.21#9.5.21-ea5c0c6eb731128b", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "ccf122e4b6400ba74448f285a3129261", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "把一些超时和统计追踪 GUC 变量标记为 PGDLLIMPORT，以允许扩展在 Windows 上访问它们", "evidence": {"same_day": true, "patch_ids": ["f1d97a9ee24e3765b7a8b6ec9f27c91d"], "statement_hash": "22c7ce86ae7b61116cfa7cebc5eb4a1e7334fe6e0dc9dd399b62cb86d2905f2b"}, "url": "/docs/compare/?release=9.4.26#9.4.26-6abd3d3d31b0412d", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-c82f1a69711e2d17", "cves": [], "html": "<p>修复导致 Windows 上进程间信号延迟传递的竞态条件（Amit Kapila）</p>\n<p>这导致 <code>NOTIFY</code> 中可见的时机异常，或许还有其他错误行为。</p>", "text": "修复导致 Windows 上进程间信号延迟传递的竞态条件（Amit Kapila） 这导致 NOTIFY 中可见的时机异常，或许还有其他错误行为。", "title": "修复导致 Windows 上进程间信号延迟传递的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "143a51e0105a2f5e72811fe4e953d7b95aeb6d832ff55b9ab0c77174dd3da1db", "section_path": ["变更"], "commit_groups": [["001362cfd", "096ea540e", "1a0c65120", "28e6a2fd6", "2ed302ab9", "7309e75fa", "df44e411c"]], "identity_text": "Fix race condition that led to delayed delivery of interprocess signals on Windows (Amit Kapila) This caused visible timing oddities in NOTIFY, and perhaps other misbehavior.", "commit_aliases": ["001362cfd", "096ea540e", "1a0c65120", "28e6a2fd6", "2ed302ab9", "7309e75fa", "df44e411c"], "source_commits": ["df44e411c"], "source_entry_id": "9.6.17/changes/032", "db_id": "5c95b7fcd1938c3b6d9d9b8864ca7de5", "patch_ids": ["035339dce5d3c20882b90f7584206c34"], "statement_hash": "852fd0534ba443462434c14ef978ca7af532be628ae0a3a2efa8dbf8bce71ff5", "relations": [{"rule": 2, "type": "equivalent", "target": "130639fd506c2e5c05c8d0613d6b833d", "evidence": {"same_day": true, "patch_ids": ["035339dce5d3c20882b90f7584206c34"], "statement_hash": "852fd0534ba443462434c14ef978ca7af532be628ae0a3a2efa8dbf8bce71ff5"}}, {"rule": 2, "type": "equivalent", "target": "17841ca66c8597b1454cef07840ee0d5", "evidence": {"same_day": true, "patch_ids": ["035339dce5d3c20882b90f7584206c34"], "statement_hash": "852fd0534ba443462434c14ef978ca7af532be628ae0a3a2efa8dbf8bce71ff5"}}, {"rule": 2, "type": "equivalent", "target": "8432fc6a09285ae1be5212042997e015", "evidence": {"same_day": true, "patch_ids": ["035339dce5d3c20882b90f7584206c34"], "statement_hash": "852fd0534ba443462434c14ef978ca7af532be628ae0a3a2efa8dbf8bce71ff5"}}, {"rule": 2, "type": "equivalent", "target": "9b2e01b892248d1f2f87aba1fd51276f", "evidence": {"same_day": true, "patch_ids": ["035339dce5d3c20882b90f7584206c34"], "statement_hash": "852fd0534ba443462434c14ef978ca7af532be628ae0a3a2efa8dbf8bce71ff5"}}, {"rule": 2, "type": "equivalent", "target": "e26008b230888f6d95bc4dbad7dabff1", "evidence": {"same_day": true, "patch_ids": ["035339dce5d3c20882b90f7584206c34"], "statement_hash": "852fd0534ba443462434c14ef978ca7af532be628ae0a3a2efa8dbf8bce71ff5"}}], "version": "9.6.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "17841ca66c8597b1454cef07840ee0d5", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "修复导致 Windows 上进程间信号延迟传递的竞争条件", "evidence": {"same_day": true, "patch_ids": ["035339dce5d3c20882b90f7584206c34"], "statement_hash": "852fd0534ba443462434c14ef978ca7af532be628ae0a3a2efa8dbf8bce71ff5"}, "url": "/docs/compare/?release=12.2#12.2-d7b8ac99f8146d46", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "9b2e01b892248d1f2f87aba1fd51276f", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "修复导致 Windows 上进程间信号延迟传递的竞争条件", "evidence": {"same_day": true, "patch_ids": ["035339dce5d3c20882b90f7584206c34"], "statement_hash": "852fd0534ba443462434c14ef978ca7af532be628ae0a3a2efa8dbf8bce71ff5"}, "url": "/docs/compare/?release=11.7#11.7-15784be332a5e34d", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "130639fd506c2e5c05c8d0613d6b833d", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "修复导致 Windows 上进程间信号延迟传递的竞争条件", "evidence": {"same_day": true, "patch_ids": ["035339dce5d3c20882b90f7584206c34"], "statement_hash": "852fd0534ba443462434c14ef978ca7af532be628ae0a3a2efa8dbf8bce71ff5"}, "url": "/docs/compare/?release=10.12#10.12-15784be332a5e34d", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "e26008b230888f6d95bc4dbad7dabff1", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "修复导致 Windows 上进程间信号延迟传递的竞态条件", "evidence": {"same_day": true, "patch_ids": ["035339dce5d3c20882b90f7584206c34"], "statement_hash": "852fd0534ba443462434c14ef978ca7af532be628ae0a3a2efa8dbf8bce71ff5"}, "url": "/docs/compare/?release=9.5.21#9.5.21-c82f1a69711e2d17", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "8432fc6a09285ae1be5212042997e015", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "修复导致 Windows 上进程间信号延迟传递的竞态条件", "evidence": {"same_day": true, "patch_ids": ["035339dce5d3c20882b90f7584206c34"], "statement_hash": "852fd0534ba443462434c14ef978ca7af532be628ae0a3a2efa8dbf8bce71ff5"}, "url": "/docs/compare/?release=9.4.26#9.4.26-c82f1a69711e2d17", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}, {"id": "9.6.17-fac0569c006126a6", "cves": [], "html": "<p>在 Windows 上，<code>ERROR_ACCESS_DENIED</code> 文件访问失败后重试几次（Alexander Lakhin、Tom Lane）</p>\n<p>这有助于应对目标文件已被标记为删除但尚未真正消失而导致打开失败的情况。例如，<span>pg_ctl</span> 在探测 postmaster 是否已关闭时经常因这种错误而失败。</p>", "text": "在 Windows 上，ERROR_ACCESS_DENIED 文件访问失败后重试几次（Alexander Lakhin、Tom Lane） 这有助于应对目标文件已被标记为删除但尚未真正消失而导致打开失败的情况。例如，pg_ctl 在探测 postmaster 是否已关闭时经常因这种错误而失败。", "title": "在 Windows 上，ERROR_ACCESS_DENIED 文件访问失败后重试几次", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.17/#id-1.11.6.12.5", "source_hash": "a6ca48ebb47ed5e5f6b9f28158bacd166e163792bad79d611b1313312a937fb6", "section_path": ["变更"], "commit_groups": [["2cf51809b", "65cb25e4f", "6d7547c21", "81b052c31", "95f43fee9", "cd0380351", "cfb2a4cce"], ["35b28d983", "5406513e9", "739201b0e", "90281a3a2", "a69f5697a", "b3c4e2418", "f1a4020ef"]], "identity_text": "On Windows, retry a few times after an ERROR_ACCESS_DENIED file access failure (Alexander Lakhin, Tom Lane) This helps cope with cases where a file open attempt fails because the targeted file is flagged for deletion but not yet actually gone. pg_ctl, for example, frequently failed with such an error when probing to see if the postmaster had shut down yet.", "commit_aliases": ["2cf51809b", "35b28d983", "5406513e9", "65cb25e4f", "6d7547c21", "739201b0e", "81b052c31", "90281a3a2", "95f43fee9", "a69f5697a", "b3c4e2418", "cd0380351", "cfb2a4cce", "f1a4020ef"], "source_commits": ["65cb25e4f", "739201b0e"], "source_entry_id": "9.6.17/changes/033", "db_id": "fc0d9ffac866b09801c18dae5e11590a", "patch_ids": ["4f7ddde8569db93f4efb985cf2c73797", "68e4da864468904995c0aca64baa124e"], "statement_hash": "16ed9ee98fe9b2fb52af29cd28ebb8aa2415c20fbc64574b03e075722d2f85a4", "relations": [{"rule": 2, "type": "equivalent", "target": "1d45d0746c2abeca715f89146c079d6e", "evidence": {"same_day": true, "patch_ids": ["4f7ddde8569db93f4efb985cf2c73797", "68e4da864468904995c0aca64baa124e"], "statement_hash": "16ed9ee98fe9b2fb52af29cd28ebb8aa2415c20fbc64574b03e075722d2f85a4"}}, {"rule": 2, "type": "equivalent", "target": "80aca2c94c46e49f87b47a2d683f97b6", "evidence": {"same_day": true, "patch_ids": ["4f7ddde8569db93f4efb985cf2c73797", "68e4da864468904995c0aca64baa124e"], "statement_hash": "16ed9ee98fe9b2fb52af29cd28ebb8aa2415c20fbc64574b03e075722d2f85a4"}}, {"rule": 2, "type": "equivalent", "target": "a372cd6f4bd6a46b1f446180790f0018", "evidence": {"same_day": true, "patch_ids": ["4f7ddde8569db93f4efb985cf2c73797", "68e4da864468904995c0aca64baa124e"], "statement_hash": "16ed9ee98fe9b2fb52af29cd28ebb8aa2415c20fbc64574b03e075722d2f85a4"}}, {"rule": 2, "type": "equivalent", "target": "b36d231a96c8ce7e12ef094f264e0d1e", "evidence": {"same_day": true, "patch_ids": ["4f7ddde8569db93f4efb985cf2c73797", "68e4da864468904995c0aca64baa124e"], "statement_hash": "16ed9ee98fe9b2fb52af29cd28ebb8aa2415c20fbc64574b03e075722d2f85a4"}}, {"rule": 2, "type": "equivalent", "target": "c95685b48848407590a5d75c6e7a9d6c", "evidence": {"same_day": true, "patch_ids": ["4f7ddde8569db93f4efb985cf2c73797", "68e4da864468904995c0aca64baa124e"], "statement_hash": "16ed9ee98fe9b2fb52af29cd28ebb8aa2415c20fbc64574b03e075722d2f85a4"}}], "version": "9.6.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b36d231a96c8ce7e12ef094f264e0d1e", "kind": "equivalent", "version": "12.2", "label": "12.2", "title": "在 Windows 上，发生 ERROR_ACCESS_DENIED 文件访问失败后重试几次", "evidence": {"same_day": true, "patch_ids": ["4f7ddde8569db93f4efb985cf2c73797", "68e4da864468904995c0aca64baa124e"], "statement_hash": "16ed9ee98fe9b2fb52af29cd28ebb8aa2415c20fbc64574b03e075722d2f85a4"}, "url": "/docs/compare/?release=12.2#12.2-c7311c612ca2a77c", "source_url": "/docs/release/12.2/#id-1.11.6.26.5"}, {"db_id": "80aca2c94c46e49f87b47a2d683f97b6", "kind": "equivalent", "version": "11.7", "label": "11.7", "title": "在 Windows 上，发生 ERROR_ACCESS_DENIED 文件访问失败后重试几次", "evidence": {"same_day": true, "patch_ids": ["4f7ddde8569db93f4efb985cf2c73797", "68e4da864468904995c0aca64baa124e"], "statement_hash": "16ed9ee98fe9b2fb52af29cd28ebb8aa2415c20fbc64574b03e075722d2f85a4"}, "url": "/docs/compare/?release=11.7#11.7-d7fa0f8f390e5990", "source_url": "/docs/release/11.7/#id-1.11.6.20.5"}, {"db_id": "a372cd6f4bd6a46b1f446180790f0018", "kind": "equivalent", "version": "10.12", "label": "10.12", "title": "在 Windows 上，发生 ERROR_ACCESS_DENIED 文件访问失败后重试几次", "evidence": {"same_day": true, "patch_ids": ["4f7ddde8569db93f4efb985cf2c73797", "68e4da864468904995c0aca64baa124e"], "statement_hash": "16ed9ee98fe9b2fb52af29cd28ebb8aa2415c20fbc64574b03e075722d2f85a4"}, "url": "/docs/compare/?release=10.12#10.12-d7fa0f8f390e5990", "source_url": "/docs/release/10.12/#id-1.11.6.16.5"}, {"db_id": "1d45d0746c2abeca715f89146c079d6e", "kind": "equivalent", "version": "9.5.21", "label": "9.5.21", "title": "在 Windows 上，ERROR_ACCESS_DENIED 文件访问失败后重试几次", "evidence": {"same_day": true, "patch_ids": ["4f7ddde8569db93f4efb985cf2c73797", "68e4da864468904995c0aca64baa124e"], "statement_hash": "16ed9ee98fe9b2fb52af29cd28ebb8aa2415c20fbc64574b03e075722d2f85a4"}, "url": "/docs/compare/?release=9.5.21#9.5.21-fac0569c006126a6", "source_url": "/docs/release/9.5.21/#id-1.11.6.9.5"}, {"db_id": "c95685b48848407590a5d75c6e7a9d6c", "kind": "equivalent", "version": "9.4.26", "label": "9.4.26", "title": "在 Windows 上，ERROR_ACCESS_DENIED 文件访问失败后重试几次", "evidence": {"same_day": true, "patch_ids": ["4f7ddde8569db93f4efb985cf2c73797", "68e4da864468904995c0aca64baa124e"], "statement_hash": "16ed9ee98fe9b2fb52af29cd28ebb8aa2415c20fbc64574b03e075722d2f85a4"}, "url": "/docs/compare/?release=9.4.26#9.4.26-fac0569c006126a6", "source_url": "/docs/release/9.4.26/#id-1.11.6.5.6"}]}]}, {"date": "2019-11-14", "build": "9.6.16", "major": "9.6", "minor": 16, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.16", "eol_date": "2021-11-11", "date_text": "2019-11-14", "supported": false, "manual_url": "/docs/9.6/release-9-6-16.html", "source_url": "/docs/release/9.6.16/", "entry_count": 53, "placeholder": false, "content_hash": "b10578959cf40a310fa82884542cd58b092cd7cead4ffaa8cbc9a8ed0864d853", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 53, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你在 <code>contrib/intarray</code> 扩展中使用了 GiST 索引，并且依赖 <code>&lt;@</code> 操作符的索引搜索，请参见下面相关条目。</p>\n<p>另外，如果你是从 9.6.9 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-9.html\" title=\"E.16. 版本 9.6.9\">第 E.16 节</a>。</p>", "compatibility_count": 0, "label": "9.6.16", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2512, "support_days": -1784, "entries": [{"id": "9.6.16-b255a5d64addabbd", "cves": [], "html": "<p>修复带自定义关系选项时 <code>ALTER TABLE SET</code> 的失败（Michael Paquier）</p>", "text": "修复带自定义关系选项时 ALTER TABLE SET 的失败（Michael Paquier）", "title": "修复带自定义关系选项时 ALTER TABLE SET 的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "c0d6008d84fa19305489210aab6bf36f1eba613f3819916edd6698a6140029d1", "section_path": ["变更"], "commit_groups": [["707f38e38", "736b84eed", "98b5c3785", "d01d4f237", "d48168003"]], "identity_text": "Fix failure of ALTER TABLE SET with a custom relation option (Michael Paquier)", "commit_aliases": ["707f38e38", "736b84eed", "98b5c3785", "d01d4f237", "d48168003"], "source_commits": ["98b5c3785"], "source_entry_id": "9.6.16/changes/001", "db_id": "f218094d46f4eda45361ec611a2405c2", "patch_ids": ["761da8cb8e944e6022ca796b4e611f71"], "statement_hash": "9912b2cf98e13762d020def35f1dd227a691e4ec111f0f99e717f88b93e529a9", "relations": [{"rule": 2, "type": "equivalent", "target": "16cfe4b50f02b4a55dfed9ae92007f8f", "evidence": {"same_day": true, "patch_ids": ["761da8cb8e944e6022ca796b4e611f71"], "statement_hash": "9912b2cf98e13762d020def35f1dd227a691e4ec111f0f99e717f88b93e529a9"}}, {"rule": 2, "type": "equivalent", "target": "b6087044ab471d3707e77ec528fc6de7", "evidence": {"same_day": true, "patch_ids": ["761da8cb8e944e6022ca796b4e611f71"], "statement_hash": "9912b2cf98e13762d020def35f1dd227a691e4ec111f0f99e717f88b93e529a9"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b6087044ab471d3707e77ec528fc6de7", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 ALTER TABLE SET 使用自定义关系选项时的失败", "evidence": {"same_day": true, "patch_ids": ["761da8cb8e944e6022ca796b4e611f71"], "statement_hash": "9912b2cf98e13762d020def35f1dd227a691e4ec111f0f99e717f88b93e529a9"}, "url": "/docs/compare/?release=11.6#11.6-25c06c354d740a48", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "16cfe4b50f02b4a55dfed9ae92007f8f", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 ALTER TABLE SET 使用自定义关系选项时的失败", "evidence": {"same_day": true, "patch_ids": ["761da8cb8e944e6022ca796b4e611f71"], "statement_hash": "9912b2cf98e13762d020def35f1dd227a691e4ec111f0f99e717f88b93e529a9"}, "url": "/docs/compare/?release=10.11#10.11-25c06c354d740a48", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}]}, {"id": "9.6.16-fc299d74bbdde25f", "cves": [], "html": "<p>如果不是所有父表都被更改，禁止更改多重继承列的类型（Tom Lane）</p>\n<p>此前这是允许的，随后对此时已不同步的父表的查询会失败。</p>", "text": "如果不是所有父表都被更改，禁止更改多重继承列的类型（Tom Lane） 此前这是允许的，随后对此时已不同步的父表的查询会失败。", "title": "如果不是所有父表都被更改，禁止更改多重继承列的类型", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "6e1613a23147732ca93f3a30716bbbbed590d25f9ec2e1a850b56d434715ad38", "section_path": ["变更"], "commit_groups": [["328c3f6f9", "3442235f2", "451432214", "4d4c66add", "909efc449", "c511d367a"]], "identity_text": "Disallow changing a multiply-inherited column's type if not all parent tables were changed (Tom Lane) Previously, this was allowed, whereupon queries on the now-out-of-sync parent would fail.", "commit_aliases": ["328c3f6f9", "3442235f2", "451432214", "4d4c66add", "909efc449", "c511d367a"], "source_commits": ["3442235f2"], "source_entry_id": "9.6.16/changes/002", "db_id": "6eae457a01e8fe45a627b0cbced492f2", "patch_ids": ["343b92f30efaa73ed288e6114363b16c"], "statement_hash": "d5d27be2e2b7eb4d2e9ed2597bdf13c1b4095c72c0c8b4c9dd33f4b692c7bc61", "relations": [{"rule": 2, "type": "equivalent", "target": "0051a5236850b915dd2ca2ff742fc1dd", "evidence": {"same_day": true, "patch_ids": ["343b92f30efaa73ed288e6114363b16c"], "statement_hash": "d5d27be2e2b7eb4d2e9ed2597bdf13c1b4095c72c0c8b4c9dd33f4b692c7bc61"}}, {"rule": 2, "type": "equivalent", "target": "237f8f9f6100662c31b11afcdd14aba2", "evidence": {"same_day": true, "patch_ids": ["343b92f30efaa73ed288e6114363b16c"], "statement_hash": "d5d27be2e2b7eb4d2e9ed2597bdf13c1b4095c72c0c8b4c9dd33f4b692c7bc61"}}, {"rule": 2, "type": "equivalent", "target": "da7b9a08fec5ef54cb8e5066d70a2f7f", "evidence": {"same_day": true, "patch_ids": ["343b92f30efaa73ed288e6114363b16c"], "statement_hash": "d5d27be2e2b7eb4d2e9ed2597bdf13c1b4095c72c0c8b4c9dd33f4b692c7bc61"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "da7b9a08fec5ef54cb8e5066d70a2f7f", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "如果没有更改所有父表，则禁止更改多重继承列的类型", "evidence": {"same_day": true, "patch_ids": ["343b92f30efaa73ed288e6114363b16c"], "statement_hash": "d5d27be2e2b7eb4d2e9ed2597bdf13c1b4095c72c0c8b4c9dd33f4b692c7bc61"}, "url": "/docs/compare/?release=11.6#11.6-92dd1d9f816747ae", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "237f8f9f6100662c31b11afcdd14aba2", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "如果没有更改所有父表，则禁止更改多重继承列的类型", "evidence": {"same_day": true, "patch_ids": ["343b92f30efaa73ed288e6114363b16c"], "statement_hash": "d5d27be2e2b7eb4d2e9ed2597bdf13c1b4095c72c0c8b4c9dd33f4b692c7bc61"}, "url": "/docs/compare/?release=10.11#10.11-92dd1d9f816747ae", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "0051a5236850b915dd2ca2ff742fc1dd", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "如果不是所有父表都被更改，禁止更改多重继承列的类型", "evidence": {"same_day": true, "patch_ids": ["343b92f30efaa73ed288e6114363b16c"], "statement_hash": "d5d27be2e2b7eb4d2e9ed2597bdf13c1b4095c72c0c8b4c9dd33f4b692c7bc61"}, "url": "/docs/compare/?release=9.5.20#9.5.20-fc299d74bbdde25f", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "9.6.16-f99d5c2e4e648987", "cves": [], "html": "<p>防止 <code>VACUUM</code> 尝试冻结涉及仍在运行的事务的旧多事务 ID（Nathan Bossart、Jeremy Schneider）</p>\n<p>这种情况会导致 <code>VACUUM</code> 失败，直到旧事务结束。</p>", "text": "防止 VACUUM 尝试冻结涉及仍在运行的事务的旧多事务 ID（Nathan Bossart、Jeremy Schneider） 这种情况会导致 VACUUM 失败，直到旧事务结束。", "title": "防止 VACUUM 尝试冻结涉及仍在运行的事务的旧多事务 ID", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "89f33034a3f8064dcb522fc5467a9fa0acaa91fe43a08aebd64b732fbeba64ad", "section_path": ["变更"], "commit_groups": [["0640f032a", "080cf32d2", "486a8f152", "583d86f92", "6bda2af03", "6f1e336de", "c1443eebe"]], "identity_text": "Prevent VACUUM from trying to freeze an old multixact ID involving a still-running transaction (Nathan Bossart, Jeremy Schneider) This case would lead to VACUUM failing until the old transaction terminates.", "commit_aliases": ["0640f032a", "080cf32d2", "486a8f152", "583d86f92", "6bda2af03", "6f1e336de", "c1443eebe"], "source_commits": ["0640f032a"], "source_entry_id": "9.6.16/changes/003", "db_id": "6c8551b80cab90994547479c3079c61c", "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123", "relations": [{"rule": 2, "type": "equivalent", "target": "3a32e884c53d7d9d998e171b2c0fee41", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}}, {"rule": 2, "type": "equivalent", "target": "522a4efb8f7025b59c955d4981799d03", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}}, {"rule": 2, "type": "equivalent", "target": "5c6d43c35ae888f0c0b29165ff45738e", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}}, {"rule": 2, "type": "equivalent", "target": "f9a8ec5b02182ced9ecb5f30c93601e4", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}}, {"rule": 2, "type": "equivalent", "target": "fa826bc875c8ea5b61b9dd7da2abdb9e", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5c6d43c35ae888f0c0b29165ff45738e", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "防止 VACUUM 尝试冻结涉及仍在运行事务的旧 multixact ID", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}, "url": "/docs/compare/?release=12.1#12.1-03ce7d8051285d3a", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "522a4efb8f7025b59c955d4981799d03", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "防止 VACUUM 尝试冻结涉及仍在运行事务的旧 multixact ID", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}, "url": "/docs/compare/?release=11.6#11.6-500f2da382ce3ac5", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "fa826bc875c8ea5b61b9dd7da2abdb9e", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "防止 VACUUM 尝试冻结涉及仍在运行事务的旧 multixact ID", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}, "url": "/docs/compare/?release=10.11#10.11-500f2da382ce3ac5", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "f9a8ec5b02182ced9ecb5f30c93601e4", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "防止 VACUUM 尝试冻结涉及仍在运行的事务的旧多事务 ID", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}, "url": "/docs/compare/?release=9.5.20#9.5.20-f99d5c2e4e648987", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "3a32e884c53d7d9d998e171b2c0fee41", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "防止 VACUUM 尝试冻结涉及仍在运行的事务的旧多事务 ID", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}, "url": "/docs/compare/?release=9.4.25#9.4.25-f99d5c2e4e648987", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-c09b9f7dccb0b665", "cves": [], "html": "<p>确保查询表达式被改写时 <code>WINDOW</code> 子句中的偏移表达式也得到处理（Andrew Gierth）</p>\n<p>这一疏漏可能在偏移是非平凡表达式时导致各种失败。一个例子是，如果函数被内联，此类表达式中的函数参数引用会失败。</p>", "text": "确保查询表达式被改写时 WINDOW 子句中的偏移表达式也得到处理（Andrew Gierth） 这一疏漏可能在偏移是非平凡表达式时导致各种失败。一个例子是，如果函数被内联，此类表达式中的函数参数引用会失败。", "title": "确保查询表达式被改写时 WINDOW 子句中的偏移表达式也得到处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "383076da8651ea4ff9988899cd825b675a93c8ebdfd5a26ebf1107444eb5883e", "section_path": ["变更"], "commit_groups": [["0a445f279", "0b11dc019", "3473f81dd", "6db0d7f35", "b7a1c5539", "d2427f11b", "ede0ab6cc"]], "identity_text": "Ensure that offset expressions in WINDOW clauses are processed when a query's expressions are manipulated (Andrew Gierth) This oversight could result in assorted failures when the offsets are nontrivial expressions. One example is that a function parameter reference in such an expression would fail if the function was inlined.", "commit_aliases": ["0a445f279", "0b11dc019", "3473f81dd", "6db0d7f35", "b7a1c5539", "d2427f11b", "ede0ab6cc"], "source_commits": ["6db0d7f35"], "source_entry_id": "9.6.16/changes/004", "db_id": "b353f1899827134e9fe629738825aa8a", "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e", "relations": [{"rule": 2, "type": "equivalent", "target": "051cfcbf21f9ff3ad7f3b7145cfb8239", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}}, {"rule": 2, "type": "equivalent", "target": "253f8c0da0e1b976098cbde686e376f0", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}}, {"rule": 2, "type": "equivalent", "target": "514ca97d8fc5e1b9913fa206c2ab3b7c", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}}, {"rule": 2, "type": "equivalent", "target": "786a8eb68b27a6e848bfa72505a70b7b", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}}, {"rule": 2, "type": "equivalent", "target": "87328496fe1ff4fe1e4cba6a35b8ff0e", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "87328496fe1ff4fe1e4cba6a35b8ff0e", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "确保处理查询表达式时也处理 WINDOW 子句中的偏移量表达式", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}, "url": "/docs/compare/?release=12.1#12.1-119d50d0f6cf35b0", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "514ca97d8fc5e1b9913fa206c2ab3b7c", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "确保处理查询表达式时也处理 WINDOW 子句中的偏移量表达式", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}, "url": "/docs/compare/?release=11.6#11.6-e8bea20d416c7b06", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "051cfcbf21f9ff3ad7f3b7145cfb8239", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "确保处理查询表达式时也处理 WINDOW 子句中的偏移量表达式", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}, "url": "/docs/compare/?release=10.11#10.11-e8bea20d416c7b06", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "253f8c0da0e1b976098cbde686e376f0", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "确保查询表达式被改写时 WINDOW 子句中的偏移表达式也得到处理", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}, "url": "/docs/compare/?release=9.5.20#9.5.20-c09b9f7dccb0b665", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "786a8eb68b27a6e848bfa72505a70b7b", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "确保查询表达式被改写时 WINDOW 子句中的偏移表达式也得到处理", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}, "url": "/docs/compare/?release=9.4.25#9.4.25-c09b9f7dccb0b665", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-138c48bddb0a60ea", "cves": [], "html": "<p>修复 <code>WITH CHECK OPTION</code> 表达式和行级安全策略表达式中整行变量的处理（Andres Freund）</p>\n<p>此前，这种用法可能导致关于行类型不匹配的虚假错误。</p>", "text": "修复 WITH CHECK OPTION 表达式和行级安全策略表达式中整行变量的处理（Andres Freund） 此前，这种用法可能导致关于行类型不匹配的虚假错误。", "title": "修复 WITH CHECK OPTION 表达式和行级安全策略表达式中整行变量的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "f3d308526a9653243c7df3d8cf577d4fba87a87c22b425040492cadd4757fa94", "section_path": ["变更"], "commit_groups": [["5e9b18c78", "64d926f2b", "7f1f72c44", "aee5736f1", "b00132b9a", "b54cff2bf", "ca08ea52b"]], "identity_text": "Fix handling of whole-row variables in WITH CHECK OPTION expressions and row-level-security policy expressions (Andres Freund) Previously, such usage might result in bogus errors about row type mismatches.", "commit_aliases": ["5e9b18c78", "64d926f2b", "7f1f72c44", "aee5736f1", "b00132b9a", "b54cff2bf", "ca08ea52b"], "source_commits": ["b00132b9a"], "source_entry_id": "9.6.16/changes/005", "db_id": "1ab3960ee0900882f2cc8d92c915ca7d", "patch_ids": ["eeff3aa8652467d6281ff77b8af22202"], "statement_hash": "0c297fc54fffed4bf901232ed4705af8f39907e1be087886adb9261df306853e", "relations": [{"rule": 2, "type": "equivalent", "target": "24721a984f434daa6930df0de10a11f7", "evidence": {"same_day": true, "patch_ids": ["eeff3aa8652467d6281ff77b8af22202"], "statement_hash": "0c297fc54fffed4bf901232ed4705af8f39907e1be087886adb9261df306853e"}}, {"rule": 2, "type": "equivalent", "target": "31a9b445a9d3e78e0aff6ecc4d55e21a", "evidence": {"same_day": true, "patch_ids": ["eeff3aa8652467d6281ff77b8af22202"], "statement_hash": "0c297fc54fffed4bf901232ed4705af8f39907e1be087886adb9261df306853e"}}, {"rule": 2, "type": "equivalent", "target": "5c5790a7fa07258e86ce0fe8fe68ec63", "evidence": {"same_day": true, "patch_ids": ["eeff3aa8652467d6281ff77b8af22202"], "statement_hash": "0c297fc54fffed4bf901232ed4705af8f39907e1be087886adb9261df306853e"}}, {"rule": 2, "type": "equivalent", "target": "868013cfe87035bbb5e7e345fe7c7381", "evidence": {"same_day": true, "patch_ids": ["eeff3aa8652467d6281ff77b8af22202"], "statement_hash": "0c297fc54fffed4bf901232ed4705af8f39907e1be087886adb9261df306853e"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "24721a984f434daa6930df0de10a11f7", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 WITH CHECK OPTION 表达式和行级安全策略表达式中整行变量的处理", "evidence": {"same_day": true, "patch_ids": ["eeff3aa8652467d6281ff77b8af22202"], "statement_hash": "0c297fc54fffed4bf901232ed4705af8f39907e1be087886adb9261df306853e"}, "url": "/docs/compare/?release=11.6#11.6-138c48bddb0a60ea", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "31a9b445a9d3e78e0aff6ecc4d55e21a", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 WITH CHECK OPTION 表达式和行级安全策略表达式中整行变量的处理", "evidence": {"same_day": true, "patch_ids": ["eeff3aa8652467d6281ff77b8af22202"], "statement_hash": "0c297fc54fffed4bf901232ed4705af8f39907e1be087886adb9261df306853e"}, "url": "/docs/compare/?release=10.11#10.11-138c48bddb0a60ea", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "5c5790a7fa07258e86ce0fe8fe68ec63", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 WITH CHECK OPTION 表达式和行级安全策略表达式中整行变量的处理", "evidence": {"same_day": true, "patch_ids": ["eeff3aa8652467d6281ff77b8af22202"], "statement_hash": "0c297fc54fffed4bf901232ed4705af8f39907e1be087886adb9261df306853e"}, "url": "/docs/compare/?release=9.5.20#9.5.20-138c48bddb0a60ea", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "868013cfe87035bbb5e7e345fe7c7381", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 WITH CHECK OPTION 表达式和行级安全策略表达式中整行变量的处理", "evidence": {"same_day": true, "patch_ids": ["eeff3aa8652467d6281ff77b8af22202"], "statement_hash": "0c297fc54fffed4bf901232ed4705af8f39907e1be087886adb9261df306853e"}, "url": "/docs/compare/?release=9.4.25#9.4.25-138c48bddb0a60ea", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-0564e460aeb91f1f", "cves": [], "html": "<p>避免并行查询在没有空闲 postmaster 子进程数组槽位时请求后台工作者导致 postmaster 失败（Tom Lane）</p>", "text": "避免并行查询在没有空闲 postmaster 子进程数组槽位时请求后台工作者导致 postmaster 失败（Tom Lane）", "title": "避免并行查询在没有空闲 postmaster 子进程数组槽位时请求后台工作者导致 postmaster 失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "6fdbfb93fe546b9caeb0ae967fc296989dd0450c1a206916ebbe481a5a65831e", "section_path": ["变更"], "commit_groups": [["021065aac", "1b5c2ddcd", "3887e9455", "7e8d0eb63", "8c2910ce5", "c69e982a6"]], "identity_text": "Avoid postmaster failure if a parallel query requests a background worker when no postmaster child process array slots remain free (Tom Lane)", "commit_aliases": ["021065aac", "1b5c2ddcd", "3887e9455", "7e8d0eb63", "8c2910ce5", "c69e982a6"], "source_commits": ["c69e982a6"], "source_entry_id": "9.6.16/changes/006", "db_id": "6cb33d9008a7674a50e355939da5e32a", "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977", "relations": [{"rule": 2, "type": "equivalent", "target": "2796791ad0615cd972274fc27cfa15c2", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}}, {"rule": 2, "type": "equivalent", "target": "34b9e07ede55d67ae654c7c040b465b5", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}}, {"rule": 2, "type": "equivalent", "target": "6d5136787092da5d45ab2ca5be03299b", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}}, {"rule": 2, "type": "equivalent", "target": "998e1240a8474fc87758996a60323d84", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6d5136787092da5d45ab2ca5be03299b", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "避免 postmaster 子进程数组已无空闲槽位时，并行查询请求后台工作进程导致 postmaster 失败", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}, "url": "/docs/compare/?release=12.1#12.1-1ee3e3dab4caeacf", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "2796791ad0615cd972274fc27cfa15c2", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免 postmaster 子进程数组已无空闲槽位时，并行查询请求后台工作进程导致 postmaster 失败", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}, "url": "/docs/compare/?release=11.6#11.6-9ea3d713ace46e17", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "34b9e07ede55d67ae654c7c040b465b5", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免 postmaster 子进程数组已无空闲槽位时，并行查询请求后台工作进程导致 postmaster 失败", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}, "url": "/docs/compare/?release=10.11#10.11-9ea3d713ace46e17", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "998e1240a8474fc87758996a60323d84", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "避免并行查询在没有空闲 postmaster 子进程数组槽位时请求后台工作者导致 postmaster 失败", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}, "url": "/docs/compare/?release=9.5.20#9.5.20-0564e460aeb91f1f", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "9.6.16-c39bf1ddd20a41ae", "cves": [], "html": "<p>防止 <code>BEFORE UPDATE</code> 触发器原样返回旧元组且它不是最后一个此类触发器时可能的双重释放（Thomas Munro）</p>", "text": "防止 BEFORE UPDATE 触发器原样返回旧元组且它不是最后一个此类触发器时可能的双重释放（Thomas Munro）", "title": "防止 BEFORE UPDATE 触发器原样返回旧元组且它不是最后一个此类触发器时可能的双重释放", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "508164751652932620cbc963ccfc22a3af316af1deee03cc9d3e9e03e4646532", "section_path": ["变更"], "commit_groups": [["03813a50e", "1ced082b9", "1fe8d209e", "60886965a", "aed967d69", "afa71d915", "cb0c79ae6"]], "identity_text": "Prevent possible double-free if a BEFORE UPDATE trigger returns the old tuple as-is, and it is not the last such trigger (Thomas Munro)", "commit_aliases": ["03813a50e", "1ced082b9", "1fe8d209e", "60886965a", "aed967d69", "afa71d915", "cb0c79ae6"], "source_commits": ["1fe8d209e"], "source_entry_id": "9.6.16/changes/007", "db_id": "65587701cba227ebaaafe70e227c5cd3", "patch_ids": ["d276484a01556c3f5b9020bb4c178357"], "statement_hash": "20b88f9bb0f73e7d8437e8515f90daaba87126353f0859efca58966a23a76993", "relations": [{"rule": 2, "type": "equivalent", "target": "46df80f582a21228ddc984e055480492", "evidence": {"same_day": true, "patch_ids": ["d276484a01556c3f5b9020bb4c178357"], "statement_hash": "20b88f9bb0f73e7d8437e8515f90daaba87126353f0859efca58966a23a76993"}}, {"rule": 2, "type": "equivalent", "target": "49b4ce39a0e2802530d61bec2baddb7f", "evidence": {"same_day": true, "patch_ids": ["d276484a01556c3f5b9020bb4c178357"], "statement_hash": "20b88f9bb0f73e7d8437e8515f90daaba87126353f0859efca58966a23a76993"}}, {"rule": 2, "type": "equivalent", "target": "a743e90ea3933afa52603f8108e08d01", "evidence": {"same_day": true, "patch_ids": ["d276484a01556c3f5b9020bb4c178357"], "statement_hash": "20b88f9bb0f73e7d8437e8515f90daaba87126353f0859efca58966a23a76993"}}, {"rule": 2, "type": "equivalent", "target": "f510b34b7d7b94340b025b5052b1f32f", "evidence": {"same_day": true, "patch_ids": ["d276484a01556c3f5b9020bb4c178357"], "statement_hash": "20b88f9bb0f73e7d8437e8515f90daaba87126353f0859efca58966a23a76993"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a743e90ea3933afa52603f8108e08d01", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "如果 BEFORE UPDATE 触发器原样返回旧元组，且它并非最后一个此类触发器，则防止可能发生的重复释放", "evidence": {"same_day": true, "patch_ids": ["d276484a01556c3f5b9020bb4c178357"], "statement_hash": "20b88f9bb0f73e7d8437e8515f90daaba87126353f0859efca58966a23a76993"}, "url": "/docs/compare/?release=11.6#11.6-63eda83a0643d39b", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "46df80f582a21228ddc984e055480492", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "如果 BEFORE UPDATE 触发器原样返回旧元组，且它并非最后一个此类触发器，则防止可能发生的重复释放", "evidence": {"same_day": true, "patch_ids": ["d276484a01556c3f5b9020bb4c178357"], "statement_hash": "20b88f9bb0f73e7d8437e8515f90daaba87126353f0859efca58966a23a76993"}, "url": "/docs/compare/?release=10.11#10.11-63eda83a0643d39b", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "49b4ce39a0e2802530d61bec2baddb7f", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "防止 BEFORE UPDATE 触发器原样返回旧元组且它不是最后一个此类触发器时可能的双重释放", "evidence": {"same_day": true, "patch_ids": ["d276484a01556c3f5b9020bb4c178357"], "statement_hash": "20b88f9bb0f73e7d8437e8515f90daaba87126353f0859efca58966a23a76993"}, "url": "/docs/compare/?release=9.5.20#9.5.20-c39bf1ddd20a41ae", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "f510b34b7d7b94340b025b5052b1f32f", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "防止 BEFORE UPDATE 触发器原样返回旧元组且它不是最后一个此类触发器时可能的双重释放", "evidence": {"same_day": true, "patch_ids": ["d276484a01556c3f5b9020bb4c178357"], "statement_hash": "20b88f9bb0f73e7d8437e8515f90daaba87126353f0859efca58966a23a76993"}, "url": "/docs/compare/?release=9.4.25#9.4.25-c39bf1ddd20a41ae", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-813ccd9779c65243", "cves": [], "html": "<p>在并行工作者启动期间设置 GUC 参数发生错误时提供相关的错误上下文行（Thomas Munro）</p>", "text": "在并行工作者启动期间设置 GUC 参数发生错误时提供相关的错误上下文行（Thomas Munro）", "title": "在并行工作者启动期间设置 GUC 参数发生错误时提供相关的错误上下文行", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "f4ecfd26b450793d7f4ddb3773db46d66e87ca32e56f08bade9ddb54d8de85f8", "section_path": ["变更"], "commit_groups": [["3af7c64fe", "3c8c55dd5", "6737111a7", "89a3cdb32", "cdbb39213", "fd5ffa425"]], "identity_text": "Provide a relevant error context line when an error occurs while setting GUC parameters during parallel worker startup (Thomas Munro)", "commit_aliases": ["3af7c64fe", "3c8c55dd5", "6737111a7", "89a3cdb32", "cdbb39213", "fd5ffa425"], "source_commits": ["fd5ffa425"], "source_entry_id": "9.6.16/changes/008", "db_id": "194858126ea4e7dfa00ddcca88d219a1", "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d", "relations": [{"rule": 2, "type": "equivalent", "target": "1cdeecd950f87ad9f78cd449aa611815", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}}, {"rule": 2, "type": "equivalent", "target": "4c52b47c2e732d9889ddec4ca22e4589", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}}, {"rule": 2, "type": "equivalent", "target": "4ea3d2bdb5ed937268773fde22216293", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}}, {"rule": 2, "type": "equivalent", "target": "ffba4d83f366131db32533d2cf3a8fc8", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4ea3d2bdb5ed937268773fde22216293", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "在并行工作进程启动期间设置 GUC 参数发生错误时，提供相关的错误上下文行", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}, "url": "/docs/compare/?release=12.1#12.1-0f140a3388870cc6", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "1cdeecd950f87ad9f78cd449aa611815", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在并行工作进程启动期间设置 GUC 参数发生错误时，提供相关的错误上下文行", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}, "url": "/docs/compare/?release=11.6#11.6-1bb1197d56a5461c", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "ffba4d83f366131db32533d2cf3a8fc8", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在并行工作进程启动期间设置 GUC 参数发生错误时，提供相关的错误上下文行", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}, "url": "/docs/compare/?release=10.11#10.11-1bb1197d56a5461c", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "4c52b47c2e732d9889ddec4ca22e4589", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在并行工作者启动期间设置 GUC 参数发生错误时提供相关的错误上下文行", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}, "url": "/docs/compare/?release=9.5.20#9.5.20-813ccd9779c65243", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "9.6.16-b521dd9870555e5f", "cves": [], "html": "<p>在可序列化模式下，确保对正确版本的行获取行级谓词锁（Thomas Munro、Heikki Linnakangas）</p>\n<p>如果行的可见版本经过 HOT 更新，锁可能被加到它现已死亡的前身上，导致细微的序列化保证失败。</p>", "text": "在可序列化模式下，确保对正确版本的行获取行级谓词锁（Thomas Munro、Heikki Linnakangas） 如果行的可见版本经过 HOT 更新，锁可能被加到它现已死亡的前身上，导致细微的序列化保证失败。", "title": "在可序列化模式下，确保对正确版本的行获取行级谓词锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "0bca15d9e1008f49f78ddffd79d88c987fc6b1612f85e0408385628c8da01aee", "section_path": ["变更"], "commit_groups": [["1169fcf12", "54c98fa71", "65468cc70", "75774cc22", "c5b796125", "f8d30182b", "fd298cd63"]], "identity_text": "In serializable mode, ensure that row-level predicate locks are acquired on the correct version of the row (Thomas Munro, Heikki Linnakangas) If the visible version of the row is HOT-updated, the lock might be taken on its now-dead predecessor, resulting in subtle failures to guarantee serialization.", "commit_aliases": ["1169fcf12", "54c98fa71", "65468cc70", "75774cc22", "c5b796125", "f8d30182b", "fd298cd63"], "source_commits": ["75774cc22"], "source_entry_id": "9.6.16/changes/009", "db_id": "0e4e152032c826b8e9e4668aff0d6d14", "patch_ids": ["29f5bb509abaf651c6215efbaec834d4"], "statement_hash": "df42f17a722ff99a9ca75abbfa3cf1f7481359fe046366c4b777280bc8d81747", "relations": [{"rule": 2, "type": "equivalent", "target": "087c41a2e014444b7825712e6389481c", "evidence": {"same_day": true, "patch_ids": ["29f5bb509abaf651c6215efbaec834d4"], "statement_hash": "df42f17a722ff99a9ca75abbfa3cf1f7481359fe046366c4b777280bc8d81747"}}, {"rule": 2, "type": "equivalent", "target": "30d1dc9a1eb4cbf83f7ef73adedf7d1e", "evidence": {"same_day": true, "patch_ids": ["29f5bb509abaf651c6215efbaec834d4"], "statement_hash": "df42f17a722ff99a9ca75abbfa3cf1f7481359fe046366c4b777280bc8d81747"}}, {"rule": 2, "type": "equivalent", "target": "95dcd349ba1930c83ec31b31588a8608", "evidence": {"same_day": true, "patch_ids": ["29f5bb509abaf651c6215efbaec834d4"], "statement_hash": "df42f17a722ff99a9ca75abbfa3cf1f7481359fe046366c4b777280bc8d81747"}}, {"rule": 2, "type": "equivalent", "target": "c094bd6bd96b20452d2deeb24e56908b", "evidence": {"same_day": true, "patch_ids": ["29f5bb509abaf651c6215efbaec834d4"], "statement_hash": "df42f17a722ff99a9ca75abbfa3cf1f7481359fe046366c4b777280bc8d81747"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "087c41a2e014444b7825712e6389481c", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在可串行化模式下，确保在正确的行版本上获取行级谓词锁", "evidence": {"same_day": true, "patch_ids": ["29f5bb509abaf651c6215efbaec834d4"], "statement_hash": "df42f17a722ff99a9ca75abbfa3cf1f7481359fe046366c4b777280bc8d81747"}, "url": "/docs/compare/?release=11.6#11.6-e7d424c786c33390", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "30d1dc9a1eb4cbf83f7ef73adedf7d1e", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在可串行化模式下，确保在正确的行版本上获取行级谓词锁", "evidence": {"same_day": true, "patch_ids": ["29f5bb509abaf651c6215efbaec834d4"], "statement_hash": "df42f17a722ff99a9ca75abbfa3cf1f7481359fe046366c4b777280bc8d81747"}, "url": "/docs/compare/?release=10.11#10.11-e7d424c786c33390", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "c094bd6bd96b20452d2deeb24e56908b", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在可序列化模式下，确保对正确版本的行获取行级谓词锁", "evidence": {"same_day": true, "patch_ids": ["29f5bb509abaf651c6215efbaec834d4"], "statement_hash": "df42f17a722ff99a9ca75abbfa3cf1f7481359fe046366c4b777280bc8d81747"}, "url": "/docs/compare/?release=9.5.20#9.5.20-b521dd9870555e5f", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "95dcd349ba1930c83ec31b31588a8608", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "在可序列化模式下，确保对正确版本的行获取行级谓词锁", "evidence": {"same_day": true, "patch_ids": ["29f5bb509abaf651c6215efbaec834d4"], "statement_hash": "df42f17a722ff99a9ca75abbfa3cf1f7481359fe046366c4b777280bc8d81747"}, "url": "/docs/compare/?release=9.4.25#9.4.25-b521dd9870555e5f", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-c657548a46b98fe9", "cves": [], "html": "<p>确保 <code>fsync()</code> 只应用于以读/写方式打开的文件（Andres Freund、Michael Paquier）</p>\n<p>某些代码路径在以只读方式打开文件后试图这样做，但在某些平台上这会导致 <span>“<span>bad file descriptor</span>”</span> 或类似错误。</p>", "text": "确保 fsync() 只应用于以读/写方式打开的文件（Andres Freund、Michael Paquier） 某些代码路径在以只读方式打开文件后试图这样做，但在某些平台上这会导致 “bad file descriptor” 或类似错误。", "title": "确保 fsync() 只应用于以读/写方式打开的文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "c1520aab6ffa2a84778c59e069ffd3471464372e3249b8275d3a944c4ad764b3", "section_path": ["变更"], "commit_groups": [["07c314968", "4e7a8874a", "59800f7ce", "b8e19b932", "c50f95272", "e34358c43", "fbfc835b4"], ["a586cc4b6", "c025165da"]], "identity_text": "Ensure that fsync() is applied only to files that are opened read/write (Andres Freund, Michael Paquier) Some code paths tried to do this after opening a file read-only, but on some platforms that causes bad file descriptor or similar errors.", "commit_aliases": ["07c314968", "4e7a8874a", "59800f7ce", "a586cc4b6", "b8e19b932", "c025165da", "c50f95272", "e34358c43", "fbfc835b4"], "source_commits": ["4e7a8874a", "a586cc4b6"], "source_entry_id": "9.6.16/changes/010", "db_id": "92ea24556125b7bc544c03fdd7e3d122", "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4", "relations": [{"rule": 2, "type": "equivalent", "target": "1590e5d3da6e6a81c25d73c6d83b4ebb", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}}, {"rule": 2, "type": "equivalent", "target": "2418c9453b30b777ebc1c9534c0e47b8", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}}, {"rule": 2, "type": "equivalent", "target": "73b65c3ca0a98f2f47a92ac14c9892a1", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}}, {"rule": 2, "type": "equivalent", "target": "9937db66c444f4b87967159a57f1736f", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}}, {"rule": 2, "type": "equivalent", "target": "b8e91545f28e39be358c8cb0aaccd1ce", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "73b65c3ca0a98f2f47a92ac14c9892a1", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "确保仅对以读写模式打开的文件应用 fsync()", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}, "url": "/docs/compare/?release=12.1#12.1-379b4a761effb552", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "2418c9453b30b777ebc1c9534c0e47b8", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "确保仅对以读写模式打开的文件应用 fsync()", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}, "url": "/docs/compare/?release=11.6#11.6-42511f5c7f00edda", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "1590e5d3da6e6a81c25d73c6d83b4ebb", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "确保仅对以读写模式打开的文件应用 fsync()", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}, "url": "/docs/compare/?release=10.11#10.11-42511f5c7f00edda", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "9937db66c444f4b87967159a57f1736f", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "确保 fsync() 只应用于以读/写方式打开的文件", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}, "url": "/docs/compare/?release=9.5.20#9.5.20-c657548a46b98fe9", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "b8e91545f28e39be358c8cb0aaccd1ce", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "确保 fsync() 只应用于以读/写方式打开的文件", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}, "url": "/docs/compare/?release=9.4.25#9.4.25-c657548a46b98fe9", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-034419db242826ac", "cves": [], "html": "<p>允许编码转换在比以前更长的字符串上成功（Álvaro Herrera、Tom Lane）</p>\n<p>此前输入字符串有 0.25GB 的硬限制，但现在只要转换后的输出不超过 1GB 就能工作。</p>", "text": "允许编码转换在比以前更长的字符串上成功（Álvaro Herrera、Tom Lane） 此前输入字符串有 0.25GB 的硬限制，但现在只要转换后的输出不超过 1GB 就能工作。", "title": "允许编码转换在比以前更长的字符串上成功", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "de3717113daaaa5502dcf197f12ec4e810c9f0a4d1fbc7645cc6f8d79ec1ebf6", "section_path": ["变更"], "commit_groups": [["226551e7c", "54d641da0", "677989cc0", "6899be289", "8381242df", "8e10405c7", "e5ff97571"]], "identity_text": "Allow encoding conversion to succeed on longer strings than before (Álvaro Herrera, Tom Lane) Previously, there was a hard limit of 0.25GB on the input string, but now it will work as long as the converted output is not over 1GB.", "commit_aliases": ["226551e7c", "54d641da0", "677989cc0", "6899be289", "8381242df", "8e10405c7", "e5ff97571"], "source_commits": ["677989cc0"], "source_entry_id": "9.6.16/changes/011", "db_id": "cb4474cbfaedad6fefc693785965ee50", "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a", "relations": [{"rule": 2, "type": "equivalent", "target": "875c0e4587609f405ccd5ffcf2b36ab2", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}}, {"rule": 2, "type": "equivalent", "target": "91d77091fad5f269b2db456b44d2a1e5", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}}, {"rule": 2, "type": "equivalent", "target": "e3986eda3d8a8bbe46aaaf7f25f8bce1", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}}, {"rule": 2, "type": "equivalent", "target": "e4b440de56d261ffc7855ea4fab821a0", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}}, {"rule": 2, "type": "equivalent", "target": "e879d6402b17f3116c0664f3906d21a2", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4b440de56d261ffc7855ea4fab821a0", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "允许编码转换成功处理比以前更长的字符串", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}, "url": "/docs/compare/?release=12.1#12.1-4a8deb84dc97eccf", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "e3986eda3d8a8bbe46aaaf7f25f8bce1", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "允许编码转换成功处理比以前更长的字符串", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}, "url": "/docs/compare/?release=11.6#11.6-22151d0d655f385c", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "91d77091fad5f269b2db456b44d2a1e5", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "允许编码转换成功处理比以前更长的字符串", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}, "url": "/docs/compare/?release=10.11#10.11-22151d0d655f385c", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "e879d6402b17f3116c0664f3906d21a2", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "允许编码转换在比以前更长的字符串上成功", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}, "url": "/docs/compare/?release=9.5.20#9.5.20-034419db242826ac", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "875c0e4587609f405ccd5ffcf2b36ab2", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "允许编码转换在比以前更长的字符串上成功", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}, "url": "/docs/compare/?release=9.4.25#9.4.25-034419db242826ac", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-ea1534b076382130", "cves": [], "html": "<p>避免为窗口函数创建不必要地庞大的元组存储（Andrew Gierth）</p>\n<p>某些情况下元组存储会包含源表的全部列，而不只是查询需要的那些。</p>", "text": "避免为窗口函数创建不必要地庞大的元组存储（Andrew Gierth） 某些情况下元组存储会包含源表的全部列，而不只是查询需要的那些。", "title": "避免为窗口函数创建不必要地庞大的元组存储", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "1036b723db85782b6df9f2276bd728cc8db2e4217668ed8397c16eb1f47daebd", "section_path": ["变更"], "commit_groups": [["6da5310e8", "747aac88f", "a9056cc63", "be99485b9", "f57c63107"]], "identity_text": "Avoid creating unnecessarily-bulky tuple stores for window functions (Andrew Gierth) In some cases the tuple storage would include all columns of the source table(s), not just the ones that are needed by the query.", "commit_aliases": ["6da5310e8", "747aac88f", "a9056cc63", "be99485b9", "f57c63107"], "source_commits": ["747aac88f"], "source_entry_id": "9.6.16/changes/012", "db_id": "3d8474a55daa92357bdbbe434b361227", "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15", "relations": [{"rule": 2, "type": "equivalent", "target": "b002daf8b62be7cd6900ee4c2bb24abe", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}}, {"rule": 2, "type": "equivalent", "target": "c9ecc9c454fc3825dbe98be81173fe68", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}}, {"rule": 2, "type": "equivalent", "target": "cefc20e114fe712d603a8c303183312a", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c9ecc9c454fc3825dbe98be81173fe68", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "避免为窗口函数创建不必要地庞大的元组存储", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}, "url": "/docs/compare/?release=12.1#12.1-f5c75d3ed183214d", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "b002daf8b62be7cd6900ee4c2bb24abe", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免为窗口函数创建不必要地庞大的元组存储", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}, "url": "/docs/compare/?release=11.6#11.6-ea1534b076382130", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "cefc20e114fe712d603a8c303183312a", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免为窗口函数创建不必要地庞大的元组存储", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}, "url": "/docs/compare/?release=10.11#10.11-ea1534b076382130", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}]}, {"id": "9.6.16-bcf8d3ad38d6bdd2", "cves": [], "html": "<p>允许 <code>repalloc()</code> 在大块被缩小时归还空间（Tom Lane）</p>", "text": "允许 repalloc() 在大块被缩小时归还空间（Tom Lane）", "title": "允许 repalloc() 在大块被缩小时归还空间", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "08a9c586f20e50fda9a6a31703d491018758fda42caa7b5ebe1e273f9983c909", "section_path": ["变更"], "commit_groups": [["1534531fe", "4829576ba", "82d0a46ea", "9a407209a", "9ad1b572d", "c477f3e44", "e5e4f12a5"]], "identity_text": "Allow repalloc() to give back space when a large chunk is reduced in size (Tom Lane)", "commit_aliases": ["1534531fe", "4829576ba", "82d0a46ea", "9a407209a", "9ad1b572d", "c477f3e44", "e5e4f12a5"], "source_commits": ["e5e4f12a5"], "source_entry_id": "9.6.16/changes/013", "db_id": "e6486a60df156f2ff4e70bc5d0f23c47", "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e", "relations": [{"rule": 2, "type": "equivalent", "target": "24afa646cbd19aebb703398a8e69ae9a", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}}, {"rule": 2, "type": "equivalent", "target": "28919380efd74ee005a86d31c864365e", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}}, {"rule": 2, "type": "equivalent", "target": "2c6aa131fceedc010dc04aff452c5264", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}}, {"rule": 2, "type": "equivalent", "target": "3c8bb8c27d4809d5d8005285a64216ab", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}}, {"rule": 2, "type": "equivalent", "target": "3ddc36c22adaef5e20bf87318b5a0c0d", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "28919380efd74ee005a86d31c864365e", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "允许 repalloc() 在大型内存块缩小时归还空间", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}, "url": "/docs/compare/?release=12.1#12.1-a2ec2f586645e8e1", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "3c8bb8c27d4809d5d8005285a64216ab", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "允许 repalloc() 在大型内存块缩小时归还空间", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}, "url": "/docs/compare/?release=11.6#11.6-049d3d7c5b4b4e66", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "3ddc36c22adaef5e20bf87318b5a0c0d", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "允许 repalloc() 在大型内存块缩小时归还空间", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}, "url": "/docs/compare/?release=10.11#10.11-049d3d7c5b4b4e66", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "24afa646cbd19aebb703398a8e69ae9a", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "允许 repalloc() 在大块被缩小时归还空间", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}, "url": "/docs/compare/?release=9.5.20#9.5.20-bcf8d3ad38d6bdd2", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "2c6aa131fceedc010dc04aff452c5264", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "允许 repalloc() 在大块被缩小时归还空间", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}, "url": "/docs/compare/?release=9.4.25#9.4.25-bcf8d3ad38d6bdd2", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-2e3934bf7ad8cbc9", "cves": [], "html": "<p>确保归档恢复结束时移除临时 WAL 和历史文件（Sawada Masahiko）</p>", "text": "确保归档恢复结束时移除临时 WAL 和历史文件（Sawada Masahiko）", "title": "确保归档恢复结束时移除临时 WAL 和历史文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "724825727a9a4cb1d75e6b7ec379cd720be65a04cb2df91e6d86c2c43c68e310", "section_path": ["变更"], "commit_groups": [["2a724cdbf", "7ca35472c", "ac1efdd08", "ae205dfe6", "b978de0eb", "df86e52ca"]], "identity_text": "Ensure that temporary WAL and history files are removed at the end of archive recovery (Sawada Masahiko)", "commit_aliases": ["2a724cdbf", "7ca35472c", "ac1efdd08", "ae205dfe6", "b978de0eb", "df86e52ca"], "source_commits": ["ac1efdd08"], "source_entry_id": "9.6.16/changes/014", "db_id": "c6f2ad7ebe26a63bb7848f935183d7e0", "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d", "relations": [{"rule": 2, "type": "equivalent", "target": "0a3d67e35b576d9c2bd99c64ce426a2f", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}}, {"rule": 2, "type": "equivalent", "target": "b3a030c28ed4cda30af5cca05ade9f8a", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}}, {"rule": 2, "type": "equivalent", "target": "c1828ccc97f9d3e0be5e49a6b93cf6f5", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}}, {"rule": 2, "type": "equivalent", "target": "f506a3173b1e3502d0666e1319af57c5", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b3a030c28ed4cda30af5cca05ade9f8a", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "确保归档恢复结束时删除临时 WAL 文件和历史文件", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}, "url": "/docs/compare/?release=12.1#12.1-0af630729a0e4453", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "c1828ccc97f9d3e0be5e49a6b93cf6f5", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "确保归档恢复结束时删除临时 WAL 文件和历史文件", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}, "url": "/docs/compare/?release=11.6#11.6-f73cc40d1aa4eb11", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "0a3d67e35b576d9c2bd99c64ce426a2f", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "确保归档恢复结束时删除临时 WAL 文件和历史文件", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}, "url": "/docs/compare/?release=10.11#10.11-f73cc40d1aa4eb11", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "f506a3173b1e3502d0666e1319af57c5", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "确保归档恢复结束时移除临时 WAL 和历史文件", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}, "url": "/docs/compare/?release=9.5.20#9.5.20-2e3934bf7ad8cbc9", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "9.6.16-c5869d56fef3833b", "cves": [], "html": "<p>避免启用 <code>recovery_min_apply_delay</code> 时归档恢复的失败（Fujii Masao）</p>\n<p><code>recovery_min_apply_delay</code> 通常不用于这种配置，但它应当能工作。</p>", "text": "避免启用 recovery_min_apply_delay 时归档恢复的失败（Fujii Masao） recovery_min_apply_delay 通常不用于这种配置，但它应当能工作。", "title": "避免启用 recovery_min_apply_delay 时归档恢复的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "1e6b5f70f58911715084729feed94fcd58bb0f0308850e2c09cc3970a114a4c8", "section_path": ["变更"], "commit_groups": [["14c59185b", "1b2ba8874", "579996bc2", "9dfbf9a04", "c455ee88c", "ec1259e88", "f7b70700b"]], "identity_text": "Avoid failure in archive recovery if recovery_min_apply_delay is enabled (Fujii Masao) recovery_min_apply_delay is not typically used in this configuration, but it should work.", "commit_aliases": ["14c59185b", "1b2ba8874", "579996bc2", "9dfbf9a04", "c455ee88c", "ec1259e88", "f7b70700b"], "source_commits": ["579996bc2"], "source_entry_id": "9.6.16/changes/015", "db_id": "78eba3ce05625f4d39ef243ce787088e", "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8", "relations": [{"rule": 2, "type": "equivalent", "target": "2c676ad7ae5a140c73c5484e2a474f97", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}}, {"rule": 2, "type": "equivalent", "target": "5351f22144da31bd09273d698e148e9d", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}}, {"rule": 2, "type": "equivalent", "target": "86fe720617b772ba68ec054d99e2c4fb", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}}, {"rule": 2, "type": "equivalent", "target": "fa558941bd8859034c26a7e06f232001", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}}, {"rule": 2, "type": "equivalent", "target": "fd6bbf706f57582b1c80a0dc91d956ac", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa558941bd8859034c26a7e06f232001", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "避免启用 recovery_min_apply_delay 时归档恢复发生失败", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}, "url": "/docs/compare/?release=12.1#12.1-f78af228a28346b5", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "fd6bbf706f57582b1c80a0dc91d956ac", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免启用 recovery_min_apply_delay 时归档恢复发生失败", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}, "url": "/docs/compare/?release=11.6#11.6-cd2c64147cc9cd78", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "86fe720617b772ba68ec054d99e2c4fb", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免启用 recovery_min_apply_delay 时归档恢复发生失败", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}, "url": "/docs/compare/?release=10.11#10.11-cd2c64147cc9cd78", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "2c676ad7ae5a140c73c5484e2a474f97", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "避免启用 recovery_min_apply_delay 时归档恢复的失败", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}, "url": "/docs/compare/?release=9.5.20#9.5.20-c5869d56fef3833b", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "5351f22144da31bd09273d698e148e9d", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "避免启用 recovery_min_apply_delay 时归档恢复的失败", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}, "url": "/docs/compare/?release=9.4.25#9.4.25-c5869d56fef3833b", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-ff881244eee2a94e", "cves": [], "html": "<p>避免逻辑复制 walsender 关闭期间的不必要延迟（Craig Ringer、Álvaro Herrera）</p>", "text": "避免逻辑复制 walsender 关闭期间的不必要延迟（Craig Ringer、Álvaro Herrera）", "title": "避免逻辑复制 walsender 关闭期间的不必要延迟", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "39ada89efcd4c1066af22647c7f057ed0c4ccb2ce1c12ad025738d7d6ba6473b", "section_path": ["变更"], "commit_groups": [["0d9fcbada", "1391c13ce", "38ddeab13", "45e4067c0", "5f038991e", "abd5071d2", "b2ab06e02"]], "identity_text": "Avoid unwanted delay during shutdown of a logical replication walsender (Craig Ringer, Álvaro Herrera)", "commit_aliases": ["0d9fcbada", "1391c13ce", "38ddeab13", "45e4067c0", "5f038991e", "abd5071d2", "b2ab06e02"], "source_commits": ["5f038991e"], "source_entry_id": "9.6.16/changes/016", "db_id": "09624a4b7d028d79469bd522109140be", "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6", "relations": [{"rule": 2, "type": "equivalent", "target": "285efa4027b4403c87885822e031d662", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}}, {"rule": 2, "type": "equivalent", "target": "55db924fa4a72e2667fcd540c5f2ad31", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}}, {"rule": 2, "type": "equivalent", "target": "823d796e301349805ab4d2ac9acbc490", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}}, {"rule": 2, "type": "equivalent", "target": "9d38fb0ff879db91f1511d933dadcfd1", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}}, {"rule": 2, "type": "equivalent", "target": "f69d528db1bdcb00d217b3b5a9ca45c0", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "823d796e301349805ab4d2ac9acbc490", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "避免逻辑复制 WAL 发送进程关闭期间出现不必要的延迟", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}, "url": "/docs/compare/?release=12.1#12.1-9156f4650864dbe2", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "9d38fb0ff879db91f1511d933dadcfd1", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免逻辑复制 WAL 发送进程关闭期间出现不必要的延迟", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}, "url": "/docs/compare/?release=11.6#11.6-96d2529e0cf6e6a9", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "285efa4027b4403c87885822e031d662", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免逻辑复制 WAL 发送进程关闭期间出现不必要的延迟", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}, "url": "/docs/compare/?release=10.11#10.11-96d2529e0cf6e6a9", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "f69d528db1bdcb00d217b3b5a9ca45c0", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "避免逻辑复制 walsender 关闭期间的不必要延迟", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}, "url": "/docs/compare/?release=9.5.20#9.5.20-ff881244eee2a94e", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "55db924fa4a72e2667fcd540c5f2ad31", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "避免逻辑复制 walsender 关闭期间的不必要延迟", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}, "url": "/docs/compare/?release=9.4.25#9.4.25-ff881244eee2a94e", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-390265d6d1c8be8e", "cves": [], "html": "<p>为逻辑解码正确地为复制消息打时间戳（Jeff Janes）</p>\n<p>这一疏漏导致例如 <code>pg_stat_subscription</code>.<code>last_msg_send_time</code> 通常读作 NULL。</p>", "text": "为逻辑解码正确地为复制消息打时间戳（Jeff Janes） 这一疏漏导致例如 pg_stat_subscription.last_msg_send_time 通常读作 NULL。", "title": "为逻辑解码正确地为复制消息打时间戳", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "77964884e5d4422f97f6d2af329940dc24d6d369458340e33dab5cc18fcb3a4b", "section_path": ["变更"], "commit_groups": [["15d90a02a", "16b43e091", "404d25f3c", "5f6b1eb0c", "9ae4bdadf", "cb6d7f985", "f7b0d0704"]], "identity_text": "Correctly time-stamp replication messages for logical decoding (Jeff Janes) This oversight resulted, for example, in pg_stat_subscription.last_msg_send_time usually reading as NULL.", "commit_aliases": ["15d90a02a", "16b43e091", "404d25f3c", "5f6b1eb0c", "9ae4bdadf", "cb6d7f985", "f7b0d0704"], "source_commits": ["16b43e091"], "source_entry_id": "9.6.16/changes/017", "db_id": "0b271fea6b0974ce6a01e39336dca929", "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892", "relations": [{"rule": 2, "type": "equivalent", "target": "162cf51033c717d6a9cc67ff386a5c57", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}}, {"rule": 2, "type": "equivalent", "target": "3446fe6e4dee75dc2a6d3a7e1185dab1", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}}, {"rule": 2, "type": "equivalent", "target": "3be07536ad9b2277d140c94c222b41c7", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}}, {"rule": 2, "type": "equivalent", "target": "40cdffee03547d5befa5bcd7dabc89c3", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}}, {"rule": 2, "type": "equivalent", "target": "7021c91f732261c9b0c2649153458065", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3be07536ad9b2277d140c94c222b41c7", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "为逻辑解码的复制消息正确添加时间戳", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}, "url": "/docs/compare/?release=12.1#12.1-54e8617fa635fc6d", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "40cdffee03547d5befa5bcd7dabc89c3", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "为逻辑解码的复制消息正确添加时间戳", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}, "url": "/docs/compare/?release=11.6#11.6-e731126d1ce9f26f", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "162cf51033c717d6a9cc67ff386a5c57", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "为逻辑解码的复制消息正确添加时间戳", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}, "url": "/docs/compare/?release=10.11#10.11-e731126d1ce9f26f", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "3446fe6e4dee75dc2a6d3a7e1185dab1", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "为逻辑解码正确地为复制消息打时间戳", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}, "url": "/docs/compare/?release=9.5.20#9.5.20-390265d6d1c8be8e", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "7021c91f732261c9b0c2649153458065", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "为逻辑解码正确地为复制消息打时间戳", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}, "url": "/docs/compare/?release=9.4.25#9.4.25-390265d6d1c8be8e", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-c0f9e78e155a0a24", "cves": [], "html": "<p>在逻辑解码中，确保重建快照时正确统计子事务（Masahiko Sawada）</p>\n<p>这个错误导致断言失败；生产构建中是否存在不良影响尚不清楚。</p>", "text": "在逻辑解码中，确保重建快照时正确统计子事务（Masahiko Sawada） 这个错误导致断言失败；生产构建中是否存在不良影响尚不清楚。", "title": "在逻辑解码中，确保重建快照时正确统计子事务", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "e863bca5d99e1fa12bfeefb9cab1242196fdbd5c1b039223829f68094dc94b56", "section_path": ["变更"], "commit_groups": [["41f3d2626", "4f7dbf0ef", "7110f5c37", "96b5033e1", "ae4305f6d", "bac2fae05", "e8c7f40a1"]], "identity_text": "In logical decoding, ensure that sub-transactions are correctly accounted for when reconstructing a snapshot (Masahiko Sawada) This error leads to assertion failures; it's unclear whether any bad effects exist in production builds.", "commit_aliases": ["41f3d2626", "4f7dbf0ef", "7110f5c37", "96b5033e1", "ae4305f6d", "bac2fae05", "e8c7f40a1"], "source_commits": ["ae4305f6d"], "source_entry_id": "9.6.16/changes/018", "db_id": "308e8ab67fc3974e5084f6aaa6b32c05", "patch_ids": ["fedd14b16b61b06734d4f9b28bfc73c9"], "statement_hash": "f92c06454d4721287e52c538bb94202f5d912046aa15d37effc654899bd7b877", "relations": [{"rule": 2, "type": "equivalent", "target": "847bd0659d336f51389845f32708b1d5", "evidence": {"same_day": true, "patch_ids": ["fedd14b16b61b06734d4f9b28bfc73c9"], "statement_hash": "f92c06454d4721287e52c538bb94202f5d912046aa15d37effc654899bd7b877"}}, {"rule": 2, "type": "equivalent", "target": "89557742c12809d014ad8c2b12d791fc", "evidence": {"same_day": true, "patch_ids": ["fedd14b16b61b06734d4f9b28bfc73c9"], "statement_hash": "f92c06454d4721287e52c538bb94202f5d912046aa15d37effc654899bd7b877"}}, {"rule": 2, "type": "equivalent", "target": "b086d67e28041e0fc0f494c505cb6831", "evidence": {"same_day": true, "patch_ids": ["fedd14b16b61b06734d4f9b28bfc73c9"], "statement_hash": "f92c06454d4721287e52c538bb94202f5d912046aa15d37effc654899bd7b877"}}, {"rule": 2, "type": "equivalent", "target": "c07a34db8f6cc31294fe8e4cb76242d0", "evidence": {"same_day": true, "patch_ids": ["fedd14b16b61b06734d4f9b28bfc73c9"], "statement_hash": "f92c06454d4721287e52c538bb94202f5d912046aa15d37effc654899bd7b877"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b086d67e28041e0fc0f494c505cb6831", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在逻辑解码中，确保重建快照时正确计入子事务", "evidence": {"same_day": true, "patch_ids": ["fedd14b16b61b06734d4f9b28bfc73c9"], "statement_hash": "f92c06454d4721287e52c538bb94202f5d912046aa15d37effc654899bd7b877"}, "url": "/docs/compare/?release=11.6#11.6-e6213fa8ca33072b", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "c07a34db8f6cc31294fe8e4cb76242d0", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在逻辑解码中，确保重建快照时正确计入子事务", "evidence": {"same_day": true, "patch_ids": ["fedd14b16b61b06734d4f9b28bfc73c9"], "statement_hash": "f92c06454d4721287e52c538bb94202f5d912046aa15d37effc654899bd7b877"}, "url": "/docs/compare/?release=10.11#10.11-e6213fa8ca33072b", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "89557742c12809d014ad8c2b12d791fc", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在逻辑解码中，确保重建快照时正确统计子事务", "evidence": {"same_day": true, "patch_ids": ["fedd14b16b61b06734d4f9b28bfc73c9"], "statement_hash": "f92c06454d4721287e52c538bb94202f5d912046aa15d37effc654899bd7b877"}, "url": "/docs/compare/?release=9.5.20#9.5.20-c0f9e78e155a0a24", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "847bd0659d336f51389845f32708b1d5", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "在逻辑解码中，确保重建快照时正确统计子事务", "evidence": {"same_day": true, "patch_ids": ["fedd14b16b61b06734d4f9b28bfc73c9"], "statement_hash": "f92c06454d4721287e52c538bb94202f5d912046aa15d37effc654899bd7b877"}, "url": "/docs/compare/?release=9.4.25#9.4.25-c0f9e78e155a0a24", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-701e4597a418336c", "cves": [], "html": "<p>修复后端进程此前等待过同步复制时，后端退出期间的竞态条件（Dongming Liu）</p>", "text": "修复后端进程此前等待过同步复制时，后端退出期间的竞态条件（Dongming Liu）", "title": "修复后端进程此前等待过同步复制时，后端退出期间的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "c8b5e913b7f89a5d1b3c05235b26dd9508078b396430feef4e73ef5cf7cfbfcc", "section_path": ["变更"], "commit_groups": [["0927d0c25", "20345197f", "52684bc7d", "61f238392", "7b8c2de64", "b99bfc3c9", "f88f7206e"]], "identity_text": "Fix race condition during backend exit, when the backend process has previously waited for synchronous replication to occur (Dongming Liu)", "commit_aliases": ["0927d0c25", "20345197f", "52684bc7d", "61f238392", "7b8c2de64", "b99bfc3c9", "f88f7206e"], "source_commits": ["52684bc7d"], "source_entry_id": "9.6.16/changes/019", "db_id": "31c3805880f27375b26c15d27836bd54", "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1", "relations": [{"rule": 2, "type": "equivalent", "target": "252e3bebcac161cd2a788bee45dbbf68", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}}, {"rule": 2, "type": "equivalent", "target": "4e314055a876588ca9d12be8b3c839e6", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}}, {"rule": 2, "type": "equivalent", "target": "8cc965a6c7b1379876e047ae6dbdc5a6", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}}, {"rule": 2, "type": "equivalent", "target": "a01ee12cafc2d030088ea21e537886ee", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}}, {"rule": 2, "type": "equivalent", "target": "eb3c8ddca3d37c6b609a8844f3b368ad", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a01ee12cafc2d030088ea21e537886ee", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "修复后端进程此前曾等待同步复制时，在退出期间发生的竞争条件", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}, "url": "/docs/compare/?release=12.1#12.1-6c90cfa8ba825249", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "eb3c8ddca3d37c6b609a8844f3b368ad", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复后端进程此前曾等待同步复制时，在退出期间发生的竞争条件", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}, "url": "/docs/compare/?release=11.6#11.6-90492db584c32535", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "8cc965a6c7b1379876e047ae6dbdc5a6", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复后端进程此前曾等待同步复制时，在退出期间发生的竞争条件", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}, "url": "/docs/compare/?release=10.11#10.11-90492db584c32535", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "252e3bebcac161cd2a788bee45dbbf68", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复后端进程此前等待过同步复制时，后端退出期间的竞态条件", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}, "url": "/docs/compare/?release=9.5.20#9.5.20-701e4597a418336c", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "4e314055a876588ca9d12be8b3c839e6", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复后端进程此前等待过同步复制时，后端退出期间的竞态条件", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}, "url": "/docs/compare/?release=9.4.25#9.4.25-701e4597a418336c", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-7407dd7fbeb52597", "cves": [], "html": "<p>修复 <code>ALTER SYSTEM</code> 应对 <code>postgresql.auto.conf</code> 中重复条目的问题（Ian Barwick）</p>\n<p><code>ALTER SYSTEM</code> 本身不会产生这种状态，但修改 <code>postgresql.auto.conf</code> 的外部工具可能这样做。目标变量的重复条目现在会被移除，然后新的设置（如果有）会被追加到末尾。</p>", "text": "修复 ALTER SYSTEM 应对 postgresql.auto.conf 中重复条目的问题（Ian Barwick） ALTER SYSTEM 本身不会产生这种状态，但修改 postgresql.auto.conf 的外部工具可能这样做。目标变量的重复条目现在会被移除，然后新的设置（如果有）会被追加到末尾。", "title": "修复 ALTER SYSTEM 应对 postgresql.auto.conf 中重复条目的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "2a758441d4ca035442b55f78b8e4654b9a7cf4d655b4398b9b5680e63a524fe1", "section_path": ["变更"], "commit_groups": [["29f9b1819", "32d38f54a", "4784ad7a3", "75b2f011f", "a4b0d955b", "f1bf619ac", "f8c9a0852"]], "identity_text": "Fix ALTER SYSTEM to cope with duplicate entries in postgresql.auto.conf (Ian Barwick) ALTER SYSTEM itself will not generate such a state, but external tools that modify postgresql.auto.conf could do so. Duplicate entries for the target variable will now be removed, and then the new setting (if any) will be appended at the end.", "commit_aliases": ["29f9b1819", "32d38f54a", "4784ad7a3", "75b2f011f", "a4b0d955b", "f1bf619ac", "f8c9a0852"], "source_commits": ["4784ad7a3"], "source_entry_id": "9.6.16/changes/020", "db_id": "81a62b06a830c80c290b748a7b7cfa8b", "patch_ids": ["4130a27c8c81a139d7d50dc89d86da9c"], "statement_hash": "a3d02dbbda8e973f29cd2dda38b81e6f0190dedd02d6cd11722c5a069c7693d4", "relations": [{"rule": 2, "type": "equivalent", "target": "991531246f99e1c57bcd18d6734f3068", "evidence": {"same_day": true, "patch_ids": ["4130a27c8c81a139d7d50dc89d86da9c"], "statement_hash": "a3d02dbbda8e973f29cd2dda38b81e6f0190dedd02d6cd11722c5a069c7693d4"}}, {"rule": 2, "type": "equivalent", "target": "b6ab242f7102e93a778f875231d85b27", "evidence": {"same_day": true, "patch_ids": ["4130a27c8c81a139d7d50dc89d86da9c"], "statement_hash": "a3d02dbbda8e973f29cd2dda38b81e6f0190dedd02d6cd11722c5a069c7693d4"}}, {"rule": 2, "type": "equivalent", "target": "d0ec309fbaeba9135750d492714772f3", "evidence": {"same_day": true, "patch_ids": ["4130a27c8c81a139d7d50dc89d86da9c"], "statement_hash": "a3d02dbbda8e973f29cd2dda38b81e6f0190dedd02d6cd11722c5a069c7693d4"}}, {"rule": 2, "type": "equivalent", "target": "d6798e4c7347c23429f678916a94b88a", "evidence": {"same_day": true, "patch_ids": ["4130a27c8c81a139d7d50dc89d86da9c"], "statement_hash": "a3d02dbbda8e973f29cd2dda38b81e6f0190dedd02d6cd11722c5a069c7693d4"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b6ab242f7102e93a778f875231d85b27", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 ALTER SYSTEM，使其能够处理 postgresql.auto.conf 中的重复条目", "evidence": {"same_day": true, "patch_ids": ["4130a27c8c81a139d7d50dc89d86da9c"], "statement_hash": "a3d02dbbda8e973f29cd2dda38b81e6f0190dedd02d6cd11722c5a069c7693d4"}, "url": "/docs/compare/?release=11.6#11.6-b0d383bc14e21f0e", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "991531246f99e1c57bcd18d6734f3068", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 ALTER SYSTEM，使其能够处理 postgresql.auto.conf 中的重复条目", "evidence": {"same_day": true, "patch_ids": ["4130a27c8c81a139d7d50dc89d86da9c"], "statement_hash": "a3d02dbbda8e973f29cd2dda38b81e6f0190dedd02d6cd11722c5a069c7693d4"}, "url": "/docs/compare/?release=10.11#10.11-b0d383bc14e21f0e", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "d0ec309fbaeba9135750d492714772f3", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 ALTER SYSTEM 应对 postgresql.auto.conf 中重复条目的问题", "evidence": {"same_day": true, "patch_ids": ["4130a27c8c81a139d7d50dc89d86da9c"], "statement_hash": "a3d02dbbda8e973f29cd2dda38b81e6f0190dedd02d6cd11722c5a069c7693d4"}, "url": "/docs/compare/?release=9.5.20#9.5.20-7407dd7fbeb52597", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "d6798e4c7347c23429f678916a94b88a", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 ALTER SYSTEM 应对 postgresql.auto.conf 中重复条目的问题", "evidence": {"same_day": true, "patch_ids": ["4130a27c8c81a139d7d50dc89d86da9c"], "statement_hash": "a3d02dbbda8e973f29cd2dda38b81e6f0190dedd02d6cd11722c5a069c7693d4"}, "url": "/docs/compare/?release=9.4.25#9.4.25-7407dd7fbeb52597", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-eb58c26f6ad1d5b0", "cves": [], "html": "<p>拒绝配置文件中文件名为空的 include 指令，并更清晰地报告 include 文件递归（Ian Barwick、Tom Lane）</p>", "text": "拒绝配置文件中文件名为空的 include 指令，并更清晰地报告 include 文件递归（Ian Barwick、Tom Lane）", "title": "拒绝配置文件中文件名为空的 include 指令，并更清晰地报告 include 文件递归", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "e1a41477025cfc24f04a1801dd3e2af4bfdc581778b4031f9e23f83f6bded0e8", "section_path": ["变更"], "commit_groups": [["1510339dc", "465f4ddda", "6e4213056", "771e12701", "cf86803e8", "ef47d284d"]], "identity_text": "Reject include directives with empty file names in configuration files, and report include-file recursion more clearly (Ian Barwick, Tom Lane)", "commit_aliases": ["1510339dc", "465f4ddda", "6e4213056", "771e12701", "cf86803e8", "ef47d284d"], "source_commits": ["465f4ddda"], "source_entry_id": "9.6.16/changes/021", "db_id": "c104430dc4d2562ddfd4f99d4080716e", "patch_ids": ["b1ab1771abebbffd248387d89fd9be4e"], "statement_hash": "dd24813d3758cc9b0763c2f0e15cbda4052319cd0e9146f78076998acdee3778", "relations": [{"rule": 2, "type": "equivalent", "target": "2228898cbfe8ff27e54af609d8923929", "evidence": {"same_day": true, "patch_ids": ["b1ab1771abebbffd248387d89fd9be4e"], "statement_hash": "dd24813d3758cc9b0763c2f0e15cbda4052319cd0e9146f78076998acdee3778"}}, {"rule": 2, "type": "equivalent", "target": "4fb4259b82a1263b4b5bcd7794fc9ac2", "evidence": {"same_day": true, "patch_ids": ["b1ab1771abebbffd248387d89fd9be4e"], "statement_hash": "dd24813d3758cc9b0763c2f0e15cbda4052319cd0e9146f78076998acdee3778"}}, {"rule": 2, "type": "equivalent", "target": "5dfb77aae958b19f48ceea475d0bc17a", "evidence": {"same_day": true, "patch_ids": ["b1ab1771abebbffd248387d89fd9be4e"], "statement_hash": "dd24813d3758cc9b0763c2f0e15cbda4052319cd0e9146f78076998acdee3778"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4fb4259b82a1263b4b5bcd7794fc9ac2", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "拒绝配置文件中包含空文件名的 include 指令，并更清楚地报告包含文件递归的问题", "evidence": {"same_day": true, "patch_ids": ["b1ab1771abebbffd248387d89fd9be4e"], "statement_hash": "dd24813d3758cc9b0763c2f0e15cbda4052319cd0e9146f78076998acdee3778"}, "url": "/docs/compare/?release=11.6#11.6-3c02e9168bbfd425", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "5dfb77aae958b19f48ceea475d0bc17a", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "拒绝配置文件中包含空文件名的 include 指令，并更清楚地报告包含文件递归的问题", "evidence": {"same_day": true, "patch_ids": ["b1ab1771abebbffd248387d89fd9be4e"], "statement_hash": "dd24813d3758cc9b0763c2f0e15cbda4052319cd0e9146f78076998acdee3778"}, "url": "/docs/compare/?release=10.11#10.11-3c02e9168bbfd425", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "2228898cbfe8ff27e54af609d8923929", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "拒绝配置文件中文件名为空的 include 指令，并更清晰地报告 include 文件递归", "evidence": {"same_day": true, "patch_ids": ["b1ab1771abebbffd248387d89fd9be4e"], "statement_hash": "dd24813d3758cc9b0763c2f0e15cbda4052319cd0e9146f78076998acdee3778"}, "url": "/docs/compare/?release=9.5.20#9.5.20-eb58c26f6ad1d5b0", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "9.6.16-677495fe8337b66f", "cves": [], "html": "<p>避免使用 PAM 认证时记录关于废弃连接的抱怨（Tom Lane）</p>\n<p>基于 libpq 的客户端在需要密码时通常会做两次连接尝试，因为它们直到第一次连接尝试失败才提示用户输入密码。因此服务器的编码被设计成当客户端在被要求输入密码时关闭连接不产生无用的日志垃圾。然而 PAM 认证代码没有收到这份备忘，会生成几条关于幻影认证失败的消息。</p>", "text": "避免使用 PAM 认证时记录关于废弃连接的抱怨（Tom Lane） 基于 libpq 的客户端在需要密码时通常会做两次连接尝试，因为它们直到第一次连接尝试失败才提示用户输入密码。因此服务器的编码被设计成当客户端在被要求输入密码时关闭连接不产生无用的日志垃圾。然而 PAM 认证代码没有收到这份备忘，会生成几条关于幻影认证失败的消息。", "title": "避免使用 PAM 认证时记录关于废弃连接的抱怨", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "7749524f22a0094de543bed8c7abd281565515d514c903fcef856348e6b2d0ab", "section_path": ["变更"], "commit_groups": [["0238a5028", "383602f9a", "3affe76ef", "762b25653", "970372037", "97ddc47b9", "f9bd3b6d9"]], "identity_text": "Avoid logging complaints about abandoned connections when using PAM authentication (Tom Lane) libpq-based clients will typically make two connection attempts when a password is required, since they don't prompt their user for a password until their first connection attempt fails. Therefore the server is coded not to generate useless log spam when a client closes the connection upon being asked for a password. However, the PAM authentication code hadn't gotten that memo, and would generate several messages about a phantom authentication failure.", "commit_aliases": ["0238a5028", "383602f9a", "3affe76ef", "762b25653", "970372037", "97ddc47b9", "f9bd3b6d9"], "source_commits": ["383602f9a"], "source_entry_id": "9.6.16/changes/022", "db_id": "fddc39c7b2ccc6541d31f1838c6c31b6", "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64", "relations": [{"rule": 2, "type": "equivalent", "target": "21738c6288ddbe93871d642b6a7eab9a", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}}, {"rule": 2, "type": "equivalent", "target": "2cdbc623a7314338e7308414a6d64af8", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}}, {"rule": 2, "type": "equivalent", "target": "4e3562f65e838457039869a2ea8d4f43", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}}, {"rule": 2, "type": "equivalent", "target": "649b888ac67da1c428bc4a931c4d7a3a", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}}, {"rule": 2, "type": "equivalent", "target": "ab75a00c1d4c744db8203ddd46fc32dc", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4e3562f65e838457039869a2ea8d4f43", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "避免在使用 PAM 认证时记录有关已放弃连接的报错消息", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}, "url": "/docs/compare/?release=12.1#12.1-a58f485526548a94", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "2cdbc623a7314338e7308414a6d64af8", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免在使用 PAM 认证时记录有关已放弃连接的报错消息", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}, "url": "/docs/compare/?release=11.6#11.6-c2b91157b41e84cc", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "ab75a00c1d4c744db8203ddd46fc32dc", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免在使用 PAM 认证时记录有关已放弃连接的报错消息", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}, "url": "/docs/compare/?release=10.11#10.11-c2b91157b41e84cc", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "21738c6288ddbe93871d642b6a7eab9a", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "避免使用 PAM 认证时记录关于废弃连接的抱怨", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}, "url": "/docs/compare/?release=9.5.20#9.5.20-677495fe8337b66f", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "649b888ac67da1c428bc4a931c4d7a3a", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "避免使用 PAM 认证时记录关于废弃连接的抱怨", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}, "url": "/docs/compare/?release=9.4.25#9.4.25-677495fe8337b66f", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-8062d2f5ee2716d1", "cves": [], "html": "<p>修复 <code>time with time zone</code> 输入中某些未检测到不完整日期规格的情况（Alexander Lakhin）</p>\n<p>如果指定的时区 UTC 偏移量随时间变化，那么也必须指定日期才能解析偏移量。根据所用的语法，这一检查在某些情况下未被强制执行，允许产生虚假输出。</p>", "text": "修复 time with time zone 输入中某些未检测到不完整日期规格的情况（Alexander Lakhin） 如果指定的时区 UTC 偏移量随时间变化，那么也必须指定日期才能解析偏移量。根据所用的语法，这一检查在某些情况下未被强制执行，允许产生虚假输出。", "title": "修复 time with time zone 输入中某些未检测到不完整日期规格的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "c5e0a07bd5c21d8a6593abab8f24e9f69fd8b20129849a240a514e5cd71ed0cf", "section_path": ["变更"], "commit_groups": [["1ba4d0fe4", "1de3e0589", "1f7943698", "64579be64", "7c64a2cd9", "d16d241a5", "d8652ec55"]], "identity_text": "Fix some cases where an incomplete date specification is not detected in time with time zone input (Alexander Lakhin) If a time zone with a time-varying UTC offset is specified, then a date must be as well, so that the offset can be resolved. Depending on the syntax used, this check was not enforced in some cases, allowing bogus output to be produced.", "commit_aliases": ["1ba4d0fe4", "1de3e0589", "1f7943698", "64579be64", "7c64a2cd9", "d16d241a5", "d8652ec55"], "source_commits": ["7c64a2cd9"], "source_entry_id": "9.6.16/changes/023", "db_id": "2a9e62be3ffc7276d860702b4081ff5c", "patch_ids": ["60b8906e95f2b04ca4609706bcd142e7"], "statement_hash": "8a5ba70e7778132d1f23c29ec28daa30ca990282407e3208cceff830bdab2177", "relations": [{"rule": 2, "type": "equivalent", "target": "2bfe1ef2301830504e90b8803a43ae0e", "evidence": {"same_day": true, "patch_ids": ["60b8906e95f2b04ca4609706bcd142e7"], "statement_hash": "8a5ba70e7778132d1f23c29ec28daa30ca990282407e3208cceff830bdab2177"}}, {"rule": 2, "type": "equivalent", "target": "79937d972cd7886d0feafdfde64f0c08", "evidence": {"same_day": true, "patch_ids": ["60b8906e95f2b04ca4609706bcd142e7"], "statement_hash": "8a5ba70e7778132d1f23c29ec28daa30ca990282407e3208cceff830bdab2177"}}, {"rule": 2, "type": "equivalent", "target": "9d5359b840004ae92038794c6995b394", "evidence": {"same_day": true, "patch_ids": ["60b8906e95f2b04ca4609706bcd142e7"], "statement_hash": "8a5ba70e7778132d1f23c29ec28daa30ca990282407e3208cceff830bdab2177"}}, {"rule": 2, "type": "equivalent", "target": "9e914978d794c368b7a8e1ac8993679b", "evidence": {"same_day": true, "patch_ids": ["60b8906e95f2b04ca4609706bcd142e7"], "statement_hash": "8a5ba70e7778132d1f23c29ec28daa30ca990282407e3208cceff830bdab2177"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d5359b840004ae92038794c6995b394", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 time with time zone 输入中某些不完整日期指定未被检测到的情况", "evidence": {"same_day": true, "patch_ids": ["60b8906e95f2b04ca4609706bcd142e7"], "statement_hash": "8a5ba70e7778132d1f23c29ec28daa30ca990282407e3208cceff830bdab2177"}, "url": "/docs/compare/?release=11.6#11.6-eae1e81873a2a681", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "2bfe1ef2301830504e90b8803a43ae0e", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 time with time zone 输入中某些不完整日期指定未被检测到的情况", "evidence": {"same_day": true, "patch_ids": ["60b8906e95f2b04ca4609706bcd142e7"], "statement_hash": "8a5ba70e7778132d1f23c29ec28daa30ca990282407e3208cceff830bdab2177"}, "url": "/docs/compare/?release=10.11#10.11-eae1e81873a2a681", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "79937d972cd7886d0feafdfde64f0c08", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 time with time zone 输入中某些未检测到不完整日期规格的情况", "evidence": {"same_day": true, "patch_ids": ["60b8906e95f2b04ca4609706bcd142e7"], "statement_hash": "8a5ba70e7778132d1f23c29ec28daa30ca990282407e3208cceff830bdab2177"}, "url": "/docs/compare/?release=9.5.20#9.5.20-8062d2f5ee2716d1", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "9e914978d794c368b7a8e1ac8993679b", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 time with time zone 输入中某些未检测到不完整日期规格的情况", "evidence": {"same_day": true, "patch_ids": ["60b8906e95f2b04ca4609706bcd142e7"], "statement_hash": "8a5ba70e7778132d1f23c29ec28daa30ca990282407e3208cceff830bdab2177"}, "url": "/docs/compare/?release=9.4.25#9.4.25-8062d2f5ee2716d1", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-96e84644309a1b8c", "cves": [], "html": "<p>修复 <code>bitshiftright()</code> 的错误行为（Tom Lane）</p>\n<p>当位串长度不是 8 的倍数时，位串右移操作符未能把结果最后一字节中存在的填充空间清零。虽然对大多数操作不可见，但那里的任何非零位都会导致意外的比较行为，因为位串比较不会特意忽略多余的位，而是预期它们始终为零。</p>\n<p>如果你因把 <code>bitshiftright()</code> 的输出保存到表中而有不一致的数据，可以用类似下面的语句修复：</p>\n<pre>UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);\n</pre>", "text": "修复 bitshiftright() 的错误行为（Tom Lane） 当位串长度不是 8 的倍数时，位串右移操作符未能把结果最后一字节中存在的填充空间清零。虽然对大多数操作不可见，但那里的任何非零位都会导致意外的比较行为，因为位串比较不会特意忽略多余的位，而是预期它们始终为零。 如果你因把 bitshiftright() 的输出保存到表中而有不一致的数据，可以用类似下面的语句修复： UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);", "title": "修复 bitshiftright() 的错误行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "7fd4821162c36467b60dae2c5e409b4a27870213b490f6e1ed7fa58b4cc8f53c", "section_path": ["变更"], "commit_groups": [["096d34c3b", "35eb13270", "5ac0d9360", "6ddd164aa", "7e7abed05", "860216efa", "8a17afe84"], ["30e5b3bbe", "61aa9f544", "6c3b6406d", "8b77f783b", "9faa9794f", "b6a6c129f", "b8ddf0bdf"]], "identity_text": "Fix misbehavior of bitshiftright() (Tom Lane) The bitstring right shift operator failed to zero out padding space that exists in the last byte of the result when the bitstring length is not a multiple of 8. While invisible to most operations, any nonzero bits there would result in unexpected comparison behavior, since bitstring comparisons don't bother to ignore the extra bits, expecting them to always be zero. If you have inconsistent data as a result of saving the output of bitshiftright() in a table, it's possible to fix it with something like UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);", "commit_aliases": ["096d34c3b", "30e5b3bbe", "35eb13270", "5ac0d9360", "61aa9f544", "6c3b6406d", "6ddd164aa", "7e7abed05", "860216efa", "8a17afe84", "8b77f783b", "9faa9794f", "b6a6c129f", "b8ddf0bdf"], "source_commits": ["30e5b3bbe", "6ddd164aa"], "source_entry_id": "9.6.16/changes/024", "db_id": "b31f85a3ca08998a31dc57a7946f8561", "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f", "relations": [{"rule": 2, "type": "equivalent", "target": "256c5f9a61f3e86e84e844f9956eb853", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}}, {"rule": 2, "type": "equivalent", "target": "42d9304af3b1d055979da4409d578bd4", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}}, {"rule": 2, "type": "equivalent", "target": "5bb57a83dbd452f009809b6376428161", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}}, {"rule": 2, "type": "equivalent", "target": "b28c4dab180e3c439120ed5a9c176c4f", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}}, {"rule": 2, "type": "equivalent", "target": "b3087a5cf08f5bd2809940a9b7fca7fe", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b3087a5cf08f5bd2809940a9b7fca7fe", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "修复 bitshiftright() 的错误行为", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}, "url": "/docs/compare/?release=12.1#12.1-47a035bc731f2d2c", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "5bb57a83dbd452f009809b6376428161", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 bitshiftright() 的错误行为", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}, "url": "/docs/compare/?release=11.6#11.6-96e84644309a1b8c", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "b28c4dab180e3c439120ed5a9c176c4f", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 bitshiftright() 的错误行为", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}, "url": "/docs/compare/?release=10.11#10.11-96e84644309a1b8c", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "256c5f9a61f3e86e84e844f9956eb853", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 bitshiftright() 的错误行为", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}, "url": "/docs/compare/?release=9.5.20#9.5.20-96e84644309a1b8c", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "42d9304af3b1d055979da4409d578bd4", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 bitshiftright() 的错误行为", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}, "url": "/docs/compare/?release=9.4.25#9.4.25-96e84644309a1b8c", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-80c9ece70aeff5f7", "cves": [], "html": "<p>修复间隔乘法中边界整数溢出的检测（Yuya Watari）</p>", "text": "修复间隔乘法中边界整数溢出的检测（Yuya Watari）", "title": "修复间隔乘法中边界整数溢出的检测", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "a8d3e066e9d5e0df453eccdb07c9697dcd3513ee60e1e608294360d710af1c66", "section_path": ["变更"], "commit_groups": [["15783d057", "5f794f757", "84780d468", "8d380864a", "a7145f6bc", "b49b7f944", "f6e72dc9c"], ["18622caa3", "30f6998ff", "a55018760"]], "identity_text": "Fix detection of edge-case integer overflow in interval multiplication (Yuya Watari)", "commit_aliases": ["15783d057", "18622caa3", "30f6998ff", "5f794f757", "84780d468", "8d380864a", "a55018760", "a7145f6bc", "b49b7f944", "f6e72dc9c"], "source_commits": ["15783d057", "a55018760"], "source_entry_id": "9.6.16/changes/025", "db_id": "109a8cfa77f3b4114f60c8757e03e330", "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c", "relations": [{"rule": 2, "type": "equivalent", "target": "17545ebb5db752cf1bb80acb0053f9b0", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}}, {"rule": 2, "type": "equivalent", "target": "4f905d06a5c25d4b8d28e94c2622d366", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}}, {"rule": 2, "type": "equivalent", "target": "7d17e70514638e9934682dd4384e78b1", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}}, {"rule": 2, "type": "equivalent", "target": "aa81f2865b69a4270c2849c5addde2d9", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}}, {"rule": 2, "type": "equivalent", "target": "f33041de3179ff43aa931a193e8e70b2", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7d17e70514638e9934682dd4384e78b1", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "修复对间隔乘法中边界情况下整数溢出的检测", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}, "url": "/docs/compare/?release=12.1#12.1-0282ed12e06cabde", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "f33041de3179ff43aa931a193e8e70b2", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复对间隔乘法中边界情况下整数溢出的检测", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}, "url": "/docs/compare/?release=11.6#11.6-41c54874cae13df3", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "17545ebb5db752cf1bb80acb0053f9b0", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复对间隔乘法中边界情况下整数溢出的检测", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}, "url": "/docs/compare/?release=10.11#10.11-41c54874cae13df3", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "aa81f2865b69a4270c2849c5addde2d9", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复间隔乘法中边界整数溢出的检测", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}, "url": "/docs/compare/?release=9.5.20#9.5.20-80c9ece70aeff5f7", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "4f905d06a5c25d4b8d28e94c2622d366", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复间隔乘法中边界整数溢出的检测", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}, "url": "/docs/compare/?release=9.4.25#9.4.25-80c9ece70aeff5f7", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-67382bc92991ea84", "cves": [], "html": "<p>避免 <code>ispell</code> 文本搜索词典包含错误词缀数据时崩溃（Arthur Zakirov）</p>", "text": "避免 ispell 文本搜索词典包含错误词缀数据时崩溃（Arthur Zakirov）", "title": "避免 ispell 文本搜索词典包含错误词缀数据时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "aa1f6608dca44d1beb54ca47e1067105e5fedaf1cbcb9fa201c7f9119deb377f", "section_path": ["变更"], "commit_groups": [["4077e9ae1", "6dd92138d", "88d03d73c", "d43bd9dce", "db27b60f0"], ["43753c2cf", "51b9ac558", "65cdf8bc1", "680aabd2f", "8af1624e3"]], "identity_text": "Avoid crashes if ispell text search dictionaries contain wrong affix data (Arthur Zakirov)", "commit_aliases": ["4077e9ae1", "43753c2cf", "51b9ac558", "65cdf8bc1", "680aabd2f", "6dd92138d", "88d03d73c", "8af1624e3", "d43bd9dce", "db27b60f0"], "source_commits": ["51b9ac558", "d43bd9dce"], "source_entry_id": "9.6.16/changes/026", "db_id": "283e2cd004db7bde323feb3bd8b79693", "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7", "relations": [{"rule": 2, "type": "equivalent", "target": "1791c3680867811f4b490595463226c2", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}}, {"rule": 2, "type": "equivalent", "target": "b81d2600384e59e638afb38285986d44", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}}, {"rule": 2, "type": "equivalent", "target": "cd5a7bde0978c05f1d476792dd368370", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cd5a7bde0978c05f1d476792dd368370", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "避免 ispell 文本检索词典包含错误的词缀数据时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}, "url": "/docs/compare/?release=12.1#12.1-6ec3b334cd31d5fc", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "1791c3680867811f4b490595463226c2", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免 ispell 文本检索词典包含错误的词缀数据时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}, "url": "/docs/compare/?release=11.6#11.6-989b2e62585bafb6", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "b81d2600384e59e638afb38285986d44", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免 ispell 文本检索词典包含错误的词缀数据时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}, "url": "/docs/compare/?release=10.11#10.11-989b2e62585bafb6", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}]}, {"id": "9.6.16-df82c8fc573cd85b", "cves": [], "html": "<p>修复 GIN posting 列表的错误压缩逻辑（Heikki Linnakangas）</p>\n<p>如果相邻被索引 TID 之间的距离超过 16TB，一个 GIN posting 列表项可能需要 7 字节。逻辑中的一步与此不同步，可能试图把值写入 6 字节缓冲区。原则上这可能导致栈越界，但在大多数体系结构上，下一个字节很可能是未使用的对齐填充，使该 bug 无害。无论如何，这个 bug 都很难被触发到。</p>", "text": "修复 GIN posting 列表的错误压缩逻辑（Heikki Linnakangas） 如果相邻被索引 TID 之间的距离超过 16TB，一个 GIN posting 列表项可能需要 7 字节。逻辑中的一步与此不同步，可能试图把值写入 6 字节缓冲区。原则上这可能导致栈越界，但在大多数体系结构上，下一个字节很可能是未使用的对齐填充，使该 bug 无害。无论如何，这个 bug 都很难被触发到。", "title": "修复 GIN posting 列表的错误压缩逻辑", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "949a2510f94ed33dc75a7a98e8ca86e07633594a8cdaad1f0a46695fcb6afc15", "section_path": ["变更"], "commit_groups": [["1c99acc6e", "6292cde1c", "6b7819a0b", "756178232", "bde7493d1", "cf00ca522", "e2e616579"], ["744c848dc"]], "identity_text": "Fix incorrect compression logic for GIN posting lists (Heikki Linnakangas) A GIN posting list item can require 7 bytes if the distance between adjacent indexed TIDs exceeds 16TB. One step in the logic was out of sync with that, and might try to write the value into a 6-byte buffer. In principle this could cause a stack overrun, but on most architectures it's likely that the next byte would be unused alignment padding, making the bug harmless. In any case the bug would be very difficult to hit.", "commit_aliases": ["1c99acc6e", "6292cde1c", "6b7819a0b", "744c848dc", "756178232", "bde7493d1", "cf00ca522", "e2e616579"], "source_commits": ["744c848dc", "e2e616579"], "source_entry_id": "9.6.16/changes/027", "db_id": "b75d1389fbbfd02cdf24534c23cd800e", "patch_ids": ["60acafcf1cabfbe9689d5648685a681d", "66bb22b045c63c243194aa0ae4579612"], "statement_hash": "fcfa6868976587d2621b5637da29698324069942fe27b2fe90d8e7597822d129", "relations": [{"rule": 2, "type": "equivalent", "target": "3fc326e55a6b6b746dbddce853d76f45", "evidence": {"same_day": true, "patch_ids": ["60acafcf1cabfbe9689d5648685a681d", "66bb22b045c63c243194aa0ae4579612"], "statement_hash": "fcfa6868976587d2621b5637da29698324069942fe27b2fe90d8e7597822d129"}}, {"rule": 2, "type": "equivalent", "target": "5be78007dca7c1c0fbedd0dcc358ab1d", "evidence": {"same_day": true, "patch_ids": ["60acafcf1cabfbe9689d5648685a681d", "66bb22b045c63c243194aa0ae4579612"], "statement_hash": "fcfa6868976587d2621b5637da29698324069942fe27b2fe90d8e7597822d129"}}, {"rule": 2, "type": "equivalent", "target": "8c49457da3d5a86e1b67cf7bf25b8fb2", "evidence": {"same_day": true, "patch_ids": ["60acafcf1cabfbe9689d5648685a681d", "66bb22b045c63c243194aa0ae4579612"], "statement_hash": "fcfa6868976587d2621b5637da29698324069942fe27b2fe90d8e7597822d129"}}, {"rule": 2, "type": "equivalent", "target": "f0f6785a05bc6fa46583e2f8ef2f62a8", "evidence": {"same_day": true, "patch_ids": ["60acafcf1cabfbe9689d5648685a681d", "66bb22b045c63c243194aa0ae4579612"], "statement_hash": "fcfa6868976587d2621b5637da29698324069942fe27b2fe90d8e7597822d129"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5be78007dca7c1c0fbedd0dcc358ab1d", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 GIN 倒排列表的不正确压缩逻辑", "evidence": {"same_day": true, "patch_ids": ["60acafcf1cabfbe9689d5648685a681d", "66bb22b045c63c243194aa0ae4579612"], "statement_hash": "fcfa6868976587d2621b5637da29698324069942fe27b2fe90d8e7597822d129"}, "url": "/docs/compare/?release=11.6#11.6-ec84e29ee2521591", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "f0f6785a05bc6fa46583e2f8ef2f62a8", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 GIN 倒排列表的不正确压缩逻辑", "evidence": {"same_day": true, "patch_ids": ["60acafcf1cabfbe9689d5648685a681d", "66bb22b045c63c243194aa0ae4579612"], "statement_hash": "fcfa6868976587d2621b5637da29698324069942fe27b2fe90d8e7597822d129"}, "url": "/docs/compare/?release=10.11#10.11-ec84e29ee2521591", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "8c49457da3d5a86e1b67cf7bf25b8fb2", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 GIN posting 列表的错误压缩逻辑", "evidence": {"same_day": true, "patch_ids": ["60acafcf1cabfbe9689d5648685a681d", "66bb22b045c63c243194aa0ae4579612"], "statement_hash": "fcfa6868976587d2621b5637da29698324069942fe27b2fe90d8e7597822d129"}, "url": "/docs/compare/?release=9.5.20#9.5.20-df82c8fc573cd85b", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "3fc326e55a6b6b746dbddce853d76f45", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 GIN posting 列表的错误压缩逻辑", "evidence": {"same_day": true, "patch_ids": ["60acafcf1cabfbe9689d5648685a681d", "66bb22b045c63c243194aa0ae4579612"], "statement_hash": "fcfa6868976587d2621b5637da29698324069942fe27b2fe90d8e7597822d129"}, "url": "/docs/compare/?release=9.4.25#9.4.25-df82c8fc573cd85b", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-a23f301528635a6b", "cves": [], "html": "<p>修复 KNN-GiST 中对无穷大、NaN 和 NULL 值的处理（Alexander Korotkov）</p>\n<p>如果为非空列值计算的某些距离是无穷大或 NaN，查询的输出顺序可能错误（与普通排序的结果不同）。</p>", "text": "修复 KNN-GiST 中对无穷大、NaN 和 NULL 值的处理（Alexander Korotkov） 如果为非空列值计算的某些距离是无穷大或 NaN，查询的输出顺序可能错误（与普通排序的结果不同）。", "title": "修复 KNN-GiST 中对无穷大、NaN 和 NULL 值的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "c4c25c01043e96a0fd10a449c4f2ce5f5361529641dd86ca3f9c4e3922330981", "section_path": ["变更"], "commit_groups": [["02f90879e", "1df412304", "3c155bafa", "92f6b49c4", "a5431b7d5", "d807200b4", "e6af7b367"], ["111fb7e42", "749b04d1d", "8f724002e", "986319d46", "b2037afec", "bc67f4189", "e5d8f3596"]], "identity_text": "Fix handling of infinity, NaN, and NULL values in KNN-GiST (Alexander Korotkov) The query's output order could be wrong (different from a plain sort's result) if some distances computed for non-null column values are infinity or NaN.", "commit_aliases": ["02f90879e", "111fb7e42", "1df412304", "3c155bafa", "749b04d1d", "8f724002e", "92f6b49c4", "986319d46", "a5431b7d5", "b2037afec", "bc67f4189", "d807200b4", "e5d8f3596", "e6af7b367"], "source_commits": ["a5431b7d5", "b2037afec"], "source_entry_id": "9.6.16/changes/028", "db_id": "c3ccaff31d0f9a62e817be93b67bd01d", "patch_ids": ["7b9ea18b56299a8d028ae8820497e4b7", "c24a7727ca7395afe3dc6605d984abda"], "statement_hash": "9986d70146d4c4a9030d03614e231aaffcb3caabc05c0a122a7ea222c3129e26", "relations": [{"rule": 2, "type": "equivalent", "target": "7a43cdba2247d6050186b24e9452d6b6", "evidence": {"same_day": true, "patch_ids": ["7b9ea18b56299a8d028ae8820497e4b7", "c24a7727ca7395afe3dc6605d984abda"], "statement_hash": "9986d70146d4c4a9030d03614e231aaffcb3caabc05c0a122a7ea222c3129e26"}}, {"rule": 2, "type": "equivalent", "target": "9d7bbd437cedcff2df4f71c25b584f97", "evidence": {"same_day": true, "patch_ids": ["7b9ea18b56299a8d028ae8820497e4b7", "c24a7727ca7395afe3dc6605d984abda"], "statement_hash": "9986d70146d4c4a9030d03614e231aaffcb3caabc05c0a122a7ea222c3129e26"}}, {"rule": 2, "type": "equivalent", "target": "beda73fd9dd4d580e534c03f8985a729", "evidence": {"same_day": true, "patch_ids": ["7b9ea18b56299a8d028ae8820497e4b7", "c24a7727ca7395afe3dc6605d984abda"], "statement_hash": "9986d70146d4c4a9030d03614e231aaffcb3caabc05c0a122a7ea222c3129e26"}}, {"rule": 2, "type": "equivalent", "target": "d9b7dda1aa30309ccee427f287468c34", "evidence": {"same_day": true, "patch_ids": ["7b9ea18b56299a8d028ae8820497e4b7", "c24a7727ca7395afe3dc6605d984abda"], "statement_hash": "9986d70146d4c4a9030d03614e231aaffcb3caabc05c0a122a7ea222c3129e26"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7a43cdba2247d6050186b24e9452d6b6", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 KNN-GiST 中对无穷大、NaN 和 NULL 值的处理", "evidence": {"same_day": true, "patch_ids": ["7b9ea18b56299a8d028ae8820497e4b7", "c24a7727ca7395afe3dc6605d984abda"], "statement_hash": "9986d70146d4c4a9030d03614e231aaffcb3caabc05c0a122a7ea222c3129e26"}, "url": "/docs/compare/?release=11.6#11.6-a23f301528635a6b", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "9d7bbd437cedcff2df4f71c25b584f97", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 KNN-GiST 中对无穷大、NaN 和 NULL 值的处理", "evidence": {"same_day": true, "patch_ids": ["7b9ea18b56299a8d028ae8820497e4b7", "c24a7727ca7395afe3dc6605d984abda"], "statement_hash": "9986d70146d4c4a9030d03614e231aaffcb3caabc05c0a122a7ea222c3129e26"}, "url": "/docs/compare/?release=10.11#10.11-a23f301528635a6b", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "d9b7dda1aa30309ccee427f287468c34", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 KNN-GiST 中对无穷大、NaN 和 NULL 值的处理", "evidence": {"same_day": true, "patch_ids": ["7b9ea18b56299a8d028ae8820497e4b7", "c24a7727ca7395afe3dc6605d984abda"], "statement_hash": "9986d70146d4c4a9030d03614e231aaffcb3caabc05c0a122a7ea222c3129e26"}, "url": "/docs/compare/?release=9.5.20#9.5.20-a23f301528635a6b", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "beda73fd9dd4d580e534c03f8985a729", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 KNN-GiST 中对无穷大、NaN 和 NULL 值的处理", "evidence": {"same_day": true, "patch_ids": ["7b9ea18b56299a8d028ae8820497e4b7", "c24a7727ca7395afe3dc6605d984abda"], "statement_hash": "9986d70146d4c4a9030d03614e231aaffcb3caabc05c0a122a7ea222c3129e26"}, "url": "/docs/compare/?release=9.4.25#9.4.25-a23f301528635a6b", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-ada4c4796e96ac6c", "cves": [], "html": "<p>修复 KNN-SP-GiST 中对 NULL 搜索的处理（Nikita Glukhov）</p>", "text": "修复 KNN-SP-GiST 中对 NULL 搜索的处理（Nikita Glukhov）", "title": "修复 KNN-SP-GiST 中对 NULL 搜索的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "f4b4e16e688c7a2ac1cae4b92b6e2dee16789cc300f760628c671d0b3571e527", "section_path": ["变更"], "commit_groups": [["140b7b1f9", "2f0434e8e", "388939748", "984b9ba1d"], ["2da8e56db", "31cbd7605", "332eda5bd", "53d9cf2db", "6cae9d2c1", "ad458d0cd", "d6a90aac5"]], "identity_text": "Fix handling of searches for NULL in KNN-SP-GiST (Nikita Glukhov)", "commit_aliases": ["140b7b1f9", "2da8e56db", "2f0434e8e", "31cbd7605", "332eda5bd", "388939748", "53d9cf2db", "6cae9d2c1", "984b9ba1d", "ad458d0cd", "d6a90aac5"], "source_commits": ["140b7b1f9", "53d9cf2db"], "source_entry_id": "9.6.16/changes/029", "db_id": "8e91a2f472a015ee7ff3b4d301c5238a", "patch_ids": ["6ff6f0f4c73f1aca8888e2ef75427b6a", "fbead6a49176269f775eefbb62877c7f"], "statement_hash": "c0d9be5b78fc1c8a236e8a3b8f7a6cbc43467beaf85024d646f78b0c0b577425", "relations": [{"rule": 2, "type": "equivalent", "target": "7c8f69a9ab49e39d197b5a8392db3b48", "evidence": {"same_day": true, "patch_ids": ["6ff6f0f4c73f1aca8888e2ef75427b6a", "fbead6a49176269f775eefbb62877c7f"], "statement_hash": "c0d9be5b78fc1c8a236e8a3b8f7a6cbc43467beaf85024d646f78b0c0b577425"}}, {"rule": 2, "type": "equivalent", "target": "ca618c300b2c0271b550bbc8508bc145", "evidence": {"same_day": true, "patch_ids": ["6ff6f0f4c73f1aca8888e2ef75427b6a", "fbead6a49176269f775eefbb62877c7f"], "statement_hash": "c0d9be5b78fc1c8a236e8a3b8f7a6cbc43467beaf85024d646f78b0c0b577425"}}, {"rule": 2, "type": "equivalent", "target": "cff95402d4659c1e9851118ce708bbc0", "evidence": {"same_day": true, "patch_ids": ["6ff6f0f4c73f1aca8888e2ef75427b6a", "fbead6a49176269f775eefbb62877c7f"], "statement_hash": "c0d9be5b78fc1c8a236e8a3b8f7a6cbc43467beaf85024d646f78b0c0b577425"}}, {"rule": 2, "type": "equivalent", "target": "d01ed88fb942afa0ed5ffa43faba6308", "evidence": {"same_day": true, "patch_ids": ["6ff6f0f4c73f1aca8888e2ef75427b6a", "fbead6a49176269f775eefbb62877c7f"], "statement_hash": "c0d9be5b78fc1c8a236e8a3b8f7a6cbc43467beaf85024d646f78b0c0b577425"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cff95402d4659c1e9851118ce708bbc0", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 KNN-SP-GiST 中对搜索 NULL 的处理", "evidence": {"same_day": true, "patch_ids": ["6ff6f0f4c73f1aca8888e2ef75427b6a", "fbead6a49176269f775eefbb62877c7f"], "statement_hash": "c0d9be5b78fc1c8a236e8a3b8f7a6cbc43467beaf85024d646f78b0c0b577425"}, "url": "/docs/compare/?release=11.6#11.6-2ad2e8267b0f23fc", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "7c8f69a9ab49e39d197b5a8392db3b48", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 KNN-SP-GiST 中对搜索 NULL 的处理", "evidence": {"same_day": true, "patch_ids": ["6ff6f0f4c73f1aca8888e2ef75427b6a", "fbead6a49176269f775eefbb62877c7f"], "statement_hash": "c0d9be5b78fc1c8a236e8a3b8f7a6cbc43467beaf85024d646f78b0c0b577425"}, "url": "/docs/compare/?release=10.11#10.11-2ad2e8267b0f23fc", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "ca618c300b2c0271b550bbc8508bc145", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 KNN-SP-GiST 中对 NULL 搜索的处理", "evidence": {"same_day": true, "patch_ids": ["6ff6f0f4c73f1aca8888e2ef75427b6a", "fbead6a49176269f775eefbb62877c7f"], "statement_hash": "c0d9be5b78fc1c8a236e8a3b8f7a6cbc43467beaf85024d646f78b0c0b577425"}, "url": "/docs/compare/?release=9.5.20#9.5.20-ada4c4796e96ac6c", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "d01ed88fb942afa0ed5ffa43faba6308", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 KNN-SP-GiST 中对 NULL 搜索的处理", "evidence": {"same_day": true, "patch_ids": ["6ff6f0f4c73f1aca8888e2ef75427b6a", "fbead6a49176269f775eefbb62877c7f"], "statement_hash": "c0d9be5b78fc1c8a236e8a3b8f7a6cbc43467beaf85024d646f78b0c0b577425"}, "url": "/docs/compare/?release=9.4.25#9.4.25-ada4c4796e96ac6c", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-42261f0150d2b4d2", "cves": [], "html": "<p>在 Windows 上，识别 <span>“<span>Norwegian (Bokmål)</span>”</span> 区域名的更多拼法（Tom Lane）</p>", "text": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域名的更多拼法（Tom Lane）", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域名的更多拼法", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "74954a1c0243d9b26e633e90f250ec6e2ba060beaf964283d741b43419d85c7d", "section_path": ["变更"], "commit_groups": [["185253ab8", "4f2ad5226", "a05a04d0e", "aebe3ef0e", "db477b691", "e3267407e", "fedcab352"]], "identity_text": "On Windows, recognize additional spellings of the Norwegian (Bokmål) locale name (Tom Lane)", "commit_aliases": ["185253ab8", "4f2ad5226", "a05a04d0e", "aebe3ef0e", "db477b691", "e3267407e", "fedcab352"], "source_commits": ["185253ab8"], "source_entry_id": "9.6.16/changes/030", "db_id": "73495a6bf973b70836e3aca3f2c2ac51", "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5", "relations": [{"rule": 2, "type": "equivalent", "target": "225febe7c77dd58718ec5f3f63a0812d", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}}, {"rule": 2, "type": "equivalent", "target": "26d29236bce72fa79bbb285e2ee96b25", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}}, {"rule": 2, "type": "equivalent", "target": "605dd65b38b1599763cf75961ffcd71b", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}}, {"rule": 2, "type": "equivalent", "target": "789cec58ca9f82e639ee2a2dae1500f0", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}}, {"rule": 2, "type": "equivalent", "target": "be67afb148dc3575454e6d95f868998f", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "225febe7c77dd58718ec5f3f63a0812d", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域设置名称的更多拼写形式", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}, "url": "/docs/compare/?release=12.1#12.1-d61548fa25c77231", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "be67afb148dc3575454e6d95f868998f", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域设置名称的更多拼写形式", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}, "url": "/docs/compare/?release=11.6#11.6-e87de571f41d73e4", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "605dd65b38b1599763cf75961ffcd71b", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域设置名称的更多拼写形式", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}, "url": "/docs/compare/?release=10.11#10.11-e87de571f41d73e4", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "789cec58ca9f82e639ee2a2dae1500f0", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域名的更多拼法", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}, "url": "/docs/compare/?release=9.5.20#9.5.20-42261f0150d2b4d2", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "26d29236bce72fa79bbb285e2ee96b25", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域名的更多拼法", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}, "url": "/docs/compare/?release=9.4.25#9.4.25-42261f0150d2b4d2", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-f502876330bb9416", "cves": [], "html": "<p>避免 ECPG 客户端在定义了 <code>ENABLE_NLS</code> 的情况下包含 <code>ecpglib.h</code> 时编译失败（Tom Lane）</p>\n<p>这个风险是由一个错位的声明造成的：<code>ecpg_gettext()</code> 不应对客户端代码可见。</p>", "text": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败（Tom Lane） 这个风险是由一个错位的声明造成的：ecpg_gettext() 不应对客户端代码可见。", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "72e09e777e8bd94db6f964f4f1546a617e767fd202c7e396bb6e32d1ea70c9e1", "section_path": ["变更"], "commit_groups": [["101654987", "831ca9513", "89f56fc22", "b20233aac", "b705d6391", "baa483984", "c8cb98ec4"]], "identity_text": "Avoid compile failure if an ECPG client includes ecpglib.h while having ENABLE_NLS defined (Tom Lane) This risk was created by a misplaced declaration: ecpg_gettext() should not be visible to client code.", "commit_aliases": ["101654987", "831ca9513", "89f56fc22", "b20233aac", "b705d6391", "baa483984", "c8cb98ec4"], "source_commits": ["baa483984"], "source_entry_id": "9.6.16/changes/031", "db_id": "b2e8debef48ea50941c0aca040f3f968", "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2", "relations": [{"rule": 2, "type": "equivalent", "target": "0c91cb7342abc42045e66b2fc60220ea", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}}, {"rule": 2, "type": "equivalent", "target": "6334c89fa50cd261cfba8ec3ecea1e0d", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}}, {"rule": 2, "type": "equivalent", "target": "7c1586338ffd8d223fe0cc443839c9a1", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}}, {"rule": 2, "type": "equivalent", "target": "87efcb322eba2bcd3c5866c05efb7858", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}}, {"rule": 2, "type": "equivalent", "target": "cc36cdeec3fc81996f44d5aa3db09334", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7c1586338ffd8d223fe0cc443839c9a1", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}, "url": "/docs/compare/?release=12.1#12.1-ce7ebd43ab385df1", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "0c91cb7342abc42045e66b2fc60220ea", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}, "url": "/docs/compare/?release=11.6#11.6-f502876330bb9416", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "cc36cdeec3fc81996f44d5aa3db09334", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}, "url": "/docs/compare/?release=10.11#10.11-f502876330bb9416", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "87efcb322eba2bcd3c5866c05efb7858", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}, "url": "/docs/compare/?release=9.5.20#9.5.20-f502876330bb9416", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "6334c89fa50cd261cfba8ec3ecea1e0d", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}, "url": "/docs/compare/?release=9.4.25#9.4.25-f502876330bb9416", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-b59528386e4dab61", "cves": [], "html": "<p>在 <span>psql</span> 中，意外连接丢失并成功重连之后重新同步关于服务器的内部状态（Peter Billen、Tom Lane）</p>\n<p>通常这是不必要的，因为状态反正会相同。但在边界情况下可能有关系，例如连接可能通向几台服务器之一。这一更改使 <span>psql</span> 重新发出它在启动时会发出的任何交互式消息，例如关于是否使用 SSL。</p>", "text": "在 psql 中，意外连接丢失并成功重连之后重新同步关于服务器的内部状态（Peter Billen、Tom Lane） 通常这是不必要的，因为状态反正会相同。但在边界情况下可能有关系，例如连接可能通向几台服务器之一。这一更改使 psql 重新发出它在启动时会发出的任何交互式消息，例如关于是否使用 SSL。", "title": "在 psql 中，意外连接丢失并成功重连之后重新同步关于服务器的内部状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "e5c0657e50f74f633e45aaccf8fd3ca1c7e159ee9aac6e81d741efded313e9ed", "section_path": ["变更"], "commit_groups": [["3080f8f61", "5524ef558", "62724bd95", "89535db97", "90433c38e", "aef362385", "b0b2ef25e"]], "identity_text": "In psql, resynchronize internal state about the server after an unexpected connection loss and successful reconnection (Peter Billen, Tom Lane) Ordinarily this is unnecessary since the state would be the same anyway. But it can matter in corner cases, such as where the connection might lead to one of several servers. This change causes psql to re-issue any interactive messages that it would have issued at startup, for example about whether SSL is in use.", "commit_aliases": ["3080f8f61", "5524ef558", "62724bd95", "89535db97", "90433c38e", "aef362385", "b0b2ef25e"], "source_commits": ["b0b2ef25e"], "source_entry_id": "9.6.16/changes/032", "db_id": "1bc9918c5d1e2f5fc32c3478cb761f01", "patch_ids": ["989f4cbbc066103b978638607a6ad548"], "statement_hash": "efd5d1fb94fbba9a410c05a370faf129172241dc377afee41dc24cc9e5bafaac", "relations": [{"rule": 2, "type": "equivalent", "target": "6d91276c5f102904cb599ad608de250b", "evidence": {"same_day": true, "patch_ids": ["989f4cbbc066103b978638607a6ad548"], "statement_hash": "efd5d1fb94fbba9a410c05a370faf129172241dc377afee41dc24cc9e5bafaac"}}, {"rule": 2, "type": "equivalent", "target": "7e6b80a38c92a835f9fafa759c9afc19", "evidence": {"same_day": true, "patch_ids": ["989f4cbbc066103b978638607a6ad548"], "statement_hash": "efd5d1fb94fbba9a410c05a370faf129172241dc377afee41dc24cc9e5bafaac"}}, {"rule": 2, "type": "equivalent", "target": "d71acd58d8299ec0820c244ccb30cd11", "evidence": {"same_day": true, "patch_ids": ["989f4cbbc066103b978638607a6ad548"], "statement_hash": "efd5d1fb94fbba9a410c05a370faf129172241dc377afee41dc24cc9e5bafaac"}}, {"rule": 2, "type": "equivalent", "target": "f54b57628fd594dde69ef0ce146a684b", "evidence": {"same_day": true, "patch_ids": ["989f4cbbc066103b978638607a6ad548"], "statement_hash": "efd5d1fb94fbba9a410c05a370faf129172241dc377afee41dc24cc9e5bafaac"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f54b57628fd594dde69ef0ce146a684b", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在 psql 中，意外丢失连接并成功重新连接后，重新同步关于服务器的内部状态", "evidence": {"same_day": true, "patch_ids": ["989f4cbbc066103b978638607a6ad548"], "statement_hash": "efd5d1fb94fbba9a410c05a370faf129172241dc377afee41dc24cc9e5bafaac"}, "url": "/docs/compare/?release=11.6#11.6-b4d55a23b642785a", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "7e6b80a38c92a835f9fafa759c9afc19", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在 psql 中，意外丢失连接并成功重新连接后，重新同步关于服务器的内部状态", "evidence": {"same_day": true, "patch_ids": ["989f4cbbc066103b978638607a6ad548"], "statement_hash": "efd5d1fb94fbba9a410c05a370faf129172241dc377afee41dc24cc9e5bafaac"}, "url": "/docs/compare/?release=10.11#10.11-b4d55a23b642785a", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "6d91276c5f102904cb599ad608de250b", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 psql 中，意外连接丢失并成功重连之后重新同步关于服务器的内部状态", "evidence": {"same_day": true, "patch_ids": ["989f4cbbc066103b978638607a6ad548"], "statement_hash": "efd5d1fb94fbba9a410c05a370faf129172241dc377afee41dc24cc9e5bafaac"}, "url": "/docs/compare/?release=9.5.20#9.5.20-b59528386e4dab61", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "d71acd58d8299ec0820c244ccb30cd11", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "在 psql 中，意外连接丢失并成功重连之后重新同步关于服务器的内部状态", "evidence": {"same_day": true, "patch_ids": ["989f4cbbc066103b978638607a6ad548"], "statement_hash": "efd5d1fb94fbba9a410c05a370faf129172241dc377afee41dc24cc9e5bafaac"}, "url": "/docs/compare/?release=9.4.25#9.4.25-b59528386e4dab61", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-40dbba64ff68aa92", "cves": [], "html": "<p>避免 <span>psql</span> 中平台相关的空指针解引用（Quentin Rameau）</p>", "text": "避免 psql 中平台相关的空指针解引用（Quentin Rameau）", "title": "避免 psql 中平台相关的空指针解引用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "1e532007a6b69675c5219f2400d048ce5dfdbf2eefb340e9321323c96677e42b", "section_path": ["变更"], "commit_groups": [["28d2ce3c7", "363382521", "5fc7b1e93", "6338fa3e7", "65b1cad5a", "c693c5c49", "fb55e9539"]], "identity_text": "Avoid platform-specific null pointer dereference in psql (Quentin Rameau)", "commit_aliases": ["28d2ce3c7", "363382521", "5fc7b1e93", "6338fa3e7", "65b1cad5a", "c693c5c49", "fb55e9539"], "source_commits": ["28d2ce3c7"], "source_entry_id": "9.6.16/changes/033", "db_id": "fad3a0a556016637fb89e50f4d5d1c5c", "patch_ids": ["4bc8bfc7475b0c29d9a65af50d248cc6"], "statement_hash": "f5c877897047f551b3de25260d824469a794ebddd94860e0eafdafda93cbed6f", "relations": [{"rule": 2, "type": "equivalent", "target": "1e07b974e12ac0a7794d59835c52b3b4", "evidence": {"same_day": true, "patch_ids": ["4bc8bfc7475b0c29d9a65af50d248cc6"], "statement_hash": "f5c877897047f551b3de25260d824469a794ebddd94860e0eafdafda93cbed6f"}}, {"rule": 2, "type": "equivalent", "target": "3a8c1fb571a41d8585b0b8d44ef758b5", "evidence": {"same_day": true, "patch_ids": ["4bc8bfc7475b0c29d9a65af50d248cc6"], "statement_hash": "f5c877897047f551b3de25260d824469a794ebddd94860e0eafdafda93cbed6f"}}, {"rule": 2, "type": "equivalent", "target": "62b52148d969679de9c3081ee15b1012", "evidence": {"same_day": true, "patch_ids": ["4bc8bfc7475b0c29d9a65af50d248cc6"], "statement_hash": "f5c877897047f551b3de25260d824469a794ebddd94860e0eafdafda93cbed6f"}}, {"rule": 2, "type": "equivalent", "target": "a51574c5d195a832bc9c981a608a0c41", "evidence": {"same_day": true, "patch_ids": ["4bc8bfc7475b0c29d9a65af50d248cc6"], "statement_hash": "f5c877897047f551b3de25260d824469a794ebddd94860e0eafdafda93cbed6f"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e07b974e12ac0a7794d59835c52b3b4", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免 psql 中特定平台上的空指针解引用", "evidence": {"same_day": true, "patch_ids": ["4bc8bfc7475b0c29d9a65af50d248cc6"], "statement_hash": "f5c877897047f551b3de25260d824469a794ebddd94860e0eafdafda93cbed6f"}, "url": "/docs/compare/?release=11.6#11.6-30fe5d8d6f8f2dfc", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "a51574c5d195a832bc9c981a608a0c41", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免 psql 中特定平台上的空指针解引用", "evidence": {"same_day": true, "patch_ids": ["4bc8bfc7475b0c29d9a65af50d248cc6"], "statement_hash": "f5c877897047f551b3de25260d824469a794ebddd94860e0eafdafda93cbed6f"}, "url": "/docs/compare/?release=10.11#10.11-30fe5d8d6f8f2dfc", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "62b52148d969679de9c3081ee15b1012", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "避免 psql 中平台相关的空指针解引用", "evidence": {"same_day": true, "patch_ids": ["4bc8bfc7475b0c29d9a65af50d248cc6"], "statement_hash": "f5c877897047f551b3de25260d824469a794ebddd94860e0eafdafda93cbed6f"}, "url": "/docs/compare/?release=9.5.20#9.5.20-40dbba64ff68aa92", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "3a8c1fb571a41d8585b0b8d44ef758b5", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "避免 psql 中平台相关的空指针解引用", "evidence": {"same_day": true, "patch_ids": ["4bc8bfc7475b0c29d9a65af50d248cc6"], "statement_hash": "f5c877897047f551b3de25260d824469a794ebddd94860e0eafdafda93cbed6f"}, "url": "/docs/compare/?release=9.4.25#9.4.25-40dbba64ff68aa92", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-f9d0be0a8e560f62", "cves": [], "html": "<p>修复 <span>pg_dump</span> 对视图中循环依赖的处理（Tom Lane）</p>\n<p>某些情况下视图可能依赖于 <span>pg_dump</span> 需要在视图之后转储的对象；最常见的例子是在主键列上使用 <code>GROUP BY</code> 的查询在没有主键时可能在语义上无效。现在通过发出一个仅建立视图列名和类型的虚拟 <code>CREATE VIEW</code> 命令、之后再发出带完整视图定义的 <code>CREATE OR REPLACE VIEW</code> 来处理。此前虚拟定义实际上是一条 <code>CREATE TABLE</code> 命令，之后通过 <code>CREATE RULE</code> 命令自动转换成视图。这种新方法在 <span>PostgreSQL</span> 版本 10 及之后已经成功使用。现在把它向后移植到较旧的版本，是因为有报告称以前的方法会导致关于视图副本身份状态的虚假错误消息。这一更改还避免了在涉及此类视图的恢复期间尝试使用 <code>--clean</code> 选项时的问题。</p>", "text": "修复 pg_dump 对视图中循环依赖的处理（Tom Lane） 某些情况下视图可能依赖于 pg_dump 需要在视图之后转储的对象；最常见的例子是在主键列上使用 GROUP BY 的查询在没有主键时可能在语义上无效。现在通过发出一个仅建立视图列名和类型的虚拟 CREATE VIEW 命令、之后再发出带完整视图定义的 CREATE OR REPLACE VIEW 来处理。此前虚拟定义实际上是一条 CREATE TABLE 命令，之后通过 CREATE RULE 命令自动转换成视图。这种新方法在 PostgreSQL 版本 10 及之后已经成功使用。现在把它向后移植到较旧的版本，是因为有报告称以前的方法会导致关于视图副本身份状态的虚假错误消息。这一更改还避免了在涉及此类视图的恢复期间尝试使用 --clean 选项时的问题。", "title": "修复 pg_dump 对视图中循环依赖的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "ccfbdfbc5b8098880730e0c8af5151e30ad8daeabfea6bb1d095fad6cd8682f6", "section_path": ["变更"], "commit_groups": [["404cbc562", "7fc50a8a7", "ddcc582a4"]], "identity_text": "Fix pg_dump's handling of circular dependencies in views (Tom Lane) In some cases a view may depend on an object that pg_dump needs to dump later than the view; the most common example is that a query using GROUP BY on a primary-key column may be semantically invalid without the primary key. This is now handled by emitting a dummy CREATE VIEW command that just establishes the view's column names and types, and then later emitting CREATE OR REPLACE VIEW with the full view definition. Previously, the dummy definition was actually a CREATE TABLE command, and this was automagically converted to a view by a later CREATE RULE command. The new approach has been used successfully in PostgreSQL version 10 and later. We are back-patching it into older releases now because of reports that the previous method causes bogus error messages about the view's replica identity status. This change also avoids problems when trying to use the --clean option during a restore involving such a view.", "commit_aliases": ["404cbc562", "7fc50a8a7", "ddcc582a4"], "source_commits": ["404cbc562"], "source_entry_id": "9.6.16/changes/034", "db_id": "a89fa0b3fdcaac5d34bd88b36a8a11d6", "patch_ids": ["9dc10dd0717a193622320052bdcb9bda"], "statement_hash": "016bc28c047d5fb021d8086f540daec9dbd962e3644b3b33673a8ea71347335e", "relations": [{"rule": 2, "type": "equivalent", "target": "37642a90e8cace463753046f59ed6f35", "evidence": {"same_day": true, "patch_ids": ["9dc10dd0717a193622320052bdcb9bda"], "statement_hash": "016bc28c047d5fb021d8086f540daec9dbd962e3644b3b33673a8ea71347335e"}}, {"rule": 2, "type": "equivalent", "target": "64711bc6a1a211668b7189724ea23f4f", "evidence": {"same_day": true, "patch_ids": ["9dc10dd0717a193622320052bdcb9bda"], "statement_hash": "016bc28c047d5fb021d8086f540daec9dbd962e3644b3b33673a8ea71347335e"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "37642a90e8cace463753046f59ed6f35", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 pg_dump 对视图中循环依赖的处理", "evidence": {"same_day": true, "patch_ids": ["9dc10dd0717a193622320052bdcb9bda"], "statement_hash": "016bc28c047d5fb021d8086f540daec9dbd962e3644b3b33673a8ea71347335e"}, "url": "/docs/compare/?release=9.5.20#9.5.20-f9d0be0a8e560f62", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "64711bc6a1a211668b7189724ea23f4f", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 pg_dump 对视图中循环依赖的处理", "evidence": {"same_day": true, "patch_ids": ["9dc10dd0717a193622320052bdcb9bda"], "statement_hash": "016bc28c047d5fb021d8086f540daec9dbd962e3644b3b33673a8ea71347335e"}, "url": "/docs/compare/?release=9.4.25#9.4.25-f9d0be0a8e560f62", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-bd8167949664b141", "cves": [], "html": "<p>在 <span>pg_dump</span> 中，确保同名触发器和行级安全策略对象的稳定输出顺序（Benjie Gillam）</p>\n<p>此前，如果不同表上的两个触发器同名，它们会按基于 OID 的顺序排序，这不如按表名排序理想。RLS 策略同理。</p>", "text": "在 pg_dump 中，确保同名触发器和行级安全策略对象的稳定输出顺序（Benjie Gillam） 此前，如果不同表上的两个触发器同名，它们会按基于 OID 的顺序排序，这不如按表名排序理想。RLS 策略同理。", "title": "在 pg_dump 中，确保同名触发器和行级安全策略对象的稳定输出顺序", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "0a083836b3fb2abc1e11d62fdf2aca7c46a6da4d61d64c7cdd816c569949cac1", "section_path": ["变更"], "commit_groups": [["078f5bc8e", "5102f3944", "648f17879", "74d32ee70", "ca27a84c9", "da5cd7a68", "ee8b95f26"]], "identity_text": "In pg_dump, ensure stable output order for similarly-named triggers and row-level-security policy objects (Benjie Gillam) Previously, if two triggers on different tables had the same names, they would be sorted in OID-based order, which is less desirable than sorting them by table name. Likewise for RLS policies.", "commit_aliases": ["078f5bc8e", "5102f3944", "648f17879", "74d32ee70", "ca27a84c9", "da5cd7a68", "ee8b95f26"], "source_commits": ["648f17879"], "source_entry_id": "9.6.16/changes/035", "db_id": "25bd821359a3753038ddadded63e6f3a", "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913", "relations": [{"rule": 2, "type": "equivalent", "target": "1eb55e45430b0c45783250806e8815e0", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}}, {"rule": 2, "type": "equivalent", "target": "23135c2ddd64175efaa2b46647c07c11", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}}, {"rule": 2, "type": "equivalent", "target": "921c2a7e63d27aaae4036e625c6887fd", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}}, {"rule": 2, "type": "equivalent", "target": "a8a5d43ed77e0081ab73103ceb2ae846", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}}, {"rule": 2, "type": "equivalent", "target": "fa647ca113a1508559005eb20a936e44", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa647ca113a1508559005eb20a936e44", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "在 pg_dump 中，确保名称相似的触发器和行级安全策略对象的输出顺序稳定", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}, "url": "/docs/compare/?release=12.1#12.1-f86364d7db67984c", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "23135c2ddd64175efaa2b46647c07c11", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在 pg_dump 中，确保名称相似的触发器和行级安全策略对象的输出顺序稳定", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}, "url": "/docs/compare/?release=11.6#11.6-51c6c1ae1d07494b", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "921c2a7e63d27aaae4036e625c6887fd", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在 pg_dump 中，确保名称相似的触发器和行级安全策略对象的输出顺序稳定", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}, "url": "/docs/compare/?release=10.11#10.11-51c6c1ae1d07494b", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "1eb55e45430b0c45783250806e8815e0", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 pg_dump 中，确保同名触发器和行级安全策略对象的稳定输出顺序", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}, "url": "/docs/compare/?release=9.5.20#9.5.20-bd8167949664b141", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "a8a5d43ed77e0081ab73103ceb2ae846", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "在 pg_dump 中，确保同名触发器和行级安全策略对象的稳定输出顺序", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}, "url": "/docs/compare/?release=9.4.25#9.4.25-bd8167949664b141", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-bffa29be0dd8a6d7", "cves": [], "html": "<p>修复 <span>pg_dump</span> 重新与 8.3 之前的源服务器工作的问题（Tom Lane）</p>\n<p>此前的一次修复使 <span>pg_dump</span> 总是试图查询 <code>pg_opfamily</code>，但该目录在 8.3 版之前不存在。</p>", "text": "修复 pg_dump 重新与 8.3 之前的源服务器工作的问题（Tom Lane） 此前的一次修复使 pg_dump 总是试图查询 pg_opfamily，但该目录在 8.3 版之前不存在。", "title": "修复 pg_dump 重新与 8.3 之前的源服务器工作的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "7a6934a904b8720e9ae5f50bef73892cdb25405ed0af9c8125f8264deab36921", "section_path": ["变更"], "commit_groups": [["2b608ba31", "31d43710f", "4dea8ad56", "63ae888a9", "6844adba5", "c56858487", "f2bdfebb9"]], "identity_text": "Fix pg_dump to work again with pre-8.3 source servers (Tom Lane) A previous fix caused pg_dump to always try to query pg_opfamily, but that catalog doesn't exist before version 8.3.", "commit_aliases": ["2b608ba31", "31d43710f", "4dea8ad56", "63ae888a9", "6844adba5", "c56858487", "f2bdfebb9"], "source_commits": ["2b608ba31"], "source_entry_id": "9.6.16/changes/036", "db_id": "6f0c4ebd3da0800b96dc28acfed0f3c5", "patch_ids": ["d71878ff6b815304b9b657e483172169"], "statement_hash": "88f87b255698fe87248479f9676e4fb380622d1b0d04add35c15fe00c06ea3e4", "relations": [{"rule": 2, "type": "equivalent", "target": "08dacd7c914334b0fc5cb6ac7f6474bf", "evidence": {"same_day": true, "patch_ids": ["d71878ff6b815304b9b657e483172169"], "statement_hash": "88f87b255698fe87248479f9676e4fb380622d1b0d04add35c15fe00c06ea3e4"}}, {"rule": 2, "type": "equivalent", "target": "165675768109d9e1a41b61e82087cb03", "evidence": {"same_day": true, "patch_ids": ["d71878ff6b815304b9b657e483172169"], "statement_hash": "88f87b255698fe87248479f9676e4fb380622d1b0d04add35c15fe00c06ea3e4"}}, {"rule": 2, "type": "equivalent", "target": "82fdce4fab5c46291d9b290f873418af", "evidence": {"same_day": true, "patch_ids": ["d71878ff6b815304b9b657e483172169"], "statement_hash": "88f87b255698fe87248479f9676e4fb380622d1b0d04add35c15fe00c06ea3e4"}}, {"rule": 2, "type": "equivalent", "target": "9080dd4647ee7e07e5928151f7ad708e", "evidence": {"same_day": true, "patch_ids": ["d71878ff6b815304b9b657e483172169"], "statement_hash": "88f87b255698fe87248479f9676e4fb380622d1b0d04add35c15fe00c06ea3e4"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "165675768109d9e1a41b61e82087cb03", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 pg_dump，使其重新能够使用 8.3 之前版本的源服务器", "evidence": {"same_day": true, "patch_ids": ["d71878ff6b815304b9b657e483172169"], "statement_hash": "88f87b255698fe87248479f9676e4fb380622d1b0d04add35c15fe00c06ea3e4"}, "url": "/docs/compare/?release=11.6#11.6-3fd42cb8d7865a50", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "9080dd4647ee7e07e5928151f7ad708e", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 pg_dump，使其重新能够使用 8.3 之前版本的源服务器", "evidence": {"same_day": true, "patch_ids": ["d71878ff6b815304b9b657e483172169"], "statement_hash": "88f87b255698fe87248479f9676e4fb380622d1b0d04add35c15fe00c06ea3e4"}, "url": "/docs/compare/?release=10.11#10.11-3fd42cb8d7865a50", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "08dacd7c914334b0fc5cb6ac7f6474bf", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 pg_dump 重新与 8.3 之前的源服务器工作的问题", "evidence": {"same_day": true, "patch_ids": ["d71878ff6b815304b9b657e483172169"], "statement_hash": "88f87b255698fe87248479f9676e4fb380622d1b0d04add35c15fe00c06ea3e4"}, "url": "/docs/compare/?release=9.5.20#9.5.20-bffa29be0dd8a6d7", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "82fdce4fab5c46291d9b290f873418af", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 pg_dump 重新与 8.3 之前的源服务器工作的问题", "evidence": {"same_day": true, "patch_ids": ["d71878ff6b815304b9b657e483172169"], "statement_hash": "88f87b255698fe87248479f9676e4fb380622d1b0d04add35c15fe00c06ea3e4"}, "url": "/docs/compare/?release=9.4.25#9.4.25-bffa29be0dd8a6d7", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-6ec82510f60f70e9", "cves": [], "html": "<p>在 <span>pg_restore</span> 中，把 <code>-f -</code> 当作<span>“<span>输出到 stdout</span>”</span>（Álvaro Herrera）</p>\n<p>这使 <span>pg_restore</span> 的行为与其他一些应用同步，特别是使 v12 之前的分支表现得与版本 12 的 <span>pg_restore</span> 相似，简化了跨多个 <span>PostgreSQL</span> 版本的转储/恢复脚本的创建。在此更改之前，<span>pg_restore</span> 把这种开关解释为<span>“<span>输出到名为 <code>-</code> 的文件</span>”</span>，但很少有人会想要那样。</p>", "text": "在 pg_restore 中，把 -f - 当作“输出到 stdout”（Álvaro Herrera） 这使 pg_restore 的行为与其他一些应用同步，特别是使 v12 之前的分支表现得与版本 12 的 pg_restore 相似，简化了跨多个 PostgreSQL 版本的转储/恢复脚本的创建。在此更改之前，pg_restore 把这种开关解释为“输出到名为 - 的文件”，但很少有人会想要那样。", "title": "在 pg_restore 中，把 -f - 当作“输出到 stdout”", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "6293be9197c2c3683c1df7ee5a491cbbed78a0fed5d3f27c7013933145be8b6a", "section_path": ["变更"], "commit_groups": [["12a51e2eb", "3574c0ac0", "5ee8f0fe1", "9fb25fda6", "d38635725"]], "identity_text": "In pg_restore, treat -f - as meaning output to stdout (Álvaro Herrera) This synchronizes pg_restore's behavior with some other applications, and in particular makes pre-v12 branches act similarly to version 12's pg_restore, simplifying creation of dump/restore scripts that work across multiple PostgreSQL versions. Before this change, pg_restore interpreted such a switch as meaning output to a file named -, but few people would want that.", "commit_aliases": ["12a51e2eb", "3574c0ac0", "5ee8f0fe1", "9fb25fda6", "d38635725"], "source_commits": ["12a51e2eb"], "source_entry_id": "9.6.16/changes/037", "db_id": "ba7b4d90e9c3137c7ff24eb2f08ea42e", "patch_ids": ["d543638e0adb6ae160d3d75e0395599c"], "statement_hash": "f582eb5274a2c01036cb5b6f4a3ded9c5b8c09a05deadf030b6853753865523e", "relations": [{"rule": 2, "type": "equivalent", "target": "0fb06bb61933820ce109f1fb57a07095", "evidence": {"same_day": true, "patch_ids": ["d543638e0adb6ae160d3d75e0395599c"], "statement_hash": "f582eb5274a2c01036cb5b6f4a3ded9c5b8c09a05deadf030b6853753865523e"}}, {"rule": 2, "type": "equivalent", "target": "17eef586257eb2b31052fd424787e1e0", "evidence": {"same_day": true, "patch_ids": ["d543638e0adb6ae160d3d75e0395599c"], "statement_hash": "f582eb5274a2c01036cb5b6f4a3ded9c5b8c09a05deadf030b6853753865523e"}}, {"rule": 2, "type": "equivalent", "target": "71c71a9da18b3b766b2ead932528efd3", "evidence": {"same_day": true, "patch_ids": ["d543638e0adb6ae160d3d75e0395599c"], "statement_hash": "f582eb5274a2c01036cb5b6f4a3ded9c5b8c09a05deadf030b6853753865523e"}}, {"rule": 2, "type": "equivalent", "target": "cc6825921e4ad8915cb866b0258595d5", "evidence": {"same_day": true, "patch_ids": ["d543638e0adb6ae160d3d75e0395599c"], "statement_hash": "f582eb5274a2c01036cb5b6f4a3ded9c5b8c09a05deadf030b6853753865523e"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc6825921e4ad8915cb866b0258595d5", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在 pg_restore 中，将 -f - 解释为“输出到 stdout”", "evidence": {"same_day": true, "patch_ids": ["d543638e0adb6ae160d3d75e0395599c"], "statement_hash": "f582eb5274a2c01036cb5b6f4a3ded9c5b8c09a05deadf030b6853753865523e"}, "url": "/docs/compare/?release=11.6#11.6-e372a20584cafcef", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "71c71a9da18b3b766b2ead932528efd3", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在 pg_restore 中，将 -f - 解释为“输出到 stdout”", "evidence": {"same_day": true, "patch_ids": ["d543638e0adb6ae160d3d75e0395599c"], "statement_hash": "f582eb5274a2c01036cb5b6f4a3ded9c5b8c09a05deadf030b6853753865523e"}, "url": "/docs/compare/?release=10.11#10.11-e372a20584cafcef", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "0fb06bb61933820ce109f1fb57a07095", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 pg_restore 中，把 -f - 当作“输出到 stdout”", "evidence": {"same_day": true, "patch_ids": ["d543638e0adb6ae160d3d75e0395599c"], "statement_hash": "f582eb5274a2c01036cb5b6f4a3ded9c5b8c09a05deadf030b6853753865523e"}, "url": "/docs/compare/?release=9.5.20#9.5.20-6ec82510f60f70e9", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "17eef586257eb2b31052fd424787e1e0", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "在 pg_restore 中，把 -f - 当作“输出到 stdout”", "evidence": {"same_day": true, "patch_ids": ["d543638e0adb6ae160d3d75e0395599c"], "statement_hash": "f582eb5274a2c01036cb5b6f4a3ded9c5b8c09a05deadf030b6853753865523e"}, "url": "/docs/compare/?release=9.4.25#9.4.25-6ec82510f60f70e9", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-330be4324045f5cd", "cves": [], "html": "<p>改进 <span>pg_upgrade</span> 对使用表示已更改的数据类型（如 <code>line</code>）的检查（Tomas Vondra）</p>\n<p>原来的编码可能被所关注数据类型构成域或复合类型的存储列底层的情况所欺骗。</p>", "text": "改进 pg_upgrade 对使用表示已更改的数据类型（如 line）的检查（Tomas Vondra） 原来的编码可能被所关注数据类型构成域或复合类型的存储列底层的情况所欺骗。", "title": "改进 pg_upgrade 对使用表示已更改的数据类型（如 line）的检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "779c9e76560879b185d9f4e804c89731f23ca02aa2344dfbf09decf55d1b9971", "section_path": ["变更"], "commit_groups": [["0a643de08", "2218fdca4", "235a52ca0", "8d48e6a72", "a970b6cde", "ebb4caa91", "f57b01dd7"], ["984aa0ede", "bc3a94dc0", "e09ab32a2"], ["a524f50d0", "a8e49ae0c", "d071a2539", "e86ece221"]], "identity_text": "Improve pg_upgrade's checks for the use of a data type that has changed representation, such as line (Tomas Vondra) The previous coding could be fooled by cases where the data type of interest underlies a stored column of a domain or composite type.", "commit_aliases": ["0a643de08", "2218fdca4", "235a52ca0", "8d48e6a72", "984aa0ede", "a524f50d0", "a8e49ae0c", "a970b6cde", "bc3a94dc0", "d071a2539", "e09ab32a2", "e86ece221", "ebb4caa91", "f57b01dd7"], "source_commits": ["0a643de08", "a524f50d0", "e09ab32a2"], "source_entry_id": "9.6.16/changes/038", "db_id": "072900c922faab2411c7ca0e25dc834b", "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb", "relations": [{"rule": 2, "type": "equivalent", "target": "00e22fc3b19209ebf05ca425b9ea27ba", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}}, {"rule": 2, "type": "equivalent", "target": "c6dbec348b8c1f9ac693d8cfecf5b92e", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}}, {"rule": 2, "type": "equivalent", "target": "ca14a9b1b159c7912770289654a6f0b9", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}}, {"rule": 2, "type": "equivalent", "target": "dc3f72604090aa81b343e5c1103d3d82", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}}, {"rule": 2, "type": "equivalent", "target": "f5f7037586fa92a8bf4ff4d15a9afea2", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "00e22fc3b19209ebf05ca425b9ea27ba", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "改进 pg_upgrade 对使用了表示形式已变更的数据类型（如 line）的检查", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}, "url": "/docs/compare/?release=12.1#12.1-3bb64889a255ec2b", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "c6dbec348b8c1f9ac693d8cfecf5b92e", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "改进 pg_upgrade 对使用了表示形式已变更的数据类型（如 line）的检查", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}, "url": "/docs/compare/?release=11.6#11.6-32c01997a9104b98", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "dc3f72604090aa81b343e5c1103d3d82", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "改进 pg_upgrade 对使用了表示形式已变更的数据类型（如 line）的检查", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}, "url": "/docs/compare/?release=10.11#10.11-32c01997a9104b98", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "f5f7037586fa92a8bf4ff4d15a9afea2", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "改进 pg_upgrade 对使用表示已更改的数据类型（如 line）的检查", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}, "url": "/docs/compare/?release=9.5.20#9.5.20-330be4324045f5cd", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "ca14a9b1b159c7912770289654a6f0b9", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "改进 pg_upgrade 对使用表示已更改的数据类型（如 line）的检查", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}, "url": "/docs/compare/?release=9.4.25#9.4.25-330be4324045f5cd", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-fb0478e6d5467641", "cves": [], "html": "<p>检测 <span>pg_basebackup</span> 期间的文件读取错误（Jeevan Chalke）</p>", "text": "检测 pg_basebackup 期间的文件读取错误（Jeevan Chalke）", "title": "检测 pg_basebackup 期间的文件读取错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "e4a8c865d7f49838d1cec6415d413cb112949c0a0ca70e7f21555cdf5cc6b8e0", "section_path": ["变更"], "commit_groups": [["23df88226", "286af0ce1", "61c65cce4", "62fb12d7e", "ce5542d40", "f697c6396", "fbe897134"]], "identity_text": "Detect file read errors during pg_basebackup (Jeevan Chalke)", "commit_aliases": ["23df88226", "286af0ce1", "61c65cce4", "62fb12d7e", "ce5542d40", "f697c6396", "fbe897134"], "source_commits": ["23df88226"], "source_entry_id": "9.6.16/changes/039", "db_id": "303d2ad86d113dd352d311cff972705e", "patch_ids": ["61a893d87c64c143bf77bc39db4d7181"], "statement_hash": "f87d772bb065b32875fa22f62fdb08b62afabc7444aae76fa7dd24a9054e5a53", "relations": [{"rule": 2, "type": "equivalent", "target": "258c9775688910c3b0b5f22d79157cac", "evidence": {"same_day": true, "patch_ids": ["61a893d87c64c143bf77bc39db4d7181"], "statement_hash": "f87d772bb065b32875fa22f62fdb08b62afabc7444aae76fa7dd24a9054e5a53"}}, {"rule": 2, "type": "equivalent", "target": "501bcee82b34378967ee99427d8e3f38", "evidence": {"same_day": true, "patch_ids": ["61a893d87c64c143bf77bc39db4d7181"], "statement_hash": "f87d772bb065b32875fa22f62fdb08b62afabc7444aae76fa7dd24a9054e5a53"}}, {"rule": 2, "type": "equivalent", "target": "57919907177d18a2f65b3c2618a02b5e", "evidence": {"same_day": true, "patch_ids": ["61a893d87c64c143bf77bc39db4d7181"], "statement_hash": "f87d772bb065b32875fa22f62fdb08b62afabc7444aae76fa7dd24a9054e5a53"}}, {"rule": 2, "type": "equivalent", "target": "a534d37ecfc7a597eb6d4bf090e2b440", "evidence": {"same_day": true, "patch_ids": ["61a893d87c64c143bf77bc39db4d7181"], "statement_hash": "f87d772bb065b32875fa22f62fdb08b62afabc7444aae76fa7dd24a9054e5a53"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "57919907177d18a2f65b3c2618a02b5e", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "检测 pg_basebackup 期间的文件读取错误", "evidence": {"same_day": true, "patch_ids": ["61a893d87c64c143bf77bc39db4d7181"], "statement_hash": "f87d772bb065b32875fa22f62fdb08b62afabc7444aae76fa7dd24a9054e5a53"}, "url": "/docs/compare/?release=11.6#11.6-fb0478e6d5467641", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "501bcee82b34378967ee99427d8e3f38", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "检测 pg_basebackup 期间的文件读取错误", "evidence": {"same_day": true, "patch_ids": ["61a893d87c64c143bf77bc39db4d7181"], "statement_hash": "f87d772bb065b32875fa22f62fdb08b62afabc7444aae76fa7dd24a9054e5a53"}, "url": "/docs/compare/?release=10.11#10.11-fb0478e6d5467641", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "a534d37ecfc7a597eb6d4bf090e2b440", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "检测 pg_basebackup 期间的文件读取错误", "evidence": {"same_day": true, "patch_ids": ["61a893d87c64c143bf77bc39db4d7181"], "statement_hash": "f87d772bb065b32875fa22f62fdb08b62afabc7444aae76fa7dd24a9054e5a53"}, "url": "/docs/compare/?release=9.5.20#9.5.20-fb0478e6d5467641", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "258c9775688910c3b0b5f22d79157cac", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "检测 pg_basebackup 期间的文件读取错误", "evidence": {"same_day": true, "patch_ids": ["61a893d87c64c143bf77bc39db4d7181"], "statement_hash": "f87d772bb065b32875fa22f62fdb08b62afabc7444aae76fa7dd24a9054e5a53"}, "url": "/docs/compare/?release=9.4.25#9.4.25-fb0478e6d5467641", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-9fcd805ac104ee04", "cves": [], "html": "<p>在带在线源集簇的 <span>pg_rewind</span> 中，禁用超时，与 <span>pg_dump</span> 的做法类似（Alexander Kukushkin）</p>", "text": "在带在线源集簇的 pg_rewind 中，禁用超时，与 pg_dump 的做法类似（Alexander Kukushkin）", "title": "在带在线源集簇的 pg_rewind 中，禁用超时，与 pg_dump 的做法类似", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "f0d136d0a4bb233ad40b140668d2d89f875efc183c8793f5314bdf3ad68ff0f3", "section_path": ["变更"], "commit_groups": [["19bfa15a8", "be182e4f9", "d64789e97", "e96f52443", "e9dcbc9c3", "f51006ea9"]], "identity_text": "In pg_rewind with an online source cluster, disable timeouts, much as pg_dump does (Alexander Kukushkin)", "commit_aliases": ["19bfa15a8", "be182e4f9", "d64789e97", "e96f52443", "e9dcbc9c3", "f51006ea9"], "source_commits": ["d64789e97"], "source_entry_id": "9.6.16/changes/040", "db_id": "533285da9fa100f4cfc9182a5217f430", "patch_ids": ["4e8017aa38cf803ee3d3e19dd345a30d"], "statement_hash": "4f8174b347202f73aa2c138a5d8825b210757446053462d4639bba5a341962b7", "relations": [{"rule": 2, "type": "equivalent", "target": "51af7c4fcc122c4a493725de98450d5d", "evidence": {"same_day": true, "patch_ids": ["4e8017aa38cf803ee3d3e19dd345a30d"], "statement_hash": "4f8174b347202f73aa2c138a5d8825b210757446053462d4639bba5a341962b7"}}, {"rule": 2, "type": "equivalent", "target": "8027a94d68d8215e26e2343d7b726d09", "evidence": {"same_day": true, "patch_ids": ["4e8017aa38cf803ee3d3e19dd345a30d"], "statement_hash": "4f8174b347202f73aa2c138a5d8825b210757446053462d4639bba5a341962b7"}}, {"rule": 2, "type": "equivalent", "target": "8a525dc854cf79eded68f020843d0f14", "evidence": {"same_day": true, "patch_ids": ["4e8017aa38cf803ee3d3e19dd345a30d"], "statement_hash": "4f8174b347202f73aa2c138a5d8825b210757446053462d4639bba5a341962b7"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8a525dc854cf79eded68f020843d0f14", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在源集群在线的情况下运行 pg_rewind 时，像 pg_dump 那样禁用超时", "evidence": {"same_day": true, "patch_ids": ["4e8017aa38cf803ee3d3e19dd345a30d"], "statement_hash": "4f8174b347202f73aa2c138a5d8825b210757446053462d4639bba5a341962b7"}, "url": "/docs/compare/?release=11.6#11.6-f36ec9cf1ef4a68a", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "8027a94d68d8215e26e2343d7b726d09", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在源集群在线的情况下运行 pg_rewind 时，像 pg_dump 那样禁用超时", "evidence": {"same_day": true, "patch_ids": ["4e8017aa38cf803ee3d3e19dd345a30d"], "statement_hash": "4f8174b347202f73aa2c138a5d8825b210757446053462d4639bba5a341962b7"}, "url": "/docs/compare/?release=10.11#10.11-f36ec9cf1ef4a68a", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "51af7c4fcc122c4a493725de98450d5d", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在带在线源集簇的 pg_rewind 中，禁用超时，与 pg_dump 的做法类似", "evidence": {"same_day": true, "patch_ids": ["4e8017aa38cf803ee3d3e19dd345a30d"], "statement_hash": "4f8174b347202f73aa2c138a5d8825b210757446053462d4639bba5a341962b7"}, "url": "/docs/compare/?release=9.5.20#9.5.20-9fcd805ac104ee04", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "9.6.16-cdcc327d2292fd7b", "cves": [], "html": "<p>修复 <span>pg_waldump</span> 使用 <code>-s</code> 选项且延续 WAL 记录恰好在页边界结束时失败的问题（Andrey Lepikhov）</p>", "text": "修复 pg_waldump 使用 -s 选项且延续 WAL 记录恰好在页边界结束时失败的问题（Andrey Lepikhov）", "title": "修复 pg_waldump 使用 -s 选项且延续 WAL 记录恰好在页边界结束时失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "fe96d5bb3adf06b50d9becc2e0d8d97aa68ca43e4ed16f4302d282f11eeaffbc", "section_path": ["变更"], "commit_groups": [["127ad57f5", "1accf9974", "a0c96856e", "aa7cd6a8e", "b1bebc2ce", "e5cfb8cbb", "fb53c4c07"]], "identity_text": "Fix failure in pg_waldump with the -s option, when a continuation WAL record ends exactly at a page boundary (Andrey Lepikhov)", "commit_aliases": ["127ad57f5", "1accf9974", "a0c96856e", "aa7cd6a8e", "b1bebc2ce", "e5cfb8cbb", "fb53c4c07"], "source_commits": ["aa7cd6a8e"], "source_entry_id": "9.6.16/changes/041", "db_id": "e110397ffcad28e37fd7a3608aa6799f", "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272", "relations": [{"rule": 2, "type": "equivalent", "target": "2369fe2c2a869184066de21b760a4519", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}}, {"rule": 2, "type": "equivalent", "target": "4970c4c81427d42399ce716c0f0f4018", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}}, {"rule": 2, "type": "equivalent", "target": "574a674aabeb09a243b13790922c5efa", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}}, {"rule": 2, "type": "equivalent", "target": "a2dc04935e730e361e88365cbe325fda", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}}, {"rule": 2, "type": "equivalent", "target": "c1c6b5f65ea570a78790482b40d232d5", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c1c6b5f65ea570a78790482b40d232d5", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "修复使用 -s 选项时，延续的 WAL 记录恰好在页面边界处结束导致 pg_waldump 失败的问题", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}, "url": "/docs/compare/?release=12.1#12.1-fe030c8bef799a16", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "a2dc04935e730e361e88365cbe325fda", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复使用 -s 选项时，延续的 WAL 记录恰好在页面边界处结束导致 pg_waldump 失败的问题", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}, "url": "/docs/compare/?release=11.6#11.6-f944d1f887e85779", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "2369fe2c2a869184066de21b760a4519", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复使用 -s 选项时，延续的 WAL 记录恰好在页面边界处结束导致 pg_waldump 失败的问题", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}, "url": "/docs/compare/?release=10.11#10.11-f944d1f887e85779", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "574a674aabeb09a243b13790922c5efa", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 pg_waldump 使用 -s 选项且延续 WAL 记录恰好在页边界结束时失败的问题", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}, "url": "/docs/compare/?release=9.5.20#9.5.20-cdcc327d2292fd7b", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "4970c4c81427d42399ce716c0f0f4018", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 pg_waldump 使用 -s 选项且延续 WAL 记录恰好在页边界结束时失败的问题", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}, "url": "/docs/compare/?release=9.4.25#9.4.25-cdcc327d2292fd7b", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-15fc29225172e94e", "cves": [], "html": "<p>在 <span>pg_waldump</span> 中，在 btree 页分裂记录中包含 <code>newitemoff</code> 字段（Peter Geoghegan）</p>", "text": "在 pg_waldump 中，在 btree 页分裂记录中包含 newitemoff 字段（Peter Geoghegan）", "title": "在 pg_waldump 中，在 btree 页分裂记录中包含 newitemoff 字段", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "e44051237ca507ba06eafc38e8704812014f8028f062c0e49af001e366f5acdd", "section_path": ["变更"], "commit_groups": [["09b236af9", "3097a0d6e", "3b6b54f17", "835646503", "9064cc139", "e87b00b5f"]], "identity_text": "In pg_waldump, include the newitemoff field in btree page split records (Peter Geoghegan)", "commit_aliases": ["09b236af9", "3097a0d6e", "3b6b54f17", "835646503", "9064cc139", "e87b00b5f"], "source_commits": ["835646503"], "source_entry_id": "9.6.16/changes/042", "db_id": "c523a3ad20f443a9f3d13558c9edb273", "patch_ids": ["b679f0d84ac40786ae307ebce39bd67b"], "statement_hash": "9e255a30cba08db761c28c8448b71fcd2f2d3af59e94c824f62d87882bfc73b8", "relations": [{"rule": 2, "type": "equivalent", "target": "3e455a1cbc939fb5a372bbffb9baa9ee", "evidence": {"same_day": true, "patch_ids": ["b679f0d84ac40786ae307ebce39bd67b"], "statement_hash": "9e255a30cba08db761c28c8448b71fcd2f2d3af59e94c824f62d87882bfc73b8"}}, {"rule": 2, "type": "equivalent", "target": "403cf45860599ba21feee5d83ec5d117", "evidence": {"same_day": true, "patch_ids": ["b679f0d84ac40786ae307ebce39bd67b"], "statement_hash": "9e255a30cba08db761c28c8448b71fcd2f2d3af59e94c824f62d87882bfc73b8"}}, {"rule": 2, "type": "equivalent", "target": "a3f520b463db17f39fbb10257a49ab83", "evidence": {"same_day": true, "patch_ids": ["b679f0d84ac40786ae307ebce39bd67b"], "statement_hash": "9e255a30cba08db761c28c8448b71fcd2f2d3af59e94c824f62d87882bfc73b8"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3e455a1cbc939fb5a372bbffb9baa9ee", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在 pg_waldump 中，将 newitemoff 字段包含在 B-树页面分裂记录中", "evidence": {"same_day": true, "patch_ids": ["b679f0d84ac40786ae307ebce39bd67b"], "statement_hash": "9e255a30cba08db761c28c8448b71fcd2f2d3af59e94c824f62d87882bfc73b8"}, "url": "/docs/compare/?release=11.6#11.6-b056f9508c10af26", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "a3f520b463db17f39fbb10257a49ab83", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在 pg_waldump 中，将 newitemoff 字段包含在 B-树页面分裂记录中", "evidence": {"same_day": true, "patch_ids": ["b679f0d84ac40786ae307ebce39bd67b"], "statement_hash": "9e255a30cba08db761c28c8448b71fcd2f2d3af59e94c824f62d87882bfc73b8"}, "url": "/docs/compare/?release=10.11#10.11-b056f9508c10af26", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "403cf45860599ba21feee5d83ec5d117", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 pg_waldump 中，在 btree 页分裂记录中包含 newitemoff 字段", "evidence": {"same_day": true, "patch_ids": ["b679f0d84ac40786ae307ebce39bd67b"], "statement_hash": "9e255a30cba08db761c28c8448b71fcd2f2d3af59e94c824f62d87882bfc73b8"}, "url": "/docs/compare/?release=9.5.20#9.5.20-15fc29225172e94e", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "9.6.16-703092ca61cbd873", "cves": [], "html": "<p>在 <span>pg_waldump</span> 使用 <code>--bkp-details</code> 选项时，避免为涉及整页写入的 WAL 记录输出多余换行（Andres Freund）</p>", "text": "在 pg_waldump 使用 --bkp-details 选项时，避免为涉及整页写入的 WAL 记录输出多余换行（Andres Freund）", "title": "在 pg_waldump 使用 --bkp-details 选项时，避免为涉及整页写入的 WAL 记录输出多余换行", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "7135f047b08947ca0a86472c8ca90b8d820da4873a3bdff60dee8ca69a5cd34c", "section_path": ["变更"], "commit_groups": [["39ff656a4", "3b24cf732", "82200115e", "bc4f56c18", "d4b5206b2", "e4d92126f"]], "identity_text": "In pg_waldump with the --bkp-details option, avoid emitting extra newlines for WAL records involving full-page writes (Andres Freund)", "commit_aliases": ["39ff656a4", "3b24cf732", "82200115e", "bc4f56c18", "d4b5206b2", "e4d92126f"], "source_commits": ["bc4f56c18"], "source_entry_id": "9.6.16/changes/043", "db_id": "fb99b80b398327ae1c20cc6ea034ca09", "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe", "relations": [{"rule": 2, "type": "equivalent", "target": "0ddb02cd224fddc4143cc8006506daa7", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}}, {"rule": 2, "type": "equivalent", "target": "39a40a49fbfc72bf4e2832f9482e8b98", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}}, {"rule": 2, "type": "equivalent", "target": "85bd35d0a4872ff79b6f95987143b35a", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}}, {"rule": 2, "type": "equivalent", "target": "fa7ad1b2c24010480c51f3d6c8be8177", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa7ad1b2c24010480c51f3d6c8be8177", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "在使用 --bkp-details 选项的 pg_waldump 中，避免为涉及整页写入的 WAL 记录输出多余换行", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}, "url": "/docs/compare/?release=12.1#12.1-802ccc60cd2e6372", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "0ddb02cd224fddc4143cc8006506daa7", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在使用 --bkp-details 选项的 pg_waldump 中，避免为涉及整页写入的 WAL 记录输出多余换行", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}, "url": "/docs/compare/?release=11.6#11.6-87aa18b745d498ab", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "85bd35d0a4872ff79b6f95987143b35a", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在使用 --bkp-details 选项的 pg_waldump 中，避免为涉及整页写入的 WAL 记录输出多余换行", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}, "url": "/docs/compare/?release=10.11#10.11-87aa18b745d498ab", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "39a40a49fbfc72bf4e2832f9482e8b98", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 pg_waldump 使用 --bkp-details 选项时，避免为涉及整页写入的 WAL 记录输出多余换行", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}, "url": "/docs/compare/?release=9.5.20#9.5.20-703092ca61cbd873", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "9.6.16-378787a10a1c8093", "cves": [], "html": "<p>修复 <span>pg_waldump</span> 中的小内存泄漏（Andres Freund）</p>", "text": "修复 pg_waldump 中的小内存泄漏（Andres Freund）", "title": "修复 pg_waldump 中的小内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "d8fbd6cdc8f670f43191a048db198f69b88e1599911edc7c5abdd6d2f27371f7", "section_path": ["变更"], "commit_groups": [["4ab353c47", "95f2efd50", "af67aee69", "c3882f8b8", "e0f76f204", "e3ff8c360"]], "identity_text": "Fix small memory leak in pg_waldump (Andres Freund)", "commit_aliases": ["4ab353c47", "95f2efd50", "af67aee69", "c3882f8b8", "e0f76f204", "e3ff8c360"], "source_commits": ["95f2efd50"], "source_entry_id": "9.6.16/changes/044", "db_id": "b16a64bdaeba1cc341e7fd8a07edced3", "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513", "relations": [{"rule": 2, "type": "equivalent", "target": "004531c58099418b981264409ffab976", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}}, {"rule": 2, "type": "equivalent", "target": "1460ba3faf2cd8d16684769788c3075a", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}}, {"rule": 2, "type": "equivalent", "target": "3872e4058f1918ff68c2e88e1098e7b4", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}}, {"rule": 2, "type": "equivalent", "target": "bebccf73c4af811901025375ccdfbebd", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bebccf73c4af811901025375ccdfbebd", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "修复 pg_waldump 中少量的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}, "url": "/docs/compare/?release=12.1#12.1-cd3ed8b41b409a46", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "1460ba3faf2cd8d16684769788c3075a", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 pg_waldump 中少量的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}, "url": "/docs/compare/?release=11.6#11.6-107c61d847951e1e", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "3872e4058f1918ff68c2e88e1098e7b4", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 pg_waldump 中少量的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}, "url": "/docs/compare/?release=10.11#10.11-107c61d847951e1e", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "004531c58099418b981264409ffab976", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 pg_waldump 中的小内存泄漏", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}, "url": "/docs/compare/?release=9.5.20#9.5.20-378787a10a1c8093", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "9.6.16-e8f8da81e98c88f1", "cves": [], "html": "<p>修复 <span>vacuumdb</span> 使用高 <code>--jobs</code> 选项时更好地处理文件描述符耗尽（Michael Paquier）</p>", "text": "修复 vacuumdb 使用高 --jobs 选项时更好地处理文件描述符耗尽（Michael Paquier）", "title": "修复 vacuumdb 使用高 --jobs 选项时更好地处理文件描述符耗尽", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "2f435d7c50ecf42b3ef2a7fbdd015d98dd9dc9f9b05a8d7e2d87fdaf1621870b", "section_path": ["变更"], "commit_groups": [["128e9b2cc", "4ed3bda49", "9acda7311", "b783a38d4", "c4d75313e", "c90096009"], ["4fca14600", "5d76c8037", "63fc3b124", "71d84efba", "a21ec1a95", "eb91b8ee6"]], "identity_text": "Fix vacuumdb with a high --jobs option to handle running out of file descriptors better (Michael Paquier)", "commit_aliases": ["128e9b2cc", "4ed3bda49", "4fca14600", "5d76c8037", "63fc3b124", "71d84efba", "9acda7311", "a21ec1a95", "b783a38d4", "c4d75313e", "c90096009", "eb91b8ee6"], "source_commits": ["c4d75313e", "eb91b8ee6"], "source_entry_id": "9.6.16/changes/045", "db_id": "f511a4ea60ae6a075092667b2059f583", "patch_ids": ["c3f3a775e676b559520deced6eea4ed4", "e9c716bf1bfb3121f5ec57ce893acc6d"], "statement_hash": "6cb2a92830040f6bef7e2b66a9f739318e4667aefd9c0193b3a76c6ed40700f9", "relations": [{"rule": 2, "type": "equivalent", "target": "cea4d74b65737d9103f3794aad233eac", "evidence": {"same_day": true, "patch_ids": ["c3f3a775e676b559520deced6eea4ed4", "e9c716bf1bfb3121f5ec57ce893acc6d"], "statement_hash": "6cb2a92830040f6bef7e2b66a9f739318e4667aefd9c0193b3a76c6ed40700f9"}}, {"rule": 2, "type": "equivalent", "target": "dd7f34dc5e2263394e3b9aba4d171aca", "evidence": {"same_day": true, "patch_ids": ["c3f3a775e676b559520deced6eea4ed4", "e9c716bf1bfb3121f5ec57ce893acc6d"], "statement_hash": "6cb2a92830040f6bef7e2b66a9f739318e4667aefd9c0193b3a76c6ed40700f9"}}, {"rule": 2, "type": "equivalent", "target": "f4acaa57dec02b43c38d5c42506ca9d0", "evidence": {"same_day": true, "patch_ids": ["c3f3a775e676b559520deced6eea4ed4", "e9c716bf1bfb3121f5ec57ce893acc6d"], "statement_hash": "6cb2a92830040f6bef7e2b66a9f739318e4667aefd9c0193b3a76c6ed40700f9"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f4acaa57dec02b43c38d5c42506ca9d0", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复设置了较高 --jobs 值的 vacuumdb，使其更妥善地处理文件描述符耗尽的情况", "evidence": {"same_day": true, "patch_ids": ["c3f3a775e676b559520deced6eea4ed4", "e9c716bf1bfb3121f5ec57ce893acc6d"], "statement_hash": "6cb2a92830040f6bef7e2b66a9f739318e4667aefd9c0193b3a76c6ed40700f9"}, "url": "/docs/compare/?release=11.6#11.6-eff789fdf9aea564", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "dd7f34dc5e2263394e3b9aba4d171aca", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复设置了较高 --jobs 值的 vacuumdb，使其更妥善地处理文件描述符耗尽的情况", "evidence": {"same_day": true, "patch_ids": ["c3f3a775e676b559520deced6eea4ed4", "e9c716bf1bfb3121f5ec57ce893acc6d"], "statement_hash": "6cb2a92830040f6bef7e2b66a9f739318e4667aefd9c0193b3a76c6ed40700f9"}, "url": "/docs/compare/?release=10.11#10.11-eff789fdf9aea564", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "cea4d74b65737d9103f3794aad233eac", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 vacuumdb 使用高 --jobs 选项时更好地处理文件描述符耗尽", "evidence": {"same_day": true, "patch_ids": ["c3f3a775e676b559520deced6eea4ed4", "e9c716bf1bfb3121f5ec57ce893acc6d"], "statement_hash": "6cb2a92830040f6bef7e2b66a9f739318e4667aefd9c0193b3a76c6ed40700f9"}, "url": "/docs/compare/?release=9.5.20#9.5.20-e8f8da81e98c88f1", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "9.6.16-059f1bbda100d67f", "cves": [], "html": "<p>修复 <code>contrib/intarray</code> 的 GiST 操作符类在空数组使用 <code>&lt;@</code> 时不失败的问题（Tom Lane）</p>\n<p>像 <code><em><code>array_column</code></em> &lt;@ <em><code>constant_array</code></em></code> 这样的子句被认为可索引，但索引搜索可能找不到空数组值；当然，这种条目应当平凡地匹配搜索。</p>\n<p>唯一实际可向后移植的修复要求 <code>&lt;@</code> 索引搜索扫描整个索引，本补丁就是这么做的。这很不幸：这意味着查询性能可能比 plain 顺序扫描更差。</p>\n<p>性能受此更改不利影响的应用有两种选择。可以改用没有此 bug 的 GIN 索引，或者把 <code><em><code>array_column</code></em> &lt;@ <em><code>constant_array</code></em></code> 替换为 <code><em><code>array_column</code></em> &lt;@ <em><code>constant_array</code></em> AND <em><code>array_column</code></em> &amp;&amp; <em><code>constant_array</code></em></code>。后者的性能与之前大致相同，并且会找到给定常数数组的所有非空子集——这本来就是以前对该查询唯一能可靠期望得到的。</p>", "text": "修复 contrib/intarray 的 GiST 操作符类在空数组使用 <@ 时不失败的问题（Tom Lane） 像 array_column <@ constant_array 这样的子句被认为可索引，但索引搜索可能找不到空数组值；当然，这种条目应当平凡地匹配搜索。 唯一实际可向后移植的修复要求 <@ 索引搜索扫描整个索引，本补丁就是这么做的。这很不幸：这意味着查询性能可能比 plain 顺序扫描更差。 性能受此更改不利影响的应用有两种选择。可以改用没有此 bug 的 GIN 索引，或者把 array_column <@ constant_array 替换为 array_column <@ constant_array AND array_column && constant_array。后者的性能与之前大致相同，并且会找到给定常数数组的所有非空子集——这本来就是以前对该查询唯一能可靠期望得到的。", "title": "修复 contrib/intarray 的 GiST 操作符类在空数组使用 <@ 时不失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "5b20dde1a7286d20e4b65e8f835c9e3d40171c2337a7e5da3780ff30e1b07fb8", "section_path": ["变更"], "commit_groups": [["113b3d903", "2f76f4182", "5b3e6c13f", "614119d00", "ced272d2d", "e519eded6", "efc77cf5f"]], "identity_text": "Fix contrib/intarray's GiST opclasses to not fail for empty arrays with <@ (Tom Lane) A clause like array_column <@ constant_array is considered indexable, but the index search may not find empty array values; of course, such entries should trivially match the search. The only practical back-patchable fix for this requires making <@ index searches scan the whole index, which is what this patch does. This is unfortunate: it means that the query performance is likely worse than a plain sequential scan would be. Applications whose performance is adversely impacted by this change have a couple of options. They could switch to a GIN index, which doesn't have this bug, or they could replace array_column <@ constant_array with array_column <@ constant_array AND array_column && constant_array. That will provide about the same performance as before, and it will find all non-empty subsets of the given constant array, which is all that could reliably be expected of the query before.", "commit_aliases": ["113b3d903", "2f76f4182", "5b3e6c13f", "614119d00", "ced272d2d", "e519eded6", "efc77cf5f"], "source_commits": ["e519eded6"], "source_entry_id": "9.6.16/changes/046", "db_id": "73e885c18b9f26670dcde44f3cce58b1", "patch_ids": ["a31fe9b8f8907f88284116f7ea7acc4a"], "statement_hash": "00dc80375dc59960aae1c99004068ad1481c61dfaff14bdf361701e252e9d80e", "relations": [{"rule": 2, "type": "equivalent", "target": "095d1b932d2c8b19ac2c80541fa441c9", "evidence": {"same_day": true, "patch_ids": ["a31fe9b8f8907f88284116f7ea7acc4a"], "statement_hash": "00dc80375dc59960aae1c99004068ad1481c61dfaff14bdf361701e252e9d80e"}}, {"rule": 2, "type": "equivalent", "target": "1c9f43f55f1b5b56c782ba572b576692", "evidence": {"same_day": true, "patch_ids": ["a31fe9b8f8907f88284116f7ea7acc4a"], "statement_hash": "00dc80375dc59960aae1c99004068ad1481c61dfaff14bdf361701e252e9d80e"}}, {"rule": 2, "type": "equivalent", "target": "3aca8549b51328708bd5a5bf23277edc", "evidence": {"same_day": true, "patch_ids": ["a31fe9b8f8907f88284116f7ea7acc4a"], "statement_hash": "00dc80375dc59960aae1c99004068ad1481c61dfaff14bdf361701e252e9d80e"}}, {"rule": 2, "type": "equivalent", "target": "85ba616e74f33ab854bbdba4c2efb25a", "evidence": {"same_day": true, "patch_ids": ["a31fe9b8f8907f88284116f7ea7acc4a"], "statement_hash": "00dc80375dc59960aae1c99004068ad1481c61dfaff14bdf361701e252e9d80e"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3aca8549b51328708bd5a5bf23277edc", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 contrib/intarray 的 GiST 操作符类，使其在空数组上使用 <@ 时不会失败", "evidence": {"same_day": true, "patch_ids": ["a31fe9b8f8907f88284116f7ea7acc4a"], "statement_hash": "00dc80375dc59960aae1c99004068ad1481c61dfaff14bdf361701e252e9d80e"}, "url": "/docs/compare/?release=11.6#11.6-5ed18192f91e54e7", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "095d1b932d2c8b19ac2c80541fa441c9", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 contrib/intarray 的 GiST 操作符类，使其在空数组上使用 <@ 时不会失败", "evidence": {"same_day": true, "patch_ids": ["a31fe9b8f8907f88284116f7ea7acc4a"], "statement_hash": "00dc80375dc59960aae1c99004068ad1481c61dfaff14bdf361701e252e9d80e"}, "url": "/docs/compare/?release=10.11#10.11-5ed18192f91e54e7", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "1c9f43f55f1b5b56c782ba572b576692", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 contrib/intarray 的 GiST 操作符类在空数组使用 <@ 时不失败的问题", "evidence": {"same_day": true, "patch_ids": ["a31fe9b8f8907f88284116f7ea7acc4a"], "statement_hash": "00dc80375dc59960aae1c99004068ad1481c61dfaff14bdf361701e252e9d80e"}, "url": "/docs/compare/?release=9.5.20#9.5.20-059f1bbda100d67f", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "85ba616e74f33ab854bbdba4c2efb25a", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 contrib/intarray 的 GiST 操作符类在空数组使用 <@ 时不失败的问题", "evidence": {"same_day": true, "patch_ids": ["a31fe9b8f8907f88284116f7ea7acc4a"], "statement_hash": "00dc80375dc59960aae1c99004068ad1481c61dfaff14bdf361701e252e9d80e"}, "url": "/docs/compare/?release=9.4.25#9.4.25-059f1bbda100d67f", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-9a54c0a8e85e019e", "cves": [], "html": "<p>允许 <code>configure --with-python</code> 在只能找到 <code>python3</code> 或只能找到 <code>python2</code> 时成功（Peter Eisentraut、Tom Lane）</p>\n<p>先搜索 <code>python</code>，再搜索 <code>python3</code>，再搜索 <code>python2</code>，使 <span>configure</span> 在没有名为 <code>python</code> 的可执行文件这一日益常见的情况下也能成功。仍然可以通过设置 <code>PYTHON</code> 环境变量覆盖这一选择。</p>", "text": "允许 configure --with-python 在只能找到 python3 或只能找到 python2 时成功（Peter Eisentraut、Tom Lane） 先搜索 python，再搜索 python3，再搜索 python2，使 configure 在没有名为 python 的可执行文件这一日益常见的情况下也能成功。仍然可以通过设置 PYTHON 环境变量覆盖这一选择。", "title": "允许 configure --with-python 在只能找到 python3 或只能找到 python2 时成功", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "1c0c4abba217aaa76a382ebfc49f1901740d4c2bcce14c4f06b5dd66c64d9856", "section_path": ["变更"], "commit_groups": [["96db9d5e2", "984ee0f6d", "f1a9abe61"]], "identity_text": "Allow configure --with-python to succeed when only python3 or only python2 can be found (Peter Eisentraut, Tom Lane) Search for python, then python3, then python2, so that configure can succeed in the increasingly-more-common situation where there is no executable named simply python. It's still possible to override this choice by setting the PYTHON environment variable.", "commit_aliases": ["96db9d5e2", "984ee0f6d", "f1a9abe61"], "source_commits": ["984ee0f6d"], "source_entry_id": "9.6.16/changes/047", "db_id": "57f02b51b8d7f7427037ab5b1ef0526b", "patch_ids": ["67e39a6692bba2774bdcd45ec25628cc"], "statement_hash": "0b6ed230208cb419a97099405b5fd274b68c6581e22964080fe9d5022dfb7076", "relations": [{"rule": 2, "type": "equivalent", "target": "402012e19ec0ab9ed28e6b4682d0dc8c", "evidence": {"same_day": true, "patch_ids": ["67e39a6692bba2774bdcd45ec25628cc"], "statement_hash": "0b6ed230208cb419a97099405b5fd274b68c6581e22964080fe9d5022dfb7076"}}, {"rule": 2, "type": "equivalent", "target": "5d3feaf75fa18f816dca6ddded915455", "evidence": {"same_day": true, "patch_ids": ["67e39a6692bba2774bdcd45ec25628cc"], "statement_hash": "0b6ed230208cb419a97099405b5fd274b68c6581e22964080fe9d5022dfb7076"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5d3feaf75fa18f816dca6ddded915455", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "允许 configure --with-python 在只能找到 python3 或只能找到 python2 时成功", "evidence": {"same_day": true, "patch_ids": ["67e39a6692bba2774bdcd45ec25628cc"], "statement_hash": "0b6ed230208cb419a97099405b5fd274b68c6581e22964080fe9d5022dfb7076"}, "url": "/docs/compare/?release=9.5.20#9.5.20-9a54c0a8e85e019e", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "402012e19ec0ab9ed28e6b4682d0dc8c", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "允许 configure --with-python 在只能找到 python3 或只能找到 python2 时成功", "evidence": {"same_day": true, "patch_ids": ["67e39a6692bba2774bdcd45ec25628cc"], "statement_hash": "0b6ed230208cb419a97099405b5fd274b68c6581e22964080fe9d5022dfb7076"}, "url": "/docs/compare/?release=9.4.25#9.4.25-9a54c0a8e85e019e", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-4b66ce1846ba7cfe", "cves": [], "html": "<p>修复 <span>configure</span> 的 libperl 存在性测试，使其在最近的 Red Hat 版本上工作（Tom Lane）</p>\n<p>此前，如果用户把 <code>CFLAGS</code> 设为 <code>-O0</code>，它可能失败。</p>", "text": "修复 configure 的 libperl 存在性测试，使其在最近的 Red Hat 版本上工作（Tom Lane） 此前，如果用户把 CFLAGS 设为 -O0，它可能失败。", "title": "修复 configure 的 libperl 存在性测试，使其在最近的 Red Hat 版本上工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "162e3f4919732025e8b946406a88af63616bf54c4e4058b1f024ae346f5e831b", "section_path": ["变更"], "commit_groups": [["11330c311", "44273ce4f", "62ca50ad7", "727c2ccfe", "99c51d5ed", "aa5bb828a", "e167b1ae3"], ["328b81348", "34621cb12", "4e19bd41d", "6d2b18d07", "8835e0bd4", "ca658c91a", "d995fd667"]], "identity_text": "Fix configure's test for presence of libperl so that it works on recent Red Hat releases (Tom Lane) Previously, it could fail if the user sets CFLAGS to -O0.", "commit_aliases": ["11330c311", "328b81348", "34621cb12", "44273ce4f", "4e19bd41d", "62ca50ad7", "6d2b18d07", "727c2ccfe", "8835e0bd4", "99c51d5ed", "aa5bb828a", "ca658c91a", "d995fd667", "e167b1ae3"], "source_commits": ["34621cb12", "62ca50ad7"], "source_entry_id": "9.6.16/changes/048", "db_id": "212dc5fe34c06a25c876b16b320e5689", "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451", "relations": [{"rule": 2, "type": "equivalent", "target": "25d5d7c59f2689f4c06c495b36e8d802", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}}, {"rule": 2, "type": "equivalent", "target": "725903f3b8afeb5774cf49246f3755a9", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}}, {"rule": 2, "type": "equivalent", "target": "75230e6bbe167a096994950e2e09aadf", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}}, {"rule": 2, "type": "equivalent", "target": "c7cf81b808f75cf9c89123e47accd94d", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}}, {"rule": 2, "type": "equivalent", "target": "e65a0bcc76d2449ccb89d3f468ee1eff", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e65a0bcc76d2449ccb89d3f468ee1eff", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "修复 configure 对 libperl 是否存在的测试，使其适用于近期的 Red Hat 发行版", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}, "url": "/docs/compare/?release=12.1#12.1-99f6039b4eeef498", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "25d5d7c59f2689f4c06c495b36e8d802", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 configure 对 libperl 是否存在的测试，使其适用于近期的 Red Hat 发行版", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}, "url": "/docs/compare/?release=11.6#11.6-dceb1e7c16b596f4", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "75230e6bbe167a096994950e2e09aadf", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 configure 对 libperl 是否存在的测试，使其适用于近期的 Red Hat 发行版", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}, "url": "/docs/compare/?release=10.11#10.11-dceb1e7c16b596f4", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "725903f3b8afeb5774cf49246f3755a9", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 configure 的 libperl 存在性测试，使其在最近的 Red Hat 版本上工作", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}, "url": "/docs/compare/?release=9.5.20#9.5.20-4b66ce1846ba7cfe", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "c7cf81b808f75cf9c89123e47accd94d", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 configure 的 libperl 存在性测试，使其在最近的 Red Hat 版本上工作", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}, "url": "/docs/compare/?release=9.4.25#9.4.25-4b66ce1846ba7cfe", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-8e03bd160d038d58", "cves": [], "html": "<p>确保 PowerPC 上自旋锁的正确代码生成（Noah Misch）</p>\n<p>原来的自旋锁编码允许编译器为一条不接受寄存器零的汇编指令选择寄存器零，导致构建失败。我们只见过一份很久以前与此 bug 匹配的报告，但它可能给尝试构建修改过的 <span>PostgreSQL</span> 代码或使用非典型编译器选项的人带来问题。</p>", "text": "确保 PowerPC 上自旋锁的正确代码生成（Noah Misch） 原来的自旋锁编码允许编译器为一条不接受寄存器零的汇编指令选择寄存器零，导致构建失败。我们只见过一份很久以前与此 bug 匹配的报告，但它可能给尝试构建修改过的 PostgreSQL 代码或使用非典型编译器选项的人带来问题。", "title": "确保 PowerPC 上自旋锁的正确代码生成", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "b227f227d9b68ad51d4d6838edcabcec579b15510d6d0dfb9d7b14910d52536e", "section_path": ["变更"], "commit_groups": [["083929372", "09d74aef3", "62e881946", "89b4d7744", "930787c7f", "af4477b00", "ef13f914e"]], "identity_text": "Ensure correct code generation for spinlocks on PowerPC (Noah Misch) The previous spinlock coding allowed the compiler to select register zero for use with an assembly instruction that does not accept that register, causing a build failure. We have seen only one long-ago report that matches this bug, but it could cause problems for people trying to build modified PostgreSQL code or use atypical compiler options.", "commit_aliases": ["083929372", "09d74aef3", "62e881946", "89b4d7744", "930787c7f", "af4477b00", "ef13f914e"], "source_commits": ["09d74aef3"], "source_entry_id": "9.6.16/changes/049", "db_id": "c4af76c82f44bec31f14ff0296b77b40", "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994", "relations": [{"rule": 2, "type": "equivalent", "target": "2aa3efae39f2f031a040399699d14a89", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}}, {"rule": 2, "type": "equivalent", "target": "2c2c8ac71213410432d41370129ec1b1", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}}, {"rule": 2, "type": "equivalent", "target": "30f686bb56c6183a946651745f6076b2", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}}, {"rule": 2, "type": "equivalent", "target": "4f9266e65955529ae7ace087cf3c8721", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}}, {"rule": 2, "type": "equivalent", "target": "7814bc4e330e8e50c0034a932fc6bed3", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "30f686bb56c6183a946651745f6076b2", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "确保为 PowerPC 上的自旋锁生成正确的代码", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}, "url": "/docs/compare/?release=12.1#12.1-afaf21c56e603ca4", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "2aa3efae39f2f031a040399699d14a89", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "确保为 PowerPC 上的自旋锁生成正确的代码", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}, "url": "/docs/compare/?release=11.6#11.6-72f6d5016fe849da", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "7814bc4e330e8e50c0034a932fc6bed3", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "确保为 PowerPC 上的自旋锁生成正确的代码", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}, "url": "/docs/compare/?release=10.11#10.11-72f6d5016fe849da", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "4f9266e65955529ae7ace087cf3c8721", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "确保 PowerPC 上自旋锁的正确代码生成", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}, "url": "/docs/compare/?release=9.5.20#9.5.20-8e03bd160d038d58", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "2c2c8ac71213410432d41370129ec1b1", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "确保 PowerPC 上自旋锁的正确代码生成", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}, "url": "/docs/compare/?release=9.4.25#9.4.25-8e03bd160d038d58", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-da78372c53ef2152", "cves": [], "html": "<p>在 PowerPC 上，避免依赖 xlc 编译器的 <code>__fetch_and_add()</code> 函数（Noah Misch）</p>\n<p>xlc 13 及更新版本以与我们的用法不兼容的方式解释该函数，导致 <span>PostgreSQL</span> 的构建不可用。改用自定义汇编代码修复。</p>", "text": "在 PowerPC 上，避免依赖 xlc 编译器的 __fetch_and_add() 函数（Noah Misch） xlc 13 及更新版本以与我们的用法不兼容的方式解释该函数，导致 PostgreSQL 的构建不可用。改用自定义汇编代码修复。", "title": "在 PowerPC 上，避免依赖 xlc 编译器的 __fetch_and_add() 函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "9459bbd09ec799e6606715f91ae680c2139bc293ad8575525f2fe31de0200b67", "section_path": ["变更"], "commit_groups": [["1c6b62a7d", "40ad42025", "75941f257", "8972ac696", "a1df9a015", "dd50f1a43"]], "identity_text": "On PowerPC, avoid depending on the xlc compiler's __fetch_and_add() function (Noah Misch) xlc 13 and newer interpret this function in a way incompatible with our usage, resulting in an unusable build of PostgreSQL. Fix by using custom assembly code instead.", "commit_aliases": ["1c6b62a7d", "40ad42025", "75941f257", "8972ac696", "a1df9a015", "dd50f1a43"], "source_commits": ["a1df9a015"], "source_entry_id": "9.6.16/changes/050", "db_id": "84b394ea4e22fd25f1ffd6ce3f30d56f", "patch_ids": ["acd5804cae78f4af7b72c30a46fa25e9"], "statement_hash": "102d6bb53b35e006907f7a36c896a75582039ff4b43c12ad7e4eddc37e127f8b", "relations": [{"rule": 2, "type": "equivalent", "target": "2ebd7e349e6e47a55b2d5a0449cdd817", "evidence": {"same_day": true, "patch_ids": ["acd5804cae78f4af7b72c30a46fa25e9"], "statement_hash": "102d6bb53b35e006907f7a36c896a75582039ff4b43c12ad7e4eddc37e127f8b"}}, {"rule": 2, "type": "equivalent", "target": "bcae758108bbe6a8c1b8f8e7e139930b", "evidence": {"same_day": true, "patch_ids": ["acd5804cae78f4af7b72c30a46fa25e9"], "statement_hash": "102d6bb53b35e006907f7a36c896a75582039ff4b43c12ad7e4eddc37e127f8b"}}, {"rule": 2, "type": "equivalent", "target": "be545406cc1bd6bfad2d55bb1793ddbd", "evidence": {"same_day": true, "patch_ids": ["acd5804cae78f4af7b72c30a46fa25e9"], "statement_hash": "102d6bb53b35e006907f7a36c896a75582039ff4b43c12ad7e4eddc37e127f8b"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2ebd7e349e6e47a55b2d5a0449cdd817", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在 PowerPC 上，避免依赖 xlc 编译器的 __fetch_and_add() 函数", "evidence": {"same_day": true, "patch_ids": ["acd5804cae78f4af7b72c30a46fa25e9"], "statement_hash": "102d6bb53b35e006907f7a36c896a75582039ff4b43c12ad7e4eddc37e127f8b"}, "url": "/docs/compare/?release=11.6#11.6-da78372c53ef2152", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "be545406cc1bd6bfad2d55bb1793ddbd", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在 PowerPC 上，避免依赖 xlc 编译器的 __fetch_and_add() 函数", "evidence": {"same_day": true, "patch_ids": ["acd5804cae78f4af7b72c30a46fa25e9"], "statement_hash": "102d6bb53b35e006907f7a36c896a75582039ff4b43c12ad7e4eddc37e127f8b"}, "url": "/docs/compare/?release=10.11#10.11-da78372c53ef2152", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "bcae758108bbe6a8c1b8f8e7e139930b", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 PowerPC 上，避免依赖 xlc 编译器的 __fetch_and_add() 函数", "evidence": {"same_day": true, "patch_ids": ["acd5804cae78f4af7b72c30a46fa25e9"], "statement_hash": "102d6bb53b35e006907f7a36c896a75582039ff4b43c12ad7e4eddc37e127f8b"}, "url": "/docs/compare/?release=9.5.20#9.5.20-da78372c53ef2152", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "9.6.16-661671e4f6b6f300", "cves": [], "html": "<p>在 AIX 上，不使用编译器选项 <code>-qsrcmsg</code>（Noah Misch）</p>\n<p>这避免了 xlc v16.1.0 的内部编译器错误，除了更改编译器错误消息的格式之外几乎没有其他后果。</p>", "text": "在 AIX 上，不使用编译器选项 -qsrcmsg（Noah Misch） 这避免了 xlc v16.1.0 的内部编译器错误，除了更改编译器错误消息的格式之外几乎没有其他后果。", "title": "在 AIX 上，不使用编译器选项 -qsrcmsg", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "39ed5724b71066b5e98f583d9e5d8f8bbc1cd1a787d88bcb595dfdce0bae3b96", "section_path": ["变更"], "commit_groups": [["3fb14cfcb", "5f3d271d0", "77cc4a595", "b705582b4", "c73f4f680", "e40eb31c0", "e5b4926ef"]], "identity_text": "On AIX, don't use the compiler option -qsrcmsg (Noah Misch) This avoids an internal compiler error with xlc v16.1.0, with little consequence other than changing the format of compiler error messages.", "commit_aliases": ["3fb14cfcb", "5f3d271d0", "77cc4a595", "b705582b4", "c73f4f680", "e40eb31c0", "e5b4926ef"], "source_commits": ["c73f4f680"], "source_entry_id": "9.6.16/changes/051", "db_id": "822c329930f6839fd4e003bb6199daad", "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c", "relations": [{"rule": 2, "type": "equivalent", "target": "416b05485065dc8bf461bb9a38cea5d5", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}}, {"rule": 2, "type": "equivalent", "target": "5ff20ba9783100b29d6a950489beaf5c", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}}, {"rule": 2, "type": "equivalent", "target": "760aa42d630d7db3ee283c2c1bf4e8a4", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}}, {"rule": 2, "type": "equivalent", "target": "d96568514755bd9c64b47ceb2569ea10", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}}, {"rule": 2, "type": "equivalent", "target": "e1709c0b2254841b5b2e038b0d095cd0", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ff20ba9783100b29d6a950489beaf5c", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "在 AIX 上不再使用编译器选项 -qsrcmsg", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}, "url": "/docs/compare/?release=12.1#12.1-95ff6454bde5ffe3", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "e1709c0b2254841b5b2e038b0d095cd0", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在 AIX 上不再使用编译器选项 -qsrcmsg", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}, "url": "/docs/compare/?release=11.6#11.6-fd088abedec41d3c", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "d96568514755bd9c64b47ceb2569ea10", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在 AIX 上不再使用编译器选项 -qsrcmsg", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}, "url": "/docs/compare/?release=10.11#10.11-fd088abedec41d3c", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "760aa42d630d7db3ee283c2c1bf4e8a4", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 AIX 上，不使用编译器选项 -qsrcmsg", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}, "url": "/docs/compare/?release=9.5.20#9.5.20-661671e4f6b6f300", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "416b05485065dc8bf461bb9a38cea5d5", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "在 AIX 上，不使用编译器选项 -qsrcmsg", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}, "url": "/docs/compare/?release=9.4.25#9.4.25-661671e4f6b6f300", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-cca0d9db341e5aeb", "cves": [], "html": "<p>修复 MSVC 构建过程以应对 OpenSSL 文件路径中的空格（Andrew Dunstan）</p>", "text": "修复 MSVC 构建过程以应对 OpenSSL 文件路径中的空格（Andrew Dunstan）", "title": "修复 MSVC 构建过程以应对 OpenSSL 文件路径中的空格", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "9c01c5e2e241ec7cb4a6e1d5766d44ff9d8a23c2a89a02a29b311832b871b86d", "section_path": ["变更"], "commit_groups": [["1e9a0487d", "3b9c22700", "62d2caed6", "6ca51b155", "8f8809091", "ad7595b89", "ec38d2311"]], "identity_text": "Fix MSVC build process to cope with spaces in the file path of OpenSSL (Andrew Dunstan)", "commit_aliases": ["1e9a0487d", "3b9c22700", "62d2caed6", "6ca51b155", "8f8809091", "ad7595b89", "ec38d2311"], "source_commits": ["1e9a0487d"], "source_entry_id": "9.6.16/changes/052", "db_id": "a6f8353053480f849627a17f462805c4", "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607", "relations": [{"rule": 2, "type": "equivalent", "target": "0893554c398dc6e15ad4901312cba282", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}}, {"rule": 2, "type": "equivalent", "target": "90f6af2221cf19865a9a78e940ca4f64", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}}, {"rule": 2, "type": "equivalent", "target": "928237d2a0d6a7f0f1d701177479ae8f", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}}, {"rule": 2, "type": "equivalent", "target": "9e8d143fba38db76992300f11c8d84f9", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}}, {"rule": 2, "type": "equivalent", "target": "b15b4c64c40679e329e5756bfde4fbd6", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}}], "version": "9.6.16", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "928237d2a0d6a7f0f1d701177479ae8f", "kind": "equivalent", "version": "12.1", "label": "12.1", "title": "修复 MSVC 构建过程，使其能够处理 OpenSSL 文件路径中的空格", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}, "url": "/docs/compare/?release=12.1#12.1-e3ccc580f9073809", "source_url": "/docs/release/12.1/#id-1.11.6.27.5"}, {"db_id": "0893554c398dc6e15ad4901312cba282", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 MSVC 构建过程，使其能够处理 OpenSSL 文件路径中的空格", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}, "url": "/docs/compare/?release=11.6#11.6-8af5f9d4642c2ecf", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "90f6af2221cf19865a9a78e940ca4f64", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 MSVC 构建过程，使其能够处理 OpenSSL 文件路径中的空格", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}, "url": "/docs/compare/?release=10.11#10.11-8af5f9d4642c2ecf", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "9e8d143fba38db76992300f11c8d84f9", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 MSVC 构建过程以应对 OpenSSL 文件路径中的空格", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}, "url": "/docs/compare/?release=9.5.20#9.5.20-cca0d9db341e5aeb", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "b15b4c64c40679e329e5756bfde4fbd6", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 MSVC 构建过程以应对 OpenSSL 文件路径中的空格", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}, "url": "/docs/compare/?release=9.4.25#9.4.25-cca0d9db341e5aeb", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "9.6.16-3df4e6cc5b21efd1", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2019c，涉及斐济和诺福克岛的夏令时法规变更，以及艾伯塔、奥地利、比利时、不列颠哥伦比亚、柬埔寨、香港、印第安纳（佩里县）、加里宁格勒、肯塔基、密歇根、诺福克岛、韩国和土耳其的历史修正。</p>", "text": "更新时区数据文件到 tzdata 版本 2019c，涉及斐济和诺福克岛的夏令时法规变更，以及艾伯塔、奥地利、比利时、不列颠哥伦比亚、柬埔寨、香港、印第安纳（佩里县）、加里宁格勒、肯塔基、密歇根、诺福克岛、韩国和土耳其的历史修正。", "title": "更新时区数据文件到 tzdata 版本 2019c，涉及斐济和诺福克岛的夏令时法规变更，以及艾伯塔、奥地利、比利时、不列颠哥伦比亚、柬埔寨、香港、印第安纳（佩里县）、加里宁格勒、肯塔基、密歇根、诺福克岛、韩国和土耳其的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5", "source_hash": "d02f73bf5785c1b98494f015c8055e45f1917ecc5c79ea4c85eb4e5055ff0cb7", "section_path": ["变更"], "commit_groups": [["0bd64398e", "128abdef7", "24f64fba0", "2966e30e5", "29e47f83c", "769802ef9", "df4fbcd89"]], "identity_text": "Update time zone data files to tzdata release 2019c for DST law changes in Fiji and Norfolk Island, plus historical corrections for Alberta, Austria, Belgium, British Columbia, Cambodia, Hong Kong, Indiana (Perry County), Kaliningrad, Kentucky, Michigan, Norfolk Island, South Korea, and Turkey.", "commit_aliases": ["0bd64398e", "128abdef7", "24f64fba0", "2966e30e5", "29e47f83c", "769802ef9", "df4fbcd89"], "source_commits": ["0bd64398e"], "source_entry_id": "9.6.16/changes/053", "db_id": "19e801c0f3b869957d5fab96c808e535", "patch_ids": ["96b1ee10cb19eac730ff645a2ba36d15"], "statement_hash": "bf411d5dcf240ec41fce05ed6b498d7ecc24166e34da9e8742cc8584e49a4938", "relations": [{"rule": 2, "type": "equivalent", "target": "5b019aeb828713edb1e7e8cca7ae1621", "evidence": {"same_day": true, "patch_ids": ["96b1ee10cb19eac730ff645a2ba36d15"], "statement_hash": "bf411d5dcf240ec41fce05ed6b498d7ecc24166e34da9e8742cc8584e49a4938"}}, {"rule": 2, "type": "equivalent", "target": "5c4afc1a6f1af55d60cf633c13667ff3", "evidence": {"same_day": true, "patch_ids": ["96b1ee10cb19eac730ff645a2ba36d15"], "statement_hash": "bf411d5dcf240ec41fce05ed6b498d7ecc24166e34da9e8742cc8584e49a4938"}}, {"rule": 2, "type": "equivalent", "target": "8394234783f7c63cdd763ddbe772912d", "evidence": {"same_day": true, "patch_ids": ["96b1ee10cb19eac730ff645a2ba36d15"], "statement_hash": "bf411d5dcf240ec41fce05ed6b498d7ecc24166e34da9e8742cc8584e49a4938"}}, {"rule": 2, "type": "equivalent", "target": "ae92e6f03f6ea389f065a100e97c9eb6", "evidence": {"same_day": true, "patch_ids": ["96b1ee10cb19eac730ff645a2ba36d15"], "statement_hash": "bf411d5dcf240ec41fce05ed6b498d7ecc24166e34da9e8742cc8584e49a4938"}}], "version": "9.6.16", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8394234783f7c63cdd763ddbe772912d", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "将时区数据文件更新到 tzdata 2019c 版，以反映斐济和诺福克岛的夏令时法规变更，并修正艾伯塔、奥地利、比利时、不列颠哥伦比亚、柬埔寨、香港、印第安纳（佩里县）、加里宁格勒、肯塔基、密歇根、诺福克岛、韩国和土耳其的历史数据。", "evidence": {"same_day": true, "patch_ids": ["96b1ee10cb19eac730ff645a2ba36d15"], "statement_hash": "bf411d5dcf240ec41fce05ed6b498d7ecc24166e34da9e8742cc8584e49a4938"}, "url": "/docs/compare/?release=11.6#11.6-1a5ed0178f1bc53f", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "ae92e6f03f6ea389f065a100e97c9eb6", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "将时区数据文件更新到 tzdata 2019c 版，以反映斐济和诺福克岛的夏令时法规变更，并修正艾伯塔、奥地利、比利时、不列颠哥伦比亚、柬埔寨、香港、印第安纳（佩里县）、加里宁格勒、肯塔基、密歇根、诺福克岛、韩国和土耳其的历史数据。", "evidence": {"same_day": true, "patch_ids": ["96b1ee10cb19eac730ff645a2ba36d15"], "statement_hash": "bf411d5dcf240ec41fce05ed6b498d7ecc24166e34da9e8742cc8584e49a4938"}, "url": "/docs/compare/?release=10.11#10.11-1a5ed0178f1bc53f", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "5b019aeb828713edb1e7e8cca7ae1621", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "更新时区数据文件到 tzdata 版本 2019c，涉及斐济和诺福克岛的夏令时法规变更，以及艾伯塔、奥地利、比利时、不列颠哥伦比亚、柬埔寨、香港、印第安纳（佩里县）、加里宁格勒、肯塔基、密歇根、诺福克岛、韩国和土耳其的历史修正。", "evidence": {"same_day": true, "patch_ids": ["96b1ee10cb19eac730ff645a2ba36d15"], "statement_hash": "bf411d5dcf240ec41fce05ed6b498d7ecc24166e34da9e8742cc8584e49a4938"}, "url": "/docs/compare/?release=9.5.20#9.5.20-3df4e6cc5b21efd1", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "5c4afc1a6f1af55d60cf633c13667ff3", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "更新时区数据文件到 tzdata 版本 2019c，涉及斐济和诺福克岛的夏令时法规变更，以及艾伯塔、奥地利、比利时、不列颠哥伦比亚、柬埔寨、香港、印第安纳（佩里县）、加里宁格勒、肯塔基、密歇根、诺福克岛、韩国和土耳其的历史修正。", "evidence": {"same_day": true, "patch_ids": ["96b1ee10cb19eac730ff645a2ba36d15"], "statement_hash": "bf411d5dcf240ec41fce05ed6b498d7ecc24166e34da9e8742cc8584e49a4938"}, "url": "/docs/compare/?release=9.4.25#9.4.25-3df4e6cc5b21efd1", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}]}, {"date": "2019-08-08", "build": "9.6.15", "major": "9.6", "minor": 15, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.15", "eol_date": "2021-11-11", "date_text": "2019-08-08", "supported": false, "manual_url": "/docs/9.6/release-9-6-15.html", "source_url": "/docs/release/9.6.15/", "entry_count": 26, "placeholder": false, "content_hash": "ba7c79535f1a3b277e3c9cb6de0b90d4f18787fa595521ee1816cf5beaf70a25", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 26, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.9 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-9.html\" title=\"E.16. 版本 9.6.9\">第 E.16 节</a>。</p>", "compatibility_count": 0, "label": "9.6.15", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2610, "support_days": -1784, "entries": [{"id": "9.6.15-a1ed66934d01ba97", "cves": ["CVE-2007-2138", "CVE-2019-10208"], "html": "<p>要求使用函数式转换语法转换到临时类型时进行模式限定（Noah Misch）</p>\n<p>我们长期以来一直要求临时函数的调用显式指定临时模式，即 <code>pg_temp.<em><code>func_name</code></em>(<em><code>args</code></em>)</code>。现在把这一要求同样应用于使用函数表示法转换到临时类型，例如 <code>pg_temp.<em><code>type_name</code></em>(<em><code>arg</code></em>)</code>。否则有可能截获使用临时对象的函数调用，从而以与我们在 CVE-2007-2138 中封堵的方式大致相同的途径实现权限提升。（CVE-2019-10208）</p>", "text": "要求使用函数式转换语法转换到临时类型时进行模式限定（Noah Misch） 我们长期以来一直要求临时函数的调用显式指定临时模式，即 pg_temp.func_name(args)。现在把这一要求同样应用于使用函数表示法转换到临时类型，例如 pg_temp.type_name(arg)。否则有可能截获使用临时对象的函数调用，从而以与我们在 CVE-2007-2138 中封堵的方式大致相同的途径实现权限提升。（CVE-2019-10208）", "title": "要求使用函数式转换语法转换到临时类型时进行模式限定", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "c4ccab8890db89c4e74d2af463dec4e5b573e7ed185e091631649a87251c5221", "section_path": ["变更"], "commit_groups": [["2062007cb", "21f94c51f", "752fa3dbf", "7da46192d", "86737438b", "9993fa9dd", "ffa2d37e5"]], "identity_text": "Require schema qualification to cast to a temporary type when using functional cast syntax (Noah Misch) We have long required invocations of temporary functions to explicitly specify the temporary schema, that is pg_temp.func_name(args). Require this as well for casting to temporary types using functional notation, for example pg_temp.type_name(arg). Otherwise it's possible to capture a function call using a temporary object, allowing privilege escalation in much the same ways that we blocked in CVE-2007-2138. (CVE-2019-10208)", "commit_aliases": ["2062007cb", "21f94c51f", "752fa3dbf", "7da46192d", "86737438b", "9993fa9dd", "ffa2d37e5"], "source_commits": ["7da46192d"], "source_entry_id": "9.6.15/changes/001", "db_id": "cbafa803ad06f9f27b4bbe75ba7c7e3f", "patch_ids": ["65b124caa944e034539f5e82e98c754f"], "statement_hash": "6301db346f6b9a542180562e62db8b1ca6afbff6d21b0956212ae4ec6f33562a", "relations": [{"rule": 2, "type": "equivalent", "target": "2e1380da5c384e9841ef99506e57154c", "evidence": {"same_day": true, "patch_ids": ["65b124caa944e034539f5e82e98c754f"], "statement_hash": "6301db346f6b9a542180562e62db8b1ca6afbff6d21b0956212ae4ec6f33562a"}}, {"rule": 2, "type": "equivalent", "target": "4ead40eb1a73d156352d6965e0c2e833", "evidence": {"same_day": true, "patch_ids": ["65b124caa944e034539f5e82e98c754f"], "statement_hash": "6301db346f6b9a542180562e62db8b1ca6afbff6d21b0956212ae4ec6f33562a"}}, {"rule": 2, "type": "equivalent", "target": "57b9b455efe831edd464a0a1b92d3638", "evidence": {"same_day": true, "patch_ids": ["65b124caa944e034539f5e82e98c754f"], "statement_hash": "6301db346f6b9a542180562e62db8b1ca6afbff6d21b0956212ae4ec6f33562a"}}, {"rule": 2, "type": "equivalent", "target": "b1483cae7422c63eb52dc92db4d84965", "evidence": {"same_day": true, "patch_ids": ["65b124caa944e034539f5e82e98c754f"], "statement_hash": "6301db346f6b9a542180562e62db8b1ca6afbff6d21b0956212ae4ec6f33562a"}}], "version": "9.6.15", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "57b9b455efe831edd464a0a1b92d3638", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "使用函数式类型转换语法转换为临时类型时，要求使用模式限定", "evidence": {"same_day": true, "patch_ids": ["65b124caa944e034539f5e82e98c754f"], "statement_hash": "6301db346f6b9a542180562e62db8b1ca6afbff6d21b0956212ae4ec6f33562a"}, "url": "/docs/compare/?release=11.5#11.5-8f9963118448ea50", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "2e1380da5c384e9841ef99506e57154c", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "使用函数式类型转换语法转换为临时类型时，要求使用模式限定", "evidence": {"same_day": true, "patch_ids": ["65b124caa944e034539f5e82e98c754f"], "statement_hash": "6301db346f6b9a542180562e62db8b1ca6afbff6d21b0956212ae4ec6f33562a"}, "url": "/docs/compare/?release=10.10#10.10-8f9963118448ea50", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "b1483cae7422c63eb52dc92db4d84965", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "要求使用函数式转换语法转换到临时类型时进行模式限定", "evidence": {"same_day": true, "patch_ids": ["65b124caa944e034539f5e82e98c754f"], "statement_hash": "6301db346f6b9a542180562e62db8b1ca6afbff6d21b0956212ae4ec6f33562a"}, "url": "/docs/compare/?release=9.5.19#9.5.19-a1ed66934d01ba97", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "4ead40eb1a73d156352d6965e0c2e833", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "要求使用函数式转换语法转换到临时类型时进行模式限定", "evidence": {"same_day": true, "patch_ids": ["65b124caa944e034539f5e82e98c754f"], "statement_hash": "6301db346f6b9a542180562e62db8b1ca6afbff6d21b0956212ae4ec6f33562a"}, "url": "/docs/compare/?release=9.4.24#9.4.24-a1ed66934d01ba97", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-1f4258d87536aec8", "cves": [], "html": "<p>修复在一条命令中更改多列类型时 <code>ALTER TABLE ... ALTER COLUMN TYPE</code> 的失败（Tom Lane）</p>\n<p>这修复了最近几个小版本中引入的回归：使用被更改列的索引未被正确处理，导致 <code>ALTER TABLE</code> 期间的奇怪失败。</p>", "text": "修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 的失败（Tom Lane） 这修复了最近几个小版本中引入的回归：使用被更改列的索引未被正确处理，导致 ALTER TABLE 期间的奇怪失败。", "title": "修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "1d64d706347e05442a6ee8a50e034a51b6cce8377262d4400f2cec149340d278", "section_path": ["变更"], "commit_groups": [["316f68932", "afaf48afb", "cb8962ce8", "da1041fc3", "ddfb1b2ee", "f946a4091"]], "identity_text": "Fix failure of ALTER TABLE ... ALTER COLUMN TYPE when altering multiple columns' types in one command (Tom Lane) This fixes a regression introduced in the most recent minor releases: indexes using the altered columns were not processed correctly, leading to strange failures during ALTER TABLE.", "commit_aliases": ["316f68932", "afaf48afb", "cb8962ce8", "da1041fc3", "ddfb1b2ee", "f946a4091"], "source_commits": ["da1041fc3"], "source_entry_id": "9.6.15/changes/002", "db_id": "991b2bf86a34a36e3324f983c91aafaf", "patch_ids": ["af42394c923a81624887434181501839"], "statement_hash": "6a040d6c69a8e031cc00505b02e82cb4539f0f61d30186a4c5a355d4e50e3433", "relations": [{"rule": 2, "type": "equivalent", "target": "2a0bca167f251b2cd29370adec7eaee3", "evidence": {"same_day": true, "patch_ids": ["af42394c923a81624887434181501839"], "statement_hash": "6a040d6c69a8e031cc00505b02e82cb4539f0f61d30186a4c5a355d4e50e3433"}}, {"rule": 2, "type": "equivalent", "target": "2bc25a84dc95a7781a44f9b4acd4cd68", "evidence": {"same_day": true, "patch_ids": ["af42394c923a81624887434181501839"], "statement_hash": "6a040d6c69a8e031cc00505b02e82cb4539f0f61d30186a4c5a355d4e50e3433"}}, {"rule": 2, "type": "equivalent", "target": "e765c1b126a0441fdebbea41fada1622", "evidence": {"same_day": true, "patch_ids": ["af42394c923a81624887434181501839"], "statement_hash": "6a040d6c69a8e031cc00505b02e82cb4539f0f61d30186a4c5a355d4e50e3433"}}, {"rule": 2, "type": "equivalent", "target": "fe9cbebe5808f24b99c7cb69f70986de", "evidence": {"same_day": true, "patch_ids": ["af42394c923a81624887434181501839"], "statement_hash": "6a040d6c69a8e031cc00505b02e82cb4539f0f61d30186a4c5a355d4e50e3433"}}], "version": "9.6.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e765c1b126a0441fdebbea41fada1622", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败", "evidence": {"same_day": true, "patch_ids": ["af42394c923a81624887434181501839"], "statement_hash": "6a040d6c69a8e031cc00505b02e82cb4539f0f61d30186a4c5a355d4e50e3433"}, "url": "/docs/compare/?release=11.5#11.5-c65a70c4a7df7c75", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "fe9cbebe5808f24b99c7cb69f70986de", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败", "evidence": {"same_day": true, "patch_ids": ["af42394c923a81624887434181501839"], "statement_hash": "6a040d6c69a8e031cc00505b02e82cb4539f0f61d30186a4c5a355d4e50e3433"}, "url": "/docs/compare/?release=10.10#10.10-c65a70c4a7df7c75", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "2bc25a84dc95a7781a44f9b4acd4cd68", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 的失败", "evidence": {"same_day": true, "patch_ids": ["af42394c923a81624887434181501839"], "statement_hash": "6a040d6c69a8e031cc00505b02e82cb4539f0f61d30186a4c5a355d4e50e3433"}, "url": "/docs/compare/?release=9.5.19#9.5.19-1f4258d87536aec8", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "2a0bca167f251b2cd29370adec7eaee3", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 的失败", "evidence": {"same_day": true, "patch_ids": ["af42394c923a81624887434181501839"], "statement_hash": "6a040d6c69a8e031cc00505b02e82cb4539f0f61d30186a4c5a355d4e50e3433"}, "url": "/docs/compare/?release=9.4.24#9.4.24-1f4258d87536aec8", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-be0f025140a423b5", "cves": [], "html": "<p>当涉及的表是继承父表时，不要优化掉 <code>GROUP BY</code> 列（David Rowley）</p>\n<p>通常，如果表的主键列包含在 <code>GROUP BY</code> 中，去掉其他分组列是安全的，因为主键列足以使分组唯一。但如果查询还读取继承子表，这条规则就不成立；父表的唯一性不会延伸到子表。</p>", "text": "当涉及的表是继承父表时，不要优化掉 GROUP BY 列（David Rowley） 通常，如果表的主键列包含在 GROUP BY 中，去掉其他分组列是安全的，因为主键列足以使分组唯一。但如果查询还读取继承子表，这条规则就不成立；父表的唯一性不会延伸到子表。", "title": "当涉及的表是继承父表时，不要优化掉 GROUP BY 列", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "f4f87d7cf8c9feda9dab4ec1ea35646e3a51a983e2abec24933e365bd6ea6a8d", "section_path": ["变更"], "commit_groups": [["0cce43a71", "133f5ae21", "232019b79", "388d05a5e", "a5be4062f"]], "identity_text": "Don't optimize away GROUP BY columns when the table involved is an inheritance parent (David Rowley) Normally, if a table's primary key column(s) are included in GROUP BY, it's safe to drop any other grouping columns, since the primary key columns are enough to make the groups unique. This rule does not work if the query is also reading inheritance child tables, though; the parent's uniqueness does not extend to the children.", "commit_aliases": ["0cce43a71", "133f5ae21", "232019b79", "388d05a5e", "a5be4062f"], "source_commits": ["388d05a5e"], "source_entry_id": "9.6.15/changes/003", "db_id": "d698ff7be2278e6c617a89ffa04c1ec3", "patch_ids": ["1650b13cb9a86bb00d51af688c7643d0"], "statement_hash": "2689110888ae1ef0c5808367c502a208c2428da7f4c94bef2a0cb3131a3c6538", "relations": [{"rule": 2, "type": "equivalent", "target": "3af8b0d644148d238bea793f6d1861a8", "evidence": {"same_day": true, "patch_ids": ["1650b13cb9a86bb00d51af688c7643d0"], "statement_hash": "2689110888ae1ef0c5808367c502a208c2428da7f4c94bef2a0cb3131a3c6538"}}, {"rule": 2, "type": "equivalent", "target": "5d7245e67a13b4a2e9b7e3e2adf70cfd", "evidence": {"same_day": true, "patch_ids": ["1650b13cb9a86bb00d51af688c7643d0"], "statement_hash": "2689110888ae1ef0c5808367c502a208c2428da7f4c94bef2a0cb3131a3c6538"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5d7245e67a13b4a2e9b7e3e2adf70cfd", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "当涉及的表是继承父表时，不要通过优化移除 GROUP BY 列", "evidence": {"same_day": true, "patch_ids": ["1650b13cb9a86bb00d51af688c7643d0"], "statement_hash": "2689110888ae1ef0c5808367c502a208c2428da7f4c94bef2a0cb3131a3c6538"}, "url": "/docs/compare/?release=11.5#11.5-e8caa213a75bc90a", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "3af8b0d644148d238bea793f6d1861a8", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "当涉及的表是继承父表时，不要通过优化移除 GROUP BY 列", "evidence": {"same_day": true, "patch_ids": ["1650b13cb9a86bb00d51af688c7643d0"], "statement_hash": "2689110888ae1ef0c5808367c502a208c2428da7f4c94bef2a0cb3131a3c6538"}, "url": "/docs/compare/?release=10.10#10.10-e8caa213a75bc90a", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}]}, {"id": "9.6.15-7218b1a18f57745a", "cves": [], "html": "<p>避免对某些带 <code>GROUPING SETS</code> 的查询使用不必要的排序步骤（Andrew Gierth、Richard Guo）</p>", "text": "避免对某些带 GROUPING SETS 的查询使用不必要的排序步骤（Andrew Gierth、Richard Guo）", "title": "避免对某些带 GROUPING SETS 的查询使用不必要的排序步骤", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "60db142764cdabb9c61aee898b79c24f78c04ff84dbac1367748fdf2cc1e89c2", "section_path": ["变更"], "commit_groups": [["05dc5f476", "4a36c7715", "793eb94e3", "a1637caee", "da53be23d"]], "identity_text": "Avoid using unnecessary sort steps for some queries with GROUPING SETS (Andrew Gierth, Richard Guo)", "commit_aliases": ["05dc5f476", "4a36c7715", "793eb94e3", "a1637caee", "da53be23d"], "source_commits": ["793eb94e3"], "source_entry_id": "9.6.15/changes/004", "db_id": "b379a4d94b14817bdc156d57edb5487b", "patch_ids": ["9b0b0afd1a9ed387cd3721101e8fcb75"], "statement_hash": "95fa91a68d33f1db4e9c9d1158bde37ddef4f1ab205fe884335eef65f5698515", "relations": [{"rule": 2, "type": "equivalent", "target": "7bf72be70b5027f16e1dc604fe2d36d1", "evidence": {"same_day": true, "patch_ids": ["9b0b0afd1a9ed387cd3721101e8fcb75"], "statement_hash": "95fa91a68d33f1db4e9c9d1158bde37ddef4f1ab205fe884335eef65f5698515"}}, {"rule": 2, "type": "equivalent", "target": "aca8ce87760950b6cec302c3f2aa05cd", "evidence": {"same_day": true, "patch_ids": ["9b0b0afd1a9ed387cd3721101e8fcb75"], "statement_hash": "95fa91a68d33f1db4e9c9d1158bde37ddef4f1ab205fe884335eef65f5698515"}}, {"rule": 2, "type": "equivalent", "target": "c1d21675549f456e6f8172319ff52b23", "evidence": {"same_day": true, "patch_ids": ["9b0b0afd1a9ed387cd3721101e8fcb75"], "statement_hash": "95fa91a68d33f1db4e9c9d1158bde37ddef4f1ab205fe884335eef65f5698515"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c1d21675549f456e6f8172319ff52b23", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "避免在某些带有 GROUPING SETS 的查询中使用不必要的排序步骤", "evidence": {"same_day": true, "patch_ids": ["9b0b0afd1a9ed387cd3721101e8fcb75"], "statement_hash": "95fa91a68d33f1db4e9c9d1158bde37ddef4f1ab205fe884335eef65f5698515"}, "url": "/docs/compare/?release=11.5#11.5-b2c1f5096b58865c", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "aca8ce87760950b6cec302c3f2aa05cd", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "避免在某些带有 GROUPING SETS 的查询中使用不必要的排序步骤", "evidence": {"same_day": true, "patch_ids": ["9b0b0afd1a9ed387cd3721101e8fcb75"], "statement_hash": "95fa91a68d33f1db4e9c9d1158bde37ddef4f1ab205fe884335eef65f5698515"}, "url": "/docs/compare/?release=10.10#10.10-b2c1f5096b58865c", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "7bf72be70b5027f16e1dc604fe2d36d1", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "避免对某些带 GROUPING SETS 的查询使用不必要的排序步骤", "evidence": {"same_day": true, "patch_ids": ["9b0b0afd1a9ed387cd3721101e8fcb75"], "statement_hash": "95fa91a68d33f1db4e9c9d1158bde37ddef4f1ab205fe884335eef65f5698515"}, "url": "/docs/compare/?release=9.5.19#9.5.19-7218b1a18f57745a", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}]}, {"id": "9.6.15-c8a48d7ce92fcc3d", "cves": [], "html": "<p>修复重建外键约束时多列外键的处理不当（Tom Lane）</p>\n<p>如果键的所有列不都是同一类型，<code>ALTER TABLE</code> 可能对是否需要重新验证外键做出错误决定。看来该错误的方向总是保守的，即不必要地重新验证。</p>", "text": "修复重建外键约束时多列外键的处理不当（Tom Lane） 如果键的所有列不都是同一类型，ALTER TABLE 可能对是否需要重新验证外键做出错误决定。看来该错误的方向总是保守的，即不必要地重新验证。", "title": "修复重建外键约束时多列外键的处理不当", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "763b4c728bf503c95a667ae199b76e22ba0797780e01ebf86d9a1be7b9343cec", "section_path": ["变更"], "commit_groups": [["3093eb2b8", "46e2a18d0", "583025c3c", "67bd6adcb", "a6e7eb42d", "e0d13dc6f", "f9208f246"]], "identity_text": "Fix mishandling of multi-column foreign keys when rebuilding a foreign key constraint (Tom Lane) ALTER TABLE could make an incorrect decision about whether revalidation of a foreign key is necessary, if not all columns of the key are of the same type. It seems likely that the error would always have been in the conservative direction, that is revalidating unnecessarily.", "commit_aliases": ["3093eb2b8", "46e2a18d0", "583025c3c", "67bd6adcb", "a6e7eb42d", "e0d13dc6f", "f9208f246"], "source_commits": ["a6e7eb42d"], "source_entry_id": "9.6.15/changes/005", "db_id": "547a9e601081a21eba115551e7181b39", "patch_ids": ["e2182a026bceaaf4b5503fe32395729e"], "statement_hash": "89f3fed3ac2dc8f5b25ba7314fcf4f5db75733178068d72305670139d7e1b3b0", "relations": [{"rule": 2, "type": "equivalent", "target": "540cf144bc454fe55e5093cc306867d3", "evidence": {"same_day": true, "patch_ids": ["e2182a026bceaaf4b5503fe32395729e"], "statement_hash": "89f3fed3ac2dc8f5b25ba7314fcf4f5db75733178068d72305670139d7e1b3b0"}}, {"rule": 2, "type": "equivalent", "target": "8df47d5cf36018f32aeb1d09d5b455df", "evidence": {"same_day": true, "patch_ids": ["e2182a026bceaaf4b5503fe32395729e"], "statement_hash": "89f3fed3ac2dc8f5b25ba7314fcf4f5db75733178068d72305670139d7e1b3b0"}}, {"rule": 2, "type": "equivalent", "target": "b7fd32db17d9c47e575183542eccac90", "evidence": {"same_day": true, "patch_ids": ["e2182a026bceaaf4b5503fe32395729e"], "statement_hash": "89f3fed3ac2dc8f5b25ba7314fcf4f5db75733178068d72305670139d7e1b3b0"}}, {"rule": 2, "type": "equivalent", "target": "c6739c68f9b1734a690345cfc948c4e4", "evidence": {"same_day": true, "patch_ids": ["e2182a026bceaaf4b5503fe32395729e"], "statement_hash": "89f3fed3ac2dc8f5b25ba7314fcf4f5db75733178068d72305670139d7e1b3b0"}}], "version": "9.6.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "540cf144bc454fe55e5093cc306867d3", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "修复重建外键约束时对多列外键的不正确处理", "evidence": {"same_day": true, "patch_ids": ["e2182a026bceaaf4b5503fe32395729e"], "statement_hash": "89f3fed3ac2dc8f5b25ba7314fcf4f5db75733178068d72305670139d7e1b3b0"}, "url": "/docs/compare/?release=11.5#11.5-b18369ac98edf244", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "c6739c68f9b1734a690345cfc948c4e4", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "修复重建外键约束时对多列外键的不正确处理", "evidence": {"same_day": true, "patch_ids": ["e2182a026bceaaf4b5503fe32395729e"], "statement_hash": "89f3fed3ac2dc8f5b25ba7314fcf4f5db75733178068d72305670139d7e1b3b0"}, "url": "/docs/compare/?release=10.10#10.10-b18369ac98edf244", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "8df47d5cf36018f32aeb1d09d5b455df", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "修复重建外键约束时多列外键的处理不当", "evidence": {"same_day": true, "patch_ids": ["e2182a026bceaaf4b5503fe32395729e"], "statement_hash": "89f3fed3ac2dc8f5b25ba7314fcf4f5db75733178068d72305670139d7e1b3b0"}, "url": "/docs/compare/?release=9.5.19#9.5.19-c8a48d7ce92fcc3d", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "b7fd32db17d9c47e575183542eccac90", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "修复重建外键约束时多列外键的处理不当", "evidence": {"same_day": true, "patch_ids": ["e2182a026bceaaf4b5503fe32395729e"], "statement_hash": "89f3fed3ac2dc8f5b25ba7314fcf4f5db75733178068d72305670139d7e1b3b0"}, "url": "/docs/compare/?release=9.4.24#9.4.24-c8a48d7ce92fcc3d", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-ac2599ce7be431a3", "cves": [], "html": "<p>避免升级元组锁时的虚假死锁错误（Oleksii Kliukin）</p>\n<p>当两个或更多事务在等待事务 T1 释放元组级锁，而 T1 把它的锁升级到更高级别时，T1 结束后可能在等待的事务之间报告虚假死锁。</p>", "text": "避免升级元组锁时的虚假死锁错误（Oleksii Kliukin） 当两个或更多事务在等待事务 T1 释放元组级锁，而 T1 把它的锁升级到更高级别时，T1 结束后可能在等待的事务之间报告虚假死锁。", "title": "避免升级元组锁时的虚假死锁错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "50af1f5c0cbc427c69d18d63add68d97925c22646af5021db3cad55a47f24a1a", "section_path": ["变更"], "commit_groups": [["0772d8a00", "0ba35c7c9", "5246d3e79", "8b21b416e"]], "identity_text": "Avoid spurious deadlock errors when upgrading a tuple lock (Oleksii Kliukin) When two or more transactions are waiting for a transaction T1 to release a tuple-level lock, and T1 upgrades its lock to a higher level, a spurious deadlock among the waiting transactions could be reported when T1 finishes.", "commit_aliases": ["0772d8a00", "0ba35c7c9", "5246d3e79", "8b21b416e"], "source_commits": ["0ba35c7c9"], "source_entry_id": "9.6.15/changes/006", "db_id": "34647c105adb090adadcf76ddb4f1aa4", "patch_ids": ["5671c5bc9cc942f9d876e5dc6b2b9612"], "statement_hash": "fc22b942de7bb53b68e18d0ffffc29193d0efe75be9fd33e32807fb13c02585c", "relations": [{"rule": 2, "type": "equivalent", "target": "4d3b6b50df223741251b93e16d47f57b", "evidence": {"same_day": true, "patch_ids": ["5671c5bc9cc942f9d876e5dc6b2b9612"], "statement_hash": "fc22b942de7bb53b68e18d0ffffc29193d0efe75be9fd33e32807fb13c02585c"}}, {"rule": 2, "type": "equivalent", "target": "773fdd1f1beadc08d0c1cd60c3a92d4b", "evidence": {"same_day": true, "patch_ids": ["5671c5bc9cc942f9d876e5dc6b2b9612"], "statement_hash": "fc22b942de7bb53b68e18d0ffffc29193d0efe75be9fd33e32807fb13c02585c"}}], "version": "9.6.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4d3b6b50df223741251b93e16d47f57b", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "避免升级元组锁时出现虚假的死锁错误", "evidence": {"same_day": true, "patch_ids": ["5671c5bc9cc942f9d876e5dc6b2b9612"], "statement_hash": "fc22b942de7bb53b68e18d0ffffc29193d0efe75be9fd33e32807fb13c02585c"}, "url": "/docs/compare/?release=11.5#11.5-7157af16a7a2e983", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "773fdd1f1beadc08d0c1cd60c3a92d4b", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "避免升级元组锁时出现虚假的死锁错误", "evidence": {"same_day": true, "patch_ids": ["5671c5bc9cc942f9d876e5dc6b2b9612"], "statement_hash": "fc22b942de7bb53b68e18d0ffffc29193d0efe75be9fd33e32807fb13c02585c"}, "url": "/docs/compare/?release=10.10#10.10-7157af16a7a2e983", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}]}, {"id": "9.6.15-c77ad713e2669dcf", "cves": [], "html": "<p>修复未能解决涉及多个并行工作者进程的死锁的问题（Rui Hai Jiang）</p>\n<p>尚不清楚此 bug 是否可被非人工查询触达，但如果确实发生，本可解决的死锁中涉及的查询会阻塞直到被取消。</p>", "text": "修复未能解决涉及多个并行工作者进程的死锁的问题（Rui Hai Jiang） 尚不清楚此 bug 是否可被非人工查询触达，但如果确实发生，本可解决的死锁中涉及的查询会阻塞直到被取消。", "title": "修复未能解决涉及多个并行工作者进程的死锁的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "b2ad4f070abd4d75588cf627159437fee049551b316147d7162b14380d530aaa", "section_path": ["变更"], "commit_groups": [["0dcb1c6c4", "3420851a2", "af41ab50f", "c3b613e1b", "d933816c0"]], "identity_text": "Fix failure to resolve deadlocks involving multiple parallel worker processes (Rui Hai Jiang) It is not clear whether this bug is reachable with non-artificial queries, but if it did happen, the queries involved in an otherwise-resolvable deadlock would block until canceled.", "commit_aliases": ["0dcb1c6c4", "3420851a2", "af41ab50f", "c3b613e1b", "d933816c0"], "source_commits": ["c3b613e1b"], "source_entry_id": "9.6.15/changes/007", "db_id": "03a4e101c840f1c83c6c315bc828a1e0", "patch_ids": ["4a5a31a3638635c46fdfb49cbcd53a76"], "statement_hash": "d455b16dd65ddeb33a9b3d0876d30316fd04488478ecb9b27c801de9e8449ce6", "relations": [{"rule": 2, "type": "equivalent", "target": "4d910d13235e0b167aa7477f93b85744", "evidence": {"same_day": true, "patch_ids": ["4a5a31a3638635c46fdfb49cbcd53a76"], "statement_hash": "d455b16dd65ddeb33a9b3d0876d30316fd04488478ecb9b27c801de9e8449ce6"}}, {"rule": 2, "type": "equivalent", "target": "530573e75de1e9d61bb82e0208c101b0", "evidence": {"same_day": true, "patch_ids": ["4a5a31a3638635c46fdfb49cbcd53a76"], "statement_hash": "d455b16dd65ddeb33a9b3d0876d30316fd04488478ecb9b27c801de9e8449ce6"}}], "version": "9.6.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "530573e75de1e9d61bb82e0208c101b0", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "修复无法解除涉及多个并行工作进程的死锁的问题", "evidence": {"same_day": true, "patch_ids": ["4a5a31a3638635c46fdfb49cbcd53a76"], "statement_hash": "d455b16dd65ddeb33a9b3d0876d30316fd04488478ecb9b27c801de9e8449ce6"}, "url": "/docs/compare/?release=11.5#11.5-baa61d8b02704766", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "4d910d13235e0b167aa7477f93b85744", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "修复无法解除涉及多个并行工作进程的死锁的问题", "evidence": {"same_day": true, "patch_ids": ["4a5a31a3638635c46fdfb49cbcd53a76"], "statement_hash": "d455b16dd65ddeb33a9b3d0876d30316fd04488478ecb9b27c801de9e8449ce6"}, "url": "/docs/compare/?release=10.10#10.10-baa61d8b02704766", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}]}, {"id": "9.6.15-647733814a9720f6", "cves": [], "html": "<p>防止对以 <code>infinity</code> 为端点的日期范围的错误规范化（Laurenz Albe）</p>\n<p>如果端点是无穷，试图通过递增或递减端点值把开区间转换为闭区间或反之都是不正确的；因此在这种情况下保持范围不变。</p>", "text": "防止对以 infinity 为端点的日期范围的错误规范化（Laurenz Albe） 如果端点是无穷，试图通过递增或递减端点值把开区间转换为闭区间或反之都是不正确的；因此在这种情况下保持范围不变。", "title": "防止对以 infinity 为端点的日期范围的错误规范化", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "5cc38ccaf03333c059939b7c92b14a50676ee9d5fe884e847d2ce20c29918a4f", "section_path": ["变更"], "commit_groups": [["2be355498", "56afeb765", "613eabcd5", "8af1fccba", "955089d4d", "e6feef571", "f5f20deda"], ["390bf90f7", "477ebfc96", "5245552dd", "812623b69", "b0a7e0f07", "b538c90b1", "f1c72294b"]], "identity_text": "Prevent incorrect canonicalization of date ranges with infinity endpoints (Laurenz Albe) It's incorrect to try to convert an open range to a closed one or vice versa by incrementing or decrementing the endpoint value, if the endpoint is infinite; so leave the range alone in such cases.", "commit_aliases": ["2be355498", "390bf90f7", "477ebfc96", "5245552dd", "56afeb765", "613eabcd5", "812623b69", "8af1fccba", "955089d4d", "b0a7e0f07", "b538c90b1", "e6feef571", "f1c72294b", "f5f20deda"], "source_commits": ["390bf90f7", "56afeb765"], "source_entry_id": "9.6.15/changes/008", "db_id": "bd67eaaa0b0614b83c5bcdda1379baaa", "patch_ids": ["0055289fede3d0d58f40bc9a5cd8b5c5", "26d2b816955d6b94419cbe84d2fa80a3"], "statement_hash": "b5278a466e61ff1562f82babdb5ea62bf67b661d28881faa1afe55e80afad2c1", "relations": [{"rule": 2, "type": "equivalent", "target": "0e58f3b145870b8f318a43ff5a62ad9a", "evidence": {"same_day": true, "patch_ids": ["0055289fede3d0d58f40bc9a5cd8b5c5", "26d2b816955d6b94419cbe84d2fa80a3"], "statement_hash": "b5278a466e61ff1562f82babdb5ea62bf67b661d28881faa1afe55e80afad2c1"}}, {"rule": 2, "type": "equivalent", "target": "585f8c17b8fec07d6f69a2cfad6a5816", "evidence": {"same_day": true, "patch_ids": ["0055289fede3d0d58f40bc9a5cd8b5c5", "26d2b816955d6b94419cbe84d2fa80a3"], "statement_hash": "b5278a466e61ff1562f82babdb5ea62bf67b661d28881faa1afe55e80afad2c1"}}, {"rule": 2, "type": "equivalent", "target": "bb52f28cb1b49f77d0d1c61835abdfef", "evidence": {"same_day": true, "patch_ids": ["0055289fede3d0d58f40bc9a5cd8b5c5", "26d2b816955d6b94419cbe84d2fa80a3"], "statement_hash": "b5278a466e61ff1562f82babdb5ea62bf67b661d28881faa1afe55e80afad2c1"}}, {"rule": 2, "type": "equivalent", "target": "fd6b4bdf38695151d42034a3d302f7de", "evidence": {"same_day": true, "patch_ids": ["0055289fede3d0d58f40bc9a5cd8b5c5", "26d2b816955d6b94419cbe84d2fa80a3"], "statement_hash": "b5278a466e61ff1562f82babdb5ea62bf67b661d28881faa1afe55e80afad2c1"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e58f3b145870b8f318a43ff5a62ad9a", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "防止对端点为 infinity 的日期范围进行不正确的规范化", "evidence": {"same_day": true, "patch_ids": ["0055289fede3d0d58f40bc9a5cd8b5c5", "26d2b816955d6b94419cbe84d2fa80a3"], "statement_hash": "b5278a466e61ff1562f82babdb5ea62bf67b661d28881faa1afe55e80afad2c1"}, "url": "/docs/compare/?release=11.5#11.5-75ff8e2cb8d59adc", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "bb52f28cb1b49f77d0d1c61835abdfef", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "防止对端点为 infinity 的日期范围进行不正确的规范化", "evidence": {"same_day": true, "patch_ids": ["0055289fede3d0d58f40bc9a5cd8b5c5", "26d2b816955d6b94419cbe84d2fa80a3"], "statement_hash": "b5278a466e61ff1562f82babdb5ea62bf67b661d28881faa1afe55e80afad2c1"}, "url": "/docs/compare/?release=10.10#10.10-75ff8e2cb8d59adc", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "fd6b4bdf38695151d42034a3d302f7de", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "防止对以 infinity 为端点的日期范围的错误规范化", "evidence": {"same_day": true, "patch_ids": ["0055289fede3d0d58f40bc9a5cd8b5c5", "26d2b816955d6b94419cbe84d2fa80a3"], "statement_hash": "b5278a466e61ff1562f82babdb5ea62bf67b661d28881faa1afe55e80afad2c1"}, "url": "/docs/compare/?release=9.5.19#9.5.19-647733814a9720f6", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "585f8c17b8fec07d6f69a2cfad6a5816", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "防止对以 infinity 为端点的日期范围的错误规范化", "evidence": {"same_day": true, "patch_ids": ["0055289fede3d0d58f40bc9a5cd8b5c5", "26d2b816955d6b94419cbe84d2fa80a3"], "statement_hash": "b5278a466e61ff1562f82babdb5ea62bf67b661d28881faa1afe55e80afad2c1"}, "url": "/docs/compare/?release=9.4.24#9.4.24-647733814a9720f6", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-87fe480fb44c3a8f", "cves": [], "html": "<p>修复把非常大的 <code>money</code> 值转换为 <code>numeric</code> 时小数位数的丢失（Tom Lane）</p>", "text": "修复把非常大的 money 值转换为 numeric 时小数位数的丢失（Tom Lane）", "title": "修复把非常大的 money 值转换为 numeric 时小数位数的丢失", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "94b1be31b813fc7c92b5b83015f7944cf8847c6708dbf479af48ffdffd0eb535", "section_path": ["变更"], "commit_groups": [["01e0538e8", "13e493cf6", "30bed9f63", "81b29c871", "b9d2c5c7a", "ca918f99a", "fa854112f"]], "identity_text": "Fix loss of fractional digits when converting very large money values to numeric (Tom Lane)", "commit_aliases": ["01e0538e8", "13e493cf6", "30bed9f63", "81b29c871", "b9d2c5c7a", "ca918f99a", "fa854112f"], "source_commits": ["30bed9f63"], "source_entry_id": "9.6.15/changes/009", "db_id": "dcb7fef54ff9b537a843525e499fe109", "patch_ids": ["592963fc1c49c889926948092c98ffce"], "statement_hash": "adfdfefd5571d513e023a105d938103e941a300785a4c78fbb879a238c9d776b", "relations": [{"rule": 2, "type": "equivalent", "target": "16dc15d7906f99d527995e8715273d59", "evidence": {"same_day": true, "patch_ids": ["592963fc1c49c889926948092c98ffce"], "statement_hash": "adfdfefd5571d513e023a105d938103e941a300785a4c78fbb879a238c9d776b"}}, {"rule": 2, "type": "equivalent", "target": "4f3baa03230cea46f9710ff75232f106", "evidence": {"same_day": true, "patch_ids": ["592963fc1c49c889926948092c98ffce"], "statement_hash": "adfdfefd5571d513e023a105d938103e941a300785a4c78fbb879a238c9d776b"}}, {"rule": 2, "type": "equivalent", "target": "684d5d8de43f64a2f9375814951dd67c", "evidence": {"same_day": true, "patch_ids": ["592963fc1c49c889926948092c98ffce"], "statement_hash": "adfdfefd5571d513e023a105d938103e941a300785a4c78fbb879a238c9d776b"}}, {"rule": 2, "type": "equivalent", "target": "ebd3cd01b9fbe01267534ad889c25ccd", "evidence": {"same_day": true, "patch_ids": ["592963fc1c49c889926948092c98ffce"], "statement_hash": "adfdfefd5571d513e023a105d938103e941a300785a4c78fbb879a238c9d776b"}}], "version": "9.6.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f3baa03230cea46f9710ff75232f106", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "修复将非常大的 money 值转换为 numeric 时小数位丢失的问题", "evidence": {"same_day": true, "patch_ids": ["592963fc1c49c889926948092c98ffce"], "statement_hash": "adfdfefd5571d513e023a105d938103e941a300785a4c78fbb879a238c9d776b"}, "url": "/docs/compare/?release=11.5#11.5-10abeca09fff8a05", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "16dc15d7906f99d527995e8715273d59", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "修复将非常大的 money 值转换为 numeric 时小数位丢失的问题", "evidence": {"same_day": true, "patch_ids": ["592963fc1c49c889926948092c98ffce"], "statement_hash": "adfdfefd5571d513e023a105d938103e941a300785a4c78fbb879a238c9d776b"}, "url": "/docs/compare/?release=10.10#10.10-10abeca09fff8a05", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "ebd3cd01b9fbe01267534ad889c25ccd", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "修复把非常大的 money 值转换为 numeric 时小数位数的丢失", "evidence": {"same_day": true, "patch_ids": ["592963fc1c49c889926948092c98ffce"], "statement_hash": "adfdfefd5571d513e023a105d938103e941a300785a4c78fbb879a238c9d776b"}, "url": "/docs/compare/?release=9.5.19#9.5.19-87fe480fb44c3a8f", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "684d5d8de43f64a2f9375814951dd67c", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "修复把非常大的 money 值转换为 numeric 时小数位数的丢失", "evidence": {"same_day": true, "patch_ids": ["592963fc1c49c889926948092c98ffce"], "statement_hash": "adfdfefd5571d513e023a105d938103e941a300785a4c78fbb879a238c9d776b"}, "url": "/docs/compare/?release=9.4.24#9.4.24-87fe480fb44c3a8f", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-2aa91f809e9233ce", "cves": [], "html": "<p>修复 MIPS CPU 的自旋锁汇编代码，使其在 MIPS r6 上工作（YunQiang Su）</p>", "text": "修复 MIPS CPU 的自旋锁汇编代码，使其在 MIPS r6 上工作（YunQiang Su）", "title": "修复 MIPS CPU 的自旋锁汇编代码，使其在 MIPS r6 上工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "296b8d8079ec31ed44dfa15d0680266fd100ddf648df573e5e4ede81936ea1c4", "section_path": ["变更"], "commit_groups": [["05399b148", "1323bfce5", "2854e2ab6", "36d2c3ad3", "40dde8290", "9895e3a36"]], "identity_text": "Fix spinlock assembly code for MIPS CPUs so that it works on MIPS r6 (YunQiang Su)", "commit_aliases": ["05399b148", "1323bfce5", "2854e2ab6", "36d2c3ad3", "40dde8290", "9895e3a36"], "source_commits": ["9895e3a36"], "source_entry_id": "9.6.15/changes/010", "db_id": "ab19c7cf11419d91689e99bf9e39b9b0", "patch_ids": ["421bea799bfbecfbbc7472b4f27e9621"], "statement_hash": "e32f0f67275a9c8a4eb1604238e8851ca8d3e1cff7308116c2b90be9a4ed8a64", "relations": [{"rule": 2, "type": "equivalent", "target": "148cc89d12926d613b4765f9b06c4e4f", "evidence": {"same_day": true, "patch_ids": ["421bea799bfbecfbbc7472b4f27e9621"], "statement_hash": "e32f0f67275a9c8a4eb1604238e8851ca8d3e1cff7308116c2b90be9a4ed8a64"}}, {"rule": 2, "type": "equivalent", "target": "4da3a1833367fec8c97699f51233ba82", "evidence": {"same_day": true, "patch_ids": ["421bea799bfbecfbbc7472b4f27e9621"], "statement_hash": "e32f0f67275a9c8a4eb1604238e8851ca8d3e1cff7308116c2b90be9a4ed8a64"}}, {"rule": 2, "type": "equivalent", "target": "7b6e138aaa61876ad696d64a950926f5", "evidence": {"same_day": true, "patch_ids": ["421bea799bfbecfbbc7472b4f27e9621"], "statement_hash": "e32f0f67275a9c8a4eb1604238e8851ca8d3e1cff7308116c2b90be9a4ed8a64"}}, {"rule": 2, "type": "equivalent", "target": "c0e1e4e25e282e4bf82ab7c2416c1371", "evidence": {"same_day": true, "patch_ids": ["421bea799bfbecfbbc7472b4f27e9621"], "statement_hash": "e32f0f67275a9c8a4eb1604238e8851ca8d3e1cff7308116c2b90be9a4ed8a64"}}], "version": "9.6.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c0e1e4e25e282e4bf82ab7c2416c1371", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "修复 MIPS CPU 的自旋锁汇编代码，使其适用于 MIPS r6", "evidence": {"same_day": true, "patch_ids": ["421bea799bfbecfbbc7472b4f27e9621"], "statement_hash": "e32f0f67275a9c8a4eb1604238e8851ca8d3e1cff7308116c2b90be9a4ed8a64"}, "url": "/docs/compare/?release=11.5#11.5-75e6da5fa4a95ee6", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "4da3a1833367fec8c97699f51233ba82", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "修复 MIPS CPU 的自旋锁汇编代码，使其适用于 MIPS r6", "evidence": {"same_day": true, "patch_ids": ["421bea799bfbecfbbc7472b4f27e9621"], "statement_hash": "e32f0f67275a9c8a4eb1604238e8851ca8d3e1cff7308116c2b90be9a4ed8a64"}, "url": "/docs/compare/?release=10.10#10.10-75e6da5fa4a95ee6", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "7b6e138aaa61876ad696d64a950926f5", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "修复 MIPS CPU 的自旋锁汇编代码，使其在 MIPS r6 上工作", "evidence": {"same_day": true, "patch_ids": ["421bea799bfbecfbbc7472b4f27e9621"], "statement_hash": "e32f0f67275a9c8a4eb1604238e8851ca8d3e1cff7308116c2b90be9a4ed8a64"}, "url": "/docs/compare/?release=9.5.19#9.5.19-2aa91f809e9233ce", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "148cc89d12926d613b4765f9b06c4e4f", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "修复 MIPS CPU 的自旋锁汇编代码，使其在 MIPS r6 上工作", "evidence": {"same_day": true, "patch_ids": ["421bea799bfbecfbbc7472b4f27e9621"], "statement_hash": "e32f0f67275a9c8a4eb1604238e8851ca8d3e1cff7308116c2b90be9a4ed8a64"}, "url": "/docs/compare/?release=9.4.24#9.4.24-2aa91f809e9233ce", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-d9bfb2af9c46120e", "cves": [], "html": "<p>让 <span>libpq</span> 忽略连接服务文件中的回车（<code>\\r</code>）（Tom Lane、Michael Paquier）</p>\n<p>在某些边界情况下，包含 Windows 风格换行的服务文件可能被错误解析，导致连接失败。</p>", "text": "让 libpq 忽略连接服务文件中的回车（\\r）（Tom Lane、Michael Paquier） 在某些边界情况下，包含 Windows 风格换行的服务文件可能被错误解析，导致连接失败。", "title": "让 libpq 忽略连接服务文件中的回车（\\r）", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "68edf79da26e258fba74e131b34de3d956eff11a80097d2453b125f0d792d2d4", "section_path": ["变更"], "commit_groups": [["11a0a4db3", "6266654db", "8c52b77dd", "b654714f9", "ba27151d1", "c58cf97f2", "cb65b454f"]], "identity_text": "Make libpq ignore carriage return (\\r) in connection service files (Tom Lane, Michael Paquier) In some corner cases, service files containing Windows-style newlines could be mis-parsed, resulting in connection failures.", "commit_aliases": ["11a0a4db3", "6266654db", "8c52b77dd", "b654714f9", "ba27151d1", "c58cf97f2", "cb65b454f"], "source_commits": ["ba27151d1"], "source_entry_id": "9.6.15/changes/011", "db_id": "8de98742bede407ff055f3a1f907fa02", "patch_ids": ["0c52d799489d2d345afa1ce18511da67"], "statement_hash": "c9dcd72eb5cf09f829656e4496e0c3caaac9b1f3b00bac69eb2a91451db56f0f", "relations": [{"rule": 2, "type": "equivalent", "target": "63c59a865186e922f6f9868a577993f7", "evidence": {"same_day": true, "patch_ids": ["0c52d799489d2d345afa1ce18511da67"], "statement_hash": "c9dcd72eb5cf09f829656e4496e0c3caaac9b1f3b00bac69eb2a91451db56f0f"}}, {"rule": 2, "type": "equivalent", "target": "750f9c95bc91c75e18a3b866f61c9e19", "evidence": {"same_day": true, "patch_ids": ["0c52d799489d2d345afa1ce18511da67"], "statement_hash": "c9dcd72eb5cf09f829656e4496e0c3caaac9b1f3b00bac69eb2a91451db56f0f"}}, {"rule": 2, "type": "equivalent", "target": "f0da8881afb51e5188a214dfb856e88f", "evidence": {"same_day": true, "patch_ids": ["0c52d799489d2d345afa1ce18511da67"], "statement_hash": "c9dcd72eb5cf09f829656e4496e0c3caaac9b1f3b00bac69eb2a91451db56f0f"}}, {"rule": 2, "type": "equivalent", "target": "f470297cc97ba5d0f05e547d29143113", "evidence": {"same_day": true, "patch_ids": ["0c52d799489d2d345afa1ce18511da67"], "statement_hash": "c9dcd72eb5cf09f829656e4496e0c3caaac9b1f3b00bac69eb2a91451db56f0f"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f0da8881afb51e5188a214dfb856e88f", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "使 libpq 忽略连接服务文件中的回车符（\\r）", "evidence": {"same_day": true, "patch_ids": ["0c52d799489d2d345afa1ce18511da67"], "statement_hash": "c9dcd72eb5cf09f829656e4496e0c3caaac9b1f3b00bac69eb2a91451db56f0f"}, "url": "/docs/compare/?release=11.5#11.5-ac2085943685f28c", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "f470297cc97ba5d0f05e547d29143113", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "使 libpq 忽略连接服务文件中的回车符（\\r）", "evidence": {"same_day": true, "patch_ids": ["0c52d799489d2d345afa1ce18511da67"], "statement_hash": "c9dcd72eb5cf09f829656e4496e0c3caaac9b1f3b00bac69eb2a91451db56f0f"}, "url": "/docs/compare/?release=10.10#10.10-ac2085943685f28c", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "63c59a865186e922f6f9868a577993f7", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "让 libpq 忽略连接服务文件中的回车（\\r）", "evidence": {"same_day": true, "patch_ids": ["0c52d799489d2d345afa1ce18511da67"], "statement_hash": "c9dcd72eb5cf09f829656e4496e0c3caaac9b1f3b00bac69eb2a91451db56f0f"}, "url": "/docs/compare/?release=9.5.19#9.5.19-d9bfb2af9c46120e", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "750f9c95bc91c75e18a3b866f61c9e19", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "让 libpq 忽略连接服务文件中的回车（\\r）", "evidence": {"same_day": true, "patch_ids": ["0c52d799489d2d345afa1ce18511da67"], "statement_hash": "c9dcd72eb5cf09f829656e4496e0c3caaac9b1f3b00bac69eb2a91451db56f0f"}, "url": "/docs/compare/?release=9.4.24#9.4.24-d9bfb2af9c46120e", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-456d543c5560865e", "cves": [], "html": "<p>在 <span>psql</span> 中，避免在 <code>SET <em><code>variable</code></em> =</code> 之后提供错误的 Tab 补全选项（Tom Lane）</p>", "text": "在 psql 中，避免在 SET variable = 之后提供错误的 Tab 补全选项（Tom Lane）", "title": "在 psql 中，避免在 SET variable = 之后提供错误的 Tab 补全选项", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "06bcebf82f57731b64e27e9d0fc2893d7f4a897d766148492232d480888a0706", "section_path": ["变更"], "commit_groups": [["074add6ed", "0ec3e13c6", "47fe7a753", "4f3648de2", "90434e6f2"]], "identity_text": "In psql, avoid offering incorrect tab completion options after SET variable = (Tom Lane)", "commit_aliases": ["074add6ed", "0ec3e13c6", "47fe7a753", "4f3648de2", "90434e6f2"], "source_commits": ["47fe7a753"], "source_entry_id": "9.6.15/changes/012", "db_id": "e57dbb753d6530a40332b40b3122d465", "patch_ids": ["f655e1d108467fde4fc2d46a6336286d"], "statement_hash": "79ce17f2985a7d57bbdab039a9ae3fb644c4e063698a502b45ddceb176cd0fcf", "relations": [{"rule": 2, "type": "equivalent", "target": "5e65794eff99f928692bbbf634641cfa", "evidence": {"same_day": true, "patch_ids": ["f655e1d108467fde4fc2d46a6336286d"], "statement_hash": "79ce17f2985a7d57bbdab039a9ae3fb644c4e063698a502b45ddceb176cd0fcf"}}, {"rule": 2, "type": "equivalent", "target": "7e2faaf483c0a41a517cf51700845f43", "evidence": {"same_day": true, "patch_ids": ["f655e1d108467fde4fc2d46a6336286d"], "statement_hash": "79ce17f2985a7d57bbdab039a9ae3fb644c4e063698a502b45ddceb176cd0fcf"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7e2faaf483c0a41a517cf51700845f43", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "在 psql 中，避免在 SET variable = 之后提供不正确的 Tab 补全选项", "evidence": {"same_day": true, "patch_ids": ["f655e1d108467fde4fc2d46a6336286d"], "statement_hash": "79ce17f2985a7d57bbdab039a9ae3fb644c4e063698a502b45ddceb176cd0fcf"}, "url": "/docs/compare/?release=11.5#11.5-ceade21b2731e64f", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "5e65794eff99f928692bbbf634641cfa", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "在 psql 中，避免在 SET variable = 之后提供不正确的 Tab 补全选项", "evidence": {"same_day": true, "patch_ids": ["f655e1d108467fde4fc2d46a6336286d"], "statement_hash": "79ce17f2985a7d57bbdab039a9ae3fb644c4e063698a502b45ddceb176cd0fcf"}, "url": "/docs/compare/?release=10.10#10.10-ceade21b2731e64f", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}]}, {"id": "9.6.15-3a9d0fba398db480", "cves": [], "html": "<p>修复 <span>pg_dump</span> 确保自定义操作符类以正确的顺序转储（Tom Lane）</p>\n<p>如果用户定义的操作符类是某个用户定义范围类型的子类型操作符类，相关对象会以错误的顺序转储，产生无法恢复的转储。（操作符类依赖处理的这一底层失败也可能在其他情况下显现，但这是唯一已知的情况。）</p>", "text": "修复 pg_dump 确保自定义操作符类以正确的顺序转储（Tom Lane） 如果用户定义的操作符类是某个用户定义范围类型的子类型操作符类，相关对象会以错误的顺序转储，产生无法恢复的转储。（操作符类依赖处理的这一底层失败也可能在其他情况下显现，但这是唯一已知的情况。）", "title": "修复 pg_dump 确保自定义操作符类以正确的顺序转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "2590b20edb4c9a12840633a1050438195302132bdf21a24ac7f3f2539665ea6b", "section_path": ["变更"], "commit_groups": [["07b39083c", "408f75938", "4e10b6f82", "7615afa48", "9dd74ba5a", "b31a98022", "c64e29705"]], "identity_text": "Fix pg_dump to ensure that custom operator classes are dumped in the right order (Tom Lane) If a user-defined opclass is the subtype opclass of a user-defined range type, related objects were dumped in the wrong order, producing an unrestorable dump. (The underlying failure to handle opclass dependencies might manifest in other cases too, but this is the only known case.)", "commit_aliases": ["07b39083c", "408f75938", "4e10b6f82", "7615afa48", "9dd74ba5a", "b31a98022", "c64e29705"], "source_commits": ["b31a98022"], "source_entry_id": "9.6.15/changes/013", "db_id": "09734321368e7f07237a0d5bde37c769", "patch_ids": ["70fdf9c165e267a20afb1eaf20bb5ed5"], "statement_hash": "c6670be03438303a67bb0da4b7b2d26c5d0eb52ea181a8e32fdeb653c42f93de", "relations": [{"rule": 2, "type": "equivalent", "target": "9f2677746b49131ad3a83320ad497740", "evidence": {"same_day": true, "patch_ids": ["70fdf9c165e267a20afb1eaf20bb5ed5"], "statement_hash": "c6670be03438303a67bb0da4b7b2d26c5d0eb52ea181a8e32fdeb653c42f93de"}}, {"rule": 2, "type": "equivalent", "target": "d310270c03e84689653e850517303f19", "evidence": {"same_day": true, "patch_ids": ["70fdf9c165e267a20afb1eaf20bb5ed5"], "statement_hash": "c6670be03438303a67bb0da4b7b2d26c5d0eb52ea181a8e32fdeb653c42f93de"}}, {"rule": 2, "type": "equivalent", "target": "e02a0d241ddabea15ae65033c24244c3", "evidence": {"same_day": true, "patch_ids": ["70fdf9c165e267a20afb1eaf20bb5ed5"], "statement_hash": "c6670be03438303a67bb0da4b7b2d26c5d0eb52ea181a8e32fdeb653c42f93de"}}, {"rule": 2, "type": "equivalent", "target": "e3a9f1a2711f5c8e08a1f2a2f96c8656", "evidence": {"same_day": true, "patch_ids": ["70fdf9c165e267a20afb1eaf20bb5ed5"], "statement_hash": "c6670be03438303a67bb0da4b7b2d26c5d0eb52ea181a8e32fdeb653c42f93de"}}], "version": "9.6.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d310270c03e84689653e850517303f19", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "修复 pg_dump，以确保按正确顺序转储自定义操作符类", "evidence": {"same_day": true, "patch_ids": ["70fdf9c165e267a20afb1eaf20bb5ed5"], "statement_hash": "c6670be03438303a67bb0da4b7b2d26c5d0eb52ea181a8e32fdeb653c42f93de"}, "url": "/docs/compare/?release=11.5#11.5-fb4759a539ef8db1", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "e02a0d241ddabea15ae65033c24244c3", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "修复 pg_dump，以确保按正确顺序转储自定义操作符类", "evidence": {"same_day": true, "patch_ids": ["70fdf9c165e267a20afb1eaf20bb5ed5"], "statement_hash": "c6670be03438303a67bb0da4b7b2d26c5d0eb52ea181a8e32fdeb653c42f93de"}, "url": "/docs/compare/?release=10.10#10.10-fb4759a539ef8db1", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "e3a9f1a2711f5c8e08a1f2a2f96c8656", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "修复 pg_dump 确保自定义操作符类以正确的顺序转储", "evidence": {"same_day": true, "patch_ids": ["70fdf9c165e267a20afb1eaf20bb5ed5"], "statement_hash": "c6670be03438303a67bb0da4b7b2d26c5d0eb52ea181a8e32fdeb653c42f93de"}, "url": "/docs/compare/?release=9.5.19#9.5.19-3a9d0fba398db480", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "9f2677746b49131ad3a83320ad497740", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "修复 pg_dump 确保自定义操作符类以正确的顺序转储", "evidence": {"same_day": true, "patch_ids": ["70fdf9c165e267a20afb1eaf20bb5ed5"], "statement_hash": "c6670be03438303a67bb0da4b7b2d26c5d0eb52ea181a8e32fdeb653c42f93de"}, "url": "/docs/compare/?release=9.4.24#9.4.24-3a9d0fba398db480", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-39b3e28c742d0de5", "cves": [], "html": "<p>修复 <code>contrib/passwordcheck</code> 与 <code>check_password_hook</code> 的其他使用者共存的问题（Michael Paquier）</p>", "text": "修复 contrib/passwordcheck 与 check_password_hook 的其他使用者共存的问题（Michael Paquier）", "title": "修复 contrib/passwordcheck 与 check_password_hook 的其他使用者共存的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "393a9fa361ab2a35921dd58a1ce9ac372bccd36a835795a429548ab7fd6b72e1", "section_path": ["变更"], "commit_groups": [["20f5cb195", "4536e494f", "957b822b5", "a7eb28d0c", "b2a3d706b", "cb0074417", "eea28a3cb"]], "identity_text": "Fix contrib/passwordcheck to coexist with other users of check_password_hook (Michael Paquier)", "commit_aliases": ["20f5cb195", "4536e494f", "957b822b5", "a7eb28d0c", "b2a3d706b", "cb0074417", "eea28a3cb"], "source_commits": ["957b822b5"], "source_entry_id": "9.6.15/changes/014", "db_id": "7176d75b344cf415db5014720bc53cd4", "patch_ids": ["53194b916cc16779b91a5234ee5f6537"], "statement_hash": "a1666b6fa5abd9f7cdb7b486fd6ee3f361fcb92b3f39cfe98a46bfd46f548a00", "relations": [{"rule": 2, "type": "equivalent", "target": "4c10491c391eb08e2ee611428186d6fb", "evidence": {"same_day": true, "patch_ids": ["53194b916cc16779b91a5234ee5f6537"], "statement_hash": "a1666b6fa5abd9f7cdb7b486fd6ee3f361fcb92b3f39cfe98a46bfd46f548a00"}}, {"rule": 2, "type": "equivalent", "target": "bd0b9493e717514df4b87e129c03a91d", "evidence": {"same_day": true, "patch_ids": ["53194b916cc16779b91a5234ee5f6537"], "statement_hash": "a1666b6fa5abd9f7cdb7b486fd6ee3f361fcb92b3f39cfe98a46bfd46f548a00"}}, {"rule": 2, "type": "equivalent", "target": "da912bf84ad3684545dca24b0b21d950", "evidence": {"same_day": true, "patch_ids": ["53194b916cc16779b91a5234ee5f6537"], "statement_hash": "a1666b6fa5abd9f7cdb7b486fd6ee3f361fcb92b3f39cfe98a46bfd46f548a00"}}, {"rule": 2, "type": "equivalent", "target": "eed66cc7c792fcaa4b1de1a0ddd5b38c", "evidence": {"same_day": true, "patch_ids": ["53194b916cc16779b91a5234ee5f6537"], "statement_hash": "a1666b6fa5abd9f7cdb7b486fd6ee3f361fcb92b3f39cfe98a46bfd46f548a00"}}], "version": "9.6.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "eed66cc7c792fcaa4b1de1a0ddd5b38c", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "修复 contrib/passwordcheck，使其能与 check_password_hook 的其他使用者共存", "evidence": {"same_day": true, "patch_ids": ["53194b916cc16779b91a5234ee5f6537"], "statement_hash": "a1666b6fa5abd9f7cdb7b486fd6ee3f361fcb92b3f39cfe98a46bfd46f548a00"}, "url": "/docs/compare/?release=11.5#11.5-df35736aa7eb0653", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "da912bf84ad3684545dca24b0b21d950", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "修复 contrib/passwordcheck，使其能与 check_password_hook 的其他使用者共存", "evidence": {"same_day": true, "patch_ids": ["53194b916cc16779b91a5234ee5f6537"], "statement_hash": "a1666b6fa5abd9f7cdb7b486fd6ee3f361fcb92b3f39cfe98a46bfd46f548a00"}, "url": "/docs/compare/?release=10.10#10.10-df35736aa7eb0653", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "4c10491c391eb08e2ee611428186d6fb", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "修复 contrib/passwordcheck 与 check_password_hook 的其他使用者共存的问题", "evidence": {"same_day": true, "patch_ids": ["53194b916cc16779b91a5234ee5f6537"], "statement_hash": "a1666b6fa5abd9f7cdb7b486fd6ee3f361fcb92b3f39cfe98a46bfd46f548a00"}, "url": "/docs/compare/?release=9.5.19#9.5.19-39b3e28c742d0de5", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "bd0b9493e717514df4b87e129c03a91d", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "修复 contrib/passwordcheck 与 check_password_hook 的其他使用者共存的问题", "evidence": {"same_day": true, "patch_ids": ["53194b916cc16779b91a5234ee5f6537"], "statement_hash": "a1666b6fa5abd9f7cdb7b486fd6ee3f361fcb92b3f39cfe98a46bfd46f548a00"}, "url": "/docs/compare/?release=9.4.24#9.4.24-39b3e28c742d0de5", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-87eb27f086d9efa0", "cves": [], "html": "<p>修复 <code>contrib/sepgsql</code> 测试在最近的 SELinux 版本下工作的问题（Mike Palmiotto）</p>", "text": "修复 contrib/sepgsql 测试在最近的 SELinux 版本下工作的问题（Mike Palmiotto）", "title": "修复 contrib/sepgsql 测试在最近的 SELinux 版本下工作的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "b4a7469b1a091622c9afbc489478c92a6b09a09ba36aed7889e722b70cc96def", "section_path": ["变更"], "commit_groups": [["0a9ba5baa", "0e259d4bc", "5a1c61bdf", "5c3d47287", "665329abe", "b22e24983", "f5a4ab23e"]], "identity_text": "Fix contrib/sepgsql tests to work under recent SELinux releases (Mike Palmiotto)", "commit_aliases": ["0a9ba5baa", "0e259d4bc", "5a1c61bdf", "5c3d47287", "665329abe", "b22e24983", "f5a4ab23e"], "source_commits": ["0a9ba5baa"], "source_entry_id": "9.6.15/changes/015", "db_id": "6b633c815eff75f6064683878c2e8569", "patch_ids": ["ab3a51382f318a17cef31ba82a144ce8"], "statement_hash": "aa2db5f039c0978384f136e095ecc68dbf48f9752e08d708ac9735c201e60a71", "relations": [{"rule": 2, "type": "equivalent", "target": "1557899b72777b524a07807efdfa8e12", "evidence": {"same_day": true, "patch_ids": ["ab3a51382f318a17cef31ba82a144ce8"], "statement_hash": "aa2db5f039c0978384f136e095ecc68dbf48f9752e08d708ac9735c201e60a71"}}, {"rule": 2, "type": "equivalent", "target": "158e66ff651071a0087d2dcd8b63edfb", "evidence": {"same_day": true, "patch_ids": ["ab3a51382f318a17cef31ba82a144ce8"], "statement_hash": "aa2db5f039c0978384f136e095ecc68dbf48f9752e08d708ac9735c201e60a71"}}, {"rule": 2, "type": "equivalent", "target": "cc4c7c0fe2c130d0a351021380e44790", "evidence": {"same_day": true, "patch_ids": ["ab3a51382f318a17cef31ba82a144ce8"], "statement_hash": "aa2db5f039c0978384f136e095ecc68dbf48f9752e08d708ac9735c201e60a71"}}, {"rule": 2, "type": "equivalent", "target": "d48dc89df9bf06cc4a261afa2a1cf979", "evidence": {"same_day": true, "patch_ids": ["ab3a51382f318a17cef31ba82a144ce8"], "statement_hash": "aa2db5f039c0978384f136e095ecc68dbf48f9752e08d708ac9735c201e60a71"}}], "version": "9.6.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc4c7c0fe2c130d0a351021380e44790", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "修复 contrib/sepgsql 测试，使其适用于近期的 SELinux 版本", "evidence": {"same_day": true, "patch_ids": ["ab3a51382f318a17cef31ba82a144ce8"], "statement_hash": "aa2db5f039c0978384f136e095ecc68dbf48f9752e08d708ac9735c201e60a71"}, "url": "/docs/compare/?release=11.5#11.5-7b6e28f9df2e4b3f", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "d48dc89df9bf06cc4a261afa2a1cf979", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "修复 contrib/sepgsql 测试，使其适用于近期的 SELinux 版本", "evidence": {"same_day": true, "patch_ids": ["ab3a51382f318a17cef31ba82a144ce8"], "statement_hash": "aa2db5f039c0978384f136e095ecc68dbf48f9752e08d708ac9735c201e60a71"}, "url": "/docs/compare/?release=10.10#10.10-7b6e28f9df2e4b3f", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "1557899b72777b524a07807efdfa8e12", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "修复 contrib/sepgsql 测试在最近的 SELinux 版本下工作的问题", "evidence": {"same_day": true, "patch_ids": ["ab3a51382f318a17cef31ba82a144ce8"], "statement_hash": "aa2db5f039c0978384f136e095ecc68dbf48f9752e08d708ac9735c201e60a71"}, "url": "/docs/compare/?release=9.5.19#9.5.19-87eb27f086d9efa0", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "158e66ff651071a0087d2dcd8b63edfb", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "修复 contrib/sepgsql 测试在最近的 SELinux 版本下工作的问题", "evidence": {"same_day": true, "patch_ids": ["ab3a51382f318a17cef31ba82a144ce8"], "statement_hash": "aa2db5f039c0978384f136e095ecc68dbf48f9752e08d708ac9735c201e60a71"}, "url": "/docs/compare/?release=9.4.24#9.4.24-87eb27f086d9efa0", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-51a47d1f64033b51", "cves": [], "html": "<p>改进 <code>src/test/recovery</code> 回归测试的稳定性（Michael Paquier）</p>", "text": "改进 src/test/recovery 回归测试的稳定性（Michael Paquier）", "title": "改进 src/test/recovery 回归测试的稳定性", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "acd5de3cc8df2fce0fa334c66396062908aa6557f3bbeef9daca1d8cb000bcbf", "section_path": ["变更"], "commit_groups": [["0ceb28da0", "46fb7ff65", "7d81bdc8c", "c6f961bbb", "ca553394b"]], "identity_text": "Improve stability of src/test/recovery regression tests (Michael Paquier)", "commit_aliases": ["0ceb28da0", "46fb7ff65", "7d81bdc8c", "c6f961bbb", "ca553394b"], "source_commits": ["c6f961bbb"], "source_entry_id": "9.6.15/changes/016", "db_id": "dfdc72e7a7c112216b4d0f74c8ad4f24", "patch_ids": ["663925b07743c1ddebdc35f8a2412e25"], "statement_hash": "a4ecab3f4640046f2715b60c87e111058372f7572afafa76a414864e06f18342", "relations": [{"rule": 2, "type": "equivalent", "target": "03c6f2d59b063f4716adabc13550600e", "evidence": {"same_day": true, "patch_ids": ["663925b07743c1ddebdc35f8a2412e25"], "statement_hash": "a4ecab3f4640046f2715b60c87e111058372f7572afafa76a414864e06f18342"}}, {"rule": 2, "type": "equivalent", "target": "9ee0f1cbade23f9e52a29cc2379f9e44", "evidence": {"same_day": true, "patch_ids": ["663925b07743c1ddebdc35f8a2412e25"], "statement_hash": "a4ecab3f4640046f2715b60c87e111058372f7572afafa76a414864e06f18342"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ee0f1cbade23f9e52a29cc2379f9e44", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "提高 src/test/recovery 回归测试的稳定性", "evidence": {"same_day": true, "patch_ids": ["663925b07743c1ddebdc35f8a2412e25"], "statement_hash": "a4ecab3f4640046f2715b60c87e111058372f7572afafa76a414864e06f18342"}, "url": "/docs/compare/?release=11.5#11.5-90ae189995fb3a8a", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "03c6f2d59b063f4716adabc13550600e", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "提高 src/test/recovery 回归测试的稳定性", "evidence": {"same_day": true, "patch_ids": ["663925b07743c1ddebdc35f8a2412e25"], "statement_hash": "a4ecab3f4640046f2715b60c87e111058372f7572afafa76a414864e06f18342"}, "url": "/docs/compare/?release=10.10#10.10-90ae189995fb3a8a", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}]}, {"id": "9.6.15-d696c103684e8d75", "cves": [], "html": "<p>减少 <span>pg_upgrade</span> 测试脚本的 <span>stderr</span> 输出（Tom Lane）</p>", "text": "减少 pg_upgrade 测试脚本的 stderr 输出（Tom Lane）", "title": "减少 pg_upgrade 测试脚本的 stderr 输出", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "7b17de229b7d7e3ff2692af88479f1d0d94d0f5ff460486c3041ab9fba708739", "section_path": ["变更"], "commit_groups": [["19f9a5aed", "69c3d5191", "75348a733", "7ac7bf50c", "8d21512dc", "eb9812f27"]], "identity_text": "Reduce stderr output from pg_upgrade's test script (Tom Lane)", "commit_aliases": ["19f9a5aed", "69c3d5191", "75348a733", "7ac7bf50c", "8d21512dc", "eb9812f27"], "source_commits": ["75348a733"], "source_entry_id": "9.6.15/changes/017", "db_id": "79ce47cd56b0d700706ef94f5489a57f", "patch_ids": ["280e12f8c3cc8d9d9eefcc0580820a84"], "statement_hash": "1c2e03648bfb3c05447129cb79c510fca3857f406bf1153e284ec8e996d7392c", "relations": [{"rule": 2, "type": "equivalent", "target": "0695b3b425f25682abe75ef8010043a3", "evidence": {"same_day": true, "patch_ids": ["280e12f8c3cc8d9d9eefcc0580820a84"], "statement_hash": "1c2e03648bfb3c05447129cb79c510fca3857f406bf1153e284ec8e996d7392c"}}, {"rule": 2, "type": "equivalent", "target": "9987687f82c177fb959d7cb535d38b96", "evidence": {"same_day": true, "patch_ids": ["280e12f8c3cc8d9d9eefcc0580820a84"], "statement_hash": "1c2e03648bfb3c05447129cb79c510fca3857f406bf1153e284ec8e996d7392c"}}, {"rule": 2, "type": "equivalent", "target": "f9e5fb6aaa2c517552f01d29ff6f329d", "evidence": {"same_day": true, "patch_ids": ["280e12f8c3cc8d9d9eefcc0580820a84"], "statement_hash": "1c2e03648bfb3c05447129cb79c510fca3857f406bf1153e284ec8e996d7392c"}}, {"rule": 2, "type": "equivalent", "target": "fcbb60aeb52f513e8aa4412ec25a5680", "evidence": {"same_day": true, "patch_ids": ["280e12f8c3cc8d9d9eefcc0580820a84"], "statement_hash": "1c2e03648bfb3c05447129cb79c510fca3857f406bf1153e284ec8e996d7392c"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f9e5fb6aaa2c517552f01d29ff6f329d", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "减少 pg_upgrade 测试脚本的 stderr 输出", "evidence": {"same_day": true, "patch_ids": ["280e12f8c3cc8d9d9eefcc0580820a84"], "statement_hash": "1c2e03648bfb3c05447129cb79c510fca3857f406bf1153e284ec8e996d7392c"}, "url": "/docs/compare/?release=11.5#11.5-d696c103684e8d75", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "fcbb60aeb52f513e8aa4412ec25a5680", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "减少 pg_upgrade 测试脚本的 stderr 输出", "evidence": {"same_day": true, "patch_ids": ["280e12f8c3cc8d9d9eefcc0580820a84"], "statement_hash": "1c2e03648bfb3c05447129cb79c510fca3857f406bf1153e284ec8e996d7392c"}, "url": "/docs/compare/?release=10.10#10.10-d696c103684e8d75", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "9987687f82c177fb959d7cb535d38b96", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "减少 pg_upgrade 测试脚本的 stderr 输出", "evidence": {"same_day": true, "patch_ids": ["280e12f8c3cc8d9d9eefcc0580820a84"], "statement_hash": "1c2e03648bfb3c05447129cb79c510fca3857f406bf1153e284ec8e996d7392c"}, "url": "/docs/compare/?release=9.5.19#9.5.19-d696c103684e8d75", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "0695b3b425f25682abe75ef8010043a3", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "减少 pg_upgrade 测试脚本的 stderr 输出", "evidence": {"same_day": true, "patch_ids": ["280e12f8c3cc8d9d9eefcc0580820a84"], "statement_hash": "1c2e03648bfb3c05447129cb79c510fca3857f406bf1153e284ec8e996d7392c"}, "url": "/docs/compare/?release=9.4.24#9.4.24-d696c103684e8d75", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-8aa0c48a4cb6f365", "cves": [], "html": "<p>修复 TAP 测试在 msys Perl 下、构建目录位于非根 msys 挂载点时的工作问题（Noah Misch）</p>", "text": "修复 TAP 测试在 msys Perl 下、构建目录位于非根 msys 挂载点时的工作问题（Noah Misch）", "title": "修复 TAP 测试在 msys Perl 下、构建目录位于非根 msys 挂载点时的工作问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "b65b2bed375be1c41d7b426ea4696587caae88b05372f2cf7f188148adbd2f64", "section_path": ["变更"], "commit_groups": [["186113b04", "6121ba9d1", "660a2b190", "a40dca815"]], "identity_text": "Fix TAP tests to work with msys Perl, in cases where the build directory is on a non-root msys mount point (Noah Misch)", "commit_aliases": ["186113b04", "6121ba9d1", "660a2b190", "a40dca815"], "source_commits": ["186113b04"], "source_entry_id": "9.6.15/changes/018", "db_id": "87cdb6a8ac0334d53c383c8dfe966f9e", "patch_ids": ["3f373b33700d6c8d39f2cab05127a8cc"], "statement_hash": "d3ff5ff9da6ad75039c69754a1904a57bd72e8dc0736ab2709ab69e0a98d4d61", "relations": [{"rule": 2, "type": "equivalent", "target": "c6848e12d77898fd354005a96d841e99", "evidence": {"same_day": true, "patch_ids": ["3f373b33700d6c8d39f2cab05127a8cc"], "statement_hash": "d3ff5ff9da6ad75039c69754a1904a57bd72e8dc0736ab2709ab69e0a98d4d61"}}, {"rule": 2, "type": "equivalent", "target": "db6ed6bdd1c3a993bf06d196dd6c3b9a", "evidence": {"same_day": true, "patch_ids": ["3f373b33700d6c8d39f2cab05127a8cc"], "statement_hash": "d3ff5ff9da6ad75039c69754a1904a57bd72e8dc0736ab2709ab69e0a98d4d61"}}], "version": "9.6.15", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c6848e12d77898fd354005a96d841e99", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "修复构建目录位于非根 msys 挂载点时 TAP 测试在 msys Perl 下的运行", "evidence": {"same_day": true, "patch_ids": ["3f373b33700d6c8d39f2cab05127a8cc"], "statement_hash": "d3ff5ff9da6ad75039c69754a1904a57bd72e8dc0736ab2709ab69e0a98d4d61"}, "url": "/docs/compare/?release=11.5#11.5-5944f0c4ec69a197", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "db6ed6bdd1c3a993bf06d196dd6c3b9a", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "修复构建目录位于非根 msys 挂载点时 TAP 测试在 msys Perl 下的运行", "evidence": {"same_day": true, "patch_ids": ["3f373b33700d6c8d39f2cab05127a8cc"], "statement_hash": "d3ff5ff9da6ad75039c69754a1904a57bd72e8dc0736ab2709ab69e0a98d4d61"}, "url": "/docs/compare/?release=10.10#10.10-5944f0c4ec69a197", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}]}, {"id": "9.6.15-c2b8949f97b08580", "cves": [], "html": "<p>支持用 Microsoft Visual Studio 2019 构建 Postgres（Haribabu Kommi）</p>", "text": "支持用 Microsoft Visual Studio 2019 构建 Postgres（Haribabu Kommi）", "title": "支持用 Microsoft Visual Studio 2019 构建 Postgres", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "ac6102c0f251708432b0bc309c2124ed830963e56a75a841a620ea4f3d506195", "section_path": ["变更"], "commit_groups": [["0ce8e49b2", "2b1394fc2", "3337fd192", "721963f24", "78aaffd28", "d49c127d9", "f2d069ce9"]], "identity_text": "Support building Postgres with Microsoft Visual Studio 2019 (Haribabu Kommi)", "commit_aliases": ["0ce8e49b2", "2b1394fc2", "3337fd192", "721963f24", "78aaffd28", "d49c127d9", "f2d069ce9"], "source_commits": ["78aaffd28"], "source_entry_id": "9.6.15/changes/019", "db_id": "0e81425d9ba9c954cffb7949ff2b81c0", "patch_ids": ["607ec5d7e45d9dcaeb220656b8fadb2c"], "statement_hash": "aebd4f123e80468f8ba227c891312aade7ff6a7695376ec29d541c28d64d4f9e", "relations": [{"rule": 2, "type": "related", "target": "1db6a4dc5fd31f460b731b1b06a65ee3", "evidence": {"same_day": false, "patch_ids": ["607ec5d7e45d9dcaeb220656b8fadb2c"]}}, {"rule": 2, "type": "equivalent", "target": "21e7e56d3db692178fb7d0bd54fe6e57", "evidence": {"same_day": true, "patch_ids": ["607ec5d7e45d9dcaeb220656b8fadb2c"], "statement_hash": "aebd4f123e80468f8ba227c891312aade7ff6a7695376ec29d541c28d64d4f9e"}}, {"rule": 2, "type": "equivalent", "target": "4b8c493fb7f376ba153f22dbdad54767", "evidence": {"same_day": true, "patch_ids": ["607ec5d7e45d9dcaeb220656b8fadb2c"], "statement_hash": "aebd4f123e80468f8ba227c891312aade7ff6a7695376ec29d541c28d64d4f9e"}}, {"rule": 2, "type": "equivalent", "target": "632436228109ad3b9a3483b7759ec462", "evidence": {"same_day": true, "patch_ids": ["607ec5d7e45d9dcaeb220656b8fadb2c"], "statement_hash": "aebd4f123e80468f8ba227c891312aade7ff6a7695376ec29d541c28d64d4f9e"}}, {"rule": 2, "type": "equivalent", "target": "f70b8de3c87cd0730cef6bf5df43d9ae", "evidence": {"same_day": true, "patch_ids": ["607ec5d7e45d9dcaeb220656b8fadb2c"], "statement_hash": "aebd4f123e80468f8ba227c891312aade7ff6a7695376ec29d541c28d64d4f9e"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1db6a4dc5fd31f460b731b1b06a65ee3", "kind": "related", "version": "13.0", "label": "13.0", "title": "增加使用 Visual Studio 2019 构建的支持", "evidence": {"same_day": false, "patch_ids": ["607ec5d7e45d9dcaeb220656b8fadb2c"]}, "url": "/docs/compare/?release=13.0#13.0-43c29a2a8f7af362", "source_url": "/docs/release/13.0/#id-1.11.6.29.5.13"}, {"db_id": "21e7e56d3db692178fb7d0bd54fe6e57", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "支持使用 Microsoft Visual Studio 2019 构建 Postgres", "evidence": {"same_day": true, "patch_ids": ["607ec5d7e45d9dcaeb220656b8fadb2c"], "statement_hash": "aebd4f123e80468f8ba227c891312aade7ff6a7695376ec29d541c28d64d4f9e"}, "url": "/docs/compare/?release=11.5#11.5-f1148e4d286e76c6", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "4b8c493fb7f376ba153f22dbdad54767", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "支持使用 Microsoft Visual Studio 2019 构建 Postgres", "evidence": {"same_day": true, "patch_ids": ["607ec5d7e45d9dcaeb220656b8fadb2c"], "statement_hash": "aebd4f123e80468f8ba227c891312aade7ff6a7695376ec29d541c28d64d4f9e"}, "url": "/docs/compare/?release=10.10#10.10-f1148e4d286e76c6", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "f70b8de3c87cd0730cef6bf5df43d9ae", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "支持用 Microsoft Visual Studio 2019 构建 Postgres", "evidence": {"same_day": true, "patch_ids": ["607ec5d7e45d9dcaeb220656b8fadb2c"], "statement_hash": "aebd4f123e80468f8ba227c891312aade7ff6a7695376ec29d541c28d64d4f9e"}, "url": "/docs/compare/?release=9.5.19#9.5.19-c2b8949f97b08580", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "632436228109ad3b9a3483b7759ec462", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "支持用 Microsoft Visual Studio 2019 构建 Postgres", "evidence": {"same_day": true, "patch_ids": ["607ec5d7e45d9dcaeb220656b8fadb2c"], "statement_hash": "aebd4f123e80468f8ba227c891312aade7ff6a7695376ec29d541c28d64d4f9e"}, "url": "/docs/compare/?release=9.4.24#9.4.24-c2b8949f97b08580", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-5187a7da6d609a1e", "cves": [], "html": "<p>在 Visual Studio 构建中，尊重 <code>WindowsSDKVersion</code> 环境变量（如果已设置）（Peifeng Qiu）</p>\n<p>这修复了某些配置下的构建失败。</p>", "text": "在 Visual Studio 构建中，尊重 WindowsSDKVersion 环境变量（如果已设置）（Peifeng Qiu） 这修复了某些配置下的构建失败。", "title": "在 Visual Studio 构建中，尊重 WindowsSDKVersion 环境变量（如果已设置）", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "4191bbc291798eda4f8158e9a03a0c872dccb0e8234ac32651b24abf556dfec6", "section_path": ["变更"], "commit_groups": [["09fa17160", "165f4eecf", "20e99cddd", "4f435f78d", "53fd0f04b", "6e5417d77", "fe9e63284"], ["3f1c6d048", "4583605e6", "7ea91ae19", "b24537046", "cb9bb1578", "e465d9d40", "ed304d1e2"]], "identity_text": "In Visual Studio builds, honor WindowsSDKVersion environment variable, if that's set (Peifeng Qiu) This fixes build failures in some configurations.", "commit_aliases": ["09fa17160", "165f4eecf", "20e99cddd", "3f1c6d048", "4583605e6", "4f435f78d", "53fd0f04b", "6e5417d77", "7ea91ae19", "b24537046", "cb9bb1578", "e465d9d40", "ed304d1e2", "fe9e63284"], "source_commits": ["09fa17160", "3f1c6d048"], "source_entry_id": "9.6.15/changes/020", "db_id": "3cf6799c0a9b5dddba8d392a0c1a5057", "patch_ids": ["0b0a0208e4eed00a5ee2853baef70360", "dc70b4b23a093a0f13ae1bed10ebc6a5"], "statement_hash": "c94deba12594ee7753416d13cf77fdefdf50c47db2b032a919e8bd327819dd3e", "relations": [{"rule": 2, "type": "equivalent", "target": "080ea81d99bca631642ed1052021fd5e", "evidence": {"same_day": true, "patch_ids": ["0b0a0208e4eed00a5ee2853baef70360", "dc70b4b23a093a0f13ae1bed10ebc6a5"], "statement_hash": "c94deba12594ee7753416d13cf77fdefdf50c47db2b032a919e8bd327819dd3e"}}, {"rule": 2, "type": "equivalent", "target": "3a1b5f6bba74f14d3b97062ac69c3101", "evidence": {"same_day": true, "patch_ids": ["0b0a0208e4eed00a5ee2853baef70360", "dc70b4b23a093a0f13ae1bed10ebc6a5"], "statement_hash": "c94deba12594ee7753416d13cf77fdefdf50c47db2b032a919e8bd327819dd3e"}}, {"rule": 2, "type": "equivalent", "target": "cb729d691b36ad57b8100562180a6149", "evidence": {"same_day": true, "patch_ids": ["0b0a0208e4eed00a5ee2853baef70360", "dc70b4b23a093a0f13ae1bed10ebc6a5"], "statement_hash": "c94deba12594ee7753416d13cf77fdefdf50c47db2b032a919e8bd327819dd3e"}}, {"rule": 2, "type": "equivalent", "target": "f1a428c57186ca5712e2e8c40a2cc3b0", "evidence": {"same_day": true, "patch_ids": ["0b0a0208e4eed00a5ee2853baef70360", "dc70b4b23a093a0f13ae1bed10ebc6a5"], "statement_hash": "c94deba12594ee7753416d13cf77fdefdf50c47db2b032a919e8bd327819dd3e"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cb729d691b36ad57b8100562180a6149", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "在 Visual Studio 构建中，如果设置了 WindowsSDKVersion 环境变量，则遵循其设置", "evidence": {"same_day": true, "patch_ids": ["0b0a0208e4eed00a5ee2853baef70360", "dc70b4b23a093a0f13ae1bed10ebc6a5"], "statement_hash": "c94deba12594ee7753416d13cf77fdefdf50c47db2b032a919e8bd327819dd3e"}, "url": "/docs/compare/?release=11.5#11.5-76c76fbde690bca1", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "f1a428c57186ca5712e2e8c40a2cc3b0", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "在 Visual Studio 构建中，如果设置了 WindowsSDKVersion 环境变量，则遵循其设置", "evidence": {"same_day": true, "patch_ids": ["0b0a0208e4eed00a5ee2853baef70360", "dc70b4b23a093a0f13ae1bed10ebc6a5"], "statement_hash": "c94deba12594ee7753416d13cf77fdefdf50c47db2b032a919e8bd327819dd3e"}, "url": "/docs/compare/?release=10.10#10.10-76c76fbde690bca1", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "3a1b5f6bba74f14d3b97062ac69c3101", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "在 Visual Studio 构建中，尊重 WindowsSDKVersion 环境变量（如果已设置）", "evidence": {"same_day": true, "patch_ids": ["0b0a0208e4eed00a5ee2853baef70360", "dc70b4b23a093a0f13ae1bed10ebc6a5"], "statement_hash": "c94deba12594ee7753416d13cf77fdefdf50c47db2b032a919e8bd327819dd3e"}, "url": "/docs/compare/?release=9.5.19#9.5.19-5187a7da6d609a1e", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "080ea81d99bca631642ed1052021fd5e", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "在 Visual Studio 构建中，尊重 WindowsSDKVersion 环境变量（如果已设置）", "evidence": {"same_day": true, "patch_ids": ["0b0a0208e4eed00a5ee2853baef70360", "dc70b4b23a093a0f13ae1bed10ebc6a5"], "statement_hash": "c94deba12594ee7753416d13cf77fdefdf50c47db2b032a919e8bd327819dd3e"}, "url": "/docs/compare/?release=9.4.24#9.4.24-5187a7da6d609a1e", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-85980c4e0e7358bf", "cves": [], "html": "<p>在 Visual Studio 构建中支持 OpenSSL 1.1.0 及更新版本（Juan José Santamaría Flecha、Michael Paquier）</p>", "text": "在 Visual Studio 构建中支持 OpenSSL 1.1.0 及更新版本（Juan José Santamaría Flecha、Michael Paquier）", "title": "在 Visual Studio 构建中支持 OpenSSL 1.1.0 及更新版本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "a2591b2d4fd2b2261ca96f02a8647dd006ff405b4ccefbdf5162d49fdd6113d1", "section_path": ["变更"], "commit_groups": [["05b2758c3", "0e08a3a1f", "532960669", "a55980559", "d908a0087", "d993e0fb8"]], "identity_text": "Support OpenSSL 1.1.0 and newer in Visual Studio builds (Juan José Santamaría Flecha, Michael Paquier)", "commit_aliases": ["05b2758c3", "0e08a3a1f", "532960669", "a55980559", "d908a0087", "d993e0fb8"], "source_commits": ["532960669"], "source_entry_id": "9.6.15/changes/021", "db_id": "b5dd8a7d13a16a5383dd9a7459c32830", "patch_ids": ["562b6d58209e71365c6277368696b322"], "statement_hash": "b3cf545640f7dcb4fb99fe9daf559d06b296bff2dc60bb0fd3590e06df3c8e0b", "relations": [{"rule": 2, "type": "equivalent", "target": "146944c3eb978b894ef9dbce813b51c5", "evidence": {"same_day": true, "patch_ids": ["562b6d58209e71365c6277368696b322"], "statement_hash": "b3cf545640f7dcb4fb99fe9daf559d06b296bff2dc60bb0fd3590e06df3c8e0b"}}, {"rule": 2, "type": "equivalent", "target": "308b14a4c61b88fd5d3d03a271606193", "evidence": {"same_day": true, "patch_ids": ["562b6d58209e71365c6277368696b322"], "statement_hash": "b3cf545640f7dcb4fb99fe9daf559d06b296bff2dc60bb0fd3590e06df3c8e0b"}}, {"rule": 2, "type": "equivalent", "target": "3376f057c8d57fa49f9ba4d4948f3a8c", "evidence": {"same_day": true, "patch_ids": ["562b6d58209e71365c6277368696b322"], "statement_hash": "b3cf545640f7dcb4fb99fe9daf559d06b296bff2dc60bb0fd3590e06df3c8e0b"}}, {"rule": 2, "type": "equivalent", "target": "585e5d8fbdcd12f97da18b21f2f71830", "evidence": {"same_day": true, "patch_ids": ["562b6d58209e71365c6277368696b322"], "statement_hash": "b3cf545640f7dcb4fb99fe9daf559d06b296bff2dc60bb0fd3590e06df3c8e0b"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3376f057c8d57fa49f9ba4d4948f3a8c", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "在 Visual Studio 构建中支持 OpenSSL 1.1.0 及更新版本", "evidence": {"same_day": true, "patch_ids": ["562b6d58209e71365c6277368696b322"], "statement_hash": "b3cf545640f7dcb4fb99fe9daf559d06b296bff2dc60bb0fd3590e06df3c8e0b"}, "url": "/docs/compare/?release=11.5#11.5-85980c4e0e7358bf", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "308b14a4c61b88fd5d3d03a271606193", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "在 Visual Studio 构建中支持 OpenSSL 1.1.0 及更新版本", "evidence": {"same_day": true, "patch_ids": ["562b6d58209e71365c6277368696b322"], "statement_hash": "b3cf545640f7dcb4fb99fe9daf559d06b296bff2dc60bb0fd3590e06df3c8e0b"}, "url": "/docs/compare/?release=10.10#10.10-85980c4e0e7358bf", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "146944c3eb978b894ef9dbce813b51c5", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "在 Visual Studio 构建中支持 OpenSSL 1.1.0 及更新版本", "evidence": {"same_day": true, "patch_ids": ["562b6d58209e71365c6277368696b322"], "statement_hash": "b3cf545640f7dcb4fb99fe9daf559d06b296bff2dc60bb0fd3590e06df3c8e0b"}, "url": "/docs/compare/?release=9.5.19#9.5.19-85980c4e0e7358bf", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "585e5d8fbdcd12f97da18b21f2f71830", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "在 Visual Studio 构建中支持 OpenSSL 1.1.0 及更新版本", "evidence": {"same_day": true, "patch_ids": ["562b6d58209e71365c6277368696b322"], "statement_hash": "b3cf545640f7dcb4fb99fe9daf559d06b296bff2dc60bb0fd3590e06df3c8e0b"}, "url": "/docs/compare/?release=9.4.24#9.4.24-85980c4e0e7358bf", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-68409c917c225af8", "cves": [], "html": "<p>允许在顶层调用非 GNU make 时把 <span>make</span> 选项传递给 <span>gmake</span>（Thomas Munro）</p>", "text": "允许在顶层调用非 GNU make 时把 make 选项传递给 gmake（Thomas Munro）", "title": "允许在顶层调用非 GNU make 时把 make 选项传递给 gmake", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "f5fa4d07958775662d7dfa56993093241bcd49746557a892b6cd736beef5cf59", "section_path": ["变更"], "commit_groups": [["0089c3059", "2839bf353", "3a3b361cc", "956611e4c", "9ad5ea82d"]], "identity_text": "Allow make options to be passed down to gmake when non-GNU make is invoked at the top level (Thomas Munro)", "commit_aliases": ["0089c3059", "2839bf353", "3a3b361cc", "956611e4c", "9ad5ea82d"], "source_commits": ["3a3b361cc"], "source_entry_id": "9.6.15/changes/022", "db_id": "2133c3b83b805236e61b5c161d74e10a", "patch_ids": ["7c5da8cc4831bd421c5503f52f2e672b"], "statement_hash": "de2e0d3d12f04c30b0b9ba97321067f114ae9e36626128c925f7b7796b9d1c4c", "relations": [{"rule": 2, "type": "equivalent", "target": "367a44d632adbecc7f19ff59ba53d74d", "evidence": {"same_day": true, "patch_ids": ["7c5da8cc4831bd421c5503f52f2e672b"], "statement_hash": "de2e0d3d12f04c30b0b9ba97321067f114ae9e36626128c925f7b7796b9d1c4c"}}, {"rule": 2, "type": "equivalent", "target": "553a4a7c52d922fe873de9ac4aa62a2b", "evidence": {"same_day": true, "patch_ids": ["7c5da8cc4831bd421c5503f52f2e672b"], "statement_hash": "de2e0d3d12f04c30b0b9ba97321067f114ae9e36626128c925f7b7796b9d1c4c"}}, {"rule": 2, "type": "equivalent", "target": "79f703f315215a6ebacb568ad3d750d4", "evidence": {"same_day": true, "patch_ids": ["7c5da8cc4831bd421c5503f52f2e672b"], "statement_hash": "de2e0d3d12f04c30b0b9ba97321067f114ae9e36626128c925f7b7796b9d1c4c"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "553a4a7c52d922fe873de9ac4aa62a2b", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "在顶层调用非 GNU make 时，允许将 make 选项向下传递给 gmake", "evidence": {"same_day": true, "patch_ids": ["7c5da8cc4831bd421c5503f52f2e672b"], "statement_hash": "de2e0d3d12f04c30b0b9ba97321067f114ae9e36626128c925f7b7796b9d1c4c"}, "url": "/docs/compare/?release=11.5#11.5-fd89bde718084984", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "367a44d632adbecc7f19ff59ba53d74d", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "在顶层调用非 GNU make 时，允许将 make 选项向下传递给 gmake", "evidence": {"same_day": true, "patch_ids": ["7c5da8cc4831bd421c5503f52f2e672b"], "statement_hash": "de2e0d3d12f04c30b0b9ba97321067f114ae9e36626128c925f7b7796b9d1c4c"}, "url": "/docs/compare/?release=10.10#10.10-fd89bde718084984", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "79f703f315215a6ebacb568ad3d750d4", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "允许在顶层调用非 GNU make 时把 make 选项传递给 gmake", "evidence": {"same_day": true, "patch_ids": ["7c5da8cc4831bd421c5503f52f2e672b"], "statement_hash": "de2e0d3d12f04c30b0b9ba97321067f114ae9e36626128c925f7b7796b9d1c4c"}, "url": "/docs/compare/?release=9.5.19#9.5.19-68409c917c225af8", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}]}, {"id": "9.6.15-79926b4459a3945a", "cves": [], "html": "<p>避免 <span>initdb</span> 期间选择 <code>localtime</code> 或 <code>posixrules</code> 作为 <code>TimeZone</code>（Tom Lane）</p>\n<p>某些情况下 <span>initdb</span> 会选择这些人工时区名之一而不是<span>“<span>真实</span>”</span>时区名。让任何其他与 C 库时区行为相匹配的时区都优先于这两个。</p>", "text": "避免 initdb 期间选择 localtime 或 posixrules 作为 TimeZone（Tom Lane） 某些情况下 initdb 会选择这些人工时区名之一而不是“真实”时区名。让任何其他与 C 库时区行为相匹配的时区都优先于这两个。", "title": "避免 initdb 期间选择 localtime 或 posixrules 作为 TimeZone", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "245c6d78e81682bd0caec4dc4d03ff24efb68d7ca6107ae07171ed9eb4d3b940", "section_path": ["变更"], "commit_groups": [["3754113f3", "4459266bf", "51b47471f", "6c4ffab76", "9ef811742", "ae9b91be7", "e31dfe99c"]], "identity_text": "Avoid choosing localtime or posixrules as TimeZone during initdb (Tom Lane) In some cases initdb would choose one of these artificial zone names over the real zone name. Prefer any other match to the C library's timezone behavior over these two.", "commit_aliases": ["3754113f3", "4459266bf", "51b47471f", "6c4ffab76", "9ef811742", "ae9b91be7", "e31dfe99c"], "source_commits": ["51b47471f"], "source_entry_id": "9.6.15/changes/023", "db_id": "75c54bce7e00f2302122362de847a5b0", "patch_ids": ["fd131fa8b8a4461a6064daa8fe8c1db0"], "statement_hash": "35ffa55d1deeb8d498068ccdd098deef71049f39677b2bc78488c831419c6568", "relations": [{"rule": 2, "type": "equivalent", "target": "033ba373303032af152d3ad2101f38ca", "evidence": {"same_day": true, "patch_ids": ["fd131fa8b8a4461a6064daa8fe8c1db0"], "statement_hash": "35ffa55d1deeb8d498068ccdd098deef71049f39677b2bc78488c831419c6568"}}, {"rule": 2, "type": "equivalent", "target": "5a13f504e355439184c44ee579a48f82", "evidence": {"same_day": true, "patch_ids": ["fd131fa8b8a4461a6064daa8fe8c1db0"], "statement_hash": "35ffa55d1deeb8d498068ccdd098deef71049f39677b2bc78488c831419c6568"}}, {"rule": 2, "type": "equivalent", "target": "77053372da7af5c46b1bec1d886d85a8", "evidence": {"same_day": true, "patch_ids": ["fd131fa8b8a4461a6064daa8fe8c1db0"], "statement_hash": "35ffa55d1deeb8d498068ccdd098deef71049f39677b2bc78488c831419c6568"}}, {"rule": 2, "type": "equivalent", "target": "df87d555f2babb058977abd9daf3ecfd", "evidence": {"same_day": true, "patch_ids": ["fd131fa8b8a4461a6064daa8fe8c1db0"], "statement_hash": "35ffa55d1deeb8d498068ccdd098deef71049f39677b2bc78488c831419c6568"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "77053372da7af5c46b1bec1d886d85a8", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "在 initdb 期间，避免选择 localtime 或 posixrules 作为 TimeZone", "evidence": {"same_day": true, "patch_ids": ["fd131fa8b8a4461a6064daa8fe8c1db0"], "statement_hash": "35ffa55d1deeb8d498068ccdd098deef71049f39677b2bc78488c831419c6568"}, "url": "/docs/compare/?release=11.5#11.5-0fed084502e27e32", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "033ba373303032af152d3ad2101f38ca", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "在 initdb 期间，避免选择 localtime 或 posixrules 作为 TimeZone", "evidence": {"same_day": true, "patch_ids": ["fd131fa8b8a4461a6064daa8fe8c1db0"], "statement_hash": "35ffa55d1deeb8d498068ccdd098deef71049f39677b2bc78488c831419c6568"}, "url": "/docs/compare/?release=10.10#10.10-0fed084502e27e32", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "5a13f504e355439184c44ee579a48f82", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "避免 initdb 期间选择 localtime 或 posixrules 作为 TimeZone", "evidence": {"same_day": true, "patch_ids": ["fd131fa8b8a4461a6064daa8fe8c1db0"], "statement_hash": "35ffa55d1deeb8d498068ccdd098deef71049f39677b2bc78488c831419c6568"}, "url": "/docs/compare/?release=9.5.19#9.5.19-79926b4459a3945a", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "df87d555f2babb058977abd9daf3ecfd", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "避免 initdb 期间选择 localtime 或 posixrules 作为 TimeZone", "evidence": {"same_day": true, "patch_ids": ["fd131fa8b8a4461a6064daa8fe8c1db0"], "statement_hash": "35ffa55d1deeb8d498068ccdd098deef71049f39677b2bc78488c831419c6568"}, "url": "/docs/compare/?release=9.4.24#9.4.24-79926b4459a3945a", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-8a4194fc6d4f531d", "cves": [], "html": "<p>调整 <code>pg_timezone_names</code> 视图，使其仅当 <code>Factory</code> 时区有短缩写时才显示它（Tom Lane）</p>\n<p>历史上，IANA 为这个人工时区设置的<span>“<span>缩写</span>”</span>形如 <code>Local time zone must be set--see zic manual page</code>。现代版本的 tzdb 数据库显示 <code>-00</code>，但某些平台修改了数据以显示历史措辞之一或另一个。仅当该时区使用现代缩写时才显示它。</p>", "text": "调整 pg_timezone_names 视图，使其仅当 Factory 时区有短缩写时才显示它（Tom Lane） 历史上，IANA 为这个人工时区设置的“缩写”形如 Local time zone must be set--see zic manual page。现代版本的 tzdb 数据库显示 -00，但某些平台修改了数据以显示历史措辞之一或另一个。仅当该时区使用现代缩写时才显示它。", "title": "调整 pg_timezone_names 视图，使其仅当 Factory 时区有短缩写时才显示它", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "46366316293d6ea35319b7f0c4a53ba5db83bfc972689a9270565e90c61bdc67", "section_path": ["变更"], "commit_groups": [["55862b2e9", "8ab66081c", "d095b2fe6", "d304313b0", "e49132e63", "f227aecb9", "f6c7c64e9"]], "identity_text": "Adjust pg_timezone_names view to show the Factory time zone if and only if it has a short abbreviation (Tom Lane) Historically, IANA set up this artificial zone with an abbreviation like Local time zone must be set--see zic manual page. Modern versions of the tzdb database show -00 instead, but some platforms alter the data to show one or another of the historical phrases. Show this zone only if it uses the modern abbreviation.", "commit_aliases": ["55862b2e9", "8ab66081c", "d095b2fe6", "d304313b0", "e49132e63", "f227aecb9", "f6c7c64e9"], "source_commits": ["f6c7c64e9"], "source_entry_id": "9.6.15/changes/024", "db_id": "3044626b654d3861e33a608bbce560fb", "patch_ids": ["7a108e63776bc2dc495e31bffc849802"], "statement_hash": "c16b7760a6738c6a18416de6022303d6f27163d551ae91c82a174c28b53a5a02", "relations": [{"rule": 2, "type": "equivalent", "target": "14c34882fd6a6bc89f3dcb4a8a32b473", "evidence": {"same_day": true, "patch_ids": ["7a108e63776bc2dc495e31bffc849802"], "statement_hash": "c16b7760a6738c6a18416de6022303d6f27163d551ae91c82a174c28b53a5a02"}}, {"rule": 2, "type": "equivalent", "target": "68837577519dd64c99025c999bffe36e", "evidence": {"same_day": true, "patch_ids": ["7a108e63776bc2dc495e31bffc849802"], "statement_hash": "c16b7760a6738c6a18416de6022303d6f27163d551ae91c82a174c28b53a5a02"}}, {"rule": 2, "type": "equivalent", "target": "6e8de7df6e0762293df9c27ee3bd9ec2", "evidence": {"same_day": true, "patch_ids": ["7a108e63776bc2dc495e31bffc849802"], "statement_hash": "c16b7760a6738c6a18416de6022303d6f27163d551ae91c82a174c28b53a5a02"}}, {"rule": 2, "type": "equivalent", "target": "e2690d514420ed8436f89b08744ca88d", "evidence": {"same_day": true, "patch_ids": ["7a108e63776bc2dc495e31bffc849802"], "statement_hash": "c16b7760a6738c6a18416de6022303d6f27163d551ae91c82a174c28b53a5a02"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "14c34882fd6a6bc89f3dcb4a8a32b473", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "调整 pg_timezone_names 视图，使其仅在 Factory 时区具有简短缩写时才显示它", "evidence": {"same_day": true, "patch_ids": ["7a108e63776bc2dc495e31bffc849802"], "statement_hash": "c16b7760a6738c6a18416de6022303d6f27163d551ae91c82a174c28b53a5a02"}, "url": "/docs/compare/?release=11.5#11.5-4fa250ad4c1f5480", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "e2690d514420ed8436f89b08744ca88d", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "调整 pg_timezone_names 视图，使其仅在 Factory 时区具有简短缩写时才显示它", "evidence": {"same_day": true, "patch_ids": ["7a108e63776bc2dc495e31bffc849802"], "statement_hash": "c16b7760a6738c6a18416de6022303d6f27163d551ae91c82a174c28b53a5a02"}, "url": "/docs/compare/?release=10.10#10.10-4fa250ad4c1f5480", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "68837577519dd64c99025c999bffe36e", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "调整 pg_timezone_names 视图，使其仅当 Factory 时区有短缩写时才显示它", "evidence": {"same_day": true, "patch_ids": ["7a108e63776bc2dc495e31bffc849802"], "statement_hash": "c16b7760a6738c6a18416de6022303d6f27163d551ae91c82a174c28b53a5a02"}, "url": "/docs/compare/?release=9.5.19#9.5.19-8a4194fc6d4f531d", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "6e8de7df6e0762293df9c27ee3bd9ec2", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "调整 pg_timezone_names 视图，使其仅当 Factory 时区有短缩写时才显示它", "evidence": {"same_day": true, "patch_ids": ["7a108e63776bc2dc495e31bffc849802"], "statement_hash": "c16b7760a6738c6a18416de6022303d6f27163d551ae91c82a174c28b53a5a02"}, "url": "/docs/compare/?release=9.4.24#9.4.24-8a4194fc6d4f531d", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-d1d3fdde8fc8a8b5", "cves": [], "html": "<p>把我们的时区库副本与 IANA tzcode 版本 2019b 同步（Tom Lane）</p>\n<p>这增加了对 <span>zic</span> 新的 <code>-b slim</code> 选项的支持，以缩小安装的时区文件。我们目前没有使用它，但将来可能启用。</p>", "text": "把我们的时区库副本与 IANA tzcode 版本 2019b 同步（Tom Lane） 这增加了对 zic 新的 -b slim 选项的支持，以缩小安装的时区文件。我们目前没有使用它，但将来可能启用。", "title": "把我们的时区库副本与 IANA tzcode 版本 2019b 同步", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "8368488dffbdac60edf3a22779e7d6d2c8b1312b63d858686a60203afda9c20e", "section_path": ["变更"], "commit_groups": [["1d1ff50d2", "22e73dea3", "417845646", "59cea8f36", "6db29a8fc", "ccc323b57", "f285322f9"], ["421466863", "533522846", "847561c1d", "8a4fa297a", "caa22d72a", "e480d8350", "ee9417a04"]], "identity_text": "Sync our copy of the timezone library with IANA tzcode release 2019b (Tom Lane) This adds support for zic's new -b slim option to reduce the size of the installed zone files. We are not currently using that, but may enable it in future.", "commit_aliases": ["1d1ff50d2", "22e73dea3", "417845646", "421466863", "533522846", "59cea8f36", "6db29a8fc", "847561c1d", "8a4fa297a", "caa22d72a", "ccc323b57", "e480d8350", "ee9417a04", "f285322f9"], "source_commits": ["22e73dea3", "e480d8350"], "source_entry_id": "9.6.15/changes/025", "db_id": "b33f40e33ec82a24d3017ce45ab435d6", "patch_ids": ["7f33d402225bc3e2d977b4bf937b9737", "e1850c16de3d2f00f0fa58a1cac6064c"], "statement_hash": "e3ab5a0fc260ddbb620e8e206addd3f1b4c419748364631ac6b9000472de8ed6", "relations": [{"rule": 2, "type": "equivalent", "target": "297028b8c175881017159644c7810a31", "evidence": {"same_day": true, "patch_ids": ["7f33d402225bc3e2d977b4bf937b9737", "e1850c16de3d2f00f0fa58a1cac6064c"], "statement_hash": "e3ab5a0fc260ddbb620e8e206addd3f1b4c419748364631ac6b9000472de8ed6"}}, {"rule": 2, "type": "equivalent", "target": "66704aa46bc346ce49af8b4232115efc", "evidence": {"same_day": true, "patch_ids": ["7f33d402225bc3e2d977b4bf937b9737", "e1850c16de3d2f00f0fa58a1cac6064c"], "statement_hash": "e3ab5a0fc260ddbb620e8e206addd3f1b4c419748364631ac6b9000472de8ed6"}}, {"rule": 2, "type": "equivalent", "target": "b67ca0d937f4b5114307e258fe7ce818", "evidence": {"same_day": true, "patch_ids": ["7f33d402225bc3e2d977b4bf937b9737", "e1850c16de3d2f00f0fa58a1cac6064c"], "statement_hash": "e3ab5a0fc260ddbb620e8e206addd3f1b4c419748364631ac6b9000472de8ed6"}}, {"rule": 2, "type": "equivalent", "target": "ea533fe16899568bc48a569550740487", "evidence": {"same_day": true, "patch_ids": ["7f33d402225bc3e2d977b4bf937b9737", "e1850c16de3d2f00f0fa58a1cac6064c"], "statement_hash": "e3ab5a0fc260ddbb620e8e206addd3f1b4c419748364631ac6b9000472de8ed6"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ea533fe16899568bc48a569550740487", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "将我们使用的时区库副本同步到 IANA tzcode 2019b 版", "evidence": {"same_day": true, "patch_ids": ["7f33d402225bc3e2d977b4bf937b9737", "e1850c16de3d2f00f0fa58a1cac6064c"], "statement_hash": "e3ab5a0fc260ddbb620e8e206addd3f1b4c419748364631ac6b9000472de8ed6"}, "url": "/docs/compare/?release=11.5#11.5-eefa1789b8288996", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "66704aa46bc346ce49af8b4232115efc", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "将我们使用的时区库副本同步到 IANA tzcode 2019b 版", "evidence": {"same_day": true, "patch_ids": ["7f33d402225bc3e2d977b4bf937b9737", "e1850c16de3d2f00f0fa58a1cac6064c"], "statement_hash": "e3ab5a0fc260ddbb620e8e206addd3f1b4c419748364631ac6b9000472de8ed6"}, "url": "/docs/compare/?release=10.10#10.10-eefa1789b8288996", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "b67ca0d937f4b5114307e258fe7ce818", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "把我们的时区库副本与 IANA tzcode 版本 2019b 同步", "evidence": {"same_day": true, "patch_ids": ["7f33d402225bc3e2d977b4bf937b9737", "e1850c16de3d2f00f0fa58a1cac6064c"], "statement_hash": "e3ab5a0fc260ddbb620e8e206addd3f1b4c419748364631ac6b9000472de8ed6"}, "url": "/docs/compare/?release=9.5.19#9.5.19-d1d3fdde8fc8a8b5", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "297028b8c175881017159644c7810a31", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "把我们的时区库副本与 IANA tzcode 版本 2019b 同步", "evidence": {"same_day": true, "patch_ids": ["7f33d402225bc3e2d977b4bf937b9737", "e1850c16de3d2f00f0fa58a1cac6064c"], "statement_hash": "e3ab5a0fc260ddbb620e8e206addd3f1b4c419748364631ac6b9000472de8ed6"}, "url": "/docs/compare/?release=9.4.24#9.4.24-d1d3fdde8fc8a8b5", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}, {"id": "9.6.15-b9c270ea302914d5", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2019b，涉及巴西的夏令时法规变更，以及香港、意大利和巴勒斯坦的历史修正。</p>", "text": "更新时区数据文件到 tzdata 版本 2019b，涉及巴西的夏令时法规变更，以及香港、意大利和巴勒斯坦的历史修正。", "title": "更新时区数据文件到 tzdata 版本 2019b，涉及巴西的夏令时法规变更，以及香港、意大利和巴勒斯坦的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.15/#id-1.11.6.14.5", "source_hash": "50d8c502f5c868f2d611e8d5147e7379baa3dbd7eb79080f4f4c3fe4050322f5", "section_path": ["变更"], "commit_groups": [["53256e892", "8474656d9", "93907478e", "a0c905f23", "bcafb675a", "d4f283162", "e3441b2a2"]], "identity_text": "Update time zone data files to tzdata release 2019b for DST law changes in Brazil, plus historical corrections for Hong Kong, Italy, and Palestine.", "commit_aliases": ["53256e892", "8474656d9", "93907478e", "a0c905f23", "bcafb675a", "d4f283162", "e3441b2a2"], "source_commits": ["e3441b2a2"], "source_entry_id": "9.6.15/changes/026", "db_id": "70c9c93891f4fa24bd7d895981d079eb", "patch_ids": ["0f1540aee091ba8ff6fe78f53e0b74dd"], "statement_hash": "6d732895efa004b27a61a334019a52f16fb169bb69d438150092c54b3e8fb989", "relations": [{"rule": 2, "type": "equivalent", "target": "402ac918a8402137d85c11e35e716686", "evidence": {"same_day": true, "patch_ids": ["0f1540aee091ba8ff6fe78f53e0b74dd"], "statement_hash": "6d732895efa004b27a61a334019a52f16fb169bb69d438150092c54b3e8fb989"}}, {"rule": 2, "type": "equivalent", "target": "9c3341e8f4d5fb8e50cfd0e22095dbb9", "evidence": {"same_day": true, "patch_ids": ["0f1540aee091ba8ff6fe78f53e0b74dd"], "statement_hash": "6d732895efa004b27a61a334019a52f16fb169bb69d438150092c54b3e8fb989"}}, {"rule": 2, "type": "equivalent", "target": "ed0eefba318199db1daa78df9e376570", "evidence": {"same_day": true, "patch_ids": ["0f1540aee091ba8ff6fe78f53e0b74dd"], "statement_hash": "6d732895efa004b27a61a334019a52f16fb169bb69d438150092c54b3e8fb989"}}, {"rule": 2, "type": "equivalent", "target": "f3ef38a6e778452ae46b46d3f5bbc7bd", "evidence": {"same_day": true, "patch_ids": ["0f1540aee091ba8ff6fe78f53e0b74dd"], "statement_hash": "6d732895efa004b27a61a334019a52f16fb169bb69d438150092c54b3e8fb989"}}], "version": "9.6.15", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed0eefba318199db1daa78df9e376570", "kind": "equivalent", "version": "11.5", "label": "11.5", "title": "将时区数据文件更新到 tzdata 2019b 版，以反映巴西的夏令时法规变更，并修正香港、意大利和巴勒斯坦的历史数据。", "evidence": {"same_day": true, "patch_ids": ["0f1540aee091ba8ff6fe78f53e0b74dd"], "statement_hash": "6d732895efa004b27a61a334019a52f16fb169bb69d438150092c54b3e8fb989"}, "url": "/docs/compare/?release=11.5#11.5-0dfc09ac88c04867", "source_url": "/docs/release/11.5/#id-1.11.6.22.5"}, {"db_id": "9c3341e8f4d5fb8e50cfd0e22095dbb9", "kind": "equivalent", "version": "10.10", "label": "10.10", "title": "将时区数据文件更新到 tzdata 2019b 版，以反映巴西的夏令时法规变更，并修正香港、意大利和巴勒斯坦的历史数据。", "evidence": {"same_day": true, "patch_ids": ["0f1540aee091ba8ff6fe78f53e0b74dd"], "statement_hash": "6d732895efa004b27a61a334019a52f16fb169bb69d438150092c54b3e8fb989"}, "url": "/docs/compare/?release=10.10#10.10-0dfc09ac88c04867", "source_url": "/docs/release/10.10/#id-1.11.6.18.5"}, {"db_id": "402ac918a8402137d85c11e35e716686", "kind": "equivalent", "version": "9.5.19", "label": "9.5.19", "title": "更新时区数据文件到 tzdata 版本 2019b，涉及巴西的夏令时法规变更，以及香港、意大利和巴勒斯坦的历史修正。", "evidence": {"same_day": true, "patch_ids": ["0f1540aee091ba8ff6fe78f53e0b74dd"], "statement_hash": "6d732895efa004b27a61a334019a52f16fb169bb69d438150092c54b3e8fb989"}, "url": "/docs/compare/?release=9.5.19#9.5.19-b9c270ea302914d5", "source_url": "/docs/release/9.5.19/#id-1.11.6.11.5"}, {"db_id": "f3ef38a6e778452ae46b46d3f5bbc7bd", "kind": "equivalent", "version": "9.4.24", "label": "9.4.24", "title": "更新时区数据文件到 tzdata 版本 2019b，涉及巴西的夏令时法规变更，以及香港、意大利和巴勒斯坦的历史修正。", "evidence": {"same_day": true, "patch_ids": ["0f1540aee091ba8ff6fe78f53e0b74dd"], "statement_hash": "6d732895efa004b27a61a334019a52f16fb169bb69d438150092c54b3e8fb989"}, "url": "/docs/compare/?release=9.4.24#9.4.24-b9c270ea302914d5", "source_url": "/docs/release/9.4.24/#id-1.11.6.7.6"}]}]}, {"date": "2019-06-20", "build": "9.6.14", "major": "9.6", "minor": 14, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.14", "eol_date": "2021-11-11", "date_text": "2019-06-20", "supported": false, "manual_url": "/docs/9.6/release-9-6-14.html", "source_url": "/docs/release/9.6.14/", "entry_count": 17, "placeholder": false, "content_hash": "10271b201bbe9636692c73f4d144160416cd8f3ea3f1168fc8f6ad4656fb939f", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 17, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.9 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-9.html\" title=\"E.16. 版本 9.6.9\">第 E.16 节</a>。</p>", "compatibility_count": 0, "label": "9.6.14", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2659, "support_days": -1784, "entries": [{"id": "9.6.14-5cf79602a6b27f1b", "cves": [], "html": "<p>修复表带有部分排他约束时 <code>ALTER TABLE ... ALTER COLUMN TYPE</code> 的失败（Tom Lane）</p>", "text": "修复表带有部分排他约束时 ALTER TABLE ... ALTER COLUMN TYPE 的失败（Tom Lane）", "title": "修复表带有部分排他约束时 ALTER TABLE ... ALTER COLUMN TYPE 的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "dd78f5c3da031fb7de4219cc56e03160053a03e93a28807fed0b1aed84bc501f", "section_path": ["变更"], "commit_groups": [["0b6edb9fb", "2981e5a61", "77d45b790", "9695ecf36", "e76de8861", "f7e99de95"]], "identity_text": "Fix failure of ALTER TABLE ... ALTER COLUMN TYPE when the table has a partial exclusion constraint (Tom Lane)", "commit_aliases": ["0b6edb9fb", "2981e5a61", "77d45b790", "9695ecf36", "e76de8861", "f7e99de95"], "source_commits": ["77d45b790"], "source_entry_id": "9.6.14/changes/001", "db_id": "85f75aeb03f367134a4e7d7856d2df24", "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d", "relations": [{"rule": 2, "type": "equivalent", "target": "18897c934331d00b6064b3b740544c2f", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}}, {"rule": 2, "type": "equivalent", "target": "1b3fbedb7ce3b15faea5f177e5baf868", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}}, {"rule": 2, "type": "equivalent", "target": "419daf02f3a6d744d20dc80723fff2eb", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}}, {"rule": 2, "type": "equivalent", "target": "c48bc4f5d4f181dca0cb27b2d1bed2fe", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}}], "version": "9.6.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "18897c934331d00b6064b3b740544c2f", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "修复表具有部分排除约束时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}, "url": "/docs/compare/?release=11.4#11.4-3c529015978dbea0", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "c48bc4f5d4f181dca0cb27b2d1bed2fe", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复表具有部分排除约束时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}, "url": "/docs/compare/?release=10.9#10.9-3c529015978dbea0", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "419daf02f3a6d744d20dc80723fff2eb", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复表带有部分排他约束时 ALTER TABLE ... ALTER COLUMN TYPE 的失败", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}, "url": "/docs/compare/?release=9.5.18#9.5.18-5cf79602a6b27f1b", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "1b3fbedb7ce3b15faea5f177e5baf868", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "修复表带有部分排他约束时 ALTER TABLE ... ALTER COLUMN TYPE 的失败", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}, "url": "/docs/compare/?release=9.4.23#9.4.23-5cf79602a6b27f1b", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "9.6.14-52ae89e3d8d9d34e", "cves": [], "html": "<p>修复对域约束的注释执行 <code>COMMENT</code> 命令的失败（Daniel Gustafsson、Michael Paquier）</p>", "text": "修复对域约束的注释执行 COMMENT 命令的失败（Daniel Gustafsson、Michael Paquier）", "title": "修复对域约束的注释执行 COMMENT 命令的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "daea23416499ddc5020ab071839ca70d116367a0418554c88b9e053cbc431b82", "section_path": ["变更"], "commit_groups": [["13f4b462d", "56a932533", "ceac4505d", "fa5f3a4bc", "ff1a25601"]], "identity_text": "Fix failure of COMMENT command for comments on domain constraints (Daniel Gustafsson, Michael Paquier)", "commit_aliases": ["13f4b462d", "56a932533", "ceac4505d", "fa5f3a4bc", "ff1a25601"], "source_commits": ["ff1a25601"], "source_entry_id": "9.6.14/changes/002", "db_id": "ee498eacefe406ea41e1f63a6327d0e1", "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959", "relations": [{"rule": 2, "type": "equivalent", "target": "3a66c80262abd3c1e5dd6dd62c58ff1d", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}}, {"rule": 2, "type": "equivalent", "target": "79a41d1452c9d46df4bec0272f1d4838", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}}, {"rule": 2, "type": "equivalent", "target": "c5f7cdf209f60043884dc3da739e8029", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}}], "version": "9.6.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c5f7cdf209f60043884dc3da739e8029", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "修复为域约束添加注释时 COMMENT 命令发生的失败", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}, "url": "/docs/compare/?release=11.4#11.4-df7e7ef88eea914c", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "79a41d1452c9d46df4bec0272f1d4838", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复为域约束添加注释时 COMMENT 命令发生的失败", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}, "url": "/docs/compare/?release=10.9#10.9-df7e7ef88eea914c", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "3a66c80262abd3c1e5dd6dd62c58ff1d", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复对域约束的注释执行 COMMENT 命令的失败", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}, "url": "/docs/compare/?release=9.5.18#9.5.18-52ae89e3d8d9d34e", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}]}, {"id": "9.6.14-b68c93aa9028cec6", "cves": [], "html": "<p>修复 merge-append 计划的错误生成（Tom Lane）</p>\n<p>这个错误可能导致 <span>“<span>could not find pathkey item to sort</span>”</span> 错误。</p>", "text": "修复 merge-append 计划的错误生成（Tom Lane） 这个错误可能导致 “could not find pathkey item to sort” 错误。", "title": "修复 merge-append 计划的错误生成", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "ec39dbf4e47a8a606b547aa9d61bc67e805d8c039326763aacb4376bed573c3d", "section_path": ["变更"], "commit_groups": [["24c19e9f6", "3203714c3", "946cdf9ff", "e7eed0baa"]], "identity_text": "Fix faulty generation of merge-append plans (Tom Lane) This mistake could lead to could not find pathkey item to sort errors.", "commit_aliases": ["24c19e9f6", "3203714c3", "946cdf9ff", "e7eed0baa"], "source_commits": ["3203714c3"], "source_entry_id": "9.6.14/changes/003", "db_id": "b32f124390c285c0e20c08d549e13970", "patch_ids": ["363084a9954b00c7f8fe32ec5f126608"], "statement_hash": "627a469b6c79c8c5dd8282d7d80999ba306640e08bfe0ce2fe4515e3cd4b566f", "relations": [{"rule": 2, "type": "equivalent", "target": "62554619cae9c1ecfe9f3de71c890f8f", "evidence": {"same_day": true, "patch_ids": ["363084a9954b00c7f8fe32ec5f126608"], "statement_hash": "627a469b6c79c8c5dd8282d7d80999ba306640e08bfe0ce2fe4515e3cd4b566f"}}, {"rule": 2, "type": "equivalent", "target": "edfe87ff847c896915764836605aa6d6", "evidence": {"same_day": true, "patch_ids": ["363084a9954b00c7f8fe32ec5f126608"], "statement_hash": "627a469b6c79c8c5dd8282d7d80999ba306640e08bfe0ce2fe4515e3cd4b566f"}}], "version": "9.6.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "edfe87ff847c896915764836605aa6d6", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "修复归并追加计划的错误生成", "evidence": {"same_day": true, "patch_ids": ["363084a9954b00c7f8fe32ec5f126608"], "statement_hash": "627a469b6c79c8c5dd8282d7d80999ba306640e08bfe0ce2fe4515e3cd4b566f"}, "url": "/docs/compare/?release=11.4#11.4-7fc9e8d86657e23d", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "62554619cae9c1ecfe9f3de71c890f8f", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复归并追加计划的错误生成", "evidence": {"same_day": true, "patch_ids": ["363084a9954b00c7f8fe32ec5f126608"], "statement_hash": "627a469b6c79c8c5dd8282d7d80999ba306640e08bfe0ce2fe4515e3cd4b566f"}, "url": "/docs/compare/?release=10.9#10.9-7fc9e8d86657e23d", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}]}, {"id": "9.6.14-7b4f811fceeb4bff", "cves": [], "html": "<p>修复带重复连接名的查询的错误打印（Philip Dubé）</p>\n<p>这一疏漏导致包含此类查询的视图在转储/恢复时失败。</p>", "text": "修复带重复连接名的查询的错误打印（Philip Dubé） 这一疏漏导致包含此类查询的视图在转储/恢复时失败。", "title": "修复带重复连接名的查询的错误打印", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "9ee159ed3109c4b0f0bf1c1ffffedca601b89fb052b78ff94e7c67f0079c35ab", "section_path": ["变更"], "commit_groups": [["30d3df0a7", "3d99a8139", "8ace51a6b", "ad3e61b28", "bf612fd3a", "f95d8f810"]], "identity_text": "Fix incorrect printing of queries with duplicate join names (Philip Dubé) This oversight caused a dump/restore failure for views containing such queries.", "commit_aliases": ["30d3df0a7", "3d99a8139", "8ace51a6b", "ad3e61b28", "bf612fd3a", "f95d8f810"], "source_commits": ["ad3e61b28"], "source_entry_id": "9.6.14/changes/004", "db_id": "da9f7a3369239a5bbd2afff9bc43dcf1", "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1", "relations": [{"rule": 2, "type": "equivalent", "target": "2656cbfb941f38df372fc01f0006353b", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}}, {"rule": 2, "type": "equivalent", "target": "7a23f8ee65e5b7bcee65cd28cfc4b10c", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}}, {"rule": 2, "type": "equivalent", "target": "b99a1ae1d7541f85fbc0194f8c662e0d", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}}, {"rule": 2, "type": "equivalent", "target": "ce621bfa11fdf4057e33a07171485043", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}}], "version": "9.6.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2656cbfb941f38df372fc01f0006353b", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "修复带有重复连接名称的查询的不正确输出", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}, "url": "/docs/compare/?release=11.4#11.4-67f47b7727df0059", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "ce621bfa11fdf4057e33a07171485043", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复带有重复连接名称的查询的不正确输出", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}, "url": "/docs/compare/?release=10.9#10.9-67f47b7727df0059", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "7a23f8ee65e5b7bcee65cd28cfc4b10c", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复带重复连接名的查询的错误打印", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}, "url": "/docs/compare/?release=9.5.18#9.5.18-7b4f811fceeb4bff", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "b99a1ae1d7541f85fbc0194f8c662e0d", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "修复带重复连接名的查询的错误打印", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}, "url": "/docs/compare/?release=9.4.23#9.4.23-7b4f811fceeb4bff", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "9.6.14-bbac378f1b5576b4", "cves": [], "html": "<p>修复正则表达式中 <code>{1,1}</code> 量词的错误优化（Tom Lane）</p>\n<p>此类量词被当作无操作而被优化掉；但文档规定它们会给所附加的子表达式施加贪婪性，或者对于非贪婪变体 <code>{1,1}?</code> 施加非贪婪性，而这没有发生。只有当子表达式包含捕获圆括号或反向引用时才会出现错误行为。</p>", "text": "修复正则表达式中 {1,1} 量词的错误优化（Tom Lane） 此类量词被当作无操作而被优化掉；但文档规定它们会给所附加的子表达式施加贪婪性，或者对于非贪婪变体 {1,1}? 施加非贪婪性，而这没有发生。只有当子表达式包含捕获圆括号或反向引用时才会出现错误行为。", "title": "修复正则表达式中 {1,1} 量词的错误优化", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "d81285e2a6306328b7c7897fbe58a4cf22c84c87d06d87f42e658d55b790921f", "section_path": ["变更"], "commit_groups": [["2a3dbc151", "72ce7acaf", "8a29ed053", "940f64792", "b1ca28e57", "d6de52636"]], "identity_text": "Fix misoptimization of {1,1} quantifiers in regular expressions (Tom Lane) Such quantifiers were treated as no-ops and optimized away; but the documentation specifies that they impose greediness, or non-greediness in the case of the non-greedy variant {1,1}?, on the subexpression they're attached to, and this did not happen. The misbehavior occurred only if the subexpression contained capturing parentheses or a back-reference.", "commit_aliases": ["2a3dbc151", "72ce7acaf", "8a29ed053", "940f64792", "b1ca28e57", "d6de52636"], "source_commits": ["2a3dbc151"], "source_entry_id": "9.6.14/changes/005", "db_id": "eefeca727b65b78b84cd66b05dece669", "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e", "relations": [{"rule": 2, "type": "equivalent", "target": "5e71394b1e33172a8be827640e5a6a78", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}}, {"rule": 2, "type": "equivalent", "target": "73174114b265ccd1c2f268378a985efd", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}}, {"rule": 2, "type": "equivalent", "target": "b4eb6bb752d8331ff2cfbda5d1e99af5", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}}, {"rule": 2, "type": "equivalent", "target": "e7491dfd0c36ebf8bbd54223bb1aa144", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}}], "version": "9.6.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e71394b1e33172a8be827640e5a6a78", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "修复对正则表达式中 {1,1} 量词的不正确优化", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}, "url": "/docs/compare/?release=11.4#11.4-11cc1d08b880a592", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "e7491dfd0c36ebf8bbd54223bb1aa144", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复对正则表达式中 {1,1} 量词的不正确优化", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}, "url": "/docs/compare/?release=10.9#10.9-11cc1d08b880a592", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "73174114b265ccd1c2f268378a985efd", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复正则表达式中 {1,1} 量词的错误优化", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}, "url": "/docs/compare/?release=9.5.18#9.5.18-bbac378f1b5576b4", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "b4eb6bb752d8331ff2cfbda5d1e99af5", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "修复正则表达式中 {1,1} 量词的错误优化", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}, "url": "/docs/compare/?release=9.4.23#9.4.23-bbac378f1b5576b4", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "9.6.14-a04ff3c749a3df8c", "cves": [], "html": "<p>避免初始化新进程的 <code>pg_stat_activity</code> 数据时可能的失败（Tom Lane）</p>\n<p>某些可能失败的操作（如把从 SSL 证书提取的字符串转换为数据库编码）在关键节内执行。那里的失败会因违反共享 <code>pg_stat_activity</code> 数据的访问协议而导致数据库范围的锁死。</p>", "text": "避免初始化新进程的 pg_stat_activity 数据时可能的失败（Tom Lane） 某些可能失败的操作（如把从 SSL 证书提取的字符串转换为数据库编码）在关键节内执行。那里的失败会因违反共享 pg_stat_activity 数据的访问协议而导致数据库范围的锁死。", "title": "避免初始化新进程的 pg_stat_activity 数据时可能的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "29634793872d0eb4e9b98fcd6dc8c6784a0775f5265fd6d17854857226f28767", "section_path": ["变更"], "commit_groups": [["27d3394b0", "85ccb6899", "899f943ca", "c3d113136", "eb97242c2"]], "identity_text": "Avoid possible failures while initializing a new process's pg_stat_activity data (Tom Lane) Certain operations that could fail, such as converting strings extracted from an SSL certificate into the database encoding, were being performed inside a critical section. Failure there would result in database-wide lockup due to violating the access protocol for shared pg_stat_activity data.", "commit_aliases": ["27d3394b0", "85ccb6899", "899f943ca", "c3d113136", "eb97242c2"], "source_commits": ["27d3394b0"], "source_entry_id": "9.6.14/changes/006", "db_id": "492bd8985c7481282eea942553923e5f", "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2", "relations": [{"rule": 2, "type": "equivalent", "target": "43e222b888f6d339b2194a80c5baae97", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}}, {"rule": 2, "type": "equivalent", "target": "46e0c783bccee3bc419a5a80c387d23d", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}}, {"rule": 2, "type": "equivalent", "target": "9136839290a792e7abadf4853fa80afc", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}}], "version": "9.6.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "43e222b888f6d339b2194a80c5baae97", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "避免初始化新进程的 pg_stat_activity 数据时可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}, "url": "/docs/compare/?release=11.4#11.4-d74f32f0a1227844", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "46e0c783bccee3bc419a5a80c387d23d", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "避免初始化新进程的 pg_stat_activity 数据时可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}, "url": "/docs/compare/?release=10.9#10.9-d74f32f0a1227844", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "9136839290a792e7abadf4853fa80afc", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "避免初始化新进程的 pg_stat_activity 数据时可能的失败", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}, "url": "/docs/compare/?release=9.5.18#9.5.18-a04ff3c749a3df8c", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}]}, {"id": "9.6.14-bf0209ff63e0472d", "cves": [], "html": "<p>修复检查冲突 postmaster 是否仍在使用既有共享内存段的竞态条件（Tom Lane）</p>", "text": "修复检查冲突 postmaster 是否仍在使用既有共享内存段的竞态条件（Tom Lane）", "title": "修复检查冲突 postmaster 是否仍在使用既有共享内存段的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "6b410dc547bb255e33e18eaf615e83fe2390eb910f81b8796832a72dcf253fb8", "section_path": ["变更"], "commit_groups": [["3dcf45af5", "610747d86", "803f90ab7", "91a05390c", "a73c8caea", "b1cde67a4"]], "identity_text": "Fix race condition in check to see whether a pre-existing shared memory segment is still in use by a conflicting postmaster (Tom Lane)", "commit_aliases": ["3dcf45af5", "610747d86", "803f90ab7", "91a05390c", "a73c8caea", "b1cde67a4"], "source_commits": ["a73c8caea"], "source_entry_id": "9.6.14/changes/007", "db_id": "78c86fc36a8a5f6abd288250eaf289f1", "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da", "relations": [{"rule": 2, "type": "equivalent", "target": "2b65208026195e9279c5a53ceba66228", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}}, {"rule": 2, "type": "equivalent", "target": "9fdc1030c6b13b64ab065e3b76c5248f", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}}, {"rule": 2, "type": "equivalent", "target": "d7fe2a0ebf38ee8098fe1d6d28299d08", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}}, {"rule": 2, "type": "equivalent", "target": "ebcf9d6b59071557e6ee1fbdc63e94b6", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}}], "version": "9.6.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9fdc1030c6b13b64ab065e3b76c5248f", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "修复检查预先存在的共享内存段是否仍被冲突的 postmaster 使用时的竞争条件", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}, "url": "/docs/compare/?release=11.4#11.4-145ae36803661d4b", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "2b65208026195e9279c5a53ceba66228", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复检查预先存在的共享内存段是否仍被冲突的 postmaster 使用时的竞争条件", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}, "url": "/docs/compare/?release=10.9#10.9-145ae36803661d4b", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "ebcf9d6b59071557e6ee1fbdc63e94b6", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复检查冲突 postmaster 是否仍在使用既有共享内存段的竞态条件", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}, "url": "/docs/compare/?release=9.5.18#9.5.18-bf0209ff63e0472d", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "d7fe2a0ebf38ee8098fe1d6d28299d08", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "修复检查冲突 postmaster 是否仍在使用既有共享内存段的竞态条件", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}, "url": "/docs/compare/?release=9.4.23#9.4.23-bf0209ff63e0472d", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "9.6.14-6d1c297754a0d746", "cves": [], "html": "<p>避免在未连接到特定数据库的进程中尝试为参数检查做数据库访问（Vignesh C、Andres Freund）</p>\n<p>这个错误可能导致诸如 <span>“<span>cannot read pg_class without having selected a database</span>”</span> 之类的失败。</p>", "text": "避免在未连接到特定数据库的进程中尝试为参数检查做数据库访问（Vignesh C、Andres Freund） 这个错误可能导致诸如 “cannot read pg_class without having selected a database” 之类的失败。", "title": "避免在未连接到特定数据库的进程中尝试为参数检查做数据库访问", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "cc03b84e150e13131d76dd41ba5f9cffacd7c6a63ab680f2e8b0b2d2bc3bcb77", "section_path": ["变更"], "commit_groups": [["483b2d7ae", "52ad5fc0a", "69f32206d", "b8607e15e", "c01556017", "fff2a7d7b"]], "identity_text": "Avoid attempting to do database accesses for parameter checking in processes that are not connected to a specific database (Vignesh C, Andres Freund) This error could result in failures like cannot read pg_class without having selected a database.", "commit_aliases": ["483b2d7ae", "52ad5fc0a", "69f32206d", "b8607e15e", "c01556017", "fff2a7d7b"], "source_commits": ["b8607e15e"], "source_entry_id": "9.6.14/changes/008", "db_id": "93eb49d1a9fa05b38f11502f6653af76", "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7", "relations": [{"rule": 2, "type": "equivalent", "target": "827a6d2e0daa51d02fae5f72e9ed1c60", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}}, {"rule": 2, "type": "equivalent", "target": "8a9e52a1d52618e73a157df3f8bb3bec", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}}, {"rule": 2, "type": "equivalent", "target": "90744f89a54c75c9d18bbda103670c0b", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}}, {"rule": 2, "type": "equivalent", "target": "b0a2c3f14f56fa7697ddbdcfd9782707", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}}], "version": "9.6.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b0a2c3f14f56fa7697ddbdcfd9782707", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "避免在未连接到特定数据库的进程中，为检查参数而尝试访问数据库", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}, "url": "/docs/compare/?release=11.4#11.4-4c8922c4b309d53f", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "8a9e52a1d52618e73a157df3f8bb3bec", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "避免在未连接到特定数据库的进程中，为检查参数而尝试访问数据库", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}, "url": "/docs/compare/?release=10.9#10.9-4c8922c4b309d53f", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "90744f89a54c75c9d18bbda103670c0b", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "避免在未连接到特定数据库的进程中尝试为参数检查做数据库访问", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}, "url": "/docs/compare/?release=9.5.18#9.5.18-6d1c297754a0d746", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "827a6d2e0daa51d02fae5f72e9ed1c60", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "避免在未连接到特定数据库的进程中尝试为参数检查做数据库访问", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}, "url": "/docs/compare/?release=9.4.23#9.4.23-6d1c297754a0d746", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "9.6.14-3c27cb74b6e475f3", "cves": [], "html": "<p>避免使用 SSL 且 OpenSSL 未决数据缓冲区包含恰为 256 字节整数倍的数据时 <span>libpq</span> 可能的挂起（David Binderman）</p>", "text": "避免使用 SSL 且 OpenSSL 未决数据缓冲区包含恰为 256 字节整数倍的数据时 libpq 可能的挂起（David Binderman）", "title": "避免使用 SSL 且 OpenSSL 未决数据缓冲区包含恰为 256 字节整数倍的数据时 libpq 可能的挂起", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "10f72050c28b6fbdaea74574e2b1389281e6dbc3e54cb5d9ad410d4fc802005c", "section_path": ["变更"], "commit_groups": [["0ec3d2ab2", "6b0e9411f", "8eaba0b93", "ddf927fb1", "e3bf3c0f8"]], "identity_text": "Avoid possible hang in libpq if using SSL and OpenSSL's pending-data buffer contains an exact multiple of 256 bytes (David Binderman)", "commit_aliases": ["0ec3d2ab2", "6b0e9411f", "8eaba0b93", "ddf927fb1", "e3bf3c0f8"], "source_commits": ["8eaba0b93"], "source_entry_id": "9.6.14/changes/009", "db_id": "15e672bae169e5cd252f630b18a1d999", "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e", "relations": [{"rule": 2, "type": "equivalent", "target": "070be28dd028f1fa3df358e99ae6bb1e", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}}, {"rule": 2, "type": "equivalent", "target": "79f9916a73bfa81f171c0fe62097cf42", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}}, {"rule": 2, "type": "equivalent", "target": "9d356c18f9d74f27357cb54c80b03d74", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}}], "version": "9.6.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "070be28dd028f1fa3df358e99ae6bb1e", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "避免使用 SSL 且 OpenSSL 的待处理数据缓冲区恰好包含 256 字节整数倍的数据时，libpq 可能挂起的问题", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}, "url": "/docs/compare/?release=11.4#11.4-c7288a946e02db73", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "79f9916a73bfa81f171c0fe62097cf42", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "避免使用 SSL 且 OpenSSL 的待处理数据缓冲区恰好包含 256 字节整数倍的数据时，libpq 可能挂起的问题", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}, "url": "/docs/compare/?release=10.9#10.9-c7288a946e02db73", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "9d356c18f9d74f27357cb54c80b03d74", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "避免使用 SSL 且 OpenSSL 未决数据缓冲区包含恰为 256 字节整数倍的数据时 libpq 可能的挂起", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}, "url": "/docs/compare/?release=9.5.18#9.5.18-3c27cb74b6e475f3", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}]}, {"id": "9.6.14-86822b1aaeb92736", "cves": [], "html": "<p>改进 <span>initdb</span> 对系统时区多个等价名称的处理（Tom Lane、Andrew Gierth）</p>\n<p>让 <span>initdb</span> 检查 <code>/etc/localtime</code> 符号链接（如果存在），以在系统时区的等价名称之间打破平局。这使 <span>initdb</span> 在存在多个相同时区时更可能选择用户期望的时区名。如果 <code>/etc/localtime</code> 不是指向时区数据文件的符号链接，或者时区是由 <code>TZ</code> 环境变量确定的，则不会改变行为。</p>\n<p>另外，当 <code>TZ</code> 和 <code>/etc/localtime</code> 都未提供提示时，优先选择 <code>UTC</code> 而不是该时区的其他拼法。这修复了 <span>tzdata</span> 2019a 把 <code>UCT</code> 和 <code>UTC</code> 时区名变为等价而引入的烦恼：<span>initdb</span> 随后偏爱 <code>UCT</code>，而几乎没人想要它。</p>", "text": "改进 initdb 对系统时区多个等价名称的处理（Tom Lane、Andrew Gierth） 让 initdb 检查 /etc/localtime 符号链接（如果存在），以在系统时区的等价名称之间打破平局。这使 initdb 在存在多个相同时区时更可能选择用户期望的时区名。如果 /etc/localtime 不是指向时区数据文件的符号链接，或者时区是由 TZ 环境变量确定的，则不会改变行为。 另外，当 TZ 和 /etc/localtime 都未提供提示时，优先选择 UTC 而不是该时区的其他拼法。这修复了 tzdata 2019a 把 UCT 和 UTC 时区名变为等价而引入的烦恼：initdb 随后偏爱 UCT，而几乎没人想要它。", "title": "改进 initdb 对系统时区多个等价名称的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "a9324abefcb86490993f6500694a188b344669e2a048e4c4962ab76976573426", "section_path": ["变更"], "commit_groups": [["23bd3cec6", "37011bcb3", "75b0f21e1", "77dc741a1", "8de574aa8", "995b4fe0b"], ["2913a892e", "5f5b6667e", "6335f8a99", "6c66865f3", "7f28fc8e9", "e3846a00c"]], "identity_text": "Improve initdb's handling of multiple equivalent names for the system time zone (Tom Lane, Andrew Gierth) Make initdb examine the /etc/localtime symbolic link, if that exists, to break ties between equivalent names for the system time zone. This makes initdb more likely to select the time zone name that the user would expect when multiple identical time zones exist. It will not change the behavior if /etc/localtime is not a symlink to a zone data file, nor if the time zone is determined from the TZ environment variable. Separately, prefer UTC over other spellings of that time zone, when neither TZ nor /etc/localtime provide a hint. This fixes an annoyance introduced by tzdata 2019a's change to make the UCT and UTC zone names equivalent: initdb was then preferring UCT, which almost nobody wants.", "commit_aliases": ["23bd3cec6", "2913a892e", "37011bcb3", "5f5b6667e", "6335f8a99", "6c66865f3", "75b0f21e1", "77dc741a1", "7f28fc8e9", "8de574aa8", "995b4fe0b", "e3846a00c"], "source_commits": ["5f5b6667e", "75b0f21e1"], "source_entry_id": "9.6.14/changes/010", "db_id": "db9d638dfd65d89220d5cf61cd517612", "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034", "relations": [{"rule": 2, "type": "equivalent", "target": "0728457310d87fd417634bd16129a04b", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}}, {"rule": 2, "type": "equivalent", "target": "11ce04410301a153e6e0050f897d608d", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}}, {"rule": 2, "type": "equivalent", "target": "2497b4a144d095fd21f0460b26be5306", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}}, {"rule": 2, "type": "equivalent", "target": "29f18f1ebe746d38221ceef434727be3", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}}], "version": "9.6.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2497b4a144d095fd21f0460b26be5306", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "改进 initdb 对系统时区多个等效名称的处理", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}, "url": "/docs/compare/?release=11.4#11.4-5dc50618e2a2cb30", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "0728457310d87fd417634bd16129a04b", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "改进 initdb 对系统时区多个等效名称的处理", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}, "url": "/docs/compare/?release=10.9#10.9-5dc50618e2a2cb30", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "11ce04410301a153e6e0050f897d608d", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "改进 initdb 对系统时区多个等价名称的处理", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}, "url": "/docs/compare/?release=9.5.18#9.5.18-86822b1aaeb92736", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "29f18f1ebe746d38221ceef434727be3", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "改进 initdb 对系统时区多个等价名称的处理", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}, "url": "/docs/compare/?release=9.4.23#9.4.23-86822b1aaeb92736", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "9.6.14-224df9b403f02d2e", "cves": [], "html": "<p>修复 <span>pg_dump</span> 和 <span>pg_dumpall</span> 为数据库和表空间发出的 <code>GRANT</code> 命令的顺序（Nathan Bossart、Michael Paquier）</p>\n<p>如果曾发出级联授予，恢复可能因 <code>GRANT</code> 命令的给出顺序不尊重其相互依赖而失败。</p>", "text": "修复 pg_dump 和 pg_dumpall 为数据库和表空间发出的 GRANT 命令的顺序（Nathan Bossart、Michael Paquier） 如果曾发出级联授予，恢复可能因 GRANT 命令的给出顺序不尊重其相互依赖而失败。", "title": "修复 pg_dump 和 pg_dumpall 为数据库和表空间发出的 GRANT 命令的顺序", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "b5e95950aabdf371f44fa268fc770c95eca1941a77c443612d6b0fdbf56f0ea3", "section_path": ["变更"], "commit_groups": [["0c2a5a862", "8357a413f", "a21fb12e7", "b8c6014a6"], ["156c0c2df", "2ccebcd23", "a7b2fca15", "c82e8ba00"]], "identity_text": "Fix ordering of GRANT commands emitted by pg_dump and pg_dumpall for databases and tablespaces (Nathan Bossart, Michael Paquier) If cascading grants had been issued, restore might fail due to the GRANT commands being given in an order that didn't respect their interdependencies.", "commit_aliases": ["0c2a5a862", "156c0c2df", "2ccebcd23", "8357a413f", "a21fb12e7", "a7b2fca15", "b8c6014a6", "c82e8ba00"], "source_commits": ["a21fb12e7", "c82e8ba00"], "source_entry_id": "9.6.14/changes/011", "db_id": "8f8b9462a8348a08c814bea5017db5f8", "patch_ids": ["52de165cd6760b00b1e03e4d6894abb9", "8524b189c0b998af61d8dbb30864f060"], "statement_hash": "9ce94238abfe017444f88bd175269774d6a65893b498ebc98d692df324935c75", "relations": [{"rule": 2, "type": "equivalent", "target": "53c55f91fe557ae3bbfb96af0611ca2d", "evidence": {"same_day": true, "patch_ids": ["52de165cd6760b00b1e03e4d6894abb9", "8524b189c0b998af61d8dbb30864f060"], "statement_hash": "9ce94238abfe017444f88bd175269774d6a65893b498ebc98d692df324935c75"}}, {"rule": 2, "type": "equivalent", "target": "cc9ed4301021ec43bca66ca9568b003a", "evidence": {"same_day": true, "patch_ids": ["52de165cd6760b00b1e03e4d6894abb9", "8524b189c0b998af61d8dbb30864f060"], "statement_hash": "9ce94238abfe017444f88bd175269774d6a65893b498ebc98d692df324935c75"}}], "version": "9.6.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc9ed4301021ec43bca66ca9568b003a", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "修复 pg_dump 和 pg_dumpall 为数据库和表空间输出的 GRANT 命令的顺序", "evidence": {"same_day": true, "patch_ids": ["52de165cd6760b00b1e03e4d6894abb9", "8524b189c0b998af61d8dbb30864f060"], "statement_hash": "9ce94238abfe017444f88bd175269774d6a65893b498ebc98d692df324935c75"}, "url": "/docs/compare/?release=11.4#11.4-aaf68b94efa73982", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "53c55f91fe557ae3bbfb96af0611ca2d", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复 pg_dump 和 pg_dumpall 为数据库和表空间输出的 GRANT 命令的顺序", "evidence": {"same_day": true, "patch_ids": ["52de165cd6760b00b1e03e4d6894abb9", "8524b189c0b998af61d8dbb30864f060"], "statement_hash": "9ce94238abfe017444f88bd175269774d6a65893b498ebc98d692df324935c75"}, "url": "/docs/compare/?release=10.9#10.9-aaf68b94efa73982", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}]}, {"id": "9.6.14-de574d8448a89f60", "cves": [], "html": "<p>修复 <span>reindexdb</span> 的误导性错误报告（Julien Rouhaud）</p>", "text": "修复 reindexdb 的误导性错误报告（Julien Rouhaud）", "title": "修复 reindexdb 的误导性错误报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "f7a2126690405613480bbda3156c9bcb1fb10333b63d66ed2db8febb2aa34e5f", "section_path": ["变更"], "commit_groups": [["0c132d458", "82ed20e15", "c6354e943", "e16ab408f", "e17fba8d8", "e51bad8fb"]], "identity_text": "Fix misleading error reports from reindexdb (Julien Rouhaud)", "commit_aliases": ["0c132d458", "82ed20e15", "c6354e943", "e16ab408f", "e17fba8d8", "e51bad8fb"], "source_commits": ["0c132d458"], "source_entry_id": "9.6.14/changes/012", "db_id": "25db0b7e82ec00fbd8bb76aa1b4926da", "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046", "relations": [{"rule": 2, "type": "equivalent", "target": "41d93a93d28ddfdfdfe6a075f18132b9", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}}, {"rule": 2, "type": "equivalent", "target": "621ba5703121e17eb7c7b165ac3b8066", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}}, {"rule": 2, "type": "equivalent", "target": "856a02cbcad008d09c38f39351e36954", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}}, {"rule": 2, "type": "equivalent", "target": "cc0588e0008f5e9301db2d09b62acc48", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}}], "version": "9.6.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "856a02cbcad008d09c38f39351e36954", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "修复 reindexdb 中误导性的错误报告", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}, "url": "/docs/compare/?release=11.4#11.4-8f5cdbadf7e64764", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "621ba5703121e17eb7c7b165ac3b8066", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复 reindexdb 中误导性的错误报告", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}, "url": "/docs/compare/?release=10.9#10.9-8f5cdbadf7e64764", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "41d93a93d28ddfdfdfe6a075f18132b9", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复 reindexdb 的误导性错误报告", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}, "url": "/docs/compare/?release=9.5.18#9.5.18-de574d8448a89f60", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "cc0588e0008f5e9301db2d09b62acc48", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "修复 reindexdb 的误导性错误报告", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}, "url": "/docs/compare/?release=9.4.23#9.4.23-de574d8448a89f60", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "9.6.14-f8ffcce72c191ba7", "cves": [], "html": "<p>确保使用并行作业时发生错误 <span>vacuumdb</span> 返回正确的状态（Julien Rouhaud）</p>", "text": "确保使用并行作业时发生错误 vacuumdb 返回正确的状态（Julien Rouhaud）", "title": "确保使用并行作业时发生错误 vacuumdb 返回正确的状态", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "75a82fb689c7eea82a60352d207b1d0a7ec5ecf25a89b6e48d0b754dd740b050", "section_path": ["变更"], "commit_groups": [["25f12acd5", "3ae3c18b3", "a475b1e77", "a9a886c6f", "db8802a99"]], "identity_text": "Ensure that vacuumdb returns correct status if an error occurs while using parallel jobs (Julien Rouhaud)", "commit_aliases": ["25f12acd5", "3ae3c18b3", "a475b1e77", "a9a886c6f", "db8802a99"], "source_commits": ["a9a886c6f"], "source_entry_id": "9.6.14/changes/013", "db_id": "56918142430354517d667af46038dd9c", "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9", "relations": [{"rule": 2, "type": "equivalent", "target": "acddf8f70b395fb3a515868a1ce8dc8b", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}}, {"rule": 2, "type": "equivalent", "target": "ad8e95706176923d6519a32fc781a1c5", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}}, {"rule": 2, "type": "equivalent", "target": "c86f22948fad07ea1827c34000c64949", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}}], "version": "9.6.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "acddf8f70b395fb3a515868a1ce8dc8b", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "确保 vacuumdb 在使用并行作业期间发生错误时返回正确状态", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}, "url": "/docs/compare/?release=11.4#11.4-92161b4c7a674465", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "ad8e95706176923d6519a32fc781a1c5", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "确保 vacuumdb 在使用并行作业期间发生错误时返回正确状态", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}, "url": "/docs/compare/?release=10.9#10.9-92161b4c7a674465", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "c86f22948fad07ea1827c34000c64949", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "确保使用并行作业时发生错误 vacuumdb 返回正确的状态", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}, "url": "/docs/compare/?release=9.5.18#9.5.18-f8ffcce72c191ba7", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}]}, {"id": "9.6.14-45b29cf3d60e721c", "cves": [], "html": "<p>修复 <code>contrib/auto_explain</code> 在并行查询中不造成问题（Tom Lane）</p>\n<p>此前，即使父查询没有被 <code>auto_explain</code> 记录，并行工作者也可能尝试记录它的查询。这有时能工作，但令人困惑，而且在某些情况下导致诸如 <span>“<span>could not find key N in shm TOC</span>”</span> 之类的失败。</p>\n<p>此外，修复了一个差一错误，该错误导致即使采样率设为 1.0 也未必记录每条查询。</p>", "text": "修复 contrib/auto_explain 在并行查询中不造成问题（Tom Lane） 此前，即使父查询没有被 auto_explain 记录，并行工作者也可能尝试记录它的查询。这有时能工作，但令人困惑，而且在某些情况下导致诸如 “could not find key N in shm TOC” 之类的失败。 此外，修复了一个差一错误，该错误导致即使采样率设为 1.0 也未必记录每条查询。", "title": "修复 contrib/auto_explain 在并行查询中不造成问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "b466068400766dae46d613e3adecb05eeb87c8070856ffbd231e184a752f73eb", "section_path": ["变更"], "commit_groups": [["2cd4e8357", "57e85fa2c", "ba38967d7", "efa121ae6"]], "identity_text": "Fix contrib/auto_explain to not cause problems in parallel queries (Tom Lane) Previously, a parallel worker might try to log its query even if the parent query were not being logged by auto_explain. This would work sometimes, but it's confusing, and in some cases it resulted in failures like could not find key N in shm TOC. Also, fix an off-by-one error that resulted in not necessarily logging every query even when the sampling rate is set to 1.0.", "commit_aliases": ["2cd4e8357", "57e85fa2c", "ba38967d7", "efa121ae6"], "source_commits": ["efa121ae6"], "source_entry_id": "9.6.14/changes/014", "db_id": "5c04af6178328e0a980d37f41159635a", "patch_ids": ["8b03a649f3fad64df38bb03da43ae49c"], "statement_hash": "bb8abec9d08fd4ad7446e3dad199fa7d0da5985dc319314302ac1ab70c2cde2e", "relations": [{"rule": 2, "type": "equivalent", "target": "867d52053103c00b03acd3f3f00152e5", "evidence": {"same_day": true, "patch_ids": ["8b03a649f3fad64df38bb03da43ae49c"], "statement_hash": "bb8abec9d08fd4ad7446e3dad199fa7d0da5985dc319314302ac1ab70c2cde2e"}}, {"rule": 2, "type": "equivalent", "target": "cbd8938dfb244e15d908617bea264247", "evidence": {"same_day": true, "patch_ids": ["8b03a649f3fad64df38bb03da43ae49c"], "statement_hash": "bb8abec9d08fd4ad7446e3dad199fa7d0da5985dc319314302ac1ab70c2cde2e"}}], "version": "9.6.14", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "867d52053103c00b03acd3f3f00152e5", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "修复 contrib/auto_explain，使其不会在并行查询中引发问题", "evidence": {"same_day": true, "patch_ids": ["8b03a649f3fad64df38bb03da43ae49c"], "statement_hash": "bb8abec9d08fd4ad7446e3dad199fa7d0da5985dc319314302ac1ab70c2cde2e"}, "url": "/docs/compare/?release=11.4#11.4-de6bc0b2c9d79da3", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "cbd8938dfb244e15d908617bea264247", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复 contrib/auto_explain，使其不会在并行查询中引发问题", "evidence": {"same_day": true, "patch_ids": ["8b03a649f3fad64df38bb03da43ae49c"], "statement_hash": "bb8abec9d08fd4ad7446e3dad199fa7d0da5985dc319314302ac1ab70c2cde2e"}, "url": "/docs/compare/?release=10.9#10.9-de6bc0b2c9d79da3", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}]}, {"id": "9.6.14-c36b61bb81c0ed5c", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，考虑本地 <code>BEFORE ROW UPDATE</code> 触发器可能做的数据修改（Shohei Mochizuki）</p>\n<p>如果触发器修改了 <code>UPDATE</code> 本不会更改的列，新值不会被传输到远程服务器。</p>", "text": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能做的数据修改（Shohei Mochizuki） 如果触发器修改了 UPDATE 本不会更改的列，新值不会被传输到远程服务器。", "title": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能做的数据修改", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "26bce560459eb5964928ba6c97d993a1a6babdc58212880d2d09a68ae14c54b1", "section_path": ["变更"], "commit_groups": [["0f2b23426", "1a3d9f62c", "1ade21e7f", "214460182", "8b6da83d1", "eddb79705"]], "identity_text": "In contrib/postgres_fdw, account for possible data modifications by local BEFORE ROW UPDATE triggers (Shohei Mochizuki) If a trigger modified a column that was otherwise not changed by the UPDATE, the new value was not transmitted to the remote server.", "commit_aliases": ["0f2b23426", "1a3d9f62c", "1ade21e7f", "214460182", "8b6da83d1", "eddb79705"], "source_commits": ["1ade21e7f"], "source_entry_id": "9.6.14/changes/015", "db_id": "6b4d8ed35a122c32db01a362f3e05c4c", "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4", "relations": [{"rule": 2, "type": "equivalent", "target": "06f01d6eadd7afbc7b3d4b948b8e4f90", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}}, {"rule": 2, "type": "equivalent", "target": "427e4bd42c0da009e711e847289b5aba", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}}, {"rule": 2, "type": "equivalent", "target": "7ac321b9e594e3cbdf21aef118d727f0", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}}, {"rule": 2, "type": "equivalent", "target": "a981fad680adcd9a05f4935e525de0be", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}}], "version": "9.6.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "427e4bd42c0da009e711e847289b5aba", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能进行的数据修改", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}, "url": "/docs/compare/?release=11.4#11.4-e03b5189b6fffe98", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "a981fad680adcd9a05f4935e525de0be", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能进行的数据修改", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}, "url": "/docs/compare/?release=10.9#10.9-e03b5189b6fffe98", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "7ac321b9e594e3cbdf21aef118d727f0", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能做的数据修改", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}, "url": "/docs/compare/?release=9.5.18#9.5.18-c36b61bb81c0ed5c", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "06f01d6eadd7afbc7b3d4b948b8e4f90", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能做的数据修改", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}, "url": "/docs/compare/?release=9.4.23#9.4.23-c36b61bb81c0ed5c", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "9.6.14-7b62bc22697c2f19", "cves": [], "html": "<p>在 Windows 上，避免数据库编码设为 SQL_ASCII 而我们尝试记录非 ASCII 字符串时的失败（Noah Misch）</p>\n<p>代码此前假定这种字符串必须是 UTF-8，如果它们看起来不是有效编码就会抛出错误。现在，只是把未翻译的字节传给日志。</p>", "text": "在 Windows 上，避免数据库编码设为 SQL_ASCII 而我们尝试记录非 ASCII 字符串时的失败（Noah Misch） 代码此前假定这种字符串必须是 UTF-8，如果它们看起来不是有效编码就会抛出错误。现在，只是把未翻译的字节传给日志。", "title": "在 Windows 上，避免数据库编码设为 SQL_ASCII 而我们尝试记录非 ASCII 字符串时的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "89c3c2b48cb06ce2ed7c7e1eb91d9020bd962923e14ed1ac01ef28f2a7344751", "section_path": ["变更"], "commit_groups": [["08e3fd96f", "409f5303c", "4ec14e5aa", "9dc65bcf9", "d02768ddd", "ff7555c4f"]], "identity_text": "On Windows, avoid failure when the database encoding is set to SQL_ASCII and we attempt to log a non-ASCII string (Noah Misch) The code had been assuming that such strings must be in UTF-8, and would throw an error if they didn't appear to be validly encoded. Now, just transmit the untranslated bytes to the log.", "commit_aliases": ["08e3fd96f", "409f5303c", "4ec14e5aa", "9dc65bcf9", "d02768ddd", "ff7555c4f"], "source_commits": ["ff7555c4f"], "source_entry_id": "9.6.14/changes/016", "db_id": "daa633bc14def51f60e1f5f581ef3fbb", "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e", "relations": [{"rule": 2, "type": "equivalent", "target": "2c1931e642611d8c1ba9050fb8776a58", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}}, {"rule": 2, "type": "equivalent", "target": "35b6a0a367f4e2d5863af5838c3e6b28", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}}, {"rule": 2, "type": "equivalent", "target": "bd1665a7d5a8a6ec8893ea4f6c219cff", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}}, {"rule": 2, "type": "equivalent", "target": "c9bbd8496ebca7419d418dfb0f244799", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}}], "version": "9.6.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "35b6a0a367f4e2d5863af5838c3e6b28", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "在 Windows 上，避免数据库编码设置为 SQL_ASCII 时尝试记录非 ASCII 字符串而发生失败", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}, "url": "/docs/compare/?release=11.4#11.4-5d8203e55ff49c70", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "c9bbd8496ebca7419d418dfb0f244799", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "在 Windows 上，避免数据库编码设置为 SQL_ASCII 时尝试记录非 ASCII 字符串而发生失败", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}, "url": "/docs/compare/?release=10.9#10.9-5d8203e55ff49c70", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "bd1665a7d5a8a6ec8893ea4f6c219cff", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "在 Windows 上，避免数据库编码设为 SQL_ASCII 而我们尝试记录非 ASCII 字符串时的失败", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}, "url": "/docs/compare/?release=9.5.18#9.5.18-7b62bc22697c2f19", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "2c1931e642611d8c1ba9050fb8776a58", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "在 Windows 上，避免数据库编码设为 SQL_ASCII 而我们尝试记录非 ASCII 字符串时的失败", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}, "url": "/docs/compare/?release=9.4.23#9.4.23-7b62bc22697c2f19", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "9.6.14-271fad01b562af3c", "cves": [], "html": "<p>使 <span>PL/pgSQL</span> 的头文件对 C++ 安全（George Tarasov）</p>", "text": "使 PL/pgSQL 的头文件对 C++ 安全（George Tarasov）", "title": "使 PL/pgSQL 的头文件对 C++ 安全", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5", "source_hash": "54d81a4673a66a46160a794f8992c0a7ba9cfb71638ef15ec132b6fa13548e8c", "section_path": ["变更"], "commit_groups": [["312017fcc", "3f61b3205", "683c17b30", "c332c94ad", "da53e4f93", "db5d99916"]], "identity_text": "Make PL/pgSQL's header files C++-safe (George Tarasov)", "commit_aliases": ["312017fcc", "3f61b3205", "683c17b30", "c332c94ad", "da53e4f93", "db5d99916"], "source_commits": ["c332c94ad"], "source_entry_id": "9.6.14/changes/017", "db_id": "77f5c99ec74a8d5ccf2159403506912d", "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8", "relations": [{"rule": 2, "type": "equivalent", "target": "12a4e0e2fafe333711fec06e2d23cf8d", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}}, {"rule": 2, "type": "equivalent", "target": "813c6e2c25662776741b44521132b642", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}}, {"rule": 2, "type": "equivalent", "target": "90b47ae08bd532fca5546077036a11f5", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}}, {"rule": 2, "type": "equivalent", "target": "b6e72893688fc4c2250cdd8b5b31822e", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}}], "version": "9.6.14", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "813c6e2c25662776741b44521132b642", "kind": "equivalent", "version": "11.4", "label": "11.4", "title": "使 PL/pgSQL 的头文件可安全用于 C++", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}, "url": "/docs/compare/?release=11.4#11.4-408a489c6bffae11", "source_url": "/docs/release/11.4/#id-1.11.6.23.5"}, {"db_id": "12a4e0e2fafe333711fec06e2d23cf8d", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "使 PL/pgSQL 的头文件可安全用于 C++", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}, "url": "/docs/compare/?release=10.9#10.9-408a489c6bffae11", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "b6e72893688fc4c2250cdd8b5b31822e", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "使 PL/pgSQL 的头文件对 C++ 安全", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}, "url": "/docs/compare/?release=9.5.18#9.5.18-271fad01b562af3c", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "90b47ae08bd532fca5546077036a11f5", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "使 PL/pgSQL 的头文件对 C++ 安全", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}, "url": "/docs/compare/?release=9.4.23#9.4.23-271fad01b562af3c", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}]}, {"date": "2019-05-09", "build": "9.6.13", "major": "9.6", "minor": 13, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.13", "eol_date": "2021-11-11", "date_text": "2019-05-09", "supported": false, "manual_url": "/docs/9.6/release-9-6-13.html", "source_url": "/docs/release/9.6.13/", "entry_count": 33, "placeholder": false, "content_hash": "cef36d0b0ebdaa0d7910cd68a94b41abc8d92c408879d8ea1d1ceacdca602192", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 33, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.9 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-9.html\" title=\"E.16. 版本 9.6.9\">第 E.16 节</a>。</p>", "compatibility_count": 0, "label": "9.6.13", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2701, "support_days": -1784, "entries": [{"id": "9.6.13-35d4445257f1090d", "cves": ["CVE-2017-7484", "CVE-2019-10130"], "html": "<p>防止通过选择率估计器绕过行级安全策略（Dean Rasheed）</p>\n<p>规划器的一些选择率估计器会对 <code>pg_statistic</code> 中的值（如最常见值）应用用户定义的操作符。因此，泄漏型操作符可以泄露数据列中的一些条目，即使调用用户没有读取该列的权限。我们在 CVE-2017-7484 中加了限制来防止这一点，但没有考虑到行级安全的影响。有 SQL 权限读取某列、但因 RLS 策略被禁止看到某些行的用户，仍可能通过泄漏型操作符了解这些行的内容。本补丁进一步收紧规则，仅当没有相关 RLS 策略时才允许把泄漏型操作符应用于统计数据。（CVE-2019-10130）</p>", "text": "防止通过选择率估计器绕过行级安全策略（Dean Rasheed） 规划器的一些选择率估计器会对 pg_statistic 中的值（如最常见值）应用用户定义的操作符。因此，泄漏型操作符可以泄露数据列中的一些条目，即使调用用户没有读取该列的权限。我们在 CVE-2017-7484 中加了限制来防止这一点，但没有考虑到行级安全的影响。有 SQL 权限读取某列、但因 RLS 策略被禁止看到某些行的用户，仍可能通过泄漏型操作符了解这些行的内容。本补丁进一步收紧规则，仅当没有相关 RLS 策略时才允许把泄漏型操作符应用于统计数据。（CVE-2019-10130）", "title": "防止通过选择率估计器绕过行级安全策略", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "f6c0c6e0beedf73a4f32b73cc8e209fcd112e3ffeccdf650102108d85690ac32", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent row-level security policies from being bypassed via selectivity estimators (Dean Rasheed) Some of the planner's selectivity estimators apply user-defined operators to values found in pg_statistic (e.g., most-common values). A leaky operator therefore can disclose some of the entries in a data column, even if the calling user lacks permission to read that column. In CVE-2017-7484 we added restrictions to forestall that, but we failed to consider the effects of row-level security. A user who has SQL permission to read a column, but who is forbidden to see certain rows due to RLS policy, might still learn something about those rows' contents via a leaky operator. This patch further tightens the rules, allowing leaky operators to be applied to statistics data only when there is no relevant RLS policy. (CVE-2019-10130)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/001", "db_id": "7ff539ab31995c0e78fd5d7b1ca6321e", "patch_ids": [], "statement_hash": "1767df1e8a5f9607827fd44f927fdb996e1e48243654d4cc97590333923d45e7", "relations": [{"rule": 2, "type": "equivalent", "target": "56d6db8446f41023a027932d51f76dad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1767df1e8a5f9607827fd44f927fdb996e1e48243654d4cc97590333923d45e7"}}, {"rule": 2, "type": "equivalent", "target": "9bd418a48b41e4825da797ada67a744d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1767df1e8a5f9607827fd44f927fdb996e1e48243654d4cc97590333923d45e7"}}, {"rule": 2, "type": "equivalent", "target": "a6e3722e8822752f3244d263c67c8c64", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1767df1e8a5f9607827fd44f927fdb996e1e48243654d4cc97590333923d45e7"}}], "version": "9.6.13", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "9bd418a48b41e4825da797ada67a744d", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "防止通过选择率估计器绕过行级安全策略", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1767df1e8a5f9607827fd44f927fdb996e1e48243654d4cc97590333923d45e7"}, "url": "/docs/compare/?release=11.3#11.3-35d4445257f1090d", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "56d6db8446f41023a027932d51f76dad", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "防止通过选择率估计器绕过行级安全策略", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1767df1e8a5f9607827fd44f927fdb996e1e48243654d4cc97590333923d45e7"}, "url": "/docs/compare/?release=10.8#10.8-35d4445257f1090d", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "a6e3722e8822752f3244d263c67c8c64", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "防止通过选择率估计器绕过行级安全策略", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1767df1e8a5f9607827fd44f927fdb996e1e48243654d4cc97590333923d45e7"}, "url": "/docs/compare/?release=9.5.17#9.5.17-35d4445257f1090d", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}]}, {"id": "9.6.13-bbd6c7683cf1af8f", "cves": [], "html": "<p>修复对每个表都可被排除的继承树或分区表执行 <code>UPDATE</code> 或 <code>DELETE</code> 时的行为（Amit Langote、Tom Lane）</p>\n<p>这类情况下，当存在 <code>RETURNING</code> 子句时，查询没有报告正确的输出列集合；如果有应当触发的语句级触发器，它也没有触发。</p>", "text": "修复对每个表都可被排除的继承树或分区表执行 UPDATE 或 DELETE 时的行为（Amit Langote、Tom Lane） 这类情况下，当存在 RETURNING 子句时，查询没有报告正确的输出列集合；如果有应当触发的语句级触发器，它也没有触发。", "title": "修复对每个表都可被排除的继承树或分区表执行 UPDATE 或 DELETE 时的行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "7fafda57a52902b4d2ef54bdeb4cedb0807efb2b16c0f1f9452bd3a303c9be50", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix behavior for an UPDATE or DELETE on an inheritance tree or partitioned table in which every table can be excluded (Amit Langote, Tom Lane) In such cases, the query did not report the correct set of output columns when a RETURNING clause was present, and if there were any statement-level triggers that should be fired, it didn't fire them.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/002", "db_id": "4edff4dcb3f86c70d97c0946ecaf08df", "patch_ids": [], "statement_hash": "04270985d752fb6c5f5545b5fa05edecd1190f221b84972e06d714c72cbebdf5", "relations": [{"rule": 2, "type": "equivalent", "target": "833c5cc5e991b8517824df64c1aa97bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04270985d752fb6c5f5545b5fa05edecd1190f221b84972e06d714c72cbebdf5"}}, {"rule": 2, "type": "equivalent", "target": "b368d56b37ac4352bd3ef63c0c0289e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04270985d752fb6c5f5545b5fa05edecd1190f221b84972e06d714c72cbebdf5"}}, {"rule": 2, "type": "equivalent", "target": "bfa3446f770b34d8aa9361f5fab1cb5c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04270985d752fb6c5f5545b5fa05edecd1190f221b84972e06d714c72cbebdf5"}}, {"rule": 2, "type": "equivalent", "target": "ee33f6a5e3b8f24c278b011a02520dac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04270985d752fb6c5f5545b5fa05edecd1190f221b84972e06d714c72cbebdf5"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b368d56b37ac4352bd3ef63c0c0289e8", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复对继承树或分区表执行 UPDATE 或 DELETE 时，每个表都可被排除的情况下的行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04270985d752fb6c5f5545b5fa05edecd1190f221b84972e06d714c72cbebdf5"}, "url": "/docs/compare/?release=11.3#11.3-e26b0f16db0644de", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "ee33f6a5e3b8f24c278b011a02520dac", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复对继承树或分区表执行 UPDATE 或 DELETE 时，每个表都可被排除的情况下的行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04270985d752fb6c5f5545b5fa05edecd1190f221b84972e06d714c72cbebdf5"}, "url": "/docs/compare/?release=10.8#10.8-e26b0f16db0644de", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "833c5cc5e991b8517824df64c1aa97bf", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复对每个表都可被排除的继承树或分区表执行 UPDATE 或 DELETE 时的行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04270985d752fb6c5f5545b5fa05edecd1190f221b84972e06d714c72cbebdf5"}, "url": "/docs/compare/?release=9.5.17#9.5.17-bbd6c7683cf1af8f", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "bfa3446f770b34d8aa9361f5fab1cb5c", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复对每个表都可被排除的继承树或分区表执行 UPDATE 或 DELETE 时的行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04270985d752fb6c5f5545b5fa05edecd1190f221b84972e06d714c72cbebdf5"}, "url": "/docs/compare/?release=9.4.22#9.4.22-bbd6c7683cf1af8f", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-f65a38c6c6e79393", "cves": [], "html": "<p>修复目标关系是可更新视图时带多行 <code>VALUES</code> 的 <code>INSERT ... VALUES</code> 命令中显式 <code>DEFAULT</code> 项的处理（Amit Langote、Dean Rasheed）</p>\n<p>当可更新视图对该列没有默认值而其底层表有时，单行 <code>INSERT ... VALUES</code> 会使用底层表的默认值。然而在多行情况下，总是使用 NULL。已纠正为与单行情况一致。</p>", "text": "修复目标关系是可更新视图时带多行 VALUES 的 INSERT ... VALUES 命令中显式 DEFAULT 项的处理（Amit Langote、Dean Rasheed） 当可更新视图对该列没有默认值而其底层表有时，单行 INSERT ... VALUES 会使用底层表的默认值。然而在多行情况下，总是使用 NULL。已纠正为与单行情况一致。", "title": "修复目标关系是可更新视图时带多行 VALUES 的 INSERT ... VALUES 命令中显式 DEFAULT 项的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "ef9ea442481cdbcc046a3c0eadf2a540667c4270d04f3803f955edffd5625f49", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix handling of explicit DEFAULT items in an INSERT ... VALUES command with multiple VALUES rows, if the target relation is an updatable view (Amit Langote, Dean Rasheed) When the updatable view has no default for the column but its underlying table has one, a single-row INSERT ... VALUES will use the underlying table's default. In the multi-row case, however, NULL was always used. Correct it to act like the single-row case.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/003", "db_id": "a3699f71059e2aa38a985fb9255b5413", "patch_ids": [], "statement_hash": "b8a664438a604eb308832fc04e0c1e0c1ad228e82d60c50cefc7cd72566abd88", "relations": [{"rule": 2, "type": "equivalent", "target": "0e7f247e2430c5d23f1325380d1bee17", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a664438a604eb308832fc04e0c1e0c1ad228e82d60c50cefc7cd72566abd88"}}, {"rule": 2, "type": "equivalent", "target": "15b3195c74a53d643ab8b5015da41bf2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a664438a604eb308832fc04e0c1e0c1ad228e82d60c50cefc7cd72566abd88"}}, {"rule": 2, "type": "equivalent", "target": "576438ba514bda6624f4fcbc74af1247", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a664438a604eb308832fc04e0c1e0c1ad228e82d60c50cefc7cd72566abd88"}}, {"rule": 2, "type": "equivalent", "target": "5cc5fd553f73b11f507fe1babd643a03", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a664438a604eb308832fc04e0c1e0c1ad228e82d60c50cefc7cd72566abd88"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "576438ba514bda6624f4fcbc74af1247", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "目标关系为可更新视图时，修复包含多行 VALUES 的 INSERT ... VALUES 命令中对显式 DEFAULT 项的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a664438a604eb308832fc04e0c1e0c1ad228e82d60c50cefc7cd72566abd88"}, "url": "/docs/compare/?release=11.3#11.3-1309f551eab21e73", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "15b3195c74a53d643ab8b5015da41bf2", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "目标关系为可更新视图时，修复包含多行 VALUES 的 INSERT ... VALUES 命令中对显式 DEFAULT 项的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a664438a604eb308832fc04e0c1e0c1ad228e82d60c50cefc7cd72566abd88"}, "url": "/docs/compare/?release=10.8#10.8-1309f551eab21e73", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "0e7f247e2430c5d23f1325380d1bee17", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复目标关系是可更新视图时带多行 VALUES 的 INSERT ... VALUES 命令中显式 DEFAULT 项的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a664438a604eb308832fc04e0c1e0c1ad228e82d60c50cefc7cd72566abd88"}, "url": "/docs/compare/?release=9.5.17#9.5.17-f65a38c6c6e79393", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "5cc5fd553f73b11f507fe1babd643a03", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复目标关系是可更新视图时带多行 VALUES 的 INSERT ... VALUES 命令中显式 DEFAULT 项的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a664438a604eb308832fc04e0c1e0c1ad228e82d60c50cefc7cd72566abd88"}, "url": "/docs/compare/?release=9.4.22#9.4.22-f65a38c6c6e79393", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-100bd80868ceba38", "cves": [], "html": "<p>修复 <code>CREATE VIEW</code> 允许零列视图（Ashutosh Sharma）</p>\n<p>为了与允许零列表保持一致，我们应当允许这一点。由于表可以被转换为视图，即使有此限制也能创建零列视图，从而导致转储/恢复失败。</p>", "text": "修复 CREATE VIEW 允许零列视图（Ashutosh Sharma） 为了与允许零列表保持一致，我们应当允许这一点。由于表可以被转换为视图，即使有此限制也能创建零列视图，从而导致转储/恢复失败。", "title": "修复 CREATE VIEW 允许零列视图", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "6a9928f1f7763cd0cb29c2331547d06ed23e1a350a415e7d308a6ec3cd47e0f0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix CREATE VIEW to allow zero-column views (Ashutosh Sharma) We should allow this for consistency with allowing zero-column tables. Since a table can be converted to a view, zero-column views could be created even with the restriction in place, leading to dump/reload failures.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/004", "db_id": "bca14bcec41ac40c919b4698939d3e7a", "patch_ids": [], "statement_hash": "9d8a44c6b03c6c765fc6ca03b1875e81dc8ca03313cefbd60092715a906c0b74", "relations": [{"rule": 2, "type": "equivalent", "target": "090336ec6d5bd02a548f703772f3ed54", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d8a44c6b03c6c765fc6ca03b1875e81dc8ca03313cefbd60092715a906c0b74"}}, {"rule": 2, "type": "equivalent", "target": "0ad36899c6cc367ed4b03e73f3a605cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d8a44c6b03c6c765fc6ca03b1875e81dc8ca03313cefbd60092715a906c0b74"}}, {"rule": 2, "type": "equivalent", "target": "11b34e728cf080fc41561fcb4d6ad24f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d8a44c6b03c6c765fc6ca03b1875e81dc8ca03313cefbd60092715a906c0b74"}}, {"rule": 2, "type": "equivalent", "target": "809afe72287af356ea8f5d551e8473d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d8a44c6b03c6c765fc6ca03b1875e81dc8ca03313cefbd60092715a906c0b74"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0ad36899c6cc367ed4b03e73f3a605cd", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复 CREATE VIEW，使其允许零列视图", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d8a44c6b03c6c765fc6ca03b1875e81dc8ca03313cefbd60092715a906c0b74"}, "url": "/docs/compare/?release=11.3#11.3-2f43af900aee43f0", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "11b34e728cf080fc41561fcb4d6ad24f", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复 CREATE VIEW，使其允许零列视图", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d8a44c6b03c6c765fc6ca03b1875e81dc8ca03313cefbd60092715a906c0b74"}, "url": "/docs/compare/?release=10.8#10.8-2f43af900aee43f0", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "090336ec6d5bd02a548f703772f3ed54", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复 CREATE VIEW 允许零列视图", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d8a44c6b03c6c765fc6ca03b1875e81dc8ca03313cefbd60092715a906c0b74"}, "url": "/docs/compare/?release=9.5.17#9.5.17-100bd80868ceba38", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "809afe72287af356ea8f5d551e8473d3", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复 CREATE VIEW 允许零列视图", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d8a44c6b03c6c765fc6ca03b1875e81dc8ca03313cefbd60092715a906c0b74"}, "url": "/docs/compare/?release=9.4.22#9.4.22-100bd80868ceba38", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-776d87acfeabfd74", "cves": [], "html": "<p>补上对 <code>CREATE TABLE IF NOT EXISTS ... AS EXECUTE ...</code> 的缺失支持（Andreas Karlsson）</p>\n<p><code>IF NOT EXISTS</code> 与 <code>EXECUTE</code> 的组合应当能工作，但语法中遗漏了它。</p>", "text": "补上对 CREATE TABLE IF NOT EXISTS ... AS EXECUTE ... 的缺失支持（Andreas Karlsson） IF NOT EXISTS 与 EXECUTE 的组合应当能工作，但语法中遗漏了它。", "title": "补上对 CREATE TABLE IF NOT EXISTS ... AS EXECUTE ... 的缺失支持", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "300f6fa31c322de0723473539bd1ed69da16fd00cad9ffa8985112d8a98a8230", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add missing support for CREATE TABLE IF NOT EXISTS ... AS EXECUTE ... (Andreas Karlsson) The combination of IF NOT EXISTS and EXECUTE should work, but the grammar omitted it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/005", "db_id": "ddb60aa2819804230a93287c7c89538c", "patch_ids": [], "statement_hash": "3a7d2a3381045147506d2b61b3c1fe8f087d82842dcebae5b5324a6482ed4a5f", "relations": [{"rule": 2, "type": "equivalent", "target": "203eb98c0cbd3e07960f297009511131", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a7d2a3381045147506d2b61b3c1fe8f087d82842dcebae5b5324a6482ed4a5f"}}, {"rule": 2, "type": "equivalent", "target": "3ec55572f69e517844a5e9fccff1e699", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a7d2a3381045147506d2b61b3c1fe8f087d82842dcebae5b5324a6482ed4a5f"}}, {"rule": 2, "type": "equivalent", "target": "f33e689b9ddd3281c9d28882586453c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a7d2a3381045147506d2b61b3c1fe8f087d82842dcebae5b5324a6482ed4a5f"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "203eb98c0cbd3e07960f297009511131", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "补上对 CREATE TABLE IF NOT EXISTS ... AS EXECUTE ... 缺失的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a7d2a3381045147506d2b61b3c1fe8f087d82842dcebae5b5324a6482ed4a5f"}, "url": "/docs/compare/?release=11.3#11.3-3966034489e2d830", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "3ec55572f69e517844a5e9fccff1e699", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "补上对 CREATE TABLE IF NOT EXISTS ... AS EXECUTE ... 缺失的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a7d2a3381045147506d2b61b3c1fe8f087d82842dcebae5b5324a6482ed4a5f"}, "url": "/docs/compare/?release=10.8#10.8-3966034489e2d830", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "f33e689b9ddd3281c9d28882586453c3", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "补上对 CREATE TABLE IF NOT EXISTS ... AS EXECUTE ... 的缺失支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a7d2a3381045147506d2b61b3c1fe8f087d82842dcebae5b5324a6482ed4a5f"}, "url": "/docs/compare/?release=9.5.17#9.5.17-776d87acfeabfd74", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}]}, {"id": "9.6.13-03c882be771d2541", "cves": [], "html": "<p>确保行级安全策略表达式中出现的子 <code>SELECT</code> 以正确的用户权限执行（Dean Rasheed）</p>\n<p>此前，如果带 RLS 策略的表是通过视图访问的，这种检查可能以调用视图的用户而非应有的视图所有者身份执行。</p>", "text": "确保行级安全策略表达式中出现的子 SELECT 以正确的用户权限执行（Dean Rasheed） 此前，如果带 RLS 策略的表是通过视图访问的，这种检查可能以调用视图的用户而非应有的视图所有者身份执行。", "title": "确保行级安全策略表达式中出现的子 SELECT 以正确的用户权限执行", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "7337418c2156eb7edae7daa3a43de1c3a0153210b2ef22a52c1934fce94c0dd3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that sub-SELECTs appearing in row-level-security policy expressions are executed with the correct user's permissions (Dean Rasheed) Previously, if the table having the RLS policy was accessed via a view, such checks might be executed as the user calling the view, not as the view owner as they should be.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/006", "db_id": "93ee07f789c3a4a17d8bef277bec768c", "patch_ids": [], "statement_hash": "c608576634231d1a252e598a21a46dd93063525758b135ac711ef531849e6ec7", "relations": [{"rule": 2, "type": "equivalent", "target": "39b09b82ea1b638d237ba72e602ff58e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c608576634231d1a252e598a21a46dd93063525758b135ac711ef531849e6ec7"}}, {"rule": 2, "type": "equivalent", "target": "538a53875eb204361509c8fe1afe2936", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c608576634231d1a252e598a21a46dd93063525758b135ac711ef531849e6ec7"}}, {"rule": 2, "type": "equivalent", "target": "6e1d531bdedba2cc5761a18194d45b94", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c608576634231d1a252e598a21a46dd93063525758b135ac711ef531849e6ec7"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "538a53875eb204361509c8fe1afe2936", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "确保行级安全策略表达式中的子 SELECT 以正确用户的权限执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c608576634231d1a252e598a21a46dd93063525758b135ac711ef531849e6ec7"}, "url": "/docs/compare/?release=11.3#11.3-dd6917b2eff5e96f", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "39b09b82ea1b638d237ba72e602ff58e", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "确保行级安全策略表达式中的子 SELECT 以正确用户的权限执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c608576634231d1a252e598a21a46dd93063525758b135ac711ef531849e6ec7"}, "url": "/docs/compare/?release=10.8#10.8-dd6917b2eff5e96f", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "6e1d531bdedba2cc5761a18194d45b94", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "确保行级安全策略表达式中出现的子 SELECT 以正确的用户权限执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c608576634231d1a252e598a21a46dd93063525758b135ac711ef531849e6ec7"}, "url": "/docs/compare/?release=9.5.17#9.5.17-03c882be771d2541", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}]}, {"id": "9.6.13-abeef0d12bb90bdd", "cves": [], "html": "<p>在 <code>xmloption</code> 设为 <code>content</code> 时按 SQL:2006 及后续标准的要求接受 XML 文档作为 <code>xml</code> 类型的有效值（Chapman Flack）</p>\n<p>此前 <span>PostgreSQL</span> 遵循不允许这么做的 SQL:2003 定义。但这给转储/恢复带来了严重问题：没有哪个 <code>xmloption</code> 设置能接受所有有效 XML 数据。因此切换到 2006 定义。</p>\n<p>还修改了 <span>pg_dump</span>，使其在恢复数据期间发出 <code>SET xmloption = content</code>，确保即使当前设置是 <code>document</code> 转储/恢复也能工作。</p>", "text": "在 xmloption 设为 content 时按 SQL:2006 及后续标准的要求接受 XML 文档作为 xml 类型的有效值（Chapman Flack） 此前 PostgreSQL 遵循不允许这么做的 SQL:2003 定义。但这给转储/恢复带来了严重问题：没有哪个 xmloption 设置能接受所有有效 XML 数据。因此切换到 2006 定义。 还修改了 pg_dump，使其在恢复数据期间发出 SET xmloption = content，确保即使当前设置是 document 转储/恢复也能工作。", "title": "在 xmloption 设为 content 时按 SQL:2006 及后续标准的要求接受 XML 文档作为 xml 类型的有效值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "35ca9d7d07c893896f3cf5ffa3b7bf7c24c2940604e79ef6216f6d02c5406756", "section_path": ["变更"], "commit_groups": [], "identity_text": "Accept XML documents as valid values of type xml when xmloption is set to content, as required by SQL:2006 and later (Chapman Flack) Previously PostgreSQL followed the SQL:2003 definition, which doesn't allow this. But that creates a serious problem for dump/restore: there is no setting of xmloption that will accept all valid XML data. Hence, switch to the 2006 definition. pg_dump is also modified to emit SET xmloption = content while restoring data, ensuring that dump/restore works even if the prevailing setting is document.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/007", "db_id": "d4c9ce5a219d9263adccd0f74ac2b381", "patch_ids": [], "statement_hash": "9ba2336b054e0691b8e1f138516b050e12e01729886d441ba8a6c4e164f66ded", "relations": [{"rule": 2, "type": "equivalent", "target": "2086676771c95a609d6b64562e08edb0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba2336b054e0691b8e1f138516b050e12e01729886d441ba8a6c4e164f66ded"}}, {"rule": 2, "type": "equivalent", "target": "301285ce4093d204e6501892fd9b5151", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba2336b054e0691b8e1f138516b050e12e01729886d441ba8a6c4e164f66ded"}}, {"rule": 2, "type": "equivalent", "target": "35509c0a6100cc945cd7c16a6d72baec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba2336b054e0691b8e1f138516b050e12e01729886d441ba8a6c4e164f66ded"}}, {"rule": 2, "type": "equivalent", "target": "635be5d8d80a61f198bc53c9ddeb3db5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba2336b054e0691b8e1f138516b050e12e01729886d441ba8a6c4e164f66ded"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "35509c0a6100cc945cd7c16a6d72baec", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "按照 SQL:2006 及后续标准的要求，当 xmloption 设置为 content 时，接受 XML 文档作为 xml 类型的有效值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba2336b054e0691b8e1f138516b050e12e01729886d441ba8a6c4e164f66ded"}, "url": "/docs/compare/?release=11.3#11.3-1189aea744777953", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "301285ce4093d204e6501892fd9b5151", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "按照 SQL:2006 及后续标准的要求，当 xmloption 设置为 content 时，接受 XML 文档作为 xml 类型的有效值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba2336b054e0691b8e1f138516b050e12e01729886d441ba8a6c4e164f66ded"}, "url": "/docs/compare/?release=10.8#10.8-1189aea744777953", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "635be5d8d80a61f198bc53c9ddeb3db5", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "在 xmloption 设为 content 时按 SQL:2006 及后续标准的要求接受 XML 文档作为 xml 类型的有效值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba2336b054e0691b8e1f138516b050e12e01729886d441ba8a6c4e164f66ded"}, "url": "/docs/compare/?release=9.5.17#9.5.17-abeef0d12bb90bdd", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "2086676771c95a609d6b64562e08edb0", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "在 xmloption 设为 content 时按 SQL:2006 及后续标准的要求接受 XML 文档作为 xml 类型的有效值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ba2336b054e0691b8e1f138516b050e12e01729886d441ba8a6c4e164f66ded"}, "url": "/docs/compare/?release=9.4.22#9.4.22-abeef0d12bb90bdd", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-f6b97a174960300a", "cves": [], "html": "<p>改进服务器启动时对既有共享内存段是否仍在使用的检查（Noah Misch）</p>\n<p>即使 <code>postmaster.pid</code> 文件已被移除，postmaster 现在也更可能检测到上一个 postmaster 实例仍有活动进程。</p>", "text": "改进服务器启动时对既有共享内存段是否仍在使用的检查（Noah Misch） 即使 postmaster.pid 文件已被移除，postmaster 现在也更可能检测到上一个 postmaster 实例仍有活动进程。", "title": "改进服务器启动时对既有共享内存段是否仍在使用的检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "7c89892584380210adba703ac193e0cfc6ee46019945b49703090ca09682a4b9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve server's startup-time checks for whether a pre-existing shared memory segment is still in use (Noah Misch) The postmaster is now more likely to detect that there are still active processes from a previous postmaster incarnation, even if the postmaster.pid file has been removed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/008", "db_id": "3e0dc8919a53552d0431bcd9bf09c820", "patch_ids": [], "statement_hash": "2617d85831b9da49d42b8cd73967dc50b47fe7109a983c8dbc23accdc5016185", "relations": [{"rule": 2, "type": "equivalent", "target": "4ecb1a0dfe09a23ba50f012651a2b937", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2617d85831b9da49d42b8cd73967dc50b47fe7109a983c8dbc23accdc5016185"}}, {"rule": 2, "type": "equivalent", "target": "57c110b625e0623530d237e179705f69", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2617d85831b9da49d42b8cd73967dc50b47fe7109a983c8dbc23accdc5016185"}}, {"rule": 2, "type": "equivalent", "target": "59083f7943af0375b7179837075926ae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2617d85831b9da49d42b8cd73967dc50b47fe7109a983c8dbc23accdc5016185"}}, {"rule": 2, "type": "equivalent", "target": "8e5dcdf0c92c508318fc1d50f92486b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2617d85831b9da49d42b8cd73967dc50b47fe7109a983c8dbc23accdc5016185"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "57c110b625e0623530d237e179705f69", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "改进服务器在启动时对预先存在的共享内存段是否仍在使用的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2617d85831b9da49d42b8cd73967dc50b47fe7109a983c8dbc23accdc5016185"}, "url": "/docs/compare/?release=11.3#11.3-4923162f8d7b0ab5", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "59083f7943af0375b7179837075926ae", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "改进服务器在启动时对预先存在的共享内存段是否仍在使用的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2617d85831b9da49d42b8cd73967dc50b47fe7109a983c8dbc23accdc5016185"}, "url": "/docs/compare/?release=10.8#10.8-4923162f8d7b0ab5", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "4ecb1a0dfe09a23ba50f012651a2b937", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "改进服务器启动时对既有共享内存段是否仍在使用的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2617d85831b9da49d42b8cd73967dc50b47fe7109a983c8dbc23accdc5016185"}, "url": "/docs/compare/?release=9.5.17#9.5.17-f6b97a174960300a", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "8e5dcdf0c92c508318fc1d50f92486b4", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "改进服务器启动时对既有共享内存段是否仍在使用的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2617d85831b9da49d42b8cd73967dc50b47fe7109a983c8dbc23accdc5016185"}, "url": "/docs/compare/?release=9.4.22#9.4.22-f6b97a174960300a", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-171f5ee606e8887d", "cves": [], "html": "<p>避免把并行工作者的事务计为单独的事务（Haribabu Kommi）</p>", "text": "避免把并行工作者的事务计为单独的事务（Haribabu Kommi）", "title": "避免把并行工作者的事务计为单独的事务", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "1e5315bd9e60a214f40b043566b71ca112b8bba18fc15f68384d62216743195f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid counting parallel workers' transactions as separate transactions (Haribabu Kommi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/009", "db_id": "bdeb9705684164be402f50674623b35a", "patch_ids": [], "statement_hash": "ec6e44f4b20670b74f3aef5b68e371f7f671a880df345fb56430bf0374354c65", "relations": [{"rule": 2, "type": "equivalent", "target": "a5b3202e83704c37b3f27eafe94408c4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ec6e44f4b20670b74f3aef5b68e371f7f671a880df345fb56430bf0374354c65"}}, {"rule": 2, "type": "equivalent", "target": "b5de6042d578e46c90c2c435d9ca02bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ec6e44f4b20670b74f3aef5b68e371f7f671a880df345fb56430bf0374354c65"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a5b3202e83704c37b3f27eafe94408c4", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "避免将并行工作进程的事务计为独立事务", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ec6e44f4b20670b74f3aef5b68e371f7f671a880df345fb56430bf0374354c65"}, "url": "/docs/compare/?release=11.3#11.3-15dd3db2edf595e4", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "b5de6042d578e46c90c2c435d9ca02bf", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "避免将并行工作进程的事务计为独立事务", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ec6e44f4b20670b74f3aef5b68e371f7f671a880df345fb56430bf0374354c65"}, "url": "/docs/compare/?release=10.8#10.8-15dd3db2edf595e4", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}]}, {"id": "9.6.13-f078328560ba4d63", "cves": [], "html": "<p>修复 GIN 索引 WAL 记录的不兼容（Alexander Korotkov）</p>\n<p>二月份小版本中应用的一个修复对向后兼容性不够谨慎，导致那个年代的备库服务器读取前一个小版本的主库生成的 GIN 页删除 WAL 记录时出问题。</p>", "text": "修复 GIN 索引 WAL 记录的不兼容（Alexander Korotkov） 二月份小版本中应用的一个修复对向后兼容性不够谨慎，导致那个年代的备库服务器读取前一个小版本的主库生成的 GIN 页删除 WAL 记录时出问题。", "title": "修复 GIN 索引 WAL 记录的不兼容", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "b2441add7e3ac25cf9a89351470831f690a009899030ab9898c431d750078379", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incompatibility of GIN-index WAL records (Alexander Korotkov) A fix applied in February's minor releases was not sufficiently careful about backwards compatibility, leading to problems if a standby server of that vintage reads GIN page-deletion WAL records generated by a primary server of a previous minor release.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/010", "db_id": "bd4626c573fc81d2806704b26461c907", "patch_ids": [], "statement_hash": "c2cdb1404537cb0788718f43ed5ccc30211424d99e57630b49b5b5931540d269", "relations": [{"rule": 2, "type": "equivalent", "target": "20969dae2aafde17057cd5669e3da33d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c2cdb1404537cb0788718f43ed5ccc30211424d99e57630b49b5b5931540d269"}}, {"rule": 2, "type": "equivalent", "target": "6ade0705a01b6c115e7a5b05799e1e8a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c2cdb1404537cb0788718f43ed5ccc30211424d99e57630b49b5b5931540d269"}}, {"rule": 2, "type": "equivalent", "target": "8ac6289d89d1fbc54793e1be533234c2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c2cdb1404537cb0788718f43ed5ccc30211424d99e57630b49b5b5931540d269"}}, {"rule": 2, "type": "equivalent", "target": "b4045e089f599f3829cddf06a819b434", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c2cdb1404537cb0788718f43ed5ccc30211424d99e57630b49b5b5931540d269"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8ac6289d89d1fbc54793e1be533234c2", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复 GIN 索引 WAL 记录的不兼容问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c2cdb1404537cb0788718f43ed5ccc30211424d99e57630b49b5b5931540d269"}, "url": "/docs/compare/?release=11.3#11.3-5e3b663f903c9160", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "b4045e089f599f3829cddf06a819b434", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复 GIN 索引 WAL 记录的不兼容问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c2cdb1404537cb0788718f43ed5ccc30211424d99e57630b49b5b5931540d269"}, "url": "/docs/compare/?release=10.8#10.8-5e3b663f903c9160", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "20969dae2aafde17057cd5669e3da33d", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复 GIN 索引 WAL 记录的不兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c2cdb1404537cb0788718f43ed5ccc30211424d99e57630b49b5b5931540d269"}, "url": "/docs/compare/?release=9.5.17#9.5.17-f078328560ba4d63", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "6ade0705a01b6c115e7a5b05799e1e8a", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复 GIN 索引 WAL 记录的不兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c2cdb1404537cb0788718f43ed5ccc30211424d99e57630b49b5b5931540d269"}, "url": "/docs/compare/?release=9.4.22#9.4.22-f078328560ba4d63", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-29e0a55b05357c67", "cves": [], "html": "<p>在适当的情况下容忍 <code>fsync</code> 和 <code>sync_file_range</code> 调用的 <code>EINVAL</code> 和 <code>ENOSYS</code> 错误结果（Thomas Munro、James Sewell）</p>\n<p>此前对文件同步失败就 panic 的更改对于某些失败可预见且基本上意味着<span>“<span>操作不受支持</span>”</span>的情况显得过于偏执。</p>", "text": "在适当的情况下容忍 fsync 和 sync_file_range 调用的 EINVAL 和 ENOSYS 错误结果（Thomas Munro、James Sewell） 此前对文件同步失败就 panic 的更改对于某些失败可预见且基本上意味着“操作不受支持”的情况显得过于偏执。", "title": "在适当的情况下容忍 fsync 和 sync_file_range 调用的 EINVAL 和 ENOSYS 错误结果", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "446b5d4a4807141a9a8905234f5b5173022e035d82d641b31ecdb29f66b67cf6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Tolerate EINVAL and ENOSYS error results, where appropriate, for fsync and sync_file_range calls (Thomas Munro, James Sewell) The previous change to panic on file synchronization failures turns out to have been excessively paranoid for certain cases where a failure is predictable and essentially means operation not supported.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/011", "db_id": "829e28a01e09bf073befb02bbb654052", "patch_ids": [], "statement_hash": "15019ec8507d65e8b4c5f4988b1a8f4b7c460d62b13c984eeb4cb52f0d7e5024", "relations": [{"rule": 2, "type": "equivalent", "target": "4675539e238eceda7f6eac2b399194f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "15019ec8507d65e8b4c5f4988b1a8f4b7c460d62b13c984eeb4cb52f0d7e5024"}}, {"rule": 2, "type": "equivalent", "target": "5f7b4be0047845cd0dca4e2d076df426", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "15019ec8507d65e8b4c5f4988b1a8f4b7c460d62b13c984eeb4cb52f0d7e5024"}}, {"rule": 2, "type": "equivalent", "target": "60a3c6f60382c295c24869812f5f21f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "15019ec8507d65e8b4c5f4988b1a8f4b7c460d62b13c984eeb4cb52f0d7e5024"}}, {"rule": 2, "type": "equivalent", "target": "f449147b771ac77b4c5587d05127b477", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "15019ec8507d65e8b4c5f4988b1a8f4b7c460d62b13c984eeb4cb52f0d7e5024"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f449147b771ac77b4c5587d05127b477", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "在适当情况下，容忍 fsync 和 sync_file_range 调用返回 EINVAL 和 ENOSYS 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "15019ec8507d65e8b4c5f4988b1a8f4b7c460d62b13c984eeb4cb52f0d7e5024"}, "url": "/docs/compare/?release=11.3#11.3-9033975dde4c2264", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "4675539e238eceda7f6eac2b399194f8", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "在适当情况下，容忍 fsync 和 sync_file_range 调用返回 EINVAL 和 ENOSYS 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "15019ec8507d65e8b4c5f4988b1a8f4b7c460d62b13c984eeb4cb52f0d7e5024"}, "url": "/docs/compare/?release=10.8#10.8-9033975dde4c2264", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "5f7b4be0047845cd0dca4e2d076df426", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "在适当的情况下容忍 fsync 和 sync_file_range 调用的 EINVAL 和 ENOSYS 错误结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "15019ec8507d65e8b4c5f4988b1a8f4b7c460d62b13c984eeb4cb52f0d7e5024"}, "url": "/docs/compare/?release=9.5.17#9.5.17-29e0a55b05357c67", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "60a3c6f60382c295c24869812f5f21f0", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "在适当的情况下容忍 fsync 和 sync_file_range 调用的 EINVAL 和 ENOSYS 错误结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "15019ec8507d65e8b4c5f4988b1a8f4b7c460d62b13c984eeb4cb52f0d7e5024"}, "url": "/docs/compare/?release=9.4.22#9.4.22-29e0a55b05357c67", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-208a299c4634aa04", "cves": [], "html": "<p>修复 <code>FULL</code> 外连接中通向外部横向引用导致的 <span>“<span>failed to build any <em><code>N</code></em>-way joins</span>”</span> 规划器失败（Tom Lane）</p>", "text": "修复 FULL 外连接中通向外部横向引用导致的 “failed to build any N-way joins” 规划器失败（Tom Lane）", "title": "修复 FULL 外连接中通向外部横向引用导致的 “failed to build any N-way joins” 规划器失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "4666c11c4c844c640adfe6b0d4e06cf76ba79803f118b3522219496901ae54c3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failed to build any N-way joins planner failures with lateral references leading out of FULL outer joins (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/012", "db_id": "8192e4ce0a3123f59698b983babe3d1f", "patch_ids": [], "statement_hash": "f2324a62e170ec26ea193fab5976a1d83ba7b4f8f17fa86e2c806cc06062430b", "relations": [{"rule": 2, "type": "equivalent", "target": "0cb6b648d9303b8cf23472cad87f142c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2324a62e170ec26ea193fab5976a1d83ba7b4f8f17fa86e2c806cc06062430b"}}, {"rule": 2, "type": "equivalent", "target": "1a2c43e83a2ae578bc39dab49a27b002", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2324a62e170ec26ea193fab5976a1d83ba7b4f8f17fa86e2c806cc06062430b"}}, {"rule": 2, "type": "equivalent", "target": "dd12ef759ba5ee4b6f1a7945c470ca05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2324a62e170ec26ea193fab5976a1d83ba7b4f8f17fa86e2c806cc06062430b"}}, {"rule": 2, "type": "equivalent", "target": "eecfb9f41a9c8fbf59fcc48f93a6f07b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2324a62e170ec26ea193fab5976a1d83ba7b4f8f17fa86e2c806cc06062430b"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "eecfb9f41a9c8fbf59fcc48f93a6f07b", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复从 FULL 外连接向外引用的横向引用导致的 “failed to build any N-way joins” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2324a62e170ec26ea193fab5976a1d83ba7b4f8f17fa86e2c806cc06062430b"}, "url": "/docs/compare/?release=11.3#11.3-85bd286d93302cad", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "1a2c43e83a2ae578bc39dab49a27b002", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复从 FULL 外连接向外引用的横向引用导致的 “failed to build any N-way joins” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2324a62e170ec26ea193fab5976a1d83ba7b4f8f17fa86e2c806cc06062430b"}, "url": "/docs/compare/?release=10.8#10.8-85bd286d93302cad", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "0cb6b648d9303b8cf23472cad87f142c", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复 FULL 外连接中通向外部横向引用导致的 “failed to build any N-way joins” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2324a62e170ec26ea193fab5976a1d83ba7b4f8f17fa86e2c806cc06062430b"}, "url": "/docs/compare/?release=9.5.17#9.5.17-208a299c4634aa04", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "dd12ef759ba5ee4b6f1a7945c470ca05", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复 FULL 外连接中通向外部横向引用导致的 “failed to build any N-way joins” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f2324a62e170ec26ea193fab5976a1d83ba7b4f8f17fa86e2c806cc06062430b"}, "url": "/docs/compare/?release=9.4.22#9.4.22-208a299c4634aa04", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-f0907dba055e192c", "cves": [], "html": "<p>在执行关于让泄漏型操作符看到 <code>pg_statistic</code> 数据的规则时，检查正确用户的权限（Dean Rasheed）</p>\n<p>当底层表通过视图被访问时，在决定是否可以把泄漏型操作符应用于该表的统计数据时，考虑视图所有者的权限而不是发起查询的用户的权限。这使规划器关于哪些数据可见的规则与执行器的规则一致，避免了不必要的低劣计划。</p>", "text": "在执行关于让泄漏型操作符看到 pg_statistic 数据的规则时，检查正确用户的权限（Dean Rasheed） 当底层表通过视图被访问时，在决定是否可以把泄漏型操作符应用于该表的统计数据时，考虑视图所有者的权限而不是发起查询的用户的权限。这使规划器关于哪些数据可见的规则与执行器的规则一致，避免了不必要的低劣计划。", "title": "在执行关于让泄漏型操作符看到 pg_statistic 数据的规则时，检查正确用户的权限", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "f6fed8f1c7c3167e94357331d31cd2b2db1b899f826c973099a34b94839647cd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Check the appropriate user's permissions when enforcing rules about letting a leaky operator see pg_statistic data (Dean Rasheed) When an underlying table is being accessed via a view, consider the privileges of the view owner while deciding whether leaky operators may be applied to the table's statistics data, rather than the privileges of the user making the query. This makes the planner's rules about what data is visible match up with the executor's, avoiding unnecessarily-poor plans.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/013", "db_id": "bb0e3dc3b27ee2c7ae8efe94eddf109a", "patch_ids": [], "statement_hash": "4ad8181965b1dd7fa6dc7fc11507351f2845cf0cd9d2626ecdd08c9b51d7c297", "relations": [{"rule": 2, "type": "equivalent", "target": "2ac62b291959e2b42bd5d570b4525b29", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ad8181965b1dd7fa6dc7fc11507351f2845cf0cd9d2626ecdd08c9b51d7c297"}}, {"rule": 2, "type": "equivalent", "target": "82a11df8b6eb395c717e913682c85746", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ad8181965b1dd7fa6dc7fc11507351f2845cf0cd9d2626ecdd08c9b51d7c297"}}, {"rule": 2, "type": "equivalent", "target": "8ae64947930d744dc7a28f2f3bc0f784", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ad8181965b1dd7fa6dc7fc11507351f2845cf0cd9d2626ecdd08c9b51d7c297"}}, {"rule": 2, "type": "equivalent", "target": "c21225fa999e76d5dba772549c6fdd9d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ad8181965b1dd7fa6dc7fc11507351f2845cf0cd9d2626ecdd08c9b51d7c297"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "82a11df8b6eb395c717e913682c85746", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "执行有关是否允许可能泄漏信息的操作符访问 pg_statistic 数据的规则时，检查正确用户的权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ad8181965b1dd7fa6dc7fc11507351f2845cf0cd9d2626ecdd08c9b51d7c297"}, "url": "/docs/compare/?release=11.3#11.3-45a520da4a2291fd", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "2ac62b291959e2b42bd5d570b4525b29", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "执行有关是否允许可能泄漏信息的操作符访问 pg_statistic 数据的规则时，检查正确用户的权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ad8181965b1dd7fa6dc7fc11507351f2845cf0cd9d2626ecdd08c9b51d7c297"}, "url": "/docs/compare/?release=10.8#10.8-45a520da4a2291fd", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "c21225fa999e76d5dba772549c6fdd9d", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "在执行关于让泄漏型操作符看到 pg_statistic 数据的规则时，检查正确用户的权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ad8181965b1dd7fa6dc7fc11507351f2845cf0cd9d2626ecdd08c9b51d7c297"}, "url": "/docs/compare/?release=9.5.17#9.5.17-f0907dba055e192c", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "8ae64947930d744dc7a28f2f3bc0f784", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "在执行关于让泄漏型操作符看到 pg_statistic 数据的规则时，检查正确用户的权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4ad8181965b1dd7fa6dc7fc11507351f2845cf0cd9d2626ecdd08c9b51d7c297"}, "url": "/docs/compare/?release=9.4.22#9.4.22-f0907dba055e192c", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-3717779bbca5b580", "cves": [], "html": "<p>加快存在许多等值条件和许多潜在相关外键约束时的规划（David Rowley）</p>", "text": "加快存在许多等值条件和许多潜在相关外键约束时的规划（David Rowley）", "title": "加快存在许多等值条件和许多潜在相关外键约束时的规划", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "e0d853ffe8f91f07a3fd4de3cfcb85bd58ac79f188675f127eebfef76a1a97cd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Speed up planning when there are many equality conditions and many potentially-relevant foreign key constraints (David Rowley)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/014", "db_id": "ba5dabdacfc661f7d7fad521f7e8ccbb", "patch_ids": [], "statement_hash": "a955702ba63c86002b2b7946f4f1c7d58a442511bf1f94e5ee9ea7ce3f704953", "relations": [{"rule": 2, "type": "equivalent", "target": "51dab45d01a5dbab590304db96f9f1f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a955702ba63c86002b2b7946f4f1c7d58a442511bf1f94e5ee9ea7ce3f704953"}}, {"rule": 2, "type": "equivalent", "target": "8d0293d89a14bb59d91b527fc7972dfa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a955702ba63c86002b2b7946f4f1c7d58a442511bf1f94e5ee9ea7ce3f704953"}}], "version": "9.6.13", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "51dab45d01a5dbab590304db96f9f1f9", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "在存在大量相等条件和大量可能相关的外键约束时，加快规划速度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a955702ba63c86002b2b7946f4f1c7d58a442511bf1f94e5ee9ea7ce3f704953"}, "url": "/docs/compare/?release=11.3#11.3-60e7e60e1bbf2022", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "8d0293d89a14bb59d91b527fc7972dfa", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "在存在大量相等条件和大量可能相关的外键约束时，加快规划速度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a955702ba63c86002b2b7946f4f1c7d58a442511bf1f94e5ee9ea7ce3f704953"}, "url": "/docs/compare/?release=10.8#10.8-60e7e60e1bbf2022", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}]}, {"id": "9.6.13-665d513f526998a0", "cves": [], "html": "<p>避免回滚创建了许多表的事务时的 O(N^2) 性能问题（Tomas Vondra）</p>", "text": "避免回滚创建了许多表的事务时的 O(N^2) 性能问题（Tomas Vondra）", "title": "避免回滚创建了许多表的事务时的 O(N^2) 性能问题", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "1e2022bcc56c5510ba1ab02a7e14269eaa3971e6f926200b3e15efa1160c2963", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid O(N^2) performance issue when rolling back a transaction that created many tables (Tomas Vondra)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/015", "db_id": "af1c93470a8abc26cc75d84110c7f0e4", "patch_ids": [], "statement_hash": "dd774afe58862ed690f1155b09fb61564db6fbdc63db2c267410f9d14e1abc57", "relations": [{"rule": 2, "type": "equivalent", "target": "588eab874ea30b97c5da35700ce3cf02", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd774afe58862ed690f1155b09fb61564db6fbdc63db2c267410f9d14e1abc57"}}, {"rule": 2, "type": "equivalent", "target": "6c30ef376fcdedb817a2c92d79c67584", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd774afe58862ed690f1155b09fb61564db6fbdc63db2c267410f9d14e1abc57"}}, {"rule": 2, "type": "equivalent", "target": "b52433722fe51b4a45700e2bc72412e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd774afe58862ed690f1155b09fb61564db6fbdc63db2c267410f9d14e1abc57"}}, {"rule": 2, "type": "equivalent", "target": "f8304c42793de38c12b35e00ae63b588", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd774afe58862ed690f1155b09fb61564db6fbdc63db2c267410f9d14e1abc57"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b52433722fe51b4a45700e2bc72412e5", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "避免回滚创建了大量表的事务时发生 O(N^2) 性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd774afe58862ed690f1155b09fb61564db6fbdc63db2c267410f9d14e1abc57"}, "url": "/docs/compare/?release=11.3#11.3-5bdcb5c157afa8cc", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "6c30ef376fcdedb817a2c92d79c67584", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "避免回滚创建了大量表的事务时发生 O(N^2) 性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd774afe58862ed690f1155b09fb61564db6fbdc63db2c267410f9d14e1abc57"}, "url": "/docs/compare/?release=10.8#10.8-5bdcb5c157afa8cc", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "588eab874ea30b97c5da35700ce3cf02", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "避免回滚创建了许多表的事务时的 O(N^2) 性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd774afe58862ed690f1155b09fb61564db6fbdc63db2c267410f9d14e1abc57"}, "url": "/docs/compare/?release=9.5.17#9.5.17-665d513f526998a0", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "f8304c42793de38c12b35e00ae63b588", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "避免回滚创建了许多表的事务时的 O(N^2) 性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd774afe58862ed690f1155b09fb61564db6fbdc63db2c267410f9d14e1abc57"}, "url": "/docs/compare/?release=9.4.22#9.4.22-665d513f526998a0", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-50de979ef5d58f5a", "cves": [], "html": "<p>修复动态共享内存管理中的竞态条件（Thomas Munro）</p>\n<p>这些可能导致 <span>“<span>dsa_area could not attach to segment</span>”</span> 或 <span>“<span>cannot unpin a segment that is not pinned</span>”</span> 错误。</p>", "text": "修复动态共享内存管理中的竞态条件（Thomas Munro） 这些可能导致 “dsa_area could not attach to segment” 或 “cannot unpin a segment that is not pinned” 错误。", "title": "修复动态共享内存管理中的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "f3f306810f4c02dd9633359edbd95499e74b1409b66d3f157489d87db45ef5ad", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race conditions in management of dynamic shared memory (Thomas Munro) These could lead to dsa_area could not attach to segment or cannot unpin a segment that is not pinned errors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/016", "db_id": "b713a0c3524da4af76af18c9b9db2a78", "patch_ids": [], "statement_hash": "f0e817a9a5f97725727c724745615d6ffce1f906777c18c78b43d6b725744823", "relations": [{"rule": 2, "type": "equivalent", "target": "630d5a03e93105f0f4b107ca566b54e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0e817a9a5f97725727c724745615d6ffce1f906777c18c78b43d6b725744823"}}, {"rule": 2, "type": "equivalent", "target": "63fefdc37f83475bd41c2529d4f93aaa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0e817a9a5f97725727c724745615d6ffce1f906777c18c78b43d6b725744823"}}, {"rule": 2, "type": "equivalent", "target": "ac4887b5233fd51fdad71c24ae93601a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0e817a9a5f97725727c724745615d6ffce1f906777c18c78b43d6b725744823"}}, {"rule": 2, "type": "equivalent", "target": "fc58f5aef290612b3a8d9e6d974bd45b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0e817a9a5f97725727c724745615d6ffce1f906777c18c78b43d6b725744823"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fc58f5aef290612b3a8d9e6d974bd45b", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复动态共享内存管理中的竞争条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0e817a9a5f97725727c724745615d6ffce1f906777c18c78b43d6b725744823"}, "url": "/docs/compare/?release=11.3#11.3-54a3837eaceace0a", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "630d5a03e93105f0f4b107ca566b54e8", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复动态共享内存管理中的竞争条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0e817a9a5f97725727c724745615d6ffce1f906777c18c78b43d6b725744823"}, "url": "/docs/compare/?release=10.8#10.8-54a3837eaceace0a", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "ac4887b5233fd51fdad71c24ae93601a", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复动态共享内存管理中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0e817a9a5f97725727c724745615d6ffce1f906777c18c78b43d6b725744823"}, "url": "/docs/compare/?release=9.5.17#9.5.17-50de979ef5d58f5a", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "63fefdc37f83475bd41c2529d4f93aaa", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复动态共享内存管理中的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0e817a9a5f97725727c724745615d6ffce1f906777c18c78b43d6b725744823"}, "url": "/docs/compare/?release=9.4.22#9.4.22-50de979ef5d58f5a", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-9e8c059340aa0a9a", "cves": [], "html": "<p>修复热备 postmaster 收到 smart 关闭请求后可能不关闭的竞态条件（Tom Lane）</p>", "text": "修复热备 postmaster 收到 smart 关闭请求后可能不关闭的竞态条件（Tom Lane）", "title": "修复热备 postmaster 收到 smart 关闭请求后可能不关闭的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "266df8dd5e51edfa91f70b86e04c6e0a75e8b3185607ae7712303fe96742ec73", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race condition in which a hot-standby postmaster could fail to shut down after receiving a smart-shutdown request (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/017", "db_id": "5906def93ef172dbb220b101673f9184", "patch_ids": [], "statement_hash": "0f587038a9e0336073ee0b2d12bbc0afea2a94787d8a65c4080e68f1dfdb88ab", "relations": [{"rule": 2, "type": "equivalent", "target": "409d1b88be429d1cb8a579ce0c84375a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f587038a9e0336073ee0b2d12bbc0afea2a94787d8a65c4080e68f1dfdb88ab"}}, {"rule": 2, "type": "equivalent", "target": "4210c401558dc70edeb64e47f7c9e0a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f587038a9e0336073ee0b2d12bbc0afea2a94787d8a65c4080e68f1dfdb88ab"}}, {"rule": 2, "type": "equivalent", "target": "7607635df0027eef0b0a3dc43947171d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f587038a9e0336073ee0b2d12bbc0afea2a94787d8a65c4080e68f1dfdb88ab"}}, {"rule": 2, "type": "equivalent", "target": "e76ac9b8a7fab050e52964f6710ffe84", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f587038a9e0336073ee0b2d12bbc0afea2a94787d8a65c4080e68f1dfdb88ab"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7607635df0027eef0b0a3dc43947171d", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复热备 postmaster 收到 smart 关闭请求后可能无法关闭的竞争条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f587038a9e0336073ee0b2d12bbc0afea2a94787d8a65c4080e68f1dfdb88ab"}, "url": "/docs/compare/?release=11.3#11.3-78fdfc022e6a9cf8", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "4210c401558dc70edeb64e47f7c9e0a4", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复热备 postmaster 收到 smart 关闭请求后可能无法关闭的竞争条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f587038a9e0336073ee0b2d12bbc0afea2a94787d8a65c4080e68f1dfdb88ab"}, "url": "/docs/compare/?release=10.8#10.8-78fdfc022e6a9cf8", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "409d1b88be429d1cb8a579ce0c84375a", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复热备 postmaster 收到 smart 关闭请求后可能不关闭的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f587038a9e0336073ee0b2d12bbc0afea2a94787d8a65c4080e68f1dfdb88ab"}, "url": "/docs/compare/?release=9.5.17#9.5.17-9e8c059340aa0a9a", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "e76ac9b8a7fab050e52964f6710ffe84", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复热备 postmaster 收到 smart 关闭请求后可能不关闭的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f587038a9e0336073ee0b2d12bbc0afea2a94787d8a65c4080e68f1dfdb88ab"}, "url": "/docs/compare/?release=9.4.22#9.4.22-9e8c059340aa0a9a", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-b4c7fcd8e2c01d2b", "cves": [], "html": "<p>修复给 <code>pg_identify_object_as_address()</code> 无效输入时可能的崩溃（Álvaro Herrera）</p>", "text": "修复给 pg_identify_object_as_address() 无效输入时可能的崩溃（Álvaro Herrera）", "title": "修复给 pg_identify_object_as_address() 无效输入时可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "c009374ae54261953c6db0e914fb9022f16511554b6640c99779aba83decb6b7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible crash when pg_identify_object_as_address() is given invalid input (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/018", "db_id": "9c832569ec2852a998b291ca6dbb4cf8", "patch_ids": [], "statement_hash": "39fbb4b1e8c4f7e003cdb55379865351448beb4cbfdead4e37d5f47806756adf", "relations": [{"rule": 2, "type": "equivalent", "target": "59848af8f80ec3fd0cee55ef653e5bd9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39fbb4b1e8c4f7e003cdb55379865351448beb4cbfdead4e37d5f47806756adf"}}, {"rule": 2, "type": "equivalent", "target": "72161c17cb9ec7a261eceabc9771f1a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39fbb4b1e8c4f7e003cdb55379865351448beb4cbfdead4e37d5f47806756adf"}}, {"rule": 2, "type": "equivalent", "target": "96ab96aef752a4b9b7acf02295bbd682", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39fbb4b1e8c4f7e003cdb55379865351448beb4cbfdead4e37d5f47806756adf"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "59848af8f80ec3fd0cee55ef653e5bd9", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复 pg_identify_object_as_address() 收到无效输入时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39fbb4b1e8c4f7e003cdb55379865351448beb4cbfdead4e37d5f47806756adf"}, "url": "/docs/compare/?release=11.3#11.3-fbf3fd803374216d", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "72161c17cb9ec7a261eceabc9771f1a6", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复 pg_identify_object_as_address() 收到无效输入时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39fbb4b1e8c4f7e003cdb55379865351448beb4cbfdead4e37d5f47806756adf"}, "url": "/docs/compare/?release=10.8#10.8-fbf3fd803374216d", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "96ab96aef752a4b9b7acf02295bbd682", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复给 pg_identify_object_as_address() 无效输入时可能的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39fbb4b1e8c4f7e003cdb55379865351448beb4cbfdead4e37d5f47806756adf"}, "url": "/docs/compare/?release=9.5.17#9.5.17-b4c7fcd8e2c01d2b", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}]}, {"id": "9.6.13-40b00fe0c2b0c3b7", "cves": [], "html": "<p>收紧对编码后的 SCRAM-SHA-256 和 MD5 口令的验证（Jonathan Katz）</p>\n<p>开头字符正确的口令字符串可能被误认为是已正确哈希为 SCRAM-SHA-256 或 MD5 格式的口令。这种口令会被接受但之后无法使用。</p>", "text": "收紧对编码后的 SCRAM-SHA-256 和 MD5 口令的验证（Jonathan Katz） 开头字符正确的口令字符串可能被误认为是已正确哈希为 SCRAM-SHA-256 或 MD5 格式的口令。这种口令会被接受但之后无法使用。", "title": "收紧对编码后的 SCRAM-SHA-256 和 MD5 口令的验证", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "db97b43558759b1f4f0ebf1e25cafdaf105be4eb49210119074a47a0aaa16db9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Tighten validation of encoded SCRAM-SHA-256 and MD5 passwords (Jonathan Katz) A password string that had the right initial characters could be mistaken for one that is correctly hashed into SCRAM-SHA-256 or MD5 format. The password would be accepted but would be unusable later.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/019", "db_id": "065b7d60883bb6a234a85b51fd294973", "patch_ids": [], "statement_hash": "0336ab8f5fb97c3129d6f26e6a17dec92a1ece6da00397f07bf9f0b576dcb722", "relations": [{"rule": 2, "type": "equivalent", "target": "63fa62fd1be046c468accff4643e3276", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0336ab8f5fb97c3129d6f26e6a17dec92a1ece6da00397f07bf9f0b576dcb722"}}, {"rule": 2, "type": "equivalent", "target": "88fc7b91a4bd261e7cdca2cec81c944d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0336ab8f5fb97c3129d6f26e6a17dec92a1ece6da00397f07bf9f0b576dcb722"}}, {"rule": 2, "type": "equivalent", "target": "d0fffaf8c56845733b5b0ae89fb03fd4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0336ab8f5fb97c3129d6f26e6a17dec92a1ece6da00397f07bf9f0b576dcb722"}}, {"rule": 2, "type": "equivalent", "target": "d5dd143586ce3867905acd5c5351068b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0336ab8f5fb97c3129d6f26e6a17dec92a1ece6da00397f07bf9f0b576dcb722"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "63fa62fd1be046c468accff4643e3276", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "加强对已编码的 SCRAM-SHA-256 和 MD5 密码的验证", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0336ab8f5fb97c3129d6f26e6a17dec92a1ece6da00397f07bf9f0b576dcb722"}, "url": "/docs/compare/?release=11.3#11.3-954f6844cb0eccce", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "88fc7b91a4bd261e7cdca2cec81c944d", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "加强对已编码的 SCRAM-SHA-256 和 MD5 密码的验证", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0336ab8f5fb97c3129d6f26e6a17dec92a1ece6da00397f07bf9f0b576dcb722"}, "url": "/docs/compare/?release=10.8#10.8-954f6844cb0eccce", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "d5dd143586ce3867905acd5c5351068b", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "收紧对编码后的 SCRAM-SHA-256 和 MD5 口令的验证", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0336ab8f5fb97c3129d6f26e6a17dec92a1ece6da00397f07bf9f0b576dcb722"}, "url": "/docs/compare/?release=9.5.17#9.5.17-40b00fe0c2b0c3b7", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "d0fffaf8c56845733b5b0ae89fb03fd4", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "收紧对编码后的 SCRAM-SHA-256 和 MD5 口令的验证", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0336ab8f5fb97c3129d6f26e6a17dec92a1ece6da00397f07bf9f0b576dcb722"}, "url": "/docs/compare/?release=9.4.22#9.4.22-40b00fe0c2b0c3b7", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-7daecba97eeaf800", "cves": [], "html": "<p>修复对隐含与数据库编码不同的编码的 <code>lc_time</code> 设置的处理（Juan José Santamaría Flecha、Tom Lane）</p>\n<p>包含非 ASCII 字符的本地化月份或日期名此前在此类区域中导致意外错误或错误输出。</p>", "text": "修复对隐含与数据库编码不同的编码的 lc_time 设置的处理（Juan José Santamaría Flecha、Tom Lane） 包含非 ASCII 字符的本地化月份或日期名此前在此类区域中导致意外错误或错误输出。", "title": "修复对隐含与数据库编码不同的编码的 lc_time 设置的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "663495130f8a603787ac2d5a09c6d23aafbd215a1b568f48a04d4d56bd2b4856", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix handling of lc_time settings that imply an encoding different from the database's encoding (Juan José Santamaría Flecha, Tom Lane) Localized month or day names that include non-ASCII characters previously caused unexpected errors or wrong output in such locales.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/020", "db_id": "aa42c33d3829f46203fdb823259d21f2", "patch_ids": [], "statement_hash": "dac2e03503b671109dd1f2fe08367d24646969cabae6dc4cade4a18283d6195c", "relations": [{"rule": 2, "type": "equivalent", "target": "6023434703ae142d685b77bcd27e729c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dac2e03503b671109dd1f2fe08367d24646969cabae6dc4cade4a18283d6195c"}}, {"rule": 2, "type": "equivalent", "target": "7928a410fb9ffc83b0332e3e8235b74a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dac2e03503b671109dd1f2fe08367d24646969cabae6dc4cade4a18283d6195c"}}, {"rule": 2, "type": "equivalent", "target": "88a324d0d1fd64bef65047993db1b1dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dac2e03503b671109dd1f2fe08367d24646969cabae6dc4cade4a18283d6195c"}}, {"rule": 2, "type": "equivalent", "target": "fd5ae8340036928149041c1a7238147f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dac2e03503b671109dd1f2fe08367d24646969cabae6dc4cade4a18283d6195c"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fd5ae8340036928149041c1a7238147f", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复对隐含编码不同于数据库编码的 lc_time 设置的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dac2e03503b671109dd1f2fe08367d24646969cabae6dc4cade4a18283d6195c"}, "url": "/docs/compare/?release=11.3#11.3-c71a9dbe067f738c", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "6023434703ae142d685b77bcd27e729c", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复对隐含编码不同于数据库编码的 lc_time 设置的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dac2e03503b671109dd1f2fe08367d24646969cabae6dc4cade4a18283d6195c"}, "url": "/docs/compare/?release=10.8#10.8-c71a9dbe067f738c", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "7928a410fb9ffc83b0332e3e8235b74a", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复对隐含与数据库编码不同的编码的 lc_time 设置的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dac2e03503b671109dd1f2fe08367d24646969cabae6dc4cade4a18283d6195c"}, "url": "/docs/compare/?release=9.5.17#9.5.17-7daecba97eeaf800", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "88a324d0d1fd64bef65047993db1b1dd", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复对隐含与数据库编码不同的编码的 lc_time 设置的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dac2e03503b671109dd1f2fe08367d24646969cabae6dc4cade4a18283d6195c"}, "url": "/docs/compare/?release=9.4.22#9.4.22-7daecba97eeaf800", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-350b4ff9e25a6884", "cves": [], "html": "<p>修复涉及一元减号操作符的不正确 <code>operator_precedence_warning</code> 检查（Rikard Falkeborn）</p>", "text": "修复涉及一元减号操作符的不正确 operator_precedence_warning 检查（Rikard Falkeborn）", "title": "修复涉及一元减号操作符的不正确 operator_precedence_warning 检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "c6c046408f5edba106fddfc8586c3b912c25eb5a519785bd80d81563a0572745", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect operator_precedence_warning checks involving unary minus operators (Rikard Falkeborn)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/021", "db_id": "ccc1aad313a449b492c12f6265a46a02", "patch_ids": [], "statement_hash": "1ddd54091b0f8566e299eebf315b21db398fe458e9c8f3d2f21fed85b43909d3", "relations": [{"rule": 2, "type": "equivalent", "target": "8048f6693e651a4e4b11ab25b96232ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ddd54091b0f8566e299eebf315b21db398fe458e9c8f3d2f21fed85b43909d3"}}, {"rule": 2, "type": "equivalent", "target": "97ac3fcbca00af0a2809809eed32209e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ddd54091b0f8566e299eebf315b21db398fe458e9c8f3d2f21fed85b43909d3"}}, {"rule": 2, "type": "equivalent", "target": "ae82d625aa676e49dc809096cbebfbb3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ddd54091b0f8566e299eebf315b21db398fe458e9c8f3d2f21fed85b43909d3"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8048f6693e651a4e4b11ab25b96232ce", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复涉及一元负号操作符时不正确的 operator_precedence_warning 检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ddd54091b0f8566e299eebf315b21db398fe458e9c8f3d2f21fed85b43909d3"}, "url": "/docs/compare/?release=11.3#11.3-e70623a99d6fa6c4", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "ae82d625aa676e49dc809096cbebfbb3", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复涉及一元负号操作符时不正确的 operator_precedence_warning 检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ddd54091b0f8566e299eebf315b21db398fe458e9c8f3d2f21fed85b43909d3"}, "url": "/docs/compare/?release=10.8#10.8-e70623a99d6fa6c4", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "97ac3fcbca00af0a2809809eed32209e", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复涉及一元减号操作符的不正确 operator_precedence_warning 检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ddd54091b0f8566e299eebf315b21db398fe458e9c8f3d2f21fed85b43909d3"}, "url": "/docs/compare/?release=9.5.17#9.5.17-350b4ff9e25a6884", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}]}, {"id": "9.6.13-115e52ef9674b9d6", "cves": [], "html": "<p>禁止把 <code>NaN</code> 用作浮点服务器参数的值（Tom Lane）</p>", "text": "禁止把 NaN 用作浮点服务器参数的值（Tom Lane）", "title": "禁止把 NaN 用作浮点服务器参数的值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "838d4e4dea8e4d50e6f64aac41e7c9385e42e8f93490e8854a1ba43c376fe140", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disallow NaN as a value for floating-point server parameters (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/022", "db_id": "e482db374a038b89954b3f179d353be4", "patch_ids": [], "statement_hash": "aa7dd1f41c1543364a7cec8ce5d67330cc2364ea89b8ee2f35140f012a99edd9", "relations": [{"rule": 2, "type": "equivalent", "target": "202b7c0247bddc4a0cf76a64f21b4b18", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa7dd1f41c1543364a7cec8ce5d67330cc2364ea89b8ee2f35140f012a99edd9"}}, {"rule": 2, "type": "equivalent", "target": "20ac9b2452da793d7a631f7e776d1b3f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa7dd1f41c1543364a7cec8ce5d67330cc2364ea89b8ee2f35140f012a99edd9"}}, {"rule": 2, "type": "equivalent", "target": "9b08e2a0268c251e987ab852d608c84d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa7dd1f41c1543364a7cec8ce5d67330cc2364ea89b8ee2f35140f012a99edd9"}}, {"rule": 2, "type": "equivalent", "target": "e0c82d233af86101f65c057934fb8841", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa7dd1f41c1543364a7cec8ce5d67330cc2364ea89b8ee2f35140f012a99edd9"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9b08e2a0268c251e987ab852d608c84d", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "禁止将 NaN 用作浮点服务器参数的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa7dd1f41c1543364a7cec8ce5d67330cc2364ea89b8ee2f35140f012a99edd9"}, "url": "/docs/compare/?release=11.3#11.3-ca03bfca2ae91309", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "20ac9b2452da793d7a631f7e776d1b3f", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "禁止将 NaN 用作浮点服务器参数的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa7dd1f41c1543364a7cec8ce5d67330cc2364ea89b8ee2f35140f012a99edd9"}, "url": "/docs/compare/?release=10.8#10.8-ca03bfca2ae91309", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "202b7c0247bddc4a0cf76a64f21b4b18", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "禁止把 NaN 用作浮点服务器参数的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa7dd1f41c1543364a7cec8ce5d67330cc2364ea89b8ee2f35140f012a99edd9"}, "url": "/docs/compare/?release=9.5.17#9.5.17-115e52ef9674b9d6", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "e0c82d233af86101f65c057934fb8841", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "禁止把 NaN 用作浮点服务器参数的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa7dd1f41c1543364a7cec8ce5d67330cc2364ea89b8ee2f35140f012a99edd9"}, "url": "/docs/compare/?release=9.4.22#9.4.22-115e52ef9674b9d6", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-656b5b0aaf6ffe67", "cves": [], "html": "<p>重排 <code>REINDEX</code> 处理，避免对 <code>pg_class</code> 的单个索引重建时断言失败（Andres Freund、Tom Lane）</p>", "text": "重排 REINDEX 处理，避免对 pg_class 的单个索引重建时断言失败（Andres Freund、Tom Lane）", "title": "重排 REINDEX 处理，避免对 pg_class 的单个索引重建时断言失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "4751f821662aab51364d887433e28597ef8c431c07bf5cf95102409490717e84", "section_path": ["变更"], "commit_groups": [], "identity_text": "Rearrange REINDEX processing to avoid assertion failures when reindexing individual indexes of pg_class (Andres Freund, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/023", "db_id": "63abb91462054225b6ba31e96db2124a", "patch_ids": [], "statement_hash": "acc873989166de02ef21c8fe9f34ee5a8cbf310d5f2df4b945da6d0cd7e5e8ec", "relations": [{"rule": 2, "type": "equivalent", "target": "0d9c14e676a080463b68aebdc8ecc69e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acc873989166de02ef21c8fe9f34ee5a8cbf310d5f2df4b945da6d0cd7e5e8ec"}}, {"rule": 2, "type": "equivalent", "target": "1cdb74cf37e275a6ba7b8924b8281df4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acc873989166de02ef21c8fe9f34ee5a8cbf310d5f2df4b945da6d0cd7e5e8ec"}}, {"rule": 2, "type": "equivalent", "target": "7ec1d1430de8b555780666dcfc812d13", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acc873989166de02ef21c8fe9f34ee5a8cbf310d5f2df4b945da6d0cd7e5e8ec"}}, {"rule": 2, "type": "equivalent", "target": "bc73908224b943c5f141199c1d2306a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acc873989166de02ef21c8fe9f34ee5a8cbf310d5f2df4b945da6d0cd7e5e8ec"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0d9c14e676a080463b68aebdc8ecc69e", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "重新安排 REINDEX 的处理，以避免重建 pg_class 的单个索引时发生断言失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acc873989166de02ef21c8fe9f34ee5a8cbf310d5f2df4b945da6d0cd7e5e8ec"}, "url": "/docs/compare/?release=11.3#11.3-d08a1a8f1cd91ea2", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "bc73908224b943c5f141199c1d2306a1", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "重新安排 REINDEX 的处理，以避免重建 pg_class 的单个索引时发生断言失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acc873989166de02ef21c8fe9f34ee5a8cbf310d5f2df4b945da6d0cd7e5e8ec"}, "url": "/docs/compare/?release=10.8#10.8-d08a1a8f1cd91ea2", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "1cdb74cf37e275a6ba7b8924b8281df4", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "重排 REINDEX 处理，避免对 pg_class 的单个索引重建时断言失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acc873989166de02ef21c8fe9f34ee5a8cbf310d5f2df4b945da6d0cd7e5e8ec"}, "url": "/docs/compare/?release=9.5.17#9.5.17-656b5b0aaf6ffe67", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "7ec1d1430de8b555780666dcfc812d13", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "重排 REINDEX 处理，避免对 pg_class 的单个索引重建时断言失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "acc873989166de02ef21c8fe9f34ee5a8cbf310d5f2df4b945da6d0cd7e5e8ec"}, "url": "/docs/compare/?release=9.4.22#9.4.22-656b5b0aaf6ffe67", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-8f8600b6db21c843", "cves": [], "html": "<p>修复参数化虚拟路径的规划器断言失败（Tom Lane）</p>", "text": "修复参数化虚拟路径的规划器断言失败（Tom Lane）", "title": "修复参数化虚拟路径的规划器断言失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "54fbca45bd0e063d37c2065a9cdfc94da34c2e8f883733fb53fb0698082c217e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner assertion failure for parameterized dummy paths (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/024", "db_id": "206722ce8af08e97ab934bf12d20a9ab", "patch_ids": [], "statement_hash": "7d3942f88bca7cb4a0f09cf504996ab508f9abaa5a632578c2a4ec56c0bebed7", "relations": [{"rule": 2, "type": "equivalent", "target": "16ba931a3c5ed6caf32c69ad5aeaf913", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d3942f88bca7cb4a0f09cf504996ab508f9abaa5a632578c2a4ec56c0bebed7"}}, {"rule": 2, "type": "equivalent", "target": "763b084ad370bf768031dc9ee886a0ab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d3942f88bca7cb4a0f09cf504996ab508f9abaa5a632578c2a4ec56c0bebed7"}}, {"rule": 2, "type": "equivalent", "target": "95220568334a504ff69e73ababe97e46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d3942f88bca7cb4a0f09cf504996ab508f9abaa5a632578c2a4ec56c0bebed7"}}, {"rule": 2, "type": "equivalent", "target": "9fa7bc07d630d94e6fc53509af4a3fd4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d3942f88bca7cb4a0f09cf504996ab508f9abaa5a632578c2a4ec56c0bebed7"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "763b084ad370bf768031dc9ee886a0ab", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复参数化虚拟路径引发的规划器断言失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d3942f88bca7cb4a0f09cf504996ab508f9abaa5a632578c2a4ec56c0bebed7"}, "url": "/docs/compare/?release=11.3#11.3-f174c25fa2ad7ddd", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "9fa7bc07d630d94e6fc53509af4a3fd4", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复参数化虚拟路径引发的规划器断言失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d3942f88bca7cb4a0f09cf504996ab508f9abaa5a632578c2a4ec56c0bebed7"}, "url": "/docs/compare/?release=10.8#10.8-f174c25fa2ad7ddd", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "16ba931a3c5ed6caf32c69ad5aeaf913", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复参数化虚拟路径的规划器断言失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d3942f88bca7cb4a0f09cf504996ab508f9abaa5a632578c2a4ec56c0bebed7"}, "url": "/docs/compare/?release=9.5.17#9.5.17-8f8600b6db21c843", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "95220568334a504ff69e73ababe97e46", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复参数化虚拟路径的规划器断言失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d3942f88bca7cb4a0f09cf504996ab508f9abaa5a632578c2a4ec56c0bebed7"}, "url": "/docs/compare/?release=9.4.22#9.4.22-8f8600b6db21c843", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-fdb886250bb1e0fd", "cves": [], "html": "<p>在 <code>SnapBuildInitialSnapshot()</code> 的结果中插入正确的测试函数（Antonin Houska）</p>\n<p>没有核心代码关心这一点，但一些扩展关心。</p>", "text": "在 SnapBuildInitialSnapshot() 的结果中插入正确的测试函数（Antonin Houska） 没有核心代码关心这一点，但一些扩展关心。", "title": "在 SnapBuildInitialSnapshot() 的结果中插入正确的测试函数", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "8e602d2a5808e584f84c55f2cfb9c44eb3284fadf43fb72d10004316a67d9b9b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Insert correct test function in the result of SnapBuildInitialSnapshot() (Antonin Houska) No core code cares about this, but some extensions do.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/025", "db_id": "a785311de6afae77f613632178cfabc3", "patch_ids": [], "statement_hash": "49a0b41fd8592ab28d81663debc0702d3c1646a27f2a1e2b71eda7bbce54e5a9", "relations": [{"rule": 2, "type": "equivalent", "target": "86bbe9772f7bbfb35b8e92312c6fdd45", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a0b41fd8592ab28d81663debc0702d3c1646a27f2a1e2b71eda7bbce54e5a9"}}, {"rule": 2, "type": "equivalent", "target": "8bf21069b627d06b340cb848bd0adf31", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a0b41fd8592ab28d81663debc0702d3c1646a27f2a1e2b71eda7bbce54e5a9"}}, {"rule": 2, "type": "equivalent", "target": "987b55c6c7ecf552eb54f83b28f3b208", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a0b41fd8592ab28d81663debc0702d3c1646a27f2a1e2b71eda7bbce54e5a9"}}, {"rule": 2, "type": "equivalent", "target": "bea9ea54569d0af1252af9a7ccc61ba8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a0b41fd8592ab28d81663debc0702d3c1646a27f2a1e2b71eda7bbce54e5a9"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "987b55c6c7ecf552eb54f83b28f3b208", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "在 SnapBuildInitialSnapshot() 的结果中设置正确的测试函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a0b41fd8592ab28d81663debc0702d3c1646a27f2a1e2b71eda7bbce54e5a9"}, "url": "/docs/compare/?release=11.3#11.3-d3e4951ffe3d00a9", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "8bf21069b627d06b340cb848bd0adf31", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "在 SnapBuildInitialSnapshot() 的结果中设置正确的测试函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a0b41fd8592ab28d81663debc0702d3c1646a27f2a1e2b71eda7bbce54e5a9"}, "url": "/docs/compare/?release=10.8#10.8-d3e4951ffe3d00a9", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "bea9ea54569d0af1252af9a7ccc61ba8", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "在 SnapBuildInitialSnapshot() 的结果中插入正确的测试函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a0b41fd8592ab28d81663debc0702d3c1646a27f2a1e2b71eda7bbce54e5a9"}, "url": "/docs/compare/?release=9.5.17#9.5.17-fdb886250bb1e0fd", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "86bbe9772f7bbfb35b8e92312c6fdd45", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "在 SnapBuildInitialSnapshot() 的结果中插入正确的测试函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49a0b41fd8592ab28d81663debc0702d3c1646a27f2a1e2b71eda7bbce54e5a9"}, "url": "/docs/compare/?release=9.4.22#9.4.22-fdb886250bb1e0fd", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-f65ca184b9cb865f", "cves": [], "html": "<p>修复 Windows 上间歇性的 <span>“<span>could not reattach to shared memory</span>”</span> 会话启动失败（Noah Misch）</p>\n<p>这些失败的一个此前未被识别的来源是为进程默认线程池创建线程栈。安排把这种栈分配在不同的内存区域。</p>", "text": "修复 Windows 上间歇性的 “could not reattach to shared memory” 会话启动失败（Noah Misch） 这些失败的一个此前未被识别的来源是为进程默认线程池创建线程栈。安排把这种栈分配在不同的内存区域。", "title": "修复 Windows 上间歇性的 “could not reattach to shared memory” 会话启动失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "b95b4f82cbd470893ba5c84324cf1efd0ef66b8add4c565d4ba765754063e209", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix intermittent could not reattach to shared memory session startup failures on Windows (Noah Misch) A previously unrecognized source of these failures is creation of thread stacks for a process's default thread pool. Arrange for such stacks to be allocated in a different memory region.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/026", "db_id": "0271baa0447feba739fddee4f248c25c", "patch_ids": [], "statement_hash": "27daeb23cb9f84e9a9b19b7c40cdf81af98f8dd9e3a7c0363da150162f38991a", "relations": [{"rule": 2, "type": "equivalent", "target": "37ca840f8209b068864585b7d699cb6c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27daeb23cb9f84e9a9b19b7c40cdf81af98f8dd9e3a7c0363da150162f38991a"}}, {"rule": 2, "type": "equivalent", "target": "662acfd1ddc55189cb802f96b14e9401", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27daeb23cb9f84e9a9b19b7c40cdf81af98f8dd9e3a7c0363da150162f38991a"}}, {"rule": 2, "type": "equivalent", "target": "769f1cd5750d5de9bda6b5b9744bd5e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27daeb23cb9f84e9a9b19b7c40cdf81af98f8dd9e3a7c0363da150162f38991a"}}, {"rule": 2, "type": "equivalent", "target": "efdc17c862291077d58e9fd9e55ada6c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27daeb23cb9f84e9a9b19b7c40cdf81af98f8dd9e3a7c0363da150162f38991a"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "37ca840f8209b068864585b7d699cb6c", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复 Windows 上间歇出现的 “could not reattach to shared memory” 会话启动失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27daeb23cb9f84e9a9b19b7c40cdf81af98f8dd9e3a7c0363da150162f38991a"}, "url": "/docs/compare/?release=11.3#11.3-2c7bdaa9af6aad3c", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "662acfd1ddc55189cb802f96b14e9401", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复 Windows 上间歇出现的 “could not reattach to shared memory” 会话启动失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27daeb23cb9f84e9a9b19b7c40cdf81af98f8dd9e3a7c0363da150162f38991a"}, "url": "/docs/compare/?release=10.8#10.8-2c7bdaa9af6aad3c", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "769f1cd5750d5de9bda6b5b9744bd5e7", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复 Windows 上间歇性的 “could not reattach to shared memory” 会话启动失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27daeb23cb9f84e9a9b19b7c40cdf81af98f8dd9e3a7c0363da150162f38991a"}, "url": "/docs/compare/?release=9.5.17#9.5.17-f65ca184b9cb865f", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "efdc17c862291077d58e9fd9e55ada6c", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复 Windows 上间歇性的 “could not reattach to shared memory” 会话启动失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27daeb23cb9f84e9a9b19b7c40cdf81af98f8dd9e3a7c0363da150162f38991a"}, "url": "/docs/compare/?release=9.4.22#9.4.22-f65ca184b9cb865f", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-691c84a1bcf6ce11", "cves": [], "html": "<p>修复 Windows 上目录扫描中的错误检测（Konstantin Knizhnik）</p>\n<p>诸如缺少读取目录权限之类的错误没有被正确检测或报告；代码而是静默地表现为目录为空。</p>", "text": "修复 Windows 上目录扫描中的错误检测（Konstantin Knizhnik） 诸如缺少读取目录权限之类的错误没有被正确检测或报告；代码而是静默地表现为目录为空。", "title": "修复 Windows 上目录扫描中的错误检测", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "793922e5e8360832f4e79d888e91dda9395356e2a9725bb979609ba169580163", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix error detection in directory scanning on Windows (Konstantin Knizhnik) Errors, such as lack of permissions to read the directory, were not detected or reported correctly; instead the code silently acted as though the directory were empty.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/027", "db_id": "facd74d550600fed233bff7b2b0c3fe9", "patch_ids": [], "statement_hash": "04a72cd465bc452bb03b4f51a865ad37e770bb85791e82c0bc0d493032103dfe", "relations": [{"rule": 2, "type": "equivalent", "target": "2ec178c47539b29fd83d5a350b84b1e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04a72cd465bc452bb03b4f51a865ad37e770bb85791e82c0bc0d493032103dfe"}}, {"rule": 2, "type": "equivalent", "target": "6e764e0a7fe284ba94b6ff71ece31c03", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04a72cd465bc452bb03b4f51a865ad37e770bb85791e82c0bc0d493032103dfe"}}, {"rule": 2, "type": "equivalent", "target": "75ce8d4b3d89d04e314ebf062c570aa0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04a72cd465bc452bb03b4f51a865ad37e770bb85791e82c0bc0d493032103dfe"}}, {"rule": 2, "type": "equivalent", "target": "e4c3862436bc6b4e73ed86867da656f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04a72cd465bc452bb03b4f51a865ad37e770bb85791e82c0bc0d493032103dfe"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "75ce8d4b3d89d04e314ebf062c570aa0", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复 Windows 上目录扫描的错误检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04a72cd465bc452bb03b4f51a865ad37e770bb85791e82c0bc0d493032103dfe"}, "url": "/docs/compare/?release=11.3#11.3-6f4dc5d09091fc92", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "e4c3862436bc6b4e73ed86867da656f8", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复 Windows 上目录扫描的错误检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04a72cd465bc452bb03b4f51a865ad37e770bb85791e82c0bc0d493032103dfe"}, "url": "/docs/compare/?release=10.8#10.8-6f4dc5d09091fc92", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "2ec178c47539b29fd83d5a350b84b1e1", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复 Windows 上目录扫描中的错误检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04a72cd465bc452bb03b4f51a865ad37e770bb85791e82c0bc0d493032103dfe"}, "url": "/docs/compare/?release=9.5.17#9.5.17-691c84a1bcf6ce11", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "6e764e0a7fe284ba94b6ff71ece31c03", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复 Windows 上目录扫描中的错误检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "04a72cd465bc452bb03b4f51a865ad37e770bb85791e82c0bc0d493032103dfe"}, "url": "/docs/compare/?release=9.4.22#9.4.22-691c84a1bcf6ce11", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-c1e7da4d67b69bca", "cves": [], "html": "<p>修复 <span>ecpg</span> 中的语法问题（Tom Lane）</p>\n<p>一个缺失的分号导致 <span>ecpg</span> 程序中的 <code>SET <em><code>variable</code></em> = DEFAULT</code>（但不是 <code>SET <em><code>variable</code></em> TO DEFAULT</code>）被错误翻译，产生服务器会拒绝的语法无效输出。此外，在列出多个类型名的 <code>DROP TYPE</code> 或 <code>DROP DOMAIN</code> 命令中，实际上只处理了第一个类型名。</p>", "text": "修复 ecpg 中的语法问题（Tom Lane） 一个缺失的分号导致 ecpg 程序中的 SET variable = DEFAULT（但不是 SET variable TO DEFAULT）被错误翻译，产生服务器会拒绝的语法无效输出。此外，在列出多个类型名的 DROP TYPE 或 DROP DOMAIN 命令中，实际上只处理了第一个类型名。", "title": "修复 ecpg 中的语法问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "2221e2190a3df2a271717bf0890f7dfc8f5433bec0439085b27fe35c5b3dade2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix grammar problems in ecpg (Tom Lane) A missing semicolon led to mistranslation of SET variable = DEFAULT (but not SET variable TO DEFAULT) in ecpg programs, producing syntactically invalid output that the server would reject. Additionally, in a DROP TYPE or DROP DOMAIN command that listed multiple type names, only the first type name was actually processed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/028", "db_id": "25c98bd39f570fd0745ebfc8014e9e74", "patch_ids": [], "statement_hash": "941802537ef4faf94b1af5d8b45429a19a568fbfa19b69e6c8ba2a7b988cfa8e", "relations": [{"rule": 2, "type": "equivalent", "target": "14fe76d965c6109bd5dcf1cd556ab186", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "941802537ef4faf94b1af5d8b45429a19a568fbfa19b69e6c8ba2a7b988cfa8e"}}, {"rule": 2, "type": "equivalent", "target": "79ffe53da95be83ff64df84ddba3f04a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "941802537ef4faf94b1af5d8b45429a19a568fbfa19b69e6c8ba2a7b988cfa8e"}}, {"rule": 2, "type": "equivalent", "target": "a53dfb35a7272087867129c0a0a18144", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "941802537ef4faf94b1af5d8b45429a19a568fbfa19b69e6c8ba2a7b988cfa8e"}}, {"rule": 2, "type": "equivalent", "target": "da878acc56f1b903ec2eecfbd8608c61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "941802537ef4faf94b1af5d8b45429a19a568fbfa19b69e6c8ba2a7b988cfa8e"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "14fe76d965c6109bd5dcf1cd556ab186", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复 ecpg 中的语法问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "941802537ef4faf94b1af5d8b45429a19a568fbfa19b69e6c8ba2a7b988cfa8e"}, "url": "/docs/compare/?release=11.3#11.3-c1e7da4d67b69bca", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "da878acc56f1b903ec2eecfbd8608c61", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复 ecpg 中的语法问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "941802537ef4faf94b1af5d8b45429a19a568fbfa19b69e6c8ba2a7b988cfa8e"}, "url": "/docs/compare/?release=10.8#10.8-c1e7da4d67b69bca", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "79ffe53da95be83ff64df84ddba3f04a", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复 ecpg 中的语法问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "941802537ef4faf94b1af5d8b45429a19a568fbfa19b69e6c8ba2a7b988cfa8e"}, "url": "/docs/compare/?release=9.5.17#9.5.17-c1e7da4d67b69bca", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "a53dfb35a7272087867129c0a0a18144", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复 ecpg 中的语法问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "941802537ef4faf94b1af5d8b45429a19a568fbfa19b69e6c8ba2a7b988cfa8e"}, "url": "/docs/compare/?release=9.4.22#9.4.22-c1e7da4d67b69bca", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-48ba3a05e703a49f", "cves": [], "html": "<p>把 <span>ecpg</span> 的 <code>CREATE TABLE AS</code> 语法与服务器的同步（Daisuke Higuchi）</p>", "text": "把 ecpg 的 CREATE TABLE AS 语法与服务器的同步（Daisuke Higuchi）", "title": "把 ecpg 的 CREATE TABLE AS 语法与服务器的同步", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "99a49b1057d0925a6baa16a8a8e21edcea71c495d14d684e67f92acb21d4f12c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Sync ecpg's syntax for CREATE TABLE AS with the server's (Daisuke Higuchi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/029", "db_id": "3c5385d64b4c237229443c7a1652aa51", "patch_ids": [], "statement_hash": "cfeb23591eb7d98360b46084e9a1a0b04c03f8877e3aa0bd65887495644bc7b9", "relations": [{"rule": 2, "type": "equivalent", "target": "0e195ddf7d5a9dcca5857af5861f2c6a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cfeb23591eb7d98360b46084e9a1a0b04c03f8877e3aa0bd65887495644bc7b9"}}, {"rule": 2, "type": "equivalent", "target": "f3cdfa49de3bdc7d61931c1702d6903d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cfeb23591eb7d98360b46084e9a1a0b04c03f8877e3aa0bd65887495644bc7b9"}}, {"rule": 2, "type": "equivalent", "target": "f8ae25d2d03b16b93910ff7ea87dc9e0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cfeb23591eb7d98360b46084e9a1a0b04c03f8877e3aa0bd65887495644bc7b9"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f8ae25d2d03b16b93910ff7ea87dc9e0", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "使 ecpg 的 CREATE TABLE AS 语法与服务器一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cfeb23591eb7d98360b46084e9a1a0b04c03f8877e3aa0bd65887495644bc7b9"}, "url": "/docs/compare/?release=11.3#11.3-bea833ac23f59bb9", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "0e195ddf7d5a9dcca5857af5861f2c6a", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "使 ecpg 的 CREATE TABLE AS 语法与服务器一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cfeb23591eb7d98360b46084e9a1a0b04c03f8877e3aa0bd65887495644bc7b9"}, "url": "/docs/compare/?release=10.8#10.8-bea833ac23f59bb9", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "f3cdfa49de3bdc7d61931c1702d6903d", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "把 ecpg 的 CREATE TABLE AS 语法与服务器的同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cfeb23591eb7d98360b46084e9a1a0b04c03f8877e3aa0bd65887495644bc7b9"}, "url": "/docs/compare/?release=9.5.17#9.5.17-48ba3a05e703a49f", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}]}, {"id": "9.6.13-762b4a333d287ebe", "cves": [], "html": "<p>修复 <span>ecpg</span> 处理 include 文件名时可能的缓冲区越界（Liu Huailing、Fei Wu）</p>", "text": "修复 ecpg 处理 include 文件名时可能的缓冲区越界（Liu Huailing、Fei Wu）", "title": "修复 ecpg 处理 include 文件名时可能的缓冲区越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "229d5901fe592c11318f48082180d71c3acd64f54a9658294a46998c5db1e24a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible buffer overruns in ecpg's processing of include filenames (Liu Huailing, Fei Wu)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/030", "db_id": "bf9dd9071e4219db7afd020b0fee9676", "patch_ids": [], "statement_hash": "491a515d22d16f483cbd23b6ed88a84e4c3e718c03c9c07534bad6e0d1752d30", "relations": [{"rule": 2, "type": "equivalent", "target": "2941fadd1a110588cc87191d329f216c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "491a515d22d16f483cbd23b6ed88a84e4c3e718c03c9c07534bad6e0d1752d30"}}, {"rule": 2, "type": "equivalent", "target": "7ad257a1239a4b72bea3133099a34bee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "491a515d22d16f483cbd23b6ed88a84e4c3e718c03c9c07534bad6e0d1752d30"}}, {"rule": 2, "type": "equivalent", "target": "8954b81ebb9585589fa23bef78819391", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "491a515d22d16f483cbd23b6ed88a84e4c3e718c03c9c07534bad6e0d1752d30"}}, {"rule": 2, "type": "equivalent", "target": "e234e4958fbc3a9e0648e71255cc22ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "491a515d22d16f483cbd23b6ed88a84e4c3e718c03c9c07534bad6e0d1752d30"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2941fadd1a110588cc87191d329f216c", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "修复 ecpg 处理包含文件名时可能发生的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "491a515d22d16f483cbd23b6ed88a84e4c3e718c03c9c07534bad6e0d1752d30"}, "url": "/docs/compare/?release=11.3#11.3-14e9b48c34ff1783", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "e234e4958fbc3a9e0648e71255cc22ad", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "修复 ecpg 处理包含文件名时可能发生的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "491a515d22d16f483cbd23b6ed88a84e4c3e718c03c9c07534bad6e0d1752d30"}, "url": "/docs/compare/?release=10.8#10.8-14e9b48c34ff1783", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "8954b81ebb9585589fa23bef78819391", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "修复 ecpg 处理 include 文件名时可能的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "491a515d22d16f483cbd23b6ed88a84e4c3e718c03c9c07534bad6e0d1752d30"}, "url": "/docs/compare/?release=9.5.17#9.5.17-762b4a333d287ebe", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "7ad257a1239a4b72bea3133099a34bee", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "修复 ecpg 处理 include 文件名时可能的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "491a515d22d16f483cbd23b6ed88a84e4c3e718c03c9c07534bad6e0d1752d30"}, "url": "/docs/compare/?release=9.4.22#9.4.22-762b4a333d287ebe", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-2dd609f3d7d06f93", "cves": [], "html": "<p>避免 <code>lo_unlink()</code> 调用失败时 <code>contrib/vacuumlo</code> 崩溃（Tom Lane）</p>", "text": "避免 lo_unlink() 调用失败时 contrib/vacuumlo 崩溃（Tom Lane）", "title": "避免 lo_unlink() 调用失败时 contrib/vacuumlo 崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "0018de2a69bfa7ec0a6b9e96531d9475a67f6608ec779cd77c7901808bfb28c9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid crash in contrib/vacuumlo if an lo_unlink() call failed (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/031", "db_id": "a69732f2109198a64bae91eba970a838", "patch_ids": [], "statement_hash": "d48c02d02f4ba4b4d7211bf18fbb12b697ebde7894668bf8897e8d81a314e5b6", "relations": [{"rule": 2, "type": "equivalent", "target": "6c4cfbe3db71d709788446649c097a87", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d48c02d02f4ba4b4d7211bf18fbb12b697ebde7894668bf8897e8d81a314e5b6"}}, {"rule": 2, "type": "equivalent", "target": "959dc79309a567e72faa1fa8b585aeed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d48c02d02f4ba4b4d7211bf18fbb12b697ebde7894668bf8897e8d81a314e5b6"}}, {"rule": 2, "type": "equivalent", "target": "d3932dfc08ca68d56f4861aacf76bfd0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d48c02d02f4ba4b4d7211bf18fbb12b697ebde7894668bf8897e8d81a314e5b6"}}, {"rule": 2, "type": "equivalent", "target": "e37020d2cb293ec7451ebd1806d95eba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d48c02d02f4ba4b4d7211bf18fbb12b697ebde7894668bf8897e8d81a314e5b6"}}], "version": "9.6.13", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "959dc79309a567e72faa1fa8b585aeed", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "避免 lo_unlink() 调用失败时 contrib/vacuumlo 发生崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d48c02d02f4ba4b4d7211bf18fbb12b697ebde7894668bf8897e8d81a314e5b6"}, "url": "/docs/compare/?release=11.3#11.3-dd10ad9ce35f17e7", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "6c4cfbe3db71d709788446649c097a87", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "避免 lo_unlink() 调用失败时 contrib/vacuumlo 发生崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d48c02d02f4ba4b4d7211bf18fbb12b697ebde7894668bf8897e8d81a314e5b6"}, "url": "/docs/compare/?release=10.8#10.8-dd10ad9ce35f17e7", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "d3932dfc08ca68d56f4861aacf76bfd0", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "避免 lo_unlink() 调用失败时 contrib/vacuumlo 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d48c02d02f4ba4b4d7211bf18fbb12b697ebde7894668bf8897e8d81a314e5b6"}, "url": "/docs/compare/?release=9.5.17#9.5.17-2dd609f3d7d06f93", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "e37020d2cb293ec7451ebd1806d95eba", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "避免contrib/vacuumlo在lo_unlink()调用失败时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d48c02d02f4ba4b4d7211bf18fbb12b697ebde7894668bf8897e8d81a314e5b6"}, "url": "/docs/compare/?release=9.4.22#9.4.22-18fae14fc45b13d6", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-5e343e89c652c29d", "cves": [], "html": "<p>把我们的时区库副本与 IANA tzcode 版本 2019a 同步（Tom Lane）</p>\n<p>这更正了 <span>zic</span> 的一个小 bug——它在 <code>Africa/Casablanca</code> 时区输出错误的 2440 年转换，并增加了对 <span>zic</span> 新 <code>-r</code> 选项的支持。</p>", "text": "把我们的时区库副本与 IANA tzcode 版本 2019a 同步（Tom Lane） 这更正了 zic 的一个小 bug——它在 Africa/Casablanca 时区输出错误的 2440 年转换，并增加了对 zic 新 -r 选项的支持。", "title": "把我们的时区库副本与 IANA tzcode 版本 2019a 同步", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "32bead039c18520475b739370f7c6d2b9788b1b5024c2cc0ba5c87959f7b12bd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Sync our copy of the timezone library with IANA tzcode release 2019a (Tom Lane) This corrects a small bug in zic that caused it to output an incorrect year-2440 transition in the Africa/Casablanca zone, and adds support for zic's new -r option.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/032", "db_id": "b9bd08778af7320e7124a439ad867fdc", "patch_ids": [], "statement_hash": "506577051746389a163a87f2fcc5ba09031dfba85eeff25c5ac2441164a52ae7", "relations": [{"rule": 2, "type": "equivalent", "target": "1cac0d94d4eca624002ecda4f1e6fc3d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506577051746389a163a87f2fcc5ba09031dfba85eeff25c5ac2441164a52ae7"}}, {"rule": 2, "type": "equivalent", "target": "66914fbb953c15277cd20d87d19d93c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506577051746389a163a87f2fcc5ba09031dfba85eeff25c5ac2441164a52ae7"}}, {"rule": 2, "type": "equivalent", "target": "a540f8e2894b3487ba1b0ee3d4b78ae1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506577051746389a163a87f2fcc5ba09031dfba85eeff25c5ac2441164a52ae7"}}, {"rule": 2, "type": "equivalent", "target": "f3221e5c22baa4d1a9d623ec87df9f02", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506577051746389a163a87f2fcc5ba09031dfba85eeff25c5ac2441164a52ae7"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1cac0d94d4eca624002ecda4f1e6fc3d", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "将我们使用的时区库副本同步到 IANA tzcode 2019a 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506577051746389a163a87f2fcc5ba09031dfba85eeff25c5ac2441164a52ae7"}, "url": "/docs/compare/?release=11.3#11.3-507a572b53ea47ed", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "66914fbb953c15277cd20d87d19d93c0", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "将我们使用的时区库副本同步到 IANA tzcode 2019a 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506577051746389a163a87f2fcc5ba09031dfba85eeff25c5ac2441164a52ae7"}, "url": "/docs/compare/?release=10.8#10.8-507a572b53ea47ed", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "a540f8e2894b3487ba1b0ee3d4b78ae1", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "把我们的时区库副本与 IANA tzcode 版本 2019a 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506577051746389a163a87f2fcc5ba09031dfba85eeff25c5ac2441164a52ae7"}, "url": "/docs/compare/?release=9.5.17#9.5.17-5e343e89c652c29d", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "f3221e5c22baa4d1a9d623ec87df9f02", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "把我们的时区库副本与 IANA tzcode 版本 2019a 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "506577051746389a163a87f2fcc5ba09031dfba85eeff25c5ac2441164a52ae7"}, "url": "/docs/compare/?release=9.4.22#9.4.22-5e343e89c652c29d", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}, {"id": "9.6.13-2c829a625ebc8f26", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2019a，涉及巴勒斯坦和梅特拉卡特拉的夏令时法规变更，以及以色列的历史修正。</p>\n<p><code>Etc/UCT</code> 现在是指向 <code>Etc/UTC</code> 的向后兼容链接，而不再是生成缩写 <code>UCT</code> 的独立时区 ——如今 UCT 通常是笔误。<span>PostgreSQL</span> 仍然接受 <code>UCT</code> 作为输入时区缩写，但不会输出它。</p>", "text": "更新时区数据文件到 tzdata 版本 2019a，涉及巴勒斯坦和梅特拉卡特拉的夏令时法规变更，以及以色列的历史修正。 Etc/UCT 现在是指向 Etc/UTC 的向后兼容链接，而不再是生成缩写 UCT 的独立时区 ——如今 UCT 通常是笔误。PostgreSQL 仍然接受 UCT 作为输入时区缩写，但不会输出它。", "title": "更新时区数据文件到 tzdata 版本 2019a，涉及巴勒斯坦和梅特拉卡特拉的夏令时法规变更，以及以色列的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.13/#id-1.11.6.16.5", "source_hash": "7303a9d96f8ab825cddd9ca160bdb69d3fdadccb03313f2e400c7b9270fec69f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2019a for DST law changes in Palestine and Metlakatla, plus historical corrections for Israel. Etc/UCT is now a backward-compatibility link to Etc/UTC, instead of being a separate zone that generates the abbreviation UCT, which nowadays is typically a typo. PostgreSQL will still accept UCT as an input zone abbreviation, but it won't output it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.13/changes/033", "db_id": "631069fad507d1e77ef53826d517469c", "patch_ids": [], "statement_hash": "514e67a9a1a1491e3afdd57fd4ed91ef84671240c76dc48dd506ee2f5e657631", "relations": [{"rule": 2, "type": "equivalent", "target": "027f2c56262639dcac6f914771caf3e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514e67a9a1a1491e3afdd57fd4ed91ef84671240c76dc48dd506ee2f5e657631"}}, {"rule": 2, "type": "equivalent", "target": "1351ea232cdf0da5060ed35675ef291b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514e67a9a1a1491e3afdd57fd4ed91ef84671240c76dc48dd506ee2f5e657631"}}, {"rule": 2, "type": "equivalent", "target": "1bf0f111d2174e1c03544c822925f804", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514e67a9a1a1491e3afdd57fd4ed91ef84671240c76dc48dd506ee2f5e657631"}}, {"rule": 2, "type": "equivalent", "target": "f4398155d8dfdeb71ed3a4ad7ad79968", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514e67a9a1a1491e3afdd57fd4ed91ef84671240c76dc48dd506ee2f5e657631"}}], "version": "9.6.13", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1351ea232cdf0da5060ed35675ef291b", "kind": "equivalent", "version": "11.3", "label": "11.3", "title": "将时区数据文件更新到 tzdata 2019a 版，以反映巴勒斯坦和梅特拉卡特拉的夏令时法规变更，并修正以色列的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514e67a9a1a1491e3afdd57fd4ed91ef84671240c76dc48dd506ee2f5e657631"}, "url": "/docs/compare/?release=11.3#11.3-4d7f3428373529e9", "source_url": "/docs/release/11.3/#id-1.11.6.24.5"}, {"db_id": "027f2c56262639dcac6f914771caf3e4", "kind": "equivalent", "version": "10.8", "label": "10.8", "title": "将时区数据文件更新到 tzdata 2019a 版，以反映巴勒斯坦和梅特拉卡特拉的夏令时法规变更，并修正以色列的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514e67a9a1a1491e3afdd57fd4ed91ef84671240c76dc48dd506ee2f5e657631"}, "url": "/docs/compare/?release=10.8#10.8-4d7f3428373529e9", "source_url": "/docs/release/10.8/#id-1.11.6.20.5"}, {"db_id": "f4398155d8dfdeb71ed3a4ad7ad79968", "kind": "equivalent", "version": "9.5.17", "label": "9.5.17", "title": "更新时区数据文件到 tzdata 版本 2019a，涉及巴勒斯坦和梅特拉卡特拉的夏令时法规变更，以及以色列的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514e67a9a1a1491e3afdd57fd4ed91ef84671240c76dc48dd506ee2f5e657631"}, "url": "/docs/compare/?release=9.5.17#9.5.17-2c829a625ebc8f26", "source_url": "/docs/release/9.5.17/#id-1.11.6.13.5"}, {"db_id": "1bf0f111d2174e1c03544c822925f804", "kind": "equivalent", "version": "9.4.22", "label": "9.4.22", "title": "更新时区数据文件到 tzdata 版本 2019a，涉及巴勒斯坦和梅特拉卡特拉的夏令时法规变更，以及以色列的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514e67a9a1a1491e3afdd57fd4ed91ef84671240c76dc48dd506ee2f5e657631"}, "url": "/docs/compare/?release=9.4.22#9.4.22-2c829a625ebc8f26", "source_url": "/docs/release/9.4.22/#id-1.11.6.9.6"}]}]}, {"date": "2019-02-14", "build": "9.6.12", "major": "9.6", "minor": 12, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.12", "eol_date": "2021-11-11", "date_text": "2019-02-14", "supported": false, "manual_url": "/docs/9.6/release-9-6-12.html", "source_url": "/docs/release/9.6.12/", "entry_count": 44, "placeholder": false, "content_hash": "22c0d9f02a8239acd118be73eafb6b952659b59c54a77eb081f8ca2ac0066932", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 44, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.9 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-9.html\" title=\"E.16. 版本 9.6.9\">第 E.16 节</a>。</p>", "compatibility_count": 0, "label": "9.6.12", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2785, "support_days": -1784, "entries": [{"id": "9.6.12-1b2d4e9d0c94e304", "cves": [], "html": "<p>默认情况下，<code>fsync()</code> 失败后 panic 而不是重试，以避免可能的数据损坏（Craig Ringer、Thomas Munro）</p>\n<p>一些流行的操作系统在无法写出内核数据缓冲区时会将其丢弃，并把这报告为 <code>fsync()</code> 失败。如果我们重新发出 <code>fsync()</code> 请求它会成功，但实际上数据已经丢失，因此继续下去有数据库损坏的风险。通过引发 panic 条件，我们可以从 WAL 重放——这种情况下 WAL 中可能包含数据的唯一剩余副本。虽然这无疑丑陋且低效，但几乎没有其他选择，所幸这种情况很少发生。</p>\n<p>新增了服务器参数<a href=\"/docs/9.6/runtime-config-error-handling.html#GUC-DATA-SYNC-RETRY\">data_sync_retry</a>来控制这一行为；如果你确定你的内核在此类场景下不会丢弃脏数据缓冲区，可以把 <code>data_sync_retry</code> 设为 <code>on</code> 恢复旧行为。</p>", "text": "默认情况下，fsync() 失败后 panic 而不是重试，以避免可能的数据损坏（Craig Ringer、Thomas Munro） 一些流行的操作系统在无法写出内核数据缓冲区时会将其丢弃，并把这报告为 fsync() 失败。如果我们重新发出 fsync() 请求它会成功，但实际上数据已经丢失，因此继续下去有数据库损坏的风险。通过引发 panic 条件，我们可以从 WAL 重放——这种情况下 WAL 中可能包含数据的唯一剩余副本。虽然这无疑丑陋且低效，但几乎没有其他选择，所幸这种情况很少发生。 新增了服务器参数data_sync_retry来控制这一行为；如果你确定你的内核在此类场景下不会丢弃脏数据缓冲区，可以把 data_sync_retry 设为 on 恢复旧行为。", "title": "默认情况下，fsync() 失败后 panic 而不是重试，以避免可能的数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "9b8a392323eda52c556e453eb1ce2e1ac0a8a44974b689de2975316510fdd605", "section_path": ["变更"], "commit_groups": [["312435232", "6534d544c", "9ccdd7f66", "afbe03f65", "b9cce9ddf", "f1ff5f51d"]], "identity_text": "By default, panic instead of retrying after fsync() failure, to avoid possible data corruption (Craig Ringer, Thomas Munro) Some popular operating systems discard kernel data buffers when unable to write them out, reporting this as fsync() failure. If we reissue the fsync() request it will succeed, but in fact the data has been lost, so continuing risks database corruption. By raising a panic condition instead, we can replay from WAL, which may contain the only remaining copy of the data in such a situation. While this is surely ugly and inefficient, there are few alternatives, and fortunately the case happens very rarely. A new server parameter guc-data-sync-retry has been added to control this; if you are certain that your kernel does not discard dirty data buffers in such scenarios, you can set data_sync_retry to on to restore the old behavior.", "commit_aliases": ["312435232", "6534d544c", "9ccdd7f66", "afbe03f65", "b9cce9ddf", "f1ff5f51d"], "source_commits": ["b9cce9ddf"], "source_entry_id": "9.6.12/changes/001", "db_id": "8618df39ed6f253f6af6ade4524563f4", "patch_ids": ["1cd20419bd6603ee4fa060589acd75a7"], "statement_hash": "98e41f64860dadd2ea173c160870aedaa4ce240185b3e6a65783b799ed55f23c", "relations": [{"rule": 2, "type": "equivalent", "target": "04c328284becc54430b265ccea5bb2b4", "evidence": {"same_day": true, "patch_ids": ["1cd20419bd6603ee4fa060589acd75a7"], "statement_hash": "98e41f64860dadd2ea173c160870aedaa4ce240185b3e6a65783b799ed55f23c"}}, {"rule": 2, "type": "equivalent", "target": "2de3ac171ddc2856721ffd607512e2e2", "evidence": {"same_day": true, "patch_ids": ["1cd20419bd6603ee4fa060589acd75a7"], "statement_hash": "98e41f64860dadd2ea173c160870aedaa4ce240185b3e6a65783b799ed55f23c"}}, {"rule": 2, "type": "equivalent", "target": "8ce6bd55929a0b3c450ee07d29f592c1", "evidence": {"same_day": true, "patch_ids": ["1cd20419bd6603ee4fa060589acd75a7"], "statement_hash": "98e41f64860dadd2ea173c160870aedaa4ce240185b3e6a65783b799ed55f23c"}}, {"rule": 2, "type": "equivalent", "target": "c30342616267698884b38e953ccaa620", "evidence": {"same_day": true, "patch_ids": ["1cd20419bd6603ee4fa060589acd75a7"], "statement_hash": "98e41f64860dadd2ea173c160870aedaa4ce240185b3e6a65783b799ed55f23c"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8ce6bd55929a0b3c450ee07d29f592c1", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "默认在 fsync() 失败后触发 panic，而不重试，以避免可能的数据损坏", "evidence": {"same_day": true, "patch_ids": ["1cd20419bd6603ee4fa060589acd75a7"], "statement_hash": "98e41f64860dadd2ea173c160870aedaa4ce240185b3e6a65783b799ed55f23c"}, "url": "/docs/compare/?release=11.2#11.2-95c937dd40c23a27", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "04c328284becc54430b265ccea5bb2b4", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "默认在 fsync() 失败后触发 panic，而不重试，以避免可能的数据损坏", "evidence": {"same_day": true, "patch_ids": ["1cd20419bd6603ee4fa060589acd75a7"], "statement_hash": "98e41f64860dadd2ea173c160870aedaa4ce240185b3e6a65783b799ed55f23c"}, "url": "/docs/compare/?release=10.7#10.7-95c937dd40c23a27", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "2de3ac171ddc2856721ffd607512e2e2", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "默认情况下，fsync() 失败后 panic 而不是重试，以避免可能的数据损坏", "evidence": {"same_day": true, "patch_ids": ["1cd20419bd6603ee4fa060589acd75a7"], "statement_hash": "98e41f64860dadd2ea173c160870aedaa4ce240185b3e6a65783b799ed55f23c"}, "url": "/docs/compare/?release=9.5.16#9.5.16-1b2d4e9d0c94e304", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "c30342616267698884b38e953ccaa620", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "默认情况下，fsync() 失败后 panic 而不是重试，以避免可能的数据损坏", "evidence": {"same_day": true, "patch_ids": ["1cd20419bd6603ee4fa060589acd75a7"], "statement_hash": "98e41f64860dadd2ea173c160870aedaa4ce240185b3e6a65783b799ed55f23c"}, "url": "/docs/compare/?release=9.4.21#9.4.21-1b2d4e9d0c94e304", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-063aea2d3c25829a", "cves": [], "html": "<p>每个大版本分支的文档只包含该分支的发行说明，而不是该分支及所有之后分支的（Tom Lane）</p>\n<p>以前的政策造成的重复越来越失控。我们的计划是在项目网站上提供完整的发行说明归档，而不是在每个发行版中重复它。</p>", "text": "每个大版本分支的文档只包含该分支的发行说明，而不是该分支及所有之后分支的（Tom Lane） 以前的政策造成的重复越来越失控。我们的计划是在项目网站上提供完整的发行说明归档，而不是在每个发行版中重复它。", "title": "每个大版本分支的文档只包含该分支的发行说明，而不是该分支及所有之后分支的", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "eb4672b82676dd2319656528a3f5b5dd6da81540f386eb5bcdb4cfed3fb0a5a0", "section_path": ["变更"], "commit_groups": [["0d13dd371", "2b2427115", "527b5ed1a", "60b1d6c2a", "bb428cb11", "ed64db588"]], "identity_text": "Include each major release branch's release notes in the documentation for only that branch, rather than that branch and all later ones (Tom Lane) The duplication induced by the previous policy was getting out of hand. Our plan is to provide a full archive of release notes on the project's web site, but not duplicate it within each release.", "commit_aliases": ["0d13dd371", "2b2427115", "527b5ed1a", "60b1d6c2a", "bb428cb11", "ed64db588"], "source_commits": ["60b1d6c2a"], "source_entry_id": "9.6.12/changes/002", "db_id": "4646d309f18ac7fa2bf41e21e3575e15", "patch_ids": ["3a494ea15551633c6fadd8d8b3872657"], "statement_hash": "def87da337acf6afa1339c1007c8e019555ec62f013cacbdbd412a84dae2f5ae", "relations": [{"rule": 2, "type": "equivalent", "target": "450c05467c6eb16175952aa5f906c571", "evidence": {"same_day": true, "patch_ids": ["3a494ea15551633c6fadd8d8b3872657"], "statement_hash": "def87da337acf6afa1339c1007c8e019555ec62f013cacbdbd412a84dae2f5ae"}}, {"rule": 2, "type": "equivalent", "target": "6e11681ce0757e659f9ee169e455395b", "evidence": {"same_day": true, "patch_ids": ["3a494ea15551633c6fadd8d8b3872657"], "statement_hash": "def87da337acf6afa1339c1007c8e019555ec62f013cacbdbd412a84dae2f5ae"}}, {"rule": 2, "type": "equivalent", "target": "e673f6c4ec8d4ea12161e9fdfd743fc5", "evidence": {"same_day": true, "patch_ids": ["3a494ea15551633c6fadd8d8b3872657"], "statement_hash": "def87da337acf6afa1339c1007c8e019555ec62f013cacbdbd412a84dae2f5ae"}}, {"rule": 2, "type": "equivalent", "target": "fb65ab094feb449fa0c25a657a0529c7", "evidence": {"same_day": true, "patch_ids": ["3a494ea15551633c6fadd8d8b3872657"], "statement_hash": "def87da337acf6afa1339c1007c8e019555ec62f013cacbdbd412a84dae2f5ae"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "450c05467c6eb16175952aa5f906c571", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "仅在各大版本分支的文档中包含该分支的发布说明，而非在该分支及所有后续分支中重复包含", "evidence": {"same_day": true, "patch_ids": ["3a494ea15551633c6fadd8d8b3872657"], "statement_hash": "def87da337acf6afa1339c1007c8e019555ec62f013cacbdbd412a84dae2f5ae"}, "url": "/docs/compare/?release=11.2#11.2-a87585c29ba688d4", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "fb65ab094feb449fa0c25a657a0529c7", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "仅在各大版本分支的文档中包含该分支的发布说明，而非在该分支及所有后续分支中重复包含", "evidence": {"same_day": true, "patch_ids": ["3a494ea15551633c6fadd8d8b3872657"], "statement_hash": "def87da337acf6afa1339c1007c8e019555ec62f013cacbdbd412a84dae2f5ae"}, "url": "/docs/compare/?release=10.7#10.7-a87585c29ba688d4", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "e673f6c4ec8d4ea12161e9fdfd743fc5", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "每个大版本分支的文档只包含该分支的发行说明，而不是该分支及所有之后分支的", "evidence": {"same_day": true, "patch_ids": ["3a494ea15551633c6fadd8d8b3872657"], "statement_hash": "def87da337acf6afa1339c1007c8e019555ec62f013cacbdbd412a84dae2f5ae"}, "url": "/docs/compare/?release=9.5.16#9.5.16-063aea2d3c25829a", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "6e11681ce0757e659f9ee169e455395b", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "每个大版本分支的文档只包含该分支的发行说明，而不是该分支及所有之后分支的", "evidence": {"same_day": true, "patch_ids": ["3a494ea15551633c6fadd8d8b3872657"], "statement_hash": "def87da337acf6afa1339c1007c8e019555ec62f013cacbdbd412a84dae2f5ae"}, "url": "/docs/compare/?release=9.4.21#9.4.21-063aea2d3c25829a", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-3f8e63b270ab51ac", "cves": [], "html": "<p>避免获取多个缓冲区锁时可能的死锁（Nishant Fnu）</p>", "text": "避免获取多个缓冲区锁时可能的死锁（Nishant Fnu）", "title": "避免获取多个缓冲区锁时可能的死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "8c1eb875bd1b2cfe9cab91f7e47fdeb92ab68217644d5d4c7bf34780888f5591", "section_path": ["变更"], "commit_groups": [["073afae81", "0b8bdb3c3", "1ca33fc7b", "6a2c9c633", "904413637", "fba0a8292"]], "identity_text": "Avoid possible deadlock when acquiring multiple buffer locks (Nishant Fnu)", "commit_aliases": ["073afae81", "0b8bdb3c3", "1ca33fc7b", "6a2c9c633", "904413637", "fba0a8292"], "source_commits": ["073afae81"], "source_entry_id": "9.6.12/changes/003", "db_id": "78b9f126b3060e1d305df93bd566410a", "patch_ids": ["d6cdc40d09bb3828720fd4070de421ce"], "statement_hash": "fa8378628893357246e80c535a0a4cfef76fa472e73a0ea99d0e2c55b6fc13b2", "relations": [{"rule": 2, "type": "equivalent", "target": "a6802b29e18623bb5196a29c35621a96", "evidence": {"same_day": true, "patch_ids": ["d6cdc40d09bb3828720fd4070de421ce"], "statement_hash": "fa8378628893357246e80c535a0a4cfef76fa472e73a0ea99d0e2c55b6fc13b2"}}, {"rule": 2, "type": "equivalent", "target": "d3245f2dd4ecb5ea89aa5072bf6eda4c", "evidence": {"same_day": true, "patch_ids": ["d6cdc40d09bb3828720fd4070de421ce"], "statement_hash": "fa8378628893357246e80c535a0a4cfef76fa472e73a0ea99d0e2c55b6fc13b2"}}, {"rule": 2, "type": "equivalent", "target": "defb797ad958ab34d7af549635e5845a", "evidence": {"same_day": true, "patch_ids": ["d6cdc40d09bb3828720fd4070de421ce"], "statement_hash": "fa8378628893357246e80c535a0a4cfef76fa472e73a0ea99d0e2c55b6fc13b2"}}, {"rule": 2, "type": "equivalent", "target": "ea246181e943f4546fe1ae6adaab9bdc", "evidence": {"same_day": true, "patch_ids": ["d6cdc40d09bb3828720fd4070de421ce"], "statement_hash": "fa8378628893357246e80c535a0a4cfef76fa472e73a0ea99d0e2c55b6fc13b2"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d3245f2dd4ecb5ea89aa5072bf6eda4c", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "避免获取多个缓冲区锁时可能发生的死锁", "evidence": {"same_day": true, "patch_ids": ["d6cdc40d09bb3828720fd4070de421ce"], "statement_hash": "fa8378628893357246e80c535a0a4cfef76fa472e73a0ea99d0e2c55b6fc13b2"}, "url": "/docs/compare/?release=11.2#11.2-b4880c83e8f0c175", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "a6802b29e18623bb5196a29c35621a96", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "避免获取多个缓冲区锁时可能发生的死锁", "evidence": {"same_day": true, "patch_ids": ["d6cdc40d09bb3828720fd4070de421ce"], "statement_hash": "fa8378628893357246e80c535a0a4cfef76fa472e73a0ea99d0e2c55b6fc13b2"}, "url": "/docs/compare/?release=10.7#10.7-b4880c83e8f0c175", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "defb797ad958ab34d7af549635e5845a", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "避免获取多个缓冲区锁时可能的死锁", "evidence": {"same_day": true, "patch_ids": ["d6cdc40d09bb3828720fd4070de421ce"], "statement_hash": "fa8378628893357246e80c535a0a4cfef76fa472e73a0ea99d0e2c55b6fc13b2"}, "url": "/docs/compare/?release=9.5.16#9.5.16-3f8e63b270ab51ac", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "ea246181e943f4546fe1ae6adaab9bdc", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "避免获取多个缓冲区锁时可能出现的死锁", "evidence": {"same_day": true, "patch_ids": ["d6cdc40d09bb3828720fd4070de421ce"], "statement_hash": "fa8378628893357246e80c535a0a4cfef76fa472e73a0ea99d0e2c55b6fc13b2"}, "url": "/docs/compare/?release=9.4.21#9.4.21-e32e085076ba5f7b", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-4201b1f3c63bc162", "cves": [], "html": "<p>避免热备查询与 GIN 索引页删除重放之间的死锁（Alexander Korotkov）</p>", "text": "避免热备查询与 GIN 索引页删除重放之间的死锁（Alexander Korotkov）", "title": "避免热备查询与 GIN 索引页删除重放之间的死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "5f4725b2aafc132a1ea86d41600409c3ffaca2c10afa4009b3e1b9126defe881", "section_path": ["变更"], "commit_groups": [["19cf52e6c", "225b5c9c4", "80d4d8d71", "865870374", "c6ade7a8c", "f6c44e1b5"], ["bf0e5a73b"]], "identity_text": "Avoid deadlock between hot-standby queries and replay of GIN index page deletion (Alexander Korotkov)", "commit_aliases": ["19cf52e6c", "225b5c9c4", "80d4d8d71", "865870374", "bf0e5a73b", "c6ade7a8c", "f6c44e1b5"], "source_commits": ["80d4d8d71", "bf0e5a73b"], "source_entry_id": "9.6.12/changes/004", "db_id": "04cc7864472df4a6726a934fd320ac0f", "patch_ids": ["a2eedd6b8d3f5bee276bea50644a7ae1", "a3c647e6b68276d7538b4eb56aee6622"], "statement_hash": "adcffdc4a3e3255d815e645b8b4bc6160fac12eb9e5490631155be19b20f8658", "relations": [{"rule": 2, "type": "equivalent", "target": "0034f749d32ed3f471748bf57c933ffc", "evidence": {"same_day": true, "patch_ids": ["a2eedd6b8d3f5bee276bea50644a7ae1", "a3c647e6b68276d7538b4eb56aee6622"], "statement_hash": "adcffdc4a3e3255d815e645b8b4bc6160fac12eb9e5490631155be19b20f8658"}}, {"rule": 2, "type": "equivalent", "target": "67175c01685a4cc69b78be23ba91af92", "evidence": {"same_day": true, "patch_ids": ["a2eedd6b8d3f5bee276bea50644a7ae1", "a3c647e6b68276d7538b4eb56aee6622"], "statement_hash": "adcffdc4a3e3255d815e645b8b4bc6160fac12eb9e5490631155be19b20f8658"}}, {"rule": 2, "type": "equivalent", "target": "7d3c7b87fd66a83712c5b75fe7daeaa1", "evidence": {"same_day": true, "patch_ids": ["a2eedd6b8d3f5bee276bea50644a7ae1", "a3c647e6b68276d7538b4eb56aee6622"], "statement_hash": "adcffdc4a3e3255d815e645b8b4bc6160fac12eb9e5490631155be19b20f8658"}}, {"rule": 2, "type": "equivalent", "target": "b0033c4189816213e103a6b95148d608", "evidence": {"same_day": true, "patch_ids": ["a2eedd6b8d3f5bee276bea50644a7ae1", "a3c647e6b68276d7538b4eb56aee6622"], "statement_hash": "adcffdc4a3e3255d815e645b8b4bc6160fac12eb9e5490631155be19b20f8658"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7d3c7b87fd66a83712c5b75fe7daeaa1", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "避免热备查询与 GIN 索引页面删除重放之间的死锁", "evidence": {"same_day": true, "patch_ids": ["a2eedd6b8d3f5bee276bea50644a7ae1", "a3c647e6b68276d7538b4eb56aee6622"], "statement_hash": "adcffdc4a3e3255d815e645b8b4bc6160fac12eb9e5490631155be19b20f8658"}, "url": "/docs/compare/?release=11.2#11.2-7d22fc85157598df", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "0034f749d32ed3f471748bf57c933ffc", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "避免热备查询与 GIN 索引页面删除重放之间的死锁", "evidence": {"same_day": true, "patch_ids": ["a2eedd6b8d3f5bee276bea50644a7ae1", "a3c647e6b68276d7538b4eb56aee6622"], "statement_hash": "adcffdc4a3e3255d815e645b8b4bc6160fac12eb9e5490631155be19b20f8658"}, "url": "/docs/compare/?release=10.7#10.7-7d22fc85157598df", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "67175c01685a4cc69b78be23ba91af92", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "避免热备查询与 GIN 索引页删除重放之间的死锁", "evidence": {"same_day": true, "patch_ids": ["a2eedd6b8d3f5bee276bea50644a7ae1", "a3c647e6b68276d7538b4eb56aee6622"], "statement_hash": "adcffdc4a3e3255d815e645b8b4bc6160fac12eb9e5490631155be19b20f8658"}, "url": "/docs/compare/?release=9.5.16#9.5.16-4201b1f3c63bc162", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "b0033c4189816213e103a6b95148d608", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "避免热备查询与 GIN 索引页删除重放之间的死锁", "evidence": {"same_day": true, "patch_ids": ["a2eedd6b8d3f5bee276bea50644a7ae1", "a3c647e6b68276d7538b4eb56aee6622"], "statement_hash": "adcffdc4a3e3255d815e645b8b4bc6160fac12eb9e5490631155be19b20f8658"}, "url": "/docs/compare/?release=9.4.21#9.4.21-4201b1f3c63bc162", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-6ae8705f682e76ba", "cves": [], "html": "<p>修复使用索引表达式或谓词时逻辑复制可能的崩溃（Peter Eisentraut）</p>", "text": "修复使用索引表达式或谓词时逻辑复制可能的崩溃（Peter Eisentraut）", "title": "修复使用索引表达式或谓词时逻辑复制可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "81ed1909c7ce0dc74c23c85be106200139505e5b8a0f1e8324fbd81fffbafb5d", "section_path": ["变更"], "commit_groups": [["2bac1d8c9", "452253eae", "650296f8f", "cf25498f7", "dfa774ff9", "edd8278c5"]], "identity_text": "Fix possible crashes in logical replication when index expressions or predicates are in use (Peter Eisentraut)", "commit_aliases": ["2bac1d8c9", "452253eae", "650296f8f", "cf25498f7", "dfa774ff9", "edd8278c5"], "source_commits": ["650296f8f"], "source_entry_id": "9.6.12/changes/005", "db_id": "0461d4f7ca50ed8c9a3a985fb55ca168", "patch_ids": ["ca3f14f7c5a22a796b2f51fc0c0b4bc3"], "statement_hash": "a13c110a61af0d3df64537341093d5e1b9716dc20c2fe64de3e2530d33e718f6", "relations": [{"rule": 2, "type": "equivalent", "target": "328ba089843dd7c8f19ff5cbf7b7165b", "evidence": {"same_day": true, "patch_ids": ["ca3f14f7c5a22a796b2f51fc0c0b4bc3"], "statement_hash": "a13c110a61af0d3df64537341093d5e1b9716dc20c2fe64de3e2530d33e718f6"}}, {"rule": 2, "type": "equivalent", "target": "7ea74fa8edd2f696d641d7ec0b11428a", "evidence": {"same_day": true, "patch_ids": ["ca3f14f7c5a22a796b2f51fc0c0b4bc3"], "statement_hash": "a13c110a61af0d3df64537341093d5e1b9716dc20c2fe64de3e2530d33e718f6"}}, {"rule": 2, "type": "equivalent", "target": "ba61e3eea0a6ab823ee3513474bdeffa", "evidence": {"same_day": true, "patch_ids": ["ca3f14f7c5a22a796b2f51fc0c0b4bc3"], "statement_hash": "a13c110a61af0d3df64537341093d5e1b9716dc20c2fe64de3e2530d33e718f6"}}, {"rule": 2, "type": "equivalent", "target": "ef280c9bb22f9d27a7d505f43a5d23d9", "evidence": {"same_day": true, "patch_ids": ["ca3f14f7c5a22a796b2f51fc0c0b4bc3"], "statement_hash": "a13c110a61af0d3df64537341093d5e1b9716dc20c2fe64de3e2530d33e718f6"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ef280c9bb22f9d27a7d505f43a5d23d9", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复使用索引表达式或谓词时逻辑复制中可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["ca3f14f7c5a22a796b2f51fc0c0b4bc3"], "statement_hash": "a13c110a61af0d3df64537341093d5e1b9716dc20c2fe64de3e2530d33e718f6"}, "url": "/docs/compare/?release=11.2#11.2-99dfdf52bd53f341", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "328ba089843dd7c8f19ff5cbf7b7165b", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复使用索引表达式或谓词时逻辑复制中可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["ca3f14f7c5a22a796b2f51fc0c0b4bc3"], "statement_hash": "a13c110a61af0d3df64537341093d5e1b9716dc20c2fe64de3e2530d33e718f6"}, "url": "/docs/compare/?release=10.7#10.7-99dfdf52bd53f341", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "ba61e3eea0a6ab823ee3513474bdeffa", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复使用索引表达式或谓词时逻辑复制可能的崩溃", "evidence": {"same_day": true, "patch_ids": ["ca3f14f7c5a22a796b2f51fc0c0b4bc3"], "statement_hash": "a13c110a61af0d3df64537341093d5e1b9716dc20c2fe64de3e2530d33e718f6"}, "url": "/docs/compare/?release=9.5.16#9.5.16-6ae8705f682e76ba", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "7ea74fa8edd2f696d641d7ec0b11428a", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复使用索引表达式或谓词时逻辑复制可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": ["ca3f14f7c5a22a796b2f51fc0c0b4bc3"], "statement_hash": "a13c110a61af0d3df64537341093d5e1b9716dc20c2fe64de3e2530d33e718f6"}, "url": "/docs/compare/?release=9.4.21#9.4.21-b07545abf9e2741e", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-178d4046924c95aa", "cves": [], "html": "<p>避免表重写期间对 TOAST 数据无用而昂贵的逻辑解码（Tomas Vondra）</p>", "text": "避免表重写期间对 TOAST 数据无用而昂贵的逻辑解码（Tomas Vondra）", "title": "避免表重写期间对 TOAST 数据无用而昂贵的逻辑解码", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "536c2794747daa26615d79decca6ef61560e4a1c865a879d78008571d627674a", "section_path": ["变更"], "commit_groups": [["4e7395d83", "77d2815e4", "b86d148ae", "c1a5caea8", "f69c959df", "f8397c955"]], "identity_text": "Avoid useless and expensive logical decoding of TOAST data during a table rewrite (Tomas Vondra)", "commit_aliases": ["4e7395d83", "77d2815e4", "b86d148ae", "c1a5caea8", "f69c959df", "f8397c955"], "source_commits": ["b86d148ae"], "source_entry_id": "9.6.12/changes/006", "db_id": "a013358b21559ec30543059e8e5e5344", "patch_ids": ["c7ada9f9cd38c4d17098eac7ae7eb1a6"], "statement_hash": "8cf0b33217e43b9d5790a54d8cd2868939e4584873bfe2d69483791a5e395f98", "relations": [{"rule": 2, "type": "equivalent", "target": "01e1ad5b166c2fb76f0af438f882523e", "evidence": {"same_day": true, "patch_ids": ["c7ada9f9cd38c4d17098eac7ae7eb1a6"], "statement_hash": "8cf0b33217e43b9d5790a54d8cd2868939e4584873bfe2d69483791a5e395f98"}}, {"rule": 2, "type": "equivalent", "target": "8130c609a17348303d80eedbf53b7a46", "evidence": {"same_day": true, "patch_ids": ["c7ada9f9cd38c4d17098eac7ae7eb1a6"], "statement_hash": "8cf0b33217e43b9d5790a54d8cd2868939e4584873bfe2d69483791a5e395f98"}}, {"rule": 2, "type": "equivalent", "target": "90bc2f83bb21a49a601945dc9f7115bd", "evidence": {"same_day": true, "patch_ids": ["c7ada9f9cd38c4d17098eac7ae7eb1a6"], "statement_hash": "8cf0b33217e43b9d5790a54d8cd2868939e4584873bfe2d69483791a5e395f98"}}, {"rule": 2, "type": "equivalent", "target": "cc2d54ff133ad9241a37b0c8112efaf1", "evidence": {"same_day": true, "patch_ids": ["c7ada9f9cd38c4d17098eac7ae7eb1a6"], "statement_hash": "8cf0b33217e43b9d5790a54d8cd2868939e4584873bfe2d69483791a5e395f98"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "90bc2f83bb21a49a601945dc9f7115bd", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "避免在表重写期间对 TOAST 数据进行无用且代价高昂的逻辑解码", "evidence": {"same_day": true, "patch_ids": ["c7ada9f9cd38c4d17098eac7ae7eb1a6"], "statement_hash": "8cf0b33217e43b9d5790a54d8cd2868939e4584873bfe2d69483791a5e395f98"}, "url": "/docs/compare/?release=11.2#11.2-c94be3312f6176b1", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "01e1ad5b166c2fb76f0af438f882523e", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "避免在表重写期间对 TOAST 数据进行无用且代价高昂的逻辑解码", "evidence": {"same_day": true, "patch_ids": ["c7ada9f9cd38c4d17098eac7ae7eb1a6"], "statement_hash": "8cf0b33217e43b9d5790a54d8cd2868939e4584873bfe2d69483791a5e395f98"}, "url": "/docs/compare/?release=10.7#10.7-c94be3312f6176b1", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "cc2d54ff133ad9241a37b0c8112efaf1", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "避免表重写期间对 TOAST 数据无用而昂贵的逻辑解码", "evidence": {"same_day": true, "patch_ids": ["c7ada9f9cd38c4d17098eac7ae7eb1a6"], "statement_hash": "8cf0b33217e43b9d5790a54d8cd2868939e4584873bfe2d69483791a5e395f98"}, "url": "/docs/compare/?release=9.5.16#9.5.16-178d4046924c95aa", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "8130c609a17348303d80eedbf53b7a46", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "避免在表重写期间对 TOAST 数据进行无用且昂贵的逻辑解码", "evidence": {"same_day": true, "patch_ids": ["c7ada9f9cd38c4d17098eac7ae7eb1a6"], "statement_hash": "8cf0b33217e43b9d5790a54d8cd2868939e4584873bfe2d69483791a5e395f98"}, "url": "/docs/compare/?release=9.4.21#9.4.21-af1484a7f9ebca8e", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-612cdd3b89c541e5", "cves": [], "html": "<p>修复启用同步复制时只停止一部分 WAL 发送者的逻辑（Paul Guo、Michael Paquier）</p>", "text": "修复启用同步复制时只停止一部分 WAL 发送者的逻辑（Paul Guo、Michael Paquier）", "title": "修复启用同步复制时只停止一部分 WAL 发送者的逻辑", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "ec0dac2d165b5fb824e0e49215cacd3f27321fb9ad56568becca7e6821ec8c6a", "section_path": ["变更"], "commit_groups": [["04e381a19", "4c703369a", "8340eba6d", "b81d08d60", "b9bdbf8c1", "bad41764a"]], "identity_text": "Fix logic for stopping a subset of WAL senders when synchronous replication is enabled (Paul Guo, Michael Paquier)", "commit_aliases": ["04e381a19", "4c703369a", "8340eba6d", "b81d08d60", "b9bdbf8c1", "bad41764a"], "source_commits": ["8340eba6d"], "source_entry_id": "9.6.12/changes/007", "db_id": "44ffa5cb8eb96843c180dddb29f6ed7f", "patch_ids": ["d20e5f5a40b6783989426c0d3e1645e1"], "statement_hash": "52ea76644deb231363f232adcd759c8671dbff4ffffeda9a5e273ecf6eab3990", "relations": [{"rule": 2, "type": "equivalent", "target": "4a5d6c9ae25ae162ed116ba3a7e0070d", "evidence": {"same_day": true, "patch_ids": ["d20e5f5a40b6783989426c0d3e1645e1"], "statement_hash": "52ea76644deb231363f232adcd759c8671dbff4ffffeda9a5e273ecf6eab3990"}}, {"rule": 2, "type": "equivalent", "target": "8690585395202edcbdf4fb0e2b2cde5f", "evidence": {"same_day": true, "patch_ids": ["d20e5f5a40b6783989426c0d3e1645e1"], "statement_hash": "52ea76644deb231363f232adcd759c8671dbff4ffffeda9a5e273ecf6eab3990"}}, {"rule": 2, "type": "equivalent", "target": "d14df341bfed88059dab45579948be4d", "evidence": {"same_day": true, "patch_ids": ["d20e5f5a40b6783989426c0d3e1645e1"], "statement_hash": "52ea76644deb231363f232adcd759c8671dbff4ffffeda9a5e273ecf6eab3990"}}, {"rule": 2, "type": "equivalent", "target": "e4b8501d9955310194b7c17f5b400613", "evidence": {"same_day": true, "patch_ids": ["d20e5f5a40b6783989426c0d3e1645e1"], "statement_hash": "52ea76644deb231363f232adcd759c8671dbff4ffffeda9a5e273ecf6eab3990"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4b8501d9955310194b7c17f5b400613", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复启用同步复制时停止部分 WAL 发送进程的逻辑", "evidence": {"same_day": true, "patch_ids": ["d20e5f5a40b6783989426c0d3e1645e1"], "statement_hash": "52ea76644deb231363f232adcd759c8671dbff4ffffeda9a5e273ecf6eab3990"}, "url": "/docs/compare/?release=11.2#11.2-00b845208e817fe7", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "4a5d6c9ae25ae162ed116ba3a7e0070d", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复启用同步复制时停止部分 WAL 发送进程的逻辑", "evidence": {"same_day": true, "patch_ids": ["d20e5f5a40b6783989426c0d3e1645e1"], "statement_hash": "52ea76644deb231363f232adcd759c8671dbff4ffffeda9a5e273ecf6eab3990"}, "url": "/docs/compare/?release=10.7#10.7-00b845208e817fe7", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "8690585395202edcbdf4fb0e2b2cde5f", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复启用同步复制时只停止一部分 WAL 发送者的逻辑", "evidence": {"same_day": true, "patch_ids": ["d20e5f5a40b6783989426c0d3e1645e1"], "statement_hash": "52ea76644deb231363f232adcd759c8671dbff4ffffeda9a5e273ecf6eab3990"}, "url": "/docs/compare/?release=9.5.16#9.5.16-612cdd3b89c541e5", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "d14df341bfed88059dab45579948be4d", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复启用同步复制时停止部分 WAL 发送进程的逻辑", "evidence": {"same_day": true, "patch_ids": ["d20e5f5a40b6783989426c0d3e1645e1"], "statement_hash": "52ea76644deb231363f232adcd759c8671dbff4ffffeda9a5e273ecf6eab3990"}, "url": "/docs/compare/?release=9.4.21#9.4.21-00b845208e817fe7", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-6f0265d6d89f12b9", "cves": [], "html": "<p>避免在元组删除 WAL 记录中可能写入错误的副本身份字段（Stas Kelvich）</p>", "text": "避免在元组删除 WAL 记录中可能写入错误的副本身份字段（Stas Kelvich）", "title": "避免在元组删除 WAL 记录中可能写入错误的副本身份字段", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "dff21d55217350759e1e65a8fa683b95238410ccb314a45f1ab12304cf0995c4", "section_path": ["变更"], "commit_groups": [["014763e97", "05d24cf7c", "47412e075", "478e0069f", "90f1ba7ec", "eb8c9f0bc"]], "identity_text": "Avoid possibly writing an incorrect replica identity field in a tuple deletion WAL record (Stas Kelvich)", "commit_aliases": ["014763e97", "05d24cf7c", "47412e075", "478e0069f", "90f1ba7ec", "eb8c9f0bc"], "source_commits": ["014763e97"], "source_entry_id": "9.6.12/changes/008", "db_id": "e4a59bd60faed5b215e7f57ee7ca981c", "patch_ids": ["40e03536fea4bcb2ac3c575edb75178e"], "statement_hash": "9ccf70c6f337df25e1b9d44f38db0997bf19ea561d397376282e030a186906cc", "relations": [{"rule": 2, "type": "equivalent", "target": "4b0fa9e7fbf47ab605f0422dafc76700", "evidence": {"same_day": true, "patch_ids": ["40e03536fea4bcb2ac3c575edb75178e"], "statement_hash": "9ccf70c6f337df25e1b9d44f38db0997bf19ea561d397376282e030a186906cc"}}, {"rule": 2, "type": "equivalent", "target": "66fb8cdc333158ee73a6fae077157490", "evidence": {"same_day": true, "patch_ids": ["40e03536fea4bcb2ac3c575edb75178e"], "statement_hash": "9ccf70c6f337df25e1b9d44f38db0997bf19ea561d397376282e030a186906cc"}}, {"rule": 2, "type": "equivalent", "target": "7d0c0cc6d4380eaf2ebead677ab35b7b", "evidence": {"same_day": true, "patch_ids": ["40e03536fea4bcb2ac3c575edb75178e"], "statement_hash": "9ccf70c6f337df25e1b9d44f38db0997bf19ea561d397376282e030a186906cc"}}, {"rule": 2, "type": "equivalent", "target": "98ce6a70875f0f5e8fe26ab23a72ad9d", "evidence": {"same_day": true, "patch_ids": ["40e03536fea4bcb2ac3c575edb75178e"], "statement_hash": "9ccf70c6f337df25e1b9d44f38db0997bf19ea561d397376282e030a186906cc"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b0fa9e7fbf47ab605f0422dafc76700", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "避免在元组删除 WAL 记录中写入不正确的复制标识字段", "evidence": {"same_day": true, "patch_ids": ["40e03536fea4bcb2ac3c575edb75178e"], "statement_hash": "9ccf70c6f337df25e1b9d44f38db0997bf19ea561d397376282e030a186906cc"}, "url": "/docs/compare/?release=11.2#11.2-0a7d20efb78ef80c", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "66fb8cdc333158ee73a6fae077157490", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "避免在元组删除 WAL 记录中写入不正确的复制标识字段", "evidence": {"same_day": true, "patch_ids": ["40e03536fea4bcb2ac3c575edb75178e"], "statement_hash": "9ccf70c6f337df25e1b9d44f38db0997bf19ea561d397376282e030a186906cc"}, "url": "/docs/compare/?release=10.7#10.7-0a7d20efb78ef80c", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "7d0c0cc6d4380eaf2ebead677ab35b7b", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "避免在元组删除 WAL 记录中可能写入错误的副本身份字段", "evidence": {"same_day": true, "patch_ids": ["40e03536fea4bcb2ac3c575edb75178e"], "statement_hash": "9ccf70c6f337df25e1b9d44f38db0997bf19ea561d397376282e030a186906cc"}, "url": "/docs/compare/?release=9.5.16#9.5.16-6f0265d6d89f12b9", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "98ce6a70875f0f5e8fe26ab23a72ad9d", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "避免在元组删除 WAL 记录中写入错误的副本标识字段", "evidence": {"same_day": true, "patch_ids": ["40e03536fea4bcb2ac3c575edb75178e"], "statement_hash": "9ccf70c6f337df25e1b9d44f38db0997bf19ea561d397376282e030a186906cc"}, "url": "/docs/compare/?release=9.4.21#9.4.21-b82473b0642f3b89", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-c6abe753a39b28c4", "cves": [], "html": "<p>让归档器在选择下一个要归档的文件时，把 WAL 历史文件的优先级置于 WAL 数据文件之上（David Steele）</p>", "text": "让归档器在选择下一个要归档的文件时，把 WAL 历史文件的优先级置于 WAL 数据文件之上（David Steele）", "title": "让归档器在选择下一个要归档的文件时，把 WAL 历史文件的优先级置于 WAL 数据文件之上", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "2b2cd94eb7dd94d694efcba376aad5b8f2b5c34d0c3a8d175af3ce7502157fbe", "section_path": ["变更"], "commit_groups": [["085757577", "37126251a", "937870124", "a016f59d5", "b981df4cc"]], "identity_text": "Make the archiver prioritize WAL history files over WAL data files while choosing which file to archive next (David Steele)", "commit_aliases": ["085757577", "37126251a", "937870124", "a016f59d5", "b981df4cc"], "source_commits": ["937870124"], "source_entry_id": "9.6.12/changes/009", "db_id": "02aabd9c5045d5d8ca6a6184370e2454", "patch_ids": ["172f626bc2da35c3f07181a39fe610e4"], "statement_hash": "f9f68113cbc29fac8ccf420f6686844680a87d100a4d66902b1e49eeed6d9be4", "relations": [{"rule": 2, "type": "equivalent", "target": "10003f32c1373df8626adf1a4222cabd", "evidence": {"same_day": true, "patch_ids": ["172f626bc2da35c3f07181a39fe610e4"], "statement_hash": "f9f68113cbc29fac8ccf420f6686844680a87d100a4d66902b1e49eeed6d9be4"}}, {"rule": 2, "type": "equivalent", "target": "609fc62ffbc8410492cb982d74e909ab", "evidence": {"same_day": true, "patch_ids": ["172f626bc2da35c3f07181a39fe610e4"], "statement_hash": "f9f68113cbc29fac8ccf420f6686844680a87d100a4d66902b1e49eeed6d9be4"}}, {"rule": 2, "type": "equivalent", "target": "f0315d811153b9463dd919591f3b4f41", "evidence": {"same_day": true, "patch_ids": ["172f626bc2da35c3f07181a39fe610e4"], "statement_hash": "f9f68113cbc29fac8ccf420f6686844680a87d100a4d66902b1e49eeed6d9be4"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "10003f32c1373df8626adf1a4222cabd", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "让归档进程在选择下一个要归档的文件时，优先选择 WAL 历史文件，而非 WAL 数据文件", "evidence": {"same_day": true, "patch_ids": ["172f626bc2da35c3f07181a39fe610e4"], "statement_hash": "f9f68113cbc29fac8ccf420f6686844680a87d100a4d66902b1e49eeed6d9be4"}, "url": "/docs/compare/?release=11.2#11.2-591173c624e348bd", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "f0315d811153b9463dd919591f3b4f41", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "让归档进程在选择下一个要归档的文件时，优先选择 WAL 历史文件，而非 WAL 数据文件", "evidence": {"same_day": true, "patch_ids": ["172f626bc2da35c3f07181a39fe610e4"], "statement_hash": "f9f68113cbc29fac8ccf420f6686844680a87d100a4d66902b1e49eeed6d9be4"}, "url": "/docs/compare/?release=10.7#10.7-591173c624e348bd", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "609fc62ffbc8410492cb982d74e909ab", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "让归档器在选择下一个要归档的文件时，把 WAL 历史文件的优先级置于 WAL 数据文件之上", "evidence": {"same_day": true, "patch_ids": ["172f626bc2da35c3f07181a39fe610e4"], "statement_hash": "f9f68113cbc29fac8ccf420f6686844680a87d100a4d66902b1e49eeed6d9be4"}, "url": "/docs/compare/?release=9.5.16#9.5.16-c6abe753a39b28c4", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}]}, {"id": "9.6.12-9d98b4f45c7ff193", "cves": [], "html": "<p>修复使用子 <code>SELECT</code> 作为源的多 <code>SET</code> 子句 <code>UPDATE</code> 可能的崩溃（Tom Lane）</p>", "text": "修复使用子 SELECT 作为源的多 SET 子句 UPDATE 可能的崩溃（Tom Lane）", "title": "修复使用子 SELECT 作为源的多 SET 子句 UPDATE 可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "7eacd1494a2c0701b496e91c4489727bcf541a416794b54212bbbaa6c8ed2d8a", "section_path": ["变更"], "commit_groups": [["0f7ec8d9c", "10bad8c0f", "302d4eee9", "6548d62a9", "f9f63ed1f"]], "identity_text": "Fix possible crash in UPDATE with a multiple SET clause using a sub-SELECT as source (Tom Lane)", "commit_aliases": ["0f7ec8d9c", "10bad8c0f", "302d4eee9", "6548d62a9", "f9f63ed1f"], "source_commits": ["10bad8c0f"], "source_entry_id": "9.6.12/changes/010", "db_id": "9988c85d19444ea8af623b4c617b881f", "patch_ids": ["a8b0d3aa98deac5cc468e64a9f8886c5"], "statement_hash": "030c6a39fb8f37e8c71f2463444e806c38641b0d6575bed1d0dfd7b9286e3f97", "relations": [{"rule": 2, "type": "equivalent", "target": "7d794a0f97dc8da3a00f372bbc0c20bc", "evidence": {"same_day": true, "patch_ids": ["a8b0d3aa98deac5cc468e64a9f8886c5"], "statement_hash": "030c6a39fb8f37e8c71f2463444e806c38641b0d6575bed1d0dfd7b9286e3f97"}}, {"rule": 2, "type": "equivalent", "target": "8473fd0fff739c0a7e785221163f247a", "evidence": {"same_day": true, "patch_ids": ["a8b0d3aa98deac5cc468e64a9f8886c5"], "statement_hash": "030c6a39fb8f37e8c71f2463444e806c38641b0d6575bed1d0dfd7b9286e3f97"}}, {"rule": 2, "type": "equivalent", "target": "e44b74dbf3112b960f5bf87f3cec1360", "evidence": {"same_day": true, "patch_ids": ["a8b0d3aa98deac5cc468e64a9f8886c5"], "statement_hash": "030c6a39fb8f37e8c71f2463444e806c38641b0d6575bed1d0dfd7b9286e3f97"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8473fd0fff739c0a7e785221163f247a", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复 UPDATE 的多列 SET 子句使用子 SELECT 作为数据源时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["a8b0d3aa98deac5cc468e64a9f8886c5"], "statement_hash": "030c6a39fb8f37e8c71f2463444e806c38641b0d6575bed1d0dfd7b9286e3f97"}, "url": "/docs/compare/?release=11.2#11.2-6f67aba9b2a8eff3", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "7d794a0f97dc8da3a00f372bbc0c20bc", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复 UPDATE 的多列 SET 子句使用子 SELECT 作为数据源时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["a8b0d3aa98deac5cc468e64a9f8886c5"], "statement_hash": "030c6a39fb8f37e8c71f2463444e806c38641b0d6575bed1d0dfd7b9286e3f97"}, "url": "/docs/compare/?release=10.7#10.7-6f67aba9b2a8eff3", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "e44b74dbf3112b960f5bf87f3cec1360", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复使用子 SELECT 作为源的多 SET 子句 UPDATE 可能的崩溃", "evidence": {"same_day": true, "patch_ids": ["a8b0d3aa98deac5cc468e64a9f8886c5"], "statement_hash": "030c6a39fb8f37e8c71f2463444e806c38641b0d6575bed1d0dfd7b9286e3f97"}, "url": "/docs/compare/?release=9.5.16#9.5.16-9d98b4f45c7ff193", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}]}, {"id": "9.6.12-8c33afde1a29db66", "cves": [], "html": "<p>避免 <span>libxml2</span> 返回空错误消息时崩溃（Sergio Conde Gómez）</p>", "text": "避免 libxml2 返回空错误消息时崩溃（Sergio Conde Gómez）", "title": "避免 libxml2 返回空错误消息时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "375a78d302737b853c94ff31d1f7ba3f8056b4ae4f6095548dcdd60dadedff61", "section_path": ["变更"], "commit_groups": [["0d7d71b64", "0edef16d7", "37f3a7751", "7821a4d60", "8e2956734", "ef922faea"]], "identity_text": "Avoid crash if libxml2 returns a null error message (Sergio Conde Gómez)", "commit_aliases": ["0d7d71b64", "0edef16d7", "37f3a7751", "7821a4d60", "8e2956734", "ef922faea"], "source_commits": ["ef922faea"], "source_entry_id": "9.6.12/changes/011", "db_id": "4fd8345e31bf46d7156f7c05feb39327", "patch_ids": ["756e7b21ff4acff04aeb731313e5eb12"], "statement_hash": "36824cc82ae51a6995057dd5e9f812c862c647537ed5268a803c9ed08923b7b9", "relations": [{"rule": 2, "type": "equivalent", "target": "1387d78c9243333e07793e10eea9f6e4", "evidence": {"same_day": true, "patch_ids": ["756e7b21ff4acff04aeb731313e5eb12"], "statement_hash": "36824cc82ae51a6995057dd5e9f812c862c647537ed5268a803c9ed08923b7b9"}}, {"rule": 2, "type": "equivalent", "target": "294aa1f458016522ac69d75341bf8752", "evidence": {"same_day": true, "patch_ids": ["756e7b21ff4acff04aeb731313e5eb12"], "statement_hash": "36824cc82ae51a6995057dd5e9f812c862c647537ed5268a803c9ed08923b7b9"}}, {"rule": 2, "type": "equivalent", "target": "5541174a4de609c53f81cbb8b8bead93", "evidence": {"same_day": true, "patch_ids": ["756e7b21ff4acff04aeb731313e5eb12"], "statement_hash": "36824cc82ae51a6995057dd5e9f812c862c647537ed5268a803c9ed08923b7b9"}}, {"rule": 2, "type": "equivalent", "target": "cd0ea67859104d8dca4e73127e3466cd", "evidence": {"same_day": true, "patch_ids": ["756e7b21ff4acff04aeb731313e5eb12"], "statement_hash": "36824cc82ae51a6995057dd5e9f812c862c647537ed5268a803c9ed08923b7b9"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "294aa1f458016522ac69d75341bf8752", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "避免 libxml2 返回空错误消息时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["756e7b21ff4acff04aeb731313e5eb12"], "statement_hash": "36824cc82ae51a6995057dd5e9f812c862c647537ed5268a803c9ed08923b7b9"}, "url": "/docs/compare/?release=11.2#11.2-3a5cdf58c7af36e7", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "5541174a4de609c53f81cbb8b8bead93", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "避免 libxml2 返回空错误消息时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["756e7b21ff4acff04aeb731313e5eb12"], "statement_hash": "36824cc82ae51a6995057dd5e9f812c862c647537ed5268a803c9ed08923b7b9"}, "url": "/docs/compare/?release=10.7#10.7-3a5cdf58c7af36e7", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "1387d78c9243333e07793e10eea9f6e4", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "避免 libxml2 返回空错误消息时崩溃", "evidence": {"same_day": true, "patch_ids": ["756e7b21ff4acff04aeb731313e5eb12"], "statement_hash": "36824cc82ae51a6995057dd5e9f812c862c647537ed5268a803c9ed08923b7b9"}, "url": "/docs/compare/?release=9.5.16#9.5.16-8c33afde1a29db66", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "cd0ea67859104d8dca4e73127e3466cd", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "避免libxml2返回空错误消息时崩溃", "evidence": {"same_day": true, "patch_ids": ["756e7b21ff4acff04aeb731313e5eb12"], "statement_hash": "36824cc82ae51a6995057dd5e9f812c862c647537ed5268a803c9ed08923b7b9"}, "url": "/docs/compare/?release=9.4.21#9.4.21-4a0d59430beb47d6", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-bf56af9074252e63", "cves": [], "html": "<p>修复排序规则分配处理不一致导致的虚假分组相关分析器错误（Andrew Gierth）</p>\n<p>某些情况下，如果表达式包含对可排序数据类型的操作，本应被视为匹配的表达式没有被看作匹配。</p>", "text": "修复排序规则分配处理不一致导致的虚假分组相关分析器错误（Andrew Gierth） 某些情况下，如果表达式包含对可排序数据类型的操作，本应被视为匹配的表达式没有被看作匹配。", "title": "修复排序规则分配处理不一致导致的虚假分组相关分析器错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "6cd4d8f581fa7b847b569aabe502158f66e7a3999ce09b70deaa6a98f118eb2e", "section_path": ["变更"], "commit_groups": [["174fab993", "409230a72", "624046abe", "91448e7dc", "d16d45387", "e74d8c508"]], "identity_text": "Fix spurious grouping-related parser errors caused by inconsistent handling of collation assignment (Andrew Gierth) In some cases, expressions that should be considered to match were not seen as matching, if they included operations on collatable data types.", "commit_aliases": ["174fab993", "409230a72", "624046abe", "91448e7dc", "d16d45387", "e74d8c508"], "source_commits": ["624046abe"], "source_entry_id": "9.6.12/changes/012", "db_id": "b14d1ad44f4f9a1753a80a190bb2b4af", "patch_ids": ["1505483bf7a831488d1704cafcd0f825"], "statement_hash": "9b8b2121ff38e3866696396677aab1e475cd9087a8a7e8a0ed288e4ac118db6f", "relations": [{"rule": 2, "type": "equivalent", "target": "060be4642903ea45c671de9a768bd647", "evidence": {"same_day": true, "patch_ids": ["1505483bf7a831488d1704cafcd0f825"], "statement_hash": "9b8b2121ff38e3866696396677aab1e475cd9087a8a7e8a0ed288e4ac118db6f"}}, {"rule": 2, "type": "equivalent", "target": "1c59b58c733f2c85fcf942d986bef1a3", "evidence": {"same_day": true, "patch_ids": ["1505483bf7a831488d1704cafcd0f825"], "statement_hash": "9b8b2121ff38e3866696396677aab1e475cd9087a8a7e8a0ed288e4ac118db6f"}}, {"rule": 2, "type": "equivalent", "target": "9de8a6f3f5bf764272f6f8bc82c57111", "evidence": {"same_day": true, "patch_ids": ["1505483bf7a831488d1704cafcd0f825"], "statement_hash": "9b8b2121ff38e3866696396677aab1e475cd9087a8a7e8a0ed288e4ac118db6f"}}, {"rule": 2, "type": "equivalent", "target": "adefdbaad9b4829e6d0acd5506afe442", "evidence": {"same_day": true, "patch_ids": ["1505483bf7a831488d1704cafcd0f825"], "statement_hash": "9b8b2121ff38e3866696396677aab1e475cd9087a8a7e8a0ed288e4ac118db6f"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9de8a6f3f5bf764272f6f8bc82c57111", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复因排序规则分配处理不一致而引发的虚假分组相关解析器错误", "evidence": {"same_day": true, "patch_ids": ["1505483bf7a831488d1704cafcd0f825"], "statement_hash": "9b8b2121ff38e3866696396677aab1e475cd9087a8a7e8a0ed288e4ac118db6f"}, "url": "/docs/compare/?release=11.2#11.2-d5b2cdd9ff3fa984", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "060be4642903ea45c671de9a768bd647", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复因排序规则分配处理不一致而引发的虚假分组相关解析器错误", "evidence": {"same_day": true, "patch_ids": ["1505483bf7a831488d1704cafcd0f825"], "statement_hash": "9b8b2121ff38e3866696396677aab1e475cd9087a8a7e8a0ed288e4ac118db6f"}, "url": "/docs/compare/?release=10.7#10.7-d5b2cdd9ff3fa984", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "adefdbaad9b4829e6d0acd5506afe442", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复排序规则分配处理不一致导致的虚假分组相关分析器错误", "evidence": {"same_day": true, "patch_ids": ["1505483bf7a831488d1704cafcd0f825"], "statement_hash": "9b8b2121ff38e3866696396677aab1e475cd9087a8a7e8a0ed288e4ac118db6f"}, "url": "/docs/compare/?release=9.5.16#9.5.16-bf56af9074252e63", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "1c59b58c733f2c85fcf942d986bef1a3", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复排序规则分配处理不一致导致的虚假分组相关分析器错误", "evidence": {"same_day": true, "patch_ids": ["1505483bf7a831488d1704cafcd0f825"], "statement_hash": "9b8b2121ff38e3866696396677aab1e475cd9087a8a7e8a0ed288e4ac118db6f"}, "url": "/docs/compare/?release=9.4.21#9.4.21-bf56af9074252e63", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-bf335adebd4b10d4", "cves": [], "html": "<p>检查 <code>LEAST()</code> 或 <code>GREATEST()</code> 底层的比较函数是否防泄漏，而不是直接假定它防泄漏（Tom Lane）</p>\n<p>btree 比较函数的实际信息泄漏通常很难诱发，但原则上可能发生。</p>", "text": "检查 LEAST() 或 GREATEST() 底层的比较函数是否防泄漏，而不是直接假定它防泄漏（Tom Lane） btree 比较函数的实际信息泄漏通常很难诱发，但原则上可能发生。", "title": "检查 LEAST() 或 GREATEST() 底层的比较函数是否防泄漏，而不是直接假定它防泄漏", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "028dadf1993f6c32e6db074962e2f2e535165c9e9a1356ea80ebac5c949795a9", "section_path": ["变更"], "commit_groups": [["099063340", "64edc788b", "68a13f28b", "c27c3993e", "d6b37cdb6", "f8b9b8097"]], "identity_text": "Check whether the comparison function underlying LEAST() or GREATEST() is leakproof, rather than just assuming it is (Tom Lane) Actual information leaks from btree comparison functions are typically hard to provoke, but in principle they could happen.", "commit_aliases": ["099063340", "64edc788b", "68a13f28b", "c27c3993e", "d6b37cdb6", "f8b9b8097"], "source_commits": ["c27c3993e"], "source_entry_id": "9.6.12/changes/013", "db_id": "51fe53d8127248de741bb349f298e27a", "patch_ids": ["10243ca6f385a264e2070242b9f73b72"], "statement_hash": "e296eb59769fc5095e9df54d61fbac3ec99331bc016ec251e60574a712d94bf1", "relations": [{"rule": 2, "type": "equivalent", "target": "2f4dc72bb3dab3438fcd9fb0351b5437", "evidence": {"same_day": true, "patch_ids": ["10243ca6f385a264e2070242b9f73b72"], "statement_hash": "e296eb59769fc5095e9df54d61fbac3ec99331bc016ec251e60574a712d94bf1"}}, {"rule": 2, "type": "equivalent", "target": "4a48718b3f267d0e84af709c736400f0", "evidence": {"same_day": true, "patch_ids": ["10243ca6f385a264e2070242b9f73b72"], "statement_hash": "e296eb59769fc5095e9df54d61fbac3ec99331bc016ec251e60574a712d94bf1"}}, {"rule": 2, "type": "equivalent", "target": "be7605ab0906c2e02cca861022499953", "evidence": {"same_day": true, "patch_ids": ["10243ca6f385a264e2070242b9f73b72"], "statement_hash": "e296eb59769fc5095e9df54d61fbac3ec99331bc016ec251e60574a712d94bf1"}}, {"rule": 2, "type": "equivalent", "target": "cdfd242c3e04a220e1c4e4f8cc327493", "evidence": {"same_day": true, "patch_ids": ["10243ca6f385a264e2070242b9f73b72"], "statement_hash": "e296eb59769fc5095e9df54d61fbac3ec99331bc016ec251e60574a712d94bf1"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "be7605ab0906c2e02cca861022499953", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "检查 LEAST() 或 GREATEST() 底层的比较函数是否防泄漏，而非直接假定它防泄漏", "evidence": {"same_day": true, "patch_ids": ["10243ca6f385a264e2070242b9f73b72"], "statement_hash": "e296eb59769fc5095e9df54d61fbac3ec99331bc016ec251e60574a712d94bf1"}, "url": "/docs/compare/?release=11.2#11.2-7d5d774129cea68f", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "2f4dc72bb3dab3438fcd9fb0351b5437", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "检查 LEAST() 或 GREATEST() 底层的比较函数是否防泄漏，而非直接假定它防泄漏", "evidence": {"same_day": true, "patch_ids": ["10243ca6f385a264e2070242b9f73b72"], "statement_hash": "e296eb59769fc5095e9df54d61fbac3ec99331bc016ec251e60574a712d94bf1"}, "url": "/docs/compare/?release=10.7#10.7-7d5d774129cea68f", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "cdfd242c3e04a220e1c4e4f8cc327493", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "检查 LEAST() 或 GREATEST() 底层的比较函数是否防泄漏，而不是直接假定它防泄漏", "evidence": {"same_day": true, "patch_ids": ["10243ca6f385a264e2070242b9f73b72"], "statement_hash": "e296eb59769fc5095e9df54d61fbac3ec99331bc016ec251e60574a712d94bf1"}, "url": "/docs/compare/?release=9.5.16#9.5.16-bf335adebd4b10d4", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "4a48718b3f267d0e84af709c736400f0", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "检查 LEAST() 或 GREATEST() 底层的比较函数是否防泄漏，而不是直接假定它防泄漏", "evidence": {"same_day": true, "patch_ids": ["10243ca6f385a264e2070242b9f73b72"], "statement_hash": "e296eb59769fc5095e9df54d61fbac3ec99331bc016ec251e60574a712d94bf1"}, "url": "/docs/compare/?release=9.4.21#9.4.21-bf335adebd4b10d4", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-7ebb2e4c170eab13", "cves": [], "html": "<p>修复涉及 Gather 计划节点上下都有嵌套循环的查询的错误规划（Tom Lane）</p>\n<p>如果两层 nestloop 都需要把同一个变量传入它们的右侧，就会生成错误的计划。</p>", "text": "修复涉及 Gather 计划节点上下都有嵌套循环的查询的错误规划（Tom Lane） 如果两层 nestloop 都需要把同一个变量传入它们的右侧，就会生成错误的计划。", "title": "修复涉及 Gather 计划节点上下都有嵌套循环的查询的错误规划", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "32326af3cc3e2f913af8653336763cea51473eb856f3c5e6de9144ea6c1c175c", "section_path": ["变更"], "commit_groups": [["05eb923ea", "1db5667ba", "2977a312d", "4f8097499"]], "identity_text": "Fix incorrect planning of queries involving nested loops both above and below a Gather plan node (Tom Lane) If both levels of nestloop needed to pass the same variable into their right-hand sides, an incorrect plan would be generated.", "commit_aliases": ["05eb923ea", "1db5667ba", "2977a312d", "4f8097499"], "source_commits": ["4f8097499"], "source_entry_id": "9.6.12/changes/014", "db_id": "532a9f4057875db8bbf1ae25cb07821c", "patch_ids": ["910af4181d72b207574d7816d8c7d636"], "statement_hash": "2bf3f1153ae3dabacb24736c7f7c569cbc4451cb8cd11154c409d1eab3c32454", "relations": [{"rule": 2, "type": "equivalent", "target": "6939672fe8df6ed3a74aab1067205ef8", "evidence": {"same_day": true, "patch_ids": ["910af4181d72b207574d7816d8c7d636"], "statement_hash": "2bf3f1153ae3dabacb24736c7f7c569cbc4451cb8cd11154c409d1eab3c32454"}}, {"rule": 2, "type": "equivalent", "target": "b247f110726f1714864fcb4621557adb", "evidence": {"same_day": true, "patch_ids": ["910af4181d72b207574d7816d8c7d636"], "statement_hash": "2bf3f1153ae3dabacb24736c7f7c569cbc4451cb8cd11154c409d1eab3c32454"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6939672fe8df6ed3a74aab1067205ef8", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复 Gather 计划节点上下都包含嵌套循环的查询的不正确规划", "evidence": {"same_day": true, "patch_ids": ["910af4181d72b207574d7816d8c7d636"], "statement_hash": "2bf3f1153ae3dabacb24736c7f7c569cbc4451cb8cd11154c409d1eab3c32454"}, "url": "/docs/compare/?release=11.2#11.2-e8965a21b7fd5df3", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "b247f110726f1714864fcb4621557adb", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复 Gather 计划节点上下都包含嵌套循环的查询的不正确规划", "evidence": {"same_day": true, "patch_ids": ["910af4181d72b207574d7816d8c7d636"], "statement_hash": "2bf3f1153ae3dabacb24736c7f7c569cbc4451cb8cd11154c409d1eab3c32454"}, "url": "/docs/compare/?release=10.7#10.7-e8965a21b7fd5df3", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}]}, {"id": "9.6.12-fe6062fd1b04833f", "cves": [], "html": "<p>修复必须在外部表扫描处求值横向引用的查询的错误规划（Tom Lane）</p>", "text": "修复必须在外部表扫描处求值横向引用的查询的错误规划（Tom Lane）", "title": "修复必须在外部表扫描处求值横向引用的查询的错误规划", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "b1be77045d55b6fb84ebd6a29ccf3c7a2fa1dd9983029ba84dedbf5869dda3fc", "section_path": ["变更"], "commit_groups": [["1eeee6909", "34ea1ab7f", "876fd37fc", "9d6d2b213", "d468da0d6", "e3101a031"]], "identity_text": "Fix incorrect planning of queries in which a lateral reference must be evaluated at a foreign table scan (Tom Lane)", "commit_aliases": ["1eeee6909", "34ea1ab7f", "876fd37fc", "9d6d2b213", "d468da0d6", "e3101a031"], "source_commits": ["d468da0d6"], "source_entry_id": "9.6.12/changes/015", "db_id": "5b7564d69abdb31fc354f01bb0d390c2", "patch_ids": ["5336bcec2f5932123cd50ba929c09635"], "statement_hash": "f3091c700511a6d7a2c1ce5cc02e01c0e3ef669e204ee0d11f67ad84402d15a9", "relations": [{"rule": 2, "type": "equivalent", "target": "3531afe827dc600e49c040c0ce648222", "evidence": {"same_day": true, "patch_ids": ["5336bcec2f5932123cd50ba929c09635"], "statement_hash": "f3091c700511a6d7a2c1ce5cc02e01c0e3ef669e204ee0d11f67ad84402d15a9"}}, {"rule": 2, "type": "equivalent", "target": "354d2112f020f99f16e1450a3cd1025f", "evidence": {"same_day": true, "patch_ids": ["5336bcec2f5932123cd50ba929c09635"], "statement_hash": "f3091c700511a6d7a2c1ce5cc02e01c0e3ef669e204ee0d11f67ad84402d15a9"}}, {"rule": 2, "type": "equivalent", "target": "4f8191ef4325da8ce0c5b095f97f4db7", "evidence": {"same_day": true, "patch_ids": ["5336bcec2f5932123cd50ba929c09635"], "statement_hash": "f3091c700511a6d7a2c1ce5cc02e01c0e3ef669e204ee0d11f67ad84402d15a9"}}, {"rule": 2, "type": "equivalent", "target": "bda1eb21f9480626ad4d9bf00073346e", "evidence": {"same_day": true, "patch_ids": ["5336bcec2f5932123cd50ba929c09635"], "statement_hash": "f3091c700511a6d7a2c1ce5cc02e01c0e3ef669e204ee0d11f67ad84402d15a9"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bda1eb21f9480626ad4d9bf00073346e", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复必须在外部表扫描处对横向引用求值的查询的不正确规划", "evidence": {"same_day": true, "patch_ids": ["5336bcec2f5932123cd50ba929c09635"], "statement_hash": "f3091c700511a6d7a2c1ce5cc02e01c0e3ef669e204ee0d11f67ad84402d15a9"}, "url": "/docs/compare/?release=11.2#11.2-e807c77d8d848fe2", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "4f8191ef4325da8ce0c5b095f97f4db7", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复必须在外部表扫描处对横向引用求值的查询的不正确规划", "evidence": {"same_day": true, "patch_ids": ["5336bcec2f5932123cd50ba929c09635"], "statement_hash": "f3091c700511a6d7a2c1ce5cc02e01c0e3ef669e204ee0d11f67ad84402d15a9"}, "url": "/docs/compare/?release=10.7#10.7-e807c77d8d848fe2", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "354d2112f020f99f16e1450a3cd1025f", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复必须在外部表扫描处求值横向引用的查询的错误规划", "evidence": {"same_day": true, "patch_ids": ["5336bcec2f5932123cd50ba929c09635"], "statement_hash": "f3091c700511a6d7a2c1ce5cc02e01c0e3ef669e204ee0d11f67ad84402d15a9"}, "url": "/docs/compare/?release=9.5.16#9.5.16-fe6062fd1b04833f", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "3531afe827dc600e49c040c0ce648222", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复横向引用必须在外部表扫描处求值的查询规划错误的问题", "evidence": {"same_day": true, "patch_ids": ["5336bcec2f5932123cd50ba929c09635"], "statement_hash": "f3091c700511a6d7a2c1ce5cc02e01c0e3ef669e204ee0d11f67ad84402d15a9"}, "url": "/docs/compare/?release=9.4.21#9.4.21-3a4d69bc3cdf76f7", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-736d497984b7f310", "cves": [], "html": "<p>修复归并连接代价的边界低估（Tom Lane）</p>\n<p>当外键范围远小于内键范围时，即使内侧有如此多的重复键以至于这是糟糕的选择，规划器也可能偏爱归并连接。</p>", "text": "修复归并连接代价的边界低估（Tom Lane） 当外键范围远小于内键范围时，即使内侧有如此多的重复键以至于这是糟糕的选择，规划器也可能偏爱归并连接。", "title": "修复归并连接代价的边界低估", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "e8ccd04bdb210a7b4e24c704e36f4468e5a2efc6f629816ef9ac70931b72ab5c", "section_path": ["变更"], "commit_groups": [["72a626e68", "7c2bc40b8", "ad425aaf0", "d16567093", "d364e8815", "ef673a32d"]], "identity_text": "Fix corner-case underestimation of the cost of a merge join (Tom Lane) The planner could prefer a merge join when the outer key range is much smaller than the inner key range, even if there are so many duplicate keys on the inner side that this is a poor choice.", "commit_aliases": ["72a626e68", "7c2bc40b8", "ad425aaf0", "d16567093", "d364e8815", "ef673a32d"], "source_commits": ["7c2bc40b8"], "source_entry_id": "9.6.12/changes/016", "db_id": "1e50a972cb40096b25a48680c1810ea4", "patch_ids": ["6340549505356d918a295f3ea6c5f596"], "statement_hash": "3aa9e70862272955da108fbeba34d23fcd4accdcd545e34bcf5783c2723d3f17", "relations": [{"rule": 2, "type": "equivalent", "target": "59072165ff62b908831246d189ccdd3f", "evidence": {"same_day": true, "patch_ids": ["6340549505356d918a295f3ea6c5f596"], "statement_hash": "3aa9e70862272955da108fbeba34d23fcd4accdcd545e34bcf5783c2723d3f17"}}, {"rule": 2, "type": "equivalent", "target": "a9b825e90ea5bfde11ce4b49ec05bbd8", "evidence": {"same_day": true, "patch_ids": ["6340549505356d918a295f3ea6c5f596"], "statement_hash": "3aa9e70862272955da108fbeba34d23fcd4accdcd545e34bcf5783c2723d3f17"}}, {"rule": 2, "type": "equivalent", "target": "dc36638f2802173341812995b8e58e6b", "evidence": {"same_day": true, "patch_ids": ["6340549505356d918a295f3ea6c5f596"], "statement_hash": "3aa9e70862272955da108fbeba34d23fcd4accdcd545e34bcf5783c2723d3f17"}}, {"rule": 2, "type": "equivalent", "target": "f83041a6e870e795da2ed3a6ada57352", "evidence": {"same_day": true, "patch_ids": ["6340549505356d918a295f3ea6c5f596"], "statement_hash": "3aa9e70862272955da108fbeba34d23fcd4accdcd545e34bcf5783c2723d3f17"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "59072165ff62b908831246d189ccdd3f", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复边界情况下低估归并连接代价的问题", "evidence": {"same_day": true, "patch_ids": ["6340549505356d918a295f3ea6c5f596"], "statement_hash": "3aa9e70862272955da108fbeba34d23fcd4accdcd545e34bcf5783c2723d3f17"}, "url": "/docs/compare/?release=11.2#11.2-3ced48b41a8de8ac", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "a9b825e90ea5bfde11ce4b49ec05bbd8", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复边界情况下低估归并连接代价的问题", "evidence": {"same_day": true, "patch_ids": ["6340549505356d918a295f3ea6c5f596"], "statement_hash": "3aa9e70862272955da108fbeba34d23fcd4accdcd545e34bcf5783c2723d3f17"}, "url": "/docs/compare/?release=10.7#10.7-3ced48b41a8de8ac", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "dc36638f2802173341812995b8e58e6b", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复归并连接代价的边界低估", "evidence": {"same_day": true, "patch_ids": ["6340549505356d918a295f3ea6c5f596"], "statement_hash": "3aa9e70862272955da108fbeba34d23fcd4accdcd545e34bcf5783c2723d3f17"}, "url": "/docs/compare/?release=9.5.16#9.5.16-736d497984b7f310", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "f83041a6e870e795da2ed3a6ada57352", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复归并连接代价的边界低估", "evidence": {"same_day": true, "patch_ids": ["6340549505356d918a295f3ea6c5f596"], "statement_hash": "3aa9e70862272955da108fbeba34d23fcd4accdcd545e34bcf5783c2723d3f17"}, "url": "/docs/compare/?release=9.4.21#9.4.21-736d497984b7f310", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-644584d931a7f6d1", "cves": [], "html": "<p>避免查询包含数千个可索引子句时 O(N^2) 的规划时间增长（Tom Lane）</p>", "text": "避免查询包含数千个可索引子句时 O(N^2) 的规划时间增长（Tom Lane）", "title": "避免查询包含数千个可索引子句时 O(N^2) 的规划时间增长", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "5132039435513b600368c80b5bfb7ae84d8353089e933d850901352fe9e388c0", "section_path": ["变更"], "commit_groups": [["15b9d47c8", "2abc87953", "92dbbe90c", "c6b3835c7", "e3f005d97", "fe66fc6f9"]], "identity_text": "Avoid O(N^2) planning time growth when a query contains many thousand indexable clauses (Tom Lane)", "commit_aliases": ["15b9d47c8", "2abc87953", "92dbbe90c", "c6b3835c7", "e3f005d97", "fe66fc6f9"], "source_commits": ["fe66fc6f9"], "source_entry_id": "9.6.12/changes/017", "db_id": "ab6454b9c1c6337e8af4edb10bfdd0f1", "patch_ids": ["0912f086f01bc30847925ec6bc7d7489"], "statement_hash": "3195b99f61e63a1563de767582a58805cdd4a00e87311931ec01c60a5742ff73", "relations": [{"rule": 2, "type": "equivalent", "target": "0a496a38c0b0b6f4ab2f6638c619f1b4", "evidence": {"same_day": true, "patch_ids": ["0912f086f01bc30847925ec6bc7d7489"], "statement_hash": "3195b99f61e63a1563de767582a58805cdd4a00e87311931ec01c60a5742ff73"}}, {"rule": 2, "type": "equivalent", "target": "a8c9373aada4826cbc39f1c06cfbe049", "evidence": {"same_day": true, "patch_ids": ["0912f086f01bc30847925ec6bc7d7489"], "statement_hash": "3195b99f61e63a1563de767582a58805cdd4a00e87311931ec01c60a5742ff73"}}, {"rule": 2, "type": "equivalent", "target": "ca0ac4ee39d73cb3de7c04797db89709", "evidence": {"same_day": true, "patch_ids": ["0912f086f01bc30847925ec6bc7d7489"], "statement_hash": "3195b99f61e63a1563de767582a58805cdd4a00e87311931ec01c60a5742ff73"}}, {"rule": 2, "type": "equivalent", "target": "e006c28481e2a55db16d28c805352633", "evidence": {"same_day": true, "patch_ids": ["0912f086f01bc30847925ec6bc7d7489"], "statement_hash": "3195b99f61e63a1563de767582a58805cdd4a00e87311931ec01c60a5742ff73"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0a496a38c0b0b6f4ab2f6638c619f1b4", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "避免查询包含成千上万个可使用索引的子句时，规划时间以 O(N^2) 增长", "evidence": {"same_day": true, "patch_ids": ["0912f086f01bc30847925ec6bc7d7489"], "statement_hash": "3195b99f61e63a1563de767582a58805cdd4a00e87311931ec01c60a5742ff73"}, "url": "/docs/compare/?release=11.2#11.2-ce36192f0c0a7fdd", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "ca0ac4ee39d73cb3de7c04797db89709", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "避免查询包含成千上万个可使用索引的子句时，规划时间以 O(N^2) 增长", "evidence": {"same_day": true, "patch_ids": ["0912f086f01bc30847925ec6bc7d7489"], "statement_hash": "3195b99f61e63a1563de767582a58805cdd4a00e87311931ec01c60a5742ff73"}, "url": "/docs/compare/?release=10.7#10.7-ce36192f0c0a7fdd", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "a8c9373aada4826cbc39f1c06cfbe049", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "避免查询包含数千个可索引子句时 O(N^2) 的规划时间增长", "evidence": {"same_day": true, "patch_ids": ["0912f086f01bc30847925ec6bc7d7489"], "statement_hash": "3195b99f61e63a1563de767582a58805cdd4a00e87311931ec01c60a5742ff73"}, "url": "/docs/compare/?release=9.5.16#9.5.16-644584d931a7f6d1", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "e006c28481e2a55db16d28c805352633", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "避免查询包含数千个可索引子句时规划时间 O(N^2) 增长的问题", "evidence": {"same_day": true, "patch_ids": ["0912f086f01bc30847925ec6bc7d7489"], "statement_hash": "3195b99f61e63a1563de767582a58805cdd4a00e87311931ec01c60a5742ff73"}, "url": "/docs/compare/?release=9.4.21#9.4.21-bdb68921210a87f8", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-a558c732906fb020", "cves": [], "html": "<p>改进 <code>ANALYZE</code> 对并发更新行的处理（Jeff Janes、Tom Lane）</p>\n<p>此前，进行中事务删除的行被排除在 <code>ANALYZE</code> 的样本之外，但事实证明这比包含它们导致更多不一致。现在，样本实际上对应 <code>ANALYZE</code> 开始时刻的 MVCC 快照。</p>", "text": "改进 ANALYZE 对并发更新行的处理（Jeff Janes、Tom Lane） 此前，进行中事务删除的行被排除在 ANALYZE 的样本之外，但事实证明这比包含它们导致更多不一致。现在，样本实际上对应 ANALYZE 开始时刻的 MVCC 快照。", "title": "改进 ANALYZE 对并发更新行的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "68b92b979f0f1e1a2a34d498d6326199d215f56d8a965fba7cb66ef80b2cabea", "section_path": ["变更"], "commit_groups": [["3010de813", "60de80cd2", "708931c2d", "7170268ef", "d2557c42a", "fc8adddd9"]], "identity_text": "Improve ANALYZE's handling of concurrently-updated rows (Jeff Janes, Tom Lane) Previously, rows deleted by an in-progress transaction were omitted from ANALYZE's sample, but this has been found to lead to more inconsistency than including them would do. In effect, the sample now corresponds to an MVCC snapshot as of ANALYZE's start time.", "commit_aliases": ["3010de813", "60de80cd2", "708931c2d", "7170268ef", "d2557c42a", "fc8adddd9"], "source_commits": ["60de80cd2"], "source_entry_id": "9.6.12/changes/018", "db_id": "9a69f4d0cbaa57a27d628df448272eb9", "patch_ids": ["3c34cbfb351f59987d9a949d4feb7c47"], "statement_hash": "913ee89a1c2564947f98228968097621de88b282c2722f24c6200ea4a49fae40", "relations": [{"rule": 2, "type": "equivalent", "target": "2fb9837020438844d1fb354dc4240f57", "evidence": {"same_day": true, "patch_ids": ["3c34cbfb351f59987d9a949d4feb7c47"], "statement_hash": "913ee89a1c2564947f98228968097621de88b282c2722f24c6200ea4a49fae40"}}, {"rule": 2, "type": "equivalent", "target": "45348ab6ed1c570431a1d61d73eebcd6", "evidence": {"same_day": true, "patch_ids": ["3c34cbfb351f59987d9a949d4feb7c47"], "statement_hash": "913ee89a1c2564947f98228968097621de88b282c2722f24c6200ea4a49fae40"}}, {"rule": 2, "type": "equivalent", "target": "65e06740e546a93ed9c9bb2f5c0ca8b2", "evidence": {"same_day": true, "patch_ids": ["3c34cbfb351f59987d9a949d4feb7c47"], "statement_hash": "913ee89a1c2564947f98228968097621de88b282c2722f24c6200ea4a49fae40"}}, {"rule": 2, "type": "equivalent", "target": "a05df9f2fd20ee32f21f0d5e0ba1dc51", "evidence": {"same_day": true, "patch_ids": ["3c34cbfb351f59987d9a949d4feb7c47"], "statement_hash": "913ee89a1c2564947f98228968097621de88b282c2722f24c6200ea4a49fae40"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "65e06740e546a93ed9c9bb2f5c0ca8b2", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "改进 ANALYZE 对并发更新行的处理", "evidence": {"same_day": true, "patch_ids": ["3c34cbfb351f59987d9a949d4feb7c47"], "statement_hash": "913ee89a1c2564947f98228968097621de88b282c2722f24c6200ea4a49fae40"}, "url": "/docs/compare/?release=11.2#11.2-a558c732906fb020", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "2fb9837020438844d1fb354dc4240f57", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "改进 ANALYZE 对并发更新行的处理", "evidence": {"same_day": true, "patch_ids": ["3c34cbfb351f59987d9a949d4feb7c47"], "statement_hash": "913ee89a1c2564947f98228968097621de88b282c2722f24c6200ea4a49fae40"}, "url": "/docs/compare/?release=10.7#10.7-a558c732906fb020", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "45348ab6ed1c570431a1d61d73eebcd6", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "改进 ANALYZE 对并发更新行的处理", "evidence": {"same_day": true, "patch_ids": ["3c34cbfb351f59987d9a949d4feb7c47"], "statement_hash": "913ee89a1c2564947f98228968097621de88b282c2722f24c6200ea4a49fae40"}, "url": "/docs/compare/?release=9.5.16#9.5.16-a558c732906fb020", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "a05df9f2fd20ee32f21f0d5e0ba1dc51", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "改进 ANALYZE 对并发更新行的处理", "evidence": {"same_day": true, "patch_ids": ["3c34cbfb351f59987d9a949d4feb7c47"], "statement_hash": "913ee89a1c2564947f98228968097621de88b282c2722f24c6200ea4a49fae40"}, "url": "/docs/compare/?release=9.4.21#9.4.21-a558c732906fb020", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-44f0f31362cefde2", "cves": [], "html": "<p>让 <code>TRUNCATE</code> 忽略作为其他会话临时表的继承子表（Amit Langote、Michael Paquier）</p>\n<p>这使 <code>TRUNCATE</code> 与其他命令的行为一致。此前这种情况通常以失败告终。</p>", "text": "让 TRUNCATE 忽略作为其他会话临时表的继承子表（Amit Langote、Michael Paquier） 这使 TRUNCATE 与其他命令的行为一致。此前这种情况通常以失败告终。", "title": "让 TRUNCATE 忽略作为其他会话临时表的继承子表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "9177c508f3b577a0823d2d58c891e8dbbd4d985a8f00c535da39f16c52eba7db", "section_path": ["变更"], "commit_groups": [["0a323ae67", "1d7007671", "1e504f01d", "285abc8df", "b30b9dce1", "d4486700b"]], "identity_text": "Make TRUNCATE ignore inheritance child tables that are temporary tables of other sessions (Amit Langote, Michael Paquier) This brings TRUNCATE into line with the behavior of other commands. Previously, such cases usually ended in failure.", "commit_aliases": ["0a323ae67", "1d7007671", "1e504f01d", "285abc8df", "b30b9dce1", "d4486700b"], "source_commits": ["285abc8df"], "source_entry_id": "9.6.12/changes/019", "db_id": "299a173b84bdbba2b2ef7d7f5e68b412", "patch_ids": ["f92fd323b016dddd573493fc747398a4"], "statement_hash": "a99e870d67a97dea8231a9ec6a842903fcc5c68a387617d68b96f61c231754ab", "relations": [{"rule": 2, "type": "equivalent", "target": "58b5ad27b1ad1e5d9ed30605286a7461", "evidence": {"same_day": true, "patch_ids": ["f92fd323b016dddd573493fc747398a4"], "statement_hash": "a99e870d67a97dea8231a9ec6a842903fcc5c68a387617d68b96f61c231754ab"}}, {"rule": 2, "type": "equivalent", "target": "ba9b63c069d724acd9ecc209c77d9c9e", "evidence": {"same_day": true, "patch_ids": ["f92fd323b016dddd573493fc747398a4"], "statement_hash": "a99e870d67a97dea8231a9ec6a842903fcc5c68a387617d68b96f61c231754ab"}}, {"rule": 2, "type": "equivalent", "target": "c205e6791fa6f13866b21b6fa8dc3e6a", "evidence": {"same_day": true, "patch_ids": ["f92fd323b016dddd573493fc747398a4"], "statement_hash": "a99e870d67a97dea8231a9ec6a842903fcc5c68a387617d68b96f61c231754ab"}}, {"rule": 2, "type": "equivalent", "target": "e6df38661dbacd724751a1c6fbdf5b3b", "evidence": {"same_day": true, "patch_ids": ["f92fd323b016dddd573493fc747398a4"], "statement_hash": "a99e870d67a97dea8231a9ec6a842903fcc5c68a387617d68b96f61c231754ab"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e6df38661dbacd724751a1c6fbdf5b3b", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "使 TRUNCATE 忽略属于其他会话临时表的继承子表", "evidence": {"same_day": true, "patch_ids": ["f92fd323b016dddd573493fc747398a4"], "statement_hash": "a99e870d67a97dea8231a9ec6a842903fcc5c68a387617d68b96f61c231754ab"}, "url": "/docs/compare/?release=11.2#11.2-dc553965b9743522", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "58b5ad27b1ad1e5d9ed30605286a7461", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "使 TRUNCATE 忽略属于其他会话临时表的继承子表", "evidence": {"same_day": true, "patch_ids": ["f92fd323b016dddd573493fc747398a4"], "statement_hash": "a99e870d67a97dea8231a9ec6a842903fcc5c68a387617d68b96f61c231754ab"}, "url": "/docs/compare/?release=10.7#10.7-dc553965b9743522", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "c205e6791fa6f13866b21b6fa8dc3e6a", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "让 TRUNCATE 忽略作为其他会话临时表的继承子表", "evidence": {"same_day": true, "patch_ids": ["f92fd323b016dddd573493fc747398a4"], "statement_hash": "a99e870d67a97dea8231a9ec6a842903fcc5c68a387617d68b96f61c231754ab"}, "url": "/docs/compare/?release=9.5.16#9.5.16-44f0f31362cefde2", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "ba9b63c069d724acd9ecc209c77d9c9e", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "让 TRUNCATE 忽略作为其他会话临时表的继承子表", "evidence": {"same_day": true, "patch_ids": ["f92fd323b016dddd573493fc747398a4"], "statement_hash": "a99e870d67a97dea8231a9ec6a842903fcc5c68a387617d68b96f61c231754ab"}, "url": "/docs/compare/?release=9.4.21#9.4.21-44f0f31362cefde2", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-d687843b4d641144", "cves": [], "html": "<p>修复 <code>TRUNCATE</code> 更新正确表的统计计数器（Tom Lane）</p>\n<p>如果被截断的表有 TOAST 表，被重置的却是那张表的计数器。</p>", "text": "修复 TRUNCATE 更新正确表的统计计数器（Tom Lane） 如果被截断的表有 TOAST 表，被重置的却是那张表的计数器。", "title": "修复 TRUNCATE 更新正确表的统计计数器", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "bcc221c2bde8bd072142a32f291b2cfaedea27207afc5b1205c0919ae92e21fe", "section_path": ["变更"], "commit_groups": [["078303f79", "4d5cfb911", "54f24ab76", "5deadfef2", "aedd3d4db"]], "identity_text": "Fix TRUNCATE to update the statistics counters for the right table (Tom Lane) If the truncated table had a TOAST table, that table's counters were reset instead.", "commit_aliases": ["078303f79", "4d5cfb911", "54f24ab76", "5deadfef2", "aedd3d4db"], "source_commits": ["078303f79"], "source_entry_id": "9.6.12/changes/020", "db_id": "ffbc70723fea0383b5fc8c90fdc244be", "patch_ids": ["091d85d6e03614aa970210f56481f229"], "statement_hash": "6861093f180d7fde7cc198919ed21cb880f2076f996c6646491d5b389dc14677", "relations": [{"rule": 2, "type": "equivalent", "target": "353f272f0954dfe55377911bee3a0f23", "evidence": {"same_day": true, "patch_ids": ["091d85d6e03614aa970210f56481f229"], "statement_hash": "6861093f180d7fde7cc198919ed21cb880f2076f996c6646491d5b389dc14677"}}, {"rule": 2, "type": "equivalent", "target": "7d19a7f220f9178a671c8e1477fd4b2e", "evidence": {"same_day": true, "patch_ids": ["091d85d6e03614aa970210f56481f229"], "statement_hash": "6861093f180d7fde7cc198919ed21cb880f2076f996c6646491d5b389dc14677"}}, {"rule": 2, "type": "equivalent", "target": "aa509203a2ac04592ea3b3f7722d70dd", "evidence": {"same_day": true, "patch_ids": ["091d85d6e03614aa970210f56481f229"], "statement_hash": "6861093f180d7fde7cc198919ed21cb880f2076f996c6646491d5b389dc14677"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7d19a7f220f9178a671c8e1477fd4b2e", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复 TRUNCATE，使其更新正确表的统计计数器", "evidence": {"same_day": true, "patch_ids": ["091d85d6e03614aa970210f56481f229"], "statement_hash": "6861093f180d7fde7cc198919ed21cb880f2076f996c6646491d5b389dc14677"}, "url": "/docs/compare/?release=11.2#11.2-1403a0afb6d8bdbf", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "353f272f0954dfe55377911bee3a0f23", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复 TRUNCATE，使其更新正确表的统计计数器", "evidence": {"same_day": true, "patch_ids": ["091d85d6e03614aa970210f56481f229"], "statement_hash": "6861093f180d7fde7cc198919ed21cb880f2076f996c6646491d5b389dc14677"}, "url": "/docs/compare/?release=10.7#10.7-1403a0afb6d8bdbf", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "aa509203a2ac04592ea3b3f7722d70dd", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复 TRUNCATE 更新正确表的统计计数器", "evidence": {"same_day": true, "patch_ids": ["091d85d6e03614aa970210f56481f229"], "statement_hash": "6861093f180d7fde7cc198919ed21cb880f2076f996c6646491d5b389dc14677"}, "url": "/docs/compare/?release=9.5.16#9.5.16-d687843b4d641144", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}]}, {"id": "9.6.12-e1c83a7b9a0b1f58", "cves": [], "html": "<p>正确处理 <code>ALTER TABLE ONLY ADD COLUMN IF NOT EXISTS</code>（Greg Stark）</p>", "text": "正确处理 ALTER TABLE ONLY ADD COLUMN IF NOT EXISTS（Greg Stark）", "title": "正确处理 ALTER TABLE ONLY ADD COLUMN IF NOT EXISTS", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "0c369516c8a887e9673af6d154c9ab76040167f14e50aa7a420add988eac3945", "section_path": ["变更"], "commit_groups": [["1075dfdaf", "128ce8e1a", "5668afeb6", "9e6cd794c"]], "identity_text": "Process ALTER TABLE ONLY ADD COLUMN IF NOT EXISTS correctly (Greg Stark)", "commit_aliases": ["1075dfdaf", "128ce8e1a", "5668afeb6", "9e6cd794c"], "source_commits": ["5668afeb6"], "source_entry_id": "9.6.12/changes/021", "db_id": "51d6a40cc69819082a29361039835f9e", "patch_ids": ["063549864fc22ebd7e40076d02a3a70b"], "statement_hash": "47d1943ba70c7f7ee2e1a3492c4f94b1668eeb3d0ae86f0c731f95fda73d0c5a", "relations": [{"rule": 2, "type": "equivalent", "target": "05574ca3c29fd117c2026c3442f3977c", "evidence": {"same_day": true, "patch_ids": ["063549864fc22ebd7e40076d02a3a70b"], "statement_hash": "47d1943ba70c7f7ee2e1a3492c4f94b1668eeb3d0ae86f0c731f95fda73d0c5a"}}, {"rule": 2, "type": "equivalent", "target": "b31a28e4ddb742d46bb2b651aff41729", "evidence": {"same_day": true, "patch_ids": ["063549864fc22ebd7e40076d02a3a70b"], "statement_hash": "47d1943ba70c7f7ee2e1a3492c4f94b1668eeb3d0ae86f0c731f95fda73d0c5a"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b31a28e4ddb742d46bb2b651aff41729", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "正确处理 ALTER TABLE ONLY ADD COLUMN IF NOT EXISTS", "evidence": {"same_day": true, "patch_ids": ["063549864fc22ebd7e40076d02a3a70b"], "statement_hash": "47d1943ba70c7f7ee2e1a3492c4f94b1668eeb3d0ae86f0c731f95fda73d0c5a"}, "url": "/docs/compare/?release=11.2#11.2-e1c83a7b9a0b1f58", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "05574ca3c29fd117c2026c3442f3977c", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "正确处理 ALTER TABLE ONLY ADD COLUMN IF NOT EXISTS", "evidence": {"same_day": true, "patch_ids": ["063549864fc22ebd7e40076d02a3a70b"], "statement_hash": "47d1943ba70c7f7ee2e1a3492c4f94b1668eeb3d0ae86f0c731f95fda73d0c5a"}, "url": "/docs/compare/?release=10.7#10.7-e1c83a7b9a0b1f58", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}]}, {"id": "9.6.12-1a47f779c74d6724", "cves": [], "html": "<p>允许在热备模式下执行 <code>UNLISTEN</code>（Shay Rojansky）</p>\n<p>这必然是无操作，因为热备模式下不允许 <code>LISTEN</code>；但允许这个哑操作可以简化客户端的会话状态重置逻辑。</p>", "text": "允许在热备模式下执行 UNLISTEN（Shay Rojansky） 这必然是无操作，因为热备模式下不允许 LISTEN；但允许这个哑操作可以简化客户端的会话状态重置逻辑。", "title": "允许在热备模式下执行 UNLISTEN", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "f2739f22ad3cfc1b9e5a3920a824db91e8cd767312852a2aed69c3cac6e40c4e", "section_path": ["变更"], "commit_groups": [["0d5b27351", "549d2a238", "741ee4890", "c0aed6959", "e8ec19cd1", "ebfe20dc7"]], "identity_text": "Allow UNLISTEN in hot-standby mode (Shay Rojansky) This is necessarily a no-op, because LISTEN isn't allowed in hot-standby mode; but allowing the dummy operation simplifies session-state-reset logic in clients.", "commit_aliases": ["0d5b27351", "549d2a238", "741ee4890", "c0aed6959", "e8ec19cd1", "ebfe20dc7"], "source_commits": ["0d5b27351"], "source_entry_id": "9.6.12/changes/022", "db_id": "94cef92c80be30a48888bcd91173fd61", "patch_ids": ["2ba9a4b7c4ee7927fd90c84d2f4a9f19"], "statement_hash": "fab9e03189f5d0663ef17e90457644cd321e734ecc54c35abcee773819afdb55", "relations": [{"rule": 2, "type": "equivalent", "target": "6625060b7927b8eafc9245abfea8044c", "evidence": {"same_day": true, "patch_ids": ["2ba9a4b7c4ee7927fd90c84d2f4a9f19"], "statement_hash": "fab9e03189f5d0663ef17e90457644cd321e734ecc54c35abcee773819afdb55"}}, {"rule": 2, "type": "equivalent", "target": "708768e253446bd06415b86a54662152", "evidence": {"same_day": true, "patch_ids": ["2ba9a4b7c4ee7927fd90c84d2f4a9f19"], "statement_hash": "fab9e03189f5d0663ef17e90457644cd321e734ecc54c35abcee773819afdb55"}}, {"rule": 2, "type": "equivalent", "target": "7b8867c396479789254d6f0f60c9c8bd", "evidence": {"same_day": true, "patch_ids": ["2ba9a4b7c4ee7927fd90c84d2f4a9f19"], "statement_hash": "fab9e03189f5d0663ef17e90457644cd321e734ecc54c35abcee773819afdb55"}}, {"rule": 2, "type": "equivalent", "target": "e2fccb10c50ec1ea815a44f2d6f7296c", "evidence": {"same_day": true, "patch_ids": ["2ba9a4b7c4ee7927fd90c84d2f4a9f19"], "statement_hash": "fab9e03189f5d0663ef17e90457644cd321e734ecc54c35abcee773819afdb55"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e2fccb10c50ec1ea815a44f2d6f7296c", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "允许在热备模式下执行 UNLISTEN", "evidence": {"same_day": true, "patch_ids": ["2ba9a4b7c4ee7927fd90c84d2f4a9f19"], "statement_hash": "fab9e03189f5d0663ef17e90457644cd321e734ecc54c35abcee773819afdb55"}, "url": "/docs/compare/?release=11.2#11.2-1a47f779c74d6724", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "708768e253446bd06415b86a54662152", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "允许在热备模式下执行 UNLISTEN", "evidence": {"same_day": true, "patch_ids": ["2ba9a4b7c4ee7927fd90c84d2f4a9f19"], "statement_hash": "fab9e03189f5d0663ef17e90457644cd321e734ecc54c35abcee773819afdb55"}, "url": "/docs/compare/?release=10.7#10.7-1a47f779c74d6724", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "7b8867c396479789254d6f0f60c9c8bd", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "允许在热备模式下执行 UNLISTEN", "evidence": {"same_day": true, "patch_ids": ["2ba9a4b7c4ee7927fd90c84d2f4a9f19"], "statement_hash": "fab9e03189f5d0663ef17e90457644cd321e734ecc54c35abcee773819afdb55"}, "url": "/docs/compare/?release=9.5.16#9.5.16-1a47f779c74d6724", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "6625060b7927b8eafc9245abfea8044c", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "允许在热备模式下执行 UNLISTEN", "evidence": {"same_day": true, "patch_ids": ["2ba9a4b7c4ee7927fd90c84d2f4a9f19"], "statement_hash": "fab9e03189f5d0663ef17e90457644cd321e734ecc54c35abcee773819afdb55"}, "url": "/docs/compare/?release=9.4.21#9.4.21-1a47f779c74d6724", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-3b43e6814038026c", "cves": [], "html": "<p>修复某些模式和数据类型权限列表中缺失的角色依赖（Tom Lane）</p>\n<p>某些情况下可以删除已被授予权限的角色。这不会立即造成问题，但之后的转储/恢复或升级会失败，症状涉及尝试向全数字角色名授予权限。</p>", "text": "修复某些模式和数据类型权限列表中缺失的角色依赖（Tom Lane） 某些情况下可以删除已被授予权限的角色。这不会立即造成问题，但之后的转储/恢复或升级会失败，症状涉及尝试向全数字角色名授予权限。", "title": "修复某些模式和数据类型权限列表中缺失的角色依赖", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "14c30d6b1c3223bd20a46e90d3ce35fe4a7fe9a889b2dd2b10b0eec47ca6284c", "section_path": ["变更"], "commit_groups": [["1b55acb2c", "277602dfe", "2d83863ea", "47088c599", "d431dff1a", "fa2952d8e"]], "identity_text": "Fix missing role dependencies in some schema and data type permissions lists (Tom Lane) In some cases it was possible to drop a role to which permissions had been granted. This caused no immediate problem, but a subsequent dump/reload or upgrade would fail, with symptoms involving attempts to grant privileges to all-numeric role names.", "commit_aliases": ["1b55acb2c", "277602dfe", "2d83863ea", "47088c599", "d431dff1a", "fa2952d8e"], "source_commits": ["d431dff1a"], "source_entry_id": "9.6.12/changes/023", "db_id": "41a2c2a31ea2bddf0ea59232dc00f373", "patch_ids": ["5ac55c03b44ba05b76a8d540ef004213"], "statement_hash": "982275dc540653641963ac36ffa17bd21b9593ff3ec13e97427705b369dba8ac", "relations": [{"rule": 2, "type": "equivalent", "target": "1f9dbe8d83e50c9dfbb8a4a84ac9cf3c", "evidence": {"same_day": true, "patch_ids": ["5ac55c03b44ba05b76a8d540ef004213"], "statement_hash": "982275dc540653641963ac36ffa17bd21b9593ff3ec13e97427705b369dba8ac"}}, {"rule": 2, "type": "equivalent", "target": "4c08124dc69c204f4ca81d42af9564a8", "evidence": {"same_day": true, "patch_ids": ["5ac55c03b44ba05b76a8d540ef004213"], "statement_hash": "982275dc540653641963ac36ffa17bd21b9593ff3ec13e97427705b369dba8ac"}}, {"rule": 2, "type": "equivalent", "target": "4eda5d9ab12a7448ef8e5446fd8c876b", "evidence": {"same_day": true, "patch_ids": ["5ac55c03b44ba05b76a8d540ef004213"], "statement_hash": "982275dc540653641963ac36ffa17bd21b9593ff3ec13e97427705b369dba8ac"}}, {"rule": 2, "type": "equivalent", "target": "f3a1e2db616132bd97c4a5cbf0c40e7d", "evidence": {"same_day": true, "patch_ids": ["5ac55c03b44ba05b76a8d540ef004213"], "statement_hash": "982275dc540653641963ac36ffa17bd21b9593ff3ec13e97427705b369dba8ac"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4c08124dc69c204f4ca81d42af9564a8", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复某些模式和数据类型权限列表中缺失的角色依赖关系", "evidence": {"same_day": true, "patch_ids": ["5ac55c03b44ba05b76a8d540ef004213"], "statement_hash": "982275dc540653641963ac36ffa17bd21b9593ff3ec13e97427705b369dba8ac"}, "url": "/docs/compare/?release=11.2#11.2-dfe979458f83b322", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "f3a1e2db616132bd97c4a5cbf0c40e7d", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复某些模式和数据类型权限列表中缺失的角色依赖关系", "evidence": {"same_day": true, "patch_ids": ["5ac55c03b44ba05b76a8d540ef004213"], "statement_hash": "982275dc540653641963ac36ffa17bd21b9593ff3ec13e97427705b369dba8ac"}, "url": "/docs/compare/?release=10.7#10.7-dfe979458f83b322", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "1f9dbe8d83e50c9dfbb8a4a84ac9cf3c", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复某些模式和数据类型权限列表中缺失的角色依赖", "evidence": {"same_day": true, "patch_ids": ["5ac55c03b44ba05b76a8d540ef004213"], "statement_hash": "982275dc540653641963ac36ffa17bd21b9593ff3ec13e97427705b369dba8ac"}, "url": "/docs/compare/?release=9.5.16#9.5.16-3b43e6814038026c", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "4eda5d9ab12a7448ef8e5446fd8c876b", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复某些模式和数据类型权限列表中缺失的角色依赖", "evidence": {"same_day": true, "patch_ids": ["5ac55c03b44ba05b76a8d540ef004213"], "statement_hash": "982275dc540653641963ac36ffa17bd21b9593ff3ec13e97427705b369dba8ac"}, "url": "/docs/compare/?release=9.4.21#9.4.21-3b43e6814038026c", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-bb1f101ee0e36ad6", "cves": [], "html": "<p>确保添加或删除外键约束之后正确更新关系缓存（Álvaro Herrera）</p>\n<p>这一疏漏可能导致现有会话不强制执行新创建的约束，或继续执行已删除的约束。</p>", "text": "确保添加或删除外键约束之后正确更新关系缓存（Álvaro Herrera） 这一疏漏可能导致现有会话不强制执行新创建的约束，或继续执行已删除的约束。", "title": "确保添加或删除外键约束之后正确更新关系缓存", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "56a6c9bfa6332052fd0abb1a169e4d62879cc577e7e428769f4f2848f18f84fe", "section_path": ["变更"], "commit_groups": [["175544093", "3037b28b8", "4aead13a7", "a7474308c"]], "identity_text": "Ensure relation caches are updated properly after adding or removing foreign key constraints (Álvaro Herrera) This oversight could result in existing sessions failing to enforce a newly-created constraint, or continuing to enforce a dropped one.", "commit_aliases": ["175544093", "3037b28b8", "4aead13a7", "a7474308c"], "source_commits": ["4aead13a7"], "source_entry_id": "9.6.12/changes/024", "db_id": "00289d4db334fdf1a8dc3f4d3a21fb6c", "patch_ids": ["d8a9a38d943fcf8f400781692c269c0b"], "statement_hash": "e723d7f49c95547859d07c3caa1f705292f4f24277633e1f88d4a5c6fe24c14e", "relations": [{"rule": 2, "type": "equivalent", "target": "59723bb6b9cc629a6f8659a89c131621", "evidence": {"same_day": true, "patch_ids": ["d8a9a38d943fcf8f400781692c269c0b"], "statement_hash": "e723d7f49c95547859d07c3caa1f705292f4f24277633e1f88d4a5c6fe24c14e"}}, {"rule": 2, "type": "equivalent", "target": "fb40ba7003991694953cb37c5e1b7a24", "evidence": {"same_day": true, "patch_ids": ["d8a9a38d943fcf8f400781692c269c0b"], "statement_hash": "e723d7f49c95547859d07c3caa1f705292f4f24277633e1f88d4a5c6fe24c14e"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fb40ba7003991694953cb37c5e1b7a24", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "确保添加或移除外键约束后正确更新关系缓存", "evidence": {"same_day": true, "patch_ids": ["d8a9a38d943fcf8f400781692c269c0b"], "statement_hash": "e723d7f49c95547859d07c3caa1f705292f4f24277633e1f88d4a5c6fe24c14e"}, "url": "/docs/compare/?release=11.2#11.2-164e25e6d677c5e2", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "59723bb6b9cc629a6f8659a89c131621", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "确保添加或移除外键约束后正确更新关系缓存", "evidence": {"same_day": true, "patch_ids": ["d8a9a38d943fcf8f400781692c269c0b"], "statement_hash": "e723d7f49c95547859d07c3caa1f705292f4f24277633e1f88d4a5c6fe24c14e"}, "url": "/docs/compare/?release=10.7#10.7-164e25e6d677c5e2", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}]}, {"id": "9.6.12-58effc13a3cc301f", "cves": [], "html": "<p>确保重命名约束之后正确更新关系缓存（Amit Langote）</p>", "text": "确保重命名约束之后正确更新关系缓存（Amit Langote）", "title": "确保重命名约束之后正确更新关系缓存", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "5e42bf51399ea051aa38151bc0b3b244289a3e7f2214d8f33e5f8db73c357746", "section_path": ["变更"], "commit_groups": [["25b8094d3", "5812be7b6", "b13fd344c", "d5d86e2cd", "d79cd555d", "da13d90a5"], ["419bd6371", "67915fb8e", "696c68c2b", "91fc2a088", "c7567e09d", "e83e0988d"]], "identity_text": "Ensure relation caches are updated properly after renaming constraints (Amit Langote)", "commit_aliases": ["25b8094d3", "419bd6371", "5812be7b6", "67915fb8e", "696c68c2b", "91fc2a088", "b13fd344c", "c7567e09d", "d5d86e2cd", "d79cd555d", "da13d90a5", "e83e0988d"], "source_commits": ["419bd6371", "d79cd555d"], "source_entry_id": "9.6.12/changes/025", "db_id": "9177ddb98c6a588683d9d46ee0f12f8b", "patch_ids": ["7935b6f19f2fafdf66a2920f71fb4433", "c5b90155b42004f82cd49beca064ac22"], "statement_hash": "d7ae29c47b4519923e1534ecb7ceb8cfb548cebcf38d4650ad194e41161a23ea", "relations": [{"rule": 2, "type": "equivalent", "target": "8ae7a2b7e62bf1b39ef2e189d295ef75", "evidence": {"same_day": true, "patch_ids": ["7935b6f19f2fafdf66a2920f71fb4433", "c5b90155b42004f82cd49beca064ac22"], "statement_hash": "d7ae29c47b4519923e1534ecb7ceb8cfb548cebcf38d4650ad194e41161a23ea"}}, {"rule": 2, "type": "equivalent", "target": "af9014d4600b1600abbfdce2728a3606", "evidence": {"same_day": true, "patch_ids": ["7935b6f19f2fafdf66a2920f71fb4433", "c5b90155b42004f82cd49beca064ac22"], "statement_hash": "d7ae29c47b4519923e1534ecb7ceb8cfb548cebcf38d4650ad194e41161a23ea"}}, {"rule": 2, "type": "equivalent", "target": "b092e5abaaa4e2a09d95b524be4dcf6a", "evidence": {"same_day": true, "patch_ids": ["7935b6f19f2fafdf66a2920f71fb4433", "c5b90155b42004f82cd49beca064ac22"], "statement_hash": "d7ae29c47b4519923e1534ecb7ceb8cfb548cebcf38d4650ad194e41161a23ea"}}, {"rule": 2, "type": "equivalent", "target": "ea437fbace73394111d185889a2c5941", "evidence": {"same_day": true, "patch_ids": ["7935b6f19f2fafdf66a2920f71fb4433", "c5b90155b42004f82cd49beca064ac22"], "statement_hash": "d7ae29c47b4519923e1534ecb7ceb8cfb548cebcf38d4650ad194e41161a23ea"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8ae7a2b7e62bf1b39ef2e189d295ef75", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "确保重命名约束后正确更新关系缓存", "evidence": {"same_day": true, "patch_ids": ["7935b6f19f2fafdf66a2920f71fb4433", "c5b90155b42004f82cd49beca064ac22"], "statement_hash": "d7ae29c47b4519923e1534ecb7ceb8cfb548cebcf38d4650ad194e41161a23ea"}, "url": "/docs/compare/?release=11.2#11.2-71386491ae57fa0d", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "ea437fbace73394111d185889a2c5941", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "确保重命名约束后正确更新关系缓存", "evidence": {"same_day": true, "patch_ids": ["7935b6f19f2fafdf66a2920f71fb4433", "c5b90155b42004f82cd49beca064ac22"], "statement_hash": "d7ae29c47b4519923e1534ecb7ceb8cfb548cebcf38d4650ad194e41161a23ea"}, "url": "/docs/compare/?release=10.7#10.7-71386491ae57fa0d", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "af9014d4600b1600abbfdce2728a3606", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "确保重命名约束之后正确更新关系缓存", "evidence": {"same_day": true, "patch_ids": ["7935b6f19f2fafdf66a2920f71fb4433", "c5b90155b42004f82cd49beca064ac22"], "statement_hash": "d7ae29c47b4519923e1534ecb7ceb8cfb548cebcf38d4650ad194e41161a23ea"}, "url": "/docs/compare/?release=9.5.16#9.5.16-58effc13a3cc301f", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "b092e5abaaa4e2a09d95b524be4dcf6a", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "确保重命名约束后关系缓存被正确更新", "evidence": {"same_day": true, "patch_ids": ["7935b6f19f2fafdf66a2920f71fb4433", "c5b90155b42004f82cd49beca064ac22"], "statement_hash": "d7ae29c47b4519923e1534ecb7ceb8cfb548cebcf38d4650ad194e41161a23ea"}, "url": "/docs/compare/?release=9.4.21#9.4.21-70e42571f10e957a", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-c879f8068116d476", "cves": [], "html": "<p>让自动清理更积极地移除遗留的临时表，并在 <code>DISCARD TEMP</code> 期间也移除遗留临时表（Álvaro Herrera）</p>\n<p>这有助于确保崩溃会话的残留更及时地被清理。</p>", "text": "让自动清理更积极地移除遗留的临时表，并在 DISCARD TEMP 期间也移除遗留临时表（Álvaro Herrera） 这有助于确保崩溃会话的残留更及时地被清理。", "title": "让自动清理更积极地移除遗留的临时表，并在 DISCARD TEMP 期间也移除遗留临时表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "8f26a05930277b7cbd2ce4134407188d8ec7f3178c3534dc27ed97b0e5638a4c", "section_path": ["变更"], "commit_groups": [["2602838fa", "3c4ca2109", "aa2e84d2c", "b7258a30a"], ["5199abaca", "7fc2363a6", "a6ca47cd2", "a85045ccc"]], "identity_text": "Make autovacuum more aggressive about removing leftover temporary tables, and also remove leftover temporary tables during DISCARD TEMP (Álvaro Herrera) This helps ensure that remnants from a crashed session are cleaned up more promptly.", "commit_aliases": ["2602838fa", "3c4ca2109", "5199abaca", "7fc2363a6", "a6ca47cd2", "a85045ccc", "aa2e84d2c", "b7258a30a"], "source_commits": ["7fc2363a6", "aa2e84d2c"], "source_entry_id": "9.6.12/changes/026", "db_id": "9de8f5cc1ca5851f7e58bbc5ae8dd71d", "patch_ids": ["455619fed1294a8366e80fef6d18238d", "68bb75b8f35bfc70496671d38a09f9e6"], "statement_hash": "1fb426492ae09d2a8ff21ddf8a115c37390e99ec874d4dc94156d74a5246372f", "relations": [{"rule": 2, "type": "equivalent", "target": "05ef076011bdfb0351d7a612d523f872", "evidence": {"same_day": true, "patch_ids": ["455619fed1294a8366e80fef6d18238d", "68bb75b8f35bfc70496671d38a09f9e6"], "statement_hash": "1fb426492ae09d2a8ff21ddf8a115c37390e99ec874d4dc94156d74a5246372f"}}, {"rule": 2, "type": "equivalent", "target": "40eaccd78b6f81b22d8851702823f7aa", "evidence": {"same_day": true, "patch_ids": ["455619fed1294a8366e80fef6d18238d", "68bb75b8f35bfc70496671d38a09f9e6"], "statement_hash": "1fb426492ae09d2a8ff21ddf8a115c37390e99ec874d4dc94156d74a5246372f"}}, {"rule": 2, "type": "equivalent", "target": "df3a9825a1e11da00e756da6cd5ab7b8", "evidence": {"same_day": true, "patch_ids": ["455619fed1294a8366e80fef6d18238d", "68bb75b8f35bfc70496671d38a09f9e6"], "statement_hash": "1fb426492ae09d2a8ff21ddf8a115c37390e99ec874d4dc94156d74a5246372f"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "df3a9825a1e11da00e756da6cd5ab7b8", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "使自动清理更积极地移除残留临时表，并在 DISCARD TEMP 期间也移除残留临时表", "evidence": {"same_day": true, "patch_ids": ["455619fed1294a8366e80fef6d18238d", "68bb75b8f35bfc70496671d38a09f9e6"], "statement_hash": "1fb426492ae09d2a8ff21ddf8a115c37390e99ec874d4dc94156d74a5246372f"}, "url": "/docs/compare/?release=10.7#10.7-8c06144b06267ae2", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "05ef076011bdfb0351d7a612d523f872", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "让自动清理更积极地移除遗留的临时表，并在 DISCARD TEMP 期间也移除遗留临时表", "evidence": {"same_day": true, "patch_ids": ["455619fed1294a8366e80fef6d18238d", "68bb75b8f35bfc70496671d38a09f9e6"], "statement_hash": "1fb426492ae09d2a8ff21ddf8a115c37390e99ec874d4dc94156d74a5246372f"}, "url": "/docs/compare/?release=9.5.16#9.5.16-c879f8068116d476", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "40eaccd78b6f81b22d8851702823f7aa", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "让自动清理更积极地移除遗留的临时表，并在 DISCARD TEMP 期间也移除遗留临时表", "evidence": {"same_day": true, "patch_ids": ["455619fed1294a8366e80fef6d18238d", "68bb75b8f35bfc70496671d38a09f9e6"], "statement_hash": "1fb426492ae09d2a8ff21ddf8a115c37390e99ec874d4dc94156d74a5246372f"}, "url": "/docs/compare/?release=9.4.21#9.4.21-c879f8068116d476", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-78648dac41d14a75", "cves": [], "html": "<p>修复 GiST 索引微清理操作的重放，使并发热备查询不会看到不一致状态（Alexander Korotkov）</p>", "text": "修复 GiST 索引微清理操作的重放，使并发热备查询不会看到不一致状态（Alexander Korotkov）", "title": "修复 GiST 索引微清理操作的重放，使并发热备查询不会看到不一致状态", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "8961a838a0dc6011e793ab2ffb74d41072b449423f0a90acfa79ec856bb8bbad", "section_path": ["变更"], "commit_groups": [["1b0280745", "8193d6407", "c952eae52", "e36e25275"]], "identity_text": "Fix replay of GiST index micro-vacuum operations so that concurrent hot-standby queries do not see inconsistent state (Alexander Korotkov)", "commit_aliases": ["1b0280745", "8193d6407", "c952eae52", "e36e25275"], "source_commits": ["1b0280745"], "source_entry_id": "9.6.12/changes/027", "db_id": "8eab3e555bce0c6aa019dc4192091b7f", "patch_ids": ["d78e6d59ffb4bbd58e6d6511e5d54332"], "statement_hash": "af3585138edab9cb2e907b81daca20defd0d398ccf6d1720fd92cc3c669adea0", "relations": [{"rule": 2, "type": "equivalent", "target": "72a5cf79aac0d860693d22d5302f360a", "evidence": {"same_day": true, "patch_ids": ["d78e6d59ffb4bbd58e6d6511e5d54332"], "statement_hash": "af3585138edab9cb2e907b81daca20defd0d398ccf6d1720fd92cc3c669adea0"}}, {"rule": 2, "type": "equivalent", "target": "967e5c5fcbb35be2b126afbc4f2ca02e", "evidence": {"same_day": true, "patch_ids": ["d78e6d59ffb4bbd58e6d6511e5d54332"], "statement_hash": "af3585138edab9cb2e907b81daca20defd0d398ccf6d1720fd92cc3c669adea0"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "72a5cf79aac0d860693d22d5302f360a", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复 GiST 索引微清理操作的重放，使并发热备查询不会看到不一致状态", "evidence": {"same_day": true, "patch_ids": ["d78e6d59ffb4bbd58e6d6511e5d54332"], "statement_hash": "af3585138edab9cb2e907b81daca20defd0d398ccf6d1720fd92cc3c669adea0"}, "url": "/docs/compare/?release=11.2#11.2-78648dac41d14a75", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "967e5c5fcbb35be2b126afbc4f2ca02e", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复 GiST 索引微清理操作的重放，使并发热备查询不会看到不一致状态", "evidence": {"same_day": true, "patch_ids": ["d78e6d59ffb4bbd58e6d6511e5d54332"], "statement_hash": "af3585138edab9cb2e907b81daca20defd0d398ccf6d1720fd92cc3c669adea0"}, "url": "/docs/compare/?release=10.7#10.7-78648dac41d14a75", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}]}, {"id": "9.6.12-baf0199c82e59955", "cves": [], "html": "<p>防止空 GIN 索引页被过快回收导致并发搜索失败（Andrey Borodin、Alexander Korotkov）</p>", "text": "防止空 GIN 索引页被过快回收导致并发搜索失败（Andrey Borodin、Alexander Korotkov）", "title": "防止空 GIN 索引页被过快回收导致并发搜索失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "8ddbfce89baacc0720052e2b2597e09a1346df0e4a2c1b5de43c0294f5751a90", "section_path": ["变更"], "commit_groups": [["1cf175c74", "52ac6cd2d", "a0696d295", "ad6ebcfcb", "cd24b4eae", "dd951dc34"]], "identity_text": "Prevent empty GIN index pages from being reclaimed too quickly, causing failures of concurrent searches (Andrey Borodin, Alexander Korotkov)", "commit_aliases": ["1cf175c74", "52ac6cd2d", "a0696d295", "ad6ebcfcb", "cd24b4eae", "dd951dc34"], "source_commits": ["cd24b4eae"], "source_entry_id": "9.6.12/changes/028", "db_id": "e9ee59ea363bbacadc9b0ff06e603540", "patch_ids": ["176f89fff105e5b2fb146ac5afff4bea"], "statement_hash": "b7681bb53c5466ddf4658caa76606878d987b0c82da15b58354e7021e3bf06bc", "relations": [{"rule": 2, "type": "equivalent", "target": "3b43bca06e3d86d77965231396d53731", "evidence": {"same_day": true, "patch_ids": ["176f89fff105e5b2fb146ac5afff4bea"], "statement_hash": "b7681bb53c5466ddf4658caa76606878d987b0c82da15b58354e7021e3bf06bc"}}, {"rule": 2, "type": "equivalent", "target": "c67eaad49f3b340ee599e655c5022f9c", "evidence": {"same_day": true, "patch_ids": ["176f89fff105e5b2fb146ac5afff4bea"], "statement_hash": "b7681bb53c5466ddf4658caa76606878d987b0c82da15b58354e7021e3bf06bc"}}, {"rule": 2, "type": "equivalent", "target": "e4e38acaedb25796b89997c3ca1e52ee", "evidence": {"same_day": true, "patch_ids": ["176f89fff105e5b2fb146ac5afff4bea"], "statement_hash": "b7681bb53c5466ddf4658caa76606878d987b0c82da15b58354e7021e3bf06bc"}}, {"rule": 2, "type": "equivalent", "target": "fa9d017f7b5fe28f0e3b15789d1f24f7", "evidence": {"same_day": true, "patch_ids": ["176f89fff105e5b2fb146ac5afff4bea"], "statement_hash": "b7681bb53c5466ddf4658caa76606878d987b0c82da15b58354e7021e3bf06bc"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa9d017f7b5fe28f0e3b15789d1f24f7", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "防止过快回收空 GIN 索引页而导致并发搜索失败", "evidence": {"same_day": true, "patch_ids": ["176f89fff105e5b2fb146ac5afff4bea"], "statement_hash": "b7681bb53c5466ddf4658caa76606878d987b0c82da15b58354e7021e3bf06bc"}, "url": "/docs/compare/?release=11.2#11.2-7e0da53694738bdb", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "c67eaad49f3b340ee599e655c5022f9c", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "防止过快回收空 GIN 索引页而导致并发搜索失败", "evidence": {"same_day": true, "patch_ids": ["176f89fff105e5b2fb146ac5afff4bea"], "statement_hash": "b7681bb53c5466ddf4658caa76606878d987b0c82da15b58354e7021e3bf06bc"}, "url": "/docs/compare/?release=10.7#10.7-7e0da53694738bdb", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "3b43bca06e3d86d77965231396d53731", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "防止空 GIN 索引页被过快回收导致并发搜索失败", "evidence": {"same_day": true, "patch_ids": ["176f89fff105e5b2fb146ac5afff4bea"], "statement_hash": "b7681bb53c5466ddf4658caa76606878d987b0c82da15b58354e7021e3bf06bc"}, "url": "/docs/compare/?release=9.5.16#9.5.16-baf0199c82e59955", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "e4e38acaedb25796b89997c3ca1e52ee", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "防止空的 GIN 索引页被过快回收而导致并发搜索失败", "evidence": {"same_day": true, "patch_ids": ["176f89fff105e5b2fb146ac5afff4bea"], "statement_hash": "b7681bb53c5466ddf4658caa76606878d987b0c82da15b58354e7021e3bf06bc"}, "url": "/docs/compare/?release=9.4.21#9.4.21-7ee7e7bb88d5bc6e", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-43085d804c0ed040", "cves": [], "html": "<p>修复浮点到整数强制转换的边界失败（Andrew Gierth、Tom Lane）</p>\n<p>略高于最大有效整数值的值可能未被拒绝，随后发生溢出，产生最小有效整数。另外，本应舍入到最小或最大整数值的值可能被错误拒绝。</p>", "text": "修复浮点到整数强制转换的边界失败（Andrew Gierth、Tom Lane） 略高于最大有效整数值的值可能未被拒绝，随后发生溢出，产生最小有效整数。另外，本应舍入到最小或最大整数值的值可能被错误拒绝。", "title": "修复浮点到整数强制转换的边界失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "3b74196a392cc448f3622f909708f5cc10e7dc805359d1aca611a80b948820c3", "section_path": ["变更"], "commit_groups": [["1e78603a5", "452b637d4", "93eec1238", "c382a2b66", "d5231253e", "e473e1f2b"], ["1f99d0867", "298510cae", "3645d3193", "745871483", "bf9fb00dd"], ["cbdb8b4c0"]], "identity_text": "Fix edge-case failures in float-to-integer coercions (Andrew Gierth, Tom Lane) Values very slightly above the maximum valid integer value might not be rejected, and then would overflow, producing the minimum valid integer instead. Also, values that should round to the minimum or maximum integer value might be incorrectly rejected.", "commit_aliases": ["1e78603a5", "1f99d0867", "298510cae", "3645d3193", "452b637d4", "745871483", "93eec1238", "bf9fb00dd", "c382a2b66", "cbdb8b4c0", "d5231253e", "e473e1f2b"], "source_commits": ["1f99d0867", "93eec1238", "cbdb8b4c0"], "source_entry_id": "9.6.12/changes/029", "db_id": "b50067b48d850e56dbdaf39760cde494", "patch_ids": ["2b7d199aea91cf666d8d1637425eeac9", "c7d5b25589c9e08d303a9743dcfebbb0", "e2b707cdc8d37ec8590791fd287e35d6"], "statement_hash": "892523caf934df8ab44c92ca64867536471202af374bae37e9065d5696806d8a", "relations": [{"rule": 2, "type": "equivalent", "target": "1ef0cef16e8053402d0790f6a3ac03aa", "evidence": {"same_day": true, "patch_ids": ["2b7d199aea91cf666d8d1637425eeac9", "c7d5b25589c9e08d303a9743dcfebbb0", "e2b707cdc8d37ec8590791fd287e35d6"], "statement_hash": "892523caf934df8ab44c92ca64867536471202af374bae37e9065d5696806d8a"}}, {"rule": 2, "type": "equivalent", "target": "81a2ae019c7c1966d10fc81a4d3110d8", "evidence": {"same_day": true, "patch_ids": ["2b7d199aea91cf666d8d1637425eeac9", "c7d5b25589c9e08d303a9743dcfebbb0", "e2b707cdc8d37ec8590791fd287e35d6"], "statement_hash": "892523caf934df8ab44c92ca64867536471202af374bae37e9065d5696806d8a"}}, {"rule": 2, "type": "equivalent", "target": "a8bc9a54d333b9c766b9cdd860ad0c9f", "evidence": {"same_day": true, "patch_ids": ["2b7d199aea91cf666d8d1637425eeac9", "c7d5b25589c9e08d303a9743dcfebbb0", "e2b707cdc8d37ec8590791fd287e35d6"], "statement_hash": "892523caf934df8ab44c92ca64867536471202af374bae37e9065d5696806d8a"}}, {"rule": 2, "type": "equivalent", "target": "bd715bf807d1e5defdffedec1ff0887b", "evidence": {"same_day": true, "patch_ids": ["2b7d199aea91cf666d8d1637425eeac9", "c7d5b25589c9e08d303a9743dcfebbb0", "e2b707cdc8d37ec8590791fd287e35d6"], "statement_hash": "892523caf934df8ab44c92ca64867536471202af374bae37e9065d5696806d8a"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bd715bf807d1e5defdffedec1ff0887b", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复浮点数到整数强制转换在边界情况下的失败", "evidence": {"same_day": true, "patch_ids": ["2b7d199aea91cf666d8d1637425eeac9", "c7d5b25589c9e08d303a9743dcfebbb0", "e2b707cdc8d37ec8590791fd287e35d6"], "statement_hash": "892523caf934df8ab44c92ca64867536471202af374bae37e9065d5696806d8a"}, "url": "/docs/compare/?release=11.2#11.2-b7ce5cf7a988fee2", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "81a2ae019c7c1966d10fc81a4d3110d8", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复浮点数到整数强制转换在边界情况下的失败", "evidence": {"same_day": true, "patch_ids": ["2b7d199aea91cf666d8d1637425eeac9", "c7d5b25589c9e08d303a9743dcfebbb0", "e2b707cdc8d37ec8590791fd287e35d6"], "statement_hash": "892523caf934df8ab44c92ca64867536471202af374bae37e9065d5696806d8a"}, "url": "/docs/compare/?release=10.7#10.7-b7ce5cf7a988fee2", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "a8bc9a54d333b9c766b9cdd860ad0c9f", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复浮点到整数强制转换的边界失败", "evidence": {"same_day": true, "patch_ids": ["2b7d199aea91cf666d8d1637425eeac9", "c7d5b25589c9e08d303a9743dcfebbb0", "e2b707cdc8d37ec8590791fd287e35d6"], "statement_hash": "892523caf934df8ab44c92ca64867536471202af374bae37e9065d5696806d8a"}, "url": "/docs/compare/?release=9.5.16#9.5.16-43085d804c0ed040", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "1ef0cef16e8053402d0790f6a3ac03aa", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复浮点到整数强制转换的边界失败", "evidence": {"same_day": true, "patch_ids": ["2b7d199aea91cf666d8d1637425eeac9", "c7d5b25589c9e08d303a9743dcfebbb0", "e2b707cdc8d37ec8590791fd287e35d6"], "statement_hash": "892523caf934df8ab44c92ca64867536471202af374bae37e9065d5696806d8a"}, "url": "/docs/compare/?release=9.4.21#9.4.21-43085d804c0ed040", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-362d535cb6a9376b", "cves": [], "html": "<p>发起 PAM 认证请求时，如果连接是通过 Unix 套接字的，不要设置 <code>PAM_RHOST</code> 变量（Thomas Munro）</p>\n<p>此前该变量会被设为 <code>[local]</code>，这至多是无益的，因为它本应是主机名。</p>", "text": "发起 PAM 认证请求时，如果连接是通过 Unix 套接字的，不要设置 PAM_RHOST 变量（Thomas Munro） 此前该变量会被设为 [local]，这至多是无益的，因为它本应是主机名。", "title": "发起 PAM 认证请求时，如果连接是通过 Unix 套接字的，不要设置 PAM_RHOST 变量", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "f213a2f75de9b71210f65ab65f6d8ae459685857505e9b10455084eb318f3956", "section_path": ["变更"], "commit_groups": [["0640d9517", "0f9cdd7dc", "63d835066", "96ed0b870"]], "identity_text": "When making a PAM authentication request, don't set the PAM_RHOST variable if the connection is via a Unix socket (Thomas Munro) Previously that variable would be set to [local], which is at best unhelpful, since it's supposed to be a host name.", "commit_aliases": ["0640d9517", "0f9cdd7dc", "63d835066", "96ed0b870"], "source_commits": ["63d835066"], "source_entry_id": "9.6.12/changes/030", "db_id": "617fef2ed4c2fe46e1d24b0b6b8d64ac", "patch_ids": ["0301ba2e94b667deb5c7d892fdff4bdf"], "statement_hash": "5ebeec1f20af33edad9645088b8b1f67ca3e3f6390737f6581ff21d209737736", "relations": [{"rule": 2, "type": "equivalent", "target": "0d3afc748597de6e131a78e20ddabe6a", "evidence": {"same_day": true, "patch_ids": ["0301ba2e94b667deb5c7d892fdff4bdf"], "statement_hash": "5ebeec1f20af33edad9645088b8b1f67ca3e3f6390737f6581ff21d209737736"}}, {"rule": 2, "type": "equivalent", "target": "f94b97490565b050b57d5e6caba7122c", "evidence": {"same_day": true, "patch_ids": ["0301ba2e94b667deb5c7d892fdff4bdf"], "statement_hash": "5ebeec1f20af33edad9645088b8b1f67ca3e3f6390737f6581ff21d209737736"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f94b97490565b050b57d5e6caba7122c", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "发起 PAM 认证请求时，如果连接通过 Unix 套接字建立，则不设置 PAM_RHOST 变量", "evidence": {"same_day": true, "patch_ids": ["0301ba2e94b667deb5c7d892fdff4bdf"], "statement_hash": "5ebeec1f20af33edad9645088b8b1f67ca3e3f6390737f6581ff21d209737736"}, "url": "/docs/compare/?release=11.2#11.2-fb252d9e3af35590", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "0d3afc748597de6e131a78e20ddabe6a", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "发起 PAM 认证请求时，如果连接通过 Unix 套接字建立，则不设置 PAM_RHOST 变量", "evidence": {"same_day": true, "patch_ids": ["0301ba2e94b667deb5c7d892fdff4bdf"], "statement_hash": "5ebeec1f20af33edad9645088b8b1f67ca3e3f6390737f6581ff21d209737736"}, "url": "/docs/compare/?release=10.7#10.7-fb252d9e3af35590", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}]}, {"id": "9.6.12-4af5d80e9c619b26", "cves": [], "html": "<p>禁止把 <code>client_min_messages</code> 设得比 <code>ERROR</code> 更高（Jonah Harris、Tom Lane）</p>\n<p>此前可以把该变量设为 <code>FATAL</code> 或 <code>PANIC</code>，效果是抑制向客户端传输普通错误消息。然而这违背了 <span>PostgreSQL</span> 线上协议规范中给出的保证，并导致一些客户端非常困惑。在已发布分支中，通过把这种设置静默地当作 <code>ERROR</code> 处理来修复。版本 12 及之后将彻底拒绝这些选项。</p>", "text": "禁止把 client_min_messages 设得比 ERROR 更高（Jonah Harris、Tom Lane） 此前可以把该变量设为 FATAL 或 PANIC，效果是抑制向客户端传输普通错误消息。然而这违背了 PostgreSQL 线上协议规范中给出的保证，并导致一些客户端非常困惑。在已发布分支中，通过把这种设置静默地当作 ERROR 处理来修复。版本 12 及之后将彻底拒绝这些选项。", "title": "禁止把 client_min_messages 设得比 ERROR 更高", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "6283b795fee8aa1a027a5e75e714ac86c0a2ff31d484fbef381c73d96ae75509", "section_path": ["变更"], "commit_groups": [["041ad9a66", "2407d4807", "3d360e20c", "7b08b4a8a", "88275ac19", "c09daa910"]], "identity_text": "Disallow setting client_min_messages higher than ERROR (Jonah Harris, Tom Lane) Previously, it was possible to set this variable to FATAL or PANIC, which had the effect of suppressing transmission of ordinary error messages to the client. However, that's contrary to guarantees that are given in the PostgreSQL wire protocol specification, and it caused some clients to become very confused. In released branches, fix this by silently treating such settings as meaning ERROR instead. Version 12 and later will reject those alternatives altogether.", "commit_aliases": ["041ad9a66", "2407d4807", "3d360e20c", "7b08b4a8a", "88275ac19", "c09daa910"], "source_commits": ["041ad9a66"], "source_entry_id": "9.6.12/changes/031", "db_id": "e48d0ef4451aa657e2263bc107d75299", "patch_ids": ["9a86cb436a2089c18bd5a31ec45c903e"], "statement_hash": "6ff305814c145e16d87d251b327ccae28792a746d8eb5bac329573c5a8792f73", "relations": [{"rule": 2, "type": "equivalent", "target": "00afac51149d596e81beb96b7961f8ac", "evidence": {"same_day": true, "patch_ids": ["9a86cb436a2089c18bd5a31ec45c903e"], "statement_hash": "6ff305814c145e16d87d251b327ccae28792a746d8eb5bac329573c5a8792f73"}}, {"rule": 2, "type": "equivalent", "target": "576a15adacf237a3eea4307a28cac774", "evidence": {"same_day": true, "patch_ids": ["9a86cb436a2089c18bd5a31ec45c903e"], "statement_hash": "6ff305814c145e16d87d251b327ccae28792a746d8eb5bac329573c5a8792f73"}}, {"rule": 2, "type": "equivalent", "target": "58f9c63185a21e00c0eb32062d09e85b", "evidence": {"same_day": true, "patch_ids": ["9a86cb436a2089c18bd5a31ec45c903e"], "statement_hash": "6ff305814c145e16d87d251b327ccae28792a746d8eb5bac329573c5a8792f73"}}, {"rule": 2, "type": "equivalent", "target": "d27351c52e3bcf245b344371ca961ac0", "evidence": {"same_day": true, "patch_ids": ["9a86cb436a2089c18bd5a31ec45c903e"], "statement_hash": "6ff305814c145e16d87d251b327ccae28792a746d8eb5bac329573c5a8792f73"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "58f9c63185a21e00c0eb32062d09e85b", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "禁止将 client_min_messages 设置为高于 ERROR 的级别", "evidence": {"same_day": true, "patch_ids": ["9a86cb436a2089c18bd5a31ec45c903e"], "statement_hash": "6ff305814c145e16d87d251b327ccae28792a746d8eb5bac329573c5a8792f73"}, "url": "/docs/compare/?release=11.2#11.2-0dc4426a09ca2188", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "00afac51149d596e81beb96b7961f8ac", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "禁止将 client_min_messages 设置为高于 ERROR 的级别", "evidence": {"same_day": true, "patch_ids": ["9a86cb436a2089c18bd5a31ec45c903e"], "statement_hash": "6ff305814c145e16d87d251b327ccae28792a746d8eb5bac329573c5a8792f73"}, "url": "/docs/compare/?release=10.7#10.7-0dc4426a09ca2188", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "576a15adacf237a3eea4307a28cac774", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "禁止把 client_min_messages 设得比 ERROR 更高", "evidence": {"same_day": true, "patch_ids": ["9a86cb436a2089c18bd5a31ec45c903e"], "statement_hash": "6ff305814c145e16d87d251b327ccae28792a746d8eb5bac329573c5a8792f73"}, "url": "/docs/compare/?release=9.5.16#9.5.16-4af5d80e9c619b26", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "d27351c52e3bcf245b344371ca961ac0", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "禁止把 client_min_messages 设得比 ERROR 更高", "evidence": {"same_day": true, "patch_ids": ["9a86cb436a2089c18bd5a31ec45c903e"], "statement_hash": "6ff305814c145e16d87d251b327ccae28792a746d8eb5bac329573c5a8792f73"}, "url": "/docs/compare/?release=9.4.21#9.4.21-4af5d80e9c619b26", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-24df55732709ec80", "cves": [], "html": "<p>修复 <span>ecpglib</span> 优先使用 <code>uselocale()</code> 或 <code>_configthreadlocale()</code> 而不是 <code>setlocale()</code>（Michael Meskes、Tom Lane）</p>\n<p>由于 <code>setlocale()</code> 不是线程局部的，甚至可能不是线程安全的，原来的编码在多线程 <span>ecpg</span> 应用中造成问题。</p>", "text": "修复 ecpglib 优先使用 uselocale() 或 _configthreadlocale() 而不是 setlocale()（Michael Meskes、Tom Lane） 由于 setlocale() 不是线程局部的，甚至可能不是线程安全的，原来的编码在多线程 ecpg 应用中造成问题。", "title": "修复 ecpglib 优先使用 uselocale() 或 _configthreadlocale() 而不是 setlocale()", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "338159133dcab8f457174d136f113eb4ed6436b518fa7b9013d8ba1793f94df0", "section_path": ["变更"], "commit_groups": [["1d334ab6e", "2cf91ccb7", "773f59440", "7ac0e71aa", "b620cf2d4", "dd815a94c"], ["6106f9dd7", "844d91fd6", "c9ff6cbfc", "eb3e90cad", "ee27584c4", "f305e8457"], ["8eb4a9312"]], "identity_text": "Fix ecpglib to use uselocale() or _configthreadlocale() in preference to setlocale() (Michael Meskes, Tom Lane) Since setlocale() is not thread-local, and might not even be thread-safe, the previous coding caused problems in multi-threaded ecpg applications.", "commit_aliases": ["1d334ab6e", "2cf91ccb7", "6106f9dd7", "773f59440", "7ac0e71aa", "844d91fd6", "8eb4a9312", "b620cf2d4", "c9ff6cbfc", "dd815a94c", "eb3e90cad", "ee27584c4", "f305e8457"], "source_commits": ["1d334ab6e", "8eb4a9312", "eb3e90cad"], "source_entry_id": "9.6.12/changes/032", "db_id": "33a6d563bd4b29c92a63f6b684bf6fb6", "patch_ids": ["4e535b9607623c7334107aea49d29b4c", "a13fd1c0b6e15010d5239deebefc848f", "c4411694bb26d3e522cd39983bc36b49"], "statement_hash": "4626b06fdf5f6400e94bcc1adf023536868d98d7ac8de44a216107da573db8b9", "relations": [{"rule": 2, "type": "equivalent", "target": "3f96a8054b473aa8da500d6b375865dd", "evidence": {"same_day": true, "patch_ids": ["4e535b9607623c7334107aea49d29b4c", "a13fd1c0b6e15010d5239deebefc848f", "c4411694bb26d3e522cd39983bc36b49"], "statement_hash": "4626b06fdf5f6400e94bcc1adf023536868d98d7ac8de44a216107da573db8b9"}}, {"rule": 2, "type": "equivalent", "target": "45d213b7196fa46471cd8cef8f127df4", "evidence": {"same_day": true, "patch_ids": ["4e535b9607623c7334107aea49d29b4c", "a13fd1c0b6e15010d5239deebefc848f", "c4411694bb26d3e522cd39983bc36b49"], "statement_hash": "4626b06fdf5f6400e94bcc1adf023536868d98d7ac8de44a216107da573db8b9"}}, {"rule": 2, "type": "equivalent", "target": "625b5b92d86d5f7ec6c3f0d1ad82c1fc", "evidence": {"same_day": true, "patch_ids": ["4e535b9607623c7334107aea49d29b4c", "a13fd1c0b6e15010d5239deebefc848f", "c4411694bb26d3e522cd39983bc36b49"], "statement_hash": "4626b06fdf5f6400e94bcc1adf023536868d98d7ac8de44a216107da573db8b9"}}, {"rule": 2, "type": "equivalent", "target": "de6c21cfe18fc1799ec8f7320e27e927", "evidence": {"same_day": true, "patch_ids": ["4e535b9607623c7334107aea49d29b4c", "a13fd1c0b6e15010d5239deebefc848f", "c4411694bb26d3e522cd39983bc36b49"], "statement_hash": "4626b06fdf5f6400e94bcc1adf023536868d98d7ac8de44a216107da573db8b9"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "de6c21cfe18fc1799ec8f7320e27e927", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复 ecpglib，使其优先使用 uselocale() 或 _configthreadlocale()，而非 setlocale()", "evidence": {"same_day": true, "patch_ids": ["4e535b9607623c7334107aea49d29b4c", "a13fd1c0b6e15010d5239deebefc848f", "c4411694bb26d3e522cd39983bc36b49"], "statement_hash": "4626b06fdf5f6400e94bcc1adf023536868d98d7ac8de44a216107da573db8b9"}, "url": "/docs/compare/?release=11.2#11.2-fd24e422418d0b2b", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "45d213b7196fa46471cd8cef8f127df4", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复 ecpglib，使其优先使用 uselocale() 或 _configthreadlocale()，而非 setlocale()", "evidence": {"same_day": true, "patch_ids": ["4e535b9607623c7334107aea49d29b4c", "a13fd1c0b6e15010d5239deebefc848f", "c4411694bb26d3e522cd39983bc36b49"], "statement_hash": "4626b06fdf5f6400e94bcc1adf023536868d98d7ac8de44a216107da573db8b9"}, "url": "/docs/compare/?release=10.7#10.7-fd24e422418d0b2b", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "625b5b92d86d5f7ec6c3f0d1ad82c1fc", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复 ecpglib 优先使用 uselocale() 或 _configthreadlocale() 而不是 setlocale()", "evidence": {"same_day": true, "patch_ids": ["4e535b9607623c7334107aea49d29b4c", "a13fd1c0b6e15010d5239deebefc848f", "c4411694bb26d3e522cd39983bc36b49"], "statement_hash": "4626b06fdf5f6400e94bcc1adf023536868d98d7ac8de44a216107da573db8b9"}, "url": "/docs/compare/?release=9.5.16#9.5.16-24df55732709ec80", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "3f96a8054b473aa8da500d6b375865dd", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复 ecpglib 优先使用 uselocale() 或 _configthreadlocale() 而不是 setlocale()", "evidence": {"same_day": true, "patch_ids": ["4e535b9607623c7334107aea49d29b4c", "a13fd1c0b6e15010d5239deebefc848f", "c4411694bb26d3e522cd39983bc36b49"], "statement_hash": "4626b06fdf5f6400e94bcc1adf023536868d98d7ac8de44a216107da573db8b9"}, "url": "/docs/compare/?release=9.4.21#9.4.21-24df55732709ec80", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-fc680b6513160f6d", "cves": [], "html": "<p>修复通过 <span>ecpg</span> <acronym>SQLDA</acronym>（SQL 描述符区域）传递的 numeric 数据的错误结果（Daisuke Higuchi）</p>\n<p>带前导零的值没有被正确复制。</p>", "text": "修复通过 ecpg SQLDA（SQL 描述符区域）传递的 numeric 数据的错误结果（Daisuke Higuchi） 带前导零的值没有被正确复制。", "title": "修复通过 ecpg SQLDA（SQL 描述符区域）传递的 numeric 数据的错误结果", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "aba1bd79306e14b0532491247b8d57a6e1deb69d9b192a7e292b7420e9888942", "section_path": ["变更"], "commit_groups": [["06c723447", "2e8ed4659", "41609776f", "4618fdd67", "68f30638a", "f9e25ba14"], ["32060f678", "68393f3fd", "9e5e3861c", "be38945c6", "e1f259012", "ecfd55795"]], "identity_text": "Fix incorrect results for numeric data passed through an ecpg SQLDA (SQL Descriptor Area) (Daisuke Higuchi) Values with leading zeroes were not copied correctly.", "commit_aliases": ["06c723447", "2e8ed4659", "32060f678", "41609776f", "4618fdd67", "68393f3fd", "68f30638a", "9e5e3861c", "be38945c6", "e1f259012", "ecfd55795", "f9e25ba14"], "source_commits": ["e1f259012", "f9e25ba14"], "source_entry_id": "9.6.12/changes/033", "db_id": "d5e68bd908a05fdb6610828b56036d0d", "patch_ids": ["3e2ed163afd32784067e11ef1d92585f", "d368ed5b1a0dbe4032c0bb31b6671f10"], "statement_hash": "d0a89e5e9f09f214e6300b13c4222fefbca457a005efe79f12366b4a5f55f797", "relations": [{"rule": 2, "type": "equivalent", "target": "01d435523e7c790e12b2b8dfcc84cbf6", "evidence": {"same_day": true, "patch_ids": ["3e2ed163afd32784067e11ef1d92585f", "d368ed5b1a0dbe4032c0bb31b6671f10"], "statement_hash": "d0a89e5e9f09f214e6300b13c4222fefbca457a005efe79f12366b4a5f55f797"}}, {"rule": 2, "type": "equivalent", "target": "0c9f1340d6467102413c6d9b3b8feb42", "evidence": {"same_day": true, "patch_ids": ["3e2ed163afd32784067e11ef1d92585f", "d368ed5b1a0dbe4032c0bb31b6671f10"], "statement_hash": "d0a89e5e9f09f214e6300b13c4222fefbca457a005efe79f12366b4a5f55f797"}}, {"rule": 2, "type": "equivalent", "target": "b1c1d33dbed698c77a751b8f391cc2d1", "evidence": {"same_day": true, "patch_ids": ["3e2ed163afd32784067e11ef1d92585f", "d368ed5b1a0dbe4032c0bb31b6671f10"], "statement_hash": "d0a89e5e9f09f214e6300b13c4222fefbca457a005efe79f12366b4a5f55f797"}}, {"rule": 2, "type": "equivalent", "target": "d9a5d1d2e05d9ec248430f8e7952bd18", "evidence": {"same_day": true, "patch_ids": ["3e2ed163afd32784067e11ef1d92585f", "d368ed5b1a0dbe4032c0bb31b6671f10"], "statement_hash": "d0a89e5e9f09f214e6300b13c4222fefbca457a005efe79f12366b4a5f55f797"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0c9f1340d6467102413c6d9b3b8feb42", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复通过 ecpg SQLDA（SQL 描述符区域）传递的数值数据结果不正确的问题", "evidence": {"same_day": true, "patch_ids": ["3e2ed163afd32784067e11ef1d92585f", "d368ed5b1a0dbe4032c0bb31b6671f10"], "statement_hash": "d0a89e5e9f09f214e6300b13c4222fefbca457a005efe79f12366b4a5f55f797"}, "url": "/docs/compare/?release=11.2#11.2-45dbc194b94f4cbe", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "01d435523e7c790e12b2b8dfcc84cbf6", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复通过 ecpg SQLDA（SQL 描述符区域）传递的数值数据结果不正确的问题", "evidence": {"same_day": true, "patch_ids": ["3e2ed163afd32784067e11ef1d92585f", "d368ed5b1a0dbe4032c0bb31b6671f10"], "statement_hash": "d0a89e5e9f09f214e6300b13c4222fefbca457a005efe79f12366b4a5f55f797"}, "url": "/docs/compare/?release=10.7#10.7-45dbc194b94f4cbe", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "d9a5d1d2e05d9ec248430f8e7952bd18", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复通过 ecpg SQLDA（SQL 描述符区域）传递的 numeric 数据的错误结果", "evidence": {"same_day": true, "patch_ids": ["3e2ed163afd32784067e11ef1d92585f", "d368ed5b1a0dbe4032c0bb31b6671f10"], "statement_hash": "d0a89e5e9f09f214e6300b13c4222fefbca457a005efe79f12366b4a5f55f797"}, "url": "/docs/compare/?release=9.5.16#9.5.16-fc680b6513160f6d", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "b1c1d33dbed698c77a751b8f391cc2d1", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复通过 ecpg SQLDA（SQL 描述符区域）传递的 numeric 数据的错误结果", "evidence": {"same_day": true, "patch_ids": ["3e2ed163afd32784067e11ef1d92585f", "d368ed5b1a0dbe4032c0bb31b6671f10"], "statement_hash": "d0a89e5e9f09f214e6300b13c4222fefbca457a005efe79f12366b4a5f55f797"}, "url": "/docs/compare/?release=9.4.21#9.4.21-fc680b6513160f6d", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-3deeec327fa572e8", "cves": [], "html": "<p>修复 <span>psql</span> 的 <code>\\g</code> <em><code>target</code></em> 元命令与 <code>COPY TO STDOUT</code> 配合工作的问题（Daniel Vérité）</p>\n<p>此前 <em><code>target</code></em> 选项被忽略，复制数据总是流向当前的查询输出目标。</p>", "text": "修复 psql 的 \\g target 元命令与 COPY TO STDOUT 配合工作的问题（Daniel Vérité） 此前 target 选项被忽略，复制数据总是流向当前的查询输出目标。", "title": "修复 psql 的 \\g target 元命令与 COPY TO STDOUT 配合工作的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "a371dcc7a0cf6388942f93044121f9509c8a48e4b32620f14523f28997e656c0", "section_path": ["变更"], "commit_groups": [["2c50c9f23", "6d3ede5f1", "8e97a97b3", "ae4c7d5ab", "cda1e27fb"]], "identity_text": "Fix psql's \\g target meta-command to work with COPY TO STDOUT (Daniel Vérité) Previously, the target option was ignored, so that the copy data always went to the current query output target.", "commit_aliases": ["2c50c9f23", "6d3ede5f1", "8e97a97b3", "ae4c7d5ab", "cda1e27fb"], "source_commits": ["ae4c7d5ab"], "source_entry_id": "9.6.12/changes/034", "db_id": "86760c4c16f03e7ced0f7f5cec09a558", "patch_ids": ["4c91209bf8d5d37142ccb5063814974e"], "statement_hash": "e7de5484878ce1791f25c1ff0718dd1d00c9e303b54d2186762352b724021130", "relations": [{"rule": 2, "type": "equivalent", "target": "7187c1ff9b64631a183928e454518eaf", "evidence": {"same_day": true, "patch_ids": ["4c91209bf8d5d37142ccb5063814974e"], "statement_hash": "e7de5484878ce1791f25c1ff0718dd1d00c9e303b54d2186762352b724021130"}}, {"rule": 2, "type": "equivalent", "target": "84ef57936d4146c8a22f07fe791247be", "evidence": {"same_day": true, "patch_ids": ["4c91209bf8d5d37142ccb5063814974e"], "statement_hash": "e7de5484878ce1791f25c1ff0718dd1d00c9e303b54d2186762352b724021130"}}, {"rule": 2, "type": "equivalent", "target": "c618564ee9c72ab927a920643066d530", "evidence": {"same_day": true, "patch_ids": ["4c91209bf8d5d37142ccb5063814974e"], "statement_hash": "e7de5484878ce1791f25c1ff0718dd1d00c9e303b54d2186762352b724021130"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7187c1ff9b64631a183928e454518eaf", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复 psql 的 \\g target 元命令，使其适用于 COPY TO STDOUT", "evidence": {"same_day": true, "patch_ids": ["4c91209bf8d5d37142ccb5063814974e"], "statement_hash": "e7de5484878ce1791f25c1ff0718dd1d00c9e303b54d2186762352b724021130"}, "url": "/docs/compare/?release=11.2#11.2-b966b525f9ada3dc", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "c618564ee9c72ab927a920643066d530", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复 psql 的 \\g target 元命令，使其适用于 COPY TO STDOUT", "evidence": {"same_day": true, "patch_ids": ["4c91209bf8d5d37142ccb5063814974e"], "statement_hash": "e7de5484878ce1791f25c1ff0718dd1d00c9e303b54d2186762352b724021130"}, "url": "/docs/compare/?release=10.7#10.7-b966b525f9ada3dc", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "84ef57936d4146c8a22f07fe791247be", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复 psql 的 \\g target 元命令与 COPY TO STDOUT 配合工作的问题", "evidence": {"same_day": true, "patch_ids": ["4c91209bf8d5d37142ccb5063814974e"], "statement_hash": "e7de5484878ce1791f25c1ff0718dd1d00c9e303b54d2186762352b724021130"}, "url": "/docs/compare/?release=9.5.16#9.5.16-3deeec327fa572e8", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}]}, {"id": "9.6.12-9277e36b7b4ec631", "cves": [], "html": "<p>让 <span>psql</span> 的 LaTeX 输出格式正确渲染特殊字符（Tom Lane）</p>\n<p>反斜线和某些其他 ASCII 标点字符没有被正确渲染，导致文档语法错误或输出中的错误字符。</p>", "text": "让 psql 的 LaTeX 输出格式正确渲染特殊字符（Tom Lane） 反斜线和某些其他 ASCII 标点字符没有被正确渲染，导致文档语法错误或输出中的错误字符。", "title": "让 psql 的 LaTeX 输出格式正确渲染特殊字符", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "906a91139be6520262dddbee664afda07fbf2f9cc427d86d2015d2be4cdf2094", "section_path": ["变更"], "commit_groups": [["18a0a8548", "70d7e507e", "74bfb5388", "815409093", "ac305ff8c", "b352cf7a8"]], "identity_text": "Make psql's LaTeX output formats render special characters properly (Tom Lane) Backslash and some other ASCII punctuation characters were not rendered correctly, leading to document syntax errors or wrong characters in the output.", "commit_aliases": ["18a0a8548", "70d7e507e", "74bfb5388", "815409093", "ac305ff8c", "b352cf7a8"], "source_commits": ["ac305ff8c"], "source_entry_id": "9.6.12/changes/035", "db_id": "b85bd708bcef2c922bd53a37ba150d27", "patch_ids": ["0d22e3a5a55971379d0c07fd29212ac8"], "statement_hash": "1780726b51bc0a6d0b5a07ecf49a5eeab18852953ebc9d571ed19f81e9392544", "relations": [{"rule": 2, "type": "equivalent", "target": "12adaa842f4599e25d434ab48835f6e0", "evidence": {"same_day": true, "patch_ids": ["0d22e3a5a55971379d0c07fd29212ac8"], "statement_hash": "1780726b51bc0a6d0b5a07ecf49a5eeab18852953ebc9d571ed19f81e9392544"}}, {"rule": 2, "type": "equivalent", "target": "34cef121c7493649d500f2d8e0fc6c3e", "evidence": {"same_day": true, "patch_ids": ["0d22e3a5a55971379d0c07fd29212ac8"], "statement_hash": "1780726b51bc0a6d0b5a07ecf49a5eeab18852953ebc9d571ed19f81e9392544"}}, {"rule": 2, "type": "equivalent", "target": "41f1ae7aff68bf8c0a07d0e75df1c8cb", "evidence": {"same_day": true, "patch_ids": ["0d22e3a5a55971379d0c07fd29212ac8"], "statement_hash": "1780726b51bc0a6d0b5a07ecf49a5eeab18852953ebc9d571ed19f81e9392544"}}, {"rule": 2, "type": "equivalent", "target": "82efaccc909edce2e198d3044d547df2", "evidence": {"same_day": true, "patch_ids": ["0d22e3a5a55971379d0c07fd29212ac8"], "statement_hash": "1780726b51bc0a6d0b5a07ecf49a5eeab18852953ebc9d571ed19f81e9392544"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "41f1ae7aff68bf8c0a07d0e75df1c8cb", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "使 psql 的 LaTeX 输出格式正确呈现特殊字符", "evidence": {"same_day": true, "patch_ids": ["0d22e3a5a55971379d0c07fd29212ac8"], "statement_hash": "1780726b51bc0a6d0b5a07ecf49a5eeab18852953ebc9d571ed19f81e9392544"}, "url": "/docs/compare/?release=11.2#11.2-0764c5ad9aea9a88", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "82efaccc909edce2e198d3044d547df2", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "使 psql 的 LaTeX 输出格式正确呈现特殊字符", "evidence": {"same_day": true, "patch_ids": ["0d22e3a5a55971379d0c07fd29212ac8"], "statement_hash": "1780726b51bc0a6d0b5a07ecf49a5eeab18852953ebc9d571ed19f81e9392544"}, "url": "/docs/compare/?release=10.7#10.7-0764c5ad9aea9a88", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "34cef121c7493649d500f2d8e0fc6c3e", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "让 psql 的 LaTeX 输出格式正确渲染特殊字符", "evidence": {"same_day": true, "patch_ids": ["0d22e3a5a55971379d0c07fd29212ac8"], "statement_hash": "1780726b51bc0a6d0b5a07ecf49a5eeab18852953ebc9d571ed19f81e9392544"}, "url": "/docs/compare/?release=9.5.16#9.5.16-9277e36b7b4ec631", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "12adaa842f4599e25d434ab48835f6e0", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "让 psql 的 LaTeX 输出格式正确渲染特殊字符", "evidence": {"same_day": true, "patch_ids": ["0d22e3a5a55971379d0c07fd29212ac8"], "statement_hash": "1780726b51bc0a6d0b5a07ecf49a5eeab18852953ebc9d571ed19f81e9392544"}, "url": "/docs/compare/?release=9.4.21#9.4.21-9277e36b7b4ec631", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-826fd7f161eaee93", "cves": [], "html": "<p>修复 <span>pg_dump</span> 对间接依赖主键的物化视图的处理（Tom Lane）</p>\n<p>这导致此类视图的转储归档条目被错误标记，产生关于 <span>“<span>archive items not in correct section order</span>”</span> 的无害警告；更有害的是，依赖这些标签的选择性恢复选项（如 <code>--section</code>）可能行为异常。</p>", "text": "修复 pg_dump 对间接依赖主键的物化视图的处理（Tom Lane） 这导致此类视图的转储归档条目被错误标记，产生关于 “archive items not in correct section order” 的无害警告；更有害的是，依赖这些标签的选择性恢复选项（如 --section）可能行为异常。", "title": "修复 pg_dump 对间接依赖主键的物化视图的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "fa27fbf54bfff32968e30c1e82d9b35cfb2b405a98ca745af159303c03591d36", "section_path": ["变更"], "commit_groups": [["16e0464a1", "2f93b74bf", "6e4d45b5f", "9368ba174", "b8de846a5", "dc42602f1"]], "identity_text": "Fix pg_dump's handling of materialized views with indirect dependencies on primary keys (Tom Lane) This led to mis-labeling of such views' dump archive entries, causing harmless warnings about archive items not in correct section order; less harmlessly, selective-restore options depending on those labels, such as --section, might misbehave.", "commit_aliases": ["16e0464a1", "2f93b74bf", "6e4d45b5f", "9368ba174", "b8de846a5", "dc42602f1"], "source_commits": ["16e0464a1"], "source_entry_id": "9.6.12/changes/036", "db_id": "ac45cc38f0e92596abe6e88dd63627c4", "patch_ids": ["225a035e5d0a62deac6d9cad98b020bb"], "statement_hash": "2910d1a5028eb80b5f1d0afde01e4f07726e139e3aa8aad32ace8df485beea85", "relations": [{"rule": 2, "type": "equivalent", "target": "0c84a59475fdf415649c3fca62db12e9", "evidence": {"same_day": true, "patch_ids": ["225a035e5d0a62deac6d9cad98b020bb"], "statement_hash": "2910d1a5028eb80b5f1d0afde01e4f07726e139e3aa8aad32ace8df485beea85"}}, {"rule": 2, "type": "equivalent", "target": "dcc06d23939bee8c416fc5d25fc9e2f6", "evidence": {"same_day": true, "patch_ids": ["225a035e5d0a62deac6d9cad98b020bb"], "statement_hash": "2910d1a5028eb80b5f1d0afde01e4f07726e139e3aa8aad32ace8df485beea85"}}, {"rule": 2, "type": "equivalent", "target": "ed75610318f26953695685c0cc9914ea", "evidence": {"same_day": true, "patch_ids": ["225a035e5d0a62deac6d9cad98b020bb"], "statement_hash": "2910d1a5028eb80b5f1d0afde01e4f07726e139e3aa8aad32ace8df485beea85"}}, {"rule": 2, "type": "equivalent", "target": "f3494c6e100c97ff9ac7c9af38b0f919", "evidence": {"same_day": true, "patch_ids": ["225a035e5d0a62deac6d9cad98b020bb"], "statement_hash": "2910d1a5028eb80b5f1d0afde01e4f07726e139e3aa8aad32ace8df485beea85"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f3494c6e100c97ff9ac7c9af38b0f919", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复 pg_dump 对间接依赖主键的物化视图的处理", "evidence": {"same_day": true, "patch_ids": ["225a035e5d0a62deac6d9cad98b020bb"], "statement_hash": "2910d1a5028eb80b5f1d0afde01e4f07726e139e3aa8aad32ace8df485beea85"}, "url": "/docs/compare/?release=11.2#11.2-826fd7f161eaee93", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "ed75610318f26953695685c0cc9914ea", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复 pg_dump 对间接依赖主键的物化视图的处理", "evidence": {"same_day": true, "patch_ids": ["225a035e5d0a62deac6d9cad98b020bb"], "statement_hash": "2910d1a5028eb80b5f1d0afde01e4f07726e139e3aa8aad32ace8df485beea85"}, "url": "/docs/compare/?release=10.7#10.7-826fd7f161eaee93", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "0c84a59475fdf415649c3fca62db12e9", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复 pg_dump 对间接依赖主键的物化视图的处理", "evidence": {"same_day": true, "patch_ids": ["225a035e5d0a62deac6d9cad98b020bb"], "statement_hash": "2910d1a5028eb80b5f1d0afde01e4f07726e139e3aa8aad32ace8df485beea85"}, "url": "/docs/compare/?release=9.5.16#9.5.16-826fd7f161eaee93", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "dcc06d23939bee8c416fc5d25fc9e2f6", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复 pg_dump 对间接依赖主键的物化视图的处理", "evidence": {"same_day": true, "patch_ids": ["225a035e5d0a62deac6d9cad98b020bb"], "statement_hash": "2910d1a5028eb80b5f1d0afde01e4f07726e139e3aa8aad32ace8df485beea85"}, "url": "/docs/compare/?release=9.4.21#9.4.21-826fd7f161eaee93", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-bd4d066aa0f3ea5e", "cves": [], "html": "<p>避免 <span>pg_dump</span> 或 <span>pg_restore</span> 尝试报告错误时在某些平台上的空指针解引用崩溃（Tom Lane）</p>", "text": "避免 pg_dump 或 pg_restore 尝试报告错误时在某些平台上的空指针解引用崩溃（Tom Lane）", "title": "避免 pg_dump 或 pg_restore 尝试报告错误时在某些平台上的空指针解引用崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "9c4d383883044df741c3aa0d7aa17598fe49646148a68a4d9107c239b1b229c2", "section_path": ["变更"], "commit_groups": [["2b6009e2a", "2c8332177", "4dbe19690", "73668c590", "ed46d0d32", "ef9bf3593"]], "identity_text": "Avoid null-pointer-dereference crash on some platforms when pg_dump or pg_restore tries to report an error (Tom Lane)", "commit_aliases": ["2b6009e2a", "2c8332177", "4dbe19690", "73668c590", "ed46d0d32", "ef9bf3593"], "source_commits": ["2b6009e2a"], "source_entry_id": "9.6.12/changes/037", "db_id": "646b79b07847b0b3cc9f38999c955953", "patch_ids": ["8449bac03ac98ea37ec791b5fc11c33d"], "statement_hash": "d52b019aabe44c168eded5320c19bf9f077f75b13d187e77fbfde5f3dba93948", "relations": [{"rule": 2, "type": "equivalent", "target": "076130892bd0f29ac59b6750d52a01cf", "evidence": {"same_day": true, "patch_ids": ["8449bac03ac98ea37ec791b5fc11c33d"], "statement_hash": "d52b019aabe44c168eded5320c19bf9f077f75b13d187e77fbfde5f3dba93948"}}, {"rule": 2, "type": "equivalent", "target": "21be836bee7a64905e1235eb537030b4", "evidence": {"same_day": true, "patch_ids": ["8449bac03ac98ea37ec791b5fc11c33d"], "statement_hash": "d52b019aabe44c168eded5320c19bf9f077f75b13d187e77fbfde5f3dba93948"}}, {"rule": 2, "type": "equivalent", "target": "7cd4fd1329cb6190a2d9dc9a02a62ce8", "evidence": {"same_day": true, "patch_ids": ["8449bac03ac98ea37ec791b5fc11c33d"], "statement_hash": "d52b019aabe44c168eded5320c19bf9f077f75b13d187e77fbfde5f3dba93948"}}, {"rule": 2, "type": "equivalent", "target": "d78f112d08578b7d46e95c08df306243", "evidence": {"same_day": true, "patch_ids": ["8449bac03ac98ea37ec791b5fc11c33d"], "statement_hash": "d52b019aabe44c168eded5320c19bf9f077f75b13d187e77fbfde5f3dba93948"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "21be836bee7a64905e1235eb537030b4", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "避免 pg_dump 或 pg_restore 尝试报告错误时，在某些平台上因空指针解引用而崩溃", "evidence": {"same_day": true, "patch_ids": ["8449bac03ac98ea37ec791b5fc11c33d"], "statement_hash": "d52b019aabe44c168eded5320c19bf9f077f75b13d187e77fbfde5f3dba93948"}, "url": "/docs/compare/?release=11.2#11.2-99b4668cd3f3529f", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "d78f112d08578b7d46e95c08df306243", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "避免 pg_dump 或 pg_restore 尝试报告错误时，在某些平台上因空指针解引用而崩溃", "evidence": {"same_day": true, "patch_ids": ["8449bac03ac98ea37ec791b5fc11c33d"], "statement_hash": "d52b019aabe44c168eded5320c19bf9f077f75b13d187e77fbfde5f3dba93948"}, "url": "/docs/compare/?release=10.7#10.7-99b4668cd3f3529f", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "7cd4fd1329cb6190a2d9dc9a02a62ce8", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "避免 pg_dump 或 pg_restore 尝试报告错误时在某些平台上的空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["8449bac03ac98ea37ec791b5fc11c33d"], "statement_hash": "d52b019aabe44c168eded5320c19bf9f077f75b13d187e77fbfde5f3dba93948"}, "url": "/docs/compare/?release=9.5.16#9.5.16-bd4d066aa0f3ea5e", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "076130892bd0f29ac59b6750d52a01cf", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "避免pg_dump或pg_restore尝试报告错误时在某些平台上出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["8449bac03ac98ea37ec791b5fc11c33d"], "statement_hash": "d52b019aabe44c168eded5320c19bf9f077f75b13d187e77fbfde5f3dba93948"}, "url": "/docs/compare/?release=9.4.21#9.4.21-7dba63c6ef94f6e3", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-eb794b19b24b956c", "cves": [], "html": "<p>修复 <code>contrib/hstore</code> 为 8.4 或更早版本中创建的空 <code>hstore</code> 值计算正确的哈希值（Andrew Gierth）</p>\n<p>原来的编码给出的结果与更新版本创建的空 <code>hstore</code> 值不同，因此可能导致哈希连接或哈希聚合的错误结果。如果表可能包含最早存储于 8.4 且此后从未转储/恢复过的数据，建议对 <code>hstore</code> 列上的哈希索引执行 REINDEX。</p>", "text": "修复 contrib/hstore 为 8.4 或更早版本中创建的空 hstore 值计算正确的哈希值（Andrew Gierth） 原来的编码给出的结果与更新版本创建的空 hstore 值不同，因此可能导致哈希连接或哈希聚合的错误结果。如果表可能包含最早存储于 8.4 且此后从未转储/恢复过的数据，建议对 hstore 列上的哈希索引执行 REINDEX。", "title": "修复 contrib/hstore 为 8.4 或更早版本中创建的空 hstore 值计算正确的哈希值", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "126e199f6fb7baf3d476e3cef2b5eb95be4c9c9cfee8c2d555af9c4c0cc8f063", "section_path": ["变更"], "commit_groups": [["02e669c0f", "239abfff1", "8087788f6", "bcbb68278", "d5890f49d", "e5a6ae97e"]], "identity_text": "Fix contrib/hstore to calculate correct hash values for empty hstore values that were created in version 8.4 or before (Andrew Gierth) The previous coding did not give the same result as for an empty hstore value created by a newer version, thus potentially causing wrong results in hash joins or hash aggregation. It is advisable to reindex any hash indexes built on hstore columns, if the table might contain data that was originally stored as far back as 8.4 and was never dumped/reloaded since then.", "commit_aliases": ["02e669c0f", "239abfff1", "8087788f6", "bcbb68278", "d5890f49d", "e5a6ae97e"], "source_commits": ["239abfff1"], "source_entry_id": "9.6.12/changes/038", "db_id": "876fabb14ec0313206f04e471d934643", "patch_ids": ["bab1287e035cd1bef1182b510084a83a"], "statement_hash": "9ea45f86214864f0c30a2635096eaf9da5a010645be120d3607d5f7be63b02b5", "relations": [{"rule": 2, "type": "equivalent", "target": "055834090bf88d5f92e466160d3bbda4", "evidence": {"same_day": true, "patch_ids": ["bab1287e035cd1bef1182b510084a83a"], "statement_hash": "9ea45f86214864f0c30a2635096eaf9da5a010645be120d3607d5f7be63b02b5"}}, {"rule": 2, "type": "equivalent", "target": "434a271b68add8d6a8b515e094e66783", "evidence": {"same_day": true, "patch_ids": ["bab1287e035cd1bef1182b510084a83a"], "statement_hash": "9ea45f86214864f0c30a2635096eaf9da5a010645be120d3607d5f7be63b02b5"}}, {"rule": 2, "type": "equivalent", "target": "97160ddd803569a7384f09ff7e91186a", "evidence": {"same_day": true, "patch_ids": ["bab1287e035cd1bef1182b510084a83a"], "statement_hash": "9ea45f86214864f0c30a2635096eaf9da5a010645be120d3607d5f7be63b02b5"}}, {"rule": 2, "type": "equivalent", "target": "c8cb8ec0847b1a07ec02b663fdf12de7", "evidence": {"same_day": true, "patch_ids": ["bab1287e035cd1bef1182b510084a83a"], "statement_hash": "9ea45f86214864f0c30a2635096eaf9da5a010645be120d3607d5f7be63b02b5"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "434a271b68add8d6a8b515e094e66783", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复 contrib/hstore，使其为版本 8.4 或更早版本创建的空 hstore 值计算正确的 hash 值", "evidence": {"same_day": true, "patch_ids": ["bab1287e035cd1bef1182b510084a83a"], "statement_hash": "9ea45f86214864f0c30a2635096eaf9da5a010645be120d3607d5f7be63b02b5"}, "url": "/docs/compare/?release=11.2#11.2-d2344a23897ef634", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "c8cb8ec0847b1a07ec02b663fdf12de7", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复 contrib/hstore，使其为版本 8.4 或更早版本创建的空 hstore 值计算正确的 hash 值", "evidence": {"same_day": true, "patch_ids": ["bab1287e035cd1bef1182b510084a83a"], "statement_hash": "9ea45f86214864f0c30a2635096eaf9da5a010645be120d3607d5f7be63b02b5"}, "url": "/docs/compare/?release=10.7#10.7-d2344a23897ef634", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "97160ddd803569a7384f09ff7e91186a", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复 contrib/hstore 为 8.4 或更早版本中创建的空 hstore 值计算正确的哈希值", "evidence": {"same_day": true, "patch_ids": ["bab1287e035cd1bef1182b510084a83a"], "statement_hash": "9ea45f86214864f0c30a2635096eaf9da5a010645be120d3607d5f7be63b02b5"}, "url": "/docs/compare/?release=9.5.16#9.5.16-eb794b19b24b956c", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "055834090bf88d5f92e466160d3bbda4", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复 contrib/hstore 为 8.4 或更早版本中创建的空 hstore 值计算正确的哈希值", "evidence": {"same_day": true, "patch_ids": ["bab1287e035cd1bef1182b510084a83a"], "statement_hash": "9ea45f86214864f0c30a2635096eaf9da5a010645be120d3607d5f7be63b02b5"}, "url": "/docs/compare/?release=9.4.21#9.4.21-eb794b19b24b956c", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-7ba8f0749e9920f5", "cves": [], "html": "<p>避免 <code>contrib/intarray</code> 的 <code>gist__int_ops</code> 索引支持处理大输入时崩溃和过长运行时间（Andrew Gierth）</p>", "text": "避免 contrib/intarray 的 gist__int_ops 索引支持处理大输入时崩溃和过长运行时间（Andrew Gierth）", "title": "避免 contrib/intarray 的 gist__int_ops 索引支持处理大输入时崩溃和过长运行时间", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "a402826996425792014de3d87a5c006e9e204c5d8174c83eda2a35456934f729", "section_path": ["变更"], "commit_groups": [["2e497ed23", "2f30b311d", "5f11a500f", "757c5182f", "e193fb991", "f0bfc7a2b"]], "identity_text": "Avoid crashes and excessive runtime with large inputs to contrib/intarray's gist__int_ops index support (Andrew Gierth)", "commit_aliases": ["2e497ed23", "2f30b311d", "5f11a500f", "757c5182f", "e193fb991", "f0bfc7a2b"], "source_commits": ["5f11a500f"], "source_entry_id": "9.6.12/changes/039", "db_id": "5bbebf444cc855fc74a5f10f052e6aaf", "patch_ids": ["862b3d2b14eb14439b1f23072c53f8d8"], "statement_hash": "25c9c9db3018edd06c81a384c659889a43ce41cb14478d2a40ee6f21fb231c91", "relations": [{"rule": 2, "type": "equivalent", "target": "35763572b5498b6720ca94621d06af46", "evidence": {"same_day": true, "patch_ids": ["862b3d2b14eb14439b1f23072c53f8d8"], "statement_hash": "25c9c9db3018edd06c81a384c659889a43ce41cb14478d2a40ee6f21fb231c91"}}, {"rule": 2, "type": "equivalent", "target": "457ba9fee0f51ef77ce9f6d12c17dce3", "evidence": {"same_day": true, "patch_ids": ["862b3d2b14eb14439b1f23072c53f8d8"], "statement_hash": "25c9c9db3018edd06c81a384c659889a43ce41cb14478d2a40ee6f21fb231c91"}}, {"rule": 2, "type": "equivalent", "target": "e16afb4ec1547edea943adb4b1999d71", "evidence": {"same_day": true, "patch_ids": ["862b3d2b14eb14439b1f23072c53f8d8"], "statement_hash": "25c9c9db3018edd06c81a384c659889a43ce41cb14478d2a40ee6f21fb231c91"}}, {"rule": 2, "type": "equivalent", "target": "e5e618310e7dddb6e6db3fabbc3054e9", "evidence": {"same_day": true, "patch_ids": ["862b3d2b14eb14439b1f23072c53f8d8"], "statement_hash": "25c9c9db3018edd06c81a384c659889a43ce41cb14478d2a40ee6f21fb231c91"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5e618310e7dddb6e6db3fabbc3054e9", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "避免向 contrib/intarray 的 gist__int_ops 索引支持代码提供大量输入时发生崩溃或运行时间过长", "evidence": {"same_day": true, "patch_ids": ["862b3d2b14eb14439b1f23072c53f8d8"], "statement_hash": "25c9c9db3018edd06c81a384c659889a43ce41cb14478d2a40ee6f21fb231c91"}, "url": "/docs/compare/?release=11.2#11.2-f4030e8a81984f1f", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "457ba9fee0f51ef77ce9f6d12c17dce3", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "避免向 contrib/intarray 的 gist__int_ops 索引支持代码提供大量输入时发生崩溃或运行时间过长", "evidence": {"same_day": true, "patch_ids": ["862b3d2b14eb14439b1f23072c53f8d8"], "statement_hash": "25c9c9db3018edd06c81a384c659889a43ce41cb14478d2a40ee6f21fb231c91"}, "url": "/docs/compare/?release=10.7#10.7-f4030e8a81984f1f", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "35763572b5498b6720ca94621d06af46", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "避免 contrib/intarray 的 gist__int_ops 索引支持处理大输入时崩溃和过长运行时间", "evidence": {"same_day": true, "patch_ids": ["862b3d2b14eb14439b1f23072c53f8d8"], "statement_hash": "25c9c9db3018edd06c81a384c659889a43ce41cb14478d2a40ee6f21fb231c91"}, "url": "/docs/compare/?release=9.5.16#9.5.16-7ba8f0749e9920f5", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "e16afb4ec1547edea943adb4b1999d71", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "避免contrib/intarray的gist__int_ops索引支持在大型输入下崩溃和运行时间过长的问题", "evidence": {"same_day": true, "patch_ids": ["862b3d2b14eb14439b1f23072c53f8d8"], "statement_hash": "25c9c9db3018edd06c81a384c659889a43ce41cb14478d2a40ee6f21fb231c91"}, "url": "/docs/compare/?release=9.4.21#9.4.21-791b5a9e6a6f72a3", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-292d711db799ce9b", "cves": [], "html": "<p>支持 <span>pgxs</span> 构建中的新 Makefile 变量 <code>PG_CFLAGS</code>、<code>PG_CXXFLAGS</code> 和 <code>PG_LDFLAGS</code>（Christoph Berg）</p>\n<p>这简化了扩展构建过程的自定义。</p>", "text": "支持 pgxs 构建中的新 Makefile 变量 PG_CFLAGS、PG_CXXFLAGS 和 PG_LDFLAGS（Christoph Berg） 这简化了扩展构建过程的自定义。", "title": "支持 pgxs 构建中的新 Makefile 变量 PG_CFLAGS、PG_CXXFLAGS 和 PG_LDFLAGS", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "7b2785fa930108cedea55e915365ae481b7523f22c793a00de54d06522cb2c02", "section_path": ["变更"], "commit_groups": [["12ff406f3", "42b204db2", "5e63df827", "946430da6", "ac3a9afdb", "da14c9b19"]], "identity_text": "Support new Makefile variables PG_CFLAGS, PG_CXXFLAGS, and PG_LDFLAGS in pgxs builds (Christoph Berg) This simplifies customization of extension build processes.", "commit_aliases": ["12ff406f3", "42b204db2", "5e63df827", "946430da6", "ac3a9afdb", "da14c9b19"], "source_commits": ["5e63df827"], "source_entry_id": "9.6.12/changes/040", "db_id": "49b22414c6b01d95f919cbef4b006901", "patch_ids": ["ce4a810a3179bfb02a9c7783c12b18df"], "statement_hash": "4b60fa6125a36c0310cff0cd9db1a2cdc82bf67a538a3c9ce8381a23788bc2ad", "relations": [{"rule": 2, "type": "equivalent", "target": "905aa0c9bcd5ae5bd19ffc3cb6d8b68f", "evidence": {"same_day": true, "patch_ids": ["ce4a810a3179bfb02a9c7783c12b18df"], "statement_hash": "4b60fa6125a36c0310cff0cd9db1a2cdc82bf67a538a3c9ce8381a23788bc2ad"}}, {"rule": 2, "type": "equivalent", "target": "a0fbf30e3f583db5874a0438fb748310", "evidence": {"same_day": true, "patch_ids": ["ce4a810a3179bfb02a9c7783c12b18df"], "statement_hash": "4b60fa6125a36c0310cff0cd9db1a2cdc82bf67a538a3c9ce8381a23788bc2ad"}}, {"rule": 2, "type": "equivalent", "target": "ea426904ed3ce354fd0b873bd95dae9f", "evidence": {"same_day": true, "patch_ids": ["ce4a810a3179bfb02a9c7783c12b18df"], "statement_hash": "4b60fa6125a36c0310cff0cd9db1a2cdc82bf67a538a3c9ce8381a23788bc2ad"}}, {"rule": 2, "type": "equivalent", "target": "f154fe88c596f38aeac6bd613bc0c606", "evidence": {"same_day": true, "patch_ids": ["ce4a810a3179bfb02a9c7783c12b18df"], "statement_hash": "4b60fa6125a36c0310cff0cd9db1a2cdc82bf67a538a3c9ce8381a23788bc2ad"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f154fe88c596f38aeac6bd613bc0c606", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "在 pgxs 构建中支持新的 Makefile 变量 PG_CFLAGS、PG_CXXFLAGS 和 PG_LDFLAGS", "evidence": {"same_day": true, "patch_ids": ["ce4a810a3179bfb02a9c7783c12b18df"], "statement_hash": "4b60fa6125a36c0310cff0cd9db1a2cdc82bf67a538a3c9ce8381a23788bc2ad"}, "url": "/docs/compare/?release=11.2#11.2-2a0601e9442e6eef", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "a0fbf30e3f583db5874a0438fb748310", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "在 pgxs 构建中支持新的 Makefile 变量 PG_CFLAGS、PG_CXXFLAGS 和 PG_LDFLAGS", "evidence": {"same_day": true, "patch_ids": ["ce4a810a3179bfb02a9c7783c12b18df"], "statement_hash": "4b60fa6125a36c0310cff0cd9db1a2cdc82bf67a538a3c9ce8381a23788bc2ad"}, "url": "/docs/compare/?release=10.7#10.7-2a0601e9442e6eef", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "905aa0c9bcd5ae5bd19ffc3cb6d8b68f", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "支持 pgxs 构建中的新 Makefile 变量 PG_CFLAGS、PG_CXXFLAGS 和 PG_LDFLAGS", "evidence": {"same_day": true, "patch_ids": ["ce4a810a3179bfb02a9c7783c12b18df"], "statement_hash": "4b60fa6125a36c0310cff0cd9db1a2cdc82bf67a538a3c9ce8381a23788bc2ad"}, "url": "/docs/compare/?release=9.5.16#9.5.16-292d711db799ce9b", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "ea426904ed3ce354fd0b873bd95dae9f", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "支持 pgxs 构建中的新 Makefile 变量 PG_CFLAGS、PG_CXXFLAGS 和 PG_LDFLAGS", "evidence": {"same_day": true, "patch_ids": ["ce4a810a3179bfb02a9c7783c12b18df"], "statement_hash": "4b60fa6125a36c0310cff0cd9db1a2cdc82bf67a538a3c9ce8381a23788bc2ad"}, "url": "/docs/compare/?release=9.4.21#9.4.21-292d711db799ce9b", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-ae1e70912cb0a143", "cves": [], "html": "<p>修复 Perl 编写的构建脚本不假定 <span>“<span><code>.</code></span>”</span> 在搜索路径中，因为最近的 Perl 版本不包含它（Andrew Dunstan）</p>", "text": "修复 Perl 编写的构建脚本不假定 “.” 在搜索路径中，因为最近的 Perl 版本不包含它（Andrew Dunstan）", "title": "修复 Perl 编写的构建脚本不假定 “.” 在搜索路径中，因为最近的 Perl 版本不包含它", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "73fdc40a18fc02d73ed927d7f777a154f2799af4c81ade55afe4d1b2de9005f4", "section_path": ["变更"], "commit_groups": [["11f11e1e0", "13e95662c", "1f28906bf", "324c92646", "592123efb", "8d2741452"], ["1a6244216", "2689e8e33", "42345284c", "59927f99a", "77173d0cc", "f83419b73"], ["1fbb9bda0", "4e7a51302", "772d4b769", "7a3763318", "a25b04933", "f884a9681"], ["51884fa16", "a82ca6ffb", "be037c11b"]], "identity_text": "Fix Perl-coded build scripts to not assume . is in the search path, since recent Perl versions don't include that (Andrew Dunstan)", "commit_aliases": ["11f11e1e0", "13e95662c", "1a6244216", "1f28906bf", "1fbb9bda0", "2689e8e33", "324c92646", "42345284c", "4e7a51302", "51884fa16", "592123efb", "59927f99a", "77173d0cc", "772d4b769", "7a3763318", "8d2741452", "a25b04933", "a82ca6ffb", "be037c11b", "f83419b73", "f884a9681"], "source_commits": ["324c92646", "42345284c", "772d4b769", "be037c11b"], "source_entry_id": "9.6.12/changes/041", "db_id": "dbce47d7369084d0a50658e294a60595", "patch_ids": ["0ded4067d557dad634afe0d73dc977e1", "48ae0597594a2b9db7c6f100401cd710", "9f3b6053bfeb993875e9ed0618925e2c", "ad3c5cc2c6849ea5370e52c293300028"], "statement_hash": "ddf2130d130aed3bffc4bc8148913acede169b5d15ea7632d5bcc2d83e4bad69", "relations": [{"rule": 2, "type": "equivalent", "target": "5feff61c5da811b9505a77ce4704cdc9", "evidence": {"same_day": true, "patch_ids": ["0ded4067d557dad634afe0d73dc977e1", "48ae0597594a2b9db7c6f100401cd710", "9f3b6053bfeb993875e9ed0618925e2c", "ad3c5cc2c6849ea5370e52c293300028"], "statement_hash": "ddf2130d130aed3bffc4bc8148913acede169b5d15ea7632d5bcc2d83e4bad69"}}, {"rule": 2, "type": "equivalent", "target": "babf771f2176629b4e9c39611c62f1e2", "evidence": {"same_day": true, "patch_ids": ["0ded4067d557dad634afe0d73dc977e1", "48ae0597594a2b9db7c6f100401cd710", "9f3b6053bfeb993875e9ed0618925e2c", "ad3c5cc2c6849ea5370e52c293300028"], "statement_hash": "ddf2130d130aed3bffc4bc8148913acede169b5d15ea7632d5bcc2d83e4bad69"}}, {"rule": 2, "type": "equivalent", "target": "be020029fbce24265349fdbd6c61fd12", "evidence": {"same_day": true, "patch_ids": ["0ded4067d557dad634afe0d73dc977e1", "48ae0597594a2b9db7c6f100401cd710", "9f3b6053bfeb993875e9ed0618925e2c", "ad3c5cc2c6849ea5370e52c293300028"], "statement_hash": "ddf2130d130aed3bffc4bc8148913acede169b5d15ea7632d5bcc2d83e4bad69"}}, {"rule": 2, "type": "equivalent", "target": "e63b82ea5dc747d39c5403bb23e8d64b", "evidence": {"same_day": true, "patch_ids": ["0ded4067d557dad634afe0d73dc977e1", "48ae0597594a2b9db7c6f100401cd710", "9f3b6053bfeb993875e9ed0618925e2c", "ad3c5cc2c6849ea5370e52c293300028"], "statement_hash": "ddf2130d130aed3bffc4bc8148913acede169b5d15ea7632d5bcc2d83e4bad69"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "babf771f2176629b4e9c39611c62f1e2", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复以 Perl 编写的构建脚本，使其不再假定搜索路径包含 “.”，因为近期 Perl 版本已不再包含它", "evidence": {"same_day": true, "patch_ids": ["0ded4067d557dad634afe0d73dc977e1", "48ae0597594a2b9db7c6f100401cd710", "9f3b6053bfeb993875e9ed0618925e2c", "ad3c5cc2c6849ea5370e52c293300028"], "statement_hash": "ddf2130d130aed3bffc4bc8148913acede169b5d15ea7632d5bcc2d83e4bad69"}, "url": "/docs/compare/?release=11.2#11.2-fd47fb5d8b943bc2", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "5feff61c5da811b9505a77ce4704cdc9", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复以 Perl 编写的构建脚本，使其不再假定搜索路径包含 “.”，因为近期 Perl 版本已不再包含它", "evidence": {"same_day": true, "patch_ids": ["0ded4067d557dad634afe0d73dc977e1", "48ae0597594a2b9db7c6f100401cd710", "9f3b6053bfeb993875e9ed0618925e2c", "ad3c5cc2c6849ea5370e52c293300028"], "statement_hash": "ddf2130d130aed3bffc4bc8148913acede169b5d15ea7632d5bcc2d83e4bad69"}, "url": "/docs/compare/?release=10.7#10.7-fd47fb5d8b943bc2", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "be020029fbce24265349fdbd6c61fd12", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复 Perl 编写的构建脚本不假定 “.” 在搜索路径中，因为最近的 Perl 版本不包含它", "evidence": {"same_day": true, "patch_ids": ["0ded4067d557dad634afe0d73dc977e1", "48ae0597594a2b9db7c6f100401cd710", "9f3b6053bfeb993875e9ed0618925e2c", "ad3c5cc2c6849ea5370e52c293300028"], "statement_hash": "ddf2130d130aed3bffc4bc8148913acede169b5d15ea7632d5bcc2d83e4bad69"}, "url": "/docs/compare/?release=9.5.16#9.5.16-ae1e70912cb0a143", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "e63b82ea5dc747d39c5403bb23e8d64b", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复 Perl 编写的构建脚本，不再假设搜索路径中包含“.”，因为较新的 Perl 版本不再默认包含它", "evidence": {"same_day": true, "patch_ids": ["0ded4067d557dad634afe0d73dc977e1", "48ae0597594a2b9db7c6f100401cd710", "9f3b6053bfeb993875e9ed0618925e2c", "ad3c5cc2c6849ea5370e52c293300028"], "statement_hash": "ddf2130d130aed3bffc4bc8148913acede169b5d15ea7632d5bcc2d83e4bad69"}, "url": "/docs/compare/?release=9.4.21#9.4.21-7685e24a3edc3845", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-11741a01130df4fc", "cves": [], "html": "<p>修复 OpenBSD 上服务器命令行选项解析的问题（Tom Lane）</p>", "text": "修复 OpenBSD 上服务器命令行选项解析的问题（Tom Lane）", "title": "修复 OpenBSD 上服务器命令行选项解析的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "4bdf8709e7856c624af06e9cd01025016bb2e54c84dfebcc0de4c9e1138d9cfb", "section_path": ["变更"], "commit_groups": [["139e42742", "167ba6b15", "69bcd718d", "b161ffe31", "dc2dee438", "e4ffa0dcb"]], "identity_text": "Fix server command-line option parsing problems on OpenBSD (Tom Lane)", "commit_aliases": ["139e42742", "167ba6b15", "69bcd718d", "b161ffe31", "dc2dee438", "e4ffa0dcb"], "source_commits": ["167ba6b15"], "source_entry_id": "9.6.12/changes/042", "db_id": "4d069c7e918437549867fde24d7f25f9", "patch_ids": ["bba58387f09acc5f86949d2b8323329d"], "statement_hash": "02c0d40cb597c765b8f274fd3040575740751391f76a68a2e33188621dd6f414", "relations": [{"rule": 2, "type": "equivalent", "target": "65db162d02c4b6854b98a2a7673e3435", "evidence": {"same_day": true, "patch_ids": ["bba58387f09acc5f86949d2b8323329d"], "statement_hash": "02c0d40cb597c765b8f274fd3040575740751391f76a68a2e33188621dd6f414"}}, {"rule": 2, "type": "equivalent", "target": "74b4e5f3c8390541ea96e4142d96711e", "evidence": {"same_day": true, "patch_ids": ["bba58387f09acc5f86949d2b8323329d"], "statement_hash": "02c0d40cb597c765b8f274fd3040575740751391f76a68a2e33188621dd6f414"}}, {"rule": 2, "type": "equivalent", "target": "ac12c45ea23584595c82886f75e5a3f5", "evidence": {"same_day": true, "patch_ids": ["bba58387f09acc5f86949d2b8323329d"], "statement_hash": "02c0d40cb597c765b8f274fd3040575740751391f76a68a2e33188621dd6f414"}}, {"rule": 2, "type": "equivalent", "target": "bf70a1754599d33d8fed5b4a84a1c76a", "evidence": {"same_day": true, "patch_ids": ["bba58387f09acc5f86949d2b8323329d"], "statement_hash": "02c0d40cb597c765b8f274fd3040575740751391f76a68a2e33188621dd6f414"}}], "version": "9.6.12", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bf70a1754599d33d8fed5b4a84a1c76a", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "修复 OpenBSD 上服务器命令行选项的解析问题", "evidence": {"same_day": true, "patch_ids": ["bba58387f09acc5f86949d2b8323329d"], "statement_hash": "02c0d40cb597c765b8f274fd3040575740751391f76a68a2e33188621dd6f414"}, "url": "/docs/compare/?release=11.2#11.2-27240ef7394d27c4", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "65db162d02c4b6854b98a2a7673e3435", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "修复 OpenBSD 上服务器命令行选项的解析问题", "evidence": {"same_day": true, "patch_ids": ["bba58387f09acc5f86949d2b8323329d"], "statement_hash": "02c0d40cb597c765b8f274fd3040575740751391f76a68a2e33188621dd6f414"}, "url": "/docs/compare/?release=10.7#10.7-27240ef7394d27c4", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "74b4e5f3c8390541ea96e4142d96711e", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "修复 OpenBSD 上服务器命令行选项解析的问题", "evidence": {"same_day": true, "patch_ids": ["bba58387f09acc5f86949d2b8323329d"], "statement_hash": "02c0d40cb597c765b8f274fd3040575740751391f76a68a2e33188621dd6f414"}, "url": "/docs/compare/?release=9.5.16#9.5.16-11741a01130df4fc", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "ac12c45ea23584595c82886f75e5a3f5", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "修复 OpenBSD 上服务器命令行选项解析的问题", "evidence": {"same_day": true, "patch_ids": ["bba58387f09acc5f86949d2b8323329d"], "statement_hash": "02c0d40cb597c765b8f274fd3040575740751391f76a68a2e33188621dd6f414"}, "url": "/docs/compare/?release=9.4.21#9.4.21-11741a01130df4fc", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}, {"id": "9.6.12-b1858b333f562a4d", "cves": [], "html": "<p>重新定位 <code>set_rel_pathlist_hook</code> 的调用，使扩展可以用它为并行查询提供部分路径（KaiGai Kohei）</p>\n<p>这预计不影响现有使用场景。</p>", "text": "重新定位 set_rel_pathlist_hook 的调用，使扩展可以用它为并行查询提供部分路径（KaiGai Kohei） 这预计不影响现有使用场景。", "title": "重新定位 set_rel_pathlist_hook 的调用，使扩展可以用它为并行查询提供部分路径", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "c6570607283397786c267c0b66a127f79631837811055783adb2e15154f92bb3", "section_path": ["变更"], "commit_groups": [["027b5a300", "6257f525a", "640158386", "dc0eb137f"]], "identity_text": "Relocate call of set_rel_pathlist_hook so that extensions can use it to supply partial paths for parallel queries (KaiGai Kohei) This is not expected to affect existing use-cases.", "commit_aliases": ["027b5a300", "6257f525a", "640158386", "dc0eb137f"], "source_commits": ["6257f525a"], "source_entry_id": "9.6.12/changes/043", "db_id": "c29324ca9a84e42f356dd0b24c0439de", "patch_ids": ["4c5c53bb879a76451003d2ea0923a4b0"], "statement_hash": "e4e97d1912e848501ff09da850bd62750a679249182d6ed524629644e955ce37", "relations": [{"rule": 2, "type": "equivalent", "target": "382fa2e1f7094edddcdee34b4ab0ebb4", "evidence": {"same_day": true, "patch_ids": ["4c5c53bb879a76451003d2ea0923a4b0"], "statement_hash": "e4e97d1912e848501ff09da850bd62750a679249182d6ed524629644e955ce37"}}, {"rule": 2, "type": "equivalent", "target": "92bdf535b09020a1519a8b05e5441fb7", "evidence": {"same_day": true, "patch_ids": ["4c5c53bb879a76451003d2ea0923a4b0"], "statement_hash": "e4e97d1912e848501ff09da850bd62750a679249182d6ed524629644e955ce37"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "382fa2e1f7094edddcdee34b4ab0ebb4", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "调整 set_rel_pathlist_hook 调用的位置，使扩展可以用它为并行查询提供部分路径", "evidence": {"same_day": true, "patch_ids": ["4c5c53bb879a76451003d2ea0923a4b0"], "statement_hash": "e4e97d1912e848501ff09da850bd62750a679249182d6ed524629644e955ce37"}, "url": "/docs/compare/?release=11.2#11.2-ec37197895329879", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "92bdf535b09020a1519a8b05e5441fb7", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "调整 set_rel_pathlist_hook 调用的位置，使扩展可以用它为并行查询提供部分路径", "evidence": {"same_day": true, "patch_ids": ["4c5c53bb879a76451003d2ea0923a4b0"], "statement_hash": "e4e97d1912e848501ff09da850bd62750a679249182d6ed524629644e955ce37"}, "url": "/docs/compare/?release=10.7#10.7-ec37197895329879", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}]}, {"id": "9.6.12-b36be6f5324a6314", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2018i，涉及哈萨克斯坦、梅特拉卡特拉以及圣多美和普林西比的夏令时法规变更。哈萨克斯坦的克孜勒奥尔达时区一分为二，创建了新时区 Asia/Qostanay，因为部分地区没有更改 UTC 偏移。还有香港和众多太平洋岛屿的历史修正。</p>", "text": "更新时区数据文件到 tzdata 版本 2018i，涉及哈萨克斯坦、梅特拉卡特拉以及圣多美和普林西比的夏令时法规变更。哈萨克斯坦的克孜勒奥尔达时区一分为二，创建了新时区 Asia/Qostanay，因为部分地区没有更改 UTC 偏移。还有香港和众多太平洋岛屿的历史修正。", "title": "更新时区数据文件到 tzdata 版本 2018i，涉及哈萨克斯坦、梅特拉卡特拉以及圣多美和普林西比的夏令时法规变更。哈萨克斯坦的克孜勒奥尔达时区一分为二，创建了新时区 Asia/Qostanay，因为部分地区没有更改 UTC 偏移。还有香港和众多太平洋岛屿的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.12/#id-1.11.6.17.5", "source_hash": "2585d8863c5519134f1915e343cacfe296bf87379c58e3b19246e526502b99d6", "section_path": ["变更"], "commit_groups": [["09c5f045c", "4232a650b", "46b454096", "a683df403", "d63dc0aa0", "f6db9f8ab"]], "identity_text": "Update time zone data files to tzdata release 2018i for DST law changes in Kazakhstan, Metlakatla, and Sao Tome and Principe. Kazakhstan's Qyzylorda zone is split in two, creating a new zone Asia/Qostanay, as some areas did not change UTC offset. Historical corrections for Hong Kong and numerous Pacific islands.", "commit_aliases": ["09c5f045c", "4232a650b", "46b454096", "a683df403", "d63dc0aa0", "f6db9f8ab"], "source_commits": ["f6db9f8ab"], "source_entry_id": "9.6.12/changes/044", "db_id": "d5351f963ffd87df9396537ed3ee15ae", "patch_ids": ["600522b7a4fbb2aa981b105b9de13502"], "statement_hash": "10d03897798403ffce249e08c73faf46d13fdff611b447ec34239e94ca7c8895", "relations": [{"rule": 2, "type": "equivalent", "target": "712c715b99423912677db044780ae49c", "evidence": {"same_day": true, "patch_ids": ["600522b7a4fbb2aa981b105b9de13502"], "statement_hash": "10d03897798403ffce249e08c73faf46d13fdff611b447ec34239e94ca7c8895"}}, {"rule": 2, "type": "equivalent", "target": "7f0d750645e2c102237305043ce3b2be", "evidence": {"same_day": true, "patch_ids": ["600522b7a4fbb2aa981b105b9de13502"], "statement_hash": "10d03897798403ffce249e08c73faf46d13fdff611b447ec34239e94ca7c8895"}}, {"rule": 2, "type": "equivalent", "target": "8fe8423f1e22b0dc72ef463701d7b1ce", "evidence": {"same_day": true, "patch_ids": ["600522b7a4fbb2aa981b105b9de13502"], "statement_hash": "10d03897798403ffce249e08c73faf46d13fdff611b447ec34239e94ca7c8895"}}, {"rule": 2, "type": "equivalent", "target": "9e69c9f4cb374d08796dba2770b5fb49", "evidence": {"same_day": true, "patch_ids": ["600522b7a4fbb2aa981b105b9de13502"], "statement_hash": "10d03897798403ffce249e08c73faf46d13fdff611b447ec34239e94ca7c8895"}}], "version": "9.6.12", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "712c715b99423912677db044780ae49c", "kind": "equivalent", "version": "11.2", "label": "11.2", "title": "将时区数据文件更新到 tzdata 2018i 版，以反映哈萨克斯坦、梅特拉卡特拉及圣多美和普林西比的夏令时法规变更。由于部分地区未更改 UTC 偏移量，哈萨克斯坦的 Qyzylorda 时区被一分为二，创建了新时区 Asia/Qostanay。同时修正了香港及众多太平洋岛屿的历史数据。", "evidence": {"same_day": true, "patch_ids": ["600522b7a4fbb2aa981b105b9de13502"], "statement_hash": "10d03897798403ffce249e08c73faf46d13fdff611b447ec34239e94ca7c8895"}, "url": "/docs/compare/?release=11.2#11.2-1375076aa0ed6bb5", "source_url": "/docs/release/11.2/#id-1.11.6.25.5"}, {"db_id": "7f0d750645e2c102237305043ce3b2be", "kind": "equivalent", "version": "10.7", "label": "10.7", "title": "将时区数据文件更新到 tzdata 2018i 版，以反映哈萨克斯坦、梅特拉卡特拉及圣多美和普林西比的夏令时法规变更。由于部分地区未更改 UTC 偏移量，哈萨克斯坦的 Qyzylorda 时区被一分为二，创建了新时区 Asia/Qostanay。同时修正了香港及众多太平洋岛屿的历史数据。", "evidence": {"same_day": true, "patch_ids": ["600522b7a4fbb2aa981b105b9de13502"], "statement_hash": "10d03897798403ffce249e08c73faf46d13fdff611b447ec34239e94ca7c8895"}, "url": "/docs/compare/?release=10.7#10.7-1375076aa0ed6bb5", "source_url": "/docs/release/10.7/#id-1.11.6.21.5"}, {"db_id": "8fe8423f1e22b0dc72ef463701d7b1ce", "kind": "equivalent", "version": "9.5.16", "label": "9.5.16", "title": "更新时区数据文件到 tzdata 版本 2018i，涉及哈萨克斯坦、梅特拉卡特拉以及圣多美和普林西比的夏令时法规变更。哈萨克斯坦的克孜勒奥尔达时区一分为二，创建了新时区 Asia/Qostanay，因为部分地区没有更改 UTC 偏移。还有香港和众多太平洋岛屿的历史修正。", "evidence": {"same_day": true, "patch_ids": ["600522b7a4fbb2aa981b105b9de13502"], "statement_hash": "10d03897798403ffce249e08c73faf46d13fdff611b447ec34239e94ca7c8895"}, "url": "/docs/compare/?release=9.5.16#9.5.16-b36be6f5324a6314", "source_url": "/docs/release/9.5.16/#id-1.11.6.14.5"}, {"db_id": "9e69c9f4cb374d08796dba2770b5fb49", "kind": "equivalent", "version": "9.4.21", "label": "9.4.21", "title": "更新时区数据文件到 tzdata 版本 2018i，涉及哈萨克斯坦、梅特拉卡特拉以及圣多美和普林西比的夏令时法规变更。哈萨克斯坦的克孜勒奥尔达时区一分为二，创建了新时区 Asia/Qostanay，因为部分地区没有更改 UTC 偏移。还有香港和众多太平洋岛屿的历史修正。", "evidence": {"same_day": true, "patch_ids": ["600522b7a4fbb2aa981b105b9de13502"], "statement_hash": "10d03897798403ffce249e08c73faf46d13fdff611b447ec34239e94ca7c8895"}, "url": "/docs/compare/?release=9.4.21#9.4.21-b36be6f5324a6314", "source_url": "/docs/release/9.4.21/#id-1.11.6.10.6"}]}]}, {"date": "2018-11-08", "build": "9.6.11", "major": "9.6", "minor": 11, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.11", "eol_date": "2021-11-11", "date_text": "2018-11-08", "supported": false, "manual_url": "/docs/9.6/release-9-6-11.html", "source_url": "/docs/release/9.6.11/", "entry_count": 57, "placeholder": false, "content_hash": "7911acc8c918f2be6125df81f4497bb8836394eb82d8746c1f7e8e6bcd935542", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 57, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.9 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-9.html\" title=\"E.16. 版本 9.6.9\">第 E.16 节</a>。</p>", "compatibility_count": 0, "label": "9.6.11", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2883, "support_days": -1784, "entries": [{"id": "9.6.11-e78b5ffb8ddfac61", "cves": [], "html": "<p>修复 <code>has_<em><code>foo</code></em>_privilege()</code> 函数族的边界失败（Tom Lane）</p>\n<p>提供无效对象 OID 时返回 NULL 而不是抛出错误。其中一些函数本来就做对了，但并非全部。<code>has_column_privilege()</code> 在某些平台上还可能崩溃。</p>", "text": "修复 has_foo_privilege() 函数族的边界失败（Tom Lane） 提供无效对象 OID 时返回 NULL 而不是抛出错误。其中一些函数本来就做对了，但并非全部。has_column_privilege() 在某些平台上还可能崩溃。", "title": "修复 has_foo_privilege() 函数族的边界失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "3fb7a178d7638f3231e0ec389969ff4d4df120c12e38b44f968c8ba99770baf0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix corner-case failures in has_foo_privilege() family of functions (Tom Lane) Return NULL rather than throwing an error when an invalid object OID is provided. Some of these functions got that right already, but not all. has_column_privilege() was additionally capable of crashing on some platforms.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/001", "db_id": "1c7d1094b3823c84cbc602a18abdac46", "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803", "relations": [{"rule": 2, "type": "equivalent", "target": "6cece4c576a523c7173476b0e107e332", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}}, {"rule": 2, "type": "equivalent", "target": "96af06e3870344955bb0fd7885148278", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}}, {"rule": 2, "type": "equivalent", "target": "97090aaaef1aa21198fa7fe47f3961e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}}, {"rule": 2, "type": "equivalent", "target": "c20cf7d99d1186481d20e4a797919476", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "97090aaaef1aa21198fa7fe47f3961e9", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 has_foo_privilege() 系列函数在边界情况下的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}, "url": "/docs/compare/?release=10.6#10.6-fa50edbbb431b2a6", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "6cece4c576a523c7173476b0e107e332", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 has_foo_privilege() 函数族的边界失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}, "url": "/docs/compare/?release=9.5.15#9.5.15-e78b5ffb8ddfac61", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "c20cf7d99d1186481d20e4a797919476", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 has_foo_privilege() 函数族的边界失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}, "url": "/docs/compare/?release=9.4.20#9.4.20-e78b5ffb8ddfac61", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "96af06e3870344955bb0fd7885148278", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复 has_foo_privilege() 函数族的边界失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "678022fac74246975e43eb3e6e1e1c1537d52ca4ccb6ecc51b9795943ece5803"}, "url": "/docs/compare/?release=9.3.25#9.3.25-e78b5ffb8ddfac61", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-b352697ceefbf923", "cves": [], "html": "<p>避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速（Andrew Gierth）</p>", "text": "避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速（Andrew Gierth）", "title": "避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "6915bfa3ad6b16467e6def2a33ea20875270005cb5941ecc7bb807975e1880e2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid O(N^2) slowdown in regular expression match/split functions on long strings (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/002", "db_id": "83e2181e0e546997cabaa698d868c21a", "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d", "relations": [{"rule": 2, "type": "equivalent", "target": "2d8e20ffd2a0f3ef7214458b985b5b67", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}}, {"rule": 2, "type": "equivalent", "target": "7556ffafb7d571ed0a550a4cacec85bd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}}, {"rule": 2, "type": "equivalent", "target": "b1619bb42c237c4b31c8be8324f42261", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}}, {"rule": 2, "type": "equivalent", "target": "c4bca64fb5f68ada6b7fc67b3e745773", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2d8e20ffd2a0f3ef7214458b985b5b67", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "避免正则表达式匹配/分割函数在处理长字符串时出现 O(N^2) 性能下降", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}, "url": "/docs/compare/?release=10.6#10.6-dedaea3c22ecb555", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "c4bca64fb5f68ada6b7fc67b3e745773", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}, "url": "/docs/compare/?release=9.5.15#9.5.15-b352697ceefbf923", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "b1619bb42c237c4b31c8be8324f42261", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "避免正则表达式匹配/分割函数在长字符串上的 O(N^2) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}, "url": "/docs/compare/?release=9.4.20#9.4.20-4efc4c96d516c209", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "7556ffafb7d571ed0a550a4cacec85bd", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed7c6e214e46fd9195cc83cab9d3375793d6d92fdac790cd856256a2ef284b4d"}, "url": "/docs/compare/?release=9.3.25#9.3.25-b352697ceefbf923", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-d95d28b635828975", "cves": [], "html": "<p>修复紧随注释或 <code>+</code> 或 <code>-</code> 之后的标准多字符操作符的解析（Andrew Gierth）</p>\n<p>这一疏漏可能导致解析错误或优先级的不正确分配。</p>", "text": "修复紧随注释或 + 或 - 之后的标准多字符操作符的解析（Andrew Gierth） 这一疏漏可能导致解析错误或优先级的不正确分配。", "title": "修复紧随注释或 + 或 - 之后的标准多字符操作符的解析", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "5932c555ca151b338b8c0a83ec33928ef6d69819568333436bf7b60172d27a35", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix parsing of standard multi-character operators that are immediately followed by a comment or + or - (Andrew Gierth) This oversight could lead to parse errors, or to incorrect assignment of precedence.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/003", "db_id": "e2d655bf25a14c39e08dfe12cb41a503", "patch_ids": [], "statement_hash": "394825f0cfe9c500bdbe737746a6ee849b7a9e37d71998027df020c0f3a70a9c", "relations": [{"rule": 2, "type": "equivalent", "target": "190ac69c210f99a98bb267c24a86d1f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "394825f0cfe9c500bdbe737746a6ee849b7a9e37d71998027df020c0f3a70a9c"}}, {"rule": 2, "type": "equivalent", "target": "f4dcfa6102f0944db7c32e1c2d4c50d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "394825f0cfe9c500bdbe737746a6ee849b7a9e37d71998027df020c0f3a70a9c"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "190ac69c210f99a98bb267c24a86d1f0", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复对紧接着注释、+ 或 - 的标准多字符操作符的解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "394825f0cfe9c500bdbe737746a6ee849b7a9e37d71998027df020c0f3a70a9c"}, "url": "/docs/compare/?release=10.6#10.6-30b1765907528648", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "f4dcfa6102f0944db7c32e1c2d4c50d5", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复紧随注释或 + 或 - 之后的标准多字符操作符的解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "394825f0cfe9c500bdbe737746a6ee849b7a9e37d71998027df020c0f3a70a9c"}, "url": "/docs/compare/?release=9.5.15#9.5.15-d95d28b635828975", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}]}, {"id": "9.6.11-f985972cba8e294c", "cves": [], "html": "<p>避免词法分析器对长串 <code>+</code> 或 <code>-</code> 字符的 O(N^3) 减速（Andrew Gierth）</p>", "text": "避免词法分析器对长串 + 或 - 字符的 O(N^3) 减速（Andrew Gierth）", "title": "避免词法分析器对长串 + 或 - 字符的 O(N^3) 减速", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "0c8b0c42454f776be280d204187597cc7719c3a2fb2479b5c125ac3e1abb1969", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid O(N^3) slowdown in lexer for long strings of + or - characters (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/004", "db_id": "2fffc85446327d0d67db0de00b81f3ae", "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790", "relations": [{"rule": 2, "type": "equivalent", "target": "226aea47f8112ce926f307dd99216b28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}}, {"rule": 2, "type": "equivalent", "target": "2c554df258bdc8377d8bbc785e5d5d9f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}}, {"rule": 2, "type": "equivalent", "target": "3ea1ad5e1e8b0c97d19b6f7e0ebf40f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}}, {"rule": 2, "type": "equivalent", "target": "a1f72805bb86509ffb2f872952f21cfd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2c554df258bdc8377d8bbc785e5d5d9f", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "避免词法分析器处理由 + 或 - 字符组成的长字符串时出现 O(N^3) 性能下降", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}, "url": "/docs/compare/?release=10.6#10.6-1d60394aa88e02ca", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "3ea1ad5e1e8b0c97d19b6f7e0ebf40f7", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "避免词法分析器对长串 + 或 - 字符的 O(N^3) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}, "url": "/docs/compare/?release=9.5.15#9.5.15-f985972cba8e294c", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "226aea47f8112ce926f307dd99216b28", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "避免词法分析器在长+或-字符字符串上的 O(N^3) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}, "url": "/docs/compare/?release=9.4.20#9.4.20-bbaabd9772e26381", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "a1f72805bb86509ffb2f872952f21cfd", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "避免词法分析器对长串 + 或 - 字符的 O(N^3) 减速", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e420c58a4791ad9a45c1d636aba3985e9c532b2fc1a1a229896d92ae6217d790"}, "url": "/docs/compare/?release=9.3.25#9.3.25-f985972cba8e294c", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-11663612e169f52d", "cves": [], "html": "<p>修复外层查询被反向扫描时 SubPlan 的错误执行（Andrew Gierth）</p>", "text": "修复外层查询被反向扫描时 SubPlan 的错误执行（Andrew Gierth）", "title": "修复外层查询被反向扫描时 SubPlan 的错误执行", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "21c8756ab2d50f155049ca03042f9e3c50c5c0e96e4f579268beefd5df0252a1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix mis-execution of SubPlans when the outer query is being scanned backwards (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/005", "db_id": "22a5e153958bb020b46a98e742603a0b", "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1", "relations": [{"rule": 2, "type": "equivalent", "target": "2d6b367ebcd684a522541fc8e74b0c84", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}}, {"rule": 2, "type": "equivalent", "target": "841da23ed5759bf95580883781464850", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}}, {"rule": 2, "type": "equivalent", "target": "abd82ba9e0388c32ad9ea1611cdbe3b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}}, {"rule": 2, "type": "equivalent", "target": "dcd9813510d56f5391eaf1bcb59c04fa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "abd82ba9e0388c32ad9ea1611cdbe3b5", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复反向扫描外层查询时 SubPlan 执行不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}, "url": "/docs/compare/?release=10.6#10.6-8f88131dc050c635", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "2d6b367ebcd684a522541fc8e74b0c84", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复外层查询被反向扫描时 SubPlan 的错误执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}, "url": "/docs/compare/?release=9.5.15#9.5.15-11663612e169f52d", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "dcd9813510d56f5391eaf1bcb59c04fa", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复外层查询反向扫描时 SubPlan 被错误执行的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}, "url": "/docs/compare/?release=9.4.20#9.4.20-2049893541afc10e", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "841da23ed5759bf95580883781464850", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复外层查询被反向扫描时 SubPlan 的错误执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0756a57041579435e5fab801185a9bb993de6f7dba13fd9b7888de17716596a1"}, "url": "/docs/compare/?release=9.3.25#9.3.25-11663612e169f52d", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-cab07d819471643d", "cves": [], "html": "<p>修复回卷所引用游标后 <code>UPDATE/DELETE ... WHERE CURRENT OF ...</code> 的失败（Tom Lane）</p>\n<p>扫描多个关系（特别是继承树）的游标如果被回卷到较早的关系，可能产生错误行为。</p>", "text": "修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败（Tom Lane） 扫描多个关系（特别是继承树）的游标如果被回卷到较早的关系，可能产生错误行为。", "title": "修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "e7dc8640bb4cae888d7bb328c9188488f8459261727b6bd7570078028de2e5cd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure of UPDATE/DELETE ... WHERE CURRENT OF ... after rewinding the referenced cursor (Tom Lane) A cursor that scans multiple relations (particularly an inheritance tree) could produce wrong behavior if rewound to an earlier relation.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/006", "db_id": "b02323187c02b1b18500db0838a9338a", "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8", "relations": [{"rule": 2, "type": "equivalent", "target": "4bbd929ffe042cca6bb5214bcb9d0d8d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}}, {"rule": 2, "type": "equivalent", "target": "695ae6ed34779d61bf85465915f83708", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}}, {"rule": 2, "type": "equivalent", "target": "7774665d3d540dff9f533392cf41364b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}}, {"rule": 2, "type": "equivalent", "target": "d52d30924584e7029ad77bdbdcabb0bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7774665d3d540dff9f533392cf41364b", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复将引用的游标回退后，UPDATE/DELETE ... WHERE CURRENT OF ... 发生的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}, "url": "/docs/compare/?release=10.6#10.6-4c38402f8ea098d3", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "d52d30924584e7029ad77bdbdcabb0bf", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}, "url": "/docs/compare/?release=9.5.15#9.5.15-cab07d819471643d", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "695ae6ed34779d61bf85465915f83708", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}, "url": "/docs/compare/?release=9.4.20#9.4.20-cab07d819471643d", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "4bbd929ffe042cca6bb5214bcb9d0d8d", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06f8948a709e7d2ce1f121ef6f4f975b8d0bf800d3b4c263a0d025d44d8bd3a8"}, "url": "/docs/compare/?release=9.3.25#9.3.25-cab07d819471643d", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-651b9852143ce292", "cves": [], "html": "<p>修复 <code>EvalPlanQual</code> 正确处理条件执行的 InitPlan（Andrew Gierth、Tom Lane）</p>\n<p>如果并发更新包含诸如 <code>CASE</code> 构造内的不相关子 <code>SELECT</code> 之类的代码，这会导致难以重现的崩溃或错误答案。</p>", "text": "修复 EvalPlanQual 正确处理条件执行的 InitPlan（Andrew Gierth、Tom Lane） 如果并发更新包含诸如 CASE 构造内的不相关子 SELECT 之类的代码，这会导致难以重现的崩溃或错误答案。", "title": "修复 EvalPlanQual 正确处理条件执行的 InitPlan", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "7874cb77ba84bb6288735c6da5cf0af1b7d943dcf2f83cde6683c3ffe1af84f7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix EvalPlanQual to handle conditionally-executed InitPlans properly (Andrew Gierth, Tom Lane) This resulted in hard-to-reproduce crashes or wrong answers in concurrent updates, if they contained code such as an uncorrelated sub-SELECT inside a CASE construct.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/007", "db_id": "0aac8174b3f81abd9629ebd2715eb170", "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27", "relations": [{"rule": 2, "type": "equivalent", "target": "27d67e082ad5215229610a3302655a92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}}, {"rule": 2, "type": "equivalent", "target": "4b48cb645fd752e0d8ab07bdb5def241", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}}, {"rule": 2, "type": "equivalent", "target": "6cb6bf95285b4e0346c3310a8ed84fcd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}}, {"rule": 2, "type": "equivalent", "target": "738e1481a5390ca38f5fa6fe6ea8d549", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "738e1481a5390ca38f5fa6fe6ea8d549", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 EvalPlanQual，使其正确处理有条件执行的 InitPlan", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}, "url": "/docs/compare/?release=10.6#10.6-42d47624ec2f05ae", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "4b48cb645fd752e0d8ab07bdb5def241", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 EvalPlanQual 正确处理条件执行的 InitPlan", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}, "url": "/docs/compare/?release=9.5.15#9.5.15-651b9852143ce292", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "27d67e082ad5215229610a3302655a92", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 EvalPlanQual 正确处理条件执行的 InitPlan", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}, "url": "/docs/compare/?release=9.4.20#9.4.20-651b9852143ce292", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "6cb6bf95285b4e0346c3310a8ed84fcd", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复 EvalPlanQual 正确处理条件执行的 InitPlan", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b5a88bbfdf8a7a6db9fdf07964ab476a4bacd2dbe8dc273011bbaee41305be27"}, "url": "/docs/compare/?release=9.3.25#9.3.25-651b9852143ce292", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-ded82ea69402a5be", "cves": [], "html": "<p>修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败（Tom Lane、Kenji Uno）</p>\n<p>此 bug 影响全文搜索操作以及 <code>contrib/ltree</code> 和 <code>contrib/pg_trgm</code>。</p>", "text": "修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败（Tom Lane、Kenji Uno） 此 bug 影响全文搜索操作以及 contrib/ltree 和 contrib/pg_trgm。", "title": "修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "ec20ff606c0138c87c7c44f116a7079e92deb06f1a0c0a7f2590c1f131f577fd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix character-class checks to not fail on Windows for Unicode characters above U+FFFF (Tom Lane, Kenji Uno) This bug affected full-text-search operations, as well as contrib/ltree and contrib/pg_trgm.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/008", "db_id": "4c4389058c6ec15d24710974ee433b72", "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f", "relations": [{"rule": 2, "type": "equivalent", "target": "07ac0e68d39e5eb1d01772c622ef886b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}}, {"rule": 2, "type": "equivalent", "target": "3b1425c29091cb957c19ef962eedcc91", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}}, {"rule": 2, "type": "equivalent", "target": "71a0050bfe91eb9a80a48cf58fa38867", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}}, {"rule": 2, "type": "equivalent", "target": "ac497120f0805b17c85a3c027b169e05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}}, {"rule": 2, "type": "equivalent", "target": "e8bab94529b5c87f952ec89057ca34bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "07ac0e68d39e5eb1d01772c622ef886b", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "修复字符类检查，使其在 Windows 上不会因高于 U+FFFF 的 Unicode 字符而失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}, "url": "/docs/compare/?release=11.1#11.1-b0b9b655780b1845", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "3b1425c29091cb957c19ef962eedcc91", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复字符类检查，使其在 Windows 上不会因高于 U+FFFF 的 Unicode 字符而失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}, "url": "/docs/compare/?release=10.6#10.6-b0b9b655780b1845", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "71a0050bfe91eb9a80a48cf58fa38867", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}, "url": "/docs/compare/?release=9.5.15#9.5.15-ded82ea69402a5be", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "e8bab94529b5c87f952ec89057ca34bc", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}, "url": "/docs/compare/?release=9.4.20#9.4.20-ded82ea69402a5be", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "ac497120f0805b17c85a3c027b169e05", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8fe30e8a00498505d1af1c06936dccd32cb92a9c671731c5004c471060848b8f"}, "url": "/docs/compare/?release=9.3.25#9.3.25-ded82ea69402a5be", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-66d163ccd2731e1a", "cves": [], "html": "<p>禁止把包含窗口函数、<code>LIMIT</code> 或 <code>OFFSET</code> 的子 <code>SELECT</code> 下推给并行工作者（Amit Kapila）</p>\n<p>由于行序变化导致的不确定性，不同工作者可能得到不同答案，这类情况可能导致行为不一致。</p>", "text": "禁止把包含窗口函数、LIMIT 或 OFFSET 的子 SELECT 下推给并行工作者（Amit Kapila） 由于行序变化导致的不确定性，不同工作者可能得到不同答案，这类情况可能导致行为不一致。", "title": "禁止把包含窗口函数、LIMIT 或 OFFSET 的子 SELECT 下推给并行工作者", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "4ed4684b4d9f8f9ad022a2bf9eff7e0d0691662d4c4699bd4b1ed7d62db24769", "section_path": ["变更"], "commit_groups": [], "identity_text": "Disallow pushing sub-SELECTs containing window functions, LIMIT, or OFFSET to parallel workers (Amit Kapila) Such cases could result in inconsistent behavior due to different workers getting different answers, as a result of indeterminacy due to row-ordering variations.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/009", "db_id": "8e375dea66b60eb20b9723f3dcad0742", "patch_ids": [], "statement_hash": "b984fb787a230e4e1e345262f9bcc4ffefbc353709a997aa3b758be367e39ce8", "relations": [{"rule": 2, "type": "equivalent", "target": "2a4a4949032587fed1eade33d28f0250", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b984fb787a230e4e1e345262f9bcc4ffefbc353709a997aa3b758be367e39ce8"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2a4a4949032587fed1eade33d28f0250", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "禁止将包含窗口函数、LIMIT 或 OFFSET 的子 SELECT 下推到并行工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b984fb787a230e4e1e345262f9bcc4ffefbc353709a997aa3b758be367e39ce8"}, "url": "/docs/compare/?release=10.6#10.6-38eb31bd7e65b982", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}]}, {"id": "9.6.11-ce4ecb04b29ae2d6", "cves": [], "html": "<p>确保外部表拥有的序列由该表上的 <code>ALTER OWNER</code> 处理（Peter Eisentraut）</p>\n<p>所有权更改应当也传播到这种序列，但外部表的情况被遗漏了。</p>", "text": "确保外部表拥有的序列由该表上的 ALTER OWNER 处理（Peter Eisentraut） 所有权更改应当也传播到这种序列，但外部表的情况被遗漏了。", "title": "确保外部表拥有的序列由该表上的 ALTER OWNER 处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "f755ab79570b1442a38abfd9836c94a1cd4d5a2aa0c155d3132e34fe9c55ca8a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that sequences owned by a foreign table are processed by ALTER OWNER on the table (Peter Eisentraut) The ownership change should propagate to such sequences as well, but this was missed for foreign tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/010", "db_id": "94a2d612e8de966c46ad462e2fb4de7b", "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93", "relations": [{"rule": 2, "type": "equivalent", "target": "6618083c70ed8a7017bc1d41d078147a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}}, {"rule": 2, "type": "equivalent", "target": "80b4f6db51589edd819c5252ae52065c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}}, {"rule": 2, "type": "equivalent", "target": "b42dca4d55aadf5b6b8c659f0ba6037a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}}, {"rule": 2, "type": "equivalent", "target": "f92b74a6fa58624ac4d59f53d74cfe7e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b42dca4d55aadf5b6b8c659f0ba6037a", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "确保对外部表执行 ALTER OWNER 时，也处理该表拥有的序列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}, "url": "/docs/compare/?release=10.6#10.6-8f724748c2d9bb0a", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "f92b74a6fa58624ac4d59f53d74cfe7e", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "确保外部表拥有的序列由该表上的 ALTER OWNER 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}, "url": "/docs/compare/?release=9.5.15#9.5.15-ce4ecb04b29ae2d6", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "80b4f6db51589edd819c5252ae52065c", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "确保外部表拥有的序列由该表上的 ALTER OWNER 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}, "url": "/docs/compare/?release=9.4.20#9.4.20-ce4ecb04b29ae2d6", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "6618083c70ed8a7017bc1d41d078147a", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "确保外部表拥有的序列由该表上的 ALTER OWNER 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f00a25f7c8540d34cf0a6284b3f08d8ba48a711c48c9b5565f7daec189a29d93"}, "url": "/docs/compare/?release=9.3.25#9.3.25-ce4ecb04b29ae2d6", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-a2c8631463649323", "cves": [], "html": "<p>确保服务器在等待客户端输入之前处理已收到的 <code>NOTIFY</code> 和 <code>SIGTERM</code> 中断（Jeff Janes、Tom Lane）</p>", "text": "确保服务器在等待客户端输入之前处理已收到的 NOTIFY 和 SIGTERM 中断（Jeff Janes、Tom Lane）", "title": "确保服务器在等待客户端输入之前处理已收到的 NOTIFY 和 SIGTERM 中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "b0672febf4e57062798db2af2f1d95acc3b6bbcf8f2a790ffa8f56dc3efe045a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that the server will process already-received NOTIFY and SIGTERM interrupts before waiting for client input (Jeff Janes, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/011", "db_id": "58a0a41b7dede37cef3fb1c940a2aff6", "patch_ids": [], "statement_hash": "1f6aaab866c8e48e0146e6af6a7dcd983762e678249084770092512aee8e0b8c", "relations": [{"rule": 2, "type": "equivalent", "target": "a8267ccfb469efa114b4079b06d82dc2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6aaab866c8e48e0146e6af6a7dcd983762e678249084770092512aee8e0b8c"}}, {"rule": 2, "type": "equivalent", "target": "a9e36a6f80e9e4054f9930438ca27b26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6aaab866c8e48e0146e6af6a7dcd983762e678249084770092512aee8e0b8c"}}, {"rule": 2, "type": "equivalent", "target": "ee3e886f2c98b2f632e1888be46239d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6aaab866c8e48e0146e6af6a7dcd983762e678249084770092512aee8e0b8c"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a8267ccfb469efa114b4079b06d82dc2", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "确保服务器在等待客户端输入之前，处理已收到的 NOTIFY 和 SIGTERM 中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6aaab866c8e48e0146e6af6a7dcd983762e678249084770092512aee8e0b8c"}, "url": "/docs/compare/?release=11.1#11.1-77265fd972ce43af", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "a9e36a6f80e9e4054f9930438ca27b26", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "确保服务器在等待客户端输入之前，处理已收到的 NOTIFY 和 SIGTERM 中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6aaab866c8e48e0146e6af6a7dcd983762e678249084770092512aee8e0b8c"}, "url": "/docs/compare/?release=10.6#10.6-77265fd972ce43af", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "ee3e886f2c98b2f632e1888be46239d0", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "确保服务器在等待客户端输入之前处理已收到的 NOTIFY 和 SIGTERM 中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6aaab866c8e48e0146e6af6a7dcd983762e678249084770092512aee8e0b8c"}, "url": "/docs/compare/?release=9.5.15#9.5.15-a2c8631463649323", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}]}, {"id": "9.6.11-fba3c6af39aefdac", "cves": [], "html": "<p>修复 <code>array_out()</code> 结果字符串的空间过度分配（Keiichi Hirobe）</p>", "text": "修复 array_out() 结果字符串的空间过度分配（Keiichi Hirobe）", "title": "修复 array_out() 结果字符串的空间过度分配", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "ca29e615662840946f33dbbaa8e958fbe1ba0c173c7447a6be9a5c442dc14d73", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix over-allocation of space for array_out()'s result string (Keiichi Hirobe)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/012", "db_id": "0a02cace4d48586a7ffb8b266ffe15e7", "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747", "relations": [{"rule": 2, "type": "equivalent", "target": "531b63df57908783b1db890f56d326da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}}, {"rule": 2, "type": "equivalent", "target": "bd1224e746a05c5e11e82237dd07d216", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}}, {"rule": 2, "type": "equivalent", "target": "bd91fae05bc943d159f59f99f943ff12", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}}, {"rule": 2, "type": "equivalent", "target": "d34b459322afd467d1c81419002ba57b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bd91fae05bc943d159f59f99f943ff12", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复为 array_out() 的结果字符串分配过多空间的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}, "url": "/docs/compare/?release=10.6#10.6-3f7e0d70828bc51f", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "bd1224e746a05c5e11e82237dd07d216", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 array_out() 结果字符串的空间过度分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}, "url": "/docs/compare/?release=9.5.15#9.5.15-fba3c6af39aefdac", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "d34b459322afd467d1c81419002ba57b", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复array_out()结果字符串空间过度分配的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}, "url": "/docs/compare/?release=9.4.20#9.4.20-3de009b88f27d82a", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "531b63df57908783b1db890f56d326da", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复 array_out() 结果字符串的空间过度分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f0c546188add5f7562aa7e73c59cc3148eb5409053b8ccc3b0e7d5379d43747"}, "url": "/docs/compare/?release=9.3.25#9.3.25-fba3c6af39aefdac", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-b5fe498b8a00261e", "cves": [], "html": "<p>修复重复 SP-GiST 索引扫描中的内存泄漏（Tom Lane）</p>\n<p>目前已知只有当使用 SP-GiST 的排他约束在单条命令中接收许多新索引条目时，这才会达到显著程度。</p>", "text": "修复重复 SP-GiST 索引扫描中的内存泄漏（Tom Lane） 目前已知只有当使用 SP-GiST 的排他约束在单条命令中接收许多新索引条目时，这才会达到显著程度。", "title": "修复重复 SP-GiST 索引扫描中的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "f103ec6d281454e860cff24223696a98a654d65722f34f62d30e1293a51935bb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix memory leak in repeated SP-GiST index scans (Tom Lane) This is only known to amount to anything significant in cases where an exclusion constraint using SP-GiST receives many new index entries in a single command.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/013", "db_id": "d36720e5fa0884f4bf6165c602c3ab83", "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b", "relations": [{"rule": 2, "type": "equivalent", "target": "461f8794e1c01e2cc3f5c331235d7da1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}}, {"rule": 2, "type": "equivalent", "target": "7d01879c253fb3fe4968c53cd6bb9c5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}}, {"rule": 2, "type": "equivalent", "target": "97251aceae3237fca5cfc03ab2772ed8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}}, {"rule": 2, "type": "equivalent", "target": "a7f4ceb548ef27e44454af0fb4f0ea7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}}, {"rule": 2, "type": "equivalent", "target": "b55562a2b724286d5206d8ef8095da34", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b55562a2b724286d5206d8ef8095da34", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "修复重复扫描 SP-GiST 索引时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}, "url": "/docs/compare/?release=11.1#11.1-68991a6abf9bcfaa", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "97251aceae3237fca5cfc03ab2772ed8", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复重复扫描 SP-GiST 索引时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}, "url": "/docs/compare/?release=10.6#10.6-68991a6abf9bcfaa", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "a7f4ceb548ef27e44454af0fb4f0ea7b", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复重复 SP-GiST 索引扫描中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}, "url": "/docs/compare/?release=9.5.15#9.5.15-b5fe498b8a00261e", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "7d01879c253fb3fe4968c53cd6bb9c5a", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复重复 SP-GiST 索引扫描中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}, "url": "/docs/compare/?release=9.4.20#9.4.20-b5fe498b8a00261e", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "461f8794e1c01e2cc3f5c331235d7da1", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复重复 SP-GiST 索引扫描中的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "84dda1f995e75fd1e58b5edd244a3ba6761ec3b5ce33a51a1f1df24d5003869b"}, "url": "/docs/compare/?release=9.3.25#9.3.25-b5fe498b8a00261e", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-160f5f80c2cbdce8", "cves": [], "html": "<p>确保 <code>ApplyLogicalMappingFile()</code> 用完后关闭映射文件（Tomas Vondra）</p>\n<p>此前文件描述符被泄漏，最终导致逻辑解码期间的失败。</p>", "text": "确保 ApplyLogicalMappingFile() 用完后关闭映射文件（Tomas Vondra） 此前文件描述符被泄漏，最终导致逻辑解码期间的失败。", "title": "确保 ApplyLogicalMappingFile() 用完后关闭映射文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "b73ee7b1d69b3551f30184aebe3df88f91561df2abb8a8bb2461440df8caac5c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that ApplyLogicalMappingFile() closes the mapping file when done with it (Tomas Vondra) Previously, the file descriptor was leaked, eventually resulting in failures during logical decoding.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/014", "db_id": "2f3b7711ad0dc204192fad2b1d940b04", "patch_ids": [], "statement_hash": "fae331b6ee143023b295631675900f2583aa22c1f9c905e0d1d962ee5d777d65", "relations": [{"rule": 2, "type": "equivalent", "target": "33ece88e8a2ae773a6eccbc814dc3281", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fae331b6ee143023b295631675900f2583aa22c1f9c905e0d1d962ee5d777d65"}}, {"rule": 2, "type": "equivalent", "target": "42f02902af7a5de45a513be5f6739233", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fae331b6ee143023b295631675900f2583aa22c1f9c905e0d1d962ee5d777d65"}}, {"rule": 2, "type": "equivalent", "target": "ed3c6183d6775575858a9dce0203eec8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fae331b6ee143023b295631675900f2583aa22c1f9c905e0d1d962ee5d777d65"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed3c6183d6775575858a9dce0203eec8", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "确保 ApplyLogicalMappingFile() 使用完映射文件后将其关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fae331b6ee143023b295631675900f2583aa22c1f9c905e0d1d962ee5d777d65"}, "url": "/docs/compare/?release=10.6#10.6-c2a44687ee6edbef", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "42f02902af7a5de45a513be5f6739233", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "确保 ApplyLogicalMappingFile() 用完后关闭映射文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fae331b6ee143023b295631675900f2583aa22c1f9c905e0d1d962ee5d777d65"}, "url": "/docs/compare/?release=9.5.15#9.5.15-160f5f80c2cbdce8", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "33ece88e8a2ae773a6eccbc814dc3281", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "确保 ApplyLogicalMappingFile() 用完后关闭映射文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fae331b6ee143023b295631675900f2583aa22c1f9c905e0d1d962ee5d777d65"}, "url": "/docs/compare/?release=9.4.20#9.4.20-160f5f80c2cbdce8", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.6.11-c0c9eb9be6d19f30", "cves": [], "html": "<p>修复逻辑解码处理被映射目录表被反复重写（例如被 <code>VACUUM FULL</code>）的情况（Andres Freund）</p>", "text": "修复逻辑解码处理被映射目录表被反复重写（例如被 VACUUM FULL）的情况（Andres Freund）", "title": "修复逻辑解码处理被映射目录表被反复重写（例如被 VACUUM FULL）的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "0ce0e5a657c53a640cd0b4a04ff0f99100ff8d0b8adce3abc7d4494719f53e7a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix logical decoding to handle cases where a mapped catalog table is repeatedly rewritten, e.g., by VACUUM FULL (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/015", "db_id": "6413a60b39fc975c1ab9c6bc14aac172", "patch_ids": [], "statement_hash": "e52c8848190389bb93c0beec37f2c3f8431093d9841efb7bf442b445c3bafa91", "relations": [{"rule": 2, "type": "equivalent", "target": "7757c56b72279dcbaf986ed8563f992b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e52c8848190389bb93c0beec37f2c3f8431093d9841efb7bf442b445c3bafa91"}}, {"rule": 2, "type": "equivalent", "target": "8213dcd38a333b887b044897ca3d46bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e52c8848190389bb93c0beec37f2c3f8431093d9841efb7bf442b445c3bafa91"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8213dcd38a333b887b044897ca3d46bc", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复逻辑解码，使其能够处理映射目录表被反复重写的情况，例如通过 VACUUM FULL 重写", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e52c8848190389bb93c0beec37f2c3f8431093d9841efb7bf442b445c3bafa91"}, "url": "/docs/compare/?release=10.6#10.6-33cc033baeb2dbec", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "7757c56b72279dcbaf986ed8563f992b", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复逻辑解码处理被映射目录表被反复重写（例如被 VACUUM FULL）的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e52c8848190389bb93c0beec37f2c3f8431093d9841efb7bf442b445c3bafa91"}, "url": "/docs/compare/?release=9.5.15#9.5.15-c0c9eb9be6d19f30", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}]}, {"id": "9.6.11-070d3827f034c332", "cves": [], "html": "<p>防止以低到无法支持现有复制槽的 <code>wal_level</code> 启动服务器（Andres Freund）</p>", "text": "防止以低到无法支持现有复制槽的 wal_level 启动服务器（Andres Freund）", "title": "防止以低到无法支持现有复制槽的 wal_level 启动服务器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "a8cb542a88a12ce69fe3ad54e93c5eefc152340d0b1f8e8bc9412a6052e59305", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent starting the server with wal_level set to too low a value to support an existing replication slot (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/016", "db_id": "69a3869c5059c2f6891c79168f3efbb1", "patch_ids": [], "statement_hash": "1f6f61fc8b15e3a915a12a7a9b26605a67358cc4fedd1a3e3e74dfec7580a96b", "relations": [{"rule": 2, "type": "equivalent", "target": "272d9b334637457fb19c505fe2c5744c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6f61fc8b15e3a915a12a7a9b26605a67358cc4fedd1a3e3e74dfec7580a96b"}}, {"rule": 2, "type": "equivalent", "target": "349a29f6c61ca7e400b3c496e944e2dc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6f61fc8b15e3a915a12a7a9b26605a67358cc4fedd1a3e3e74dfec7580a96b"}}, {"rule": 2, "type": "equivalent", "target": "4a2c4704546f5705519d3623cbc3ec9c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6f61fc8b15e3a915a12a7a9b26605a67358cc4fedd1a3e3e74dfec7580a96b"}}, {"rule": 2, "type": "equivalent", "target": "bb8ad4ce1290f5a5a79dad07ecca169c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6f61fc8b15e3a915a12a7a9b26605a67358cc4fedd1a3e3e74dfec7580a96b"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bb8ad4ce1290f5a5a79dad07ecca169c", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "如果 wal_level 设置过低，无法支持现有复制槽，则禁止启动服务器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6f61fc8b15e3a915a12a7a9b26605a67358cc4fedd1a3e3e74dfec7580a96b"}, "url": "/docs/compare/?release=11.1#11.1-fa741401ce2eb557", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "272d9b334637457fb19c505fe2c5744c", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "如果 wal_level 设置过低，无法支持现有复制槽，则禁止启动服务器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6f61fc8b15e3a915a12a7a9b26605a67358cc4fedd1a3e3e74dfec7580a96b"}, "url": "/docs/compare/?release=10.6#10.6-fa741401ce2eb557", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "349a29f6c61ca7e400b3c496e944e2dc", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "防止以低到无法支持现有复制槽的 wal_level 启动服务器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6f61fc8b15e3a915a12a7a9b26605a67358cc4fedd1a3e3e74dfec7580a96b"}, "url": "/docs/compare/?release=9.5.15#9.5.15-070d3827f034c332", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "4a2c4704546f5705519d3623cbc3ec9c", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "阻止以过低的wal_level值（不足以支持现有复制槽）启动服务器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f6f61fc8b15e3a915a12a7a9b26605a67358cc4fedd1a3e3e74dfec7580a96b"}, "url": "/docs/compare/?release=9.4.20#9.4.20-5f1f80775e7a1eac", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.6.11-3444b7d3b47b4b5f", "cves": [], "html": "<p>避免实用命令导致无限递归时崩溃（Tom Lane）</p>", "text": "避免实用命令导致无限递归时崩溃（Tom Lane）", "title": "避免实用命令导致无限递归时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "d3ed6755af22b59c91d9e925e4dc6a3c6632b527518878571eb8c9eb2c2bc810", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid crash if a utility command causes infinite recursion (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/017", "db_id": "26157e0a7b24fed80c69e307b7c1dc20", "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7", "relations": [{"rule": 2, "type": "equivalent", "target": "0922a2fee22e9e74564a9e57f2fefe76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}}, {"rule": 2, "type": "equivalent", "target": "7f3d086367127345d795fd398adbc742", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}}, {"rule": 2, "type": "equivalent", "target": "86b8922d65a199a14ae7e9e533885def", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}}, {"rule": 2, "type": "equivalent", "target": "e6d72def7c2efcdd6b37a79b99f8a873", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e6d72def7c2efcdd6b37a79b99f8a873", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "避免实用命令导致无限递归时发生崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}, "url": "/docs/compare/?release=10.6#10.6-f8a763ae53f71dd1", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "7f3d086367127345d795fd398adbc742", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "避免实用命令导致无限递归时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}, "url": "/docs/compare/?release=9.5.15#9.5.15-3444b7d3b47b4b5f", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "86b8922d65a199a14ae7e9e533885def", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "避免工具命令导致无限递归时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}, "url": "/docs/compare/?release=9.4.20#9.4.20-8e095a7def4d42b9", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "0922a2fee22e9e74564a9e57f2fefe76", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "避免实用命令导致无限递归时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "131294d8699505666eb2299a151418032f21236e40b33a7322943513bf5bead7"}, "url": "/docs/compare/?release=9.3.25#9.3.25-3444b7d3b47b4b5f", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-5d50159cb0258ae6", "cves": [], "html": "<p>初始化热备时，应对由主库两阶段事务引起的重复 XID（Michael Paquier、Konstantin Knizhnik）</p>", "text": "初始化热备时，应对由主库两阶段事务引起的重复 XID（Michael Paquier、Konstantin Knizhnik）", "title": "初始化热备时，应对由主库两阶段事务引起的重复 XID", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "b1a31be70aec034dd3a0262f6755f313f6ed5eeee412042629ae00a20d84c005", "section_path": ["变更"], "commit_groups": [], "identity_text": "When initializing a hot standby, cope with duplicate XIDs caused by two-phase transactions on the master (Michael Paquier, Konstantin Knizhnik)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/018", "db_id": "d4dec718d026b8c6b28e4c18fe14386c", "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd", "relations": [{"rule": 2, "type": "equivalent", "target": "068314b3c9b56d151488a0724a785189", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}}, {"rule": 2, "type": "equivalent", "target": "19f4c5edafeb14aecb7991b1586b4242", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}}, {"rule": 2, "type": "equivalent", "target": "2fa0d2e388ba883d25aa11057b954833", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}}, {"rule": 2, "type": "equivalent", "target": "adfd95c326479ba642ebf44be985ac57", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2fa0d2e388ba883d25aa11057b954833", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "初始化热备时，处理主库上的两阶段事务导致的重复 XID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}, "url": "/docs/compare/?release=10.6#10.6-ca43724675917190", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "19f4c5edafeb14aecb7991b1586b4242", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "初始化热备时，应对由主库两阶段事务引起的重复 XID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}, "url": "/docs/compare/?release=9.5.15#9.5.15-5d50159cb0258ae6", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "068314b3c9b56d151488a0724a785189", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "初始化热备时，处理主库两阶段事务造成的重复 XID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}, "url": "/docs/compare/?release=9.4.20#9.4.20-8573ae5456462b8f", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "adfd95c326479ba642ebf44be985ac57", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "初始化热备时，应对由主库两阶段事务引起的重复 XID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b7dc20a5a4b144d20b0e91d604c5011745a7e5d12bf08ae4d3392263ddf1fd"}, "url": "/docs/compare/?release=9.3.25#9.3.25-5d50159cb0258ae6", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-1080671f764013e3", "cves": [], "html": "<p>修复事件触发器处理嵌套 <code>ALTER TABLE</code> 命令（Michael Paquier、Álvaro Herrera）</p>", "text": "修复事件触发器处理嵌套 ALTER TABLE 命令（Michael Paquier、Álvaro Herrera）", "title": "修复事件触发器处理嵌套 ALTER TABLE 命令", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "bffd0d9e10f00cb3c959543f0d421d742d65151a6a1b3f1310501a355baa99fc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix event triggers to handle nested ALTER TABLE commands (Michael Paquier, Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/019", "db_id": "6d78663872ccf703d6e29af22a355fb3", "patch_ids": [], "statement_hash": "4f8a0a9ff1742cbf2f5214dd3632034ddfa440bcbfa59a156c674e767b17be95", "relations": [{"rule": 2, "type": "equivalent", "target": "66e9adccc6cdfa56fad75ac7220bfe96", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f8a0a9ff1742cbf2f5214dd3632034ddfa440bcbfa59a156c674e767b17be95"}}, {"rule": 2, "type": "equivalent", "target": "75b740f4454c93758d3d459f004ca4fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f8a0a9ff1742cbf2f5214dd3632034ddfa440bcbfa59a156c674e767b17be95"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "66e9adccc6cdfa56fad75ac7220bfe96", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复事件触发器，使其能够处理嵌套的 ALTER TABLE 命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f8a0a9ff1742cbf2f5214dd3632034ddfa440bcbfa59a156c674e767b17be95"}, "url": "/docs/compare/?release=10.6#10.6-e92504a950b597cf", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "75b740f4454c93758d3d459f004ca4fd", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复事件触发器处理嵌套 ALTER TABLE 命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f8a0a9ff1742cbf2f5214dd3632034ddfa440bcbfa59a156c674e767b17be95"}, "url": "/docs/compare/?release=9.5.15#9.5.15-1080671f764013e3", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}]}, {"id": "9.6.11-82222a93b4d52cd1", "cves": [], "html": "<p>把父进程的事务和语句开始时间戳传播给并行工作者（Konstantin Knizhnik）</p>\n<p>这防止工作者中执行 <code>transaction_timestamp()</code> 等函数时的错误行为。</p>", "text": "把父进程的事务和语句开始时间戳传播给并行工作者（Konstantin Knizhnik） 这防止工作者中执行 transaction_timestamp() 等函数时的错误行为。", "title": "把父进程的事务和语句开始时间戳传播给并行工作者", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "03fd8edc5b2c9bfd18f502939c4d875a875fc57982022312d5fe1470f6069b00", "section_path": ["变更"], "commit_groups": [], "identity_text": "Propagate parent process's transaction and statement start timestamps to parallel workers (Konstantin Knizhnik) This prevents misbehavior of functions such as transaction_timestamp() when executed in a worker.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/020", "db_id": "ac08b94c95432207b88e3e5c2ea751e5", "patch_ids": [], "statement_hash": "a13932b433d9b2cc888bacdde5cf71778ca278002c7928115d2ff2546f92a199", "relations": [{"rule": 2, "type": "equivalent", "target": "5cca306ff6d988684a2afd928e978c1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a13932b433d9b2cc888bacdde5cf71778ca278002c7928115d2ff2546f92a199"}}, {"rule": 2, "type": "equivalent", "target": "e06a72df69f7f07f6a3b6f3addbf92ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a13932b433d9b2cc888bacdde5cf71778ca278002c7928115d2ff2546f92a199"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e06a72df69f7f07f6a3b6f3addbf92ea", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "将父进程的事务和语句开始时间戳传递给并行工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a13932b433d9b2cc888bacdde5cf71778ca278002c7928115d2ff2546f92a199"}, "url": "/docs/compare/?release=10.6#10.6-6f3ba161082dce2c", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "5cca306ff6d988684a2afd928e978c1c", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "把父进程的事务和语句开始时间戳传播给并行工作者", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a13932b433d9b2cc888bacdde5cf71778ca278002c7928115d2ff2546f92a199"}, "url": "/docs/compare/?release=9.5.15#9.5.15-82222a93b4d52cd1", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}]}, {"id": "9.6.11-33c383c9e8b9216c", "cves": [], "html": "<p>修复展开数据传给并行工作者时保持对齐，防止在对齐挑剔的平台上的崩溃（Tom Lane、Amit Kapila）</p>", "text": "修复展开数据传给并行工作者时保持对齐，防止在对齐挑剔的平台上的崩溃（Tom Lane、Amit Kapila）", "title": "修复展开数据传给并行工作者时保持对齐，防止在对齐挑剔的平台上的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "463ef15461bf8a8fcdfaef5ddf6406dc0abb8fe15ebee3eef709b3ac56ae90cc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix transfer of expanded datums to parallel workers so that alignment is preserved, preventing crashes on alignment-picky platforms (Tom Lane, Amit Kapila)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/021", "db_id": "3c57bb36b26674c1c304cac5c9682dbc", "patch_ids": [], "statement_hash": "62e7f496b97c109864c708e040f485b5f4bdbcf04cb1f1489d25bfc52eb2f676", "relations": [{"rule": 2, "type": "equivalent", "target": "3b2480f230184c95ddc847752fa28f2f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62e7f496b97c109864c708e040f485b5f4bdbcf04cb1f1489d25bfc52eb2f676"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3b2480f230184c95ddc847752fa28f2f", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复向并行工作进程传递展开的数据值时的处理，保持其对齐，防止在严格要求对齐的平台上崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62e7f496b97c109864c708e040f485b5f4bdbcf04cb1f1489d25bfc52eb2f676"}, "url": "/docs/compare/?release=10.6#10.6-7ba37e631a8cba47", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}]}, {"id": "9.6.11-8e32699f33add49a", "cves": [], "html": "<p>修复 WAL 文件回收逻辑在备库服务器上正确工作（Michael Paquier）</p>\n<p>根据 <code>archive_mode</code> 的设置，备库可能无法移除一些本可以移除的 WAL 文件。</p>", "text": "修复 WAL 文件回收逻辑在备库服务器上正确工作（Michael Paquier） 根据 archive_mode 的设置，备库可能无法移除一些本可以移除的 WAL 文件。", "title": "修复 WAL 文件回收逻辑在备库服务器上正确工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "5114765dd0147f4202ae0a5142a1de8583e835bd8d9787c8fe7fb5f3d524ed1d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix WAL file recycling logic to work correctly on standby servers (Michael Paquier) Depending on the setting of archive_mode, a standby might fail to remove some WAL files that could be removed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/022", "db_id": "c58255bca53b53aca95ea005ae3c3410", "patch_ids": [], "statement_hash": "a65238db1ff207a67f0a433633909e9bdf1360443ecd2d05b6f4e45340ca62fa", "relations": [{"rule": 2, "type": "equivalent", "target": "3741447a45018ef9da822e687421c342", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a65238db1ff207a67f0a433633909e9bdf1360443ecd2d05b6f4e45340ca62fa"}}, {"rule": 2, "type": "equivalent", "target": "8722ce46bee2211c52dd6211e44ab648", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a65238db1ff207a67f0a433633909e9bdf1360443ecd2d05b6f4e45340ca62fa"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8722ce46bee2211c52dd6211e44ab648", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 WAL 文件循环利用逻辑，使其在备库上正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a65238db1ff207a67f0a433633909e9bdf1360443ecd2d05b6f4e45340ca62fa"}, "url": "/docs/compare/?release=10.6#10.6-aa976273354f8b99", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "3741447a45018ef9da822e687421c342", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 WAL 文件回收逻辑在备库服务器上正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a65238db1ff207a67f0a433633909e9bdf1360443ecd2d05b6f4e45340ca62fa"}, "url": "/docs/compare/?release=9.5.15#9.5.15-8e32699f33add49a", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}]}, {"id": "9.6.11-94804884c583b69a", "cves": [], "html": "<p>修复恢复期间提交时间戳追踪的处理（Masahiko Sawada、Michael Paquier）</p>\n<p>如果提交时间戳追踪曾被打开或关闭，恢复可能因为试图获取未记录提交时间戳的事务的提交时间戳而失败。</p>", "text": "修复恢复期间提交时间戳追踪的处理（Masahiko Sawada、Michael Paquier） 如果提交时间戳追踪曾被打开或关闭，恢复可能因为试图获取未记录提交时间戳的事务的提交时间戳而失败。", "title": "修复恢复期间提交时间戳追踪的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "1153e91693b4f348def13f8c845f1a54da3dea4ef27b84016dacf4b15dac5b84", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix handling of commit-timestamp tracking during recovery (Masahiko Sawada, Michael Paquier) If commit timestamp tracking has been turned on or off, recovery might fail due to trying to fetch the commit timestamp for a transaction that did not record it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/023", "db_id": "e517cb58b48068e53a5a6e882c67bf6b", "patch_ids": [], "statement_hash": "90e89c290e333b26ebcebe30cf747cf9bb3ca1a3756c9fa97a7ea717956f8419", "relations": [{"rule": 2, "type": "equivalent", "target": "d15231fac78d66ee335f54da0bcdedd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "90e89c290e333b26ebcebe30cf747cf9bb3ca1a3756c9fa97a7ea717956f8419"}}, {"rule": 2, "type": "equivalent", "target": "ff4c9434e22c8dff7b2932cbe9c5360f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "90e89c290e333b26ebcebe30cf747cf9bb3ca1a3756c9fa97a7ea717956f8419"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d15231fac78d66ee335f54da0bcdedd3", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复恢复期间对提交时间戳跟踪的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "90e89c290e333b26ebcebe30cf747cf9bb3ca1a3756c9fa97a7ea717956f8419"}, "url": "/docs/compare/?release=10.6#10.6-71e02ae673c26527", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "ff4c9434e22c8dff7b2932cbe9c5360f", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复恢复期间提交时间戳追踪的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "90e89c290e333b26ebcebe30cf747cf9bb3ca1a3756c9fa97a7ea717956f8419"}, "url": "/docs/compare/?release=9.5.15#9.5.15-94804884c583b69a", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}]}, {"id": "9.6.11-10017cf57740d87a", "cves": [], "html": "<p>在 bootstrap 和独立后端以及 <span>initdb</span> 中随机化 <code>random()</code> 的种子（Noah Misch）</p>\n<p>这一更改的主要实际效果是避免一种场景：<span>initdb</span> 因总是使用相同的随机种子导致的名称冲突，而错误地断定 POSIX 共享内存不可用。</p>", "text": "在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子（Noah Misch） 这一更改的主要实际效果是避免一种场景：initdb 因总是使用相同的随机种子导致的名称冲突，而错误地断定 POSIX 共享内存不可用。", "title": "在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "b2fe54cc87ed0314e6d2a8102dd45f3807e885b38dcb792c7997f17ee92f4b6c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Randomize the random() seed in bootstrap and standalone backends, and in initdb (Noah Misch) The main practical effect of this change is that it avoids a scenario where initdb might mistakenly conclude that POSIX shared memory is not available, due to name collisions caused by always using the same random seed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/024", "db_id": "e70ffe71839c7058f003b8ee9ce29f57", "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e", "relations": [{"rule": 2, "type": "equivalent", "target": "0e1848449b7c3f2c62d9e7768f3a6d84", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}}, {"rule": 2, "type": "equivalent", "target": "151494e6041910be9a773fcd8b482eff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}}, {"rule": 2, "type": "equivalent", "target": "5122d60d513bc096134038086beee128", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}}, {"rule": 2, "type": "equivalent", "target": "7633568a3bcbc81a4e542fd3de4aacbc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e1848449b7c3f2c62d9e7768f3a6d84", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "在自举和独立后端，以及 initdb 中随机化 random() 的种子", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}, "url": "/docs/compare/?release=10.6#10.6-dd4cc94a0d5ae273", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "5122d60d513bc096134038086beee128", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}, "url": "/docs/compare/?release=9.5.15#9.5.15-10017cf57740d87a", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "151494e6041910be9a773fcd8b482eff", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}, "url": "/docs/compare/?release=9.4.20#9.4.20-10017cf57740d87a", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "7633568a3bcbc81a4e542fd3de4aacbc", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "918ed37da6fab739adcb57944018831cd5fbdc86c9f8edbb14c8cfe788449e5e"}, "url": "/docs/compare/?release=9.3.25#9.3.25-10017cf57740d87a", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-97101a9f90126a8a", "cves": [], "html": "<p>允许 DSM 分配被中断（Chris Travers）</p>", "text": "允许 DSM 分配被中断（Chris Travers）", "title": "允许 DSM 分配被中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "ac9da15b17676ece46e0713b6c92b82c8f23d7a72c945e2ad508ed374d31ebe0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow DSM allocation to be interrupted (Chris Travers)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/025", "db_id": "23f577a7fa826cb94644d886920ea6e4", "patch_ids": [], "statement_hash": "fd46d995cedd6157972e01fb55386edd83a6d584775f06e75e13c3d49c46bcb1", "relations": [{"rule": 2, "type": "equivalent", "target": "03ba59ba0dcb47ab94fc0c1f2cc14dff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd46d995cedd6157972e01fb55386edd83a6d584775f06e75e13c3d49c46bcb1"}}, {"rule": 2, "type": "equivalent", "target": "27a094a15d25fa9f47c9a66bbb922fd4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd46d995cedd6157972e01fb55386edd83a6d584775f06e75e13c3d49c46bcb1"}}, {"rule": 2, "type": "equivalent", "target": "2b7d9b871dad871fad32d32b47e67e99", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd46d995cedd6157972e01fb55386edd83a6d584775f06e75e13c3d49c46bcb1"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "03ba59ba0dcb47ab94fc0c1f2cc14dff", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "允许中断 DSM 分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd46d995cedd6157972e01fb55386edd83a6d584775f06e75e13c3d49c46bcb1"}, "url": "/docs/compare/?release=10.6#10.6-a5fbdc7e2c6eb4a9", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "2b7d9b871dad871fad32d32b47e67e99", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "允许 DSM 分配被中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd46d995cedd6157972e01fb55386edd83a6d584775f06e75e13c3d49c46bcb1"}, "url": "/docs/compare/?release=9.5.15#9.5.15-97101a9f90126a8a", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "27a094a15d25fa9f47c9a66bbb922fd4", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "允许中断 DSM 分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fd46d995cedd6157972e01fb55386edd83a6d584775f06e75e13c3d49c46bcb1"}, "url": "/docs/compare/?release=9.4.20#9.4.20-a5fbdc7e2c6eb4a9", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.6.11-17dcafe97d3ca1ce", "cves": [], "html": "<p>避免并行工作者加载试图在其 init 函数中访问系统缓存的扩展时失败（Thomas Munro）</p>\n<p>我们不认为那是好的扩展编码实践，但在并行查询出现之前它大多能工作，因此暂时继续支持。</p>", "text": "避免并行工作者加载试图在其 init 函数中访问系统缓存的扩展时失败（Thomas Munro） 我们不认为那是好的扩展编码实践，但在并行查询出现之前它大多能工作，因此暂时继续支持。", "title": "避免并行工作者加载试图在其 init 函数中访问系统缓存的扩展时失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "d9a4627c2271ce59e422b4207239bc64784b5d7165c936b5614363207a8e9642", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid failure in a parallel worker when loading an extension that tries to access system caches within its init function (Thomas Munro) We don't consider that to be good extension coding practice, but it mostly worked before parallel query, so continue to support it for now.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/026", "db_id": "20c7b7fcc08dab787512b46a25051864", "patch_ids": [], "statement_hash": "c308ff2faea445ebd6d0ab97818901bfda9f81c8c8538739112768b30a512b39", "relations": [{"rule": 2, "type": "equivalent", "target": "e52d7518d07dd238c7129dceed0ca93a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c308ff2faea445ebd6d0ab97818901bfda9f81c8c8538739112768b30a512b39"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e52d7518d07dd238c7129dceed0ca93a", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "避免在并行工作进程中加载初始化函数尝试访问系统缓存的扩展时发生失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c308ff2faea445ebd6d0ab97818901bfda9f81c8c8538739112768b30a512b39"}, "url": "/docs/compare/?release=10.6#10.6-6a30965525f4951c", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}]}, {"id": "9.6.11-0e6a76d49f1eccad", "cves": [], "html": "<p>正确处理动态打开 <code>full_page_writes</code>（Kyotaro Horiguchi）</p>", "text": "正确处理动态打开 full_page_writes（Kyotaro Horiguchi）", "title": "正确处理动态打开 full_page_writes", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "86afe9d8a3a6ef58f014ca9a997af2aae2810ec9deafd3a442df9894d5bda7be", "section_path": ["变更"], "commit_groups": [], "identity_text": "Properly handle turning full_page_writes on dynamically (Kyotaro Horiguchi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/027", "db_id": "82c1a3c36337b79893f1c90d3407d1cd", "patch_ids": [], "statement_hash": "6168cf5a62461fa09fc9f747076339e271a5ee2066a8e2f45402aca5dba27a1b", "relations": [{"rule": 2, "type": "equivalent", "target": "35baff5a198188bd9740a04564460d00", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6168cf5a62461fa09fc9f747076339e271a5ee2066a8e2f45402aca5dba27a1b"}}, {"rule": 2, "type": "equivalent", "target": "9b9323e5a358c92f7742b547ea075928", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6168cf5a62461fa09fc9f747076339e271a5ee2066a8e2f45402aca5dba27a1b"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "35baff5a198188bd9740a04564460d00", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "正确处理动态开启 full_page_writes", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6168cf5a62461fa09fc9f747076339e271a5ee2066a8e2f45402aca5dba27a1b"}, "url": "/docs/compare/?release=10.6#10.6-61dd7a4b49aef8fa", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "9b9323e5a358c92f7742b547ea075928", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "正确处理动态打开 full_page_writes", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6168cf5a62461fa09fc9f747076339e271a5ee2066a8e2f45402aca5dba27a1b"}, "url": "/docs/compare/?release=9.5.15#9.5.15-0e6a76d49f1eccad", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}]}, {"id": "9.6.11-29a1528e2ef18d70", "cves": [], "html": "<p>修复 SP-GiST 重扫描期间因双重 <code>free()</code> 可能的崩溃（Andrew Gierth）</p>", "text": "修复 SP-GiST 重扫描期间因双重 free() 可能的崩溃（Andrew Gierth）", "title": "修复 SP-GiST 重扫描期间因双重 free() 可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "03f44e2776a9e42c27f8c79f988ecfcdc6c9abcc0c49fae3c8731d8345827699", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible crash due to double free() during SP-GiST rescan (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/028", "db_id": "4967802c28931819c2271b746893d1b5", "patch_ids": [], "statement_hash": "a6e6b07bd8d8bba40e8469d111965041c35c8811861e7dd46794952faae0168c", "relations": [{"rule": 2, "type": "equivalent", "target": "d2c5dad57ef07b90735269d9892b4b01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e6b07bd8d8bba40e8469d111965041c35c8811861e7dd46794952faae0168c"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d2c5dad57ef07b90735269d9892b4b01", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 SP-GiST 重新扫描期间重复调用 free() 可能导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a6e6b07bd8d8bba40e8469d111965041c35c8811861e7dd46794952faae0168c"}, "url": "/docs/compare/?release=10.6#10.6-4330c553c7f719c1", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}]}, {"id": "9.6.11-129872a9ab3995db", "cves": [], "html": "<p>避免从 WAL 重放 GIN 页重压缩时可能的缓冲区越界（Alexander Korotkov、Sivasubramanian Ramasubramanian）</p>", "text": "避免从 WAL 重放 GIN 页重压缩时可能的缓冲区越界（Alexander Korotkov、Sivasubramanian Ramasubramanian）", "title": "避免从 WAL 重放 GIN 页重压缩时可能的缓冲区越界", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "aabea6dac009914a3bf930a147d059e9e75a3e9644f627b2d936039927c5c45c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid possible buffer overrun when replaying GIN page recompression from WAL (Alexander Korotkov, Sivasubramanian Ramasubramanian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/029", "db_id": "22aa87f069b600a24849d7112667e3e0", "patch_ids": [], "statement_hash": "9fa6c648932aba8306f8090ab12f78b381ce0861e894f9d9722a838913573139", "relations": [{"rule": 2, "type": "equivalent", "target": "7406972d756c8f096c22a3215e451770", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9fa6c648932aba8306f8090ab12f78b381ce0861e894f9d9722a838913573139"}}, {"rule": 2, "type": "equivalent", "target": "881d4ba5b6940b20ab802b1496ebeecc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9fa6c648932aba8306f8090ab12f78b381ce0861e894f9d9722a838913573139"}}, {"rule": 2, "type": "equivalent", "target": "b818835e2c0cc92a176f3dec4d799b1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9fa6c648932aba8306f8090ab12f78b381ce0861e894f9d9722a838913573139"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "881d4ba5b6940b20ab802b1496ebeecc", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "避免从 WAL 重放 GIN 页面重新压缩时可能发生的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9fa6c648932aba8306f8090ab12f78b381ce0861e894f9d9722a838913573139"}, "url": "/docs/compare/?release=10.6#10.6-222ec7e3f9796494", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "b818835e2c0cc92a176f3dec4d799b1c", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "避免从 WAL 重放 GIN 页重压缩时可能的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9fa6c648932aba8306f8090ab12f78b381ce0861e894f9d9722a838913573139"}, "url": "/docs/compare/?release=9.5.15#9.5.15-129872a9ab3995db", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "7406972d756c8f096c22a3215e451770", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "避免从 WAL 重放 GIN 页重压缩时可能的缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9fa6c648932aba8306f8090ab12f78b381ce0861e894f9d9722a838913573139"}, "url": "/docs/compare/?release=9.4.20#9.4.20-129872a9ab3995db", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.6.11-7dd46be3ef3a3fa6", "cves": [], "html": "<p>修复遗漏的对复制槽目录的 fsync（Konstantin Knizhnik、Michael Paquier）</p>", "text": "修复遗漏的对复制槽目录的 fsync（Konstantin Knizhnik、Michael Paquier）", "title": "修复遗漏的对复制槽目录的 fsync", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "65bc2a30a9035bd355a5679073b2c7a9e3792dec78b5310141361cb03f10aba2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix missed fsync of a replication slot's directory (Konstantin Knizhnik, Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/030", "db_id": "3344b48668f87cda44fa94d1a7959015", "patch_ids": [], "statement_hash": "66ba2b0ef62b1b162e62bbb620aa7ad135e4264038c0ac6de1b7338dab9ff4c1", "relations": [{"rule": 2, "type": "equivalent", "target": "3286c067c87de51c36da3b41839cde7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66ba2b0ef62b1b162e62bbb620aa7ad135e4264038c0ac6de1b7338dab9ff4c1"}}, {"rule": 2, "type": "equivalent", "target": "3dc4af66a890b5271ce1332dec222dec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66ba2b0ef62b1b162e62bbb620aa7ad135e4264038c0ac6de1b7338dab9ff4c1"}}, {"rule": 2, "type": "equivalent", "target": "4e317a3ae6258a94365284f579c80523", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66ba2b0ef62b1b162e62bbb620aa7ad135e4264038c0ac6de1b7338dab9ff4c1"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4e317a3ae6258a94365284f579c80523", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复遗漏对复制槽目录执行 fsync 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66ba2b0ef62b1b162e62bbb620aa7ad135e4264038c0ac6de1b7338dab9ff4c1"}, "url": "/docs/compare/?release=10.6#10.6-5233d1c027ff155d", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "3dc4af66a890b5271ce1332dec222dec", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复遗漏的对复制槽目录的 fsync", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66ba2b0ef62b1b162e62bbb620aa7ad135e4264038c0ac6de1b7338dab9ff4c1"}, "url": "/docs/compare/?release=9.5.15#9.5.15-7dd46be3ef3a3fa6", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "3286c067c87de51c36da3b41839cde7f", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复复制槽目录遗漏 fsync 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66ba2b0ef62b1b162e62bbb620aa7ad135e4264038c0ac6de1b7338dab9ff4c1"}, "url": "/docs/compare/?release=9.4.20#9.4.20-cf0e45a4e72c6aff", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.6.11-fcca20d11f0b80a4", "cves": [], "html": "<p>避免在缓慢的服务器上使用 <code>wal_sender_timeout</code> 时的意外超时（Noah Misch）</p>", "text": "避免在缓慢的服务器上使用 wal_sender_timeout 时的意外超时（Noah Misch）", "title": "避免在缓慢的服务器上使用 wal_sender_timeout 时的意外超时", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "5265ee0e4edfc1bd0033b82625b8f79b55854b4f0ac49b8ce289458630561518", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix unexpected timeouts when using wal_sender_timeout on a slow server (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/031", "db_id": "d2f02a3ef73b5975b4d22b92bd0f2b8c", "patch_ids": [], "statement_hash": "5d04abf6b97ceb635e5c16e59e008c05dd3d3c34e45524586e63950d5095c7fb", "relations": [{"rule": 2, "type": "equivalent", "target": "3e0622f6c568da4fdb12fc4b5ebb864b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d04abf6b97ceb635e5c16e59e008c05dd3d3c34e45524586e63950d5095c7fb"}}, {"rule": 2, "type": "equivalent", "target": "a2cf2777e853eb6b9fc1749abbc5c493", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d04abf6b97ceb635e5c16e59e008c05dd3d3c34e45524586e63950d5095c7fb"}}, {"rule": 2, "type": "equivalent", "target": "c5baf4d67b143c73f9aa70df23ded714", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d04abf6b97ceb635e5c16e59e008c05dd3d3c34e45524586e63950d5095c7fb"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c5baf4d67b143c73f9aa70df23ded714", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复在较慢服务器上使用 wal_sender_timeout 时发生的意外超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d04abf6b97ceb635e5c16e59e008c05dd3d3c34e45524586e63950d5095c7fb"}, "url": "/docs/compare/?release=10.6#10.6-aa7bfe6123c1ee09", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "a2cf2777e853eb6b9fc1749abbc5c493", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "避免在缓慢的服务器上使用 wal_sender_timeout 时的意外超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d04abf6b97ceb635e5c16e59e008c05dd3d3c34e45524586e63950d5095c7fb"}, "url": "/docs/compare/?release=9.5.15#9.5.15-fcca20d11f0b80a4", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "3e0622f6c568da4fdb12fc4b5ebb864b", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复在缓慢服务器上使用wal_sender_timeout时意外超时的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d04abf6b97ceb635e5c16e59e008c05dd3d3c34e45524586e63950d5095c7fb"}, "url": "/docs/compare/?release=9.4.20#9.4.20-bff5c6b9b3720ce0", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}]}, {"id": "9.6.11-e288723a8d74085a", "cves": [], "html": "<p>确保热备进程使用正确的 WAL 一致点（Alexander Kukushkin、Michael Paquier）</p>\n<p>这防止备库服务器在 WAL 重放期间刚达到一致数据库状态之后可能的行为异常。</p>", "text": "确保热备进程使用正确的 WAL 一致点（Alexander Kukushkin、Michael Paquier） 这防止备库服务器在 WAL 重放期间刚达到一致数据库状态之后可能的行为异常。", "title": "确保热备进程使用正确的 WAL 一致点", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "9220cd42ae7b200da5a407bd9d9cfed14c91a4f30c94389872a455ef80fd8f04", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that hot standby processes use the correct WAL consistency point (Alexander Kukushkin, Michael Paquier) This prevents possible misbehavior just after a standby server has reached a consistent database state during WAL replay.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/032", "db_id": "6cb83c44aa7bc50dfa45b2ec55b84b29", "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb", "relations": [{"rule": 2, "type": "equivalent", "target": "3265d556689b305ffdbec7eb6212cd8e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}}, {"rule": 2, "type": "equivalent", "target": "6e5a8b2385ffc85472f850e2a9a453ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}}, {"rule": 2, "type": "equivalent", "target": "bae5cdeeffb91cfbe1d61aefa80e34d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}}, {"rule": 2, "type": "equivalent", "target": "e00eb0750ea51e88383b886502eb06ba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3265d556689b305ffdbec7eb6212cd8e", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "确保热备进程使用正确的 WAL 一致性点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}, "url": "/docs/compare/?release=10.6#10.6-2a26e691178ff6df", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "e00eb0750ea51e88383b886502eb06ba", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "确保热备进程使用正确的 WAL 一致点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}, "url": "/docs/compare/?release=9.5.15#9.5.15-e288723a8d74085a", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "bae5cdeeffb91cfbe1d61aefa80e34d3", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "确保热备进程使用正确的 WAL 一致点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}, "url": "/docs/compare/?release=9.4.20#9.4.20-e288723a8d74085a", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "6e5a8b2385ffc85472f850e2a9a453ca", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "确保热备进程使用正确的 WAL 一致点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d0dbe712a87e77686adb97522174228edb313b449ebf4bb324c50963497ecb"}, "url": "/docs/compare/?release=9.3.25#9.3.25-e288723a8d74085a", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-e19ce766ce9891bd", "cves": [], "html": "<p>确保 postmaster 在完成数据库启动之前收到快速关闭请求时正确停止后台工作者（Alexander Kukushkin）</p>", "text": "确保 postmaster 在完成数据库启动之前收到快速关闭请求时正确停止后台工作者（Alexander Kukushkin）", "title": "确保 postmaster 在完成数据库启动之前收到快速关闭请求时正确停止后台工作者", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "7742524447516702e921402022dfe1190f41db3bd34373f416a391ce0d65fab3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure background workers are stopped properly when the postmaster receives a fast-shutdown request before completing database startup (Alexander Kukushkin)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/033", "db_id": "b41ac31f19bb72bb10db23cb58508dc2", "patch_ids": [], "statement_hash": "2ed66f3de5e87053c9209647f506e00f1a6ed14a48f59ce0afe1a19c50d8aa89", "relations": [{"rule": 2, "type": "equivalent", "target": "2655ed9d4d16c81e7a2a7e7c9dde340d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ed66f3de5e87053c9209647f506e00f1a6ed14a48f59ce0afe1a19c50d8aa89"}}, {"rule": 2, "type": "equivalent", "target": "c0492960c7f88226632434cbeb16e239", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ed66f3de5e87053c9209647f506e00f1a6ed14a48f59ce0afe1a19c50d8aa89"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2655ed9d4d16c81e7a2a7e7c9dde340d", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "确保 postmaster 在数据库启动完成之前收到 fast 关闭请求时，正确停止后台工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ed66f3de5e87053c9209647f506e00f1a6ed14a48f59ce0afe1a19c50d8aa89"}, "url": "/docs/compare/?release=10.6#10.6-16e548fa79c117c2", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "c0492960c7f88226632434cbeb16e239", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "确保 postmaster 在完成数据库启动之前收到快速关闭请求时正确停止后台工作者", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ed66f3de5e87053c9209647f506e00f1a6ed14a48f59ce0afe1a19c50d8aa89"}, "url": "/docs/compare/?release=9.5.15#9.5.15-e19ce766ce9891bd", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}]}, {"id": "9.6.11-9bc56d241379c44c", "cves": [], "html": "<p>在 WAL 重放页全可见/冻结标志更改期间更新空闲空间映射（Álvaro Herrera）</p>\n<p>此前我们没有认真对待这一点，理由是 FSM 反正不是关键数据。但如果它过时得厉害，备库被提升为主库后会导致显著的性能退化。FSM 最终会被更新治愈，但我们希望它更快变好，因此在 WAL 重放期间更努力地维护它。</p>", "text": "在 WAL 重放页全可见/冻结标志更改期间更新空闲空间映射（Álvaro Herrera） 此前我们没有认真对待这一点，理由是 FSM 反正不是关键数据。但如果它过时得厉害，备库被提升为主库后会导致显著的性能退化。FSM 最终会被更新治愈，但我们希望它更快变好，因此在 WAL 重放期间更努力地维护它。", "title": "在 WAL 重放页全可见/冻结标志更改期间更新空闲空间映射", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "7caeb89f5cc015d8a1f8c07731c8ba0f20bec92f573b5edaea1e8c4c63894c3c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update the free space map during WAL replay of page all-visible/frozen flag changes (Álvaro Herrera) Previously we were not careful about this, reasoning that the FSM is not critical data anyway. However, if it's sufficiently out of date, that can result in significant performance degradation after a standby has been promoted to primary. The FSM will eventually be healed by updates, but we'd like it to be good sooner, so work harder at maintaining it during WAL replay.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/034", "db_id": "406a237aad6a8f55bcaec9eebec87d83", "patch_ids": [], "statement_hash": "c4f488ea8277f1d19d85f7a6253b6474b44ddb4bcac9cf889769d2eae79a5fdd", "relations": [{"rule": 2, "type": "equivalent", "target": "86cc64ecb1b51a7b36e8b60557b2bf85", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4f488ea8277f1d19d85f7a6253b6474b44ddb4bcac9cf889769d2eae79a5fdd"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "86cc64ecb1b51a7b36e8b60557b2bf85", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "在 WAL 重放页面全可见/冻结标志变更时，更新空闲空间映射", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4f488ea8277f1d19d85f7a6253b6474b44ddb4bcac9cf889769d2eae79a5fdd"}, "url": "/docs/compare/?release=10.6#10.6-95b0ff938ee5b42f", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}]}, {"id": "9.6.11-eeb4a431048bdd02", "cves": [], "html": "<p>避免到达查询结束或元组数限制时过早释放并行查询资源（Amit Kapila）</p>\n<p>只有当调用者之后不可能要求反向扫描时，才可以在这时关闭执行器。</p>", "text": "避免到达查询结束或元组数限制时过早释放并行查询资源（Amit Kapila） 只有当调用者之后不可能要求反向扫描时，才可以在这时关闭执行器。", "title": "避免到达查询结束或元组数限制时过早释放并行查询资源", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "b58ccf528270452e3c29843c9dae0931817eac2e9b5545c67f654c003e7dd9aa", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid premature release of parallel-query resources when query end or tuple count limit is reached (Amit Kapila) It's only okay to shut down the executor at this point if the caller cannot demand backwards scan afterwards.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/035", "db_id": "8413e70b7f25d61280aeffb579d326d4", "patch_ids": [], "statement_hash": "59419a9c987503f95f78296aba3466051cb5d793fed8ebd2a2b42fe36f5d024c", "relations": [{"rule": 2, "type": "equivalent", "target": "539b922c658cf11bbbc57ac27cf2f4ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59419a9c987503f95f78296aba3466051cb5d793fed8ebd2a2b42fe36f5d024c"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "539b922c658cf11bbbc57ac27cf2f4ca", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "避免到达查询末尾或元组数量限制时过早释放并行查询资源", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59419a9c987503f95f78296aba3466051cb5d793fed8ebd2a2b42fe36f5d024c"}, "url": "/docs/compare/?release=10.6#10.6-455f80566f92c421", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}]}, {"id": "9.6.11-8df94db4159fdd39", "cves": [], "html": "<p>服务 <code>SIGQUIT</code> 时不运行 atexit 回调（Heikki Linnakangas）</p>", "text": "服务 SIGQUIT 时不运行 atexit 回调（Heikki Linnakangas）", "title": "服务 SIGQUIT 时不运行 atexit 回调", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "a5d20ba09f7d487422af5065c8db248f4b59addd0bd5fa3963ab955ebdb42660", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't run atexit callbacks when servicing SIGQUIT (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/036", "db_id": "e3dcf8197b67f15dc52b672919b7bd07", "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f", "relations": [{"rule": 2, "type": "equivalent", "target": "39ba0855ac1febbcd96e1e427c4f3b8e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}}, {"rule": 2, "type": "equivalent", "target": "4630313f4b54193dd105008e73044d6c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}}, {"rule": 2, "type": "equivalent", "target": "78401332222d5de0483d29e05d5ad598", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}}, {"rule": 2, "type": "equivalent", "target": "c734cd34b8cc8154b188afcd0d0a2405", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "78401332222d5de0483d29e05d5ad598", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "处理 SIGQUIT 时不运行 atexit 回调", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}, "url": "/docs/compare/?release=10.6#10.6-9e1339fa1d28f993", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "c734cd34b8cc8154b188afcd0d0a2405", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "服务 SIGQUIT 时不运行 atexit 回调", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}, "url": "/docs/compare/?release=9.5.15#9.5.15-8df94db4159fdd39", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "4630313f4b54193dd105008e73044d6c", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "处理SIGQUIT时不运行 atexit 回调", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}, "url": "/docs/compare/?release=9.4.20#9.4.20-adab1a6e0fced93c", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "39ba0855ac1febbcd96e1e427c4f3b8e", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "服务 SIGQUIT 时不运行 atexit 回调", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fc9d3e861e30f45c0f683b0bb3b6f6471b73643476ab386af3c7dadf782556f"}, "url": "/docs/compare/?release=9.3.25#9.3.25-8df94db4159fdd39", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-a666130b005b9214", "cves": [], "html": "<p>不要把外部服务器用户映射记录为扩展的成员（Tom Lane）</p>\n<p>如果在扩展脚本中执行 <code>CREATE USER MAPPING</code>，会为用户映射创建扩展依赖，这是意料之外的。角色不能是扩展成员，因此用户映射也不应该是。</p>", "text": "不要把外部服务器用户映射记录为扩展的成员（Tom Lane） 如果在扩展脚本中执行 CREATE USER MAPPING，会为用户映射创建扩展依赖，这是意料之外的。角色不能是扩展成员，因此用户映射也不应该是。", "title": "不要把外部服务器用户映射记录为扩展的成员", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "34e2f07bc450aa3440e0e1481ca0926e9ffe23bb03889f5efc8e5f054b4f3038", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't record foreign-server user mappings as members of extensions (Tom Lane) If CREATE USER MAPPING is executed in an extension script, an extension dependency was created for the user mapping, which is unexpected. Roles can't be extension members, so user mappings shouldn't be either.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/037", "db_id": "e0f5a0165792bc1302f1deab6215536c", "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a", "relations": [{"rule": 2, "type": "equivalent", "target": "0a3857effe95c5d3d77c35d3b30fd6eb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}}, {"rule": 2, "type": "equivalent", "target": "410ecd8d3182ca670115f4bb27a910de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}}, {"rule": 2, "type": "equivalent", "target": "6e629ddb94a5fc275b9280f02474d3a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}}, {"rule": 2, "type": "equivalent", "target": "dca69a390ea0f6cc18e87d764a97bb6a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dca69a390ea0f6cc18e87d764a97bb6a", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "不将外部服务器用户映射记录为扩展成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}, "url": "/docs/compare/?release=10.6#10.6-3085b500609dfcf9", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "410ecd8d3182ca670115f4bb27a910de", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "不要把外部服务器用户映射记录为扩展的成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}, "url": "/docs/compare/?release=9.5.15#9.5.15-a666130b005b9214", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "6e629ddb94a5fc275b9280f02474d3a4", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "不要把外部服务器用户映射记录为扩展的成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}, "url": "/docs/compare/?release=9.4.20#9.4.20-a666130b005b9214", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "0a3857effe95c5d3d77c35d3b30fd6eb", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "不要把外部服务器用户映射记录为扩展的成员", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6d42f9b75ef3e7b781185b35061350ba8b71c1fa9f0fa334306188f4cd6729a"}, "url": "/docs/compare/?release=9.3.25#9.3.25-a666130b005b9214", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-fb1570d534e1ba9d", "cves": [], "html": "<p>让 syslogger 更能抵御打开 CSV 日志文件的失败（Tom Lane）</p>", "text": "让 syslogger 更能抵御打开 CSV 日志文件的失败（Tom Lane）", "title": "让 syslogger 更能抵御打开 CSV 日志文件的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "965fd073e9531b465d43a8e43045922740146d155681c66b68829cecb1db1793", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make syslogger more robust against failures in opening CSV log files (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/038", "db_id": "f5f12e816c7a9dedc6b16769755ed2aa", "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa", "relations": [{"rule": 2, "type": "equivalent", "target": "363c9e22fdd6dbbd49dec53c3c1140e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}}, {"rule": 2, "type": "equivalent", "target": "3d6b47685453c435876633d227d33ca0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}}, {"rule": 2, "type": "equivalent", "target": "747979b17c9e1c6042d5a3efb0a164b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}}, {"rule": 2, "type": "equivalent", "target": "c10163f9b63b5ddf4811ed4378a5f684", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "747979b17c9e1c6042d5a3efb0a164b3", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "使 syslogger 更稳健地处理打开 CSV 日志文件失败的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}, "url": "/docs/compare/?release=10.6#10.6-b74cb3daa0e05278", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "c10163f9b63b5ddf4811ed4378a5f684", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "让 syslogger 更能抵御打开 CSV 日志文件的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}, "url": "/docs/compare/?release=9.5.15#9.5.15-fb1570d534e1ba9d", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "363c9e22fdd6dbbd49dec53c3c1140e4", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "使 syslogger 在打开 CSV 日志文件失败时更加健壮", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}, "url": "/docs/compare/?release=9.4.20#9.4.20-47c59362e1bdeb56", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "3d6b47685453c435876633d227d33ca0", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "让 syslogger 更能抵御打开 CSV 日志文件的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7fad18ad40b23f45cee7d054fb3b2c997cdae50f413844289c58f29b6081c0aa"}, "url": "/docs/compare/?release=9.3.25#9.3.25-fb1570d534e1ba9d", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-848a6a77c6eda410", "cves": [], "html": "<p>修复 <span>psql</span> 以及文档示例，在每次调用 <code>PQnotifies()</code> 之前先调用 <code>PQconsumeInput()</code>（Tom Lane）</p>\n<p>这修复了 <span>psql</span> 直到下一条命令之后才报告收到 <code>NOTIFY</code> 消息的情况。</p>", "text": "修复 psql 以及文档示例，在每次调用 PQnotifies() 之前先调用 PQconsumeInput()（Tom Lane） 这修复了 psql 直到下一条命令之后才报告收到 NOTIFY 消息的情况。", "title": "修复 psql 以及文档示例，在每次调用 PQnotifies() 之前先调用 PQconsumeInput()", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "478148fe6542b6d49896788e864079392fd59373423373e96ddef8268f31a575", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix psql, as well as documentation examples, to call PQconsumeInput() before each PQnotifies() call (Tom Lane) This fixes cases in which psql would not report receipt of a NOTIFY message until after the next command.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/039", "db_id": "2af7ad06b6fdaaa207504cf080264fef", "patch_ids": [], "statement_hash": "14c650cd2a6b97cf4efea2764e6bbe3235388394b02168f9bd91fe4dd5ac7e61", "relations": [{"rule": 2, "type": "equivalent", "target": "5a1c406d48c7e103b2aa24abe3d1409c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14c650cd2a6b97cf4efea2764e6bbe3235388394b02168f9bd91fe4dd5ac7e61"}}, {"rule": 2, "type": "equivalent", "target": "b060894131b886788cfe8ba2aaf6c3ae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14c650cd2a6b97cf4efea2764e6bbe3235388394b02168f9bd91fe4dd5ac7e61"}}, {"rule": 2, "type": "equivalent", "target": "e9bc4fa86eca70b25a4c3a31d74918fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14c650cd2a6b97cf4efea2764e6bbe3235388394b02168f9bd91fe4dd5ac7e61"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5a1c406d48c7e103b2aa24abe3d1409c", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "修复 psql 以及文档示例，使其在每次调用 PQnotifies() 之前调用 PQconsumeInput()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14c650cd2a6b97cf4efea2764e6bbe3235388394b02168f9bd91fe4dd5ac7e61"}, "url": "/docs/compare/?release=11.1#11.1-079c4c7fcf5e3d30", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "b060894131b886788cfe8ba2aaf6c3ae", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 psql 以及文档示例，使其在每次调用 PQnotifies() 之前调用 PQconsumeInput()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14c650cd2a6b97cf4efea2764e6bbe3235388394b02168f9bd91fe4dd5ac7e61"}, "url": "/docs/compare/?release=10.6#10.6-079c4c7fcf5e3d30", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "e9bc4fa86eca70b25a4c3a31d74918fd", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 psql 以及文档示例，在每次调用 PQnotifies() 之前先调用 PQconsumeInput()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14c650cd2a6b97cf4efea2764e6bbe3235388394b02168f9bd91fe4dd5ac7e61"}, "url": "/docs/compare/?release=9.5.15#9.5.15-848a6a77c6eda410", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}]}, {"id": "9.6.11-b0690b59faa27b68", "cves": [], "html": "<p>修复 <span>pg_dump</span> 对不相似对象名排序可能的不一致（Jacob Champion）</p>", "text": "修复 pg_dump 对不相似对象名排序可能的不一致（Jacob Champion）", "title": "修复 pg_dump 对不相似对象名排序可能的不一致", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "3e114286dbaec5a0dfbef310dcac1fda7427a52564a87c52a73625fa7451516a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible inconsistency in pg_dump's sorting of dissimilar object names (Jacob Champion)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/040", "db_id": "912356dbe78b587a2b8d1b0dbc6c652b", "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c", "relations": [{"rule": 2, "type": "equivalent", "target": "0e95c2d00e13033a1c3b37100ea8cbc3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}}, {"rule": 2, "type": "equivalent", "target": "5071c9718530c3936f2f5a39c8b5a381", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}}, {"rule": 2, "type": "equivalent", "target": "879dd6c80f10d3518fc44e1e5abeee26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}}, {"rule": 2, "type": "equivalent", "target": "e8a7350145703801676066c25c27bc0b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "879dd6c80f10d3518fc44e1e5abeee26", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 pg_dump 对不同对象名称进行排序时可能出现的不一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}, "url": "/docs/compare/?release=10.6#10.6-327748fa243f5fa7", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "0e95c2d00e13033a1c3b37100ea8cbc3", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 pg_dump 对不相似对象名排序可能的不一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}, "url": "/docs/compare/?release=9.5.15#9.5.15-b0690b59faa27b68", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "e8a7350145703801676066c25c27bc0b", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复pg_dump对不同对象名排序时可能不一致的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}, "url": "/docs/compare/?release=9.4.20#9.4.20-0b4c347eda93659e", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "5071c9718530c3936f2f5a39c8b5a381", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复 pg_dump 对不相似对象名排序可能的不一致", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1608218bfae94f34e9c334bcbb87deed2cc19cd8456bc024623f4d67ce02e80c"}, "url": "/docs/compare/?release=9.3.25#9.3.25-b0690b59faa27b68", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-93e8d87595b44a34", "cves": [], "html": "<p>确保 <span>pg_restore</span> 发出 <code>DISABLE</code>/<code>ENABLE TRIGGER</code> 命令时对表名进行模式限定（Tom Lane）</p>\n<p>这避免了以受限搜索路径运行恢复的新策略导致的失败。</p>", "text": "确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定（Tom Lane） 这避免了以受限搜索路径运行恢复的新策略导致的失败。", "title": "确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "aabffdb62616f6208d77549da839a5715c5aad1396ba744fc111512a64af8461", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that pg_restore will schema-qualify the table name when emitting DISABLE/ENABLE TRIGGER commands (Tom Lane) This avoids failures due to the new policy of running restores with restrictive search path.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/041", "db_id": "7cfc9a9469f5e268abca807d030d5b75", "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4", "relations": [{"rule": 2, "type": "equivalent", "target": "1f5b9ce06a10d71020f5d675c0a7681d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}}, {"rule": 2, "type": "equivalent", "target": "235a3de186833f10d1941ae31e8b56d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}}, {"rule": 2, "type": "equivalent", "target": "262023a4f2bb0ae0b0839cd5d6791508", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}}, {"rule": 2, "type": "equivalent", "target": "ef2584cb0a85c4f148c73d6aec18467a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "262023a4f2bb0ae0b0839cd5d6791508", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "确保 pg_restore 输出 DISABLE/ENABLE TRIGGER 命令时，为表名添加模式限定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}, "url": "/docs/compare/?release=10.6#10.6-4f69d270cafd8434", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "235a3de186833f10d1941ae31e8b56d3", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}, "url": "/docs/compare/?release=9.5.15#9.5.15-93e8d87595b44a34", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "ef2584cb0a85c4f148c73d6aec18467a", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}, "url": "/docs/compare/?release=9.4.20#9.4.20-93e8d87595b44a34", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "1f5b9ce06a10d71020f5d675c0a7681d", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c408d7b08120e1a385314af114479b44ba88a4883cc1793ec2a02bf5cc7bfb4"}, "url": "/docs/compare/?release=9.3.25#9.3.25-93e8d87595b44a34", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-3acbb4d1f6a6575e", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 正确处理扩展中的事件触发器（Haribabu Kommi）</p>\n<p><span>pg_upgrade</span> 未能保留事件触发器的扩展成员身份。</p>", "text": "修复 pg_upgrade 正确处理扩展中的事件触发器（Haribabu Kommi） pg_upgrade 未能保留事件触发器的扩展成员身份。", "title": "修复 pg_upgrade 正确处理扩展中的事件触发器", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "f6ff61bde22c9503f4a1011982c64a6461dc0b8cc09eeca49fa218e651121f80", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade to handle event triggers in extensions correctly (Haribabu Kommi) pg_upgrade failed to preserve an event trigger's extension-membership status.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/042", "db_id": "aa84cdfbdeba1986ccf38b23ba363ce2", "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346", "relations": [{"rule": 2, "type": "equivalent", "target": "4b260e91e97270d0acd4dca22b40ca64", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}}, {"rule": 2, "type": "equivalent", "target": "8b475ad0f04656171eb5572be6ee777a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}}, {"rule": 2, "type": "equivalent", "target": "9918149f9df7155fb91615361e6189b2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}}, {"rule": 2, "type": "equivalent", "target": "c1ecce3dec5d63c01a303d5e19b94583", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c1ecce3dec5d63c01a303d5e19b94583", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 pg_upgrade，使其正确处理扩展中的事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}, "url": "/docs/compare/?release=10.6#10.6-ff7866c083640635", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "4b260e91e97270d0acd4dca22b40ca64", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 pg_upgrade 正确处理扩展中的事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}, "url": "/docs/compare/?release=9.5.15#9.5.15-3acbb4d1f6a6575e", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "8b475ad0f04656171eb5572be6ee777a", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 pg_upgrade 正确处理扩展中的事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}, "url": "/docs/compare/?release=9.4.20#9.4.20-3acbb4d1f6a6575e", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "9918149f9df7155fb91615361e6189b2", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复 pg_upgrade 正确处理扩展中的事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "911636583bada2456d08ae59c239cad9a620a8c8e648db06c9cff99b70c8d346"}, "url": "/docs/compare/?release=9.3.25#9.3.25-3acbb4d1f6a6575e", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-c2b9190b9399ea25", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 的集簇状态检查在备库服务器上正确工作（Bruce Momjian）</p>", "text": "修复 pg_upgrade 的集簇状态检查在备库服务器上正确工作（Bruce Momjian）", "title": "修复 pg_upgrade 的集簇状态检查在备库服务器上正确工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "e7dc2ae4f3414538232aa623e0107d29c2d4a4532f46d3981bccd33fb07fbb9c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade's cluster state check to work correctly on a standby server (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/043", "db_id": "102f9f0d3ac227da29208aa63f623f90", "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282", "relations": [{"rule": 2, "type": "equivalent", "target": "7ad4a1520e809c327a364617cb38dff0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}}, {"rule": 2, "type": "equivalent", "target": "7dc0c49afd06be82c01c02ba94b8fbf4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}}, {"rule": 2, "type": "equivalent", "target": "93a73ab31b1b96f9798383f39ab6f725", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}}, {"rule": 2, "type": "equivalent", "target": "b8e5436d8e30dd670bdaf685dc54708f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "93a73ab31b1b96f9798383f39ab6f725", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 pg_upgrade 的集群状态检查，使其在备库上正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}, "url": "/docs/compare/?release=10.6#10.6-526f17cbf7e0ee56", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "b8e5436d8e30dd670bdaf685dc54708f", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 pg_upgrade 的集簇状态检查在备库服务器上正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}, "url": "/docs/compare/?release=9.5.15#9.5.15-c2b9190b9399ea25", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "7dc0c49afd06be82c01c02ba94b8fbf4", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复pg_upgrade的集簇状态检查在备库服务器上正确工作的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}, "url": "/docs/compare/?release=9.4.20#9.4.20-eb6d8df9306b3cf3", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "7ad4a1520e809c327a364617cb38dff0", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复 pg_upgrade 的集簇状态检查在备库服务器上正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f176cc1bae2fdc583fb040776de4cb20eddcb8b0f59197dde8e54f3e9abcf282"}, "url": "/docs/compare/?release=9.3.25#9.3.25-c2b9190b9399ea25", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-62cceefc1dc8ef2c", "cves": [], "html": "<p>在所有 <code>contrib/cube</code> 函数中强制执行 <code>cube</code> 类型的维度限制（Andrey Borodin）</p>\n<p>此前某些与 cube 相关的函数可以构造出会被 <code>cube_in()</code> 拒绝的值，导致转储/恢复失败。</p>", "text": "在所有 contrib/cube 函数中强制执行 cube 类型的维度限制（Andrey Borodin） 此前某些与 cube 相关的函数可以构造出会被 cube_in() 拒绝的值，导致转储/恢复失败。", "title": "在所有 contrib/cube 函数中强制执行 cube 类型的维度限制", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "5d5d08c674b7582b0b46dc8a1306744c0fdc0ffcbdf6d9767a14bf859da79d3b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Enforce type cube's dimension limit in all contrib/cube functions (Andrey Borodin) Previously, some cube-related functions could construct values that would be rejected by cube_in(), leading to dump/reload failures.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/044", "db_id": "841f7f248a9fc509a7b5f8f60d2875a8", "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b", "relations": [{"rule": 2, "type": "equivalent", "target": "200958a165dd7cd2ed556c74745858d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}}, {"rule": 2, "type": "equivalent", "target": "4571b8460d4de77f9acd69341a8d55b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}}, {"rule": 2, "type": "equivalent", "target": "5e9e7a0241c6f49c5495141891498081", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}}, {"rule": 2, "type": "equivalent", "target": "c5b69e51d985ff7f3a84a9be25ab26c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e9e7a0241c6f49c5495141891498081", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "在所有 contrib/cube 函数中强制实施 cube 类型的维数限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}, "url": "/docs/compare/?release=10.6#10.6-87982b7c1a553dcc", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "200958a165dd7cd2ed556c74745858d4", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "在所有 contrib/cube 函数中强制执行 cube 类型的维度限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}, "url": "/docs/compare/?release=9.5.15#9.5.15-62cceefc1dc8ef2c", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "4571b8460d4de77f9acd69341a8d55b4", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "在所有 contrib/cube 函数中强制执行 cube 类型的维度限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}, "url": "/docs/compare/?release=9.4.20#9.4.20-62cceefc1dc8ef2c", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "c5b69e51d985ff7f3a84a9be25ab26c8", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "在所有 contrib/cube 函数中强制执行 cube 类型的维度限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8147b8ba8a71e7499e60611aa59f63db70957b983ba824235595e189432d61b"}, "url": "/docs/compare/?release=9.3.25#9.3.25-62cceefc1dc8ef2c", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-114298ffedb88fac", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，不要试图把不含变量的 <code>ORDER BY</code> 子句传给远程服务器（Andrew Gierth）</p>", "text": "在 contrib/postgres_fdw 中，不要试图把不含变量的 ORDER BY 子句传给远程服务器（Andrew Gierth）", "title": "在 contrib/postgres_fdw 中，不要试图把不含变量的 ORDER BY 子句传给远程服务器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "e0093165a272fe5ba0bd8466456ac5d76b5b4b0353d3e198fe8d23567b122364", "section_path": ["变更"], "commit_groups": [], "identity_text": "In contrib/postgres_fdw, don't try to ship a variable-free ORDER BY clause to the remote server (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/045", "db_id": "c248f6a72eea8dde649522c90285cbba", "patch_ids": [], "statement_hash": "12e7f89d0fcbacc01998118a085f2044e7d6a996e2a5450027bc1698c13c667f", "relations": [{"rule": 2, "type": "equivalent", "target": "b3159f77f4fb87954d235c0eb2432473", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12e7f89d0fcbacc01998118a085f2044e7d6a996e2a5450027bc1698c13c667f"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b3159f77f4fb87954d235c0eb2432473", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "在 contrib/postgres_fdw 中，不尝试将不含变量的 ORDER BY 子句发送到远程服务器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12e7f89d0fcbacc01998118a085f2044e7d6a996e2a5450027bc1698c13c667f"}, "url": "/docs/compare/?release=10.6#10.6-9242f3f013826ec9", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}]}, {"id": "9.6.11-dfc122f711954da6", "cves": [], "html": "<p>修复 <code>contrib/unaccent</code> 的 <code>unaccent()</code> 函数使用与该函数同模式中的 <code>unaccent</code> 文本搜索词典（Tom Lane）</p>\n<p>此前它尝试用搜索路径查找词典，如果搜索路径是受限值就可能失败。</p>", "text": "修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典（Tom Lane） 此前它尝试用搜索路径查找词典，如果搜索路径是受限值就可能失败。", "title": "修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "6b5d9335930b6fbfa69c99dca76680f0600a504b2b52c1ddfa8a21dd142de4b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/unaccent's unaccent() function to use the unaccent text search dictionary that is in the same schema as the function (Tom Lane) Previously it tried to look up the dictionary using the search path, which could fail if the search path has a restrictive value.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/046", "db_id": "26547d4c4d38c37a756c4e20bd9a40f7", "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f", "relations": [{"rule": 2, "type": "equivalent", "target": "2167de29b2e546d25afba3817c99ba7c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}}, {"rule": 2, "type": "equivalent", "target": "734bd1ee833334ec4ec28af4b8a2c087", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}}, {"rule": 2, "type": "equivalent", "target": "a255fad78513abd146b092551281953f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}}, {"rule": 2, "type": "equivalent", "target": "bb8e1f2c7908abbc6f7d664082da3828", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2167de29b2e546d25afba3817c99ba7c", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 contrib/unaccent 的 unaccent() 函数，使其使用与函数位于同一模式中的 unaccent 文本检索词典", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}, "url": "/docs/compare/?release=10.6#10.6-8f03011d13bd632f", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "a255fad78513abd146b092551281953f", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}, "url": "/docs/compare/?release=9.5.15#9.5.15-dfc122f711954da6", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "bb8e1f2c7908abbc6f7d664082da3828", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}, "url": "/docs/compare/?release=9.4.20#9.4.20-dfc122f711954da6", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "734bd1ee833334ec4ec28af4b8a2c087", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d52fc9cb466a29e5386d430e0a5cf3e535a8e7b4c0890db415356fdfb0464c2f"}, "url": "/docs/compare/?release=9.3.25#9.3.25-dfc122f711954da6", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-9a46ff8655386392", "cves": [], "html": "<p>修复 macOS 10.14（Mojave）上的构建问题（Tom Lane）</p>\n<p>调整 <span>configure</span> 向 <code>CPPFLAGS</code> 添加 <code>-isysroot</code> 开关；没有它，PL/Perl 和 PL/Tcl 在 macOS 10.14 上无法配置或构建。所用的具体 sysroot 可以在配置或构建时通过在 <span>configure</span> 或 <span>make</span> 的参数中设置 <code>PG_SYSROOT</code> 变量来覆盖。</p>\n<p>现在建议与 Perl 相关的扩展在其编译器标志中写 <code>$(perl_includespec)</code> 而不是 <code>-I$(perl_archlibexp)/CORE</code>。后者在大多数平台上继续有效，但在最近的 macOS 上不行。</p>\n<p>此外，在最近的 macOS 版本上构建 PL/Tcl 应该不再需要手动指定 <code>--with-tclconfig</code>。</p>", "text": "修复 macOS 10.14（Mojave）上的构建问题（Tom Lane） 调整 configure 向 CPPFLAGS 添加 -isysroot 开关；没有它，PL/Perl 和 PL/Tcl 在 macOS 10.14 上无法配置或构建。所用的具体 sysroot 可以在配置或构建时通过在 configure 或 make 的参数中设置 PG_SYSROOT 变量来覆盖。 现在建议与 Perl 相关的扩展在其编译器标志中写 $(perl_includespec) 而不是 -I$(perl_archlibexp)/CORE。后者在大多数平台上继续有效，但在最近的 macOS 上不行。 此外，在最近的 macOS 版本上构建 PL/Tcl 应该不再需要手动指定 --with-tclconfig。", "title": "修复 macOS 10.14（Mojave）上的构建问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "74591258530831103aa452f55ae58ef83668ecc9410f46bc66a748cd18f0cf44", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix build problems on macOS 10.14 (Mojave) (Tom Lane) Adjust configure to add an -isysroot switch to CPPFLAGS; without this, PL/Perl and PL/Tcl fail to configure or build on macOS 10.14. The specific sysroot used can be overridden at configure time or build time by setting the PG_SYSROOT variable in the arguments of configure or make. It is now recommended that Perl-related extensions write $(perl_includespec) rather than -I$(perl_archlibexp)/CORE in their compiler flags. The latter continues to work on most platforms, but not recent macOS. Also, it should no longer be necessary to specify --with-tclconfig manually to get PL/Tcl to build on recent macOS releases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/047", "db_id": "fe85548f1db806d6dc35aa43c9c75091", "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8", "relations": [{"rule": 2, "type": "equivalent", "target": "0573685aa14d64178784109e5f3f2399", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}}, {"rule": 2, "type": "equivalent", "target": "0d12180e1c657bd3248e00988558c8b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}}, {"rule": 2, "type": "equivalent", "target": "4d61afdda860b057b6269de4cc193262", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}}, {"rule": 2, "type": "equivalent", "target": "5c29e1d1317aab57179d5a6f6bad58dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}}, {"rule": 2, "type": "equivalent", "target": "fe2bae05be5fd6088874d68a76b1f3ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fe2bae05be5fd6088874d68a76b1f3ff", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "修复 macOS 10.14（Mojave）上的构建问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}, "url": "/docs/compare/?release=11.1#11.1-9a46ff8655386392", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "5c29e1d1317aab57179d5a6f6bad58dd", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 macOS 10.14（Mojave）上的构建问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}, "url": "/docs/compare/?release=10.6#10.6-9a46ff8655386392", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "4d61afdda860b057b6269de4cc193262", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 macOS 10.14（Mojave）上的构建问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}, "url": "/docs/compare/?release=9.5.15#9.5.15-9a46ff8655386392", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "0573685aa14d64178784109e5f3f2399", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 macOS 10.14（Mojave）上的构建问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}, "url": "/docs/compare/?release=9.4.20#9.4.20-9a46ff8655386392", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "0d12180e1c657bd3248e00988558c8b6", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复 macOS 10.14（Mojave）上的构建问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5548bd964195f61e6b9862763083a9aee02c1ef822aeadc42c795a2b1cf445a8"}, "url": "/docs/compare/?release=9.3.25#9.3.25-9a46ff8655386392", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-f991ee36ce29595f", "cves": [], "html": "<p>修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作（Andrew Dunstan）</p>\n<p>Perl 不再默认在搜索路径中包含当前目录；绕过这一点。</p>", "text": "修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作（Andrew Dunstan） Perl 不再默认在搜索路径中包含当前目录；绕过这一点。", "title": "修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "01fa67eb9b49452b9044353880a70bd1b6e38a7b3abe0dbf354b98e27377ee46", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix MSVC build and regression-test scripts to work on recent Perl versions (Andrew Dunstan) Perl no longer includes the current directory in its search path by default; work around that.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/048", "db_id": "330db97de242d00c963b07fc3c46b0e2", "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8", "relations": [{"rule": 2, "type": "equivalent", "target": "38726384cd10e441aa4dcced098d61b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}}, {"rule": 2, "type": "equivalent", "target": "7c21077c9eb4a826e9bed8b137d5f770", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}}, {"rule": 2, "type": "equivalent", "target": "8a1cc7acdfb09c199a9f3ca1cd405980", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}}, {"rule": 2, "type": "equivalent", "target": "c05a64c813d21edd23ba0418b3a7b77e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}}, {"rule": 2, "type": "equivalent", "target": "e3ec0a53c68d18896cdc4e43a13db606", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "38726384cd10e441aa4dcced098d61b8", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "修复 MSVC 构建和回归测试脚本，使其适用于近期 Perl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}, "url": "/docs/compare/?release=11.1#11.1-4ce896e4612f55d4", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "7c21077c9eb4a826e9bed8b137d5f770", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 MSVC 构建和回归测试脚本，使其适用于近期 Perl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}, "url": "/docs/compare/?release=10.6#10.6-4ce896e4612f55d4", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "c05a64c813d21edd23ba0418b3a7b77e", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}, "url": "/docs/compare/?release=9.5.15#9.5.15-f991ee36ce29595f", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "e3ec0a53c68d18896cdc4e43a13db606", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}, "url": "/docs/compare/?release=9.4.20#9.4.20-f991ee36ce29595f", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "8a1cc7acdfb09c199a9f3ca1cd405980", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae5a3c28d2110945ca8eab359490e20b4c9880f194aff5e7f362830376bf1eb8"}, "url": "/docs/compare/?release=9.3.25#9.3.25-f991ee36ce29595f", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-44146fcc9439c230", "cves": [], "html": "<p>在 Windows 上，允许由管理员账户运行回归测试（Andrew Dunstan）</p>\n<p>为了安全地做到这一点，<span>pg_regress</span> 现在在启动时放弃任何此类权限。</p>", "text": "在 Windows 上，允许由管理员账户运行回归测试（Andrew Dunstan） 为了安全地做到这一点，pg_regress 现在在启动时放弃任何此类权限。", "title": "在 Windows 上，允许由管理员账户运行回归测试", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "d87cdba74b3d9fd930c57b9a1ff7355d7a11cbe2b470ac556d7e06b6fbad6654", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, allow the regression tests to be run by an Administrator account (Andrew Dunstan) To do this safely, pg_regress now gives up any such privileges at startup.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/049", "db_id": "9d7ea114afa8473a02bf20907f9f413b", "patch_ids": [], "statement_hash": "518a0f3cfeba75e955026198e57c35b7a6c5b24c57dd5d3897992d477d3f4e4a", "relations": [{"rule": 2, "type": "equivalent", "target": "1d8ee57c6e885f7810b31fad3ae8af64", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "518a0f3cfeba75e955026198e57c35b7a6c5b24c57dd5d3897992d477d3f4e4a"}}, {"rule": 2, "type": "equivalent", "target": "48c2735b63080aaa3f2db59e70d658d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "518a0f3cfeba75e955026198e57c35b7a6c5b24c57dd5d3897992d477d3f4e4a"}}, {"rule": 2, "type": "equivalent", "target": "e930c125b40f9ac76f19bef307f9d7df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "518a0f3cfeba75e955026198e57c35b7a6c5b24c57dd5d3897992d477d3f4e4a"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "48c2735b63080aaa3f2db59e70d658d4", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "在 Windows 上，允许使用 Administrator 账户运行回归测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "518a0f3cfeba75e955026198e57c35b7a6c5b24c57dd5d3897992d477d3f4e4a"}, "url": "/docs/compare/?release=11.1#11.1-4d189096157461b0", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "1d8ee57c6e885f7810b31fad3ae8af64", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "在 Windows 上，允许使用 Administrator 账户运行回归测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "518a0f3cfeba75e955026198e57c35b7a6c5b24c57dd5d3897992d477d3f4e4a"}, "url": "/docs/compare/?release=10.6#10.6-4d189096157461b0", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "e930c125b40f9ac76f19bef307f9d7df", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "在 Windows 上，允许由管理员账户运行回归测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "518a0f3cfeba75e955026198e57c35b7a6c5b24c57dd5d3897992d477d3f4e4a"}, "url": "/docs/compare/?release=9.5.15#9.5.15-44146fcc9439c230", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}]}, {"id": "9.6.11-92d935d7fb61d806", "cves": [], "html": "<p>允许 btree 比较函数返回 <code>INT_MIN</code>（Tom Lane）</p>\n<p>到目前为止，我们禁止数据类型相关的比较函数返回 <code>INT_MIN</code>，这允许调用者只需对比较结果取反即可颠倒排序顺序。然而，对于直接返回 <code>memcmp()</code>、<code>strcmp()</code> 等结果的比较函数，这从来都不安全，因为 POSIX 没有对这些函数施加任何此类限制。至少某些最近版本的 <code>memcmp()</code> 可以返回 <code>INT_MIN</code>，导致错误的排序。因此我们移除了这一限制。调用者现在如果想颠倒排序顺序，必须使用 <code>INVERT_COMPARE_RESULT()</code> 宏。</p>", "text": "允许 btree 比较函数返回 INT_MIN（Tom Lane） 到目前为止，我们禁止数据类型相关的比较函数返回 INT_MIN，这允许调用者只需对比较结果取反即可颠倒排序顺序。然而，对于直接返回 memcmp()、strcmp() 等结果的比较函数，这从来都不安全，因为 POSIX 没有对这些函数施加任何此类限制。至少某些最近版本的 memcmp() 可以返回 INT_MIN，导致错误的排序。因此我们移除了这一限制。调用者现在如果想颠倒排序顺序，必须使用 INVERT_COMPARE_RESULT() 宏。", "title": "允许 btree 比较函数返回 INT_MIN", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "b96876486555c6c740aff7a2197d357bbc271047064aa25adcb5f953d97e7d90", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow btree comparison functions to return INT_MIN (Tom Lane) Up to now, we've forbidden datatype-specific comparison functions from returning INT_MIN, which allows callers to invert the sort order just by negating the comparison result. However, this was never safe for comparison functions that directly return the result of memcmp(), strcmp(), etc, as POSIX doesn't place any such restriction on those functions. At least some recent versions of memcmp() can return INT_MIN, causing incorrect sort ordering. Hence, we've removed this restriction. Callers must now use the INVERT_COMPARE_RESULT() macro if they wish to invert the sort order.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/050", "db_id": "e721b85fd3ec3e8c96c71419d349a7b1", "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047", "relations": [{"rule": 2, "type": "equivalent", "target": "7fb5f95175c5f3c90f759c5f47055843", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}}, {"rule": 2, "type": "equivalent", "target": "8eff83b2f1566b57a1f73234e9b78fff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}}, {"rule": 2, "type": "equivalent", "target": "af27fe31790f8098ce6152f510209814", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}}, {"rule": 2, "type": "equivalent", "target": "e4e3b3ff86bf6f48da4cc33e6399237d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e4e3b3ff86bf6f48da4cc33e6399237d", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "允许 B-树比较函数返回 INT_MIN", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}, "url": "/docs/compare/?release=10.6#10.6-24230b1996c307f4", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "8eff83b2f1566b57a1f73234e9b78fff", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "允许 btree 比较函数返回 INT_MIN", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}, "url": "/docs/compare/?release=9.5.15#9.5.15-92d935d7fb61d806", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "7fb5f95175c5f3c90f759c5f47055843", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "允许 btree 比较函数返回 INT_MIN", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}, "url": "/docs/compare/?release=9.4.20#9.4.20-92d935d7fb61d806", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "af27fe31790f8098ce6152f510209814", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "允许 btree 比较函数返回 INT_MIN", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "55f0dbfe3478cb0c7ce083f82f6906c14e012d2caa7b4004980c4bad46cc2047"}, "url": "/docs/compare/?release=9.3.25#9.3.25-92d935d7fb61d806", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-6086643a55b60868", "cves": [], "html": "<p>修复共享失效消息处理中的递归风险（Tom Lane）</p>\n<p>这个错误可能导致例如无法访问刚被 <code>VACUUM FULL</code> 处理过的系统目录或索引。</p>\n<p>这一更改给 <code>LockAcquire</code> 添加了新的结果码，可能影响该函数的外部调用者，尽管只有非常不寻常的使用模式才会有问题。<code>LockAcquireExtended</code> 的 API 也有更改。</p>", "text": "修复共享失效消息处理中的递归风险（Tom Lane） 这个错误可能导致例如无法访问刚被 VACUUM FULL 处理过的系统目录或索引。 这一更改给 LockAcquire 添加了新的结果码，可能影响该函数的外部调用者，尽管只有非常不寻常的使用模式才会有问题。LockAcquireExtended 的 API 也有更改。", "title": "修复共享失效消息处理中的递归风险", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "72b3a3a6c52c804e148baaf7ba174e0296ef3af0999c5a5c469c5264f6b5dd5f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix recursion hazard in shared-invalidation message processing (Tom Lane) This error could, for example, result in failure to access a system catalog or index that had just been processed by VACUUM FULL. This change adds a new result code for LockAcquire, which might possibly affect external callers of that function, though only very unusual usage patterns would have an issue with it. The API of LockAcquireExtended is also changed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/051", "db_id": "c56133fc78fb58df573c8cd0c7540419", "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc", "relations": [{"rule": 2, "type": "equivalent", "target": "41c6eb8ed920731a7a9225bd6e22a295", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}}, {"rule": 2, "type": "equivalent", "target": "c9b74c79b02bbc97804b967a225065ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}}, {"rule": 2, "type": "equivalent", "target": "ce3eb3e3cbe6875d7704c40beff1a59f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}}, {"rule": 2, "type": "equivalent", "target": "fef0759f9da7dfa44516c0244bf37682", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "41c6eb8ed920731a7a9225bd6e22a295", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复共享失效消息处理中的递归隐患", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}, "url": "/docs/compare/?release=10.6#10.6-726bba65cae50d8c", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "c9b74c79b02bbc97804b967a225065ec", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复共享失效消息处理中的递归风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}, "url": "/docs/compare/?release=9.5.15#9.5.15-6086643a55b60868", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "fef0759f9da7dfa44516c0244bf37682", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复共享失效消息处理中的递归风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}, "url": "/docs/compare/?release=9.4.20#9.4.20-6086643a55b60868", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "ce3eb3e3cbe6875d7704c40beff1a59f", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复共享失效消息处理中的递归风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9d9d7abdc15f7eed7e84c73d30111cd1838a6d72ac6e9d3538618e50c3b13bc"}, "url": "/docs/compare/?release=9.3.25#9.3.25-6086643a55b60868", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-13412180186cf72c", "cves": [], "html": "<p>在 <code>SPI_connect()</code> 和 <code>SPI_finish()</code> 期间保存和恢复 SPI 的全局变量（Chapman Flack、Tom Lane）</p>\n<p>这防止一个使用 SPI 的函数调用另一个时可能的干扰。</p>", "text": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量（Chapman Flack、Tom Lane） 这防止一个使用 SPI 的函数调用另一个时可能的干扰。", "title": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "90a25299483bba4b048db0c8e397c5d3499ce6803578ea4d8557cbb747a8b418", "section_path": ["变更"], "commit_groups": [], "identity_text": "Save and restore SPI's global variables during SPI_connect() and SPI_finish() (Chapman Flack, Tom Lane) This prevents possible interference when one SPI-using function calls another.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/052", "db_id": "b15507bdf7f083dfffd2c8a24393e9e2", "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49", "relations": [{"rule": 2, "type": "equivalent", "target": "1741421ad76033b83a8df2f6db4fc831", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}}, {"rule": 2, "type": "equivalent", "target": "32ca1d4c3097b428c8a26a7f96da295f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}}, {"rule": 2, "type": "equivalent", "target": "4404e6d7bf83c17a753ed53c0c66d9df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}}, {"rule": 2, "type": "equivalent", "target": "909a9b96fdef44d7708bdc6ed43afdcd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4404e6d7bf83c17a753ed53c0c66d9df", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}, "url": "/docs/compare/?release=10.6#10.6-13412180186cf72c", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "1741421ad76033b83a8df2f6db4fc831", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}, "url": "/docs/compare/?release=9.5.15#9.5.15-13412180186cf72c", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "909a9b96fdef44d7708bdc6ed43afdcd", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}, "url": "/docs/compare/?release=9.4.20#9.4.20-13412180186cf72c", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "32ca1d4c3097b428c8a26a7f96da295f", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dfa388cb02e1bf8fc2fad173ead6a17b3bcabed08ed5fdfff6157d267b94fc49"}, "url": "/docs/compare/?release=9.3.25#9.3.25-13412180186cf72c", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-e16422eda84d9d88", "cves": [], "html": "<p>避免使用可能未充分对齐的页缓冲区（Tom Lane）</p>\n<p>发明了新的联合类型 <code>PGAlignedBlock</code> 和 <code>PGAlignedXLogBlock</code>，并用它们代替普通的 char 数组，确保编译器不能把缓冲区放在未对齐的起始地址。这修复了对齐挑剔平台上可能的核心转储，并且即使在允许未对齐的平台上也可能改进性能。</p>", "text": "避免使用可能未充分对齐的页缓冲区（Tom Lane） 发明了新的联合类型 PGAlignedBlock 和 PGAlignedXLogBlock，并用它们代替普通的 char 数组，确保编译器不能把缓冲区放在未对齐的起始地址。这修复了对齐挑剔平台上可能的核心转储，并且即使在允许未对齐的平台上也可能改进性能。", "title": "避免使用可能未充分对齐的页缓冲区", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "45fb626eb726831282fd02d546cce71a668b7bfef1d92bf1ee2d7eb8deb3edfd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid using potentially-under-aligned page buffers (Tom Lane) Invent new union types PGAlignedBlock and PGAlignedXLogBlock, and use these in place of plain char arrays, ensuring that the compiler can't place the buffer at a misaligned start address. This fixes potential core dumps on alignment-picky platforms, and may improve performance even on platforms that allow misalignment.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/053", "db_id": "3af5adb01d53d9e106a766350c8e3b71", "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9", "relations": [{"rule": 2, "type": "equivalent", "target": "4fb9688d5b35426bd83acc468411cf3f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}}, {"rule": 2, "type": "equivalent", "target": "50bc1232e116a6b0fcdee1ac73bab4d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}}, {"rule": 2, "type": "equivalent", "target": "856b0933fee42ec1ad1ab1bb62427378", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}}, {"rule": 2, "type": "equivalent", "target": "d006649219f6714d586475b794d5cb33", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4fb9688d5b35426bd83acc468411cf3f", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "避免使用可能未充分对齐的页面缓冲区", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}, "url": "/docs/compare/?release=10.6#10.6-a8fa54445f3fa41a", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "856b0933fee42ec1ad1ab1bb62427378", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "避免使用可能未充分对齐的页缓冲区", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}, "url": "/docs/compare/?release=9.5.15#9.5.15-e16422eda84d9d88", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "50bc1232e116a6b0fcdee1ac73bab4d0", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "避免使用可能未充分对齐的页缓冲区", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}, "url": "/docs/compare/?release=9.4.20#9.4.20-e16422eda84d9d88", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "d006649219f6714d586475b794d5cb33", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "避免使用可能未充分对齐的页缓冲区", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f75ef90f8b6438e43dc909ec11c08facb8f04297ded0ed029ca120d9001ff5b9"}, "url": "/docs/compare/?release=9.3.25#9.3.25-e16422eda84d9d88", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-11de5dcb09ad3c38", "cves": [], "html": "<p>使 <code>src/port/snprintf.c</code> 遵循 C99 标准对 <code>snprintf()</code> 结果值的定义（Tom Lane）</p>\n<p>在使用此代码的平台（主要是 Windows）上，其前 C99 行为可能导致无法检测缓冲区越界（如果调用代码假定 C99 语义）。</p>", "text": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义（Tom Lane） 在使用此代码的平台（主要是 Windows）上，其前 C99 行为可能导致无法检测缓冲区越界（如果调用代码假定 C99 语义）。", "title": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "3a03db4ffb378df38113fdbce58559878683ef9baff8ab3cb19b8e7d151a915b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make src/port/snprintf.c follow the C99 standard's definition of snprintf()'s result value (Tom Lane) On platforms where this code is used (mostly Windows), its pre-C99 behavior could lead to failure to detect buffer overrun, if the calling code assumed C99 semantics.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/054", "db_id": "ce14f0187d2f92cc92f103d99e198a93", "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75", "relations": [{"rule": 2, "type": "equivalent", "target": "4d3a572ba7186e94819188bc83fb5aef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}}, {"rule": 2, "type": "equivalent", "target": "8c0fc4495c1ea6bcfe1bb933159edeb0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}}, {"rule": 2, "type": "equivalent", "target": "ee1aa267d75e8a262348cb5183b47807", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}}, {"rule": 2, "type": "equivalent", "target": "fcc28d666da43138e72f845ef3bc85a2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4d3a572ba7186e94819188bc83fb5aef", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 返回值的定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}, "url": "/docs/compare/?release=10.6#10.6-0573fb238cc58680", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "8c0fc4495c1ea6bcfe1bb933159edeb0", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}, "url": "/docs/compare/?release=9.5.15#9.5.15-11de5dcb09ad3c38", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "fcc28d666da43138e72f845ef3bc85a2", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}, "url": "/docs/compare/?release=9.4.20#9.4.20-11de5dcb09ad3c38", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "ee1aa267d75e8a262348cb5183b47807", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0695e8cfb72404346f601621781d7b54654107c3a3d790c534e0e10e8b9f5f75"}, "url": "/docs/compare/?release=9.3.25#9.3.25-11de5dcb09ad3c38", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-0513b03bb8364885", "cves": [], "html": "<p>在 i386 上用 <span>clang</span> 编译器构建时，要求使用 <code>-msse2</code>（Andres Freund）</p>\n<p>这避免了浮点溢出检查遗漏的问题。</p>", "text": "在 i386 上用 clang 编译器构建时，要求使用 -msse2（Andres Freund） 这避免了浮点溢出检查遗漏的问题。", "title": "在 i386 上用 clang 编译器构建时，要求使用 -msse2", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "372b73872babf349d9e46467b30961c42d4342c5dda20be66df66b59b493520f", "section_path": ["变更"], "commit_groups": [], "identity_text": "When building on i386 with the clang compiler, require -msse2 to be used (Andres Freund) This avoids problems with missed floating point overflow checks.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/055", "db_id": "a4ee1656f5876a96ab0e22565283cb31", "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e", "relations": [{"rule": 2, "type": "equivalent", "target": "07cc8f1b692b4d797a56a75add6067d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}}, {"rule": 2, "type": "equivalent", "target": "223d34ed4f94b576c70ad07a0b9cd632", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}}, {"rule": 2, "type": "equivalent", "target": "825126e8f9c72dc4d669fd0e90f9b04c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}}, {"rule": 2, "type": "equivalent", "target": "e43ea8133103c7861ef5d5e20c4c4227", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "07cc8f1b692b4d797a56a75add6067d1", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "在 i386 上使用 clang 编译器构建时，要求使用 -msse2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}, "url": "/docs/compare/?release=10.6#10.6-603ec55b3c77392f", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "825126e8f9c72dc4d669fd0e90f9b04c", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "在 i386 上用 clang 编译器构建时，要求使用 -msse2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}, "url": "/docs/compare/?release=9.5.15#9.5.15-0513b03bb8364885", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "e43ea8133103c7861ef5d5e20c4c4227", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "在 i386 上用 clang 编译器构建时，要求使用 -msse2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}, "url": "/docs/compare/?release=9.4.20#9.4.20-0513b03bb8364885", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "223d34ed4f94b576c70ad07a0b9cd632", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "在 i386 上用 clang 编译器构建时，要求使用 -msse2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1afe2fe8a7cc7924a95fb8c7758224c1167e600b4c6f7e10c1518574d96fdb3e"}, "url": "/docs/compare/?release=9.3.25#9.3.25-0513b03bb8364885", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-170f645ba2d1d98b", "cves": [], "html": "<p>修复 <span>configure</span> 对 <code>strerror_r()</code> 结果类型的检测（Tom Lane）</p>\n<p>原来的编码在 Linux 上用 <span>icc</span> 构建时（或许其他情况下）得到错误答案，导致 <span>libpq</span> 不能为系统报告的错误返回有用的错误消息。</p>", "text": "修复 configure 对 strerror_r() 结果类型的检测（Tom Lane） 原来的编码在 Linux 上用 icc 构建时（或许其他情况下）得到错误答案，导致 libpq 不能为系统报告的错误返回有用的错误消息。", "title": "修复 configure 对 strerror_r() 结果类型的检测", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "9ef3ff0fbea4bdbea1603e382c0f1f37f029d2e6901fcc8fd50b4ef2fe4871dd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix configure's detection of the result type of strerror_r() (Tom Lane) The previous coding got the wrong answer when building with icc on Linux (and perhaps in other cases), leading to libpq not returning useful error messages for system-reported errors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/056", "db_id": "2b823af4119ebd4505e430c5e0256e21", "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455", "relations": [{"rule": 2, "type": "equivalent", "target": "a46737c0a40549278dd0b372abd19182", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}}, {"rule": 2, "type": "equivalent", "target": "b3dd06f7a91fe0e83411979e94cfcba9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}}, {"rule": 2, "type": "equivalent", "target": "e209fa8bb23bf519ca9757776263796c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}}, {"rule": 2, "type": "equivalent", "target": "e90051308cbdd93126518f06f9ce7362", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}}], "version": "9.6.11", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a46737c0a40549278dd0b372abd19182", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "修复 configure 对 strerror_r() 返回类型的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}, "url": "/docs/compare/?release=10.6#10.6-abeda0f420daf58f", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "e90051308cbdd93126518f06f9ce7362", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "修复 configure 对 strerror_r() 结果类型的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}, "url": "/docs/compare/?release=9.5.15#9.5.15-170f645ba2d1d98b", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "b3dd06f7a91fe0e83411979e94cfcba9", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "修复 configure 对 strerror_r() 结果类型的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}, "url": "/docs/compare/?release=9.4.20#9.4.20-170f645ba2d1d98b", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "e209fa8bb23bf519ca9757776263796c", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "修复 configure 对 strerror_r() 结果类型的检测", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b85aeb6d631f84aeac6821184fffd79a23a99e2eb030b7dd9f73d48d4f27f455"}, "url": "/docs/compare/?release=9.3.25#9.3.25-170f645ba2d1d98b", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}, {"id": "9.6.11-4239e7a753d90202", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。</p>", "text": "更新时区数据文件到 tzdata 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。", "title": "更新时区数据文件到 tzdata 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.11/#id-1.11.6.18.5", "source_hash": "efb4746232164fd50623648f29d489c41591b2aba28ebb175eeca37539fd2620", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia (Volgograd), plus historical corrections for China, Hawaii, Japan, Macau, and North Korea.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.11/changes/057", "db_id": "bd23f638637439f7790fcb58590eeb8e", "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f", "relations": [{"rule": 2, "type": "equivalent", "target": "3a47d92908a2a93e22bf9701d1a2d0fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}}, {"rule": 2, "type": "equivalent", "target": "46b29725b96825b29e06a3f184f945fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}}, {"rule": 2, "type": "equivalent", "target": "75ae186c775b3d34ee7e5623ad582135", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}}, {"rule": 2, "type": "equivalent", "target": "a9dda89f62e87a28c9cc3df0363e971d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}}, {"rule": 2, "type": "equivalent", "target": "ec1af20fff76afd67ff7d1ea4783a255", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}}], "version": "9.6.11", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec1af20fff76afd67ff7d1ea4783a255", "kind": "equivalent", "version": "11.1", "label": "11.1", "title": "将时区数据文件更新到 tzdata 2018g 版，以反映智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，并修正中国、夏威夷、日本、澳门和朝鲜的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}, "url": "/docs/compare/?release=11.1#11.1-a976c1cc861f3265", "source_url": "/docs/release/11.1/#id-1.11.6.26.5"}, {"db_id": "a9dda89f62e87a28c9cc3df0363e971d", "kind": "equivalent", "version": "10.6", "label": "10.6", "title": "将时区数据文件更新到 tzdata 2018g 版，以反映智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，并修正中国、夏威夷、日本、澳门和朝鲜的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}, "url": "/docs/compare/?release=10.6#10.6-a976c1cc861f3265", "source_url": "/docs/release/10.6/#id-1.11.6.22.5"}, {"db_id": "3a47d92908a2a93e22bf9701d1a2d0fb", "kind": "equivalent", "version": "9.5.15", "label": "9.5.15", "title": "更新时区数据文件到 tzdata 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}, "url": "/docs/compare/?release=9.5.15#9.5.15-4239e7a753d90202", "source_url": "/docs/release/9.5.15/#id-1.11.6.15.5"}, {"db_id": "46b29725b96825b29e06a3f184f945fc", "kind": "equivalent", "version": "9.4.20", "label": "9.4.20", "title": "更新时区数据文件到 tzdata 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}, "url": "/docs/compare/?release=9.4.20#9.4.20-4239e7a753d90202", "source_url": "/docs/release/9.4.20/#id-1.11.6.11.5"}, {"db_id": "75ae186c775b3d34ee7e5623ad582135", "kind": "equivalent", "version": "9.3.25", "label": "9.3.25", "title": "更新时区数据文件到 tzdata 版本 2018g，涉及智利、斐济、摩洛哥和俄罗斯（伏尔加格勒）的夏令时法规变更，以及中国、夏威夷、日本、澳门和朝鲜的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9e19090b9bf091c1bb68a6566aa3e98703adba98349ffe3420350e144cbba5f"}, "url": "/docs/compare/?release=9.3.25#9.3.25-4239e7a753d90202", "source_url": "/docs/release/9.3.25/#id-1.11.6.5.6"}]}]}, {"date": "2018-08-09", "build": "9.6.10", "major": "9.6", "minor": 10, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.10", "eol_date": "2021-11-11", "date_text": "2018-08-09", "supported": false, "manual_url": "/docs/9.6/release-9-6-10.html", "source_url": "/docs/release/9.6.10/", "entry_count": 33, "placeholder": false, "content_hash": "cd07a57413cf2b664822b4dadd1f365907fbc820d245109853f54e30c9bdc5e0", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 33, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.9 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-9.html\" title=\"E.16. 版本 9.6.9\">第 E.16 节</a>。</p>", "compatibility_count": 0, "label": "9.6.10", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 2974, "support_days": -1784, "entries": [{"id": "9.6.10-b50ee2ad35972b64", "cves": ["CVE-2018-10915"], "html": "<p>修复连接尝试之间未能完全重置 <span>libpq</span> 状态的问题（Tom Lane）</p>\n<p><code>dblink</code> 或 <code>postgres_fdw</code> 的无权限用户可以绕过旨在防止使用服务器端凭据（如运行服务器的操作系统用户拥有的 <code>~/.pgpass</code> 文件）的检查。允许本地连接上对等认证的服务器尤其容易受影响。其他攻击（如向 <code>postgres_fdw</code> 会话注入 SQL）也是可能的。以这种方式攻击 <code>postgres_fdw</code> 需要能够创建带选定连接参数的外部服务器对象，但任何能访问 <code>dblink</code> 的用户都可以利用该问题。一般而言，能够为使用 <span>libpq</span> 的应用选择连接参数的攻击者都可能作恶，尽管其他合理的攻击场景更难想到。感谢 Andrew Krasichkov 报告此问题。（CVE-2018-10915）</p>", "text": "修复连接尝试之间未能完全重置 libpq 状态的问题（Tom Lane） dblink 或 postgres_fdw 的无权限用户可以绕过旨在防止使用服务器端凭据（如运行服务器的操作系统用户拥有的 ~/.pgpass 文件）的检查。允许本地连接上对等认证的服务器尤其容易受影响。其他攻击（如向 postgres_fdw 会话注入 SQL）也是可能的。以这种方式攻击 postgres_fdw 需要能够创建带选定连接参数的外部服务器对象，但任何能访问 dblink 的用户都可以利用该问题。一般而言，能够为使用 libpq 的应用选择连接参数的攻击者都可能作恶，尽管其他合理的攻击场景更难想到。感谢 Andrew Krasichkov 报告此问题。（CVE-2018-10915）", "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "f00fc376623ceedaac2518766e6f1b8a4be248cb6b2a63918246864740d3dd3b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure to reset libpq's state fully between connection attempts (Tom Lane) An unprivileged user of dblink or postgres_fdw could bypass the checks intended to prevent use of server-side credentials, such as a ~/.pgpass file owned by the operating-system user running the server. Servers allowing peer authentication on local connections are particularly vulnerable. Other attacks such as SQL injection into a postgres_fdw session are also possible. Attacking postgres_fdw in this way requires the ability to create a foreign server object with selected connection parameters, but any user with access to dblink could exploit the problem. In general, an attacker with the ability to select the connection parameters for a libpq-using application could cause mischief, though other plausible attack scenarios are harder to think of. Our thanks to Andrew Krasichkov for reporting this issue. (CVE-2018-10915)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/001", "db_id": "0d5cfb16f95275171c5876d4383372b2", "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894", "relations": [{"rule": 2, "type": "equivalent", "target": "1ee0462b731478038defdba984f32dd4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}}, {"rule": 2, "type": "equivalent", "target": "29607663b820c5b5fee53b7793232307", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}}, {"rule": 2, "type": "equivalent", "target": "395fdb31804f461219c28a26580310df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}}, {"rule": 2, "type": "equivalent", "target": "4484dc480da4deefaaf0cb9f04a8477c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}}], "version": "9.6.10", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "4484dc480da4deefaaf0cb9f04a8477c", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}, "url": "/docs/compare/?release=10.5#10.5-b50ee2ad35972b64", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "29607663b820c5b5fee53b7793232307", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}, "url": "/docs/compare/?release=9.5.14#9.5.14-b50ee2ad35972b64", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "395fdb31804f461219c28a26580310df", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}, "url": "/docs/compare/?release=9.4.19#9.4.19-b50ee2ad35972b64", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "1ee0462b731478038defdba984f32dd4", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad329a9602e5dec28c32ed4a012d732710b864b0bc70f9135ee685883d42a894"}, "url": "/docs/compare/?release=9.3.24#9.3.24-b50ee2ad35972b64", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-c2753f735acfd244", "cves": ["CVE-2018-10925"], "html": "<p>修复通过不只是 <code>SELECT * FROM ...</code> 的视图执行 <code>INSERT ... ON CONFLICT UPDATE</code> 的问题（Dean Rasheed、Amit Langote）</p>\n<p>如果视图的 <code>SELECT</code> 列表与底层表的列不是一一对应，可更新视图的错误展开可能导致崩溃或 <span>“<span>attribute ... has the wrong type</span>”</span> 错误。此外，如果攻击用户对表的其他某些列有 <code>INSERT</code> 和 <code>UPDATE</code> 权限，此 bug 可被利用来更新该用户没有 <code>UPDATE</code> 权限的列。任何用户还可以利用它泄露服务器内存。（CVE-2018-10925）</p>", "text": "修复通过不只是 SELECT * FROM ... 的视图执行 INSERT ... ON CONFLICT UPDATE 的问题（Dean Rasheed、Amit Langote） 如果视图的 SELECT 列表与底层表的列不是一一对应，可更新视图的错误展开可能导致崩溃或 “attribute ... has the wrong type” 错误。此外，如果攻击用户对表的其他某些列有 INSERT 和 UPDATE 权限，此 bug 可被利用来更新该用户没有 UPDATE 权限的列。任何用户还可以利用它泄露服务器内存。（CVE-2018-10925）", "title": "修复通过不只是 SELECT * FROM ... 的视图执行 INSERT ... ON CONFLICT UPDATE 的问题", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "79c9850a9ceaad739e423cde26c39d9389470e02ae945dffa5c4c1649df148dd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix INSERT ... ON CONFLICT UPDATE through a view that isn't just SELECT * FROM ... (Dean Rasheed, Amit Langote) Erroneous expansion of an updatable view could lead to crashes or attribute ... has the wrong type errors, if the view's SELECT list doesn't match one-to-one with the underlying table's columns. Furthermore, this bug could be leveraged to allow updates of columns that an attacking user lacks UPDATE privilege for, if that user has INSERT and UPDATE privileges for some other column(s) of the table. Any user could also use it for disclosure of server memory. (CVE-2018-10925)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/002", "db_id": "da2ec324c1f899bc08a54ad2a1a57106", "patch_ids": [], "statement_hash": "7d9b36e0f42eb3c117d02fb4d1a66413944410df78a167abefe08e7595965292", "relations": [{"rule": 2, "type": "equivalent", "target": "27150ec6c353f8cf45284bc75e4ec3ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d9b36e0f42eb3c117d02fb4d1a66413944410df78a167abefe08e7595965292"}}, {"rule": 2, "type": "equivalent", "target": "dddc2d6546be8c5833b80708f1611577", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d9b36e0f42eb3c117d02fb4d1a66413944410df78a167abefe08e7595965292"}}], "version": "9.6.10", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "dddc2d6546be8c5833b80708f1611577", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复通过并非简单 SELECT * FROM ... 的视图执行 INSERT ... ON CONFLICT UPDATE 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d9b36e0f42eb3c117d02fb4d1a66413944410df78a167abefe08e7595965292"}, "url": "/docs/compare/?release=10.5#10.5-defa8eca5d7f95e2", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "27150ec6c353f8cf45284bc75e4ec3ca", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复通过不只是 SELECT * FROM ... 的视图执行 INSERT ... ON CONFLICT UPDATE 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d9b36e0f42eb3c117d02fb4d1a66413944410df78a167abefe08e7595965292"}, "url": "/docs/compare/?release=9.5.14#9.5.14-c2753f735acfd244", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}]}, {"id": "9.6.10-69a31af726a81fe1", "cves": [], "html": "<p>确保对<span>“<span>钉住</span>”</span>的系统目录的 <code>relfrozenxid</code> 和 <code>relminmxid</code> 值的更新被及时处理（Andres Freund）</p>\n<p>过于乐观的缓存规则可能阻止其他会话看到这些更新，导致虚假错误和/或数据损坏。对于 <code>pg_authid</code> 等共享目录，问题明显更严重，因为过期的缓存数据不仅存在于现有会话，还会持续到新会话中。</p>", "text": "确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理（Andres Freund） 过于乐观的缓存规则可能阻止其他会话看到这些更新，导致虚假错误和/或数据损坏。对于 pg_authid 等共享目录，问题明显更严重，因为过期的缓存数据不仅存在于现有会话，还会持续到新会话中。", "title": "确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "5df22cebe93f8adb0804d594314a5fc8e1a7916714b60eea5dcc86a2abe7e9a4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that updates to the relfrozenxid and relminmxid values for nailed system catalogs are processed in a timely fashion (Andres Freund) Overoptimistic caching rules could prevent these updates from being seen by other sessions, leading to spurious errors and/or data corruption. The problem was significantly worse for shared catalogs, such as pg_authid, because the stale cache data could persist into new sessions as well as existing ones.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/003", "db_id": "fe02cfd82dcb3eb66cd294a2d93301ba", "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d", "relations": [{"rule": 2, "type": "equivalent", "target": "32daf880b018ef0efc03b63f5bfad99d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}}, {"rule": 2, "type": "equivalent", "target": "6b1508337c26fcb930a902e99a3573cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}}, {"rule": 2, "type": "equivalent", "target": "9ed27a4374d255ff38dff43efcbf92e6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}}, {"rule": 2, "type": "equivalent", "target": "d2ddc8d0e0d59d6e8ddf83d17dabea01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ed27a4374d255ff38dff43efcbf92e6", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "确保及时处理对“固定”系统目录的 relfrozenxid 和 relminmxid 值的更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}, "url": "/docs/compare/?release=10.5#10.5-a02370a85c2d7333", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "d2ddc8d0e0d59d6e8ddf83d17dabea01", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}, "url": "/docs/compare/?release=9.5.14#9.5.14-69a31af726a81fe1", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "32daf880b018ef0efc03b63f5bfad99d", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}, "url": "/docs/compare/?release=9.4.19#9.4.19-69a31af726a81fe1", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "6b1508337c26fcb930a902e99a3573cf", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f40973bdecf4f197c463d71b2426f583be46d71d146da06cbab774bfe103e8d"}, "url": "/docs/compare/?release=9.3.24#9.3.24-69a31af726a81fe1", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-22efc1b502a443bd", "cves": [], "html": "<p>修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况（Michael Paquier、Kyotaro Horiguchi、Pavan Deolasee、Álvaro Herrera）</p>\n<p>这导致服务器在后续 WAL 重放期间认为自己没有达到一致的数据库状态，无法重启。</p>", "text": "修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况（Michael Paquier、Kyotaro Horiguchi、Pavan Deolasee、Álvaro Herrera） 这导致服务器在后续 WAL 重放期间认为自己没有达到一致的数据库状态，无法重启。", "title": "修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "fa7e8f5cc32174e46d7732bce494795003f464d53fc5b58fa5ba8db86d943b04", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix case where a freshly-promoted standby crashes before having completed its first post-recovery checkpoint (Michael Paquier, Kyotaro Horiguchi, Pavan Deolasee, Álvaro Herrera) This led to a situation where the server did not think it had reached a consistent database state during subsequent WAL replay, preventing restart.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/004", "db_id": "7895599dd794125ea13a3eeb6c7a5ff6", "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f", "relations": [{"rule": 2, "type": "equivalent", "target": "2f3cc96e9aaf64a7e90d7c9fdd39164e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}}, {"rule": 2, "type": "equivalent", "target": "8562f359facbd2be633dfe6e52bbd296", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}}, {"rule": 2, "type": "equivalent", "target": "acd9e84bf9a88ffb7b980a511398871b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}}, {"rule": 2, "type": "equivalent", "target": "e9197d5b5d6664ac74d0054e089d2a74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2f3cc96e9aaf64a7e90d7c9fdd39164e", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复刚提升的备库在完成恢复后的第一个检查点之前崩溃的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}, "url": "/docs/compare/?release=10.5#10.5-a40b6028bb7c0cbe", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "acd9e84bf9a88ffb7b980a511398871b", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}, "url": "/docs/compare/?release=9.5.14#9.5.14-22efc1b502a443bd", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "8562f359facbd2be633dfe6e52bbd296", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}, "url": "/docs/compare/?release=9.4.19#9.4.19-22efc1b502a443bd", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "e9197d5b5d6664ac74d0054e089d2a74", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e91754c6d4978576f71e18ac30bce445c478ff427f8ce632dc205836fb50274f"}, "url": "/docs/compare/?release=9.3.24#9.3.24-22efc1b502a443bd", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-40ea06cea1d40f1e", "cves": [], "html": "<p>避免回收全零 btree 页时发出虚假 WAL 记录（Amit Kapila）</p>\n<p>这个错误曾被观察到导致断言失败，并且可能让热备服务器上发生不必要的查询取消。</p>", "text": "避免回收全零 btree 页时发出虚假 WAL 记录（Amit Kapila） 这个错误曾被观察到导致断言失败，并且可能让热备服务器上发生不必要的查询取消。", "title": "避免回收全零 btree 页时发出虚假 WAL 记录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "1f261ca5298c0d468e5f8e100685ee862f4ef6c3d4616b53a22ea2d517e40f7c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid emitting a bogus WAL record when recycling an all-zero btree page (Amit Kapila) This mistake has been seen to cause assertion failures, and potentially it could result in unnecessary query cancellations on hot standby servers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/005", "db_id": "03132998b632c02d15256b84330ab60a", "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f", "relations": [{"rule": 2, "type": "equivalent", "target": "2dd037d083b0c3bfe29f7cfbbd4c5611", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}}, {"rule": 2, "type": "equivalent", "target": "67b50d90cd1cc74144791acbcf155f1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}}, {"rule": 2, "type": "equivalent", "target": "a74fce06026a164587c89b59b42606e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}}, {"rule": 2, "type": "equivalent", "target": "cf21645a6589d145ccf19e984286e3f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "67b50d90cd1cc74144791acbcf155f1c", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "避免回收全零 B-树页面时生成错误的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}, "url": "/docs/compare/?release=10.5#10.5-62a34b74aef33d5f", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "cf21645a6589d145ccf19e984286e3f7", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "避免回收全零 btree 页时发出虚假 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}, "url": "/docs/compare/?release=9.5.14#9.5.14-40ea06cea1d40f1e", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "a74fce06026a164587c89b59b42606e8", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "避免回收全零 btree 页时发出虚假 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}, "url": "/docs/compare/?release=9.4.19#9.4.19-40ea06cea1d40f1e", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "2dd037d083b0c3bfe29f7cfbbd4c5611", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "避免回收全零 btree 页时发出虚假 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "068a7948ba1f16ddd35a5f5cbef739818b1ffa464aa0ba3050f488c0171e180f"}, "url": "/docs/compare/?release=9.3.24#9.3.24-40ea06cea1d40f1e", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-6eda169042a1659d", "cves": [], "html": "<p>在 WAL 重放期间，防范损坏的记录长度超过 1GB（Michael Paquier）</p>\n<p>把这种情况当作损坏数据。此前代码会试图分配空间并得到硬错误，使恢复无法进行。</p>", "text": "在 WAL 重放期间，防范损坏的记录长度超过 1GB（Michael Paquier） 把这种情况当作损坏数据。此前代码会试图分配空间并得到硬错误，使恢复无法进行。", "title": "在 WAL 重放期间，防范损坏的记录长度超过 1GB", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "9dddf4f3e6d1ca47fd0bf7f23e5304de5c5dd7b1c82e1f3966a16a1b4d7fab2e", "section_path": ["变更"], "commit_groups": [], "identity_text": "During WAL replay, guard against corrupted record lengths exceeding 1GB (Michael Paquier) Treat such a case as corrupt data. Previously, the code would try to allocate space and get a hard error, making recovery impossible.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/006", "db_id": "4b605aaca4274cb27916ae8041d62fed", "patch_ids": [], "statement_hash": "6c009cbd40e60a45c40d556686aa558e12304cae5d4566922e19206197acf9e9", "relations": [{"rule": 2, "type": "equivalent", "target": "41027e0df645771c19c9446f3f1b545c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6c009cbd40e60a45c40d556686aa558e12304cae5d4566922e19206197acf9e9"}}, {"rule": 2, "type": "equivalent", "target": "ba3d8fbe57a34976503d5f20aa9dcdbf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6c009cbd40e60a45c40d556686aa558e12304cae5d4566922e19206197acf9e9"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ba3d8fbe57a34976503d5f20aa9dcdbf", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "WAL 重放期间，防范损坏记录的长度超过 1GB 的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6c009cbd40e60a45c40d556686aa558e12304cae5d4566922e19206197acf9e9"}, "url": "/docs/compare/?release=10.5#10.5-6813edd2e1e443e0", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "41027e0df645771c19c9446f3f1b545c", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "在 WAL 重放期间，防范损坏的记录长度超过 1GB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6c009cbd40e60a45c40d556686aa558e12304cae5d4566922e19206197acf9e9"}, "url": "/docs/compare/?release=9.5.14#9.5.14-6eda169042a1659d", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}]}, {"id": "9.6.10-9ae231b5f6bd70e2", "cves": [], "html": "<p>结束恢复时，尽可能推迟写入时间线历史文件（Heikki Linnakangas）</p>\n<p>这避免了恢复清理期间的失败（如两阶段状态文件的问题）导致磁盘上时间线状态不一致的一些情况。</p>", "text": "结束恢复时，尽可能推迟写入时间线历史文件（Heikki Linnakangas） 这避免了恢复清理期间的失败（如两阶段状态文件的问题）导致磁盘上时间线状态不一致的一些情况。", "title": "结束恢复时，尽可能推迟写入时间线历史文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "e4ad702497dcfb78409efe66b9575b0ac6b2759104ab9b963bb8b213e4a6c6ab", "section_path": ["变更"], "commit_groups": [], "identity_text": "When ending recovery, delay writing the timeline history file as long as possible (Heikki Linnakangas) This avoids some situations where a failure during recovery cleanup (such as a problem with a two-phase state file) led to inconsistent timeline state on-disk.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/007", "db_id": "f65d81dcd533494d65b6488dd9aa0008", "patch_ids": [], "statement_hash": "0ec483036b10caf65625991b017971fd3dc13e75e76076c919a35938a47426c6", "relations": [{"rule": 2, "type": "equivalent", "target": "03b56355c5d56825a10f6299f1501ca8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ec483036b10caf65625991b017971fd3dc13e75e76076c919a35938a47426c6"}}, {"rule": 2, "type": "equivalent", "target": "5ddea9e723cf34b46c793f3b04bef3f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ec483036b10caf65625991b017971fd3dc13e75e76076c919a35938a47426c6"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ddea9e723cf34b46c793f3b04bef3f8", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "结束恢复时，尽可能推迟写入时间线历史文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ec483036b10caf65625991b017971fd3dc13e75e76076c919a35938a47426c6"}, "url": "/docs/compare/?release=10.5#10.5-9ae231b5f6bd70e2", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "03b56355c5d56825a10f6299f1501ca8", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "结束恢复时，尽可能推迟写入时间线历史文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ec483036b10caf65625991b017971fd3dc13e75e76076c919a35938a47426c6"}, "url": "/docs/compare/?release=9.5.14#9.5.14-9ae231b5f6bd70e2", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}]}, {"id": "9.6.10-6d677cacf09bcdc6", "cves": [], "html": "<p>改进删除许多关系的事务的 WAL 重放性能（Fujii Masao）</p>\n<p>这一更改减少了共享缓冲区被扫描的次数，因此在该设置较大时收益最大。</p>", "text": "改进删除许多关系的事务的 WAL 重放性能（Fujii Masao） 这一更改减少了共享缓冲区被扫描的次数，因此在该设置较大时收益最大。", "title": "改进删除许多关系的事务的 WAL 重放性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "7cc920f9076e43b10d60cc01c4b21850edbb0ed4aeb95ff3f54a6585449d78b1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve performance of WAL replay for transactions that drop many relations (Fujii Masao) This change reduces the number of times that shared buffers are scanned, so that it is of most benefit when that setting is large.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/008", "db_id": "0a7c3a5fd7a055838a2d503121a355db", "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381", "relations": [{"rule": 2, "type": "equivalent", "target": "152828386a677615583bbe556b597df0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}}, {"rule": 2, "type": "equivalent", "target": "442bd49ac88e1927ac19e63a17c88a11", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}}, {"rule": 2, "type": "equivalent", "target": "53d49ed990ec4935f62ad367fb4e998e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}}, {"rule": 2, "type": "equivalent", "target": "87e029f82b47117920a10995449b3418", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}}], "version": "9.6.10", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "442bd49ac88e1927ac19e63a17c88a11", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "提高删除大量关系的事务的 WAL 重放性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}, "url": "/docs/compare/?release=10.5#10.5-13ef945b2e108a26", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "87e029f82b47117920a10995449b3418", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "改进删除许多关系的事务的 WAL 重放性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}, "url": "/docs/compare/?release=9.5.14#9.5.14-6d677cacf09bcdc6", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "152828386a677615583bbe556b597df0", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "改进删除许多关系的事务的 WAL 重放性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}, "url": "/docs/compare/?release=9.4.19#9.4.19-6d677cacf09bcdc6", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "53d49ed990ec4935f62ad367fb4e998e", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "改进删除许多关系的事务的 WAL 重放性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dae0982858056281ddd784b5db4d4042731d4c1115c7c137a61454406027b381"}, "url": "/docs/compare/?release=9.3.24#9.3.24-6d677cacf09bcdc6", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-650266e24d800bcc", "cves": [], "html": "<p>改进备库服务器 WAL 重放中锁释放的性能（Thomas Munro）</p>", "text": "改进备库服务器 WAL 重放中锁释放的性能（Thomas Munro）", "title": "改进备库服务器 WAL 重放中锁释放的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "2f9e243751b8ba8068004f0c0889fb83235c64bec6a25f3891a4f1ca722a18d0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve performance of lock releasing in standby server WAL replay (Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/009", "db_id": "198f89cf0c74e8275f1b5659a253422e", "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1", "relations": [{"rule": 2, "type": "equivalent", "target": "10e8bd8bbcb3a0dc654368a93dc0266c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}}, {"rule": 2, "type": "equivalent", "target": "7331471ab70e53cf23524471f59d35f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}}, {"rule": 2, "type": "equivalent", "target": "8ba3323e8cfbe4ae8c3cf944b89bd142", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}}, {"rule": 2, "type": "equivalent", "target": "b632ab0b0a3e766425ff17921f9d6048", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}}], "version": "9.6.10", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7331471ab70e53cf23524471f59d35f3", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "提高备库 WAL 重放中释放锁的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}, "url": "/docs/compare/?release=10.5#10.5-1c055dee978bcef7", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "8ba3323e8cfbe4ae8c3cf944b89bd142", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "改进备库服务器 WAL 重放中锁释放的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}, "url": "/docs/compare/?release=9.5.14#9.5.14-650266e24d800bcc", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "10e8bd8bbcb3a0dc654368a93dc0266c", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "改进备库 WAL 重放中锁释放的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}, "url": "/docs/compare/?release=9.4.19#9.4.19-fb93b33ad1f882d2", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "b632ab0b0a3e766425ff17921f9d6048", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "改进备库服务器 WAL 重放中锁释放的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c5e832fe5b3955e163fe6a4881dd2299279821cdfbd8c26907079cafc05875a1"}, "url": "/docs/compare/?release=9.3.24#9.3.24-650266e24d800bcc", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-0fff8704bb5dc396", "cves": [], "html": "<p>让逻辑 WAL 发送者正确报告流状态（Simon Riggs、Sawada Masahiko）</p>\n<p>代码此前错误判断是否已追上上游服务器。</p>", "text": "让逻辑 WAL 发送者正确报告流状态（Simon Riggs、Sawada Masahiko） 代码此前错误判断是否已追上上游服务器。", "title": "让逻辑 WAL 发送者正确报告流状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "12beee5a891790873d268fe03a2a7d7a86a5650fd3c90e32dcea33ca7b84b071", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make logical WAL senders report streaming state correctly (Simon Riggs, Sawada Masahiko) The code previously mis-detected whether or not it had caught up with the upstream server.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/010", "db_id": "63531a370ad0a7a51eb997fce1a8f295", "patch_ids": [], "statement_hash": "4d77f60252a806f87315684495c6b6acef9bfb3745d23aaa92ad3200ef8f5a10", "relations": [{"rule": 2, "type": "equivalent", "target": "0024dddf8b0a2457e78f36aab16a9436", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d77f60252a806f87315684495c6b6acef9bfb3745d23aaa92ad3200ef8f5a10"}}, {"rule": 2, "type": "equivalent", "target": "153b2bc4ecaec1233e1e5d5ae5e15de9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d77f60252a806f87315684495c6b6acef9bfb3745d23aaa92ad3200ef8f5a10"}}, {"rule": 2, "type": "equivalent", "target": "ce0c374e27e67e4239351a562a480325", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d77f60252a806f87315684495c6b6acef9bfb3745d23aaa92ad3200ef8f5a10"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "153b2bc4ecaec1233e1e5d5ae5e15de9", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "使逻辑 WAL 发送进程正确报告流式传输状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d77f60252a806f87315684495c6b6acef9bfb3745d23aaa92ad3200ef8f5a10"}, "url": "/docs/compare/?release=10.5#10.5-989cc221c1a1990a", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "ce0c374e27e67e4239351a562a480325", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "让逻辑 WAL 发送者正确报告流状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d77f60252a806f87315684495c6b6acef9bfb3745d23aaa92ad3200ef8f5a10"}, "url": "/docs/compare/?release=9.5.14#9.5.14-0fff8704bb5dc396", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "0024dddf8b0a2457e78f36aab16a9436", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "让逻辑 WAL 发送者正确报告流状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d77f60252a806f87315684495c6b6acef9bfb3745d23aaa92ad3200ef8f5a10"}, "url": "/docs/compare/?release=9.4.19#9.4.19-0fff8704bb5dc396", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.6.10-f813c7f7a2e35180", "cves": [], "html": "<p>修复逻辑解码期间快照处理中的 bug，罕见情况下可能导致错误的解码结果（Arseny Sher、Álvaro Herrera）</p>", "text": "修复逻辑解码期间快照处理中的 bug，罕见情况下可能导致错误的解码结果（Arseny Sher、Álvaro Herrera）", "title": "修复逻辑解码期间快照处理中的 bug，罕见情况下可能导致错误的解码结果", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "b7f0b5819259613fb23215bd6dc8f782dc0149974598072935318c62cca494e8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bugs in snapshot handling during logical decoding, allowing wrong decoding results in rare cases (Arseny Sher, Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/011", "db_id": "722dda8d255ed48f07a7f1102dc85540", "patch_ids": [], "statement_hash": "2d59a06961fcbfe2737d81b449e6ec66d6dd457093da06528417729be1ceae77", "relations": [{"rule": 2, "type": "equivalent", "target": "747a23053f3fdc8513934045f4b8a8eb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d59a06961fcbfe2737d81b449e6ec66d6dd457093da06528417729be1ceae77"}}, {"rule": 2, "type": "equivalent", "target": "ba72487eca3d90a8965a8f78799d4a37", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d59a06961fcbfe2737d81b449e6ec66d6dd457093da06528417729be1ceae77"}}, {"rule": 2, "type": "equivalent", "target": "ed39f60ba1d526a39605d75e09f29524", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d59a06961fcbfe2737d81b449e6ec66d6dd457093da06528417729be1ceae77"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed39f60ba1d526a39605d75e09f29524", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复逻辑解码期间快照处理中的缺陷，这些缺陷在罕见情况下会导致错误的解码结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d59a06961fcbfe2737d81b449e6ec66d6dd457093da06528417729be1ceae77"}, "url": "/docs/compare/?release=10.5#10.5-7a630233e8158c82", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "747a23053f3fdc8513934045f4b8a8eb", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复逻辑解码期间快照处理中的 bug，罕见情况下可能导致错误的解码结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d59a06961fcbfe2737d81b449e6ec66d6dd457093da06528417729be1ceae77"}, "url": "/docs/compare/?release=9.5.14#9.5.14-f813c7f7a2e35180", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "ba72487eca3d90a8965a8f78799d4a37", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复逻辑解码期间快照处理的缺陷，罕见情况下可能导致错误的解码结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d59a06961fcbfe2737d81b449e6ec66d6dd457093da06528417729be1ceae77"}, "url": "/docs/compare/?release=9.4.19#9.4.19-3a3e750646316e63", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.6.10-779e6d81d6e547c8", "cves": [], "html": "<p>确保索引创建中途失败后正确重建表的缓存索引列表（Peter Geoghegan）</p>\n<p>此前失败索引的 OID 可能留在列表中，在同一会话中之后引起问题。</p>", "text": "确保索引创建中途失败后正确重建表的缓存索引列表（Peter Geoghegan） 此前失败索引的 OID 可能留在列表中，在同一会话中之后引起问题。", "title": "确保索引创建中途失败后正确重建表的缓存索引列表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "51ef6609147a62c994f70e0a2c09017f69a5d6edafc2269070a47932b4e0f11c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure a table's cached index list is correctly rebuilt after an index creation fails partway through (Peter Geoghegan) Previously, the failed index's OID could remain in the list, causing problems later in the same session.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/012", "db_id": "186e31d2cfd35855b738f0e59e37bc8a", "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800", "relations": [{"rule": 2, "type": "equivalent", "target": "26e04fcb7e6cede2081c220dd2bec55f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}}, {"rule": 2, "type": "equivalent", "target": "323782b89f6740151049a909f0559a13", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}}, {"rule": 2, "type": "equivalent", "target": "58f069360214dd9f86e14701bbefcbb5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}}, {"rule": 2, "type": "equivalent", "target": "9816837056d8933773918134c3de8eba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "58f069360214dd9f86e14701bbefcbb5", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "确保索引创建中途失败后，正确重建表的缓存索引列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}, "url": "/docs/compare/?release=10.5#10.5-f07313845b5285b2", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "26e04fcb7e6cede2081c220dd2bec55f", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "确保索引创建中途失败后正确重建表的缓存索引列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}, "url": "/docs/compare/?release=9.5.14#9.5.14-779e6d81d6e547c8", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "9816837056d8933773918134c3de8eba", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "确保索引创建中途失败后正确重建表的缓存索引列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}, "url": "/docs/compare/?release=9.4.19#9.4.19-779e6d81d6e547c8", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "323782b89f6740151049a909f0559a13", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "确保索引创建中途失败后正确重建表的缓存索引列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cd62bf70f8ea7367a437e9c84dd8160f5d842a9309758b8eb517f493440f6800"}, "url": "/docs/compare/?release=9.3.24#9.3.24-779e6d81d6e547c8", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-b2988648e4be847c", "cves": [], "html": "<p>修复 GIN 索引中空未压缩 posting 列表页的处理不当（Sivasubramanian Ramasubramanian、Alexander Korotkov）</p>\n<p>这可能导致 9.4 之前的 GIN 索引经 pg_upgrade 之后的断言失败（9.4 及之后不会创建这种页）。</p>", "text": "修复 GIN 索引中空未压缩 posting 列表页的处理不当（Sivasubramanian Ramasubramanian、Alexander Korotkov） 这可能导致 9.4 之前的 GIN 索引经 pg_upgrade 之后的断言失败（9.4 及之后不会创建这种页）。", "title": "修复 GIN 索引中空未压缩 posting 列表页的处理不当", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "af1a4606e0baea42e268af5e6f13f7235e310d56ef2676adf64a074046021bda", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix mishandling of empty uncompressed posting list pages in GIN indexes (Sivasubramanian Ramasubramanian, Alexander Korotkov) This could result in an assertion failure after pg_upgrade of a pre-9.4 GIN index (9.4 and later will not create such pages).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/013", "db_id": "341f4d27388876640cba6c8724119e4b", "patch_ids": [], "statement_hash": "b8a2167e84b84133e3ca3d47c7884079f82f923701fd5212458ebf05df7a6a90", "relations": [{"rule": 2, "type": "equivalent", "target": "5c9d8f690407ff5c825e0556be5cbb4d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a2167e84b84133e3ca3d47c7884079f82f923701fd5212458ebf05df7a6a90"}}, {"rule": 2, "type": "equivalent", "target": "8f189bc48d07dd9c38455eb63e078f9a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a2167e84b84133e3ca3d47c7884079f82f923701fd5212458ebf05df7a6a90"}}, {"rule": 2, "type": "equivalent", "target": "a6b4d547c3a7317a9933e598d026a0af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a2167e84b84133e3ca3d47c7884079f82f923701fd5212458ebf05df7a6a90"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a6b4d547c3a7317a9933e598d026a0af", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复 GIN 索引中对空的未压缩倒排列表页面的不正确处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a2167e84b84133e3ca3d47c7884079f82f923701fd5212458ebf05df7a6a90"}, "url": "/docs/compare/?release=10.5#10.5-1296c8950b3656f7", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "8f189bc48d07dd9c38455eb63e078f9a", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复 GIN 索引中空未压缩 posting 列表页的处理不当", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a2167e84b84133e3ca3d47c7884079f82f923701fd5212458ebf05df7a6a90"}, "url": "/docs/compare/?release=9.5.14#9.5.14-b2988648e4be847c", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "5c9d8f690407ff5c825e0556be5cbb4d", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复 GIN 索引中空未压缩 posting 列表页的处理不当", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b8a2167e84b84133e3ca3d47c7884079f82f923701fd5212458ebf05df7a6a90"}, "url": "/docs/compare/?release=9.4.19#9.4.19-b2988648e4be847c", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.6.10-58f18e932dffa484", "cves": [], "html": "<p>确保 <code>VACUUM</code> 在 btree 页删除循环中响应信号（Andres Freund）</p>\n<p>损坏的 btree 索引可能在这里导致无限循环，而此前不强制崩溃就无法中断。</p>", "text": "确保 VACUUM 在 btree 页删除循环中响应信号（Andres Freund） 损坏的 btree 索引可能在这里导致无限循环，而此前不强制崩溃就无法中断。", "title": "确保 VACUUM 在 btree 页删除循环中响应信号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "698fed7a82db1d2c3f06010579547106902cf451e245b911860d019b4dfff38a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that VACUUM will respond to signals within btree page deletion loops (Andres Freund) Corrupted btree indexes could result in an infinite loop here, and that previously wasn't interruptible without forcing a crash.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/014", "db_id": "a56694ab96dd635cd3ac4625fff21988", "patch_ids": [], "statement_hash": "6742ae11a896e2fd92be7b1babe613d1036f84f4921911000e38736d395a8e6c", "relations": [{"rule": 2, "type": "equivalent", "target": "4721267ab5f350035de8fbf5ef55ea6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6742ae11a896e2fd92be7b1babe613d1036f84f4921911000e38736d395a8e6c"}}, {"rule": 2, "type": "equivalent", "target": "9daba184165b978b5048851d3664d90f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6742ae11a896e2fd92be7b1babe613d1036f84f4921911000e38736d395a8e6c"}}, {"rule": 2, "type": "equivalent", "target": "e77cd5b3cc2485698c5eff5d1d373f8d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6742ae11a896e2fd92be7b1babe613d1036f84f4921911000e38736d395a8e6c"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9daba184165b978b5048851d3664d90f", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "确保 VACUUM 在 B-树页面删除循环中响应信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6742ae11a896e2fd92be7b1babe613d1036f84f4921911000e38736d395a8e6c"}, "url": "/docs/compare/?release=10.5#10.5-a963e430e7d11605", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "e77cd5b3cc2485698c5eff5d1d373f8d", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "确保 VACUUM 在 btree 页删除循环中响应信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6742ae11a896e2fd92be7b1babe613d1036f84f4921911000e38736d395a8e6c"}, "url": "/docs/compare/?release=9.5.14#9.5.14-58f18e932dffa484", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "4721267ab5f350035de8fbf5ef55ea6b", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "确保 VACUUM 在 btree 页删除循环中响应信号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6742ae11a896e2fd92be7b1babe613d1036f84f4921911000e38736d395a8e6c"}, "url": "/docs/compare/?release=9.4.19#9.4.19-58f18e932dffa484", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.6.10-cf3ce0b44d07413b", "cves": [], "html": "<p>修复涉及复合类型列的等价类的错误优化（Tom Lane）</p>\n<p>这导致未能识别复合列上的索引可以为该列上的归并连接提供所需的排序顺序。</p>", "text": "修复涉及复合类型列的等价类的错误优化（Tom Lane） 这导致未能识别复合列上的索引可以为该列上的归并连接提供所需的排序顺序。", "title": "修复涉及复合类型列的等价类的错误优化", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "5f34ec56743e8e34e885397e92591b5f7abcf68d61c46db0ac49623f23afa9a4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misoptimization of equivalence classes involving composite-type columns (Tom Lane) This resulted in failure to recognize that an index on a composite column could provide the sort order needed for a mergejoin on that column.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/015", "db_id": "52cef43a8c73048f335ccbec3a8eaa20", "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb", "relations": [{"rule": 2, "type": "equivalent", "target": "182bf1369f6e672ae01de81e926e566b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}}, {"rule": 2, "type": "equivalent", "target": "1a738a8866da02b729b2a8833232d01b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}}, {"rule": 2, "type": "equivalent", "target": "4c8532a87fe864b0d7dd80115d45ded5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}}, {"rule": 2, "type": "equivalent", "target": "a9b35e1d8e5e3420204fe78b358c9962", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4c8532a87fe864b0d7dd80115d45ded5", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复涉及复合类型列的等价类的不正确优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}, "url": "/docs/compare/?release=10.5#10.5-b23536709041574c", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "a9b35e1d8e5e3420204fe78b358c9962", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复涉及复合类型列的等价类的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}, "url": "/docs/compare/?release=9.5.14#9.5.14-cf3ce0b44d07413b", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "1a738a8866da02b729b2a8833232d01b", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复涉及复合类型列的等价类的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}, "url": "/docs/compare/?release=9.4.19#9.4.19-cf3ce0b44d07413b", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "182bf1369f6e672ae01de81e926e566b", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "修复涉及复合类型列的等价类的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f614996577b318997d1ad826e475da2f633c108f544ab5dfc793c89467fd4beb"}, "url": "/docs/compare/?release=9.3.24#9.3.24-cf3ce0b44d07413b", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-46b3345315e9cb1a", "cves": [], "html": "<p>修复规划器避免某些带集合返回函数的查询中的 <span>“<span>ORDER/GROUP BY expression not found in targetlist</span>”</span> 错误（Tom Lane）</p>", "text": "修复规划器避免某些带集合返回函数的查询中的 “ORDER/GROUP BY expression not found in targetlist” 错误（Tom Lane）", "title": "修复规划器避免某些带集合返回函数的查询中的 “ORDER/GROUP BY expression not found in targetlist” 错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "cb2c7864240b9cfe52a95b7371cf06b18b499ff3c61b71cbefae25016dd8c682", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner to avoid ORDER/GROUP BY expression not found in targetlist errors in some queries with set-returning functions (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/016", "db_id": "3f847ab19378158a35fbe6c486b7a25b", "patch_ids": [], "statement_hash": "8b3babba83aca5f6472be6d4565597f7888b9f988876dd4d916ea0bd90fd9a9c", "relations": [{"rule": 2, "type": "equivalent", "target": "e5e34c399d9dc4d7735d61a36a91d51f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3babba83aca5f6472be6d4565597f7888b9f988876dd4d916ea0bd90fd9a9c"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5e34c399d9dc4d7735d61a36a91d51f", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复规划器，避免某些包含返回集合函数的查询发生 “ORDER/GROUP BY expression not found in targetlist” 错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8b3babba83aca5f6472be6d4565597f7888b9f988876dd4d916ea0bd90fd9a9c"}, "url": "/docs/compare/?release=10.5#10.5-c03a5f6f7e37363f", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}]}, {"id": "9.6.10-4fc173c77f38c086", "cves": [], "html": "<p>修复 SQL 标准 <code>FETCH FIRST</code> 语法允许参数（<code>$<em><code>n</code></em></code>），正如标准所期望的（Andrew Gierth）</p>", "text": "修复 SQL 标准 FETCH FIRST 语法允许参数（$n），正如标准所期望的（Andrew Gierth）", "title": "修复 SQL 标准 FETCH FIRST 语法允许参数（$n），正如标准所期望的", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "d3b59d512ff8582c1f5997fe231357932b873177fe9f6f4d1d353476849c4043", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix SQL-standard FETCH FIRST syntax to allow parameters ($n), as the standard expects (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/017", "db_id": "1968060fb84d59b197c126ae941b4b3b", "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649", "relations": [{"rule": 2, "type": "equivalent", "target": "23762746b800611931fc7c4cd4b33449", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}}, {"rule": 2, "type": "equivalent", "target": "24bdb88062ca581f68e29dbcbd38c755", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}}, {"rule": 2, "type": "equivalent", "target": "490c01ca4c089acfc35b01915796225c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}}, {"rule": 2, "type": "equivalent", "target": "ffee22d09074ad0235653a33dd93df64", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ffee22d09074ad0235653a33dd93df64", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复 SQL 标准的 FETCH FIRST 语法，使其按照标准预期允许参数（$n）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}, "url": "/docs/compare/?release=10.5#10.5-3c42f8df248c938e", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "23762746b800611931fc7c4cd4b33449", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复 SQL 标准 FETCH FIRST 语法允许参数（$n），正如标准所期望的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}, "url": "/docs/compare/?release=9.5.14#9.5.14-4fc173c77f38c086", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "24bdb88062ca581f68e29dbcbd38c755", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复 SQL 标准FETCH FIRST语法，按标准预期允许参数（$n）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}, "url": "/docs/compare/?release=9.4.19#9.4.19-a8aaf744484cbc12", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "490c01ca4c089acfc35b01915796225c", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "修复 SQL 标准 FETCH FIRST 语法允许参数（$n），正如标准所期望的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "461ce3f06fb3ad3bfe5901fc90283844df681aee22c74abd9dd1b8dd8f30c649"}, "url": "/docs/compare/?release=9.3.24#9.3.24-4fc173c77f38c086", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-ce164119f60b6a39", "cves": [], "html": "<p>修复 <code>EXPLAIN</code> 对并行工作者中资源使用（特别是缓冲区访问）的计算（Amit Kapila、Robert Haas）</p>", "text": "修复 EXPLAIN 对并行工作者中资源使用（特别是缓冲区访问）的计算（Amit Kapila、Robert Haas）", "title": "修复 EXPLAIN 对并行工作者中资源使用（特别是缓冲区访问）的计算", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "cff6973ee2eaf1242bb955c2ffbc20d2f79f7471350d26b559b6b005232ca514", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix EXPLAIN's accounting for resource usage, particularly buffer accesses, in parallel workers (Amit Kapila, Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/018", "db_id": "c1f9392f4d7859c13d01d6165cacf15f", "patch_ids": [], "statement_hash": "5c6f42f0b8605a56f546d57f10623f5716499739c8498f105b03dd299f8e18a0", "relations": [{"rule": 2, "type": "equivalent", "target": "91a2db8ea40f2ae941be07b0cc923829", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5c6f42f0b8605a56f546d57f10623f5716499739c8498f105b03dd299f8e18a0"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "91a2db8ea40f2ae941be07b0cc923829", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复 EXPLAIN 对并行工作进程资源用量的统计，尤其是缓冲区访问", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5c6f42f0b8605a56f546d57f10623f5716499739c8498f105b03dd299f8e18a0"}, "url": "/docs/compare/?release=10.5#10.5-31e6211ad5de572c", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}]}, {"id": "9.6.10-bdea22fc5d2a1f59", "cves": [], "html": "<p>修复 <code>getObjectDescription</code> 输出中某些对象名未做模式限定的问题（Kyotaro Horiguchi、Tom Lane）</p>\n<p>排序规则、转换和文本搜索对象的名称在应当模式限定时没有限定。</p>", "text": "修复 getObjectDescription 输出中某些对象名未做模式限定的问题（Kyotaro Horiguchi、Tom Lane） 排序规则、转换和文本搜索对象的名称在应当模式限定时没有限定。", "title": "修复 getObjectDescription 输出中某些对象名未做模式限定的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "b9911075355dcd2ffdea6e474ee372351f1ba42d3a512a98d395bb314b5925ee", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failure to schema-qualify some object names in getObjectDescription output (Kyotaro Horiguchi, Tom Lane) Names of collations, conversions, and text search objects were not schema-qualified when they should be.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/019", "db_id": "963261e14d052337e5dc2b4e88cbc5e0", "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff", "relations": [{"rule": 2, "type": "equivalent", "target": "27658c43fd30fb6c922c98c6baaaac7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}}, {"rule": 2, "type": "equivalent", "target": "2b4777993e8637549d65833b7c3007bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}}, {"rule": 2, "type": "equivalent", "target": "5e644a697564bfbaaa39703930a024bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "27658c43fd30fb6c922c98c6baaaac7b", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复 getObjectDescription 输出中某些对象名未做模式限定的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}, "url": "/docs/compare/?release=9.5.14#9.5.14-bdea22fc5d2a1f59", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "2b4777993e8637549d65833b7c3007bc", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复 getObjectDescription 输出中某些对象名未做模式限定的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}, "url": "/docs/compare/?release=9.4.19#9.4.19-bdea22fc5d2a1f59", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "5e644a697564bfbaaa39703930a024bc", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "修复 getObjectDescription 输出中某些对象名未做模式限定的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07ff116e1bc884f9d2f8cb5b05fb55fda509f7d7394a3261972c6bcfb13289ff"}, "url": "/docs/compare/?release=9.3.24#9.3.24-bdea22fc5d2a1f59", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-aa7082cd0e944462", "cves": [], "html": "<p>修复 <code>CREATE AGGREGATE</code> 的类型检查，使并行支持函数可以附加到可变参数聚合上（Alexey Bashtanov）</p>", "text": "修复 CREATE AGGREGATE 的类型检查，使并行支持函数可以附加到可变参数聚合上（Alexey Bashtanov）", "title": "修复 CREATE AGGREGATE 的类型检查，使并行支持函数可以附加到可变参数聚合上", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "0814ed4baaffcc6cb9288d96c4399e9ebbd56316a4e1164c02c42346a77c95cf", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix CREATE AGGREGATE type checking so that parallelism support functions can be attached to variadic aggregates (Alexey Bashtanov)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/020", "db_id": "f2c894774513362cc4b36b04d02b8679", "patch_ids": [], "statement_hash": "61f459aef33b0d0b068e96999cb9a7afff3aba237bab6c13c92647178e30a09d", "relations": [{"rule": 2, "type": "equivalent", "target": "231e903ab6c7535dc9a83e6a9b088ca3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "61f459aef33b0d0b068e96999cb9a7afff3aba237bab6c13c92647178e30a09d"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "231e903ab6c7535dc9a83e6a9b088ca3", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复 CREATE AGGREGATE 的类型检查，使并行支持函数能够附加到可变参数聚合", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "61f459aef33b0d0b068e96999cb9a7afff3aba237bab6c13c92647178e30a09d"}, "url": "/docs/compare/?release=10.5#10.5-5278ba0dd640443a", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}]}, {"id": "9.6.10-320884ea8c60e438", "cves": [], "html": "<p>把 <code>COPY FROM</code> 的当前行号计数器从 32 位加宽到 64 位（David Rowley）</p>\n<p>这避免了超过 4G 行输入的两个问题：<code>COPY FROM WITH HEADER</code> 会每 4G 行丢弃一行而不只是第一行；错误报告可能显示错误的行号。</p>", "text": "把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位（David Rowley） 这避免了超过 4G 行输入的两个问题：COPY FROM WITH HEADER 会每 4G 行丢弃一行而不只是第一行；错误报告可能显示错误的行号。", "title": "把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "ff4f6b93a6c284927d35c020079c03d7ad8b1580ee6a26d94a7832aaa396766b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Widen COPY FROM's current-line-number counter from 32 to 64 bits (David Rowley) This avoids two problems with input exceeding 4G lines: COPY FROM WITH HEADER would drop a line every 4G lines, not only the first line, and error reports could show a wrong line number.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/021", "db_id": "400870fbe55df9359ede788c742a20f4", "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3", "relations": [{"rule": 2, "type": "equivalent", "target": "4f3380485fe76c091f58f1ddcd87dfde", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}}, {"rule": 2, "type": "equivalent", "target": "6a29568a274d6d7c0272352ceaa8bff2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}}, {"rule": 2, "type": "equivalent", "target": "97fc4eb2cf786b0b5d7e4acc0dfdfdc3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}}, {"rule": 2, "type": "equivalent", "target": "b2cd9cf689a963719a5775af84071246", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2cd9cf689a963719a5775af84071246", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "将 COPY FROM 的当前行号计数器从 32 位扩为 64 位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}, "url": "/docs/compare/?release=10.5#10.5-bc005ea158a544ad", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "6a29568a274d6d7c0272352ceaa8bff2", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}, "url": "/docs/compare/?release=9.5.14#9.5.14-320884ea8c60e438", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "97fc4eb2cf786b0b5d7e4acc0dfdfdc3", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}, "url": "/docs/compare/?release=9.4.19#9.4.19-320884ea8c60e438", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "4f3380485fe76c091f58f1ddcd87dfde", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8d31fc4a2ed333c07b1d2ccfe8dcf71234b6e2ef3078d93c716d562b5a7179b3"}, "url": "/docs/compare/?release=9.3.24#9.3.24-320884ea8c60e438", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-52df9474d43758a2", "cves": [], "html": "<p>向 <span>ecpg</span> 的 <code>pgtypes</code> 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题（Takayuki Tsunakawa）</p>\n<p>在 Windows 上，如果给定内存块的 <code>free</code> 调用不是来自 <code>malloc</code> 该内存的同一 DLL，就会发生崩溃。<code>pgtypes</code> 库有时返回期望调用者释放的字符串，使得无法遵循这一规则。添加了仅包装 <code>free</code> 的 <code>PGTYPESchar_free()</code> 函数，允许应用遵循规则。</p>", "text": "向 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题（Takayuki Tsunakawa） 在 Windows 上，如果给定内存块的 free 调用不是来自 malloc 该内存的同一 DLL，就会发生崩溃。pgtypes 库有时返回期望调用者释放的字符串，使得无法遵循这一规则。添加了仅包装 free 的 PGTYPESchar_free() 函数，允许应用遵循规则。", "title": "向 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "4f3b7c88335b8869f8f8f96ea5c22ab520adaaa102f2af0566e72a66cedeabe9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add a string freeing function to ecpg's pgtypes library, so that cross-module memory management problems can be avoided on Windows (Takayuki Tsunakawa) On Windows, crashes can ensue if the free call for a given chunk of memory is not made from the same DLL that malloc'ed the memory. The pgtypes library sometimes returns strings that it expects the caller to free, making it impossible to follow this rule. Add a PGTYPESchar_free() function that just wraps free, allowing applications to follow this rule.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/022", "db_id": "eb1d28d406157fb5bbad175fbbb79b13", "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1", "relations": [{"rule": 2, "type": "equivalent", "target": "0946cb89007c74396f2e5853cc40c2dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}}, {"rule": 2, "type": "equivalent", "target": "0b91ed0ea692c7622473081c3cee603e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}}, {"rule": 2, "type": "equivalent", "target": "41f554276a4627478e8a48afd1c9655e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}}, {"rule": 2, "type": "equivalent", "target": "8c9a67f692106da0e5f9c5949aa377bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "41f554276a4627478e8a48afd1c9655e", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "为 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上跨模块内存管理的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}, "url": "/docs/compare/?release=10.5#10.5-87992818e1200b8e", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "8c9a67f692106da0e5f9c5949aa377bf", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "向 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}, "url": "/docs/compare/?release=9.5.14#9.5.14-52df9474d43758a2", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "0946cb89007c74396f2e5853cc40c2dd", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "向 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}, "url": "/docs/compare/?release=9.4.19#9.4.19-52df9474d43758a2", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "0b91ed0ea692c7622473081c3cee603e", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "向 ecpg 的 pgtypes 库添加字符串释放函数，以避免 Windows 上的跨模块内存管理问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fed3b2344f2871ef3ce62e5f5fd4d3ae3281b67ceefa8cf91ca4e2d9da6203c1"}, "url": "/docs/compare/?release=9.3.24#9.3.24-52df9474d43758a2", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-67eb3d7560ffa91c", "cves": [], "html": "<p>修复 <span>ecpg</span> 在 Windows 以及其他非标准声明 <code>strtoll</code>/<code>strtoull</code> 或根本不声明的平台上对 <code>long long</code> 变量的支持（Dang Minh Huong、Tom Lane）</p>", "text": "修复 ecpg 在 Windows 以及其他非标准声明 strtoll/strtoull 或根本不声明的平台上对 long long 变量的支持（Dang Minh Huong、Tom Lane）", "title": "修复 ecpg 在 Windows 以及其他非标准声明 strtoll/strtoull 或根本不声明的平台上对 long long 变量的支持", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "1ccb6175cd65aa6972cdd7728b481bf64650615df0eb2ff8f58a5b6cb11c9818", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg's support for long long variables on Windows, as well as other platforms that declare strtoll/strtoull nonstandardly or not at all (Dang Minh Huong, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/023", "db_id": "9edbfa560d7bc4f98cbfe7246f929813", "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256", "relations": [{"rule": 2, "type": "equivalent", "target": "29b9d2586a64e3779f17fbed067c9f5e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}}, {"rule": 2, "type": "equivalent", "target": "318c71edee40025f50d789b0a24c41af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}}, {"rule": 2, "type": "equivalent", "target": "82491916a79200c133a3da7416449cf8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}}, {"rule": 2, "type": "equivalent", "target": "c379d6a95fbe876d03da7fe73d83b725", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "29b9d2586a64e3779f17fbed067c9f5e", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复 ecpg 在 Windows 以及其他对 strtoll/strtoull 使用非标准声明或完全不声明的平台上对 long long 变量的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}, "url": "/docs/compare/?release=10.5#10.5-3d40105a0648a12b", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "82491916a79200c133a3da7416449cf8", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复 ecpg 在 Windows 以及其他非标准声明 strtoll/strtoull 或根本不声明的平台上对 long long 变量的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}, "url": "/docs/compare/?release=9.5.14#9.5.14-67eb3d7560ffa91c", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "c379d6a95fbe876d03da7fe73d83b725", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复ecpg在 Windows 上对long long变量的支持，以及其他以非标准方式声明或不声明strtoll/strtoull的平台上的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}, "url": "/docs/compare/?release=9.4.19#9.4.19-1b86ad0653d1fd97", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "318c71edee40025f50d789b0a24c41af", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "修复 ecpg 在 Windows 以及其他非标准声明 strtoll/strtoull 或根本不声明的平台上对 long long 变量的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7ca0fedca8ddd6a9a136e28c41758a99a77ff4476410d935beb51bef343f256"}, "url": "/docs/compare/?release=9.3.24#9.3.24-67eb3d7560ffa91c", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-3e36bf92386b3cd1", "cves": [], "html": "<p>修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别（Tom Lane）</p>\n<p>这个错误导致断言失败，或者罕见情况下未能按预期执行 <code>INTO STRICT</code> 选项。</p>", "text": "修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别（Tom Lane） 这个错误导致断言失败，或者罕见情况下未能按预期执行 INTO STRICT 选项。", "title": "修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "1e05635e8dadd50d3601d6b1c0fb54771e91e605e001f4a7268fc8e6626dc374", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misidentification of SQL statement type in PL/pgSQL, when a rule change causes a change in the semantics of a statement intra-session (Tom Lane) This error led to assertion failures, or in rare cases, failure to enforce the INTO STRICT option as expected.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/024", "db_id": "283e4e2066e3fae941f41b07645cf98d", "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338", "relations": [{"rule": 2, "type": "equivalent", "target": "5eb19d3945e05d6a36e3cba773c73980", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}}, {"rule": 2, "type": "equivalent", "target": "66127d75d1aa478ae66eca83dcad5294", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}}, {"rule": 2, "type": "equivalent", "target": "bb99b4ea43117011f5f0360b2036a7c1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}}, {"rule": 2, "type": "equivalent", "target": "d3b640bbeb4bf56c38af211f2774639b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5eb19d3945e05d6a36e3cba773c73980", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复规则变更导致会话内语句语义变化时，PL/pgSQL 对 SQL 语句类型的错误识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}, "url": "/docs/compare/?release=10.5#10.5-67cece77cbc771a0", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "66127d75d1aa478ae66eca83dcad5294", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}, "url": "/docs/compare/?release=9.5.14#9.5.14-3e36bf92386b3cd1", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "bb99b4ea43117011f5f0360b2036a7c1", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}, "url": "/docs/compare/?release=9.4.19#9.4.19-3e36bf92386b3cd1", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "d3b640bbeb4bf56c38af211f2774639b", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "82cb32c7a541a1d095ae2692add8c5349a737267c1e08b0e0930b8863cd61338"}, "url": "/docs/compare/?release=9.3.24#9.3.24-3e36bf92386b3cd1", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-db89b4647f22b7d9", "cves": [], "html": "<p>修复客户端程序中的密码提示，使 Windows 上 <code>stdin</code> 不是终端时正确关闭回显（Matthew Stickney）</p>", "text": "修复客户端程序中的密码提示，使 Windows 上 stdin 不是终端时正确关闭回显（Matthew Stickney）", "title": "修复客户端程序中的密码提示，使 Windows 上 stdin 不是终端时正确关闭回显", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "add8dfb215d3abae72372460090ee1bb5a763e1611cae6cdb9305a0cca9bee24", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix password prompting in client programs so that echo is properly disabled on Windows when stdin is not the terminal (Matthew Stickney)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/025", "db_id": "84b9f4946c2f108d70eef0e833d17e8f", "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f", "relations": [{"rule": 2, "type": "equivalent", "target": "1df1135d0a7cbdfe3a31f75380bcfdf2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}}, {"rule": 2, "type": "equivalent", "target": "216ec588ac11dcb3f585ce754a697f06", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}}, {"rule": 2, "type": "equivalent", "target": "660d6473a675ba3f8e3878a90ddfb31f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}}, {"rule": 2, "type": "equivalent", "target": "74bb3ebc08ac88a7b5271ea572b2ed76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1df1135d0a7cbdfe3a31f75380bcfdf2", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复客户端程序的密码提示，使 Windows 上的 stdin 不是终端时也能正确禁用回显", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}, "url": "/docs/compare/?release=10.5#10.5-7af307ab6ef3a309", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "74bb3ebc08ac88a7b5271ea572b2ed76", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复客户端程序中的密码提示，使 Windows 上 stdin 不是终端时正确关闭回显", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}, "url": "/docs/compare/?release=9.5.14#9.5.14-db89b4647f22b7d9", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "216ec588ac11dcb3f585ce754a697f06", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复客户端程序的密码提示，使 Windows 上stdin不是终端时正确关闭回显", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}, "url": "/docs/compare/?release=9.4.19#9.4.19-d282a4116b92d51a", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "660d6473a675ba3f8e3878a90ddfb31f", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "修复客户端程序中的密码提示，使 Windows 上 stdin 不是终端时正确关闭回显", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1f2ab9b526273c711adb63e2bdeffba2541a8128e02b1a6b961e579520cd151f"}, "url": "/docs/compare/?release=9.3.24#9.3.24-db89b4647f22b7d9", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-86ff6e7fd5dd3050", "cves": [], "html": "<p>进一步修复转储中列表值 GUC 变量值的错误引号（Tom Lane）</p>\n<p>此前对 <span>pg_dump</span> 输出中 <code>search_path</code> 及其他列表值变量加引号的修复，对空字符串列表元素行为不当，并且有截断长文件路径的风险。</p>", "text": "进一步修复转储中列表值 GUC 变量值的错误引号（Tom Lane） 此前对 pg_dump 输出中 search_path 及其他列表值变量加引号的修复，对空字符串列表元素行为不当，并且有截断长文件路径的风险。", "title": "进一步修复转储中列表值 GUC 变量值的错误引号", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "2d6bc0c8d432fc7d1ec6dadfb71d3d34e7396b21eb7d729a4d2b8e25ad88d21d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Further fix mis-quoting of values for list-valued GUC variables in dumps (Tom Lane) The previous fix for quoting of search_path and other list-valued variables in pg_dump output turned out to misbehave for empty-string list elements, and it risked truncation of long file paths.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/026", "db_id": "18842e4d5965cc8aea228715c6a1442c", "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241", "relations": [{"rule": 2, "type": "equivalent", "target": "3d2f303084793f85b50b53f7aa4e4ae1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}}, {"rule": 2, "type": "equivalent", "target": "9b63dbd8f3ae2ab3289281d518d2a173", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}}, {"rule": 2, "type": "equivalent", "target": "c2e4c85fba0591e0216d81c8a295851f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}}, {"rule": 2, "type": "equivalent", "target": "d26ab5999bb6fb3eee4efa3b34edada0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3d2f303084793f85b50b53f7aa4e4ae1", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "进一步修复转储中列表值 GUC 变量的值的引号处理错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}, "url": "/docs/compare/?release=10.5#10.5-8d7088781aea00b6", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "9b63dbd8f3ae2ab3289281d518d2a173", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "进一步修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}, "url": "/docs/compare/?release=9.5.14#9.5.14-86ff6e7fd5dd3050", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "d26ab5999bb6fb3eee4efa3b34edada0", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "进一步修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}, "url": "/docs/compare/?release=9.4.19#9.4.19-86ff6e7fd5dd3050", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "c2e4c85fba0591e0216d81c8a295851f", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "进一步修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "afa809772dac3835f43627d537ffebaa34d52a019f22e472b785959ff2e94241"}, "url": "/docs/compare/?release=9.3.24#9.3.24-86ff6e7fd5dd3050", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-0b84c6c044df9044", "cves": [], "html": "<p>修复 <span>pg_dump</span> 未能转储约束索引的 <code>REPLICA IDENTITY</code> 属性（Tom Lane）</p>\n<p>手动创建的唯一索引被正确标记，但声明 <code>UNIQUE</code> 或 <code>PRIMARY KEY</code> 约束创建的没有。</p>", "text": "修复 pg_dump 未能转储约束索引的 REPLICA IDENTITY 属性（Tom Lane） 手动创建的唯一索引被正确标记，但声明 UNIQUE 或 PRIMARY KEY 约束创建的没有。", "title": "修复 pg_dump 未能转储约束索引的 REPLICA IDENTITY 属性", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "bc59b10528cd272c9c34074336c438688263c4f5a1d70268bc424fe576d79c1e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump's failure to dump REPLICA IDENTITY properties for constraint indexes (Tom Lane) Manually created unique indexes were properly marked, but not those created by declaring UNIQUE or PRIMARY KEY constraints.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/027", "db_id": "c1cfe2a227fb4d435a3864a5833964c4", "patch_ids": [], "statement_hash": "cab68c07de650c8a368f677e1fb8963e430202b9c85e5fbe52dfe065233d8b81", "relations": [{"rule": 2, "type": "equivalent", "target": "33cbdc882efe754330c28de8fc9fd78d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cab68c07de650c8a368f677e1fb8963e430202b9c85e5fbe52dfe065233d8b81"}}, {"rule": 2, "type": "equivalent", "target": "4b0730fb3ae031353c3767d68fcf4d60", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cab68c07de650c8a368f677e1fb8963e430202b9c85e5fbe52dfe065233d8b81"}}, {"rule": 2, "type": "equivalent", "target": "f67129dfffc0911c61d5c7cd421e664d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cab68c07de650c8a368f677e1fb8963e430202b9c85e5fbe52dfe065233d8b81"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b0730fb3ae031353c3767d68fcf4d60", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复 pg_dump 未能转储约束索引的 REPLICA IDENTITY 属性的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cab68c07de650c8a368f677e1fb8963e430202b9c85e5fbe52dfe065233d8b81"}, "url": "/docs/compare/?release=10.5#10.5-b987c929b6f5acf9", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "f67129dfffc0911c61d5c7cd421e664d", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复 pg_dump 未能转储约束索引的 REPLICA IDENTITY 属性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cab68c07de650c8a368f677e1fb8963e430202b9c85e5fbe52dfe065233d8b81"}, "url": "/docs/compare/?release=9.5.14#9.5.14-0b84c6c044df9044", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "33cbdc882efe754330c28de8fc9fd78d", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复 pg_dump 未能转储约束索引的 REPLICA IDENTITY 属性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cab68c07de650c8a368f677e1fb8963e430202b9c85e5fbe52dfe065233d8b81"}, "url": "/docs/compare/?release=9.4.19#9.4.19-0b84c6c044df9044", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}]}, {"id": "9.6.10-cbcd7c3d8a8e4117", "cves": [], "html": "<p>让 <span>pg_upgrade</span> 检查旧服务器是否被干净地关闭（Bruce Momjian）</p>\n<p>原来的检查可能被立即模式关闭欺骗。</p>", "text": "让 pg_upgrade 检查旧服务器是否被干净地关闭（Bruce Momjian） 原来的检查可能被立即模式关闭欺骗。", "title": "让 pg_upgrade 检查旧服务器是否被干净地关闭", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "71bc1a7bd9f2a132a3385bd940a9ea8de31b186e2b97f1c8abf9cd2f795db5d7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_upgrade check that the old server was shut down cleanly (Bruce Momjian) The previous check could be fooled by an immediate-mode shutdown.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/028", "db_id": "4d1283c51899e26f1867c2769f6a309c", "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743", "relations": [{"rule": 2, "type": "equivalent", "target": "1954689a48854915e718dbce8ff7ab6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}}, {"rule": 2, "type": "equivalent", "target": "739f9fce188dadad715b9a79b61ba59a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}}, {"rule": 2, "type": "equivalent", "target": "c1499885d0749c110343bddd70ca1309", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}}, {"rule": 2, "type": "equivalent", "target": "eb47de5066dfd069f8ee0aa9c0944fff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "eb47de5066dfd069f8ee0aa9c0944fff", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "使 pg_upgrade 检查旧服务器是否正常关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}, "url": "/docs/compare/?release=10.5#10.5-fe23c400c0cfd077", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "c1499885d0749c110343bddd70ca1309", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "让 pg_upgrade 检查旧服务器是否被干净地关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}, "url": "/docs/compare/?release=9.5.14#9.5.14-cbcd7c3d8a8e4117", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "739f9fce188dadad715b9a79b61ba59a", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "让 pg_upgrade 检查旧服务器是否被干净地关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}, "url": "/docs/compare/?release=9.4.19#9.4.19-cbcd7c3d8a8e4117", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "1954689a48854915e718dbce8ff7ab6b", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "让 pg_upgrade 检查旧服务器是否被干净地关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdf17569914514a3150e2111f270f56c6dbf1c441dcea5e64bdcde79be711743"}, "url": "/docs/compare/?release=9.3.24#9.3.24-cbcd7c3d8a8e4117", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-56b761c95ec99e16", "cves": [], "html": "<p>修复 <code>contrib/hstore_plperl</code> 透过 Perl 标量引用查看，以及在预期位置找不到哈希引用时不崩溃（Tom Lane）</p>", "text": "修复 contrib/hstore_plperl 透过 Perl 标量引用查看，以及在预期位置找不到哈希引用时不崩溃（Tom Lane）", "title": "修复 contrib/hstore_plperl 透过 Perl 标量引用查看，以及在预期位置找不到哈希引用时不崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "eb5b223ce434cd397dbe9335d932849d7b250dcd46e9273d73d219e4d2d9853b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/hstore_plperl to look through Perl scalar references, and to not crash if it doesn't find a hash reference where it expects one (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/029", "db_id": "02e66838f31a8874e78ef748a007397c", "patch_ids": [], "statement_hash": "f5edfe1b703b92ff9c9fc18907d42fe7705e0b43f5903145b601f3ef95d71621", "relations": [{"rule": 2, "type": "equivalent", "target": "c148b7f11f757ab5dccb2d01de8155d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5edfe1b703b92ff9c9fc18907d42fe7705e0b43f5903145b601f3ef95d71621"}}, {"rule": 2, "type": "equivalent", "target": "e406ef3e530ccb62194d156810d41e13", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5edfe1b703b92ff9c9fc18907d42fe7705e0b43f5903145b601f3ef95d71621"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e406ef3e530ccb62194d156810d41e13", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复 contrib/hstore_plperl，使其解引用 Perl 标量引用，并在预期 hash 引用却未找到时不再崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5edfe1b703b92ff9c9fc18907d42fe7705e0b43f5903145b601f3ef95d71621"}, "url": "/docs/compare/?release=10.5#10.5-887b02127b51c8d4", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "c148b7f11f757ab5dccb2d01de8155d0", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复 contrib/hstore_plperl 透过 Perl 标量引用查看，以及在预期位置找不到哈希引用时不崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f5edfe1b703b92ff9c9fc18907d42fe7705e0b43f5903145b601f3ef95d71621"}, "url": "/docs/compare/?release=9.5.14#9.5.14-56b761c95ec99e16", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}]}, {"id": "9.6.10-14000aea2f0f6924", "cves": [], "html": "<p>修复 <code>contrib/ltree</code> 的 <code>lca()</code> 函数在输入数组为空时崩溃的问题（Pierre Ducroquet）</p>", "text": "修复 contrib/ltree 的 lca() 函数在输入数组为空时崩溃的问题（Pierre Ducroquet）", "title": "修复 contrib/ltree 的 lca() 函数在输入数组为空时崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "c8d4df2ff12a3f523d0b5069f7350e395c014e96299085be149f58ec9ec17281", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash in contrib/ltree's lca() function when the input array is empty (Pierre Ducroquet)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/030", "db_id": "ce3c9aafa78c8bc47f09c8ca12bc608d", "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384", "relations": [{"rule": 2, "type": "equivalent", "target": "6e4b995caabcd4a7d43881109ed241b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}}, {"rule": 2, "type": "equivalent", "target": "8f29616271ac721629aaa9067f4cf731", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}}, {"rule": 2, "type": "equivalent", "target": "acb1331ecaacd3afa267795660e83095", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}}, {"rule": 2, "type": "equivalent", "target": "f195adf248f9833c303c916f0bbac701", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6e4b995caabcd4a7d43881109ed241b5", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复输入数组为空时 contrib/ltree 的 lca() 函数发生的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}, "url": "/docs/compare/?release=10.5#10.5-5d1fa14a4e14c6a7", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "acb1331ecaacd3afa267795660e83095", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复 contrib/ltree 的 lca() 函数在输入数组为空时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}, "url": "/docs/compare/?release=9.5.14#9.5.14-14000aea2f0f6924", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "f195adf248f9833c303c916f0bbac701", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复contrib/ltree的lca()函数在输入数组为空时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}, "url": "/docs/compare/?release=9.4.19#9.4.19-650262016eb5a041", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "8f29616271ac721629aaa9067f4cf731", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "修复 contrib/ltree 的 lca() 函数在输入数组为空时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9bcb9a639c58de4ad9728c70629f5441dd26cd49ea50d8f2f72b2d0b5b071384"}, "url": "/docs/compare/?release=9.3.24#9.3.24-14000aea2f0f6924", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-9385f6c3af4d237f", "cves": [], "html": "<p>修复若干可能报告错误错误码的错误处理代码路径（Michael Paquier、Tom Lane、Magnus Hagander）</p>", "text": "修复若干可能报告错误错误码的错误处理代码路径（Michael Paquier、Tom Lane、Magnus Hagander）", "title": "修复若干可能报告错误错误码的错误处理代码路径", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "eb226d88cc2818a05e33386ec1a8f54af921d72d612fc646511afb752428f2b2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix various error-handling code paths in which an incorrect error code might be reported (Michael Paquier, Tom Lane, Magnus Hagander)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/031", "db_id": "abc61176748d713bf18596dfa5958398", "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8", "relations": [{"rule": 2, "type": "equivalent", "target": "44343b5147cbbb9d79bd4862e5dc7084", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}}, {"rule": 2, "type": "equivalent", "target": "6bc786b07ebdffc9fa3a314516e966a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}}, {"rule": 2, "type": "equivalent", "target": "dd5ba05fde3e4dbb1c77961c638213f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}}, {"rule": 2, "type": "equivalent", "target": "ed7faf376a1da5be2a371fed15a0acba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}}], "version": "9.6.10", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed7faf376a1da5be2a371fed15a0acba", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "修复可能报告不正确错误码的各种错误处理代码路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}, "url": "/docs/compare/?release=10.5#10.5-23012dc05c2623c5", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "6bc786b07ebdffc9fa3a314516e966a4", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "修复若干可能报告错误错误码的错误处理代码路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}, "url": "/docs/compare/?release=9.5.14#9.5.14-9385f6c3af4d237f", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "44343b5147cbbb9d79bd4862e5dc7084", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "修复若干可能报告错误错误码的错误处理代码路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}, "url": "/docs/compare/?release=9.4.19#9.4.19-9385f6c3af4d237f", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "dd5ba05fde3e4dbb1c77961c638213f0", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "修复若干可能报告错误错误码的错误处理代码路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5a05d314c8d902e97894777af926545d7a1d139f8ad17e798b5f8925814e49c8"}, "url": "/docs/compare/?release=9.3.24#9.3.24-9385f6c3af4d237f", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-05d287de5d87d704", "cves": [], "html": "<p>重排 makefile，确保程序链接到新构建的库（如 <code>libpq.so</code>）而不是系统库目录中可能存在的（Tom Lane）</p>\n<p>这避免了在提供旧版 <span>PostgreSQL</span> 库副本的平台上构建时的问题。</p>", "text": "重排 makefile，确保程序链接到新构建的库（如 libpq.so）而不是系统库目录中可能存在的（Tom Lane） 这避免了在提供旧版 PostgreSQL 库副本的平台上构建时的问题。", "title": "重排 makefile，确保程序链接到新构建的库（如 libpq.so）而不是系统库目录中可能存在的", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "9fe1fb5035dc0b05720452fac376d32ae797010741c48dc3df2de54e396a9eac", "section_path": ["变更"], "commit_groups": [], "identity_text": "Rearrange makefiles to ensure that programs link to freshly-built libraries (such as libpq.so) rather than ones that might exist in the system library directories (Tom Lane) This avoids problems when building on platforms that supply old copies of PostgreSQL libraries.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/032", "db_id": "d056736e371dede2d98e0596877e08b6", "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f", "relations": [{"rule": 2, "type": "equivalent", "target": "092ac1884398bcbc8a003e01acd466cc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}}, {"rule": 2, "type": "equivalent", "target": "2add6f424e337938f103c3b77f8214ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}}, {"rule": 2, "type": "equivalent", "target": "e0fe94c2f5bcc8d0829a3e2e0f1f5567", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}}, {"rule": 2, "type": "equivalent", "target": "fb9cfc50eee8d8b0e1ae293bbf759a17", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "092ac1884398bcbc8a003e01acd466cc", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "重新安排 makefile，确保程序链接到刚构建的库（如 libpq.so），而非可能存在于系统库目录中的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}, "url": "/docs/compare/?release=10.5#10.5-5b0266319b857177", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "2add6f424e337938f103c3b77f8214ff", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "重排 makefile，确保程序链接到新构建的库（如 libpq.so）而不是系统库目录中可能存在的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}, "url": "/docs/compare/?release=9.5.14#9.5.14-05d287de5d87d704", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "fb9cfc50eee8d8b0e1ae293bbf759a17", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "重排 makefile，确保程序链接到新构建的库（如 libpq.so）而不是系统库目录中可能存在的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}, "url": "/docs/compare/?release=9.4.19#9.4.19-05d287de5d87d704", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "e0fe94c2f5bcc8d0829a3e2e0f1f5567", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "重排 makefile，确保程序链接到新构建的库（如 libpq.so）而不是系统库目录中可能存在的", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8e0e1d9b06d086f4846a6b8ba0946ea4470385b68265ec27f156bce0eee67d3f"}, "url": "/docs/compare/?release=9.3.24#9.3.24-05d287de5d87d704", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}, {"id": "9.6.10-f91b05fd75538bcc", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。</p>\n<p>此更新包括对爱尔兰以及纳米比亚和捷克斯洛伐克某些过去年份<span>“<span>夏令时</span>”</span>的重新定义。在这些司法管辖区，法律上夏季实行标准时间、冬季实行夏令时，因此夏令时偏移比标准时间晚一小时而不是早一小时。这不影响实际 UTC 偏移或所用的时区缩写；唯一已知的效果是这些情况下 <code>pg_timezone_names</code> 视图的 <code>is_dst</code> 列现在冬季为真、夏季为假。</p>", "text": "更新时区数据文件到 tzdata 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。 此更新包括对爱尔兰以及纳米比亚和捷克斯洛伐克某些过去年份“夏令时”的重新定义。在这些司法管辖区，法律上夏季实行标准时间、冬季实行夏令时，因此夏令时偏移比标准时间晚一小时而不是早一小时。这不影响实际 UTC 偏移或所用的时区缩写；唯一已知的效果是这些情况下 pg_timezone_names 视图的 is_dst 列现在冬季为真、夏季为假。", "title": "更新时区数据文件到 tzdata 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.10/#id-1.11.6.19.5", "source_hash": "9f37319456282bec8598cba6308a808640b0982827c1d7cd6fca8042f555e880", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2018e for DST law changes in North Korea, plus historical corrections for Czechoslovakia. This update includes a redefinition of daylight savings in Ireland, as well as for some past years in Namibia and Czechoslovakia. In those jurisdictions, legally standard time is observed in summer, and daylight savings time in winter, so that the daylight savings offset is one hour behind standard time not one hour ahead. This does not affect either the actual UTC offset or the timezone abbreviations in use; the only known effect is that the is_dst column in the pg_timezone_names view will now be true in winter and false in summer in these cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.10/changes/033", "db_id": "eae244a6dda158da8e88045e274b818f", "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c", "relations": [{"rule": 2, "type": "equivalent", "target": "4665643582ca528c025ca51ef876640b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}}, {"rule": 2, "type": "equivalent", "target": "5e2e95399fa99faba1ec919a703975de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}}, {"rule": 2, "type": "equivalent", "target": "e66a4e42e0632f51b3db77194fc6ea05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}}, {"rule": 2, "type": "equivalent", "target": "eab8b499ede5f2e4cd22b4228850bace", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}}], "version": "9.6.10", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e66a4e42e0632f51b3db77194fc6ea05", "kind": "equivalent", "version": "10.5", "label": "10.5", "title": "将时区数据文件更新到 tzdata 2018e 版，以反映朝鲜的夏令时法规变更，并修正捷克斯洛伐克的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}, "url": "/docs/compare/?release=10.5#10.5-0cd7c764f1682723", "source_url": "/docs/release/10.5/#id-1.11.6.23.5"}, {"db_id": "4665643582ca528c025ca51ef876640b", "kind": "equivalent", "version": "9.5.14", "label": "9.5.14", "title": "更新时区数据文件到 tzdata 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}, "url": "/docs/compare/?release=9.5.14#9.5.14-f91b05fd75538bcc", "source_url": "/docs/release/9.5.14/#id-1.11.6.16.5"}, {"db_id": "eab8b499ede5f2e4cd22b4228850bace", "kind": "equivalent", "version": "9.4.19", "label": "9.4.19", "title": "更新时区数据文件到 tzdata 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}, "url": "/docs/compare/?release=9.4.19#9.4.19-f91b05fd75538bcc", "source_url": "/docs/release/9.4.19/#id-1.11.6.12.5"}, {"db_id": "5e2e95399fa99faba1ec919a703975de", "kind": "equivalent", "version": "9.3.24", "label": "9.3.24", "title": "更新时区数据文件到 tzdata 版本 2018e，涉及朝鲜的夏令时法规变更，以及捷克斯洛伐克的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "121e90e8bc23ffc5b72b1b0813a32d1c613b718c6334e0d052ff766689a0a87c"}, "url": "/docs/compare/?release=9.3.24#9.3.24-f91b05fd75538bcc", "source_url": "/docs/release/9.3.24/#id-1.11.6.6.6"}]}]}, {"date": "2018-05-10", "build": "9.6.9", "major": "9.6", "minor": 9, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.9", "eol_date": "2021-11-11", "date_text": "2018-05-10", "supported": false, "manual_url": "/docs/9.6/release-9-6-9.html", "source_url": "/docs/release/9.6.9/", "entry_count": 43, "placeholder": false, "content_hash": "9ec603d81c9e353204ca2471fc49a2510effc91f6a9e02adf5f8fbca0977d0d5", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 43, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你使用 <code>adminpack</code> 扩展，应当按照下面第一条变更日志条目更新它。</p>\n<p>另外，如果下面第二和第三条变更日志条目提到的函数标记错误影响到你，你需要采取措施修正数据库目录。</p>\n<p>另外，如果你是从 9.6.8 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-8.html\" title=\"E.17. 版本 9.6.8\">第 E.17 节</a>。</p>", "compatibility_count": 0, "label": "9.6.9", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3065, "support_days": -1784, "entries": [{"id": "9.6.9-18cff896ffec1935", "cves": ["CVE-2018-1115"], "html": "<p>移除 <code>contrib/adminpack</code> 的 <code>pg_logfile_rotate()</code> 函数上的公共执行权限（Stephen Frost）</p>\n<p><code>pg_logfile_rotate()</code> 是核心函数 <code>pg_rotate_logfile()</code> 的已弃用包装。当核心函数被改为依靠 SQL 权限而非硬编码的超级用户检查进行访问控制时，<code>pg_logfile_rotate()</code> 本应同步更新，但这一需要被遗漏了。因此，如果安装了 <code>adminpack</code>，任何用户都可以请求日志文件轮转，构成一个轻微的安全问题。</p>\n<p>安装此更新后，管理员应当通过在每个安装了 <code>adminpack</code> 的数据库中执行 <code>ALTER EXTENSION adminpack UPDATE</code> 来更新 <code>adminpack</code>。（CVE-2018-1115）</p>", "text": "移除 contrib/adminpack 的 pg_logfile_rotate() 函数上的公共执行权限（Stephen Frost） pg_logfile_rotate() 是核心函数 pg_rotate_logfile() 的已弃用包装。当核心函数被改为依靠 SQL 权限而非硬编码的超级用户检查进行访问控制时，pg_logfile_rotate() 本应同步更新，但这一需要被遗漏了。因此，如果安装了 adminpack，任何用户都可以请求日志文件轮转，构成一个轻微的安全问题。 安装此更新后，管理员应当通过在每个安装了 adminpack 的数据库中执行 ALTER EXTENSION adminpack UPDATE 来更新 adminpack。（CVE-2018-1115）", "title": "移除 contrib/adminpack 的 pg_logfile_rotate() 函数上的公共执行权限", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "3f44ee1528b4376b23fcb6e9d87a5f284bf7132022f5d3010f95b2b053ef6a11", "section_path": ["变更"], "commit_groups": [], "identity_text": "Remove public execute privilege from contrib/adminpack's pg_logfile_rotate() function (Stephen Frost) pg_logfile_rotate() is a deprecated wrapper for the core function pg_rotate_logfile(). When that function was changed to rely on SQL privileges for access control rather than a hard-coded superuser check, pg_logfile_rotate() should have been updated as well, but the need for this was missed. Hence, if adminpack is installed, any user could request a logfile rotation, creating a minor security issue. After installing this update, administrators should update adminpack by performing ALTER EXTENSION adminpack UPDATE in each database in which adminpack is installed. (CVE-2018-1115)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/001", "db_id": "3b614dbfc79d425c587fd768b20b393d", "patch_ids": [], "statement_hash": "712f4f58dc3ea1094b64a653a1d9e436db51f07641cfcdbe625ac9aea5d16df5", "relations": [{"rule": 2, "type": "equivalent", "target": "80ebe5c1773e98378ec6eead218154c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "712f4f58dc3ea1094b64a653a1d9e436db51f07641cfcdbe625ac9aea5d16df5"}}], "version": "9.6.9", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "80ebe5c1773e98378ec6eead218154c5", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "撤销 contrib/adminpack 的 pg_logfile_rotate() 函数的公共执行权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "712f4f58dc3ea1094b64a653a1d9e436db51f07641cfcdbe625ac9aea5d16df5"}, "url": "/docs/compare/?release=10.4#10.4-81081225d1986dcc", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}]}, {"id": "9.6.9-6a75d650dd5360e4", "cves": [], "html": "<p>修复少数内建函数上不正确的易变性标记（Thomas Munro、Tom Lane）</p>\n<p>函数 <code>query_to_xml</code>、<code>cursor_to_xml</code>、<code>cursor_to_xmlschema</code>、<code>query_to_xmlschema</code> 和 <code>query_to_xml_and_xmlschema</code> 应标记为 volatile，因为它们执行可能包含易变操作的用户提供的查询。它们没有被这样标记，导致错误查询优化的风险。新安装已通过更正初始目录数据修复，但现有安装将继续包含错误标记。实际使用这些函数似乎危害不大，但如遇到麻烦，可以手动更新这些函数的 <code>pg_proc</code> 条目来修复，例如 <code>ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE</code>。（注意安装中的每个数据库都需要这样做。）另一个选择是把数据库 <span>pg_upgrade</span> 到包含更正后初始数据的版本。</p>", "text": "修复少数内建函数上不正确的易变性标记（Thomas Munro、Tom Lane） 函数 query_to_xml、cursor_to_xml、cursor_to_xmlschema、query_to_xmlschema 和 query_to_xml_and_xmlschema 应标记为 volatile，因为它们执行可能包含易变操作的用户提供的查询。它们没有被这样标记，导致错误查询优化的风险。新安装已通过更正初始目录数据修复，但现有安装将继续包含错误标记。实际使用这些函数似乎危害不大，但如遇到麻烦，可以手动更新这些函数的 pg_proc 条目来修复，例如 ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE。（注意安装中的每个数据库都需要这样做。）另一个选择是把数据库 pg_upgrade 到包含更正后初始数据的版本。", "title": "修复少数内建函数上不正确的易变性标记", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "ad86abde4eeaf014eb2069ca872f1e8ba47d53f11b664b9a0f5933deef574e61", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect volatility markings on a few built-in functions (Thomas Munro, Tom Lane) The functions query_to_xml, cursor_to_xml, cursor_to_xmlschema, query_to_xmlschema, and query_to_xml_and_xmlschema should be marked volatile because they execute user-supplied queries that might contain volatile operations. They were not, leading to a risk of incorrect query optimization. This has been repaired for new installations by correcting the initial catalog data, but existing installations will continue to contain the incorrect markings. Practical use of these functions seems to pose little hazard, but in case of trouble, it can be fixed by manually updating these functions' pg_proc entries, for example ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE. (Note that that will need to be done in each database of the installation.) Another option is to pg_upgrade the database to a version containing the corrected initial data.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/002", "db_id": "a6ba23544bda9d746f0fa25a72cecaf6", "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f", "relations": [{"rule": 2, "type": "equivalent", "target": "090b34a702ec6a2ca8c64febbfa28ccf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}}, {"rule": 2, "type": "equivalent", "target": "4dbf8dadd96c167df439302bf984d30d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f", "ambiguous_patch_ids": ["803b6d012c731531667f61834b5cd4e4"]}}, {"rule": 2, "type": "equivalent", "target": "4e64c4d279195ebda2ab22e8ffc64993", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}}, {"rule": 2, "type": "equivalent", "target": "5b3b555d5cbf741c78a2ffd945e5a415", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4dbf8dadd96c167df439302bf984d30d", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复若干内置函数不正确的易变性标记", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f", "ambiguous_patch_ids": ["803b6d012c731531667f61834b5cd4e4"]}, "url": "/docs/compare/?release=10.4#10.4-d2ec23ec103b9769", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "5b3b555d5cbf741c78a2ffd945e5a415", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复少数内建函数上不正确的易变性标记", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}, "url": "/docs/compare/?release=9.5.13#9.5.13-6a75d650dd5360e4", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "4e64c4d279195ebda2ab22e8ffc64993", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复少数内建函数上不正确的易变性标记", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}, "url": "/docs/compare/?release=9.4.18#9.4.18-6a75d650dd5360e4", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "090b34a702ec6a2ca8c64febbfa28ccf", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复少数内建函数上不正确的易变性标记", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a848020ace21692d8bfea310bd5099e26e664b6b63f997e2f6b10411bf84f83f"}, "url": "/docs/compare/?release=9.3.23#9.3.23-6a75d650dd5360e4", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-9b9e47bceb8257ab", "cves": [], "html": "<p>修复少数内建函数上不正确的并行安全性标记（Thomas Munro、Tom Lane）</p>\n<p>函数 <code>brin_summarize_new_values</code>、<code>gin_clean_pending_list</code>、<code>cursor_to_xml</code>、<code>cursor_to_xmlschema</code>、<code>ts_rewrite</code>、<code>ts_stat</code> 和 <code>binary_upgrade_create_empty_extension</code> 应标记为并行不安全；一些是因为它们直接进行数据库修改，另一些是因为它们执行可能这样做的用户提供查询。它们被标记成了并行受限，导致意外查询错误的风险。新安装已通过更正初始目录数据修复，但现有安装将继续包含错误标记。除非打开 <code>force_parallel_mode</code>，实际使用这些函数似乎危害不大。如遇到麻烦，可以手动更新这些函数的 <code>pg_proc</code> 条目来修复，例如 <code>ALTER FUNCTION pg_catalog.brin_summarize_new_values(regclass) PARALLEL UNSAFE</code>。（注意安装中的每个数据库都需要这样做。）另一个选择是把数据库 <span>pg_upgrade</span> 到包含更正后初始数据的版本。</p>", "text": "修复少数内建函数上不正确的并行安全性标记（Thomas Munro、Tom Lane） 函数 brin_summarize_new_values、gin_clean_pending_list、cursor_to_xml、cursor_to_xmlschema、ts_rewrite、ts_stat 和 binary_upgrade_create_empty_extension 应标记为并行不安全；一些是因为它们直接进行数据库修改，另一些是因为它们执行可能这样做的用户提供查询。它们被标记成了并行受限，导致意外查询错误的风险。新安装已通过更正初始目录数据修复，但现有安装将继续包含错误标记。除非打开 force_parallel_mode，实际使用这些函数似乎危害不大。如遇到麻烦，可以手动更新这些函数的 pg_proc 条目来修复，例如 ALTER FUNCTION pg_catalog.brin_summarize_new_values(regclass) PARALLEL UNSAFE。（注意安装中的每个数据库都需要这样做。）另一个选择是把数据库 pg_upgrade 到包含更正后初始数据的版本。", "title": "修复少数内建函数上不正确的并行安全性标记", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "7146582d2231203a06f7598dfada0f9a95bd9cf02f8df0239b5f4ebb90fd5f73", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect parallel-safety markings on a few built-in functions (Thomas Munro, Tom Lane) The functions brin_summarize_new_values, gin_clean_pending_list, cursor_to_xml, cursor_to_xmlschema, ts_rewrite, ts_stat, and binary_upgrade_create_empty_extension should be marked parallel-unsafe; some because they perform database modifications directly, and others because they execute user-supplied queries that might do so. They were marked parallel-restricted instead, leading to a risk of unexpected query errors. This has been repaired for new installations by correcting the initial catalog data, but existing installations will continue to contain the incorrect markings. Practical use of these functions seems to pose little hazard unless force_parallel_mode is turned on. In case of trouble, it can be fixed by manually updating these functions' pg_proc entries, for example ALTER FUNCTION pg_catalog.brin_summarize_new_values(regclass) PARALLEL UNSAFE. (Note that that will need to be done in each database of the installation.) Another option is to pg_upgrade the database to a version containing the corrected initial data.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/003", "db_id": "57bed5345a3afff281eb43d7f92c53cc", "patch_ids": [], "statement_hash": "5d82ef9d9e172d82736021f1c9aa71fd8fa6c9ce7b1f9d5f85d1622e489347a0", "relations": [], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.9-0b36128b9f1d5314", "cves": [], "html": "<p>避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID（Pavan Deolasee）</p>\n<p>一旦 OID 计数器回卷，就可能分配一个 OID 与同一 TOAST 表中先前删除的条目匹配的 TOAST 值。如果该条目尚未被清理，就会导致 <span>“<span>unexpected chunk number 0 (expected 1) for toast value <em><code>nnnnn</code></em></span>”</span> 错误，并持续到 <code>VACUUM</code> 移除死条目为止。修复方法是创建新 TOAST 条目时不选择这种 OID。</p>", "text": "避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID（Pavan Deolasee） 一旦 OID 计数器回卷，就可能分配一个 OID 与同一 TOAST 表中先前删除的条目匹配的 TOAST 值。如果该条目尚未被清理，就会导致 “unexpected chunk number 0 (expected 1) for toast value nnnnn” 错误，并持续到 VACUUM 移除死条目为止。修复方法是创建新 TOAST 条目时不选择这种 OID。", "title": "避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "d05641636bce96e46895a854d51f8c25480af75082a92ce242f2d1f0a39e7801", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed TOAST entries (Pavan Deolasee) Once the OID counter has wrapped around, it's possible to assign a TOAST value whose OID matches a previously deleted entry in the same TOAST table. If that entry were not yet vacuumed away, this resulted in unexpected chunk number 0 (expected 1) for toast value nnnnn errors, which would persist until the dead entry was removed by VACUUM. Fix by not selecting such OIDs when creating a new TOAST entry.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/004", "db_id": "4035d185e648f4a1a98665cfb8f9342c", "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380", "relations": [{"rule": 2, "type": "equivalent", "target": "6880622ffcd47407c39b65ab10c581e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}}, {"rule": 2, "type": "equivalent", "target": "862469b6786f98380f5d936984d0d58d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}}, {"rule": 2, "type": "equivalent", "target": "87f78c7f9303d4e8f2177bdb76e23f66", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}}, {"rule": 2, "type": "equivalent", "target": "e392178093fe6d0921ffb62054aa789b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e392178093fe6d0921ffb62054aa789b", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "避免复用与已死亡但尚未清理的 TOAST 条目匹配的 TOAST 值 OID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}, "url": "/docs/compare/?release=10.4#10.4-742655577058431a", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "6880622ffcd47407c39b65ab10c581e1", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}, "url": "/docs/compare/?release=9.5.13#9.5.13-0b36128b9f1d5314", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "87f78c7f9303d4e8f2177bdb76e23f66", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}, "url": "/docs/compare/?release=9.4.18#9.4.18-0b36128b9f1d5314", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "862469b6786f98380f5d936984d0d58d", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41071cbd7b24941a80f90ae00e8631a89cce2cdc34545f79240e099448269380"}, "url": "/docs/compare/?release=9.3.23#9.3.23-0b36128b9f1d5314", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-3a127c2a06a6d238", "cves": [], "html": "<p>更改 <code>ANALYZE</code> 更新 <code>pg_class</code>.<code>reltuples</code> 的算法（David Gould）</p>\n<p>此前，<code>ANALYZE</code> 未实际扫描的页被假定保留其旧的元组密度。在 <code>ANALYZE</code> 只采样很少一部分页的大表中，这意味着总体元组密度估计不会有太大变化，因此无论表中实际发生什么，<code>reltuples</code> 都几乎与表物理大小（<code>relpages</code>）的变化成比例地变化。据观察，这会导致 <code>reltuples</code> 远大于实际值，以致实际上关闭了自动清理。为修复，假定 <code>ANALYZE</code> 的样本是表的无偏统计样本（本应如此），直接把这些页中观察到的密度外推到整表。</p>", "text": "更改 ANALYZE 更新 pg_class.reltuples 的算法（David Gould） 此前，ANALYZE 未实际扫描的页被假定保留其旧的元组密度。在 ANALYZE 只采样很少一部分页的大表中，这意味着总体元组密度估计不会有太大变化，因此无论表中实际发生什么，reltuples 都几乎与表物理大小（relpages）的变化成比例地变化。据观察，这会导致 reltuples 远大于实际值，以致实际上关闭了自动清理。为修复，假定 ANALYZE 的样本是表的无偏统计样本（本应如此），直接把这些页中观察到的密度外推到整表。", "title": "更改 ANALYZE 更新 pg_class.reltuples 的算法", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "17141ed953dc3156ee460c4a49239020017883c218f472673493d5aff17814dc", "section_path": ["变更"], "commit_groups": [], "identity_text": "Change ANALYZE's algorithm for updating pg_class.reltuples (David Gould) Previously, pages not actually scanned by ANALYZE were assumed to retain their old tuple density. In a large table where ANALYZE samples only a small fraction of the pages, this meant that the overall tuple density estimate could not change very much, so that reltuples would change nearly proportionally to changes in the table's physical size (relpages) regardless of what was actually happening in the table. This has been observed to result in reltuples becoming so much larger than reality as to effectively shut off autovacuuming. To fix, assume that ANALYZE's sample is a statistically unbiased sample of the table (as it should be), and just extrapolate the density observed within those pages to the whole table.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/005", "db_id": "0d77dfa076b199c528dac488a698de1c", "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca", "relations": [{"rule": 2, "type": "equivalent", "target": "1e07897a13bb0d50127fcd293b5bc360", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}}, {"rule": 2, "type": "equivalent", "target": "3e963cf0d2e3a8f46e9b73a2a5a181bd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}}, {"rule": 2, "type": "equivalent", "target": "49169d0a2a7bf9f563f7cc87052ed66c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}}, {"rule": 2, "type": "equivalent", "target": "4a1631e90e65b4c3703e7b1179d0803e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "49169d0a2a7bf9f563f7cc87052ed66c", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "更改 ANALYZE 更新 pg_class.reltuples 的算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}, "url": "/docs/compare/?release=10.4#10.4-3a127c2a06a6d238", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "4a1631e90e65b4c3703e7b1179d0803e", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "更改 ANALYZE 更新 pg_class.reltuples 的算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}, "url": "/docs/compare/?release=9.5.13#9.5.13-3a127c2a06a6d238", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "1e07897a13bb0d50127fcd293b5bc360", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "更改 ANALYZE 更新 pg_class.reltuples 的算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}, "url": "/docs/compare/?release=9.4.18#9.4.18-3a127c2a06a6d238", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "3e963cf0d2e3a8f46e9b73a2a5a181bd", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "更改 ANALYZE 更新 pg_class.reltuples 的算法", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3f7486be39637dca1b6d81e43cfb528cb043b1048f4d302b41ad6f0bcf06deca"}, "url": "/docs/compare/?release=9.3.23#9.3.23-3a127c2a06a6d238", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-dd9b5607563ed577", "cves": [], "html": "<p>避免在 <code>SERIALIZABLE</code> 或 <code>REPEATABLE READ</code> 事务隔离下运行的并发 <code>CREATE INDEX CONCURRENTLY</code> 命令中的死锁（Tom Lane）</p>", "text": "避免在 SERIALIZABLE 或 REPEATABLE READ 事务隔离下运行的并发 CREATE INDEX CONCURRENTLY 命令中的死锁（Tom Lane）", "title": "避免在 SERIALIZABLE 或 REPEATABLE READ 事务隔离下运行的并发 CREATE INDEX CONCURRENTLY 命令中的死锁", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "1f840f6180a2bf58b76955340c708259db99c10b8d64768dd3c1c5f47bf7bf13", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid deadlocks in concurrent CREATE INDEX CONCURRENTLY commands that are run under SERIALIZABLE or REPEATABLE READ transaction isolation (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/006", "db_id": "9d82a4f873bce505f63f2ef3c5270503", "patch_ids": [], "statement_hash": "21ba85c192f8e7aef47763976074fb88ac7afbb31e5ab0c0ab8477104ce277fe", "relations": [{"rule": 2, "type": "equivalent", "target": "191769a0661f7d949b324009d138f340", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21ba85c192f8e7aef47763976074fb88ac7afbb31e5ab0c0ab8477104ce277fe"}}, {"rule": 2, "type": "equivalent", "target": "1dd46aade8b4ab20cf5381f9a17a609c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21ba85c192f8e7aef47763976074fb88ac7afbb31e5ab0c0ab8477104ce277fe"}}, {"rule": 2, "type": "equivalent", "target": "aad884265a80122f34b9b9684b3f4cfe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21ba85c192f8e7aef47763976074fb88ac7afbb31e5ab0c0ab8477104ce277fe"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "aad884265a80122f34b9b9684b3f4cfe", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "避免在 SERIALIZABLE 或 REPEATABLE READ 事务隔离级别下并发运行 CREATE INDEX CONCURRENTLY 命令时发生死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21ba85c192f8e7aef47763976074fb88ac7afbb31e5ab0c0ab8477104ce277fe"}, "url": "/docs/compare/?release=10.4#10.4-c040306fa7cd2be2", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "191769a0661f7d949b324009d138f340", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "避免在 SERIALIZABLE 或 REPEATABLE READ 事务隔离下运行的并发 CREATE INDEX CONCURRENTLY 命令中的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21ba85c192f8e7aef47763976074fb88ac7afbb31e5ab0c0ab8477104ce277fe"}, "url": "/docs/compare/?release=9.5.13#9.5.13-dd9b5607563ed577", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "1dd46aade8b4ab20cf5381f9a17a609c", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "避免在 SERIALIZABLE 或 REPEATABLE READ 事务隔离下运行的并发 CREATE INDEX CONCURRENTLY 命令中的死锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21ba85c192f8e7aef47763976074fb88ac7afbb31e5ab0c0ab8477104ce277fe"}, "url": "/docs/compare/?release=9.4.18#9.4.18-dd9b5607563ed577", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.6.9-060f3ef203288487", "cves": [], "html": "<p>修复 <code>REFRESH MATERIALIZED VIEW CONCURRENTLY</code> 可能缓慢的执行（Thomas Munro）</p>", "text": "修复 REFRESH MATERIALIZED VIEW CONCURRENTLY 可能缓慢的执行（Thomas Munro）", "title": "修复 REFRESH MATERIALIZED VIEW CONCURRENTLY 可能缓慢的执行", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "83e1174c37f27ffc480dca04ae8ff09ce8e77fa9f44ebee19ece55d4f41c087c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible slow execution of REFRESH MATERIALIZED VIEW CONCURRENTLY (Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/007", "db_id": "23bedbfaa5c8a44d40d533c53085aadd", "patch_ids": [], "statement_hash": "dd5714dcd06b3a893294d447b1244e8640ae9eee7666c845027c8465fa82db83", "relations": [{"rule": 2, "type": "equivalent", "target": "2276c457fca4b0de608c590235198202", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd5714dcd06b3a893294d447b1244e8640ae9eee7666c845027c8465fa82db83"}}, {"rule": 2, "type": "equivalent", "target": "ce75059760758e482fd277227a78929c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd5714dcd06b3a893294d447b1244e8640ae9eee7666c845027c8465fa82db83"}}, {"rule": 2, "type": "equivalent", "target": "e720684aa44612421ccfa3003345c1d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd5714dcd06b3a893294d447b1244e8640ae9eee7666c845027c8465fa82db83"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ce75059760758e482fd277227a78929c", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 REFRESH MATERIALIZED VIEW CONCURRENTLY 可能执行缓慢的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd5714dcd06b3a893294d447b1244e8640ae9eee7666c845027c8465fa82db83"}, "url": "/docs/compare/?release=10.4#10.4-2d8a203a604e9b37", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "e720684aa44612421ccfa3003345c1d7", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 REFRESH MATERIALIZED VIEW CONCURRENTLY 可能缓慢的执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd5714dcd06b3a893294d447b1244e8640ae9eee7666c845027c8465fa82db83"}, "url": "/docs/compare/?release=9.5.13#9.5.13-060f3ef203288487", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "2276c457fca4b0de608c590235198202", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 REFRESH MATERIALIZED VIEW CONCURRENTLY 可能缓慢的执行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd5714dcd06b3a893294d447b1244e8640ae9eee7666c845027c8465fa82db83"}, "url": "/docs/compare/?release=9.4.18#9.4.18-060f3ef203288487", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.6.9-c5317df56ae6d1b1", "cves": [], "html": "<p>修复 <code>UPDATE/DELETE ... WHERE CURRENT OF</code> 在所引用游标使用仅索引扫描计划时不失败（Yugo Nagata、Tom Lane）</p>", "text": "修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败（Yugo Nagata、Tom Lane）", "title": "修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "586de06166d4716d9097fd4a785fe070debb0dba597bf3cf2eec41738f1492b2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix UPDATE/DELETE ... WHERE CURRENT OF to not fail when the referenced cursor uses an index-only-scan plan (Yugo Nagata, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/008", "db_id": "a676ae183019c3faf5d5c6e70ec82251", "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356", "relations": [{"rule": 2, "type": "equivalent", "target": "276437aae600160130d6f092ec25aebd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}}, {"rule": 2, "type": "equivalent", "target": "2a0ab3053bfdfc51b055b43959af1610", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}}, {"rule": 2, "type": "equivalent", "target": "4740d9f31fd4c12b6d5a04c40c8195be", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}}, {"rule": 2, "type": "equivalent", "target": "97bb10cc9f08896474b1fbb4124b5dea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "276437aae600160130d6f092ec25aebd", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 UPDATE/DELETE ... WHERE CURRENT OF，使其在所引用游标使用仅索引扫描计划时不会失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}, "url": "/docs/compare/?release=10.4#10.4-ecf79f0d3bec4228", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "4740d9f31fd4c12b6d5a04c40c8195be", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}, "url": "/docs/compare/?release=9.5.13#9.5.13-c5317df56ae6d1b1", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "97bb10cc9f08896474b1fbb4124b5dea", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}, "url": "/docs/compare/?release=9.4.18#9.4.18-c5317df56ae6d1b1", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "2a0ab3053bfdfc51b055b43959af1610", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea5abd72e1126fd333dcb5f251416bf100dfecbe0c24e2f2a25ddd2ee8738356"}, "url": "/docs/compare/?release=9.3.23#9.3.23-c5317df56ae6d1b1", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-7699b7c857aee911", "cves": [], "html": "<p>修复下推到参数化路径的连接子句的错误规划（Andrew Gierth、Tom Lane）</p>\n<p>这个错误可能把本应是普通<span>“<span>过滤</span>”</span>条件的条件错误分类为外连接的<span>“<span>连接过滤</span>”</span>，导致错误的连接输出。</p>", "text": "修复下推到参数化路径的连接子句的错误规划（Andrew Gierth、Tom Lane） 这个错误可能把本应是普通“过滤”条件的条件错误分类为外连接的“连接过滤”，导致错误的连接输出。", "title": "修复下推到参数化路径的连接子句的错误规划", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "87e0b0ae361cf53f172c3b9b124ad77fa1e53c83e2d783dcce6e84531a208b3c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect planning of join clauses pushed into parameterized paths (Andrew Gierth, Tom Lane) This error could result in misclassifying a condition as a join filter for an outer join when it should be a plain filter condition, leading to incorrect join output.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/009", "db_id": "385cc7ec3e8ca84a5532528a2053d355", "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e", "relations": [{"rule": 2, "type": "equivalent", "target": "06975570bb43368f9da3f3e6e63f9b5b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}}, {"rule": 2, "type": "equivalent", "target": "09ec2b803f67c9b215ef0d191cc745b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}}, {"rule": 2, "type": "equivalent", "target": "c3f441037d6fc540343df997ba5757c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}}, {"rule": 2, "type": "equivalent", "target": "f76c4e3fcb04e1fb3730b3de25bf89fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "06975570bb43368f9da3f3e6e63f9b5b", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复对下推到参数化路径的连接子句的不正确规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}, "url": "/docs/compare/?release=10.4#10.4-d414e65c7514963d", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "f76c4e3fcb04e1fb3730b3de25bf89fd", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复下推到参数化路径的连接子句的错误规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}, "url": "/docs/compare/?release=9.5.13#9.5.13-7699b7c857aee911", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "c3f441037d6fc540343df997ba5757c6", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复下推到参数化路径的连接子句的错误规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}, "url": "/docs/compare/?release=9.4.18#9.4.18-7699b7c857aee911", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "09ec2b803f67c9b215ef0d191cc745b9", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复下推到参数化路径的连接子句的错误规划", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2d3d92abe45b4bc5c4c2e763a9089f60d7d13c908a2a9bacc483ebf0261889e"}, "url": "/docs/compare/?release=9.3.23#9.3.23-7699b7c857aee911", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-38369a47b6180e9f", "cves": [], "html": "<p>修复同一表列出现在多个索引列中，且只有部分索引列使用能返回该列值的操作符类时，仅索引扫描计划可能不正确的生成（Kyotaro Horiguchi）</p>", "text": "修复同一表列出现在多个索引列中，且只有部分索引列使用能返回该列值的操作符类时，仅索引扫描计划可能不正确的生成（Kyotaro Horiguchi）", "title": "修复同一表列出现在多个索引列中，且只有部分索引列使用能返回该列值的操作符类时，仅索引扫描计划可能不正确的生成", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "3000fd9132e71e0a180e8d4a886bfa073e963ce5163d930348e181723d3fa9e8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possibly incorrect generation of an index-only-scan plan when the same table column appears in multiple index columns, and only some of those index columns use operator classes that can return the column value (Kyotaro Horiguchi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/010", "db_id": "335bf823501c9efe11167e9cb9942f02", "patch_ids": [], "statement_hash": "8faf64f27dbbac5471cc14d45186c67d0150608739e241b36785cc3599bc1b1b", "relations": [{"rule": 2, "type": "equivalent", "target": "02264aa09149ae35fed8d78b05f44669", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8faf64f27dbbac5471cc14d45186c67d0150608739e241b36785cc3599bc1b1b"}}, {"rule": 2, "type": "equivalent", "target": "5e50f2ba78c090789c3986ee7584e581", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8faf64f27dbbac5471cc14d45186c67d0150608739e241b36785cc3599bc1b1b"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e50f2ba78c090789c3986ee7584e581", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复同一表列出现在多个索引列中，且只有部分索引列使用能够返回列值的操作符类时，可能错误生成仅索引扫描计划的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8faf64f27dbbac5471cc14d45186c67d0150608739e241b36785cc3599bc1b1b"}, "url": "/docs/compare/?release=10.4#10.4-2b5194ec207c26bd", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "02264aa09149ae35fed8d78b05f44669", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复同一表列出现在多个索引列中，且只有部分索引列使用能返回该列值的操作符类时，仅索引扫描计划可能不正确的生成", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8faf64f27dbbac5471cc14d45186c67d0150608739e241b36785cc3599bc1b1b"}, "url": "/docs/compare/?release=9.5.13#9.5.13-38369a47b6180e9f", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}]}, {"id": "9.6.9-861e51c1f3a53a2d", "cves": [], "html": "<p>修复对顶层 <code>AND</code>/<code>OR</code> 条件带有可证明为 NULL 子子句的 <code>CHECK</code> 约束的错误优化（Tom Lane、Dean Rasheed）</p>\n<p>这可能导致例如约束排除错误地排除不应从查询中排除的子表。</p>", "text": "修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化（Tom Lane、Dean Rasheed） 这可能导致例如约束排除错误地排除不应从查询中排除的子表。", "title": "修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "50f0be4304da0b31f34c993a22f3d1677106423136b709feacf037899b3f76fd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misoptimization of CHECK constraints having provably-NULL subclauses of top-level AND/OR conditions (Tom Lane, Dean Rasheed) This could, for example, allow constraint exclusion to exclude a child table that should not be excluded from a query.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/011", "db_id": "f3056884eb9a381bf3016240f199c28f", "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8", "relations": [{"rule": 2, "type": "equivalent", "target": "751864888c8d30783ddb1f606d0926b7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}}, {"rule": 2, "type": "equivalent", "target": "882de0e68f70dccc590c805899ce41b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}}, {"rule": 2, "type": "equivalent", "target": "93aed99951085f5f712fdcc5e8e7b204", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}}, {"rule": 2, "type": "equivalent", "target": "e895843a75a8dc275aec770e0af95c62", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "93aed99951085f5f712fdcc5e8e7b204", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复对 CHECK 约束的不正确优化，此类约束的顶层 AND/OR 条件包含可证明为 NULL 的子句", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}, "url": "/docs/compare/?release=10.4#10.4-10267cbcef4716ea", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "751864888c8d30783ddb1f606d0926b7", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}, "url": "/docs/compare/?release=9.5.13#9.5.13-861e51c1f3a53a2d", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "e895843a75a8dc275aec770e0af95c62", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}, "url": "/docs/compare/?release=9.4.18#9.4.18-861e51c1f3a53a2d", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "882de0e68f70dccc590c805899ce41b4", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6d749968e0afa0cfaf9eed8c508bebbf93e3915e6de338de79618220b40171e8"}, "url": "/docs/compare/?release=9.3.23#9.3.23-861e51c1f3a53a2d", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-a1bdff4aff34a0ff", "cves": [], "html": "<p>修复某些 <code>GROUPING SET</code> 用法中因双重释放导致的执行器崩溃（Peter Geoghegan）</p>", "text": "修复某些 GROUPING SET 用法中因双重释放导致的执行器崩溃（Peter Geoghegan）", "title": "修复某些 GROUPING SET 用法中因双重释放导致的执行器崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "d66c276d472b6b9488f2a37204b80d5e1d4f1182a6fb0da5151e380281070d47", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix executor crash due to double free in some GROUPING SET usages (Peter Geoghegan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/012", "db_id": "ca161164f745b17c800ac711e00113c4", "patch_ids": [], "statement_hash": "859f2d65369740e059040cbdc6ea365a8a160c3b9dea0772c48771ed208acd2b", "relations": [{"rule": 2, "type": "equivalent", "target": "2a4fee8b4764da924f481455068db52c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "859f2d65369740e059040cbdc6ea365a8a160c3b9dea0772c48771ed208acd2b"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2a4fee8b4764da924f481455068db52c", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复某些 GROUPING SET 用法中因双重释放导致的执行器崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "859f2d65369740e059040cbdc6ea365a8a160c3b9dea0772c48771ed208acd2b"}, "url": "/docs/compare/?release=9.5.13#9.5.13-a1bdff4aff34a0ff", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}]}, {"id": "9.6.9-37a61afc2518360d", "cves": [], "html": "<p>避免可能与能调用此类触发器的命令并发添加表重写事件触发器时崩溃（Álvaro Herrera、Andrew Gierth、Tom Lane）</p>", "text": "避免可能与能调用此类触发器的命令并发添加表重写事件触发器时崩溃（Álvaro Herrera、Andrew Gierth、Tom Lane）", "title": "避免可能与能调用此类触发器的命令并发添加表重写事件触发器时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "c3ad5da85b7b60c5443967cd56d57d63d07d49d4f058ed304801f2f82b8a33e8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid crash if a table rewrite event trigger is added concurrently with a command that could call such a trigger (Álvaro Herrera, Andrew Gierth, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/013", "db_id": "48f75aca2470d1ed3c33a2c14b6be9da", "patch_ids": [], "statement_hash": "03f74730007f0bec49a7ddf89cc7e53d382284442baa9869c8e49b7e9a2f20ae", "relations": [{"rule": 2, "type": "equivalent", "target": "54bc88655b4d449b3ded2bcec026a3b0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03f74730007f0bec49a7ddf89cc7e53d382284442baa9869c8e49b7e9a2f20ae"}}, {"rule": 2, "type": "equivalent", "target": "808fd84d59264eecac5e89ba65c97b92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03f74730007f0bec49a7ddf89cc7e53d382284442baa9869c8e49b7e9a2f20ae"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "54bc88655b4d449b3ded2bcec026a3b0", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "避免添加表重写事件触发器与可能调用此类触发器的命令并发进行时发生崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03f74730007f0bec49a7ddf89cc7e53d382284442baa9869c8e49b7e9a2f20ae"}, "url": "/docs/compare/?release=10.4#10.4-089465fcf3239ebc", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "808fd84d59264eecac5e89ba65c97b92", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "避免可能与能调用此类触发器的命令并发添加表重写事件触发器时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03f74730007f0bec49a7ddf89cc7e53d382284442baa9869c8e49b7e9a2f20ae"}, "url": "/docs/compare/?release=9.5.13#9.5.13-37a61afc2518360d", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}]}, {"id": "9.6.9-ebc0e8f0d2aa1fb7", "cves": [], "html": "<p>避免提交预备事务时发生查询取消或会话终止中断时失败（Stas Kelvich）</p>", "text": "避免提交预备事务时发生查询取消或会话终止中断时失败（Stas Kelvich）", "title": "避免提交预备事务时发生查询取消或会话终止中断时失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "d5b6f0c2dc367fa71aa56f8a0cbe8f8453008239d60c1d745a00c072acb6bc11", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid failure if a query-cancel or session-termination interrupt occurs while committing a prepared transaction (Stas Kelvich)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/014", "db_id": "d849870dcc8a1165e36e3e5ce10a3b6d", "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6", "relations": [{"rule": 2, "type": "equivalent", "target": "012d886d228aff5bad6e972250232db0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}}, {"rule": 2, "type": "equivalent", "target": "5628c69795113451c28bba4883f0f9de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}}, {"rule": 2, "type": "equivalent", "target": "ca27f93498d8f85bc983e8f7cce04b4e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}}, {"rule": 2, "type": "equivalent", "target": "cff7a0484624c247e29a0c6b706c2f13", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ca27f93498d8f85bc983e8f7cce04b4e", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "避免提交预备事务时出现查询取消或会话终止中断而发生失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}, "url": "/docs/compare/?release=10.4#10.4-0dd380e6c0f6895d", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "012d886d228aff5bad6e972250232db0", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "避免提交预备事务时发生查询取消或会话终止中断时失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}, "url": "/docs/compare/?release=9.5.13#9.5.13-ebc0e8f0d2aa1fb7", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "cff7a0484624c247e29a0c6b706c2f13", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "避免提交预备事务时发生查询取消或会话终止中断时失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}, "url": "/docs/compare/?release=9.4.18#9.4.18-ebc0e8f0d2aa1fb7", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "5628c69795113451c28bba4883f0f9de", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "避免提交预备事务时发生查询取消或会话终止中断时失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26732acdda4921b6f838a4333718ce3c83af57120659d19116cb1f6c71a643c6"}, "url": "/docs/compare/?release=9.3.23#9.3.23-ebc0e8f0d2aa1fb7", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-b95c0f061da572ed", "cves": [], "html": "<p>修复重复执行的哈希连接中的查询生命周期内存泄漏（Tom Lane）</p>", "text": "修复重复执行的哈希连接中的查询生命周期内存泄漏（Tom Lane）", "title": "修复重复执行的哈希连接中的查询生命周期内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "077671b017442221d10e9b2ee7c3c59e67714aa7a4c07472b767eee385477ec3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix query-lifespan memory leakage in repeatedly executed hash joins (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/015", "db_id": "71c7a2b03e210421a27cd8b7e75a48fc", "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647", "relations": [{"rule": 2, "type": "equivalent", "target": "0df67385cc5c95a9daf22ff35d53e649", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}}, {"rule": 2, "type": "equivalent", "target": "37e110dbf8a28646a158b4bd829b0115", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}}, {"rule": 2, "type": "equivalent", "target": "4f09861cbb7f6d11a0d870c50652e1a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}}, {"rule": 2, "type": "equivalent", "target": "9e4930edcd94bb3585db04e3f475fb38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "37e110dbf8a28646a158b4bd829b0115", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复重复执行的哈希连接中持续整个查询生命周期的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}, "url": "/docs/compare/?release=10.4#10.4-690ae29023177979", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "0df67385cc5c95a9daf22ff35d53e649", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复重复执行的哈希连接中的查询生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}, "url": "/docs/compare/?release=9.5.13#9.5.13-b95c0f061da572ed", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "4f09861cbb7f6d11a0d870c50652e1a6", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复重复执行的哈希连接中的查询生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}, "url": "/docs/compare/?release=9.4.18#9.4.18-b95c0f061da572ed", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "9e4930edcd94bb3585db04e3f475fb38", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复重复执行的哈希连接中的查询生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f4a9b752cfbda9ec6ff503ebc96756625ad75ca12c51d4ecbc5a3387e7a0647"}, "url": "/docs/compare/?release=9.3.23#9.3.23-b95c0f061da572ed", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-2ff37c1575b88f6c", "cves": [], "html": "<p>修复可见性映射缓冲区 pin 可能的泄漏或双重释放（Amit Kapila）</p>", "text": "修复可见性映射缓冲区 pin 可能的泄漏或双重释放（Amit Kapila）", "title": "修复可见性映射缓冲区 pin 可能的泄漏或双重释放", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "27d83f0a222a2a04588cfedfacdfda4055f960062066cf6bbacf3783ada89f8c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible leak or double free of visibility map buffer pins (Amit Kapila)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/016", "db_id": "ac64c8fe93d04a833ec28069fedd286b", "patch_ids": [], "statement_hash": "d986de5693d65fb975708e8752deb458d5ddde3b65760ce863b7321a3b14c008", "relations": [{"rule": 2, "type": "equivalent", "target": "20a33648aac76ececec461e92d30ddd2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d986de5693d65fb975708e8752deb458d5ddde3b65760ce863b7321a3b14c008"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "20a33648aac76ececec461e92d30ddd2", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复可见性映射缓冲区固定可能泄漏或重复释放的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d986de5693d65fb975708e8752deb458d5ddde3b65760ce863b7321a3b14c008"}, "url": "/docs/compare/?release=10.4#10.4-8239156608033f58", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}]}, {"id": "9.6.9-e783f0ae3b11b056", "cves": [], "html": "<p>避免虚假地把页标记为全可见（Dan Wood、Pavan Deolasee、Álvaro Herrera）</p>\n<p>如果某些元组被锁定（但未被删除）就可能发生这种情况。虽然查询仍能正确运行，但 vacuum 通常会忽略这种页，长期效果是这些元组永远不会被冻结。在最近的版本中，这最终会导致诸如 <span>“<span>found multixact <em><code>nnnnn</code></em> from before relminmxid <em><code>nnnnn</code></em></span>”</span> 的错误。</p>", "text": "避免虚假地把页标记为全可见（Dan Wood、Pavan Deolasee、Álvaro Herrera） 如果某些元组被锁定（但未被删除）就可能发生这种情况。虽然查询仍能正确运行，但 vacuum 通常会忽略这种页，长期效果是这些元组永远不会被冻结。在最近的版本中，这最终会导致诸如 “found multixact nnnnn from before relminmxid nnnnn” 的错误。", "title": "避免虚假地把页标记为全可见", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "60d93155a6f67de671cf71199dba697f7abb1735b172f9e032901a3442d08a1f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid spuriously marking pages as all-visible (Dan Wood, Pavan Deolasee, Álvaro Herrera) This could happen if some tuples were locked (but not deleted). While queries would still function correctly, vacuum would normally ignore such pages, with the long-term effect that the tuples were never frozen. In recent releases this would eventually result in errors such as found multixact nnnnn from before relminmxid nnnnn.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/017", "db_id": "e4779bd0f848729c290922e037e56984", "patch_ids": [], "statement_hash": "fca671a395fba358138ebd33a829783c11a8a8e7abac639f86535c692ce667f9", "relations": [{"rule": 2, "type": "equivalent", "target": "1d3b6cece276e3df26ef170aa10e1859", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fca671a395fba358138ebd33a829783c11a8a8e7abac639f86535c692ce667f9"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d3b6cece276e3df26ef170aa10e1859", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "避免错误地将页标记为全可见", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fca671a395fba358138ebd33a829783c11a8a8e7abac639f86535c692ce667f9"}, "url": "/docs/compare/?release=10.4#10.4-a3c147ed36cddcd6", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}]}, {"id": "9.6.9-01e022d21e09f7b1", "cves": [], "html": "<p>修复 <code>heap_prepare_freeze_tuple</code> 中过于严格的健全性检查（Álvaro Herrera）</p>\n<p>在从 9.2 或更早版本 <span>pg_upgrade</span> 过来的数据库中，这可能导致错误的 <span>“<span>cannot freeze committed xmax</span>”</span> 失败。</p>", "text": "修复 heap_prepare_freeze_tuple 中过于严格的健全性检查（Álvaro Herrera） 在从 9.2 或更早版本 pg_upgrade 过来的数据库中，这可能导致错误的 “cannot freeze committed xmax” 失败。", "title": "修复 heap_prepare_freeze_tuple 中过于严格的健全性检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "dd39f2dacfaa0a6e05261be919f31cf6f3ae2939030ce5fbb89aa21fb9d34078", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix overly strict sanity check in heap_prepare_freeze_tuple (Álvaro Herrera) This could result in incorrect cannot freeze committed xmax failures in databases that have been pg_upgrade'd from 9.2 or earlier.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/018", "db_id": "79e214f56277346dcf9d8f861f30a6de", "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc", "relations": [{"rule": 2, "type": "equivalent", "target": "2abcc7387b054f346a1363b3f6a58d27", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}}, {"rule": 2, "type": "equivalent", "target": "398a20d1a113f4524097788e53a7290d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}}, {"rule": 2, "type": "equivalent", "target": "eb8fd9fe9ea505f2e72c7ec81b50306c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}}, {"rule": 2, "type": "equivalent", "target": "f6753ab33de390a304692dce8a7a98aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "398a20d1a113f4524097788e53a7290d", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 heap_prepare_freeze_tuple 中过于严格的合理性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}, "url": "/docs/compare/?release=10.4#10.4-562b21be795965b3", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "f6753ab33de390a304692dce8a7a98aa", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 heap_prepare_freeze_tuple 中过于严格的健全性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}, "url": "/docs/compare/?release=9.5.13#9.5.13-01e022d21e09f7b1", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "2abcc7387b054f346a1363b3f6a58d27", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 heap_prepare_freeze_tuple 中过于严格的健全性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}, "url": "/docs/compare/?release=9.4.18#9.4.18-01e022d21e09f7b1", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "eb8fd9fe9ea505f2e72c7ec81b50306c", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复 heap_prepare_freeze_tuple 中过于严格的健全性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7ed39eef1e57cd7e00a373aac583d30ed3c0bf86f233c1d555ddc4cf3ba152dc"}, "url": "/docs/compare/?release=9.3.23#9.3.23-01e022d21e09f7b1", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-7ab83d10d1038ffa", "cves": [], "html": "<p>防止 C 编写的 before-update 行触发器返回<span>“<span>旧</span>”</span>元组时的悬空指针解引用（Rushabh Lathia）</p>", "text": "防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用（Rushabh Lathia）", "title": "防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "61d5b9d49b7c20289669c7a3b0bf01502ff1d1d9e82e56526fca99880235d8f0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent dangling-pointer dereference when a C-coded before-update row trigger returns the old tuple (Rushabh Lathia)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/019", "db_id": "e75cd9e0f10d48299c3554b88d509da4", "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5", "relations": [{"rule": 2, "type": "equivalent", "target": "42acf6090644d3f87227ffaf6b8764ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}}, {"rule": 2, "type": "equivalent", "target": "682362add12a729c5489dda7142bb171", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}}, {"rule": 2, "type": "equivalent", "target": "88113e2fb8b0f955ded947c1de92d902", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}}, {"rule": 2, "type": "equivalent", "target": "c6793ae4b983258e6c3bf3db3f4a11c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "682362add12a729c5489dda7142bb171", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "防止用 C 编写的更新前行触发器返回“旧”元组时解引用悬空指针", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}, "url": "/docs/compare/?release=10.4#10.4-c5987c818497c034", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "42acf6090644d3f87227ffaf6b8764ed", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}, "url": "/docs/compare/?release=9.5.13#9.5.13-7ab83d10d1038ffa", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "88113e2fb8b0f955ded947c1de92d902", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}, "url": "/docs/compare/?release=9.4.18#9.4.18-7ab83d10d1038ffa", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "c6793ae4b983258e6c3bf3db3f4a11c5", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1581e97b63de5ec4cf403ff5eb79d5d42e75c8a4a73e4fea04cec1547ec53db5"}, "url": "/docs/compare/?release=9.3.23#9.3.23-7ab83d10d1038ffa", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-c5a47f74f99569cd", "cves": [], "html": "<p>减少自动清理工作者调度期间的锁定（Jeff Janes）</p>\n<p>原来的行为导致有许多表的数据库中潜在工作者并发性的急剧丧失。</p>", "text": "减少自动清理工作者调度期间的锁定（Jeff Janes） 原来的行为导致有许多表的数据库中潜在工作者并发性的急剧丧失。", "title": "减少自动清理工作者调度期间的锁定", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "b6e9b0a7e8ace40f399d3344e46fbe24f68e7af9ce834126f6459d11878cf0a1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce locking during autovacuum worker scheduling (Jeff Janes) The previous behavior caused drastic loss of potential worker concurrency in databases with many tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/020", "db_id": "69c3a93060056cf09ae728faa3c6b1ef", "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4", "relations": [{"rule": 2, "type": "equivalent", "target": "3b3a523818a14c0f9504acf49b8853ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}}, {"rule": 2, "type": "equivalent", "target": "9879651e1577c9bf2b980164dc96fc99", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}}, {"rule": 2, "type": "equivalent", "target": "c2fe5d0b1b1ea315c42bb0cbb189e2e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}}, {"rule": 2, "type": "equivalent", "target": "cbe49277038634d0ff5d46032b18414e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c2fe5d0b1b1ea315c42bb0cbb189e2e2", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "减少自动清理工作进程调度期间的加锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}, "url": "/docs/compare/?release=10.4#10.4-2c4a4a22bed483b7", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "cbe49277038634d0ff5d46032b18414e", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "减少自动清理工作者调度期间的锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}, "url": "/docs/compare/?release=9.5.13#9.5.13-c5a47f74f99569cd", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "3b3a523818a14c0f9504acf49b8853ed", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "减少自动清理工作者调度期间的锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}, "url": "/docs/compare/?release=9.4.18#9.4.18-c5a47f74f99569cd", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "9879651e1577c9bf2b980164dc96fc99", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "减少自动清理工作者调度期间的锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "14de4f415f73c95f0c21dc7a5a2f4dcb137aa0473d074fd71c6a8f14019a7ff4"}, "url": "/docs/compare/?release=9.3.23#9.3.23-c5a47f74f99569cd", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-5e5fddc6e35501d5", "cves": [], "html": "<p>确保把 <code>pg_stat_activity</code> 数据复制到本地内存时复制客户端主机名（Edmund Horner）</p>\n<p>此前，这个本应本地的快照包含指向共享内存的指针，使客户端主机名列可能因任何现有会话断开而意外改变。</p>", "text": "确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名（Edmund Horner） 此前，这个本应本地的快照包含指向共享内存的指针，使客户端主机名列可能因任何现有会话断开而意外改变。", "title": "确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "bc6a7f0322debf94d25707141fcdd3234150ded078d58558858c377baad8fba9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure client hostname is copied while copying pg_stat_activity data to local memory (Edmund Horner) Previously the supposedly-local snapshot contained a pointer into shared memory, allowing the client hostname column to change unexpectedly if any existing session disconnected.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/021", "db_id": "5c7983b5c911e39d4fb4734b69fbec03", "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d", "relations": [{"rule": 2, "type": "equivalent", "target": "8b056c527a773e38bdf57355cb610251", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}}, {"rule": 2, "type": "equivalent", "target": "92c0710eaf0262eb5500ccb1efe0542e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}}, {"rule": 2, "type": "equivalent", "target": "af3a25fc707a614cafcb9ff72f88cf20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}}, {"rule": 2, "type": "equivalent", "target": "fda974396483a47344c45c305f2cefe9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b056c527a773e38bdf57355cb610251", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "确保将 pg_stat_activity 数据复制到本地内存时也复制客户端主机名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}, "url": "/docs/compare/?release=10.4#10.4-09c9698d058905f5", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "fda974396483a47344c45c305f2cefe9", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}, "url": "/docs/compare/?release=9.5.13#9.5.13-5e5fddc6e35501d5", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "92c0710eaf0262eb5500ccb1efe0542e", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}, "url": "/docs/compare/?release=9.4.18#9.4.18-5e5fddc6e35501d5", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "af3a25fc707a614cafcb9ff72f88cf20", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "78dc8299634ce114ccef0a29a0137833d2b717c32aef987d8972f700e819ef2d"}, "url": "/docs/compare/?release=9.3.23#9.3.23-5e5fddc6e35501d5", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-e8113010139e614e", "cves": [], "html": "<p>修复 <code>ispell</code> 词典中多个复合词缀的错误处理（Arthur Zakirov）</p>", "text": "修复 ispell 词典中多个复合词缀的错误处理（Arthur Zakirov）", "title": "修复 ispell 词典中多个复合词缀的错误处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "6d0576f91b376a3976fc00fbf0a607dc31dffe97c8e3bf2ca979f5b394871a3e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect processing of multiple compound affixes in ispell dictionaries (Arthur Zakirov)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/022", "db_id": "2eeabca54ad4f767b22d9570cc8adcf2", "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6", "relations": [{"rule": 2, "type": "equivalent", "target": "0f6e4e08bd85104518b0759c3a13b12f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}}, {"rule": 2, "type": "equivalent", "target": "291efb69928283fba2177fa4566082b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}}, {"rule": 2, "type": "equivalent", "target": "6130400fb1f41c260f1e042643d0507b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}}, {"rule": 2, "type": "equivalent", "target": "c39b806add06e980c2133a2ff25fa94c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "291efb69928283fba2177fa4566082b5", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 ispell 字典对多个复合词缀处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}, "url": "/docs/compare/?release=10.4#10.4-a85e988c914cc62c", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "0f6e4e08bd85104518b0759c3a13b12f", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 ispell 词典中多个复合词缀的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}, "url": "/docs/compare/?release=9.5.13#9.5.13-e8113010139e614e", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "c39b806add06e980c2133a2ff25fa94c", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 ispell 词典中多个复合词缀的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}, "url": "/docs/compare/?release=9.4.18#9.4.18-e8113010139e614e", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "6130400fb1f41c260f1e042643d0507b", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复 ispell 词典中多个复合词缀的错误处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0f8a47c5225ea0f137a489c6c2ec51fd60e9ece4f298fe13f97ecc888e51ce6"}, "url": "/docs/compare/?release=9.3.23#9.3.23-e8113010139e614e", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-3448b25b62d2b1da", "cves": [], "html": "<p>修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）（Tom Lane）</p>\n<p>在大多数非 C 区域中，这种搜索会返回错误的行集合。</p>", "text": "修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）（Tom Lane） 在大多数非 C 区域中，这种搜索会返回错误的行集合。", "title": "修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "cc521e132138ed8603a2fc9ad803e21c53469f2117da5e62a327b9d7f83ca9e6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix collation-aware searches (that is, indexscans using inequality operators) in SP-GiST indexes on text columns (Tom Lane) Such searches would return the wrong set of rows in most non-C locales.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/023", "db_id": "4806991de97b350a9da8549508ceca1c", "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1", "relations": [{"rule": 2, "type": "equivalent", "target": "02e9f30aadf663eed076639c509b35b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}}, {"rule": 2, "type": "equivalent", "target": "055505907ab73dcd556292fb81ea9c61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}}, {"rule": 2, "type": "equivalent", "target": "6c5489f304d2067655ec90f6b952d748", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}}, {"rule": 2, "type": "equivalent", "target": "b4cab7f36fbf2fbcac26864909208677", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6c5489f304d2067655ec90f6b952d748", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复文本列上 SP-GiST 索引中考虑排序规则的搜索（即使用不等式操作符的索引扫描）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}, "url": "/docs/compare/?release=10.4#10.4-8f9e9e1392cd363a", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "b4cab7f36fbf2fbcac26864909208677", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}, "url": "/docs/compare/?release=9.5.13#9.5.13-3448b25b62d2b1da", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "02e9f30aadf663eed076639c509b35b3", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}, "url": "/docs/compare/?release=9.4.18#9.4.18-3448b25b62d2b1da", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "055505907ab73dcd556292fb81ea9c61", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复 text 列上 SP-GiST 索引中的排序规则感知搜索（即使用不等操作符的索引扫描）", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "48ab0a47cf70df52e051e183c7d5a16381f26b772924e25c3ad2da1a02c46aa1"}, "url": "/docs/compare/?release=9.3.23#9.3.23-3448b25b62d2b1da", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-e228b00a4a2f4b91", "cves": [], "html": "<p>防止使用遍历值的 SP-GiST 操作符类的查询生命周期内存泄漏（Anton Dignös）</p>", "text": "防止使用遍历值的 SP-GiST 操作符类的查询生命周期内存泄漏（Anton Dignös）", "title": "防止使用遍历值的 SP-GiST 操作符类的查询生命周期内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "e35432989e7b3c3f052ea5b38294fb3af8f52ae28d4594526ddc6bac66f14eeb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent query-lifespan memory leakage with SP-GiST operator classes that use traversal values (Anton Dignös)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/024", "db_id": "28cd9314ae4251cc0b65883f52703f4c", "patch_ids": [], "statement_hash": "85f7f33d33f9aa8b84dfe5452235932dde27b6f7c1c3c3bbadace1bc9ce6f3ac", "relations": [{"rule": 2, "type": "equivalent", "target": "e48ed71cdf50c0ea45c777f512fc0884", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85f7f33d33f9aa8b84dfe5452235932dde27b6f7c1c3c3bbadace1bc9ce6f3ac"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e48ed71cdf50c0ea45c777f512fc0884", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "防止使用遍历值的 SP-GiST 操作符类在查询生命周期内泄漏内存", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85f7f33d33f9aa8b84dfe5452235932dde27b6f7c1c3c3bbadace1bc9ce6f3ac"}, "url": "/docs/compare/?release=10.4#10.4-5dcb1012ad5e9acb", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}]}, {"id": "9.6.9-e54830f8dcbbc55e", "cves": [], "html": "<p>在 SP-GiST 索引初始构建期间正确计数索引元组数（Tomas Vondra）</p>\n<p>此前，元组数被报告为与底层表相同，如果索引是部分索引就错了。</p>", "text": "在 SP-GiST 索引初始构建期间正确计数索引元组数（Tomas Vondra） 此前，元组数被报告为与底层表相同，如果索引是部分索引就错了。", "title": "在 SP-GiST 索引初始构建期间正确计数索引元组数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "aa215a1d0513c7c8b448f2f1aa03067f92392a0a6930b4f8d7df0e05c03bdcad", "section_path": ["变更"], "commit_groups": [], "identity_text": "Count the number of index tuples correctly during initial build of an SP-GiST index (Tomas Vondra) Previously, the tuple count was reported to be the same as that of the underlying table, which is wrong if the index is partial.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/025", "db_id": "87a9fe257dbbf67ae0f5420069f6a5dd", "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0", "relations": [{"rule": 2, "type": "equivalent", "target": "17ec129a297bb8205d81fbea0ba2dc46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}}, {"rule": 2, "type": "equivalent", "target": "2bd7aaa9f4c77b34211ebaa6805b7b9b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}}, {"rule": 2, "type": "equivalent", "target": "ac6f0f2aa60298980a4a8234b8d6ea2f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}}, {"rule": 2, "type": "equivalent", "target": "f3cfe66abaea835caf64a0f0666a4e06", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "17ec129a297bb8205d81fbea0ba2dc46", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "在首次构建 SP-GiST 索引时正确统计索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}, "url": "/docs/compare/?release=10.4#10.4-acd47998537683c5", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "ac6f0f2aa60298980a4a8234b8d6ea2f", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "在 SP-GiST 索引初始构建期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}, "url": "/docs/compare/?release=9.5.13#9.5.13-e54830f8dcbbc55e", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "f3cfe66abaea835caf64a0f0666a4e06", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "在 SP-GiST 索引初始构建期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}, "url": "/docs/compare/?release=9.4.18#9.4.18-e54830f8dcbbc55e", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "2bd7aaa9f4c77b34211ebaa6805b7b9b", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "在 SP-GiST 索引初始构建期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb26d2e14abe070a0cdd663f1654b75b4093aaba180e261e66d6db3ce75e01f0"}, "url": "/docs/compare/?release=9.3.23#9.3.23-e54830f8dcbbc55e", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-4ff7dbd55c5c1335", "cves": [], "html": "<p>在 GiST 索引清理期间正确计数索引元组数（Andrey Borodin）</p>\n<p>此前它报告的是估计的堆元组数，可能不准确，而且如果索引是部分索引则肯定错误。</p>", "text": "在 GiST 索引清理期间正确计数索引元组数（Andrey Borodin） 此前它报告的是估计的堆元组数，可能不准确，而且如果索引是部分索引则肯定错误。", "title": "在 GiST 索引清理期间正确计数索引元组数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "8c73fd7a573772b5dd245c9453c29fbf82c609ddd7041b56ea4aa7019268b9c8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Count the number of index tuples correctly during vacuuming of a GiST index (Andrey Borodin) Previously it reported the estimated number of heap tuples, which might be inaccurate, and is certainly wrong if the index is partial.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/026", "db_id": "ab9bdfe958543add18823d023e5242b4", "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015", "relations": [{"rule": 2, "type": "equivalent", "target": "29e33e77b216dbbb7810840bad771441", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}}, {"rule": 2, "type": "equivalent", "target": "a638da4d9b969dd3191b7d6887f7e419", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}}, {"rule": 2, "type": "equivalent", "target": "bccd0d9a1621ebeaa4e5af223bee719f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}}, {"rule": 2, "type": "equivalent", "target": "cfdf30adb94a383b4ee43f96cc2045bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "29e33e77b216dbbb7810840bad771441", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "在清理 GiST 索引时正确统计索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}, "url": "/docs/compare/?release=10.4#10.4-09b1d2652f4ed6ab", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "bccd0d9a1621ebeaa4e5af223bee719f", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "在 GiST 索引清理期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}, "url": "/docs/compare/?release=9.5.13#9.5.13-4ff7dbd55c5c1335", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "a638da4d9b969dd3191b7d6887f7e419", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "在 GiST 索引清理期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}, "url": "/docs/compare/?release=9.4.18#9.4.18-4ff7dbd55c5c1335", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "cfdf30adb94a383b4ee43f96cc2045bf", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "在 GiST 索引清理期间正确计数索引元组数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b306cd9024e03b3ab020486ecf482f698c62c5c17a9780180417312d4850b015"}, "url": "/docs/compare/?release=9.3.23#9.3.23-4ff7dbd55c5c1335", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-ca01249ece0034ac", "cves": [], "html": "<p>修复流式备库在 WAL 延续记录处卡住的一个边界情况（Kyotaro Horiguchi）</p>", "text": "修复流式备库在 WAL 延续记录处卡住的一个边界情况（Kyotaro Horiguchi）", "title": "修复流式备库在 WAL 延续记录处卡住的一个边界情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "2cc33db73e8e96f9830c9b399af5a9cd270678d1913f3b8e3d3ed74f2ab2ae72", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix a corner case where a streaming standby gets stuck at a WAL continuation record (Kyotaro Horiguchi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/027", "db_id": "a93f663903aa06ad4ff1792dc4f9a275", "patch_ids": [], "statement_hash": "59351e6443dbaf7dc4c2220aa69782841d1772b68fb9a372533c7d2adb428416", "relations": [{"rule": 2, "type": "equivalent", "target": "33600bedb0d368c126b4c7b22224ab68", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59351e6443dbaf7dc4c2220aa69782841d1772b68fb9a372533c7d2adb428416"}}, {"rule": 2, "type": "equivalent", "target": "c68e07e15fb54547cdd38501bb1af2c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59351e6443dbaf7dc4c2220aa69782841d1772b68fb9a372533c7d2adb428416"}}, {"rule": 2, "type": "equivalent", "target": "f3045f78276ee10683eac5528bd5a4a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59351e6443dbaf7dc4c2220aa69782841d1772b68fb9a372533c7d2adb428416"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f3045f78276ee10683eac5528bd5a4a6", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复流复制备库卡在 WAL 续接记录上的一种边界情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59351e6443dbaf7dc4c2220aa69782841d1772b68fb9a372533c7d2adb428416"}, "url": "/docs/compare/?release=10.4#10.4-3e3d04127907dab8", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "c68e07e15fb54547cdd38501bb1af2c0", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复流式备库在 WAL 延续记录处卡住的一个边界情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59351e6443dbaf7dc4c2220aa69782841d1772b68fb9a372533c7d2adb428416"}, "url": "/docs/compare/?release=9.5.13#9.5.13-ca01249ece0034ac", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "33600bedb0d368c126b4c7b22224ab68", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复流式备库在 WAL 延续记录处卡住的一个边界情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59351e6443dbaf7dc4c2220aa69782841d1772b68fb9a372533c7d2adb428416"}, "url": "/docs/compare/?release=9.4.18#9.4.18-ca01249ece0034ac", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.6.9-a1e1aee845cc3721", "cves": [], "html": "<p>在逻辑解码中，避免 walsender 重启时 WAL 数据可能被双重处理（Craig Ringer）</p>", "text": "在逻辑解码中，避免 walsender 重启时 WAL 数据可能被双重处理（Craig Ringer）", "title": "在逻辑解码中，避免 walsender 重启时 WAL 数据可能被双重处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "36b0874c90338b53ea3d13559602426f7dc1a392bd8e09d17476e3fe2ee419d7", "section_path": ["变更"], "commit_groups": [], "identity_text": "In logical decoding, avoid possible double processing of WAL data when a walsender restarts (Craig Ringer)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/028", "db_id": "4c2ba004af8104bf528e8cf48a5125a1", "patch_ids": [], "statement_hash": "79549c9f3064d99035b8cf21625e13f2f9197ede19c546433974bb00a8b90f6b", "relations": [{"rule": 2, "type": "equivalent", "target": "47bc65eec35ea4781ec3ef7802aed738", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79549c9f3064d99035b8cf21625e13f2f9197ede19c546433974bb00a8b90f6b"}}, {"rule": 2, "type": "equivalent", "target": "4ba8666af1d4895ce1d50bca6abee36a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79549c9f3064d99035b8cf21625e13f2f9197ede19c546433974bb00a8b90f6b"}}, {"rule": 2, "type": "equivalent", "target": "ffa981528713bc0c5dfb6ad2ed90ea75", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79549c9f3064d99035b8cf21625e13f2f9197ede19c546433974bb00a8b90f6b"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4ba8666af1d4895ce1d50bca6abee36a", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "在逻辑解码中，避免 WAL 发送进程重启时可能重复处理 WAL 数据的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79549c9f3064d99035b8cf21625e13f2f9197ede19c546433974bb00a8b90f6b"}, "url": "/docs/compare/?release=10.4#10.4-2703a0fc865c6c1c", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "47bc65eec35ea4781ec3ef7802aed738", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "在逻辑解码中，避免 walsender 重启时 WAL 数据可能被双重处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79549c9f3064d99035b8cf21625e13f2f9197ede19c546433974bb00a8b90f6b"}, "url": "/docs/compare/?release=9.5.13#9.5.13-a1e1aee845cc3721", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "ffa981528713bc0c5dfb6ad2ed90ea75", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "在逻辑解码中，避免 walsender 重启时 WAL 数据可能被双重处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "79549c9f3064d99035b8cf21625e13f2f9197ede19c546433974bb00a8b90f6b"}, "url": "/docs/compare/?release=9.4.18#9.4.18-a1e1aee845cc3721", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.6.9-31ed71f6b49e9c19", "cves": [], "html": "<p>允许 <code>scalarltsel</code> 和 <code>scalargtsel</code> 用于非核心数据类型（Tomas Vondra）</p>", "text": "允许 scalarltsel 和 scalargtsel 用于非核心数据类型（Tomas Vondra）", "title": "允许 scalarltsel 和 scalargtsel 用于非核心数据类型", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "3faac08b187a07dce59bc0c14b0bd4f8f7645ec44ef16ec77dd870745596916e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow scalarltsel and scalargtsel to be used on non-core datatypes (Tomas Vondra)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/029", "db_id": "2489a01a1aa072ea9c497779d2c095fa", "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e", "relations": [{"rule": 2, "type": "equivalent", "target": "2d1c9127abf9e220078ac95813fe7259", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}}, {"rule": 2, "type": "equivalent", "target": "a8eeba970cd71720b89ea607aaf6d323", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}}, {"rule": 2, "type": "equivalent", "target": "b1bfdd907aec89a75bf1cc9b9d040f56", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}}, {"rule": 2, "type": "equivalent", "target": "f282a2d1093812925f015ba800325075", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b1bfdd907aec89a75bf1cc9b9d040f56", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "允许将 scalarltsel 和 scalargtsel 用于非核心数据类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}, "url": "/docs/compare/?release=10.4#10.4-8b8cfa71d75f5384", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "2d1c9127abf9e220078ac95813fe7259", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "允许 scalarltsel 和 scalargtsel 用于非核心数据类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}, "url": "/docs/compare/?release=9.5.13#9.5.13-31ed71f6b49e9c19", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "f282a2d1093812925f015ba800325075", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "允许 scalarltsel 和 scalargtsel 用于非核心数据类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}, "url": "/docs/compare/?release=9.4.18#9.4.18-31ed71f6b49e9c19", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "a8eeba970cd71720b89ea607aaf6d323", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "允许 scalarltsel 和 scalargtsel 用于非核心数据类型", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3cf7c4620528c8a92f3ef599197cc213c6a2ae988ce5537647a25de2b7d6b50e"}, "url": "/docs/compare/?release=9.3.23#9.3.23-31ed71f6b49e9c19", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-87cad5659cbd6302", "cves": [], "html": "<p>减少收集了大量查询输出之后服务器报告错误时 <span>libpq</span> 的内存消耗（Tom Lane）</p>\n<p>在处理错误消息之前而不是之后丢弃先前的输出。在某些平台（特别是 Linux）上，这可以改变应用之后的内存占用。</p>", "text": "减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗（Tom Lane） 在处理错误消息之前而不是之后丢弃先前的输出。在某些平台（特别是 Linux）上，这可以改变应用之后的内存占用。", "title": "减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "50fb739fac908e756b734cb2f62ee4d48c821386573f02a65df87458d7309e4e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce libpq's memory consumption when a server error is reported after a large amount of query output has been collected (Tom Lane) Discard the previous output before, not after, processing the error message. On some platforms, notably Linux, this can make a difference in the application's subsequent memory footprint.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/030", "db_id": "653ce78a669b47808c6c21ba056c6b28", "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308", "relations": [{"rule": 2, "type": "equivalent", "target": "2e2e30d4f45969ba61c1eae7a82d4a2f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}}, {"rule": 2, "type": "equivalent", "target": "629f2ba7fe42a5b76da1d69efc49c42f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}}, {"rule": 2, "type": "equivalent", "target": "7fd00656eb3166d11d40b31d0a701cde", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}}, {"rule": 2, "type": "equivalent", "target": "93194ee05134f259b2e143780f4fd441", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fd00656eb3166d11d40b31d0a701cde", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "减少已收集大量查询输出后收到服务器错误时 libpq 的内存消耗", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}, "url": "/docs/compare/?release=10.4#10.4-4e156db7f4daad1c", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "629f2ba7fe42a5b76da1d69efc49c42f", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}, "url": "/docs/compare/?release=9.5.13#9.5.13-87cad5659cbd6302", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "93194ee05134f259b2e143780f4fd441", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}, "url": "/docs/compare/?release=9.4.18#9.4.18-87cad5659cbd6302", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "2e2e30d4f45969ba61c1eae7a82d4a2f", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ee45378f3c6b3c086ad2ba13f134eaf2fded2d377b6f9d8bef976b79920ce308"}, "url": "/docs/compare/?release=9.3.23#9.3.23-87cad5659cbd6302", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-1a219e20bfead561", "cves": [], "html": "<p>修复 <span>ecpg</span> 中的双重释放崩溃（Patrick Krecker、Jeevan Ladhe）</p>", "text": "修复 ecpg 中的双重释放崩溃（Patrick Krecker、Jeevan Ladhe）", "title": "修复 ecpg 中的双重释放崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "e72655c1a8aec6ab93b05f63e8d3a332c0e8808ca93df5cf08d0d17a79095ca5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix double-free crashes in ecpg (Patrick Krecker, Jeevan Ladhe)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/031", "db_id": "ca20789dd1f6eb8145ffe8a4f7dc0023", "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214", "relations": [{"rule": 2, "type": "equivalent", "target": "159b1c65a03eae282bbd2bae744da93b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}}, {"rule": 2, "type": "equivalent", "target": "7c6cac4a57b4ffe489adb9d1f1a4fe93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}}, {"rule": 2, "type": "equivalent", "target": "bb37def1d3ffbdb16f5423882ee284aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}}, {"rule": 2, "type": "equivalent", "target": "cd90ef8d70cdc0271c0e79bedcfd2dab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bb37def1d3ffbdb16f5423882ee284aa", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 ecpg 中重复释放引发的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}, "url": "/docs/compare/?release=10.4#10.4-87f745f301bd2233", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "7c6cac4a57b4ffe489adb9d1f1a4fe93", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 ecpg 中的双重释放崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}, "url": "/docs/compare/?release=9.5.13#9.5.13-1a219e20bfead561", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "159b1c65a03eae282bbd2bae744da93b", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 ecpg 中的双重释放崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}, "url": "/docs/compare/?release=9.4.18#9.4.18-1a219e20bfead561", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "cd90ef8d70cdc0271c0e79bedcfd2dab", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复 ecpg 中的双重释放崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6465908dd7596f242150881ffc742caee3fd0439bee866f9ee28e11ba1348214"}, "url": "/docs/compare/?release=9.3.23#9.3.23-1a219e20bfead561", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-b75b0c429c64455d", "cves": [], "html": "<p>修复 <span>ecpg</span> 在 MSVC 构建中正确处理 <code>long long int</code> 变量（Michael Meskes、Andrew Gierth）</p>", "text": "修复 ecpg 在 MSVC 构建中正确处理 long long int 变量（Michael Meskes、Andrew Gierth）", "title": "修复 ecpg 在 MSVC 构建中正确处理 long long int 变量", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "3a6845bfaa8ed032a633e1972bfcedcb4428213aa3fffd03f9644c0bf070a48f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg to handle long long int variables correctly in MSVC builds (Michael Meskes, Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/032", "db_id": "d18f2c181c8331b1b400398ab6b42c29", "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6", "relations": [{"rule": 2, "type": "equivalent", "target": "194d09c49132cfa28077c392a69ced5b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}}, {"rule": 2, "type": "equivalent", "target": "959c04fbac5a9ce1540e3a3c941bb0d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}}, {"rule": 2, "type": "equivalent", "target": "b84680c11f9ad876ed9801ec7a9e50eb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}}, {"rule": 2, "type": "equivalent", "target": "d3d056491c2eb1de16daf122bc461cb3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b84680c11f9ad876ed9801ec7a9e50eb", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 ecpg，使其在 MSVC 构建中正确处理 long long int 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}, "url": "/docs/compare/?release=10.4#10.4-007b42221bce78e3", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "194d09c49132cfa28077c392a69ced5b", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 ecpg 在 MSVC 构建中正确处理 long long int 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}, "url": "/docs/compare/?release=9.5.13#9.5.13-b75b0c429c64455d", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "959c04fbac5a9ce1540e3a3c941bb0d5", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 ecpg 在 MSVC 构建中正确处理 long long int 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}, "url": "/docs/compare/?release=9.4.18#9.4.18-b75b0c429c64455d", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "d3d056491c2eb1de16daf122bc461cb3", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复 ecpg 在 MSVC 构建中正确处理 long long int 变量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "54b461d4af0c113d1b77ed4d9f923e7764adb7d9d1cb0f9a16b96f9b5f1dbac6"}, "url": "/docs/compare/?release=9.3.23#9.3.23-b75b0c429c64455d", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-306f32b2f38c0bb1", "cves": [], "html": "<p>修复转储中列表值 GUC 变量值的错误引号（Michael Paquier、Tom Lane）</p>\n<p><code>local_preload_libraries</code>、<code>session_preload_libraries</code>、<code>shared_preload_libraries</code> 和 <code>temp_tablespaces</code> 变量在 <span>pg_dump</span> 输出中没有正确加引号。如果这些变量的设置出现在 <code>CREATE FUNCTION ... SET</code> 或 <code>ALTER DATABASE/ROLE ... SET</code> 子句中，这会导致问题。</p>", "text": "修复转储中列表值 GUC 变量值的错误引号（Michael Paquier、Tom Lane） local_preload_libraries、session_preload_libraries、shared_preload_libraries 和 temp_tablespaces 变量在 pg_dump 输出中没有正确加引号。如果这些变量的设置出现在 CREATE FUNCTION ... SET 或 ALTER DATABASE/ROLE ... SET 子句中，这会导致问题。", "title": "修复转储中列表值 GUC 变量值的错误引号", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "e5dbd445c92ac1174882e540ceea5d52de7621e6b0c2f45903443fc709813424", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix mis-quoting of values for list-valued GUC variables in dumps (Michael Paquier, Tom Lane) The local_preload_libraries, session_preload_libraries, shared_preload_libraries, and temp_tablespaces variables were not correctly quoted in pg_dump output. This would cause problems if settings for these variables appeared in CREATE FUNCTION ... SET or ALTER DATABASE/ROLE ... SET clauses.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/033", "db_id": "749eef6a8625564b60808c33fbf43cdb", "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a", "relations": [{"rule": 2, "type": "equivalent", "target": "064841bc3fa7e083d2bfa3086a3aed02", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}}, {"rule": 2, "type": "equivalent", "target": "8ad311f47bc62ac7d78638203bbff004", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}}, {"rule": 2, "type": "equivalent", "target": "b6b812536ccecbcc7bb8b23c8c49a53e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}}, {"rule": 2, "type": "equivalent", "target": "de2bab69cea68ac0568fcd06178a4d74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b6b812536ccecbcc7bb8b23c8c49a53e", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复转储中列表值 GUC 变量的值引用不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}, "url": "/docs/compare/?release=10.4#10.4-3319cfce1d57e55a", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "de2bab69cea68ac0568fcd06178a4d74", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}, "url": "/docs/compare/?release=9.5.13#9.5.13-306f32b2f38c0bb1", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "064841bc3fa7e083d2bfa3086a3aed02", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}, "url": "/docs/compare/?release=9.4.18#9.4.18-306f32b2f38c0bb1", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "8ad311f47bc62ac7d78638203bbff004", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复转储中列表值 GUC 变量值的错误引号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "facaf7b5caa7d3fe8c0ba335d3cac1bd92504392178f2c9b85a0491ad2288a8a"}, "url": "/docs/compare/?release=9.3.23#9.3.23-306f32b2f38c0bb1", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-f44b0512089040d4", "cves": [], "html": "<p>修复 <span>pg_recvlogical</span> 对 v10 之前的 <span>PostgreSQL</span> 服务器不失败的问题（Michael Paquier）</p>\n<p>此前的一次修复使 <span>pg_recvlogical</span> 不论服务器版本都发出一条命令，但它只应对 v10 及之后的服务器发出。</p>", "text": "修复 pg_recvlogical 对 v10 之前的 PostgreSQL 服务器不失败的问题（Michael Paquier） 此前的一次修复使 pg_recvlogical 不论服务器版本都发出一条命令，但它只应对 v10 及之后的服务器发出。", "title": "修复 pg_recvlogical 对 v10 之前的 PostgreSQL 服务器不失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "bb63a0319c65f6fba7924907318e6b064d3ce8142f9dfa9070e2aab2bbe29558", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_recvlogical to not fail against pre-v10 PostgreSQL servers (Michael Paquier) A previous fix caused pg_recvlogical to issue a command regardless of server version, but it should only be issued to v10 and later servers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/034", "db_id": "0440be8fe69545fdda3d0a01868a1801", "patch_ids": [], "statement_hash": "c716a7e497f76a8db30692f10bb32810d56aa2cda4e87c95f139ae48ebee3369", "relations": [{"rule": 2, "type": "equivalent", "target": "55cb57b038e68ea6b0b8d7e11a0cafc7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c716a7e497f76a8db30692f10bb32810d56aa2cda4e87c95f139ae48ebee3369"}}, {"rule": 2, "type": "equivalent", "target": "b8cf863de5c67f4abba5f0e00e1a6fdd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c716a7e497f76a8db30692f10bb32810d56aa2cda4e87c95f139ae48ebee3369"}}, {"rule": 2, "type": "equivalent", "target": "f16ab393fa01f02407f84a89b30117bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c716a7e497f76a8db30692f10bb32810d56aa2cda4e87c95f139ae48ebee3369"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "55cb57b038e68ea6b0b8d7e11a0cafc7", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 pg_recvlogical，使其连接到 v10 之前的 PostgreSQL 服务器时不会失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c716a7e497f76a8db30692f10bb32810d56aa2cda4e87c95f139ae48ebee3369"}, "url": "/docs/compare/?release=10.4#10.4-ba3b784248f753d6", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "f16ab393fa01f02407f84a89b30117bb", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 pg_recvlogical 对 v10 之前的 PostgreSQL 服务器不失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c716a7e497f76a8db30692f10bb32810d56aa2cda4e87c95f139ae48ebee3369"}, "url": "/docs/compare/?release=9.5.13#9.5.13-f44b0512089040d4", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "b8cf863de5c67f4abba5f0e00e1a6fdd", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 pg_recvlogical 对 v10 之前的 PostgreSQL 服务器不失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c716a7e497f76a8db30692f10bb32810d56aa2cda4e87c95f139ae48ebee3369"}, "url": "/docs/compare/?release=9.4.18#9.4.18-f44b0512089040d4", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}]}, {"id": "9.6.9-24a048a24b3a80cd", "cves": [], "html": "<p>确保 <span>pg_rewind</span> 删除目标服务器上在运行期间从源服务器上删除的文件（Takayuki Tsunakawa）</p>\n<p>不这样做可能导致目标上的数据不一致，特别是当相关文件是 WAL 段时。</p>", "text": "确保 pg_rewind 删除目标服务器上在运行期间从源服务器上删除的文件（Takayuki Tsunakawa） 不这样做可能导致目标上的数据不一致，特别是当相关文件是 WAL 段时。", "title": "确保 pg_rewind 删除目标服务器上在运行期间从源服务器上删除的文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "13b352c7cd621dacf22bd0bca4ebf42d03d4b8ca93e190889f502d290fc4fd1f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that pg_rewind deletes files on the target server if they are deleted from the source server during the run (Takayuki Tsunakawa) Failure to do this could result in data inconsistency on the target, particularly if the file in question is a WAL segment.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/035", "db_id": "f3f2b75fd8ee3ce46c63fc0ed4eb5daf", "patch_ids": [], "statement_hash": "47b08c66475edd72563b8c327b1a85cbdeaea10dba7f72de51d48ed24c65ad87", "relations": [{"rule": 2, "type": "equivalent", "target": "63ef77e71621c5b56849f0a0ab070f0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47b08c66475edd72563b8c327b1a85cbdeaea10dba7f72de51d48ed24c65ad87"}}, {"rule": 2, "type": "equivalent", "target": "b3524dc578645acbd0fb38efdfced2af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47b08c66475edd72563b8c327b1a85cbdeaea10dba7f72de51d48ed24c65ad87"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b3524dc578645acbd0fb38efdfced2af", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "确保 pg_rewind 在运行期间源服务器删除文件时，也删除目标服务器上的这些文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47b08c66475edd72563b8c327b1a85cbdeaea10dba7f72de51d48ed24c65ad87"}, "url": "/docs/compare/?release=10.4#10.4-0dd3aff18d58835a", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "63ef77e71621c5b56849f0a0ab070f0f", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "确保 pg_rewind 删除目标服务器上在运行期间从源服务器上删除的文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47b08c66475edd72563b8c327b1a85cbdeaea10dba7f72de51d48ed24c65ad87"}, "url": "/docs/compare/?release=9.5.13#9.5.13-24a048a24b3a80cd", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}]}, {"id": "9.6.9-2296b3b1c66da857", "cves": [], "html": "<p>修复 <span>pg_rewind</span> 正确处理非默认表空间中的表（Takayuki Tsunakawa）</p>", "text": "修复 pg_rewind 正确处理非默认表空间中的表（Takayuki Tsunakawa）", "title": "修复 pg_rewind 正确处理非默认表空间中的表", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "9fe7204d2fbc152cf944274f2367410c256786dfe3ba5198d8491e07fd6aab0d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_rewind to handle tables in non-default tablespaces correctly (Takayuki Tsunakawa)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/036", "db_id": "42143c0be482380ba7422d02bdf4b093", "patch_ids": [], "statement_hash": "932daf9e6b2f777411f62b04968cac85e0cc105ef415a5d7903dd503256a7785", "relations": [{"rule": 2, "type": "equivalent", "target": "f4331bc1623a254caab99493f629b0bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "932daf9e6b2f777411f62b04968cac85e0cc105ef415a5d7903dd503256a7785"}}, {"rule": 2, "type": "equivalent", "target": "fed34683425f21d3357383e253a5687d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "932daf9e6b2f777411f62b04968cac85e0cc105ef415a5d7903dd503256a7785"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f4331bc1623a254caab99493f629b0bb", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 pg_rewind，使其正确处理非默认表空间中的表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "932daf9e6b2f777411f62b04968cac85e0cc105ef415a5d7903dd503256a7785"}, "url": "/docs/compare/?release=10.4#10.4-ca7acdcd97ff17b0", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "fed34683425f21d3357383e253a5687d", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 pg_rewind 正确处理非默认表空间中的表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "932daf9e6b2f777411f62b04968cac85e0cc105ef415a5d7903dd503256a7785"}, "url": "/docs/compare/?release=9.5.13#9.5.13-2296b3b1c66da857", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}]}, {"id": "9.6.9-529b2ac348c7a206", "cves": [], "html": "<p>修复 <span>PL/pgSQL</span> 整数 <code>FOR</code> 循环中的溢出处理（Tom Lane）</p>\n<p>原来的编码在一些非 gcc 编译器上未能检测到循环变量的溢出，导致无限循环。</p>", "text": "修复 PL/pgSQL 整数 FOR 循环中的溢出处理（Tom Lane） 原来的编码在一些非 gcc 编译器上未能检测到循环变量的溢出，导致无限循环。", "title": "修复 PL/pgSQL 整数 FOR 循环中的溢出处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "efdbf6bd0ed4b310c6a078ceaf59be49d06a793dc47122dcf35698220f77e08c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix overflow handling in PL/pgSQL integer FOR loops (Tom Lane) The previous coding failed to detect overflow of the loop variable on some non-gcc compilers, leading to an infinite loop.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/037", "db_id": "3cc06ac8b9c606122033c3c3c23e3aae", "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f", "relations": [{"rule": 2, "type": "equivalent", "target": "96f35c267ed059265a5bd3db3e0992bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}}, {"rule": 2, "type": "equivalent", "target": "eb6e1fc684cee262048ebc8962c28dc9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}}, {"rule": 2, "type": "equivalent", "target": "f450345e6832e0dd2c5a1b3a45c6ac38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}}, {"rule": 2, "type": "equivalent", "target": "fe4e9cda6c02ace229e826230e1d5be7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f450345e6832e0dd2c5a1b3a45c6ac38", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复 PL/pgSQL 整数 FOR 循环的溢出处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}, "url": "/docs/compare/?release=10.4#10.4-54f1d4fb867b1af6", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "fe4e9cda6c02ace229e826230e1d5be7", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "修复 PL/pgSQL 整数 FOR 循环中的溢出处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}, "url": "/docs/compare/?release=9.5.13#9.5.13-529b2ac348c7a206", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "eb6e1fc684cee262048ebc8962c28dc9", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "修复 PL/pgSQL 整数 FOR 循环中的溢出处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}, "url": "/docs/compare/?release=9.4.18#9.4.18-529b2ac348c7a206", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "96f35c267ed059265a5bd3db3e0992bf", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "修复 PL/pgSQL 整数 FOR 循环中的溢出处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0a4ef063cc03701150ad1f4b3f3bf285a431381585df071d65872a7709d5492f"}, "url": "/docs/compare/?release=9.3.23#9.3.23-529b2ac348c7a206", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-d8ae8f462ec2ac64", "cves": [], "html": "<p>调整 <span>PL/Python</span> 回归测试在 Python 3.7 下通过（Peter Eisentraut）</p>", "text": "调整 PL/Python 回归测试在 Python 3.7 下通过（Peter Eisentraut）", "title": "调整 PL/Python 回归测试在 Python 3.7 下通过", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "f1967ed6bf02290cd209ca84016395618daa99c78afae9520577060299528e8e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Adjust PL/Python regression tests to pass under Python 3.7 (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/038", "db_id": "164add571e0be8b919d0c5b3da2daead", "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235", "relations": [{"rule": 2, "type": "equivalent", "target": "092a5c903e18a218cb0e3d07c1ddfa58", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}}, {"rule": 2, "type": "equivalent", "target": "5aab5e26643cc2e13c498816801dc7bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}}, {"rule": 2, "type": "equivalent", "target": "b0c08871487406ad55fa03671c7c93db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}}, {"rule": 2, "type": "equivalent", "target": "f6ba738d03ea0144cae827cb325f389e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f6ba738d03ea0144cae827cb325f389e", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "调整 PL/Python 回归测试，使其在 Python 3.7 下通过", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}, "url": "/docs/compare/?release=10.4#10.4-ff8b0ae87fbcb435", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "092a5c903e18a218cb0e3d07c1ddfa58", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "调整 PL/Python 回归测试在 Python 3.7 下通过", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}, "url": "/docs/compare/?release=9.5.13#9.5.13-d8ae8f462ec2ac64", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "b0c08871487406ad55fa03671c7c93db", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "调整 PL/Python 回归测试在 Python 3.7 下通过", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}, "url": "/docs/compare/?release=9.4.18#9.4.18-d8ae8f462ec2ac64", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "5aab5e26643cc2e13c498816801dc7bf", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "调整 PL/Python 回归测试在 Python 3.7 下通过", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "780cda6aa19cce3f7e34d381505d0cf4d3e5d79f0f57a64b19d5c54ad437e235"}, "url": "/docs/compare/?release=9.3.23#9.3.23-d8ae8f462ec2ac64", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-c664b797cc26ff0d", "cves": [], "html": "<p>支持用 Python 3 和 MSVC 构建时测试 <span>PL/Python</span> 及相关模块（Andrew Dunstan）</p>", "text": "支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块（Andrew Dunstan）", "title": "支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "36bc63756c7dac7afd09cf86f1bc04af5890db529471ee6f52c5a7bd70686e11", "section_path": ["变更"], "commit_groups": [], "identity_text": "Support testing PL/Python and related modules when building with Python 3 and MSVC (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/039", "db_id": "e0c74adb069c3d08a3e6b9c95c9f695e", "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c", "relations": [{"rule": 2, "type": "equivalent", "target": "67249569a8f02ab6d5b7fda603dafabe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}}, {"rule": 2, "type": "equivalent", "target": "b861e1fba741bc04dc0960df73737ae4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}}, {"rule": 2, "type": "equivalent", "target": "bbb1df0c4d80a4d41956812f4c8d0341", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}}, {"rule": 2, "type": "equivalent", "target": "e72aa8d3414b4f61eb5f961a40796c82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "67249569a8f02ab6d5b7fda603dafabe", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "支持在使用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}, "url": "/docs/compare/?release=10.4#10.4-615183650081353c", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "e72aa8d3414b4f61eb5f961a40796c82", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}, "url": "/docs/compare/?release=9.5.13#9.5.13-c664b797cc26ff0d", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "bbb1df0c4d80a4d41956812f4c8d0341", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}, "url": "/docs/compare/?release=9.4.18#9.4.18-c664b797cc26ff0d", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "b861e1fba741bc04dc0960df73737ae4", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5634bb83ea20c4ad2d8a041c709d9c2b0786277710bfef1dfcfa50b8db46482c"}, "url": "/docs/compare/?release=9.3.23#9.3.23-c664b797cc26ff0d", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-e9ff8d13f07f4606", "cves": [], "html": "<p>修复 <code>contrib/bloom</code> 索引初始构建中的错误（Tomas Vondra、Tom Lane）</p>\n<p>修复索引可能遗漏表最后一个元组的问题。正确计数索引元组数，以防它是部分索引。</p>", "text": "修复 contrib/bloom 索引初始构建中的错误（Tomas Vondra、Tom Lane） 修复索引可能遗漏表最后一个元组的问题。正确计数索引元组数，以防它是部分索引。", "title": "修复 contrib/bloom 索引初始构建中的错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "ce3528efb591c2485409ee50b5b6fc5fe81f57f6e2f39e157e9c5db37909d519", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix errors in initial build of contrib/bloom indexes (Tomas Vondra, Tom Lane) Fix possible omission of the table's last tuple from the index. Count the number of index tuples correctly, in case it is a partial index.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/040", "db_id": "7c8059a665605976c3ad67c39d56a955", "patch_ids": [], "statement_hash": "d31f8239fd7adb90c80f8352ee81fd414db1869f5f615a2b908608d07ea18ec8", "relations": [{"rule": 2, "type": "equivalent", "target": "b313f995f2a654b488f9b627a1a12bb8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d31f8239fd7adb90c80f8352ee81fd414db1869f5f615a2b908608d07ea18ec8"}}], "version": "9.6.9", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b313f995f2a654b488f9b627a1a12bb8", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "修复首次构建 contrib/bloom 索引时的错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d31f8239fd7adb90c80f8352ee81fd414db1869f5f615a2b908608d07ea18ec8"}, "url": "/docs/compare/?release=10.4#10.4-689aafb272c7365f", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}]}, {"id": "9.6.9-26eff212b40fd4df", "cves": [], "html": "<p>重命名内部 <code>b64_encode</code> 和 <code>b64_decode</code> 函数，避免与 Solaris 11.4 内置函数冲突（Rainer Orth）</p>", "text": "重命名内部 b64_encode 和 b64_decode 函数，避免与 Solaris 11.4 内置函数冲突（Rainer Orth）", "title": "重命名内部 b64_encode 和 b64_decode 函数，避免与 Solaris 11.4 内置函数冲突", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "bc33b0a1d0bbf813c308c871a5b6c87913334027924a8653e68f07803ae88e02", "section_path": ["变更"], "commit_groups": [], "identity_text": "Rename internal b64_encode and b64_decode functions to avoid conflict with Solaris 11.4 built-in functions (Rainer Orth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/041", "db_id": "4ad3cf7374fe1c4733020237eb54702e", "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c", "relations": [{"rule": 2, "type": "equivalent", "target": "06b9ed0200a03897f6a65af4cb9e00ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}}, {"rule": 2, "type": "equivalent", "target": "54f9a13e02ec87667d4e9b57e8db3799", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}}, {"rule": 2, "type": "equivalent", "target": "7540f3603393aeae040a4659ba200e0c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}}, {"rule": 2, "type": "equivalent", "target": "77b02662e7b58dcfdfd84bea5cf2e418", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7540f3603393aeae040a4659ba200e0c", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "重命名内部函数 b64_encode 和 b64_decode，避免与 Solaris 11.4 的内置函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}, "url": "/docs/compare/?release=10.4#10.4-d1935009b2403fa7", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "06b9ed0200a03897f6a65af4cb9e00ea", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "重命名内部 b64_encode 和 b64_decode 函数，避免与 Solaris 11.4 内置函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}, "url": "/docs/compare/?release=9.5.13#9.5.13-26eff212b40fd4df", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "54f9a13e02ec87667d4e9b57e8db3799", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "重命名内部 b64_encode 和 b64_decode 函数，避免与 Solaris 11.4 内置函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}, "url": "/docs/compare/?release=9.4.18#9.4.18-26eff212b40fd4df", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "77b02662e7b58dcfdfd84bea5cf2e418", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "重命名内部 b64_encode 和 b64_decode 函数，避免与 Solaris 11.4 内置函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ccdc115d4c7c4a9b335673b20b16a2b15c333f987124bf1d81085fa184d5388c"}, "url": "/docs/compare/?release=9.3.23#9.3.23-26eff212b40fd4df", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-873e63e8cc1f19cc", "cves": [], "html": "<p>把我们的时区库副本与 IANA tzcode 版本 2018e 同步（Tom Lane）</p>\n<p>这修复了 <span>zic</span> 时区数据编译器应对负夏令时偏移的能力。虽然 <span>PostgreSQL</span> 项目不会立即发布这种时区数据，但 <span>zic</span> 可能被用于直接从 IANA 获得的时区数据，因此现在更新 <span>zic</span> 是审慎的。</p>", "text": "把我们的时区库副本与 IANA tzcode 版本 2018e 同步（Tom Lane） 这修复了 zic 时区数据编译器应对负夏令时偏移的能力。虽然 PostgreSQL 项目不会立即发布这种时区数据，但 zic 可能被用于直接从 IANA 获得的时区数据，因此现在更新 zic 是审慎的。", "title": "把我们的时区库副本与 IANA tzcode 版本 2018e 同步", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "0f7c8185bea59aeddd3e6e0fccb83722a15d1c0954f51cfa65a9a5f3457becc0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Sync our copy of the timezone library with IANA tzcode release 2018e (Tom Lane) This fixes the zic timezone data compiler to cope with negative daylight-savings offsets. While the PostgreSQL project will not immediately ship such timezone data, zic might be used with timezone data obtained directly from IANA, so it seems prudent to update zic now.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/042", "db_id": "ad2a1d2d86c8ebbe87d1da7a8cd6341a", "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224", "relations": [{"rule": 2, "type": "equivalent", "target": "0cc1900bec6f69ad0bba2717f75f98fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}}, {"rule": 2, "type": "equivalent", "target": "18a599de7bec16fd8a0238f0fda5a7f4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}}, {"rule": 2, "type": "equivalent", "target": "578af37ef74ed8fc4e94dc6d8da39545", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}}, {"rule": 2, "type": "equivalent", "target": "95f2feddf6ec11ef3108ac02a7a07d65", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0cc1900bec6f69ad0bba2717f75f98fc", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "将所用时区库同步到 IANA tzcode 2018e 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}, "url": "/docs/compare/?release=10.4#10.4-468a46698b9cfc72", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "578af37ef74ed8fc4e94dc6d8da39545", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "把我们的时区库副本与 IANA tzcode 版本 2018e 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}, "url": "/docs/compare/?release=9.5.13#9.5.13-873e63e8cc1f19cc", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "18a599de7bec16fd8a0238f0fda5a7f4", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "把我们的时区库副本与 IANA tzcode 版本 2018e 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}, "url": "/docs/compare/?release=9.4.18#9.4.18-873e63e8cc1f19cc", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "95f2feddf6ec11ef3108ac02a7a07d65", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "把我们的时区库副本与 IANA tzcode 版本 2018e 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b468918eca3475825fe4c623ae5493359c6550f7d2a598bdecc14068d7d4c224"}, "url": "/docs/compare/?release=9.3.23#9.3.23-873e63e8cc1f19cc", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}, {"id": "9.6.9-b89a51d15b4feea8", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。</p>", "text": "更新时区数据文件到 tzdata 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。", "title": "更新时区数据文件到 tzdata 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.9/#id-1.11.6.20.5", "source_hash": "7dc2a4b21875c233d9647ee823435f1c34799c40c292f359974a85ad1b1e8322", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2018d for DST law changes in Palestine and Antarctica (Casey Station), plus historical corrections for Portugal and its colonies, as well as Enderbury, Jamaica, Turks & Caicos Islands, and Uruguay.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.9/changes/043", "db_id": "19c596e1b4b3f3be560f47d5d1f241f2", "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c", "relations": [{"rule": 2, "type": "equivalent", "target": "15e000d884ef74d4cb086fd21b0fd5a7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}}, {"rule": 2, "type": "equivalent", "target": "634fe596a9e43c164d6ac3eb53037661", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}}, {"rule": 2, "type": "equivalent", "target": "7dc8ddc7c7abdcbec76b5a5d16b5f3d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}}, {"rule": 2, "type": "equivalent", "target": "daa3f8bca1c58eb91ab08201f80cebfa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}}], "version": "9.6.9", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7dc8ddc7c7abdcbec76b5a5d16b5f3d5", "kind": "equivalent", "version": "10.4", "label": "10.4", "title": "将时区数据文件更新到 tzdata 2018d 版，以反映巴勒斯坦和南极洲（凯西站）的夏令时法规变更，并修正葡萄牙及其殖民地、恩德伯里岛、牙买加、特克斯 & 凯科斯群岛和乌拉圭的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}, "url": "/docs/compare/?release=10.4#10.4-f02439962d1fec18", "source_url": "/docs/release/10.4/#id-1.11.6.24.5"}, {"db_id": "15e000d884ef74d4cb086fd21b0fd5a7", "kind": "equivalent", "version": "9.5.13", "label": "9.5.13", "title": "更新时区数据文件到 tzdata 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}, "url": "/docs/compare/?release=9.5.13#9.5.13-b89a51d15b4feea8", "source_url": "/docs/release/9.5.13/#id-1.11.6.17.5"}, {"db_id": "634fe596a9e43c164d6ac3eb53037661", "kind": "equivalent", "version": "9.4.18", "label": "9.4.18", "title": "更新时区数据文件到 tzdata 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}, "url": "/docs/compare/?release=9.4.18#9.4.18-b89a51d15b4feea8", "source_url": "/docs/release/9.4.18/#id-1.11.6.13.5"}, {"db_id": "daa3f8bca1c58eb91ab08201f80cebfa", "kind": "equivalent", "version": "9.3.23", "label": "9.3.23", "title": "更新时区数据文件到 tzdata 版本 2018d，涉及巴勒斯坦和南极洲（凯西站）的夏令时法规变更，以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daaa97fbe432facdb0e4bdf124621a21c9254d2f2c8ea69c358da90ab50e9a8c"}, "url": "/docs/compare/?release=9.3.23#9.3.23-b89a51d15b4feea8", "source_url": "/docs/release/9.3.23/#id-1.11.6.7.5"}]}]}, {"date": "2018-03-01", "build": "9.6.8", "major": "9.6", "minor": 8, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.8", "eol_date": "2021-11-11", "date_text": "2018-03-01", "supported": false, "manual_url": "/docs/9.6/release-9-6-8.html", "source_url": "/docs/release/9.6.8/", "entry_count": 8, "placeholder": false, "content_hash": "c05b363b878e7bdbb40bc7feddcc4575c5d4832f39acab15688afb92d196c19d", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 8, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你运行的安装中并非所有用户都相互信任，或者你维护打算在任意场合使用的应用或扩展，强烈建议阅读下面第一条变更日志条目所述的文档更改，并采取适当步骤确保你的安装或代码安全。</p>\n<p>另外，下面第二条变更日志条目所述的更改可能导致索引表达式或物化视图中使用的函数在自动分析期间或从转储重新装载时失败。升级之后，请监控服务器日志中此类问题，并修复受影响的函数。</p>\n<p>另外，如果你是从 9.6.7 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-7.html\" title=\"E.18. 版本 9.6.7\">第 E.18 节</a>。</p>", "compatibility_count": 0, "label": "9.6.8", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3135, "support_days": -1784, "entries": [{"id": "9.6.8-15416513126c15d4", "cves": ["CVE-2018-1058"], "html": "<p>记录如何配置安装和应用以防受其他用户依赖 search_path 的特洛伊木马攻击（Noah Misch）</p>\n<p>使用包含任何可被恶意用户写入的模式的 <code>search_path</code> 设置，会使该用户能够截获查询的控制，然后以被攻击用户的权限运行任意 SQL 代码。虽然可以写出能防范此类劫持的查询，但记法上很繁琐，而且很容易遗漏漏洞。因此，我们现在推荐不把任何不受信任模式放入搜索路径的配置。相关文档见<a href=\"/docs/9.6/ddl-schemas.html#DDL-SCHEMAS-PATTERNS\" title=\"5.8.6. 使用方式\">第 5.8.6 节</a>（面向数据库管理员和用户）、<a href=\"/docs/9.6/libpq.html#LIBPQ-CONNECT\" title=\"32.1. 数据库连接控制函数\">第 32.1 节</a>（面向应用作者）、<a href=\"/docs/9.6/extend-extensions.html#EXTEND-EXTENSIONS-SECURITY\" title=\"36.15.5. 扩展的安全注意事项\">第 36.15.5 节</a>（面向扩展作者）和<a href=\"/docs/9.6/sql-createfunction.html\" title=\"CREATE FUNCTION\"><span>CREATE FUNCTION</span></a>（面向 <code>SECURITY DEFINER</code> 函数的作者）。（CVE-2018-1058）</p>", "text": "记录如何配置安装和应用以防受其他用户依赖 search_path 的特洛伊木马攻击（Noah Misch） 使用包含任何可被恶意用户写入的模式的 search_path 设置，会使该用户能够截获查询的控制，然后以被攻击用户的权限运行任意 SQL 代码。虽然可以写出能防范此类劫持的查询，但记法上很繁琐，而且很容易遗漏漏洞。因此，我们现在推荐不把任何不受信任模式放入搜索路径的配置。相关文档见第 5.8.6 节（面向数据库管理员和用户）、第 32.1 节（面向应用作者）、第 36.15.5 节（面向扩展作者）和CREATE FUNCTION（面向 SECURITY DEFINER 函数的作者）。（CVE-2018-1058）", "title": "记录如何配置安装和应用以防受其他用户依赖 search_path 的特洛伊木马攻击", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5", "source_hash": "9925e62c258a06c8b35fd1f09e3e5a9f92b343ca5cf11fe2272dd8db08685d9a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Document how to configure installations and applications to guard against search-path-dependent trojan-horse attacks from other users (Noah Misch) Using a search_path setting that includes any schemas writable by a hostile user enables that user to capture control of queries and then run arbitrary SQL code with the permissions of the attacked user. While it is possible to write queries that are proof against such hijacking, it is notationally tedious, and it's very easy to overlook holes. Therefore, we now recommend configurations in which no untrusted schemas appear in one's search path. Relevant documentation appears in ddl-schemas-patterns (for database administrators and users), libpq-connect (for application authors), extend-extensions-security (for extension authors), and sql-createfunction (for authors of SECURITY DEFINER functions). (CVE-2018-1058)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.8/changes/001", "db_id": "82073b679da941aa72a8287b38619ba8", "patch_ids": [], "statement_hash": "f4eb8c1812403c7fd9294768855535e0d4d524fd0478356fc9a8531e7c291d62", "relations": [{"rule": 2, "type": "equivalent", "target": "5a21500343ad00e5e00f3021b610a0a9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f4eb8c1812403c7fd9294768855535e0d4d524fd0478356fc9a8531e7c291d62"}}, {"rule": 2, "type": "equivalent", "target": "f34e722728f91f9ee97653e304b9d28b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f4eb8c1812403c7fd9294768855535e0d4d524fd0478356fc9a8531e7c291d62"}}], "version": "9.6.8", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "f34e722728f91f9ee97653e304b9d28b", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "记录如何配置安装和应用程序，以防范其他用户利用搜索路径发起的特洛伊木马攻击", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f4eb8c1812403c7fd9294768855535e0d4d524fd0478356fc9a8531e7c291d62"}, "url": "/docs/compare/?release=10.3#10.3-12464343c3fa6b9c", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "5a21500343ad00e5e00f3021b610a0a9", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "记录如何配置安装和应用以防受其他用户依赖 search_path 的特洛伊木马攻击", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f4eb8c1812403c7fd9294768855535e0d4d524fd0478356fc9a8531e7c291d62"}, "url": "/docs/compare/?release=9.5.12#9.5.12-15416513126c15d4", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}]}, {"id": "9.6.8-5f3c119a2c06181a", "cves": ["CVE-2018-1058"], "html": "<p>避免在 <span>pg_dump</span> 和其他客户端程序中使用不安全的 <code>search_path</code> 设置（Noah Misch、Tom Lane）</p>\n<p><span>pg_dump</span>、<span>pg_upgrade</span>、 <span>vacuumdb</span> 等 <span>PostgreSQL</span> 自带的应用本身也容易受到上一条变更日志条目所述劫持的影响；由于这些应用通常由超级用户运行，它们是特别有吸引力的目标。为使它们无论整个安装是否已被加固都安全，修改它们使其 <code>search_path</code> 设置只包含 <code>pg_catalog</code> 模式。自动清理工作者进程现在也同样如此。</p>\n<p>当用户提供的函数被这些程序间接执行时（例如索引表达式中的用户提供函数），更严格的 <code>search_path</code> 可能导致错误，需要通过调整这些用户提供的函数使其不对被调用时的搜索路径做任何假定来更正。这从来都是良好实践，但现在这是正确行为的必要条件。（CVE-2018-1058）</p>", "text": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置（Noah Misch、Tom Lane） pg_dump、pg_upgrade、 vacuumdb 等 PostgreSQL 自带的应用本身也容易受到上一条变更日志条目所述劫持的影响；由于这些应用通常由超级用户运行，它们是特别有吸引力的目标。为使它们无论整个安装是否已被加固都安全，修改它们使其 search_path 设置只包含 pg_catalog 模式。自动清理工作者进程现在也同样如此。 当用户提供的函数被这些程序间接执行时（例如索引表达式中的用户提供函数），更严格的 search_path 可能导致错误，需要通过调整这些用户提供的函数使其不对被调用时的搜索路径做任何假定来更正。这从来都是良好实践，但现在这是正确行为的必要条件。（CVE-2018-1058）", "title": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5", "source_hash": "086f485051777cfc5575c2811e9fb97623fa278601d1596f843001425d514504", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid use of insecure search_path settings in pg_dump and other client programs (Noah Misch, Tom Lane) pg_dump, pg_upgrade, vacuumdb and other PostgreSQL-provided applications were themselves vulnerable to the type of hijacking described in the previous changelog entry; since these applications are commonly run by superusers, they present particularly attractive targets. To make them secure whether or not the installation as a whole has been secured, modify them to include only the pg_catalog schema in their search_path settings. Autovacuum worker processes now do the same, as well. In cases where user-provided functions are indirectly executed by these programs — for example, user-provided functions in index expressions — the tighter search_path may result in errors, which will need to be corrected by adjusting those user-provided functions to not assume anything about what search path they are invoked under. That has always been good practice, but now it will be necessary for correct behavior. (CVE-2018-1058)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.8/changes/002", "db_id": "285ab0afa4e4e1bda61cb74e401a85e4", "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6", "relations": [{"rule": 2, "type": "equivalent", "target": "07e7c249ed74636cb7ff30cca14583a2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}}, {"rule": 2, "type": "equivalent", "target": "2ec2e0c64c523020ee8bff794b7dc5bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}}, {"rule": 2, "type": "equivalent", "target": "69e724f77f37ca5335e439d572362f89", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}}, {"rule": 2, "type": "equivalent", "target": "9cdc72dacd8957621666de3bc80f94e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}}], "version": "9.6.8", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "9cdc72dacd8957621666de3bc80f94e9", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}, "url": "/docs/compare/?release=10.3#10.3-5f3c119a2c06181a", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "69e724f77f37ca5335e439d572362f89", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}, "url": "/docs/compare/?release=9.5.12#9.5.12-5f3c119a2c06181a", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "2ec2e0c64c523020ee8bff794b7dc5bb", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}, "url": "/docs/compare/?release=9.4.17#9.4.17-5f3c119a2c06181a", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}, {"db_id": "07e7c249ed74636cb7ff30cca14583a2", "kind": "equivalent", "version": "9.3.22", "label": "9.3.22", "title": "避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eb872ee514bdcc8e5a99cee1edd0ab15630d15a4f9d4dc968f51ce88151958c6"}, "url": "/docs/compare/?release=9.3.22#9.3.22-5f3c119a2c06181a", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5"}]}, {"id": "9.6.8-a2a2d10a68caa3ed", "cves": [], "html": "<p>修复子计划中出现 CTE 引用时并发更新重检查的错误行为（Tom Lane）</p>\n<p>如果 CTE（<code>WITH</code> 子句引用）被用于 InitPlan 或 SubPlan，且查询因试图更新或锁定并发更新的行而需要重检查，可能得到错误结果。</p>", "text": "修复子计划中出现 CTE 引用时并发更新重检查的错误行为（Tom Lane） 如果 CTE（WITH 子句引用）被用于 InitPlan 或 SubPlan，且查询因试图更新或锁定并发更新的行而需要重检查，可能得到错误结果。", "title": "修复子计划中出现 CTE 引用时并发更新重检查的错误行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5", "source_hash": "ea87e11868ef81a69cdaf6dfe008350f17f6c533db78ab48522ddccf9f5fd5a5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix misbehavior of concurrent-update rechecks with CTE references appearing in subplans (Tom Lane) If a CTE (WITH clause reference) is used in an InitPlan or SubPlan, and the query requires a recheck due to trying to update or lock a concurrently-updated row, incorrect results could be obtained.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.8/changes/003", "db_id": "9bf393cccf389e1408524d365c537615", "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb", "relations": [{"rule": 2, "type": "equivalent", "target": "4ac3c087eadec6a09af2ac698c7527e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}}, {"rule": 2, "type": "equivalent", "target": "557e981b12d86db91785cdce175221a5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}}, {"rule": 2, "type": "equivalent", "target": "65c2b1f3aa8fcd6277735aeab8756942", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}}, {"rule": 2, "type": "equivalent", "target": "a8daaadc8ea647c9253fa0ea6edcdf0e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}}], "version": "9.6.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "557e981b12d86db91785cdce175221a5", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "修复子计划中存在 CTE 引用时并发更新重新检查的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}, "url": "/docs/compare/?release=10.3#10.3-a872d5a8564edde1", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "4ac3c087eadec6a09af2ac698c7527e8", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "修复子计划中出现 CTE 引用时并发更新重检查的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}, "url": "/docs/compare/?release=9.5.12#9.5.12-a2a2d10a68caa3ed", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "65c2b1f3aa8fcd6277735aeab8756942", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "修复子计划中出现 CTE 引用时并发更新重检查的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}, "url": "/docs/compare/?release=9.4.17#9.4.17-a2a2d10a68caa3ed", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}, {"db_id": "a8daaadc8ea647c9253fa0ea6edcdf0e", "kind": "equivalent", "version": "9.3.22", "label": "9.3.22", "title": "修复子计划中出现 CTE 引用时并发更新重检查的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5432474fe0549d18c17576b865b20cc16bfd43db793e3101d0b2a544761bbacb"}, "url": "/docs/compare/?release=9.3.22#9.3.22-a2a2d10a68caa3ed", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5"}]}, {"id": "9.6.8-179826c81b230b71", "cves": [], "html": "<p>修复外连接中重叠 mergejoin 子句导致的规划器失败（Tom Lane）</p>\n<p>这些错误在边界情况下导致 <span>“<span>left and right pathkeys do not match in mergejoin</span>”</span> 或 <span>“<span>outer pathkeys do not match mergeclauses</span>”</span> 规划器错误。</p>", "text": "修复外连接中重叠 mergejoin 子句导致的规划器失败（Tom Lane） 这些错误在边界情况下导致 “left and right pathkeys do not match in mergejoin” 或 “outer pathkeys do not match mergeclauses” 规划器错误。", "title": "修复外连接中重叠 mergejoin 子句导致的规划器失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5", "source_hash": "d576d7d55645300d80308749ec5b5297bab607c04d0a7531ea6e6004e9534122", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix planner failures with overlapping mergejoin clauses in an outer join (Tom Lane) These mistakes led to left and right pathkeys do not match in mergejoin or outer pathkeys do not match mergeclauses planner errors in corner cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.8/changes/004", "db_id": "9cc2fe244dd7f351eac0b31733b2d757", "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c", "relations": [{"rule": 2, "type": "equivalent", "target": "0246ca748e8808601f2952aaf477bc7d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}}, {"rule": 2, "type": "equivalent", "target": "112e761317a2a41a3ad1e08f6759cb18", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}}, {"rule": 2, "type": "equivalent", "target": "56fa2fc847577a89467780f69c68e5f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}}, {"rule": 2, "type": "equivalent", "target": "9aada7ac4c7520858d32cdd00dd57e1f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}}], "version": "9.6.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0246ca748e8808601f2952aaf477bc7d", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "修复外连接中存在重叠归并连接子句时规划器失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}, "url": "/docs/compare/?release=10.3#10.3-839b6a412f88926e", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "112e761317a2a41a3ad1e08f6759cb18", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "修复外连接中重叠 mergejoin 子句导致的规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}, "url": "/docs/compare/?release=9.5.12#9.5.12-179826c81b230b71", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "56fa2fc847577a89467780f69c68e5f3", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "修复外连接中重叠 mergejoin 子句导致的规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}, "url": "/docs/compare/?release=9.4.17#9.4.17-179826c81b230b71", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}, {"db_id": "9aada7ac4c7520858d32cdd00dd57e1f", "kind": "equivalent", "version": "9.3.22", "label": "9.3.22", "title": "修复外连接中重叠 mergejoin 子句导致的规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d46b6a0d8a8b14ab6d44be2c4975c36de0dcd287333c7ce57b1d6285931eb26c"}, "url": "/docs/compare/?release=9.3.22#9.3.22-179826c81b230b71", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5"}]}, {"id": "9.6.8-2464e26a56508e56", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 未能为物化视图保留 <code>relfrozenxid</code> 的问题（Tom Lane、Andres Freund）</p>\n<p>这一疏漏可能导致升级后物化视图中的数据损坏，表现为 <span>“<span>could not access status of transaction</span>”</span> 或 <span>“<span>found xmin from before relfrozenxid</span>”</span> 错误。很少刷新的物化视图，或只用 <code>REFRESH MATERIALIZED VIEW CONCURRENTLY</code> 维护的物化视图更可能出现问题。</p>\n<p>如果观察到这种损坏，可以通过刷新物化视图（不带 <code>CONCURRENTLY</code>）来修复。</p>", "text": "修复 pg_upgrade 未能为物化视图保留 relfrozenxid 的问题（Tom Lane、Andres Freund） 这一疏漏可能导致升级后物化视图中的数据损坏，表现为 “could not access status of transaction” 或 “found xmin from before relfrozenxid” 错误。很少刷新的物化视图，或只用 REFRESH MATERIALIZED VIEW CONCURRENTLY 维护的物化视图更可能出现问题。 如果观察到这种损坏，可以通过刷新物化视图（不带 CONCURRENTLY）来修复。", "title": "修复 pg_upgrade 未能为物化视图保留 relfrozenxid 的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5", "source_hash": "a5788db0efa33d3edaa7ec50ed7ae54c616e5e97b80ed7cc0b46aec3c6ac57ae", "section_path": ["变更"], "commit_groups": [], "identity_text": "Repair pg_upgrade's failure to preserve relfrozenxid for materialized views (Tom Lane, Andres Freund) This oversight could lead to data corruption in materialized views after an upgrade, manifesting as could not access status of transaction or found xmin from before relfrozenxid errors. The problem would be more likely to occur in seldom-refreshed materialized views, or ones that were maintained only with REFRESH MATERIALIZED VIEW CONCURRENTLY. If such corruption is observed, it can be repaired by refreshing the materialized view (without CONCURRENTLY).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.8/changes/005", "db_id": "e9404b51f387085a208937d5e6a9fffe", "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5", "relations": [{"rule": 2, "type": "equivalent", "target": "267341483bb67f18762263a23a116a9a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}}, {"rule": 2, "type": "equivalent", "target": "6ec91031a9df77ef7dd3930d1b4037a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}}, {"rule": 2, "type": "equivalent", "target": "809e86a4b23d7d03113dae5ef73ab9fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}}, {"rule": 2, "type": "equivalent", "target": "8c7f0090d3efdd2cd57229f28fd5b068", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}}], "version": "9.6.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "809e86a4b23d7d03113dae5ef73ab9fb", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "修复 pg_upgrade 未保留物化视图的 relfrozenxid 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}, "url": "/docs/compare/?release=10.3#10.3-40183e31fae9fef5", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "8c7f0090d3efdd2cd57229f28fd5b068", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "修复 pg_upgrade 未能为物化视图保留 relfrozenxid 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}, "url": "/docs/compare/?release=9.5.12#9.5.12-2464e26a56508e56", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "6ec91031a9df77ef7dd3930d1b4037a6", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "修复 pg_upgrade 未能为物化视图保留 relfrozenxid 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}, "url": "/docs/compare/?release=9.4.17#9.4.17-2464e26a56508e56", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}, {"db_id": "267341483bb67f18762263a23a116a9a", "kind": "equivalent", "version": "9.3.22", "label": "9.3.22", "title": "修复 pg_upgrade 未能为物化视图保留 relfrozenxid 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f3fcc2128fc12d86be3cff82b0890b6675a4699af19d5ae2ade404e1e4da7c5"}, "url": "/docs/compare/?release=9.3.22#9.3.22-2464e26a56508e56", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5"}]}, {"id": "9.6.8-e08582093695d39b", "cves": [], "html": "<p>修复错误 <code>CONTEXT</code> 栈中 PL/Python 函数名的错误报告（Tom Lane）</p>\n<p>嵌套 PL/Python 函数调用（即通过 SPI 查询从另一个 PL/Python 函数到达的调用）中发生的错误会导致栈跟踪把内层函数名显示两次，而不是预期的结果。此外，嵌套 PL/Python <code>DO</code> 块中的错误在某些平台上可能导致空指针解引用崩溃。</p>", "text": "修复错误 CONTEXT 栈中 PL/Python 函数名的错误报告（Tom Lane） 嵌套 PL/Python 函数调用（即通过 SPI 查询从另一个 PL/Python 函数到达的调用）中发生的错误会导致栈跟踪把内层函数名显示两次，而不是预期的结果。此外，嵌套 PL/Python DO 块中的错误在某些平台上可能导致空指针解引用崩溃。", "title": "修复错误 CONTEXT 栈中 PL/Python 函数名的错误报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5", "source_hash": "b98fb22e5635ceae0cb72f14a42fe4bb86ab4cdf751364d3bec56d9ffd67ad1b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect reporting of PL/Python function names in error CONTEXT stacks (Tom Lane) An error occurring within a nested PL/Python function call (that is, one reached via a SPI query from another PL/Python function) would result in a stack trace showing the inner function's name twice, rather than the expected results. Also, an error in a nested PL/Python DO block could result in a null pointer dereference crash on some platforms.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.8/changes/006", "db_id": "641a7d3d3a936660de7b1adcb973d842", "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400", "relations": [{"rule": 2, "type": "equivalent", "target": "8efb22bf1c2808bb7eb3dd918acf092e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}}, {"rule": 2, "type": "equivalent", "target": "8f7222d3e858041c70d5edc267115e70", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}}, {"rule": 2, "type": "equivalent", "target": "e61fc28c486ea88b24d944ad276d95f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}}, {"rule": 2, "type": "equivalent", "target": "ff5ece554dad73d86b0508d20401b0c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}}], "version": "9.6.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8efb22bf1c2808bb7eb3dd918acf092e", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "修复错误 CONTEXT 堆栈中 PL/Python 函数名报告不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}, "url": "/docs/compare/?release=10.3#10.3-08c915c97e67156b", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "ff5ece554dad73d86b0508d20401b0c9", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "修复错误 CONTEXT 栈中 PL/Python 函数名的错误报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}, "url": "/docs/compare/?release=9.5.12#9.5.12-e08582093695d39b", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "e61fc28c486ea88b24d944ad276d95f3", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "修复错误 CONTEXT 栈中 PL/Python 函数名的错误报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}, "url": "/docs/compare/?release=9.4.17#9.4.17-e08582093695d39b", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}, {"db_id": "8f7222d3e858041c70d5edc267115e70", "kind": "equivalent", "version": "9.3.22", "label": "9.3.22", "title": "修复错误 CONTEXT 栈中 PL/Python 函数名的错误报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "95ac95eba01e2ab653ffd472aa6f6ad7b8e9c97aa1910cffde48c739c7051400"}, "url": "/docs/compare/?release=9.3.22#9.3.22-e08582093695d39b", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5"}]}, {"id": "9.6.8-b77c944da95a643c", "cves": [], "html": "<p>允许 <code>contrib/auto_explain</code> 的 <code>log_min_duration</code> 设置范围达到 <code>INT_MAX</code>，即约 24 天而不是 35 分钟（Tom Lane）</p>", "text": "允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX，即约 24 天而不是 35 分钟（Tom Lane）", "title": "允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX，即约 24 天而不是 35 分钟", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5", "source_hash": "509b02f465b3d3ea9db4169a8b4dc37fda747e26b989d429a5a9eb2594487e34", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow contrib/auto_explain's log_min_duration setting to range up to INT_MAX, or about 24 days instead of 35 minutes (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.8/changes/007", "db_id": "3fbe1d14bce68f7ca59bc906345df355", "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4", "relations": [{"rule": 2, "type": "equivalent", "target": "2a43d364e24fe16f64e31371c27a75b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}}, {"rule": 2, "type": "equivalent", "target": "39f018451dfc209d196591c749df6ecf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}}, {"rule": 2, "type": "equivalent", "target": "d8e8bedb3712958c3ebb83d9907fb10b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}}, {"rule": 2, "type": "equivalent", "target": "e539fab6105b8e64c5a0cf584c2f64e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}}], "version": "9.6.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "39f018451dfc209d196591c749df6ecf", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "允许 contrib/auto_explain 的 log_min_duration 设置最大达到 INT_MAX，即约 24 天，而非 35 分钟", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}, "url": "/docs/compare/?release=10.3#10.3-a9f080e9c7d9f1d0", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}, {"db_id": "e539fab6105b8e64c5a0cf584c2f64e5", "kind": "equivalent", "version": "9.5.12", "label": "9.5.12", "title": "允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX，即约 24 天而不是 35 分钟", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}, "url": "/docs/compare/?release=9.5.12#9.5.12-b77c944da95a643c", "source_url": "/docs/release/9.5.12/#id-1.11.6.18.5"}, {"db_id": "d8e8bedb3712958c3ebb83d9907fb10b", "kind": "equivalent", "version": "9.4.17", "label": "9.4.17", "title": "允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX，即约 24 天而不是 35 分钟", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}, "url": "/docs/compare/?release=9.4.17#9.4.17-b77c944da95a643c", "source_url": "/docs/release/9.4.17/#id-1.11.6.14.5"}, {"db_id": "2a43d364e24fe16f64e31371c27a75b4", "kind": "equivalent", "version": "9.3.22", "label": "9.3.22", "title": "允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX，即约 24 天而不是 35 分钟", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaadbfc5806e32dadac7996d8d66d54eae17f09c30b79d8aa2ef206c3bc6cfc4"}, "url": "/docs/compare/?release=9.3.22#9.3.22-b77c944da95a643c", "source_url": "/docs/release/9.3.22/#id-1.11.6.8.5"}]}, {"id": "9.6.8-8b5ce35665dd0bda", "cves": [], "html": "<p>把若干 GUC 变量标记为 <code>PGDLLIMPORT</code>，以便于把扩展模块移植到 Windows（Metin Doslu）</p>", "text": "把若干 GUC 变量标记为 PGDLLIMPORT，以便于把扩展模块移植到 Windows（Metin Doslu）", "title": "把若干 GUC 变量标记为 PGDLLIMPORT，以便于把扩展模块移植到 Windows", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.8/#id-1.11.6.21.5", "source_hash": "4b99625145b923339461f2e24b6da63efcd517a1b07b1bc72486e2c8c8fc8db1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Mark assorted GUC variables as PGDLLIMPORT, to ease porting extension modules to Windows (Metin Doslu)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.8/changes/008", "db_id": "c0571cdf8adad607d1dc42bf43979318", "patch_ids": [], "statement_hash": "fbfd62b69c2a2f2c68aaf7ab8a4791729ed4d5433680a56bbc2482e797ea5b4a", "relations": [{"rule": 2, "type": "equivalent", "target": "7c95bb8479877165a6b12af8a0330d6c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbfd62b69c2a2f2c68aaf7ab8a4791729ed4d5433680a56bbc2482e797ea5b4a"}}], "version": "9.6.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7c95bb8479877165a6b12af8a0330d6c", "kind": "equivalent", "version": "10.3", "label": "10.3", "title": "将多个 GUC 变量标记为 PGDLLIMPORT，以便将扩展模块移植到 Windows", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fbfd62b69c2a2f2c68aaf7ab8a4791729ed4d5433680a56bbc2482e797ea5b4a"}, "url": "/docs/compare/?release=10.3#10.3-a69652ba806045b1", "source_url": "/docs/release/10.3/#id-1.11.6.25.5"}]}]}, {"date": "2018-02-08", "build": "9.6.7", "major": "9.6", "minor": 7, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.7", "eol_date": "2021-11-11", "date_text": "2018-02-08", "supported": false, "manual_url": "/docs/9.6/release-9-6-7.html", "source_url": "/docs/release/9.6.7/", "entry_count": 37, "placeholder": false, "content_hash": "5953acedef2de8f46e8dae561f7bd634ce6dae7cfa63a21f198f57b12acd6ade", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 37, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你使用 <code>contrib/cube</code> 的 <code>~&gt;</code> 操作符，请参见下面相关条目。</p>\n<p>另外，如果你是从 9.6.6 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-6.html\" title=\"E.19. 版本 9.6.6\">第 E.19 节</a>。</p>", "compatibility_count": 0, "label": "9.6.7", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3156, "support_days": -1784, "entries": [{"id": "9.6.7-107a7027695be69a", "cves": ["CVE-2018-1053"], "html": "<p>确保 <span>pg_upgrade</span> 创建的所有临时文件对其他用户不可读（Tom Lane、Noah Misch）</p>\n<p><span>pg_upgrade</span> 通常将其临时文件限制为只有调用用户可读写。但如果用户的 <code>umask</code> 设置允许，包含 <code>pg_dumpall -g</code> 输出的临时文件会是组可读或全局可读，甚至可写。在多用户机器的典型用法中，<code>umask</code> 和/或工作目录的权限会足够严格以防止问题；但可能有人在 <span>pg_upgrade</span> 的这一疏漏允许向不友好者泄露数据库密码的场景下使用它。（CVE-2018-1053）</p>", "text": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读（Tom Lane、Noah Misch） pg_upgrade 通常将其临时文件限制为只有调用用户可读写。但如果用户的 umask 设置允许，包含 pg_dumpall -g 输出的临时文件会是组可读或全局可读，甚至可写。在多用户机器的典型用法中，umask 和/或工作目录的权限会足够严格以防止问题；但可能有人在 pg_upgrade 的这一疏漏允许向不友好者泄露数据库密码的场景下使用它。（CVE-2018-1053）", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "021daaebd3ce7bf335e347579188952bd5a5f24eb03e913409c3a6c9379d3d69", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that all temporary files made by pg_upgrade are non-world-readable (Tom Lane, Noah Misch) pg_upgrade normally restricts its temporary files to be readable and writable only by the calling user. But the temporary file containing pg_dumpall -g output would be group- or world-readable, or even writable, if the user's umask setting allows. In typical usage on multi-user machines, the umask and/or the working directory's permissions would be tight enough to prevent problems; but there may be people using pg_upgrade in scenarios where this oversight would permit disclosure of database passwords to unfriendly eyes. (CVE-2018-1053)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/001", "db_id": "502a24d61bdbdddb5ce51397266ec1e3", "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372", "relations": [{"rule": 2, "type": "equivalent", "target": "3e27a2a85656b964f66c860c70248836", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}, {"rule": 2, "type": "equivalent", "target": "83f37cc5a00730f2f6efdc8b47a82ae5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}, {"rule": 2, "type": "equivalent", "target": "a787a63eb7d46a13fb49da1d7154952c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}, {"rule": 2, "type": "equivalent", "target": "fa6f83f05c1fadac3a27a2a9b3013242", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}], "version": "9.6.7", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa6f83f05c1fadac3a27a2a9b3013242", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "确保 pg_upgrade 创建的所有临时文件都不会允许所有用户读取", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=10.2#10.2-ea7c7e256e617d2a", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "3e27a2a85656b964f66c860c70248836", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=9.5.11#9.5.11-107a7027695be69a", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "a787a63eb7d46a13fb49da1d7154952c", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=9.4.16#9.4.16-107a7027695be69a", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "83f37cc5a00730f2f6efdc8b47a82ae5", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=9.3.21#9.3.21-107a7027695be69a", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-ee9c4dbe720c9a4a", "cves": [], "html": "<p>修复对在键共享锁定下被更新的元组的清理（Andres Freund、Álvaro Herrera）</p>\n<p>某些情况下，<code>VACUUM</code> 即使这些元组现在已经死亡也不会移除它们，导致各种数据损坏场景。</p>", "text": "修复对在键共享锁定下被更新的元组的清理（Andres Freund、Álvaro Herrera） 某些情况下，VACUUM 即使这些元组现在已经死亡也不会移除它们，导致各种数据损坏场景。", "title": "修复对在键共享锁定下被更新的元组的清理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "73e84b6632cf99773637b29c40021b5b5d75a976b2e4acd3679a9f2e20abf97a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix vacuuming of tuples that were updated while key-share locked (Andres Freund, Álvaro Herrera) In some cases VACUUM would fail to remove such tuples even though they are now dead, leading to assorted data corruption scenarios.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/002", "db_id": "578e6835f4779011e8832306cd6043a0", "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4", "relations": [{"rule": 2, "type": "equivalent", "target": "2a6b2f9569c99147470015ad187b73cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}, {"rule": 2, "type": "equivalent", "target": "7131bc8c16e7a2bcdc9804fe19434a5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}, {"rule": 2, "type": "equivalent", "target": "f216ffc4af1e2efa4c6cbec02cfda9a9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}, {"rule": 2, "type": "equivalent", "target": "f46cd1a709ac4d44c8b5ef458c63bb01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2a6b2f9569c99147470015ad187b73cd", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复对持有键共享锁期间被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=10.2#10.2-c27385d0da6e0f24", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "7131bc8c16e7a2bcdc9804fe19434a5a", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复对在键共享锁定下被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=9.5.11#9.5.11-ee9c4dbe720c9a4a", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "f46cd1a709ac4d44c8b5ef458c63bb01", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复对在键共享锁定下被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=9.4.16#9.4.16-ee9c4dbe720c9a4a", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "f216ffc4af1e2efa4c6cbec02cfda9a9", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复对在键共享锁定下被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=9.3.21#9.3.21-ee9c4dbe720c9a4a", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-0681a4ec2b9cebb2", "cves": [], "html": "<p>确保 vacuum 总是清理 GIN 索引的未决插入列表（Masahiko Sawada）</p>\n<p>这对确保死索引条目被移除是必要的。原来的代码弄反了，允许 vacuum 在某个其他进程并发运行清理时跳过清理，从而使索引中留下无效条目。</p>", "text": "确保 vacuum 总是清理 GIN 索引的未决插入列表（Masahiko Sawada） 这对确保死索引条目被移除是必要的。原来的代码弄反了，允许 vacuum 在某个其他进程并发运行清理时跳过清理，从而使索引中留下无效条目。", "title": "确保 vacuum 总是清理 GIN 索引的未决插入列表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "8c8c1ac28d34b9a9de72426bb720f5b15c93fd782a12f6cd2ad61893426d52f9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that vacuum will always clean up the pending-insertions list of a GIN index (Masahiko Sawada) This is necessary to ensure that dead index entries get removed. The old code got it backwards, allowing vacuum to skip the cleanup if some other process were running cleanup concurrently, thus risking invalid entries being left behind in the index.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/003", "db_id": "3194dc650475d6976ab52d8f1a97adf3", "patch_ids": [], "statement_hash": "76b4a9828b68ca6c3b82cc1056de5eea5b938a6794b1b4ed051156cad5908aef", "relations": [{"rule": 2, "type": "equivalent", "target": "b052376bfcaef1ae4208dc25fdf5d24e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76b4a9828b68ca6c3b82cc1056de5eea5b938a6794b1b4ed051156cad5908aef"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b052376bfcaef1ae4208dc25fdf5d24e", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "确保清理始终会清理 GIN 索引的待插入列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76b4a9828b68ca6c3b82cc1056de5eea5b938a6794b1b4ed051156cad5908aef"}, "url": "/docs/compare/?release=10.2#10.2-45e1c923006d9fab", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}]}, {"id": "9.6.7-558ce9ee604e2cc5", "cves": [], "html": "<p>修复某些 LSN 获取中不充分的缓冲区锁定（Jacob Champion、Asim Praveen、Ashwin Agrawal）</p>\n<p>这些错误可能导致并发负载下的行为异常。潜在后果尚未完全弄清。</p>", "text": "修复某些 LSN 获取中不充分的缓冲区锁定（Jacob Champion、Asim Praveen、Ashwin Agrawal） 这些错误可能导致并发负载下的行为异常。潜在后果尚未完全弄清。", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "b9f784f1e9e7fd807d5f1e94730ee26a9a2f4a0e38f26aed7cd5704a9ab074b2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix inadequate buffer locking in some LSN fetches (Jacob Champion, Asim Praveen, Ashwin Agrawal) These errors could result in misbehavior under concurrent load. The potential consequences have not been characterized fully.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/004", "db_id": "2d24e732ff8f4bf60445f8ca110160ff", "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5", "relations": [{"rule": 2, "type": "equivalent", "target": "7bb15c94de58df30ec8b8a47c835f471", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}, {"rule": 2, "type": "equivalent", "target": "82385f5d32d884d22eed0db877d748be", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}, {"rule": 2, "type": "equivalent", "target": "c6fdf4a4bb76269450a22fb6669dce9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}, {"rule": 2, "type": "equivalent", "target": "cbe59a3d9acef7ea5d799d47bce471b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "82385f5d32d884d22eed0db877d748be", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复某些 LSN 读取操作中缓冲区加锁不充分的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=10.2#10.2-6f93932d3958da2d", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "c6fdf4a4bb76269450a22fb6669dce9e", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=9.5.11#9.5.11-558ce9ee604e2cc5", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "7bb15c94de58df30ec8b8a47c835f471", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=9.4.16#9.4.16-558ce9ee604e2cc5", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "cbe59a3d9acef7ea5d799d47bce471b6", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=9.3.21#9.3.21-558ce9ee604e2cc5", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-1859f4eeb3e2992d", "cves": [], "html": "<p>修复子查询输出用于 <code>GROUPING SETS</code> 时子查询展平相关情况的错误查询结果（Heikki Linnakangas）</p>", "text": "修复子查询输出用于 GROUPING SETS 时子查询展平相关情况的错误查询结果（Heikki Linnakangas）", "title": "修复子查询输出用于 GROUPING SETS 时子查询展平相关情况的错误查询结果", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "f49414060226a661b896c2320d71b19f6cf72770f400b4b577ec7a053c88cf36", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect query results from cases involving flattening of subqueries whose outputs are used in GROUPING SETS (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/005", "db_id": "1e0db148d19ff96a80e807156fb3b3e5", "patch_ids": [], "statement_hash": "21458917a4d7b5687a9910b6104024d1bff708ab774c45d67dd4119b07fcd080", "relations": [{"rule": 2, "type": "equivalent", "target": "48a53102476b3fb46a92ca6184adc3ba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21458917a4d7b5687a9910b6104024d1bff708ab774c45d67dd4119b07fcd080"}}, {"rule": 2, "type": "equivalent", "target": "5eff949fb375b872424760800cecea1d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21458917a4d7b5687a9910b6104024d1bff708ab774c45d67dd4119b07fcd080"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5eff949fb375b872424760800cecea1d", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复展平输出用于 GROUPING SETS 的子查询时产生不正确查询结果的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21458917a4d7b5687a9910b6104024d1bff708ab774c45d67dd4119b07fcd080"}, "url": "/docs/compare/?release=10.2#10.2-7577be21878be348", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "48a53102476b3fb46a92ca6184adc3ba", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复子查询输出用于 GROUPING SETS 时子查询展平相关情况的错误查询结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21458917a4d7b5687a9910b6104024d1bff708ab774c45d67dd4119b07fcd080"}, "url": "/docs/compare/?release=9.5.11#9.5.11-1859f4eeb3e2992d", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}]}, {"id": "9.6.7-29df6a5b1845e899", "cves": [], "html": "<p>避免与 <code>ALTER TABLE NO INHERIT</code> 并发地从树中移除某个子表时对继承树的查询不必要的失败（Tom Lane）</p>", "text": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败（Tom Lane）", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "f7cdd7b383b17a3cf012a58f7581f08db56919aab250fe8e8d3e4d7f77611fb1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid unnecessary failure in a query on an inheritance tree that occurs concurrently with some child table being removed from the tree by ALTER TABLE NO INHERIT (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/006", "db_id": "af9fa0cdaebba6178e8ef3cee771b2d0", "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725", "relations": [{"rule": 2, "type": "equivalent", "target": "0cc55490249e34237083218340c88c0c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}, {"rule": 2, "type": "equivalent", "target": "12a200b06d9b476c5a0186fd8e184492", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}, {"rule": 2, "type": "equivalent", "target": "1ae9a2ace3d085bedb8f5883b1a43fd9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}, {"rule": 2, "type": "equivalent", "target": "df486aeeee65140082a7b3c49b8ffdb2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "12a200b06d9b476c5a0186fd8e184492", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "避免在查询继承树的同时，某个子表被 ALTER TABLE NO INHERIT 从树中移除时发生不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=10.2#10.2-99172f192afeae3a", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "df486aeeee65140082a7b3c49b8ffdb2", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=9.5.11#9.5.11-29df6a5b1845e899", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "1ae9a2ace3d085bedb8f5883b1a43fd9", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=9.4.16#9.4.16-29df6a5b1845e899", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "0cc55490249e34237083218340c88c0c", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=9.3.21#9.3.21-29df6a5b1845e899", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-7ebbb574b647122d", "cves": [], "html": "<p>修复多个会话运行 <code>CREATE INDEX CONCURRENTLY</code> 时的虚假死锁失败（Jeff Janes）</p>", "text": "修复多个会话运行 CREATE INDEX CONCURRENTLY 时的虚假死锁失败（Jeff Janes）", "title": "修复多个会话运行 CREATE INDEX CONCURRENTLY 时的虚假死锁失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "4a894834f3f70c6908444950c4f48c1ec5f525c1567b725c7bf619fefb4bac77", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix spurious deadlock failures when multiple sessions are running CREATE INDEX CONCURRENTLY (Jeff Janes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/007", "db_id": "7b69a997555b1585a940774080a73459", "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532", "relations": [{"rule": 2, "type": "equivalent", "target": "4212e1f3b3e1916a6ba7fcc40ecd4a40", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}}, {"rule": 2, "type": "equivalent", "target": "598b8ce23eb7e5f07150c5e0eebe750f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}}, {"rule": 2, "type": "equivalent", "target": "e9d4f66d5fafb02f5fa5704380c481b7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4212e1f3b3e1916a6ba7fcc40ecd4a40", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复多个会话运行 CREATE INDEX CONCURRENTLY 时误报死锁的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}, "url": "/docs/compare/?release=10.2#10.2-529c3a77abeb479d", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "598b8ce23eb7e5f07150c5e0eebe750f", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复多个会话运行 CREATE INDEX CONCURRENTLY 时的虚假死锁失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}, "url": "/docs/compare/?release=9.5.11#9.5.11-7ebbb574b647122d", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "e9d4f66d5fafb02f5fa5704380c481b7", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复多个会话运行 CREATE INDEX CONCURRENTLY 时的虚假死锁失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}, "url": "/docs/compare/?release=9.4.16#9.4.16-7ebbb574b647122d", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.6.7-8f5d875f16bfb472", "cves": [], "html": "<p>修复继承树包含外部子表时的失败（Etsuro Fujita）</p>\n<p>继承树中普通表和外部表的混合导致为 <code>UPDATE</code> 和 <code>DELETE</code> 查询创建错误计划。这在某些情况下导致可见的失败，特别是当外部子表上有行级触发器时。</p>", "text": "修复继承树包含外部子表时的失败（Etsuro Fujita） 继承树中普通表和外部表的混合导致为 UPDATE 和 DELETE 查询创建错误计划。这在某些情况下导致可见的失败，特别是当外部子表上有行级触发器时。", "title": "修复继承树包含外部子表时的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "d0c8234e62f5764913ee42a707d7f0bc3e4a47fff6e29615801b15c572472af3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failures when an inheritance tree contains foreign child tables (Etsuro Fujita) A mix of regular and foreign tables in an inheritance tree resulted in creation of incorrect plans for UPDATE and DELETE queries. This led to visible failures in some cases, notably when there are row-level triggers on a foreign child table.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/008", "db_id": "3e219e430a3ac60fe3c0ae8b96261e5e", "patch_ids": [], "statement_hash": "7a12ea3210f4b16f86cc574f39f934f265e36c24ac1419c03685b50bc4e74f39", "relations": [{"rule": 2, "type": "equivalent", "target": "0daca53b9d435a9015e518004011a4fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a12ea3210f4b16f86cc574f39f934f265e36c24ac1419c03685b50bc4e74f39"}}, {"rule": 2, "type": "equivalent", "target": "9d3ee6e07bdd121f21a643cf4929c09b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a12ea3210f4b16f86cc574f39f934f265e36c24ac1419c03685b50bc4e74f39"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d3ee6e07bdd121f21a643cf4929c09b", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复继承树包含外部子表时的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a12ea3210f4b16f86cc574f39f934f265e36c24ac1419c03685b50bc4e74f39"}, "url": "/docs/compare/?release=10.2#10.2-8f5d875f16bfb472", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "0daca53b9d435a9015e518004011a4fe", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复继承树包含外部子表时的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a12ea3210f4b16f86cc574f39f934f265e36c24ac1419c03685b50bc4e74f39"}, "url": "/docs/compare/?release=9.5.11#9.5.11-8f5d875f16bfb472", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}]}, {"id": "9.6.7-346c838211b82c44", "cves": [], "html": "<p>修复 <code>LATERAL</code> 子查询内 <code>VALUES</code> 内相关子 <code>SELECT</code> 的失败（Tom Lane）</p>", "text": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败（Tom Lane）", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "aaf87391ba4793ce3343e4b693af384dae1d7fef1fdc8585c58e64af130356ba", "section_path": ["变更"], "commit_groups": [], "identity_text": "Repair failure with correlated sub-SELECT inside VALUES inside a LATERAL subquery (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/009", "db_id": "8c72ac6b2fba11c344919a4d10bf6d22", "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c", "relations": [{"rule": 2, "type": "equivalent", "target": "08317401be83c287ffb1e92b829f98c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}, {"rule": 2, "type": "equivalent", "target": "24e4a244bb80527b6b2f75d88c341130", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}, {"rule": 2, "type": "equivalent", "target": "3cdb2c132ad40c77431e35911ee4b48b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}, {"rule": 2, "type": "equivalent", "target": "65fc85b0b47fabd240409d5f2054d96d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "65fc85b0b47fabd240409d5f2054d96d", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 LATERAL 子查询中 VALUES 内的相关子 SELECT 导致的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=10.2#10.2-24d5a5b6f05ef5ed", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "3cdb2c132ad40c77431e35911ee4b48b", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=9.5.11#9.5.11-346c838211b82c44", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "08317401be83c287ffb1e92b829f98c8", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=9.4.16#9.4.16-346c838211b82c44", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "24e4a244bb80527b6b2f75d88c341130", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=9.3.21#9.3.21-346c838211b82c44", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-a8a70f044e1c683a", "cves": [], "html": "<p>修复横向子查询内嵌套 <code>UNION ALL</code> 的某些情况下 <span>“<span>could not devise a query plan for the given query</span>”</span> 规划器失败（Tom Lane）</p>", "text": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败（Tom Lane）", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "095a42ddbde897f61eaf240d65d3391c5618373a0a78213b468c27f2f76ec9ee", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix could not devise a query plan for the given query planner failure for some cases involving nested UNION ALL inside a lateral subquery (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/010", "db_id": "67468e944bb781e37724ba62e3ac6fd3", "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c", "relations": [{"rule": 2, "type": "equivalent", "target": "11be3b46e5562e568dcf3eb498fbd102", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}, {"rule": 2, "type": "equivalent", "target": "9f7497c7d9ffed7fc37192d093b636fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}, {"rule": 2, "type": "equivalent", "target": "dbfdbb67dd1039ecbc3a40ba6a034d26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}, {"rule": 2, "type": "equivalent", "target": "f942ad4f0a998777c3ce08593d956283", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f942ad4f0a998777c3ce08593d956283", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复横向子查询内部存在嵌套 UNION ALL 的某些情况下，规划器报告 “could not devise a query plan for the given query” 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=10.2#10.2-b14470686a94e455", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "dbfdbb67dd1039ecbc3a40ba6a034d26", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=9.5.11#9.5.11-a8a70f044e1c683a", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "11be3b46e5562e568dcf3eb498fbd102", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=9.4.16#9.4.16-a8a70f044e1c683a", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "9f7497c7d9ffed7fc37192d093b636fe", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=9.3.21#9.3.21-a8a70f044e1c683a", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-d72b0494874321e1", "cves": [], "html": "<p>修复逻辑解码正确清理崩溃事务的磁盘文件（Atsushi Torikoshi）</p>\n<p>逻辑解码可能为生成许多 WAL 记录的事务把 WAL 记录溢出到磁盘。通常这些文件在事务的提交或中止记录到达后清理；但如果从未看到这样的记录，移除代码就会行为不当。</p>", "text": "修复逻辑解码正确清理崩溃事务的磁盘文件（Atsushi Torikoshi） 逻辑解码可能为生成许多 WAL 记录的事务把 WAL 记录溢出到磁盘。通常这些文件在事务的提交或中止记录到达后清理；但如果从未看到这样的记录，移除代码就会行为不当。", "title": "修复逻辑解码正确清理崩溃事务的磁盘文件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "bbf1d7514f30a07c9305af1bd6d08da857a6b22272d1d1e33f0b5a29123994c2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix logical decoding to correctly clean up disk files for crashed transactions (Atsushi Torikoshi) Logical decoding may spill WAL records to disk for transactions generating many WAL records. Normally these files are cleaned up after the transaction's commit or abort record arrives; but if no such record is ever seen, the removal code misbehaved.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/011", "db_id": "83dd6050e0a3001070dd3a37e3608644", "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58", "relations": [{"rule": 2, "type": "equivalent", "target": "9497dcb4664035e25dea5719273f7775", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}}, {"rule": 2, "type": "equivalent", "target": "c1380b5003065cde8718f6de81c5e697", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}}, {"rule": 2, "type": "equivalent", "target": "fa34b7fe4ae72800b6f3457f5a514f70", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9497dcb4664035e25dea5719273f7775", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复逻辑解码，使其正确清理已崩溃事务的磁盘文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}, "url": "/docs/compare/?release=10.2#10.2-75e030256afcfdc8", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "fa34b7fe4ae72800b6f3457f5a514f70", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复逻辑解码正确清理崩溃事务的磁盘文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d72b0494874321e1", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "c1380b5003065cde8718f6de81c5e697", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复逻辑解码正确清理崩溃事务的磁盘文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}, "url": "/docs/compare/?release=9.4.16#9.4.16-d72b0494874321e1", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.6.7-6ae35003430a8b72", "cves": [], "html": "<p>修复处理大事务时的 walsender 超时失败和中断响应失败（Petr Jelinek）</p>", "text": "修复处理大事务时的 walsender 超时失败和中断响应失败（Petr Jelinek）", "title": "修复处理大事务时的 walsender 超时失败和中断响应失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "e1b11784ef50f9815f76c92e1a245481d522baf99f20048fbbbc106816541378", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix walsender timeout failure and failure to respond to interrupts when processing a large transaction (Petr Jelinek)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/012", "db_id": "04df9533a2e0c239993c4f25740c3f2c", "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2", "relations": [{"rule": 2, "type": "equivalent", "target": "0641ecfcd209be620a7f15faf0c8b1d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}}, {"rule": 2, "type": "equivalent", "target": "49d5a018edca09aa50a64ee6c2dcb3cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}}, {"rule": 2, "type": "equivalent", "target": "8c59f13b8514866cfb7e0fec2a8151dc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "49d5a018edca09aa50a64ee6c2dcb3cf", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 WAL 发送进程在处理大型事务时超时失败及不响应中断的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}, "url": "/docs/compare/?release=10.2#10.2-93bdf69bb80a3775", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "0641ecfcd209be620a7f15faf0c8b1d3", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复处理大事务时的 walsender 超时失败和中断响应失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}, "url": "/docs/compare/?release=9.5.11#9.5.11-6ae35003430a8b72", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "8c59f13b8514866cfb7e0fec2a8151dc", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复处理大事务时的 walsender 超时失败和中断响应失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}, "url": "/docs/compare/?release=9.4.16#9.4.16-6ae35003430a8b72", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.6.7-c564b31f07d13743", "cves": [], "html": "<p>修复 <code>has_sequence_privilege()</code> 像其他权限测试函数一样支持 <code>WITH GRANT OPTION</code> 测试（Joe Conway）</p>", "text": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试（Joe Conway）", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "760d23ba674ebbeb5aa90325012effe535cf9132707eb6b37ea5d1c66955e25e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix has_sequence_privilege() to support WITH GRANT OPTION tests, as other privilege-testing functions do (Joe Conway)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/013", "db_id": "a8aabc64f8411c7c77b294c05f462251", "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e", "relations": [{"rule": 2, "type": "equivalent", "target": "619783ed3e2208495d597662446253c1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}, {"rule": 2, "type": "equivalent", "target": "76649b2fb466f9acb38720b8976c353c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}, {"rule": 2, "type": "equivalent", "target": "a1d669f5e670a3c8cead313057939aed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}, {"rule": 2, "type": "equivalent", "target": "e3220e245c3534dd19fe43e00fa92707", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e3220e245c3534dd19fe43e00fa92707", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 has_sequence_privilege()，使其与其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=10.2#10.2-212465228d89f18d", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "a1d669f5e670a3c8cead313057939aed", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=9.5.11#9.5.11-c564b31f07d13743", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "619783ed3e2208495d597662446253c1", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=9.4.16#9.4.16-c564b31f07d13743", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "76649b2fb466f9acb38720b8976c353c", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=9.3.21#9.3.21-c564b31f07d13743", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-2038697ff3166b24", "cves": [], "html": "<p>在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明（Pavel Stehule、Noah Misch）</p>\n<p>我们总是以数据库编码存储 XML 字符串，因此允许 libxml 对另一种编码的声明采取行动会给出错误结果。在 UTF8 之外的编码中，我们本来就不承诺支持非 ASCII XML 数据，因此为错误兼容保留以前的行为。这一更改只影响 <code>xpath()</code> 及相关函数；其他 XML 代码路径已经这样做了。</p>", "text": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明（Pavel Stehule、Noah Misch） 我们总是以数据库编码存储 XML 字符串，因此允许 libxml 对另一种编码的声明采取行动会给出错误结果。在 UTF8 之外的编码中，我们本来就不承诺支持非 ASCII XML 数据，因此为错误兼容保留以前的行为。这一更改只影响 xpath() 及相关函数；其他 XML 代码路径已经这样做了。", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "ea9024cc935f73efdd3433071a0c10c5586828f9b903698675d0d3875dd5d4c8", "section_path": ["变更"], "commit_groups": [], "identity_text": "In databases using UTF8 encoding, ignore any XML declaration that asserts a different encoding (Pavel Stehule, Noah Misch) We always store XML strings in the database encoding, so allowing libxml to act on a declaration of another encoding gave wrong results. In encodings other than UTF8, we don't promise to support non-ASCII XML data anyway, so retain the previous behavior for bug compatibility. This change affects only xpath() and related functions; other XML code paths already acted this way.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/014", "db_id": "540a56e4e2cbaf9eb6bc42d44f971b7c", "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580", "relations": [{"rule": 2, "type": "equivalent", "target": "51c16b63b73e8952455ef010fdb6bc34", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}, {"rule": 2, "type": "equivalent", "target": "64a65085d2bcc64e247b1378e263a15f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}, {"rule": 2, "type": "equivalent", "target": "703b556bb53b3308f4833abf091add00", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}, {"rule": 2, "type": "equivalent", "target": "9f5978e04390021201aa8d533376bcb3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "64a65085d2bcc64e247b1378e263a15f", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "在使用 UTF8 编码的数据库中，忽略任何声称使用其他编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=10.2#10.2-016c58f600bdd511", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "703b556bb53b3308f4833abf091add00", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=9.5.11#9.5.11-2038697ff3166b24", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "51c16b63b73e8952455ef010fdb6bc34", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=9.4.16#9.4.16-2038697ff3166b24", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "9f5978e04390021201aa8d533376bcb3", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=9.3.21#9.3.21-2038697ff3166b24", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-fd3e0daf12568c15", "cves": [], "html": "<p>为与未来次版本协议的前向兼容做准备（Robert Haas、Badrul Chowdhury）</p>\n<p>到目前为止，<span>PostgreSQL</span> 服务器只是拒绝使用比 3.0 更新的协议版本的请求，因此协议版本号的主部分和次部分之间没有功能差别。允许客户端请求 3.x 版本而不失败，发回一条表明服务器只理解 3.0 的消息。这目前没有区别，但向后移植此更改应能更快引入未来的次协议升级。</p>", "text": "为与未来次版本协议的前向兼容做准备（Robert Haas、Badrul Chowdhury） 到目前为止，PostgreSQL 服务器只是拒绝使用比 3.0 更新的协议版本的请求，因此协议版本号的主部分和次部分之间没有功能差别。允许客户端请求 3.x 版本而不失败，发回一条表明服务器只理解 3.0 的消息。这目前没有区别，但向后移植此更改应能更快引入未来的次协议升级。", "title": "为与未来次版本协议的前向兼容做准备", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "a632191843cf1a6c894698424ba743faea2866623ef6f7ef17779ccc74e37ae8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Provide for forward compatibility with future minor protocol versions (Robert Haas, Badrul Chowdhury) Up to now, PostgreSQL servers simply rejected requests to use protocol versions newer than 3.0, so that there was no functional difference between the major and minor parts of the protocol version number. Allow clients to request versions 3.x without failing, sending back a message showing that the server only understands 3.0. This makes no difference at the moment, but back-patching this change should allow speedier introduction of future minor protocol upgrades.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/015", "db_id": "922f5e76b2fc8a6ef5a033bb14730ec4", "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f", "relations": [{"rule": 2, "type": "equivalent", "target": "3bca875f15d6646be2ba689accfac0d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}, {"rule": 2, "type": "equivalent", "target": "4b25bdea5725fec36e838fba1cc4807f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}, {"rule": 2, "type": "equivalent", "target": "5808ced71469317610618ca1565949c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}, {"rule": 2, "type": "equivalent", "target": "fc71934fa6f0e20f15e2a3d74cf2224c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3bca875f15d6646be2ba689accfac0d0", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "提供对未来小版本协议的向前兼容能力", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=10.2#10.2-9f3306712ba2b392", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "5808ced71469317610618ca1565949c6", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "为与未来次版本协议的前向兼容做准备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=9.5.11#9.5.11-fd3e0daf12568c15", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "4b25bdea5725fec36e838fba1cc4807f", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "为与未来次版本协议的前向兼容做准备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=9.4.16#9.4.16-fd3e0daf12568c15", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "fc71934fa6f0e20f15e2a3d74cf2224c", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "为与未来次版本协议的前向兼容做准备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=9.3.21#9.3.21-fd3e0daf12568c15", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-6b4b1d5319fd0a9a", "cves": [], "html": "<p>应对并行工作者进程启动失败（Amit Kapila、Robert Haas）</p>\n<p>此前如果工作者无法启动（因 <code>fork()</code> 失败或其他低概率问题），并行查询往往无限挂起。</p>", "text": "应对并行工作者进程启动失败（Amit Kapila、Robert Haas） 此前如果工作者无法启动（因 fork() 失败或其他低概率问题），并行查询往往无限挂起。", "title": "应对并行工作者进程启动失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "087fdf232879c1e771e8b8b7a1a9e340f185c3b22511dee44eb4d7ba5ef22423", "section_path": ["变更"], "commit_groups": [], "identity_text": "Cope with failure to start a parallel worker process (Amit Kapila, Robert Haas) Parallel query previously tended to hang indefinitely if a worker could not be started, as the result of fork() failure or other low-probability problems.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/016", "db_id": "912057b0fb784495baa32fbcad51b36e", "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05", "relations": [{"rule": 2, "type": "equivalent", "target": "28e0f5c1a56cedd75a944b0038dc3930", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}}, {"rule": 2, "type": "equivalent", "target": "4e971de322b6927fa12fd621eb383aa1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}}, {"rule": 2, "type": "equivalent", "target": "5f433863c9741c37f4bc74b83c759469", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4e971de322b6927fa12fd621eb383aa1", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "处理并行工作进程启动失败的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}, "url": "/docs/compare/?release=10.2#10.2-43652c9f1754cf86", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "5f433863c9741c37f4bc74b83c759469", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "应对并行工作者进程启动失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}, "url": "/docs/compare/?release=9.5.11#9.5.11-6b4b1d5319fd0a9a", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "28e0f5c1a56cedd75a944b0038dc3930", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "应对并行工作者进程启动失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}, "url": "/docs/compare/?release=9.4.16#9.4.16-6b4b1d5319fd0a9a", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "9.6.7-1db64b23351a4311", "cves": [], "html": "<p>修复从并行工作者收集 <code>EXPLAIN</code> 统计信息（Amit Kapila、Thomas Munro）</p>", "text": "修复从并行工作者收集 EXPLAIN 统计信息（Amit Kapila、Thomas Munro）", "title": "修复从并行工作者收集 EXPLAIN 统计信息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "3e0aa6ae7c7a5ad3b5672136d4bf14ad9ed07669fa5e6c477e3e76cbf952848b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix collection of EXPLAIN statistics from parallel workers (Amit Kapila, Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/017", "db_id": "2b7b460c370c084ee5adff225624057c", "patch_ids": [], "statement_hash": "7a672b8d8f1c4092225782922038e5288a69abaea2d95765f2dbcbec011dd224", "relations": [{"rule": 2, "type": "equivalent", "target": "925d351afafe20b26cffd43e5a213e30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a672b8d8f1c4092225782922038e5288a69abaea2d95765f2dbcbec011dd224"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "925d351afafe20b26cffd43e5a213e30", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复从并行工作进程收集 EXPLAIN 统计信息的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a672b8d8f1c4092225782922038e5288a69abaea2d95765f2dbcbec011dd224"}, "url": "/docs/compare/?release=10.2#10.2-5bb8f3d3bbe45c07", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}]}, {"id": "9.6.7-d56fce98455525f6", "cves": [], "html": "<p>避免使用 <code>__int128</code> 时做出不安全的对齐假定（Tom Lane）</p>\n<p>通常编译器假定 <code>__int128</code> 变量按 16 字节边界对齐，但我们的内存分配基础设施不能保证这一点，而且出于多种原因增大 MAXALIGN 的设置似乎不可行。调整代码，只在能让编译器假定较低对齐时才允许使用 <code>__int128</code>。到目前为止此问题的唯一已知症状是某些并行聚合查询中的崩溃。</p>", "text": "避免使用 __int128 时做出不安全的对齐假定（Tom Lane） 通常编译器假定 __int128 变量按 16 字节边界对齐，但我们的内存分配基础设施不能保证这一点，而且出于多种原因增大 MAXALIGN 的设置似乎不可行。调整代码，只在能让编译器假定较低对齐时才允许使用 __int128。到目前为止此问题的唯一已知症状是某些并行聚合查询中的崩溃。", "title": "避免使用 __int128 时做出不安全的对齐假定", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "a747071d2edc7988c4e107f054f5ec3c5d0f93b0c956f514c3d66ea1e5ecb65c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid unsafe alignment assumptions when working with __int128 (Tom Lane) Typically, compilers assume that __int128 variables are aligned on 16-byte boundaries, but our memory allocation infrastructure isn't prepared to guarantee that, and increasing the setting of MAXALIGN seems infeasible for multiple reasons. Adjust the code to allow use of __int128 only when we can tell the compiler to assume lesser alignment. The only known symptom of this problem so far is crashes in some parallel aggregation queries.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/018", "db_id": "358035aaa951e105360b91b0086db322", "patch_ids": [], "statement_hash": "5ab4008c7c39c4c8d221a32ef9ccce2a76645415e05419661f903f8111dade77", "relations": [{"rule": 2, "type": "equivalent", "target": "8254372163ea60d86d0db416238a1a46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ab4008c7c39c4c8d221a32ef9ccce2a76645415e05419661f903f8111dade77"}}, {"rule": 2, "type": "equivalent", "target": "f992d405a4f26889b01734117727425a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ab4008c7c39c4c8d221a32ef9ccce2a76645415e05419661f903f8111dade77"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8254372163ea60d86d0db416238a1a46", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "避免使用 __int128 时作出不安全的对齐假设", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ab4008c7c39c4c8d221a32ef9ccce2a76645415e05419661f903f8111dade77"}, "url": "/docs/compare/?release=10.2#10.2-cbb2cf5ab2d81b71", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "f992d405a4f26889b01734117727425a", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "避免使用 __int128 时做出不安全的对齐假定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ab4008c7c39c4c8d221a32ef9ccce2a76645415e05419661f903f8111dade77"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d56fce98455525f6", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}]}, {"id": "9.6.7-6b5d775673a68200", "cves": [], "html": "<p>防止规划极深层嵌套集合操作（<code>UNION</code>/<code>INTERSECT</code>/<code>EXCEPT</code>）时的栈溢出崩溃（Tom Lane）</p>", "text": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃（Tom Lane）", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "f3a60e65ce141907b511296cc3f9d8e16fd63c74c849e6364f71803b4721fc5f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent stack-overflow crashes when planning extremely deeply nested set operations (UNION/INTERSECT/EXCEPT) (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/019", "db_id": "c0ab81df51c3929d239015f3a85d7c4d", "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37", "relations": [{"rule": 2, "type": "equivalent", "target": "01146443770f86ec5e5ca59fa9dbf321", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}, {"rule": 2, "type": "equivalent", "target": "568acb1455a8e36310b0b1c93fa873e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}, {"rule": 2, "type": "equivalent", "target": "70e56a68f5bcb62b2cfbed2160e0f4dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}, {"rule": 2, "type": "equivalent", "target": "c39c8bd24f5ac242f0b32c2b20b718a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c39c8bd24f5ac242f0b32c2b20b718a4", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "防止规划嵌套极深的集合操作（UNION/INTERSECT/EXCEPT）时发生栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=10.2#10.2-85a96a8e38055d4d", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "01146443770f86ec5e5ca59fa9dbf321", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=9.5.11#9.5.11-6b5d775673a68200", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "568acb1455a8e36310b0b1c93fa873e3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=9.4.16#9.4.16-6b5d775673a68200", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "70e56a68f5bcb62b2cfbed2160e0f4dd", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=9.3.21#9.3.21-6b5d775673a68200", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-3a04f8f2f657ef4f", "cves": [], "html": "<p>修复 <code>pg_hba.conf</code> 中出现的某些类型 LDAP URL 的空指针崩溃（Thomas Munro）</p>", "text": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃（Thomas Munro）", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "74022c27a629fc833d1351c27ccbd81ddae31e4000de86377fc43566c1263205", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix null-pointer crashes for some types of LDAP URLs appearing in pg_hba.conf (Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/020", "db_id": "ae63d513a9079f9c6cc772c910b8b247", "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46", "relations": [{"rule": 2, "type": "equivalent", "target": "3c9d22b3c22a6f1ca4e410e0748abf03", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}, {"rule": 2, "type": "equivalent", "target": "7f352f1f8330378d049091ee91844a5b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}, {"rule": 2, "type": "equivalent", "target": "bca9bf5667364948df95ee66aa7f939d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}, {"rule": 2, "type": "equivalent", "target": "beca6294db18ff71808c71309eef783e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7f352f1f8330378d049091ee91844a5b", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 pg_hba.conf 中某些类型的 LDAP URL 导致的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=10.2#10.2-5f97cba345d98cab", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "beca6294db18ff71808c71309eef783e", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=9.5.11#9.5.11-3a04f8f2f657ef4f", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "bca9bf5667364948df95ee66aa7f939d", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=9.4.16#9.4.16-3a04f8f2f657ef4f", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "3c9d22b3c22a6f1ca4e410e0748abf03", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=9.3.21#9.3.21-3a04f8f2f657ef4f", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-10bc6b882e840284", "cves": [], "html": "<p>修复 PL/pgSQL 文档中的 <code>INSTR()</code> 示例函数（Yugo Nagata、Tom Lane）</p>\n<p>这些函数声称与 <span>Oracle</span>® 兼容，但并不完全如此。特别是对负第三参数的解释有分歧：Oracle 认为负值表示目标子串可以开始出现的最后一个位置，而我们的函数把它当作目标可以结束的最后一个位置。此外，Oracle 对零或负第四参数抛出错误，而我们的函数返回零。</p>\n<p>示例代码已被调整以更精确地匹配 Oracle 的行为。把这段代码复制到其应用中的用户可能希望更新其副本。</p>", "text": "修复 PL/pgSQL 文档中的 INSTR() 示例函数（Yugo Nagata、Tom Lane） 这些函数声称与 Oracle® 兼容，但并不完全如此。特别是对负第三参数的解释有分歧：Oracle 认为负值表示目标子串可以开始出现的最后一个位置，而我们的函数把它当作目标可以结束的最后一个位置。此外，Oracle 对零或负第四参数抛出错误，而我们的函数返回零。 示例代码已被调整以更精确地匹配 Oracle 的行为。把这段代码复制到其应用中的用户可能希望更新其副本。", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "bb98c8dab7afd9a70dcc6ab2ecaa3069abbd7c7158b59b071b436bc1d41789f7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix sample INSTR() functions in the PL/pgSQL documentation (Yugo Nagata, Tom Lane) These functions are stated to be Oracle compatible, but they weren't exactly. In particular, there was a discrepancy in the interpretation of a negative third parameter: Oracle thinks that a negative value indicates the last place where the target substring can begin, whereas our functions took it as the last place where the target can end. Also, Oracle throws an error for a zero or negative fourth parameter, whereas our functions returned zero. The sample code has been adjusted to match Oracle's behavior more precisely. Users who have copied this code into their applications may wish to update their copies.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/021", "db_id": "bb1989d6670ac970ea2dad251fc2a4f4", "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba", "relations": [{"rule": 2, "type": "equivalent", "target": "074fbd98682930dbc3e7ac9e8e70373a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}, {"rule": 2, "type": "equivalent", "target": "4122a38677a7d168668c054735ce38bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}, {"rule": 2, "type": "equivalent", "target": "4deafbbde1d67134a3ba61a5633ecec4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}, {"rule": 2, "type": "equivalent", "target": "f21202afc895bb07ec2a18d95aa85e98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4deafbbde1d67134a3ba61a5633ecec4", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 PL/pgSQL 文档中的示例 INSTR() 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=10.2#10.2-0965230c18198c0d", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "4122a38677a7d168668c054735ce38bf", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=9.5.11#9.5.11-10bc6b882e840284", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "f21202afc895bb07ec2a18d95aa85e98", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=9.4.16#9.4.16-10bc6b882e840284", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "074fbd98682930dbc3e7ac9e8e70373a", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=9.3.21#9.3.21-10bc6b882e840284", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-bbdffd1d51d41177", "cves": [], "html": "<p>修复 <span>pg_dump</span> 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别（Tom Lane）</p>\n<p>ACL 归档条目的<span>“<span>标记</span>”</span>部分通常只是相关对象的名称。使它以对象类型开头，使 ACL 与注释和安全标签归档条目已使用的约定一致。同时修复整个数据库的注释和安全标签条目（如果存在），使其标记以 <code>DATABASE</code> 开头，从而也遵循这一约定。这防止试图通过查看标记是否以 <code>LARGE OBJECT</code> 开头来识别大对象相关条目的代码发生假匹配。那可能导致条目被错误分类为数据而非模式，在仅模式或仅数据转储中产生不希望的结果。</p>\n<p>注意，这一更改在 <code>pg_restore --list</code> 的输出中有用户可见的结果。</p>", "text": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别（Tom Lane） ACL 归档条目的“标记”部分通常只是相关对象的名称。使它以对象类型开头，使 ACL 与注释和安全标签归档条目已使用的约定一致。同时修复整个数据库的注释和安全标签条目（如果存在），使其标记以 DATABASE 开头，从而也遵循这一约定。这防止试图通过查看标记是否以 LARGE OBJECT 开头来识别大对象相关条目的代码发生假匹配。那可能导致条目被错误分类为数据而非模式，在仅模式或仅数据转储中产生不希望的结果。 注意，这一更改在 pg_restore --list 的输出中有用户可见的结果。", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "5f63c24c21e64f67c5613c4b6beeeab02124e75920f3b4131215884e6ff67966", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump to make ACL (permissions), comment, and security label entries reliably identifiable in archive output formats (Tom Lane) The tag portion of an ACL archive entry was usually just the name of the associated object. Make it start with the object type instead, bringing ACLs into line with the convention already used for comment and security label archive entries. Also, fix the comment and security label entries for the whole database, if present, to make their tags start with DATABASE so that they also follow this convention. This prevents false matches in code that tries to identify large-object-related entries by seeing if the tag starts with LARGE OBJECT. That could have resulted in misclassifying entries as data rather than schema, with undesirable results in a schema-only or data-only dump. Note that this change has user-visible results in the output of pg_restore --list.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/022", "db_id": "f7bf3dce4ce6e4a65a97b8e49bdff2f7", "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc", "relations": [{"rule": 2, "type": "equivalent", "target": "0ca9e270193416cad270eafba608b5f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}, {"rule": 2, "type": "equivalent", "target": "3b1f9393e931bb132457f7b3910110ac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}, {"rule": 2, "type": "equivalent", "target": "81373cee02430fe4af2cf207aa51dde5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}, {"rule": 2, "type": "equivalent", "target": "f35413a1afcd2620afa667bd34efb3af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3b1f9393e931bb132457f7b3910110ac", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 pg_dump，使归档输出格式中的 ACL（权限）、注释和安全标签条目能够被可靠识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=10.2#10.2-df145085c9ee1131", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "0ca9e270193416cad270eafba608b5f8", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=9.5.11#9.5.11-bbdffd1d51d41177", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "81373cee02430fe4af2cf207aa51dde5", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=9.4.16#9.4.16-bbdffd1d51d41177", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "f35413a1afcd2620afa667bd34efb3af", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=9.3.21#9.3.21-bbdffd1d51d41177", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-5fc94161af5a1d69", "cves": [], "html": "<p>重命名 <span>pg_rewind</span> 的 <code>copy_file_range</code> 函数，避免与该名称的新 Linux 系统调用冲突（Andres Freund）</p>\n<p>这一更改防止了更新 glibc 版本下的构建失败。</p>", "text": "重命名 pg_rewind 的 copy_file_range 函数，避免与该名称的新 Linux 系统调用冲突（Andres Freund） 这一更改防止了更新 glibc 版本下的构建失败。", "title": "重命名 pg_rewind 的 copy_file_range 函数，避免与该名称的新 Linux 系统调用冲突", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "ed7bc836f3aa6373a3d5cb861d6397ff37ff0a24894c1c260e3fa7c2072d95c0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Rename pg_rewind's copy_file_range function to avoid conflict with new Linux system call of that name (Andres Freund) This change prevents build failures with newer glibc versions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/023", "db_id": "15df591343519b5476d876f19c9dc608", "patch_ids": [], "statement_hash": "da9577ec4bb49012598aca2938ad76c6d61619463721cf0fa473934d0a58ae5a", "relations": [{"rule": 2, "type": "equivalent", "target": "9a54b364bbc9fab1b05ea2a58c02e7f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da9577ec4bb49012598aca2938ad76c6d61619463721cf0fa473934d0a58ae5a"}}, {"rule": 2, "type": "equivalent", "target": "ab3d0a759d27a52424c5ee4b0e2d568c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da9577ec4bb49012598aca2938ad76c6d61619463721cf0fa473934d0a58ae5a"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9a54b364bbc9fab1b05ea2a58c02e7f3", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "重命名 pg_rewind 的 copy_file_range 函数，避免与 Linux 新增的同名系统调用冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da9577ec4bb49012598aca2938ad76c6d61619463721cf0fa473934d0a58ae5a"}, "url": "/docs/compare/?release=10.2#10.2-1eecac785743184e", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "ab3d0a759d27a52424c5ee4b0e2d568c", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "重命名 pg_rewind 的 copy_file_range 函数，避免与该名称的新 Linux 系统调用冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da9577ec4bb49012598aca2938ad76c6d61619463721cf0fa473934d0a58ae5a"}, "url": "/docs/compare/?release=9.5.11#9.5.11-5fc94161af5a1d69", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}]}, {"id": "9.6.7-56321fffb2cf063c", "cves": [], "html": "<p>在 <span>ecpg</span> 中，检测长度不正确的指示符数组并报错（David Rader）</p>", "text": "在 ecpg 中，检测长度不正确的指示符数组并报错（David Rader）", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "e917bd7fe303afbf67e7b7281e4d1696c885c40b4091a2694b25e2b859c03012", "section_path": ["变更"], "commit_groups": [], "identity_text": "In ecpg, detect indicator arrays that do not have the correct length and report an error (David Rader)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/024", "db_id": "bc90c3b158d533f1785a76400861ddf8", "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867", "relations": [{"rule": 2, "type": "equivalent", "target": "23ebd41798b308ffaef0b9ec76885108", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}, {"rule": 2, "type": "equivalent", "target": "2bcc6c70c126ca045982a7568dd1c2a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}, {"rule": 2, "type": "equivalent", "target": "30fd542104a3cc71e9b017949639401e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}, {"rule": 2, "type": "equivalent", "target": "ed00656fc4d0e1c664f2d46f7e9fdb9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "23ebd41798b308ffaef0b9ec76885108", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "在 ecpg 中检测长度不正确的指示器数组并报告错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=10.2#10.2-582b4dd4528f6d14", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "ed00656fc4d0e1c664f2d46f7e9fdb9e", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=9.5.11#9.5.11-56321fffb2cf063c", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "2bcc6c70c126ca045982a7568dd1c2a0", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=9.4.16#9.4.16-56321fffb2cf063c", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "30fd542104a3cc71e9b017949639401e", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=9.3.21#9.3.21-56321fffb2cf063c", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-8c0e70d39ed94301", "cves": [], "html": "<p>更改 <code>contrib/cube</code> 的 <code>cube</code> <code>~&gt;</code> <code>int</code> 操作符的行为使其与 KNN 搜索兼容（Alexander Korotkov）</p>\n<p>更改了第二个参数（维度选择器）的含义，即使在处理维度数不同的 cube 时也能预测选择哪个值。</p>\n<p>这是一个不兼容的更改，但由于该操作符的意义正是在 KNN 搜索中使用，原样似乎相当无用。安装此更新后，使用该操作符的任何表达式索引或物化视图都需要重建/刷新。</p>", "text": "更改 contrib/cube 的 cube ~> int 操作符的行为使其与 KNN 搜索兼容（Alexander Korotkov） 更改了第二个参数（维度选择器）的含义，即使在处理维度数不同的 cube 时也能预测选择哪个值。 这是一个不兼容的更改，但由于该操作符的意义正是在 KNN 搜索中使用，原样似乎相当无用。安装此更新后，使用该操作符的任何表达式索引或物化视图都需要重建/刷新。", "title": "更改 contrib/cube 的 cube ~> int 操作符的行为使其与 KNN 搜索兼容", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "68897ffc75c672a04a0512dc7c32d009a5e51d4579022443b66521e4d60f2f9e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Change the behavior of contrib/cube's cube ~> int operator to make it compatible with KNN search (Alexander Korotkov) The meaning of the second argument (the dimension selector) has been changed to make it predictable which value is selected even when dealing with cubes of varying dimensionalities. This is an incompatible change, but since the point of the operator was to be used in KNN searches, it seems rather useless as-is. After installing this update, any expression indexes or materialized views using this operator will need to be reindexed/refreshed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/025", "db_id": "d0b16e0b4537c63a0e077219d1edfc1c", "patch_ids": [], "statement_hash": "06a632f718d0eb5585bb9171aa1bc9c412fe238936e76fef4ec377f2c4bac6f1", "relations": [{"rule": 2, "type": "equivalent", "target": "c082d0c5c448afa028fc402be054813f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06a632f718d0eb5585bb9171aa1bc9c412fe238936e76fef4ec377f2c4bac6f1"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c082d0c5c448afa028fc402be054813f", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修改 contrib/cube 的 cube ~> int 操作符的行为，使其与 KNN 搜索兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06a632f718d0eb5585bb9171aa1bc9c412fe238936e76fef4ec377f2c4bac6f1"}, "url": "/docs/compare/?release=10.2#10.2-4eb5b76e22fb3c51", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}]}, {"id": "9.6.7-28176ee2b29ae77d", "cves": [], "html": "<p>避免 <code>contrib/hstore</code> 中因对相同源和目标指针使用 <code>memcpy()</code> 而触发 libc 断言（Tomas Vondra）</p>", "text": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言（Tomas Vondra）", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "c07c74b6e93ba4c7b7491cfda10f2f8a916a197f2293510199127ad5eecf54a2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid triggering a libc assertion in contrib/hstore, due to use of memcpy() with equal source and destination pointers (Tomas Vondra)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/026", "db_id": "068ae2b3cbc44395747b26db4b128abe", "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c", "relations": [{"rule": 2, "type": "equivalent", "target": "13456404b4843af4eaef72200207a161", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}, {"rule": 2, "type": "equivalent", "target": "3bb0cb2aa359ceb514aa7d79f835ee81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}, {"rule": 2, "type": "equivalent", "target": "d68235d9ea6153b9d5bc746fb9791109", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}, {"rule": 2, "type": "equivalent", "target": "e4436dc9c2b9e496bac1a86048edd39b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "13456404b4843af4eaef72200207a161", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "避免 contrib/hstore 使用源指针与目标指针相同的 memcpy() 调用而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=10.2#10.2-11f49ed08e3f0038", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "3bb0cb2aa359ceb514aa7d79f835ee81", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=9.5.11#9.5.11-28176ee2b29ae77d", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "e4436dc9c2b9e496bac1a86048edd39b", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=9.4.16#9.4.16-28176ee2b29ae77d", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "d68235d9ea6153b9d5bc746fb9791109", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=9.3.21#9.3.21-28176ee2b29ae77d", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-2dbd6348f5f2986c", "cves": [], "html": "<p>修复 <code>contrib/pageinspect</code> 中元组空位图的错误显示（Maksim Milyutin）</p>", "text": "修复 contrib/pageinspect 中元组空位图的错误显示（Maksim Milyutin）", "title": "修复 contrib/pageinspect 中元组空位图的错误显示", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "16c2397d450c973d672bc96f68c2ef74368e5f0e280d8fc5d3144916ebd1e28c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect display of tuples' null bitmaps in contrib/pageinspect (Maksim Milyutin)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/027", "db_id": "35e7abc5cdc4509d7cc0bff47f9afd46", "patch_ids": [], "statement_hash": "4091577f7f431cb5c01aa8ba5bb905a88f38071efa98e796f4e68912a8dac63c", "relations": [{"rule": 2, "type": "equivalent", "target": "3e16904f4a6b92fd4d34b1f2577f80ee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4091577f7f431cb5c01aa8ba5bb905a88f38071efa98e796f4e68912a8dac63c"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3e16904f4a6b92fd4d34b1f2577f80ee", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 contrib/pageinspect 中元组空值位图显示不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4091577f7f431cb5c01aa8ba5bb905a88f38071efa98e796f4e68912a8dac63c"}, "url": "/docs/compare/?release=10.2#10.2-9f10615bcb8686d1", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}]}, {"id": "9.6.7-b71db59d780e7dba", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，构造涉及远程连接的计划时避免 <span>“<span>outer pathkeys do not match mergeclauses</span>”</span> 规划器错误（Robert Haas）</p>", "text": "在 contrib/postgres_fdw 中，构造涉及远程连接的计划时避免 “outer pathkeys do not match mergeclauses” 规划器错误（Robert Haas）", "title": "在 contrib/postgres_fdw 中，构造涉及远程连接的计划时避免 “outer pathkeys do not match mergeclauses” 规划器错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "abc2cdb4ba405e4de2be956af8194fec89d5df9d47513f8530683075bb217dfa", "section_path": ["变更"], "commit_groups": [], "identity_text": "In contrib/postgres_fdw, avoid outer pathkeys do not match mergeclauses planner error when constructing a plan involving a remote join (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/028", "db_id": "600bbd6c0b48df27ca3351eecec28c35", "patch_ids": [], "statement_hash": "57b83516ee8ef736f75a5c5261096f79752f7515642de945899e026f8480cc98", "relations": [{"rule": 2, "type": "equivalent", "target": "2b40f94240b67916dab3ec3c10ed06d9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b83516ee8ef736f75a5c5261096f79752f7515642de945899e026f8480cc98"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2b40f94240b67916dab3ec3c10ed06d9", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "在 contrib/postgres_fdw 中，避免构建涉及远程连接的计划时出现 “outer pathkeys do not match mergeclauses” 规划器错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b83516ee8ef736f75a5c5261096f79752f7515642de945899e026f8480cc98"}, "url": "/docs/compare/?release=10.2#10.2-9ac939d198523e65", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}]}, {"id": "9.6.7-46a1c69d76bee770", "cves": [], "html": "<p>提供在 macOS 上自动启动 Postgres 的现代示例（Tom Lane）</p>\n<p><code>contrib/start-scripts/osx</code> 中的脚本使用已被弃用十多年的基础设施，并且在过去几年的 macOS 版本中已完全不能工作。添加了包含使用较新 <span>launchd</span> 基础设施的脚本的新子目录 <code>contrib/start-scripts/macos</code>。</p>", "text": "提供在 macOS 上自动启动 Postgres 的现代示例（Tom Lane） contrib/start-scripts/osx 中的脚本使用已被弃用十多年的基础设施，并且在过去几年的 macOS 版本中已完全不能工作。添加了包含使用较新 launchd 基础设施的脚本的新子目录 contrib/start-scripts/macos。", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "4bf30ef67c502cce1f2ec63e802b358ad46dedc0cbc0a6ab7f623320e9932818", "section_path": ["变更"], "commit_groups": [], "identity_text": "Provide modern examples of how to auto-start Postgres on macOS (Tom Lane) The scripts in contrib/start-scripts/osx use infrastructure that's been deprecated for over a decade, and which no longer works at all in macOS releases of the last couple of years. Add a new subdirectory contrib/start-scripts/macos containing scripts that use the newer launchd infrastructure.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/029", "db_id": "24dc5e73850a35319c0666b533a1aa3a", "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8", "relations": [{"rule": 2, "type": "equivalent", "target": "0fdc2e226045f15715881ba8537fe99e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}, {"rule": 2, "type": "equivalent", "target": "a157895cacd9516d8a3e9d6a31ee8b63", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}, {"rule": 2, "type": "equivalent", "target": "bb7559029434b895fcfddb50d9d1ece6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}, {"rule": 2, "type": "equivalent", "target": "f05d3a9513c452c22d1e9a2c91061922", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0fdc2e226045f15715881ba8537fe99e", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "提供在 macOS 上自动启动 Postgres 的新式示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=10.2#10.2-7faa20fe42e341cf", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "f05d3a9513c452c22d1e9a2c91061922", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=9.5.11#9.5.11-46a1c69d76bee770", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "a157895cacd9516d8a3e9d6a31ee8b63", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=9.4.16#9.4.16-46a1c69d76bee770", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "bb7559029434b895fcfddb50d9d1ece6", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=9.3.21#9.3.21-46a1c69d76bee770", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-753f99569205dc0f", "cves": [], "html": "<p>修复 Windows 上为 OpenSSL 错误选择配置特定的库（Andrew Dunstan）</p>", "text": "修复 Windows 上为 OpenSSL 错误选择配置特定的库（Andrew Dunstan）", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "91975b8135e316b95a058f972d6ee5bfcf59c0caf51c44af7a2259f4d129db7a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect selection of configuration-specific libraries for OpenSSL on Windows (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/030", "db_id": "11e979639d15d29074555e35b178314a", "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399", "relations": [{"rule": 2, "type": "equivalent", "target": "03fbe5da453e704a9f7b2c31d5f56b09", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}, {"rule": 2, "type": "equivalent", "target": "1821ace7637e06949219db456023ab75", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}, {"rule": 2, "type": "equivalent", "target": "35c027c555fdb7b27909b2417b5e53f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}, {"rule": 2, "type": "equivalent", "target": "b6f28f745dffb36a98c91b630a747ea6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "03fbe5da453e704a9f7b2c31d5f56b09", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 Windows 上 OpenSSL 特定配置库选择不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=10.2#10.2-b25125f573955426", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "35c027c555fdb7b27909b2417b5e53f7", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=9.5.11#9.5.11-753f99569205dc0f", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "b6f28f745dffb36a98c91b630a747ea6", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=9.4.16#9.4.16-753f99569205dc0f", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "1821ace7637e06949219db456023ab75", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=9.3.21#9.3.21-753f99569205dc0f", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-d7da701af98363d5", "cves": [], "html": "<p>支持链接到 MinGW 构建的 libperl 版本（Noah Misch）</p>\n<p>这允许用一些常见的 Windows Perl 发行版构建 PL/Perl。</p>", "text": "支持链接到 MinGW 构建的 libperl 版本（Noah Misch） 这允许用一些常见的 Windows Perl 发行版构建 PL/Perl。", "title": "支持链接到 MinGW 构建的 libperl 版本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "f9faec3d53575a886ab2c42a250402cde6332d4a5207bef51b7f173c048fc8b6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Support linking to MinGW-built versions of libperl (Noah Misch) This allows building PL/Perl with some common Perl distributions for Windows.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/031", "db_id": "7fbe36a96fb9befdcfc79ef52fa232c8", "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92", "relations": [{"rule": 2, "type": "equivalent", "target": "039685f6945228e7540d88a1d1dae4c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}, {"rule": 2, "type": "equivalent", "target": "049293f62d03819db6748a8f3a024190", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}, {"rule": 2, "type": "equivalent", "target": "227e18bb740b98a43e3c0590d886e950", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}, {"rule": 2, "type": "equivalent", "target": "27c3ee1b4261beeaa64885e79865a075", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "227e18bb740b98a43e3c0590d886e950", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "支持链接到使用 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=10.2#10.2-4df2e1da054d8867", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "049293f62d03819db6748a8f3a024190", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "支持链接到 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d7da701af98363d5", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "039685f6945228e7540d88a1d1dae4c3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "支持链接到 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=9.4.16#9.4.16-d7da701af98363d5", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "27c3ee1b4261beeaa64885e79865a075", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "支持链接到 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=9.3.21#9.3.21-d7da701af98363d5", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-d07f5a0bbe4513a3", "cves": [], "html": "<p>修复 MSVC 构建测试 32 位 libperl 是否需要 <code>-D_USE_32BIT_TIME_T</code>（Noah Misch）</p>\n<p>可用的 Perl 发行版在这点上不一致，且没有报告它的可靠手段，因此求助于对所使用的库实际行为的构建时测试。</p>", "text": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T（Noah Misch） 可用的 Perl 发行版在这点上不一致，且没有报告它的可靠手段，因此求助于对所使用的库实际行为的构建时测试。", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "02431a2bcbc5c56e281b3e121553e71733c5f4fb6318ca0f196d651cea4e44ad", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix MSVC build to test whether 32-bit libperl needs -D_USE_32BIT_TIME_T (Noah Misch) Available Perl distributions are inconsistent about what they expect, and lack any reliable means of reporting it, so resort to a build-time test on what the library being used actually does.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/032", "db_id": "1a22595b7cd68b734f8a5a7551f89247", "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327", "relations": [{"rule": 2, "type": "equivalent", "target": "28df853935fd6bd79efc4f4325c6c920", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}, {"rule": 2, "type": "equivalent", "target": "4f10b5d5ac6eea55b9df82af9a09d0e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}, {"rule": 2, "type": "equivalent", "target": "9036a968392bb422875a906ff6485fee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}, {"rule": 2, "type": "equivalent", "target": "f4b0040686d69756f3ebb2c84af1d349", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f10b5d5ac6eea55b9df82af9a09d0e7", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "修复 MSVC 构建，测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=10.2#10.2-904cfc565d6f8982", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "9036a968392bb422875a906ff6485fee", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d07f5a0bbe4513a3", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "28df853935fd6bd79efc4f4325c6c920", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=9.4.16#9.4.16-d07f5a0bbe4513a3", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "f4b0040686d69756f3ebb2c84af1d349", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=9.3.21#9.3.21-d07f5a0bbe4513a3", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-e11937edc11472ae", "cves": [], "html": "<p>在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器（Takayuki Tsunakawa）</p>\n<p>这可以允许为一些以前不产生转储的早期启动失败收集核心转储。</p>", "text": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器（Takayuki Tsunakawa） 这可以允许为一些以前不产生转储的早期启动失败收集核心转储。", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "ce105f3523581cbd2f792b698f8af1cfa3729182b3a38f3161d31b5acc76aca3", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, install the crash dump handler earlier in postmaster startup (Takayuki Tsunakawa) This may allow collection of a core dump for some early-startup failures that did not produce a dump before.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/033", "db_id": "adff4c7ba3dce256d567d3d96ba5193a", "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823", "relations": [{"rule": 2, "type": "equivalent", "target": "001d2b44e15d4d920614bd624a7b8300", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}, {"rule": 2, "type": "equivalent", "target": "0f385e3a2a82eed547dcc4fabbcf8d25", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}, {"rule": 2, "type": "equivalent", "target": "65514a44c9c68979d1f15a1eba134f81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}, {"rule": 2, "type": "equivalent", "target": "b52e37a6f1f6b19e88494b484af71ed9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "001d2b44e15d4d920614bd624a7b8300", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "在 Windows 上，在 postmaster 启动期间更早安装崩溃转储处理程序", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=10.2#10.2-e678f47afd2a17a1", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "b52e37a6f1f6b19e88494b484af71ed9", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=9.5.11#9.5.11-e11937edc11472ae", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "65514a44c9c68979d1f15a1eba134f81", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=9.4.16#9.4.16-e11937edc11472ae", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "0f385e3a2a82eed547dcc4fabbcf8d25", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=9.3.21#9.3.21-e11937edc11472ae", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-3f30c1aaf733e938", "cves": [], "html": "<p>在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃（Takayuki Tsunakawa）</p>", "text": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃（Takayuki Tsunakawa）", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "3febb714b92e36f6c9ed4feaeced8a12f0e74783d3f1a0809f930d4d05f4f883", "section_path": ["变更"], "commit_groups": [], "identity_text": "On Windows, avoid encoding-conversion-related crashes when emitting messages very early in postmaster startup (Takayuki Tsunakawa)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/034", "db_id": "b8c7d687fe34c827987df0ddbfd57bfc", "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89", "relations": [{"rule": 2, "type": "equivalent", "target": "2649af25929b0e8b46307c46840fa986", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}, {"rule": 2, "type": "equivalent", "target": "3acbfa7fb5bd1041b24a68cd293fd1fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}, {"rule": 2, "type": "equivalent", "target": "f1804d79b68ca97f970ea754ca5a5e38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}, {"rule": 2, "type": "equivalent", "target": "f7f1ccca62f5a4c6b703f051f441b902", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}], "version": "9.6.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2649af25929b0e8b46307c46840fa986", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "在 Windows 上，避免 postmaster 启动的极早阶段输出消息时发生与编码转换有关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=10.2#10.2-29606fd5ce0529c6", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "3acbfa7fb5bd1041b24a68cd293fd1fe", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=9.5.11#9.5.11-3f30c1aaf733e938", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "f7f1ccca62f5a4c6b703f051f441b902", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=9.4.16#9.4.16-3f30c1aaf733e938", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "f1804d79b68ca97f970ea754ca5a5e38", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=9.3.21#9.3.21-3f30c1aaf733e938", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-d01b38f4513b7edd", "cves": [], "html": "<p>把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD（David Carlier）</p>", "text": "把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD（David Carlier）", "title": "把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "6657bb175f4ea208475c428c6020c41e61cf688b8bf34a3029eaaf52aa6c3d33", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use our existing Motorola 68K spinlock code on OpenBSD as well as NetBSD (David Carlier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/035", "db_id": "2aaebb6e760e502605973f17c8ba4806", "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200", "relations": [{"rule": 2, "type": "equivalent", "target": "47c8164f89a81b8d4eb4b24ddf579ad5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}, {"rule": 2, "type": "equivalent", "target": "9b9ca2ad753ce490361c99a2856541f1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}, {"rule": 2, "type": "equivalent", "target": "caaff26961c06d094ce0f189421e2ec3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}, {"rule": 2, "type": "equivalent", "target": "dae1c877f244be94962949c6c6134b4e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dae1c877f244be94962949c6c6134b4e", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "将现有 Motorola 68K 自旋锁代码用于 OpenBSD 和 NetBSD", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=10.2#10.2-91d281520dbaf037", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "9b9ca2ad753ce490361c99a2856541f1", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d01b38f4513b7edd", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "caaff26961c06d094ce0f189421e2ec3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 OpenBSD 上也使用现有的 Motorola 68K 自旋锁代码，与 NetBSD 一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=9.4.16#9.4.16-b01cca277aa11b90", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "47c8164f89a81b8d4eb4b24ddf579ad5", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=9.3.21#9.3.21-d01b38f4513b7edd", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-0440d449c8227e15", "cves": [], "html": "<p>为 Motorola 88K 添加自旋锁支持（David Carlier）</p>", "text": "为 Motorola 88K 添加自旋锁支持（David Carlier）", "title": "为 Motorola 88K 添加自旋锁支持", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "f3fd1dbc61144f8442662aafb353ae37db22211908a10b4bdba6251b73f71615", "section_path": ["变更"], "commit_groups": [], "identity_text": "Add support for spinlocks on Motorola 88K (David Carlier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/036", "db_id": "cc385b4c4d8fce475f44782ab00544e5", "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a", "relations": [{"rule": 2, "type": "equivalent", "target": "0cd70096e5dd4b175a9d088a39c8b3b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}, {"rule": 2, "type": "equivalent", "target": "592b0e3550c45d12fa249c7f3a184a35", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}, {"rule": 2, "type": "equivalent", "target": "8e5a1db0a07f57f25b8c7ad53e78bfb3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}, {"rule": 2, "type": "equivalent", "target": "bfa9a28cc40a79a97ae78a5019724377", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "592b0e3550c45d12fa249c7f3a184a35", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "增加对 Motorola 88K 上自旋锁的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=10.2#10.2-351bcb54b8105d69", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "8e5a1db0a07f57f25b8c7ad53e78bfb3", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "为 Motorola 88K 添加自旋锁支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=9.5.11#9.5.11-0440d449c8227e15", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "0cd70096e5dd4b175a9d088a39c8b3b3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "新增对 Motorola 88K 自旋锁的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=9.4.16#9.4.16-b124e3c286a80d8b", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "bfa9a28cc40a79a97ae78a5019724377", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "为 Motorola 88K 添加自旋锁支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=9.3.21#9.3.21-0440d449c8227e15", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "9.6.7-9e69976827ae2bed", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。<code>US/Pacific-New</code> 时区已被移除（它本来只是 <code>America/Los_Angeles</code> 的别名）。</p>", "text": "更新时区数据文件到 tzdata 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除（它本来只是 America/Los_Angeles 的别名）。", "title": "更新时区数据文件到 tzdata 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除（它本来只是 America/Los_Angeles 的别名）。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5", "source_hash": "1433d781ba7b3786fac50812a2d08c464f18c515f70b422e4724a11cdd21dee5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2018c for DST law changes in Brazil, Sao Tome and Principe, plus historical corrections for Bolivia, Japan, and South Sudan. The US/Pacific-New zone has been removed (it was only an alias for America/Los_Angeles anyway).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.7/changes/037", "db_id": "64f0bacd61bdbcb4e7b5df04e7613b9e", "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9", "relations": [{"rule": 2, "type": "equivalent", "target": "44697021345d02256c38845c2989b023", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}, {"rule": 2, "type": "equivalent", "target": "685247e6871674bcf06f3eb8ac95fc7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}, {"rule": 2, "type": "equivalent", "target": "96a6cd7de5daa3706770e0012b49d3e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}, {"rule": 2, "type": "equivalent", "target": "f9d5a9c145d7ccd1631d90c6f64f72da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}], "version": "9.6.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "96a6cd7de5daa3706770e0012b49d3e4", "kind": "equivalent", "version": "10.2", "label": "10.2", "title": "将时区数据文件更新到 tzdata 2018c 版，以反映巴西、圣多美和普林西比的夏令时法规变更，并修正玻利维亚、日本和南苏丹的历史数据。已移除 US/Pacific-New 时区（它本来就只是 America/Los_Angeles 的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=10.2#10.2-5afbe12bf27bc0d9", "source_url": "/docs/release/10.2/#id-1.11.6.26.5"}, {"db_id": "44697021345d02256c38845c2989b023", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "更新时区数据文件到 tzdata 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除（它本来只是 America/Los_Angeles 的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=9.5.11#9.5.11-9e69976827ae2bed", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "685247e6871674bcf06f3eb8ac95fc7f", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "将时区数据文件更新到tzdata发行版 2018c，以反映巴西、圣多美和普林西比的夏令时法规变更，以及玻利维亚、日本和南苏丹的历史修正。US/Pacific-New时区已被移除（它本来就只是America/Los_Angeles的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=9.4.16#9.4.16-07b3b80c1a586529", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "f9d5a9c145d7ccd1631d90c6f64f72da", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "更新时区数据文件到 tzdata 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除（它本来只是 America/Los_Angeles 的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=9.3.21#9.3.21-9e69976827ae2bed", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}]}, {"date": "2017-11-09", "build": "9.6.6", "major": "9.6", "minor": 6, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.6", "eol_date": "2021-11-11", "date_text": "2017-11-09", "supported": false, "manual_url": "/docs/9.6/release-9-6-6.html", "source_url": "/docs/release/9.6.6/", "entry_count": 38, "placeholder": false, "content_hash": "f789d202d342be1f8603b8d671d91e024327fc8408b1576d04902350ba62ee1c", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 38, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你使用 BRIN 索引，请参见下面第四条变更日志条目。</p>\n<p>另外，如果你是从 9.6.4 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-4.html\" title=\"E.21. 版本 9.6.4\">第 E.21 节</a>。</p>", "compatibility_count": 0, "label": "9.6.6", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3247, "support_days": -1784, "entries": [{"id": "9.6.6-20b5933e24adcaef", "cves": ["CVE-2017-15099"], "html": "<p>确保 <code>INSERT ... ON CONFLICT DO UPDATE</code> 在所有情况下检查表权限和 RLS 策略（Dean Rasheed）</p>\n<p><code>INSERT ... ON CONFLICT DO UPDATE</code> 的更新路径需要对仲裁者索引的列具有 <code>SELECT</code> 权限，但在仲裁者由约束名指定的情况下没有检查这一点。此外，对于启用了行级安全的表，它没有根据表的 <code>SELECT</code> 策略检查被更新的行（无论仲裁者索引如何指定）。（CVE-2017-15099）</p>", "text": "确保 INSERT ... ON CONFLICT DO UPDATE 在所有情况下检查表权限和 RLS 策略（Dean Rasheed） INSERT ... ON CONFLICT DO UPDATE 的更新路径需要对仲裁者索引的列具有 SELECT 权限，但在仲裁者由约束名指定的情况下没有检查这一点。此外，对于启用了行级安全的表，它没有根据表的 SELECT 策略检查被更新的行（无论仲裁者索引如何指定）。（CVE-2017-15099）", "title": "确保 INSERT ... ON CONFLICT DO UPDATE 在所有情况下检查表权限和 RLS 策略", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "ad95f0bb915c37b3bdc31c0c08e55207936989064014b08bcb3f48c03e7aec3d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure that INSERT ... ON CONFLICT DO UPDATE checks table permissions and RLS policies in all cases (Dean Rasheed) The update path of INSERT ... ON CONFLICT DO UPDATE requires SELECT permission on the columns of the arbiter index, but it failed to check for that in the case of an arbiter specified by constraint name. In addition, for a table with row level security enabled, it failed to check updated rows against the table's SELECT policies (regardless of how the arbiter index was specified). (CVE-2017-15099)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/001", "db_id": "66a5de7ed1ca2500e13ee943ddddeed2", "patch_ids": [], "statement_hash": "bdc7b72eb6e30c77a50b455cdec45ebcf7510aef8909d086284ef0df873502c0", "relations": [{"rule": 2, "type": "equivalent", "target": "380f4bcd3b093f63238d5eb7ca39ec32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdc7b72eb6e30c77a50b455cdec45ebcf7510aef8909d086284ef0df873502c0"}}, {"rule": 2, "type": "equivalent", "target": "401afe0c5f64400e64b520a851b9dee3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdc7b72eb6e30c77a50b455cdec45ebcf7510aef8909d086284ef0df873502c0"}}], "version": "9.6.6", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "380f4bcd3b093f63238d5eb7ca39ec32", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "确保 INSERT ... ON CONFLICT DO UPDATE 在所有情况下都检查表权限和 RLS 策略", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdc7b72eb6e30c77a50b455cdec45ebcf7510aef8909d086284ef0df873502c0"}, "url": "/docs/compare/?release=10.1#10.1-85f253dc8097c047", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "401afe0c5f64400e64b520a851b9dee3", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "确保 INSERT ... ON CONFLICT DO UPDATE 在所有情况下检查表权限和 RLS 策略", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bdc7b72eb6e30c77a50b455cdec45ebcf7510aef8909d086284ef0df873502c0"}, "url": "/docs/compare/?release=9.5.10#9.5.10-20b5933e24adcaef", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}]}, {"id": "9.6.6-6347e8c17fee8c51", "cves": ["CVE-2017-15098"], "html": "<p>修复 <code>json{b}_populate_recordset()</code> 中行类型不匹配导致的崩溃（Michael Paquier、Tom Lane）</p>\n<p>这些函数使用 <code>FROM ... AS</code> 子句中指定的结果行类型，而没有检查它与所提供元组值的实际行类型匹配。如果不匹配，通常会导致崩溃，尽管泄露服务器内存内容似乎也有可能。（CVE-2017-15098）</p>", "text": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃（Michael Paquier、Tom Lane） 这些函数使用 FROM ... AS 子句中指定的结果行类型，而没有检查它与所提供元组值的实际行类型匹配。如果不匹配，通常会导致崩溃，尽管泄露服务器内存内容似乎也有可能。（CVE-2017-15098）", "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "ef466fc108438644ee2dc61b75f79e9bac08d4dc2756adf24052f57bd91bad06", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash due to rowtype mismatch in json{b}_populate_recordset() (Michael Paquier, Tom Lane) These functions used the result rowtype specified in the FROM ... AS clause without checking that it matched the actual rowtype of the supplied tuple value. If it didn't, that would usually result in a crash, though disclosure of server memory contents seems possible as well. (CVE-2017-15098)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/002", "db_id": "191926bdadf659c16bd799b814e0d447", "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf", "relations": [{"rule": 2, "type": "equivalent", "target": "37b394189e78d2a3b737d155e68d704d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}}, {"rule": 2, "type": "equivalent", "target": "399e2c79d4fb41c334e3d99840aff867", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}}, {"rule": 2, "type": "equivalent", "target": "b357626c41922e96515309927cc03818", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}}, {"rule": 2, "type": "equivalent", "target": "ea0d6ab24e73c65a676e3d498331a15d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}}], "version": "9.6.6", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "37b394189e78d2a3b737d155e68d704d", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}, "url": "/docs/compare/?release=10.1#10.1-6347e8c17fee8c51", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "ea0d6ab24e73c65a676e3d498331a15d", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}, "url": "/docs/compare/?release=9.5.10#9.5.10-6347e8c17fee8c51", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "399e2c79d4fb41c334e3d99840aff867", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}, "url": "/docs/compare/?release=9.4.15#9.4.15-6347e8c17fee8c51", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "b357626c41922e96515309927cc03818", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a69b26be09366182ddf5eb40831198aab8c3cc1e4caed1e36f829ab7d9245ebf"}, "url": "/docs/compare/?release=9.3.20#9.3.20-6347e8c17fee8c51", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}]}, {"id": "9.6.6-b695ceda5feee1ee", "cves": ["CVE-2017-12172"], "html": "<p>修复示例服务器启动脚本在打开 <code>$PGLOG</code> 之前变成 <code>$PGUSER</code>（Noah Misch）</p>\n<p>此前，postmaster 日志文件是在仍以 root 运行时打开的。因此数据库所有者可以通过让 <code>$PGLOG</code> 成为指向某个其他文件的符号链接来攻击另一个系统用户，该文件随后会因追加日志消息而被损坏。</p>\n<p>默认情况下这些脚本不会安装到任何地方。使用了它们的用户需要手动重新复制，或对其修改版应用相同的更改。如果现有的 <code>$PGLOG</code> 文件为 root 所有，在用修正后的脚本重启服务器之前需要把它移开或重命名。（CVE-2017-12172）</p>", "text": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER（Noah Misch） 此前，postmaster 日志文件是在仍以 root 运行时打开的。因此数据库所有者可以通过让 $PGLOG 成为指向某个其他文件的符号链接来攻击另一个系统用户，该文件随后会因追加日志消息而被损坏。 默认情况下这些脚本不会安装到任何地方。使用了它们的用户需要手动重新复制，或对其修改版应用相同的更改。如果现有的 $PGLOG 文件为 root 所有，在用修正后的脚本重启服务器之前需要把它移开或重命名。（CVE-2017-12172）", "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "17f45a4e936bdb211703990d45e492564f7733ce7f335aa8398a2a6cdd12bfa0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix sample server-start scripts to become $PGUSER before opening $PGLOG (Noah Misch) Previously, the postmaster log file was opened while still running as root. The database owner could therefore mount an attack against another system user by making $PGLOG be a symbolic link to some other file, which would then become corrupted by appending log messages. By default, these scripts are not installed anywhere. Users who have made use of them will need to manually recopy them, or apply the same changes to their modified versions. If the existing $PGLOG file is root-owned, it will need to be removed or renamed out of the way before restarting the server with the corrected script. (CVE-2017-12172)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/003", "db_id": "a859dd3ad16413efde5ed5f881f08378", "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de", "relations": [{"rule": 2, "type": "equivalent", "target": "061da361dc80476b681c7c5d03fc708b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}}, {"rule": 2, "type": "equivalent", "target": "1841cb200c58de883289108126c8e6b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}}, {"rule": 2, "type": "equivalent", "target": "58dc708b44515e2bcbaa8e8e039dbcca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}}, {"rule": 2, "type": "equivalent", "target": "a81505d07ebbef14783cac259f1cc534", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}}, {"rule": 2, "type": "equivalent", "target": "e16d073a3ea0513c2861cddeed4600e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}}], "version": "9.6.6", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "061da361dc80476b681c7c5d03fc708b", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复示例服务器启动脚本，使其在打开 $PGLOG 之前切换为 $PGUSER", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}, "url": "/docs/compare/?release=10.1#10.1-72954d576ba136af", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "e16d073a3ea0513c2861cddeed4600e4", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}, "url": "/docs/compare/?release=9.5.10#9.5.10-b695ceda5feee1ee", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "1841cb200c58de883289108126c8e6b6", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}, "url": "/docs/compare/?release=9.4.15#9.4.15-b695ceda5feee1ee", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "58dc708b44515e2bcbaa8e8e039dbcca", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}, "url": "/docs/compare/?release=9.3.20#9.3.20-b695ceda5feee1ee", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "a81505d07ebbef14783cac259f1cc534", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a05e5494d35e22e6034cd6cf9b331d83ceac1c7dd16696fb61f89bfd812c00de"}, "url": "/docs/compare/?release=9.2.24#9.2.24-b695ceda5feee1ee", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-43525fad68699c88", "cves": [], "html": "<p>修复 BRIN 索引摘要正确处理并发表扩展（Álvaro Herrera）</p>\n<p>此前，一个竞态条件允许一些表行被遗漏在索引之外。可能需要对现有 BRIN 索引执行 REINDEX 以从此问题的既往发生中恢复。</p>", "text": "修复 BRIN 索引摘要正确处理并发表扩展（Álvaro Herrera） 此前，一个竞态条件允许一些表行被遗漏在索引之外。可能需要对现有 BRIN 索引执行 REINDEX 以从此问题的既往发生中恢复。", "title": "修复 BRIN 索引摘要正确处理并发表扩展", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "94f35bab3d4627f03ccd1538f7f8aec79faed15192a65af6b5c5587026627413", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix BRIN index summarization to handle concurrent table extension correctly (Álvaro Herrera) Previously, a race condition allowed some table rows to be omitted from the index. It may be necessary to reindex existing BRIN indexes to recover from past occurrences of this problem.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/004", "db_id": "e2e56d22bb5f4dd25374a23426836aee", "patch_ids": [], "statement_hash": "cfdd83034fb7a4ef3ed6e058436900c59d58fb5805ca06dcc36b12967b68fe0b", "relations": [{"rule": 2, "type": "equivalent", "target": "d21d9848fa1bd9d7a5ae1cf39c315556", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cfdd83034fb7a4ef3ed6e058436900c59d58fb5805ca06dcc36b12967b68fe0b"}}, {"rule": 2, "type": "equivalent", "target": "fef51c07bf244be99a243ef30589e76e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cfdd83034fb7a4ef3ed6e058436900c59d58fb5805ca06dcc36b12967b68fe0b"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d21d9848fa1bd9d7a5ae1cf39c315556", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复 BRIN 索引摘要生成，使其正确处理并发的表扩展", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cfdd83034fb7a4ef3ed6e058436900c59d58fb5805ca06dcc36b12967b68fe0b"}, "url": "/docs/compare/?release=10.1#10.1-041a2e7d0f5fe751", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "fef51c07bf244be99a243ef30589e76e", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 BRIN 索引摘要正确处理并发表扩展", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cfdd83034fb7a4ef3ed6e058436900c59d58fb5805ca06dcc36b12967b68fe0b"}, "url": "/docs/compare/?release=9.5.10#9.5.10-43525fad68699c88", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}]}, {"id": "9.6.6-b5dc812239b20db5", "cves": [], "html": "<p>修复 BRIN 索引并发更新期间可能的失败（Tom Lane）</p>\n<p>这些竞态条件可能导致诸如 <span>“<span>invalid index offnum</span>”</span> 或 <span>“<span>inconsistent range map</span>”</span> 之类的错误。</p>", "text": "修复 BRIN 索引并发更新期间可能的失败（Tom Lane） 这些竞态条件可能导致诸如 “invalid index offnum” 或 “inconsistent range map” 之类的错误。", "title": "修复 BRIN 索引并发更新期间可能的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "8d80917ee37ecab2e6e609b396458c77315c669303eb94deb32ba96082280cf7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible failures during concurrent updates of a BRIN index (Tom Lane) These race conditions could result in errors like invalid index offnum or inconsistent range map.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/005", "db_id": "08985ba0a6ef6963aa3d32a2df40e916", "patch_ids": [], "statement_hash": "725c1bbdc816d1d29cf9d27cfffb287c3995e518ceadcdaa4ec968ba2f1d6aa8", "relations": [{"rule": 2, "type": "equivalent", "target": "7b4faca00f475c7c2c6e98dabd155d51", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "725c1bbdc816d1d29cf9d27cfffb287c3995e518ceadcdaa4ec968ba2f1d6aa8"}}, {"rule": 2, "type": "equivalent", "target": "b0bcb6ca9d897036eb61462af2c9cca3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "725c1bbdc816d1d29cf9d27cfffb287c3995e518ceadcdaa4ec968ba2f1d6aa8"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7b4faca00f475c7c2c6e98dabd155d51", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复并发更新 BRIN 索引期间可能发生的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "725c1bbdc816d1d29cf9d27cfffb287c3995e518ceadcdaa4ec968ba2f1d6aa8"}, "url": "/docs/compare/?release=10.1#10.1-63025365118b66d9", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "b0bcb6ca9d897036eb61462af2c9cca3", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 BRIN 索引并发更新期间可能的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "725c1bbdc816d1d29cf9d27cfffb287c3995e518ceadcdaa4ec968ba2f1d6aa8"}, "url": "/docs/compare/?release=9.5.10#9.5.10-b5dc812239b20db5", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}]}, {"id": "9.6.6-e11054395380bc6f", "cves": [], "html": "<p>修复从使用 SPI 的函数（特别是任何用 PL 语言编写的函数）调用逻辑解码时崩溃（Tom Lane）</p>", "text": "修复从使用 SPI 的函数（特别是任何用 PL 语言编写的函数）调用逻辑解码时崩溃（Tom Lane）", "title": "修复从使用 SPI 的函数（特别是任何用 PL 语言编写的函数）调用逻辑解码时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "b360085a0ce51ecd6986abe0e1f8eae8af49c24478d8cf872a50e48f23e334fa", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix crash when logical decoding is invoked from a SPI-using function, in particular any function written in a PL language (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/006", "db_id": "900b590dedd3fa57b2276a470d16c59c", "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b", "relations": [{"rule": 2, "type": "equivalent", "target": "d7712c8f429e00f2ff58d6d97cfb681b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}}, {"rule": 2, "type": "equivalent", "target": "d9b5032f1d268347b703e11848bd7e28", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}}, {"rule": 2, "type": "equivalent", "target": "da2723bbe135add5ce39c87e8667a6ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d7712c8f429e00f2ff58d6d97cfb681b", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复从使用 SPI 的函数（尤其是用 PL 语言编写的任何函数）调用逻辑解码时的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}, "url": "/docs/compare/?release=10.1#10.1-77c54d6b8262b88b", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "d9b5032f1d268347b703e11848bd7e28", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复从使用 SPI 的函数（特别是任何用 PL 语言编写的函数）调用逻辑解码时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}, "url": "/docs/compare/?release=9.5.10#9.5.10-e11054395380bc6f", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "da2723bbe135add5ce39c87e8667a6ed", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复从使用 SPI 的函数（特别是任何用 PL 语言编写的函数）调用逻辑解码时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5d534d90b091782b7e8e6fb63af1326c4234a870ddcc902aadfd0ba2ec12577b"}, "url": "/docs/compare/?release=9.4.15#9.4.15-1586d96c829891f2", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}]}, {"id": "9.6.6-40ee3ccb2107cb6e", "cves": [], "html": "<p>修复多个 <code>GROUPING SETS</code> 列包含同一简单变量时的错误查询结果（Tom Lane）</p>", "text": "修复多个 GROUPING SETS 列包含同一简单变量时的错误查询结果（Tom Lane）", "title": "修复多个 GROUPING SETS 列包含同一简单变量时的错误查询结果", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "3f3de2c1b36ca4b569dfeb214b490de3ca3a3c40093167b1fed909a2fd8394bd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect query results when multiple GROUPING SETS columns contain the same simple variable (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/007", "db_id": "4b06ce4f978351a14779b1338f4319ff", "patch_ids": [], "statement_hash": "daccd3681d0a273bdb75c69c5bfd491f5974666fe560bde32acf42475720718a", "relations": [{"rule": 2, "type": "equivalent", "target": "8e496fc9d11aa4b3960a410c2366181a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daccd3681d0a273bdb75c69c5bfd491f5974666fe560bde32acf42475720718a"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8e496fc9d11aa4b3960a410c2366181a", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复多个 GROUPING SETS 列包含相同简单变量时查询结果不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daccd3681d0a273bdb75c69c5bfd491f5974666fe560bde32acf42475720718a"}, "url": "/docs/compare/?release=10.1#10.1-05e9704cf6a0909d", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}]}, {"id": "9.6.6-a0be300a0f7ff04f", "cves": [], "html": "<p>修复嵌套查询的错误并行化决策（Amit Kapila、Kuntal Ghosh）</p>", "text": "修复嵌套查询的错误并行化决策（Amit Kapila、Kuntal Ghosh）", "title": "修复嵌套查询的错误并行化决策", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "d3bbeac5b867517b2bbbf6fc98847e22666b42b53df03963da192c8e5d8990c5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect parallelization decisions for nested queries (Amit Kapila, Kuntal Ghosh)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/008", "db_id": "1e2cd78c3594ff86aeccadac0ff8e234", "patch_ids": [], "statement_hash": "d056890804a7e5090d308192b26573b4018efaf824df54bf2b41652dbff0c7e6", "relations": [{"rule": 2, "type": "equivalent", "target": "1efed301fe4077ac7dfb7606c4fe638c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d056890804a7e5090d308192b26573b4018efaf824df54bf2b41652dbff0c7e6"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1efed301fe4077ac7dfb7606c4fe638c", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复对嵌套查询作出的不正确并行化决定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d056890804a7e5090d308192b26573b4018efaf824df54bf2b41652dbff0c7e6"}, "url": "/docs/compare/?release=10.1#10.1-1e02745daeec9df5", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}]}, {"id": "9.6.6-26cf7658cb4b5778", "cves": [], "html": "<p>修复并行查询处理在最近使用过的角色被删除时不失败（Amit Kapila）</p>", "text": "修复并行查询处理在最近使用过的角色被删除时不失败（Amit Kapila）", "title": "修复并行查询处理在最近使用过的角色被删除时不失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "c70b742ba431472af48b55a21e72c4a1c13a80730c72e32574523236cadb4fdd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix parallel query handling to not fail when a recently-used role is dropped (Amit Kapila)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/009", "db_id": "7d3c64014b1cfe7c5c584f1c155750fc", "patch_ids": [], "statement_hash": "15887a9513fa819ff294c6b771d6c3c3f38f1227ebe99e989704178051263aea", "relations": [{"rule": 2, "type": "equivalent", "target": "78fefaa0b6095d499b2030e8a4711de3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "15887a9513fa819ff294c6b771d6c3c3f38f1227ebe99e989704178051263aea"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "78fefaa0b6095d499b2030e8a4711de3", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复并行查询处理，避免最近使用过的角色被删除时发生失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "15887a9513fa819ff294c6b771d6c3c3f38f1227ebe99e989704178051263aea"}, "url": "/docs/compare/?release=10.1#10.1-a4ebb1bbb8e01c65", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}]}, {"id": "9.6.6-2a1f733d60fe75b9", "cves": [], "html": "<p>修复 <code>json_build_array()</code>、<code>json_build_object()</code> 及其 <code>jsonb</code> 等价函数正确处理显式 <code>VARIADIC</code> 参数（Michael Paquier）</p>", "text": "修复 json_build_array()、json_build_object() 及其 jsonb 等价函数正确处理显式 VARIADIC 参数（Michael Paquier）", "title": "修复 json_build_array()、json_build_object() 及其 jsonb 等价函数正确处理显式 VARIADIC 参数", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "6e3c1d038776d22364c06cd674456f2b01b1bd3348e3c94b96c60735f27ca965", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix json_build_array(), json_build_object(), and their jsonb equivalents to handle explicit VARIADIC arguments correctly (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/010", "db_id": "ebcfc09ce0306c1e91a3fe2d4c753e2c", "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d", "relations": [{"rule": 2, "type": "equivalent", "target": "0f347118ea5476d78ae7cfc6afc3de76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}}, {"rule": 2, "type": "equivalent", "target": "17540cc0aa36f42db829bb39af599b7b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}}, {"rule": 2, "type": "equivalent", "target": "8dc79438cda57a198fc3c7951a656488", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8dc79438cda57a198fc3c7951a656488", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复 json_build_array()、json_build_object() 及其 jsonb 对应函数，使其正确处理显式 VARIADIC 参数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}, "url": "/docs/compare/?release=10.1#10.1-8bffb9fa5d5c7e8e", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "17540cc0aa36f42db829bb39af599b7b", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 json_build_array()、json_build_object() 及其 jsonb 等价函数正确处理显式 VARIADIC 参数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}, "url": "/docs/compare/?release=9.5.10#9.5.10-2a1f733d60fe75b9", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "0f347118ea5476d78ae7cfc6afc3de76", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复json_build_array()、json_build_object()及其jsonb等价函数正确处理显式VARIADIC参数的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea7cf6ee04b0b83963e0af6776cdd63066d817e174e60414cc086e0e6e0cd9d"}, "url": "/docs/compare/?release=9.4.15#9.4.15-13e04a714b411797", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}]}, {"id": "9.6.6-c236d03a7517be54", "cves": [], "html": "<p>正确拒绝把无穷大浮点值转换为 <code>numeric</code> 类型的尝试（Tom Lane、KaiGai Kohei）</p>\n<p>此前行为是与平台相关的。</p>", "text": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试（Tom Lane、KaiGai Kohei） 此前行为是与平台相关的。", "title": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "c1b81b9ee792fa19da26b9365fc906bb399d53e755553eb7e7c570177bb2404e", "section_path": ["变更"], "commit_groups": [["07ea925e2", "2e82fba0e", "72d4fd08e", "7769fc000", "ad56dbd6c", "c38575edc", "def03e4bf"]], "identity_text": "Properly reject attempts to convert infinite float values to type numeric (Tom Lane, KaiGai Kohei) Previously the behavior was platform-dependent.", "commit_aliases": ["07ea925e2", "2e82fba0e", "72d4fd08e", "7769fc000", "ad56dbd6c", "c38575edc", "def03e4bf"], "source_commits": ["def03e4bf"], "source_entry_id": "9.6.6/changes/011", "db_id": "f478875aa928332b3c7de8354b92e99d", "patch_ids": ["99f6ab58d300457d4a6fb41d776c284d"], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9", "relations": [{"rule": 2, "type": "equivalent", "target": "1c3b664e169e7db957bffb63f49a583a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}}, {"rule": 2, "type": "equivalent", "target": "37d688fc8a40beae324922612cd078f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}}, {"rule": 2, "type": "equivalent", "target": "4099b281f3b22fd6d6338ef9038b428f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}}, {"rule": 2, "type": "equivalent", "target": "6fb383dce08a3cd1787f8492c5c597a7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4099b281f3b22fd6d6338ef9038b428f", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}, "url": "/docs/compare/?release=9.5.10#9.5.10-c236d03a7517be54", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "37d688fc8a40beae324922612cd078f9", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}, "url": "/docs/compare/?release=9.4.15#9.4.15-c236d03a7517be54", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "1c3b664e169e7db957bffb63f49a583a", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}, "url": "/docs/compare/?release=9.3.20#9.3.20-c236d03a7517be54", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "6fb383dce08a3cd1787f8492c5c597a7", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "正确拒绝把无穷大浮点值转换为 numeric 类型的尝试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "12edbb64bce651f60a1ebd2487b209c3463a4ce2a7efa8fdbdcdbe56807c60d9"}, "url": "/docs/compare/?release=9.2.24#9.2.24-c236d03a7517be54", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-98a6704c482fbe65", "cves": [], "html": "<p>修复在视图末尾添加列后的边界崩溃（Tom Lane）</p>", "text": "修复在视图末尾添加列后的边界崩溃（Tom Lane）", "title": "修复在视图末尾添加列后的边界崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "7665bd6471f17435461f82cd3ba33cc010afeb4080c8a8cd7897c3dd32b6ff69", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix corner-case crashes when columns have been added to the end of a view (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/012", "db_id": "8a7b9b004774c09111b17cb617d4a36d", "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf", "relations": [{"rule": 2, "type": "equivalent", "target": "5dd9112df0daa106089cd18015b5f07c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"rule": 2, "type": "equivalent", "target": "89c8e733fdead3c204e3786e2b7c350d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"rule": 2, "type": "equivalent", "target": "8df8e065b7c9084d432bf1eb20ebef6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"rule": 2, "type": "equivalent", "target": "ecb8d6ca4538276779e5fb096fe8c30a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"rule": 2, "type": "equivalent", "target": "ef97718edf710920c1ada79e912a7394", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ef97718edf710920c1ada79e912a7394", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复在视图末尾添加列时的极端情况崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=10.1#10.1-6025f14bd0231868", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "89c8e733fdead3c204e3786e2b7c350d", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复在视图末尾添加列后的边界崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=9.5.10#9.5.10-98a6704c482fbe65", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "ecb8d6ca4538276779e5fb096fe8c30a", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复在视图末尾添加列后极端情况下崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=9.4.15#9.4.15-a372add8964a05a5", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "5dd9112df0daa106089cd18015b5f07c", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复在视图末尾添加列后的边界崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=9.3.20#9.3.20-98a6704c482fbe65", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "8df8e065b7c9084d432bf1eb20ebef6f", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "修复在视图末尾添加列后的边界崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=9.2.24#9.2.24-98a6704c482fbe65", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-4afb8b5079afaf49", "cves": [], "html": "<p>在视图或规则包含 <code>FieldSelect</code> 或 <code>FieldStore</code> 表达式节点时记录正确的依赖（Tom Lane）</p>\n<p>缺少这些依赖可能允许本应失败的列或数据类型 <code>DROP</code> 成功执行，从而导致之后使用该视图或规则时出错。此补丁不会保护现有视图/规则，只保护将来创建的。</p>", "text": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖（Tom Lane） 缺少这些依赖可能允许本应失败的列或数据类型 DROP 成功执行，从而导致之后使用该视图或规则时出错。此补丁不会保护现有视图/规则，只保护将来创建的。", "title": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "e9f7909483f9b08a0ed13a4381e0bdd6560859e627903da859b4835cfbbbec95", "section_path": ["变更"], "commit_groups": [], "identity_text": "Record proper dependencies when a view or rule contains FieldSelect or FieldStore expression nodes (Tom Lane) Lack of these dependencies could allow a column or data type DROP to go through when it ought to fail, thereby causing later uses of the view or rule to get errors. This patch does not do anything to protect existing views/rules, only ones created in the future.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/013", "db_id": "160e5bf639315788f17597b7c9e70f34", "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70", "relations": [{"rule": 2, "type": "equivalent", "target": "007bd13b9c4a811e28128c420f3c0bd1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}}, {"rule": 2, "type": "equivalent", "target": "1cd6dd04f06a325fa1e38208d26fc0fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}}, {"rule": 2, "type": "equivalent", "target": "1fb24dcf409901f8e7de3ac50cbca74d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}}, {"rule": 2, "type": "equivalent", "target": "290321f4e086f8b0cff30252c554c661", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}}, {"rule": 2, "type": "equivalent", "target": "7e1c2a52c11eebe68320cb6819bb6842", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1fb24dcf409901f8e7de3ac50cbca74d", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "当视图或规则包含 FieldSelect 或 FieldStore 表达式节点时，记录正确的依赖关系", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}, "url": "/docs/compare/?release=10.1#10.1-6c17bbc5710e4bc6", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "290321f4e086f8b0cff30252c554c661", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}, "url": "/docs/compare/?release=9.5.10#9.5.10-4afb8b5079afaf49", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "007bd13b9c4a811e28128c420f3c0bd1", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}, "url": "/docs/compare/?release=9.4.15#9.4.15-4afb8b5079afaf49", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "7e1c2a52c11eebe68320cb6819bb6842", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}, "url": "/docs/compare/?release=9.3.20#9.3.20-4afb8b5079afaf49", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "1cd6dd04f06a325fa1e38208d26fc0fc", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7775d77748b10aa76c0f45a180ac575974ae1a2723d9c049b532d8392ef5ce70"}, "url": "/docs/compare/?release=9.2.24#9.2.24-4afb8b5079afaf49", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-4c6bea1fab68c8a1", "cves": [], "html": "<p>正确检测范围数据类型的可哈希性（Tom Lane）</p>\n<p>规划器错误地假定任何范围类型都可以哈希用于哈希连接或哈希聚合，但实际上必须检查范围的子类型是否有哈希支持。这不影响任何内置范围类型，因为它们反正都是可哈希的。</p>", "text": "正确检测范围数据类型的可哈希性（Tom Lane） 规划器错误地假定任何范围类型都可以哈希用于哈希连接或哈希聚合，但实际上必须检查范围的子类型是否有哈希支持。这不影响任何内置范围类型，因为它们反正都是可哈希的。", "title": "正确检测范围数据类型的可哈希性", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "e17e39b07ccca74744ce6855712b2c1ad5406c1fa916a31f2f3135f8a87ccc32", "section_path": ["变更"], "commit_groups": [], "identity_text": "Correctly detect hashability of range data types (Tom Lane) The planner mistakenly assumed that any range type could be hashed for use in hash joins or hash aggregation, but actually it must check whether the range's subtype has hash support. This does not affect any of the built-in range types, since they're all hashable anyway.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/014", "db_id": "c320085ab5e747c8994f3bccf936161f", "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f", "relations": [{"rule": 2, "type": "equivalent", "target": "1f0ededa100214388e94db4ee785cdd1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}}, {"rule": 2, "type": "equivalent", "target": "29fb35dd9919703bc165f056b889dd49", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}}, {"rule": 2, "type": "equivalent", "target": "402b5b239a6a0c7dee3485212563f74e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}}, {"rule": 2, "type": "equivalent", "target": "7d936341e4451a5527c1deda00cdb8e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}}, {"rule": 2, "type": "equivalent", "target": "879a1f89d800c2786255bd2ed0d83cfb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7d936341e4451a5527c1deda00cdb8e5", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "正确检测范围数据类型是否支持 hash 运算", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}, "url": "/docs/compare/?release=10.1#10.1-b9909fcb91ea910e", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "29fb35dd9919703bc165f056b889dd49", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "正确检测范围数据类型的可哈希性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}, "url": "/docs/compare/?release=9.5.10#9.5.10-4c6bea1fab68c8a1", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "1f0ededa100214388e94db4ee785cdd1", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "正确检测范围数据类型的可哈希性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}, "url": "/docs/compare/?release=9.4.15#9.4.15-4c6bea1fab68c8a1", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "402b5b239a6a0c7dee3485212563f74e", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "正确检测范围数据类型的可哈希性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}, "url": "/docs/compare/?release=9.3.20#9.3.20-4c6bea1fab68c8a1", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "879a1f89d800c2786255bd2ed0d83cfb", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "正确检测范围数据类型的可哈希性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f0b606e4b09094861042b0ffff48bff8657aed6e11d3bf9e6b011dd299ca085f"}, "url": "/docs/compare/?release=9.2.24#9.2.24-4c6bea1fab68c8a1", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-51daed60b38e9a1d", "cves": [], "html": "<p>在确定关系唯一性时正确忽略 <code>RelabelType</code> 表达式节点（David Rowley）</p>\n<p>这使子查询结果列为 <code>varchar</code> 类型时能够进行预期的优化。</p>", "text": "在确定关系唯一性时正确忽略 RelabelType 表达式节点（David Rowley） 这使子查询结果列为 varchar 类型时能够进行预期的优化。", "title": "在确定关系唯一性时正确忽略 RelabelType 表达式节点", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "c0509eb5307b85a4af3fa3b3f5760ec7961da87d421dce1fd394e03d5b88491b", "section_path": ["变更"], "commit_groups": [["244b4a37e", "6f44fe7f1", "86e4ebb9a", "eeff68396"]], "identity_text": "Correctly ignore RelabelType expression nodes when determining relation distinctness (David Rowley) This allows the intended optimization to occur when a subquery has a result column of type varchar.", "commit_aliases": ["244b4a37e", "6f44fe7f1", "86e4ebb9a", "eeff68396"], "source_commits": ["86e4ebb9a"], "source_entry_id": "9.6.6/changes/015", "db_id": "055b7a3d1881daac24591a733af4f270", "patch_ids": ["b4a8f2c2bd224b16c58bb9154832eaf3"], "statement_hash": "8f7514d306dea285c9cca407aeca4858e7ba70ac2aa72aeea3ebd16891bf6277", "relations": [{"rule": 2, "type": "equivalent", "target": "45d61419995cecc90ff03f20cfaf190b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f7514d306dea285c9cca407aeca4858e7ba70ac2aa72aeea3ebd16891bf6277"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "45d61419995cecc90ff03f20cfaf190b", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "在确定关系唯一性时正确忽略 RelabelType 表达式节点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f7514d306dea285c9cca407aeca4858e7ba70ac2aa72aeea3ebd16891bf6277"}, "url": "/docs/compare/?release=9.5.10#9.5.10-51daed60b38e9a1d", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}]}, {"id": "9.6.6-d9f5a029224f1cd7", "cves": [], "html": "<p>防止有序集聚合之间共享转换状态（David Rowley）</p>\n<p>这会导致内置有序集聚合崩溃，用户编写的可能也一样。v11 及之后将包含安全处理这种情况的规定，但在已发布分支中，直接禁用该优化。</p>", "text": "防止有序集聚合之间共享转换状态（David Rowley） 这会导致内置有序集聚合崩溃，用户编写的可能也一样。v11 及之后将包含安全处理这种情况的规定，但在已发布分支中，直接禁用该优化。", "title": "防止有序集聚合之间共享转换状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "ea82a6b9a01e6d6c7e5af0cc3585d158dd110337d1f8619c278b7251afce1039", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent sharing transition states between ordered-set aggregates (David Rowley) This causes a crash with the built-in ordered-set aggregates, and probably with user-written ones as well. v11 and later will include provisions for dealing with such cases safely, but in released branches, just disable the optimization.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/016", "db_id": "f3f87a093accaa73052ce9f861e27076", "patch_ids": [], "statement_hash": "0ae8a96a2138ea108fc1473043ff0d43e3cdb4e1a57297037e75b2bce354af6d", "relations": [{"rule": 2, "type": "equivalent", "target": "092e6001cb9a8aa9620c94ad14d364c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ae8a96a2138ea108fc1473043ff0d43e3cdb4e1a57297037e75b2bce354af6d"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "092e6001cb9a8aa9620c94ad14d364c7", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "防止有序集聚合之间共享转换状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0ae8a96a2138ea108fc1473043ff0d43e3cdb4e1a57297037e75b2bce354af6d"}, "url": "/docs/compare/?release=10.1#10.1-d9f5a029224f1cd7", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}]}, {"id": "9.6.6-6ec27f8a764b2077", "cves": [], "html": "<p>防止先前发生过 <code>statement_timeout</code> 时 <code>idle_in_transaction_session_timeout</code> 被忽略（Lukas Fittl）</p>", "text": "防止先前发生过 statement_timeout 时 idle_in_transaction_session_timeout 被忽略（Lukas Fittl）", "title": "防止先前发生过 statement_timeout 时 idle_in_transaction_session_timeout 被忽略", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "40bfb8a1b9d27babf0a43603fabad86436538c60b08685d2e5706dfca143c424", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent idle_in_transaction_session_timeout from being ignored when a statement_timeout occurred earlier (Lukas Fittl)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/017", "db_id": "548e8d4c4601d14a738a0815679be008", "patch_ids": [], "statement_hash": "ec39841585f2537053b662802fdd93ddef2bb612927f51113af166f8e5e428f2", "relations": [{"rule": 2, "type": "equivalent", "target": "f7d9555b105297a9173d9a3b77e6a376", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ec39841585f2537053b662802fdd93ddef2bb612927f51113af166f8e5e428f2"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7d9555b105297a9173d9a3b77e6a376", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "防止在先前发生 statement_timeout 后忽略 idle_in_transaction_session_timeout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ec39841585f2537053b662802fdd93ddef2bb612927f51113af166f8e5e428f2"}, "url": "/docs/compare/?release=10.1#10.1-3ad8b766a3681086", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}]}, {"id": "9.6.6-8ad2c3361ed421f1", "cves": [], "html": "<p>修复因 XID 回卷导致的低概率 <code>NOTIFY</code> 消息丢失（Marko Tiikkaja、Tom Lane）</p>\n<p>如果一个会话在超过 20 亿个事务期间不执行查询而只是监听通知，它就开始遗漏来自并发提交事务的一些通知。</p>", "text": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失（Marko Tiikkaja、Tom Lane） 如果一个会话在超过 20 亿个事务期间不执行查询而只是监听通知，它就开始遗漏来自并发提交事务的一些通知。", "title": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "145f9966f0f7ba240fcf6250d93d493c03c8d85a939083ff03de885b2fbf8ba7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix low-probability loss of NOTIFY messages due to XID wraparound (Marko Tiikkaja, Tom Lane) If a session executed no queries, but merely listened for notifications, for more than 2 billion transactions, it started to miss some notifications from concurrently-committing transactions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/018", "db_id": "05363bfd016c01f9ff8549467d914e00", "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33", "relations": [{"rule": 2, "type": "equivalent", "target": "4b506c21e755bed67a575660d8226d50", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}, {"rule": 2, "type": "equivalent", "target": "6e8a2efa855582392f8aa8b4b0e0a368", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}, {"rule": 2, "type": "equivalent", "target": "89fcaef7b09acb5d6956f7d490688e6c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}, {"rule": 2, "type": "equivalent", "target": "b1531f77e7bfc7c36f8dcd1febcf51d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}, {"rule": 2, "type": "equivalent", "target": "bd64297a2b9915f0c99497279540ff3d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b506c21e755bed67a575660d8226d50", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复 XID 回卷导致 NOTIFY 消息以低概率丢失的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}, "url": "/docs/compare/?release=10.1#10.1-1aee059b986c876c", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "b1531f77e7bfc7c36f8dcd1febcf51d1", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}, "url": "/docs/compare/?release=9.5.10#9.5.10-8ad2c3361ed421f1", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "89fcaef7b09acb5d6956f7d490688e6c", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}, "url": "/docs/compare/?release=9.4.15#9.4.15-8ad2c3361ed421f1", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "bd64297a2b9915f0c99497279540ff3d", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}, "url": "/docs/compare/?release=9.3.20#9.3.20-8ad2c3361ed421f1", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "6e8a2efa855582392f8aa8b4b0e0a368", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "修复因 XID 回卷导致的低概率 NOTIFY 消息丢失", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "754f0a11ae061b425afa23f87b58cd950497aa5342bd49183f136207b584ef33"}, "url": "/docs/compare/?release=9.2.24#9.2.24-8ad2c3361ed421f1", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-d3cd19f3026142fb", "cves": [], "html": "<p>避免 Linux 上 DSM 内存请求超过 <span>tmpfs</span> 可用空间时的 <span>SIGBUS</span> 崩溃（Thomas Munro）</p>", "text": "避免 Linux 上 DSM 内存请求超过 tmpfs 可用空间时的 SIGBUS 崩溃（Thomas Munro）", "title": "避免 Linux 上 DSM 内存请求超过 tmpfs 可用空间时的 SIGBUS 崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "185f7aa71c2da70b91abc08a9a6b821aa33d6b63e2362179656390cdd05c3514", "section_path": ["变更"], "commit_groups": [["05297416f", "175061222", "3a07a6f3e", "4621c7f7a", "899bd785c"], ["06852f215", "12ac252f9", "5ea96efaa", "d29f30d8c", "e5c058e2e"]], "identity_text": "Avoid SIGBUS crash on Linux when a DSM memory request exceeds the space available in tmpfs (Thomas Munro)", "commit_aliases": ["05297416f", "06852f215", "12ac252f9", "175061222", "3a07a6f3e", "4621c7f7a", "5ea96efaa", "899bd785c", "d29f30d8c", "e5c058e2e"], "source_commits": ["12ac252f9", "175061222"], "source_entry_id": "9.6.6/changes/019", "db_id": "9e790a7a15bc8950390531ea4cda9ba6", "patch_ids": ["1b868ad994c5520b36974010f3e8d33f", "82de841c4f04697489d4214228bac85b"], "statement_hash": "f8dce9fdbf4e026c64abe11362da8dd5fcec4e8b3c73a1814ceb1510ec9c1196", "relations": [{"rule": 2, "type": "equivalent", "target": "24b2167678273fe5bee5ca0dcc18d287", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8dce9fdbf4e026c64abe11362da8dd5fcec4e8b3c73a1814ceb1510ec9c1196"}}, {"rule": 2, "type": "equivalent", "target": "4fc31ab5ac996071dfe1717b6a669cb9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8dce9fdbf4e026c64abe11362da8dd5fcec4e8b3c73a1814ceb1510ec9c1196"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4fc31ab5ac996071dfe1717b6a669cb9", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "避免 Linux 上 DSM 内存请求超过 tmpfs 可用空间时的 SIGBUS 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8dce9fdbf4e026c64abe11362da8dd5fcec4e8b3c73a1814ceb1510ec9c1196"}, "url": "/docs/compare/?release=9.5.10#9.5.10-d3cd19f3026142fb", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "24b2167678273fe5bee5ca0dcc18d287", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "避免 Linux 上 DSM 内存请求超出tmpfs可用空间时出现SIGBUS崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f8dce9fdbf4e026c64abe11362da8dd5fcec4e8b3c73a1814ceb1510ec9c1196"}, "url": "/docs/compare/?release=9.4.15#9.4.15-bcee3594ea3c38b1", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}]}, {"id": "9.6.6-b19632398a9c8992", "cves": [], "html": "<p>减少批量文件复制期间数据刷写请求的频率，以避免 macOS（特别是其新的 APFS 文件系统）上的性能问题（Tom Lane）</p>", "text": "减少批量文件复制期间数据刷写请求的频率，以避免 macOS（特别是其新的 APFS 文件系统）上的性能问题（Tom Lane）", "title": "减少批量文件复制期间数据刷写请求的频率，以避免 macOS（特别是其新的 APFS 文件系统）上的性能问题", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "0786c2c1a621b0354c95253d09e6e1504e9750a08f47c55ecf66ec0618974928", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce the frequency of data flush requests during bulk file copies to avoid performance problems on macOS, particularly with its new APFS file system (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/020", "db_id": "7af6a10c699a0e7429de09f3bc986c2b", "patch_ids": [], "statement_hash": "8196320450dbb8e30d8bfec61d3c92c38a7b4a1b5997ab726901f9d2f08c34fd", "relations": [{"rule": 2, "type": "equivalent", "target": "f4829dad9a01faefb9645777c6032660", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8196320450dbb8e30d8bfec61d3c92c38a7b4a1b5997ab726901f9d2f08c34fd"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f4829dad9a01faefb9645777c6032660", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "降低批量复制文件期间的数据刷盘请求频率，以避免 macOS 上的性能问题，尤其是其新的 APFS 文件系统", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8196320450dbb8e30d8bfec61d3c92c38a7b4a1b5997ab726901f9d2f08c34fd"}, "url": "/docs/compare/?release=10.1#10.1-07f29f043abf7783", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}]}, {"id": "9.6.6-08ada9d5eb58d26c", "cves": [], "html": "<p>防止嵌套触发器触发处理中的低概率崩溃（Tom Lane）</p>", "text": "防止嵌套触发器触发处理中的低概率崩溃（Tom Lane）", "title": "防止嵌套触发器触发处理中的低概率崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "e4658d09348010a0e0d8dedb5c7dbd213849a6939fb3fdc72b38441f02268900", "section_path": ["变更"], "commit_groups": [["27c6619e9", "4cd6cd21d", "66fe509be", "825fac5d3", "b1be33593", "bc0974703", "c0d21bdb8"]], "identity_text": "Prevent low-probability crash in processing of nested trigger firings (Tom Lane)", "commit_aliases": ["27c6619e9", "4cd6cd21d", "66fe509be", "825fac5d3", "b1be33593", "bc0974703", "c0d21bdb8"], "source_commits": ["c0d21bdb8"], "source_entry_id": "9.6.6/changes/021", "db_id": "ed52e2c3034cd22ee4499e231c7702e6", "patch_ids": ["680c7f4565370541f0a8df8b83d41215"], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27", "relations": [{"rule": 2, "type": "equivalent", "target": "0a1940517915a4c2940506f17a5eb707", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}}, {"rule": 2, "type": "equivalent", "target": "90bab2f383d8aeb7b288d90321649ca0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}}, {"rule": 2, "type": "equivalent", "target": "cf10bd02853e41f70bc1a6f1202f41a5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}}, {"rule": 2, "type": "equivalent", "target": "ee96714487e8ca74fd6a107b83a6e2ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cf10bd02853e41f70bc1a6f1202f41a5", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "防止嵌套触发器触发处理中的低概率崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}, "url": "/docs/compare/?release=9.5.10#9.5.10-08ada9d5eb58d26c", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "ee96714487e8ca74fd6a107b83a6e2ff", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "防止嵌套触发器触发处理中低概率的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}, "url": "/docs/compare/?release=9.4.15#9.4.15-77d78ae4918aeda4", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "0a1940517915a4c2940506f17a5eb707", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "防止嵌套触发器触发处理中的低概率崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}, "url": "/docs/compare/?release=9.3.20#9.3.20-08ada9d5eb58d26c", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "90bab2f383d8aeb7b288d90321649ca0", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "防止嵌套触发器触发处理中的低概率崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006d1de97c84b7cbcfe2e0d1777726daef03c004b4898572ce009e40f3381b27"}, "url": "/docs/compare/?release=9.2.24#9.2.24-08ada9d5eb58d26c", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-3e66f13583a01dae", "cves": [], "html": "<p>允许 <code>COPY</code> 的 <code>FREEZE</code> 选项在事务隔离级别为 <code>REPEATABLE READ</code> 或更高时工作（Noah Misch）</p>\n<p>这种情况意外地被之前的 bug 修复破坏。</p>", "text": "允许 COPY 的 FREEZE 选项在事务隔离级别为 REPEATABLE READ 或更高时工作（Noah Misch） 这种情况意外地被之前的 bug 修复破坏。", "title": "允许 COPY 的 FREEZE 选项在事务隔离级别为 REPEATABLE READ 或更高时工作", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "ebcd21e543a7ce4054ee755ec64f6b7122ba06de631805c8f16d6dbbc67f5752", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow COPY's FREEZE option to work when the transaction isolation level is REPEATABLE READ or higher (Noah Misch) This case was unintentionally broken by a previous bug fix.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/022", "db_id": "4e0fe875dc1a2ae9bddc4bfe63ee0c51", "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0", "relations": [{"rule": 2, "type": "equivalent", "target": "a1eff8bc8516f95566bc09b3bdf0a4cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}}, {"rule": 2, "type": "equivalent", "target": "a42f98563f1d49a9c7113c9b2b1e6cb8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}}, {"rule": 2, "type": "equivalent", "target": "e1adadf3a7387c490ac8d6d40225524d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e1adadf3a7387c490ac8d6d40225524d", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "允许在事务隔离级别为 REPEATABLE READ 或更高时使用 COPY 的 FREEZE 选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}, "url": "/docs/compare/?release=10.1#10.1-935b3469e9870d66", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "a42f98563f1d49a9c7113c9b2b1e6cb8", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "允许 COPY 的 FREEZE 选项在事务隔离级别为 REPEATABLE READ 或更高时工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}, "url": "/docs/compare/?release=9.5.10#9.5.10-3e66f13583a01dae", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "a1eff8bc8516f95566bc09b3bdf0a4cd", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "允许 COPY 的 FREEZE 选项在事务隔离级别为 REPEATABLE READ 或更高时工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8c830e72f0a41855906c9743651b44272397678a246d067b0e85f51a046cd8e0"}, "url": "/docs/compare/?release=9.4.15#9.4.15-3e66f13583a01dae", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}]}, {"id": "9.6.6-f8c0de6d6a3a6766", "cves": [], "html": "<p><code>COPY</code> 或 <code>lo_export()</code> 中文件创建失败时正确恢复 umask 设置（Peter Eisentraut）</p>", "text": "COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置（Peter Eisentraut）", "title": "COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "f6b85fb9f133edbeece6a9c0dd51dc839eafc34bf90c093dcab8f1c9543d2221", "section_path": ["变更"], "commit_groups": [["2eb84e54a", "3d7f11a0f", "9bf049946", "a1f30ecc5", "aa6b7b72d", "acae13faa", "e0f5710c5"]], "identity_text": "Correctly restore the umask setting when file creation fails in COPY or lo_export() (Peter Eisentraut)", "commit_aliases": ["2eb84e54a", "3d7f11a0f", "9bf049946", "a1f30ecc5", "aa6b7b72d", "acae13faa", "e0f5710c5"], "source_commits": ["a1f30ecc5"], "source_entry_id": "9.6.6/changes/023", "db_id": "cc0dcf1311568595327442b4aa12869f", "patch_ids": ["ab1d00c56f3ed4c9ee0c39cbc89b5655"], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f", "relations": [{"rule": 2, "type": "equivalent", "target": "770ccd96660ab181e6da0d927d9cb543", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}}, {"rule": 2, "type": "equivalent", "target": "86e3dd6e5ffcaf10855497ea94db1c42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}}, {"rule": 2, "type": "equivalent", "target": "d04405fe419fbd4c3b4064db6ec75581", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}}, {"rule": 2, "type": "equivalent", "target": "f7adfb79e2ff9d1b6bae31920cfa3907", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d04405fe419fbd4c3b4064db6ec75581", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}, "url": "/docs/compare/?release=9.5.10#9.5.10-f8c0de6d6a3a6766", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "770ccd96660ab181e6da0d927d9cb543", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复COPY或lo_export()中文件创建失败时正确恢复 umask 设置的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}, "url": "/docs/compare/?release=9.4.15#9.4.15-4648adc21ba571b7", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "86e3dd6e5ffcaf10855497ea94db1c42", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}, "url": "/docs/compare/?release=9.3.20#9.3.20-f8c0de6d6a3a6766", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "f7adfb79e2ff9d1b6bae31920cfa3907", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3d57c08089686dc1d4175828f5b930ed6494d433db413d1b8e31091add6f0f0f"}, "url": "/docs/compare/?release=9.2.24#9.2.24-f8c0de6d6a3a6766", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-776f5444937194b9", "cves": [], "html": "<p>为 <code>ANALYZE</code> 中的重复列名给出更好的错误消息（Nathan Bossart）</p>", "text": "为 ANALYZE 中的重复列名给出更好的错误消息（Nathan Bossart）", "title": "为 ANALYZE 中的重复列名给出更好的错误消息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "ced8dd65787dca5f11b90b7a2e301888f37f16198d642e848536bd5e49fdd501", "section_path": ["变更"], "commit_groups": [["122289a66", "714805010", "a09d8be7d", "a2b1eb234", "b572b435c", "e56facd8b", "ea31541f5"]], "identity_text": "Give a better error message for duplicate column names in ANALYZE (Nathan Bossart)", "commit_aliases": ["122289a66", "714805010", "a09d8be7d", "a2b1eb234", "b572b435c", "e56facd8b", "ea31541f5"], "source_commits": ["ea31541f5"], "source_entry_id": "9.6.6/changes/024", "db_id": "22ac0a7eb2efae8442a871ca457ff739", "patch_ids": ["4c0aede2c793df86a80d063c18d12983"], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276", "relations": [{"rule": 2, "type": "equivalent", "target": "60275a3ec51db1818065d73cfdeb4050", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}}, {"rule": 2, "type": "equivalent", "target": "a11193b5badad905ca7dbc014dd5ee37", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}}, {"rule": 2, "type": "equivalent", "target": "c46de2bed8e8f98249da82f83534b4d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}}, {"rule": 2, "type": "equivalent", "target": "dc7ffa3d7d47edfdffb350d21143fdf2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dc7ffa3d7d47edfdffb350d21143fdf2", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "为 ANALYZE 中的重复列名给出更好的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}, "url": "/docs/compare/?release=9.5.10#9.5.10-776f5444937194b9", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "60275a3ec51db1818065d73cfdeb4050", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "为ANALYZE中的重复列名提供更好的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}, "url": "/docs/compare/?release=9.4.15#9.4.15-cdb950ef84cdbcec", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "c46de2bed8e8f98249da82f83534b4d2", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "为 ANALYZE 中的重复列名给出更好的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}, "url": "/docs/compare/?release=9.3.20#9.3.20-776f5444937194b9", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "a11193b5badad905ca7dbc014dd5ee37", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "为 ANALYZE 中的重复列名给出更好的错误消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab8b2493e7abc59672d45cd7637ea419c460e20a440a56c06836d9f415cf8276"}, "url": "/docs/compare/?release=9.2.24#9.2.24-776f5444937194b9", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-8e4344ba4b77bba4", "cves": [], "html": "<p>补上 <code>GetCommandLogLevel()</code> 中缺失的情况，防止 <code>log_statement</code> 设为 <code>ddl</code> 时使用某些 SQL 命令出错（Michael Paquier）</p>", "text": "补上 GetCommandLogLevel() 中缺失的情况，防止 log_statement 设为 ddl 时使用某些 SQL 命令出错（Michael Paquier）", "title": "补上 GetCommandLogLevel() 中缺失的情况，防止 log_statement 设为 ddl 时使用某些 SQL 命令出错", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "04f871a56558ee1f481a767d75866d8eb3164b4c097be9ce244ff69d6dc1999b", "section_path": ["变更"], "commit_groups": [["353328ad1", "81276fdd3", "a2a61f633"]], "identity_text": "Add missing cases in GetCommandLogLevel(), preventing errors when certain SQL commands are used while log_statement is set to ddl (Michael Paquier)", "commit_aliases": ["353328ad1", "81276fdd3", "a2a61f633"], "source_commits": ["353328ad1"], "source_entry_id": "9.6.6/changes/025", "db_id": "c6627b034f548b55e873c8803dbe6f07", "patch_ids": ["f22237c510afb7599f80b0b331aea5d9"], "statement_hash": "306626d9d00e3644ee12c071b4ec34fcef2f0741f91da6fb632e298cf5b89076", "relations": [], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.6-aff8bec37b7398c6", "cves": [], "html": "<p>修复对不以换行结尾的 <code>pg_hba.conf</code> 文件最后一行的错误解析（Tom Lane）</p>", "text": "修复对不以换行结尾的 pg_hba.conf 文件最后一行的错误解析（Tom Lane）", "title": "修复对不以换行结尾的 pg_hba.conf 文件最后一行的错误解析", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "7a8052a7c622151150bcff10910d40cb49acdea2e9fb749d82212ecdf0c51a39", "section_path": ["变更"], "commit_groups": [["06b2a73ed", "2ac598874", "38f17e8ee", "9e20276e1"]], "identity_text": "Fix mis-parsing of the last line in a non-newline-terminated pg_hba.conf file (Tom Lane)", "commit_aliases": ["06b2a73ed", "2ac598874", "38f17e8ee", "9e20276e1"], "source_commits": ["2ac598874"], "source_entry_id": "9.6.6/changes/026", "db_id": "11cf45e625f2b309d4c896522cf13112", "patch_ids": ["5c18c40ff35964174537cfdd356a97a8"], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7", "relations": [{"rule": 2, "type": "equivalent", "target": "456f7cb7fea159f4dd066881991deddd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}}, {"rule": 2, "type": "equivalent", "target": "47e452aa71db8034a712239a3964e3a5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}}, {"rule": 2, "type": "equivalent", "target": "5eddd6c4577d73a939cab58edd99a776", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "47e452aa71db8034a712239a3964e3a5", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复对不以换行结尾的 pg_hba.conf 文件最后一行的错误解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}, "url": "/docs/compare/?release=9.5.10#9.5.10-aff8bec37b7398c6", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "456f7cb7fea159f4dd066881991deddd", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复对无换行结尾的pg_hba.conf文件最后一行的错误解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}, "url": "/docs/compare/?release=9.4.15#9.4.15-5d8357d297ccf980", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "5eddd6c4577d73a939cab58edd99a776", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复对不以换行结尾的 pg_hba.conf 文件最后一行的错误解析", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "381c0589ac81ca1c181c68e0f41b792798010dcb34432d48a70c8d2b305960c7"}, "url": "/docs/compare/?release=9.3.20#9.3.20-aff8bec37b7398c6", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}]}, {"id": "9.6.6-2172315197f324ab", "cves": [], "html": "<p>修复 <code>AggGetAggref()</code> 为转换计算已被合并的聚合最终函数返回正确的 <code>Aggref</code> 节点（Tom Lane）</p>", "text": "修复 AggGetAggref() 为转换计算已被合并的聚合最终函数返回正确的 Aggref 节点（Tom Lane）", "title": "修复 AggGetAggref() 为转换计算已被合并的聚合最终函数返回正确的 Aggref 节点", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "57e7acc76f08f3e831d9933735d13132a3ab5bcc0c2a95575374694ed118aebd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix AggGetAggref() to return the correct Aggref nodes to aggregate final functions whose transition calculations have been merged (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/027", "db_id": "c3dfddcd5c7540d3f582ca685e38f004", "patch_ids": [], "statement_hash": "a43286ab51ce1343b2ba1489982072c7634f4e6f92b660606391bc32f7327365", "relations": [{"rule": 2, "type": "equivalent", "target": "835077c83cb93420ccfeb28d256fd384", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a43286ab51ce1343b2ba1489982072c7634f4e6f92b660606391bc32f7327365"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "835077c83cb93420ccfeb28d256fd384", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复 AggGetAggref()，使其向转换计算已合并的聚合的最终函数返回正确的 Aggref 节点", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a43286ab51ce1343b2ba1489982072c7634f4e6f92b660606391bc32f7327365"}, "url": "/docs/compare/?release=10.1#10.1-47ed056a18d7f9fb", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}]}, {"id": "9.6.6-20c55d4657ded663", "cves": [], "html": "<p>修复 <span>pg_dump</span> 确保以有效顺序发出 <code>GRANT</code> 命令（Stephen Frost）</p>", "text": "修复 pg_dump 确保以有效顺序发出 GRANT 命令（Stephen Frost）", "title": "修复 pg_dump 确保以有效顺序发出 GRANT 命令", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "bef1d48d630b5c51fdb9f8c0785ff96430de07e009ec2517d7f930ed63a2dc8e", "section_path": ["变更"], "commit_groups": [["68a7c24fd", "caae416aa", "d2e40b310"]], "identity_text": "Fix pg_dump to ensure that it emits GRANT commands in a valid order (Stephen Frost)", "commit_aliases": ["68a7c24fd", "caae416aa", "d2e40b310"], "source_commits": ["caae416aa"], "source_entry_id": "9.6.6/changes/028", "db_id": "d7e776aa58c4295adfa29f4668a9b0f1", "patch_ids": ["ca1ccf52f94c460c5e7f992d4ce5469f"], "statement_hash": "69edc7ba24abd84493fea5dafae083d2432ce3ec3992272d9bef03d0def12338", "relations": [], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.6-d716a4bfbb73d6aa", "cves": [], "html": "<p>修复 <span>pg_basebackup</span> 对表空间路径的匹配，在比较前规范化两个路径（Michael Paquier）</p>\n<p>这在 Windows 上特别有帮助。</p>", "text": "修复 pg_basebackup 对表空间路径的匹配，在比较前规范化两个路径（Michael Paquier） 这在 Windows 上特别有帮助。", "title": "修复 pg_basebackup 对表空间路径的匹配，在比较前规范化两个路径", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "a0e1957cd6ced6e11599b3f13c75e6431d4c259db64485165a18231c5bbe3727", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_basebackup's matching of tablespace paths to canonicalize both paths before comparing (Michael Paquier) This is particularly helpful on Windows.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/029", "db_id": "06da3821bc1aeeb6ec454dd8a41f92ee", "patch_ids": [], "statement_hash": "05133eb0e9c7259378c49cda408c3e752eb8377fe2baf017ba74ae43ffd96017", "relations": [{"rule": 2, "type": "equivalent", "target": "07f287a6847514888fd4b882d3cec52f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05133eb0e9c7259378c49cda408c3e752eb8377fe2baf017ba74ae43ffd96017"}}, {"rule": 2, "type": "equivalent", "target": "997f624922337f5d4a85a2fb9d4a0891", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05133eb0e9c7259378c49cda408c3e752eb8377fe2baf017ba74ae43ffd96017"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "997f624922337f5d4a85a2fb9d4a0891", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复 pg_basebackup 的表空间路径匹配，使其在比较前先规范化两条路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05133eb0e9c7259378c49cda408c3e752eb8377fe2baf017ba74ae43ffd96017"}, "url": "/docs/compare/?release=10.1#10.1-bb6413704e422371", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "07f287a6847514888fd4b882d3cec52f", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 pg_basebackup 对表空间路径的匹配，在比较前规范化两个路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05133eb0e9c7259378c49cda408c3e752eb8377fe2baf017ba74ae43ffd96017"}, "url": "/docs/compare/?release=9.5.10#9.5.10-d716a4bfbb73d6aa", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}]}, {"id": "9.6.6-0236bfb2ebeacc2e", "cves": [], "html": "<p>修复 <span>libpq</span> 不要求用户的主目录存在（Tom Lane）</p>\n<p>在 v10 中，尝试读取 <code>~/.pgpass</code> 时找不到主目录被当作硬错误，但它应该只是导致找不到该文件。v10 和以前的发布分支在读取 <code>~/.pg_service.conf</code> 时犯了同样的错误，不过这不太明显，因为除非指定了服务名否则不寻找该文件。</p>", "text": "修复 libpq 不要求用户的主目录存在（Tom Lane） 在 v10 中，尝试读取 ~/.pgpass 时找不到主目录被当作硬错误，但它应该只是导致找不到该文件。v10 和以前的发布分支在读取 ~/.pg_service.conf 时犯了同样的错误，不过这不太明显，因为除非指定了服务名否则不寻找该文件。", "title": "修复 libpq 不要求用户的主目录存在", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "8d3352bdcd8434b4857ee81bb20337deab45a7bee961b18341c52c4e33d1a651", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix libpq to not require user's home directory to exist (Tom Lane) In v10, failure to find the home directory while trying to read ~/.pgpass was treated as a hard error, but it should just cause that file to not be found. Both v10 and previous release branches made the same mistake when reading ~/.pg_service.conf, though this was less obvious since that file is not sought unless a service name is specified.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/030", "db_id": "d518c7c5ea325860a92385a76d35cbc7", "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467", "relations": [{"rule": 2, "type": "equivalent", "target": "006b88f929e042ebc8300b75f7f27246", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}}, {"rule": 2, "type": "equivalent", "target": "102daed46570ca19e49b298bfa3ba3e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}}, {"rule": 2, "type": "equivalent", "target": "7ec2fb78308cd9103547c1a0c812b9b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}}, {"rule": 2, "type": "equivalent", "target": "b0cb3ef81cd549c25017579634b98ae7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}}, {"rule": 2, "type": "equivalent", "target": "b71d6a1a44ecb249aeffd4cc931c9999", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b0cb3ef81cd549c25017579634b98ae7", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复 libpq，使其不再要求用户主目录存在", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}, "url": "/docs/compare/?release=10.1#10.1-449b9268fdb746a8", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "7ec2fb78308cd9103547c1a0c812b9b1", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 libpq 不要求用户的主目录存在", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}, "url": "/docs/compare/?release=9.5.10#9.5.10-0236bfb2ebeacc2e", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "006b88f929e042ebc8300b75f7f27246", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复 libpq 不要求用户的主目录存在", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}, "url": "/docs/compare/?release=9.4.15#9.4.15-0236bfb2ebeacc2e", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "102daed46570ca19e49b298bfa3ba3e2", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复 libpq 不要求用户的主目录存在", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}, "url": "/docs/compare/?release=9.3.20#9.3.20-0236bfb2ebeacc2e", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "b71d6a1a44ecb249aeffd4cc931c9999", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "修复 libpq 不要求用户的主目录存在", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef4d1a424bbe09876057233a76fc1698ea9ec3d219478a9f56f6e6eebd2ed467"}, "url": "/docs/compare/?release=9.2.24#9.2.24-0236bfb2ebeacc2e", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-f1cc78ee4ca056f1", "cves": [], "html": "<p>修复 <span>libpq</span> 防范 <code>PGresult</code> 行数中的整数溢出（Michael Paquier）</p>", "text": "修复 libpq 防范 PGresult 行数中的整数溢出（Michael Paquier）", "title": "修复 libpq 防范 PGresult 行数中的整数溢出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "e8304e64289b56447869f2911c050983580927d6d237d08cb13558097e7afad0", "section_path": ["变更"], "commit_groups": [["1305186de", "3a0f8e7d3", "53863ebeb", "9d6b160d7", "dd344de67", "f2fe1cbef", "f60a236ba"], ["1c53722ff", "2e70d6b5e", "a07058a6d", "b481b39b8", "bc95e5874", "d391fb6c3", "dfd1042c6"]], "identity_text": "Fix libpq to guard against integer overflow in the row count of a PGresult (Michael Paquier)", "commit_aliases": ["1305186de", "1c53722ff", "2e70d6b5e", "3a0f8e7d3", "53863ebeb", "9d6b160d7", "a07058a6d", "b481b39b8", "bc95e5874", "d391fb6c3", "dd344de67", "dfd1042c6", "f2fe1cbef", "f60a236ba"], "source_commits": ["3a0f8e7d3", "bc95e5874"], "source_entry_id": "9.6.6/changes/031", "db_id": "86c1fafaa843061ad1e84402e625e9cd", "patch_ids": ["09fee003806353f18efa266b8994e9d4", "ff54cc30b3bf23228335293694813567"], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a", "relations": [{"rule": 2, "type": "equivalent", "target": "37e1e5cf1498b87470b54ee71a0e67ab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}}, {"rule": 2, "type": "equivalent", "target": "3c1c024ed8f25be27c5657f0e5286342", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}}, {"rule": 2, "type": "equivalent", "target": "79d49467885ae1d412bdf9b307596c0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}}, {"rule": 2, "type": "equivalent", "target": "b56f562ef59390b0c10ee313ce357e14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b56f562ef59390b0c10ee313ce357e14", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 libpq 防范 PGresult 行数中的整数溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}, "url": "/docs/compare/?release=9.5.10#9.5.10-f1cc78ee4ca056f1", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "37e1e5cf1498b87470b54ee71a0e67ab", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复libpq对PGresult行数的整数溢出防护", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}, "url": "/docs/compare/?release=9.4.15#9.4.15-ffd9ffccafa4f7d2", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "3c1c024ed8f25be27c5657f0e5286342", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复 libpq 防范 PGresult 行数中的整数溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}, "url": "/docs/compare/?release=9.3.20#9.3.20-f1cc78ee4ca056f1", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "79d49467885ae1d412bdf9b307596c0f", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "修复 libpq 防范 PGresult 行数中的整数溢出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "50f672800a6bf3311e001ef2aefd1dd5abc1cf6fc9a4cc3e87a213448ee64e7a"}, "url": "/docs/compare/?release=9.2.24#9.2.24-f1cc78ee4ca056f1", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-e16a1942ddfde1ee", "cves": [], "html": "<p>修复 <span>ecpg</span> 对带指针或数组变量的超出作用域游标声明的处理（Michael Meskes）</p>", "text": "修复 ecpg 对带指针或数组变量的超出作用域游标声明的处理（Michael Meskes）", "title": "修复 ecpg 对带指针或数组变量的超出作用域游标声明的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "87e36bbe300f363192dec359267655d3fe69062b6e1f7a8376c874d5e17706fa", "section_path": ["变更"], "commit_groups": [["149cfdb3a", "35e156882", "3a5aa7de3", "59b5a3e5c", "75fbf8ad1", "e5b8b771e"]], "identity_text": "Fix ecpg's handling of out-of-scope cursor declarations with pointer or array variables (Michael Meskes)", "commit_aliases": ["149cfdb3a", "35e156882", "3a5aa7de3", "59b5a3e5c", "75fbf8ad1", "e5b8b771e"], "source_commits": ["59b5a3e5c"], "source_entry_id": "9.6.6/changes/032", "db_id": "ced4bc1b74d9e880ae2b6b5a746ee285", "patch_ids": ["f06990a7cfa4b39c0283ec3585d055dd"], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9", "relations": [{"rule": 2, "type": "equivalent", "target": "4e6b2fc6b347eac6afcc794106f2785c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}}, {"rule": 2, "type": "equivalent", "target": "77b4e508a729e39bd48db59a6b54ffaf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}}, {"rule": 2, "type": "equivalent", "target": "ec4a2d746d8f1ee0cfba9bf344b85661", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec4a2d746d8f1ee0cfba9bf344b85661", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复 ecpg 对带指针或数组变量的超出作用域游标声明的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}, "url": "/docs/compare/?release=9.5.10#9.5.10-e16a1942ddfde1ee", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "77b4e508a729e39bd48db59a6b54ffaf", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "修复ecpg对带指针或数组变量的超作用域游标声明的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}, "url": "/docs/compare/?release=9.4.15#9.4.15-5d6e86e3a0d8cffe", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "4e6b2fc6b347eac6afcc794106f2785c", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "修复 ecpg 对带指针或数组变量的超出作用域游标声明的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "626f04291bc7fee1b5ab88f2f39d11f79eea4a5f6642182d355b06bf96ca1de9"}, "url": "/docs/compare/?release=9.3.20#9.3.20-e16a1942ddfde1ee", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}]}, {"id": "9.6.6-d028e19e0f776652", "cves": [], "html": "<p>在 ecpglib 中，根据是否设置了 <code>standard_conforming_strings</code> 正确处理字符串字面量中的反斜线（Tsunakawa Takayuki）</p>", "text": "在 ecpglib 中，根据是否设置了 standard_conforming_strings 正确处理字符串字面量中的反斜线（Tsunakawa Takayuki）", "title": "在 ecpglib 中，根据是否设置了 standard_conforming_strings 正确处理字符串字面量中的反斜线", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "5629c071ea4af7b5855a626bf9f0e98147bd663ea0c63e51d55f9cb0bb98ef75", "section_path": ["变更"], "commit_groups": [], "identity_text": "In ecpglib, correctly handle backslashes in string literals depending on whether standard_conforming_strings is set (Tsunakawa Takayuki)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/033", "db_id": "c5d4d801e5662c99d1d1b7036d903d07", "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf", "relations": [{"rule": 2, "type": "equivalent", "target": "168a74663d229ad0ce14364661bc495c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}}, {"rule": 2, "type": "equivalent", "target": "547d8af011856c3b80ac12cae523ff61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}}, {"rule": 2, "type": "equivalent", "target": "6804ac8e13b0fe3eff142d76f3855b8f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "168a74663d229ad0ce14364661bc495c", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "在 ecpglib 中，根据是否设置了 standard_conforming_strings 正确处理字符串字面量中的反斜杠", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}, "url": "/docs/compare/?release=10.1#10.1-a919728bd56964f1", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "547d8af011856c3b80ac12cae523ff61", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "在 ecpglib 中，根据是否设置了 standard_conforming_strings 正确处理字符串字面量中的反斜线", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}, "url": "/docs/compare/?release=9.5.10#9.5.10-d028e19e0f776652", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "6804ac8e13b0fe3eff142d76f3855b8f", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "ecpglib 中根据是否设置了standard_conforming_strings正确处理字符串字面量中的反斜线", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "75d74e83fd6e41320843a7950c077aa0de97e7ed9aad29725e94eb10a0a6f2cf"}, "url": "/docs/compare/?release=9.4.15#9.4.15-80d6ed6dcfaeea54", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}]}, {"id": "9.6.6-2d2b0633ea1998b2", "cves": [], "html": "<p>让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位（Gao Zengqi、Michael Meskes）</p>", "text": "让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位（Gao Zengqi、Michael Meskes）", "title": "让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "0bb55d5fd107a5536e200eb87ef818a2c008a01ef13256e528f5352b212eef8f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make ecpglib's Informix-compatibility mode ignore fractional digits in integer input strings, as expected (Gao Zengqi, Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/034", "db_id": "2cc74143087d0baf26e69f81883a4d7c", "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f", "relations": [{"rule": 2, "type": "equivalent", "target": "327951f097966e1bf73354a3b969072e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}}, {"rule": 2, "type": "equivalent", "target": "3c9edd46a25977cbd2b2b1fb160b7dae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}}, {"rule": 2, "type": "equivalent", "target": "89c449856b27a1bc18eeb794c6cebedb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}}, {"rule": 2, "type": "equivalent", "target": "a5569d283bfc07fbb4c56ca6b143f8ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a5569d283bfc07fbb4c56ca6b143f8ca", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "使 ecpglib 的 Informix 兼容模式按预期忽略整数输入字符串中的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}, "url": "/docs/compare/?release=10.1#10.1-b06ac02040269efa", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "327951f097966e1bf73354a3b969072e", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}, "url": "/docs/compare/?release=9.5.10#9.5.10-2d2b0633ea1998b2", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "3c9edd46a25977cbd2b2b1fb160b7dae", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "使 ecpglib 的 Informix 兼容模式按预期忽略整数输入字符串中的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}, "url": "/docs/compare/?release=9.4.15#9.4.15-b06ac02040269efa", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "89c449856b27a1bc18eeb794c6cebedb", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da5c23f1166bd60b7e38bb6b7bdd69493fbaa86814ea539935938b6f19b5c03f"}, "url": "/docs/compare/?release=9.3.20#9.3.20-2d2b0633ea1998b2", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}]}, {"id": "9.6.6-04302d020cffee78", "cves": [], "html": "<p>修复 <span>ecpg</span> 的回归测试在 Windows 上可靠工作（Christian Ullrich、Michael Meskes）</p>", "text": "修复 ecpg 的回归测试在 Windows 上可靠工作（Christian Ullrich、Michael Meskes）", "title": "修复 ecpg 的回归测试在 Windows 上可靠工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "a8cbc54f32d9d05c13dd80dfd354a47319ca60839c4d6c658c768e7bf67d629e", "section_path": ["变更"], "commit_groups": [["04fbe0e45", "407e66078", "eaf7001eb"], ["38d7cb67f", "839ee1811", "a772624b1"]], "identity_text": "Fix ecpg's regression tests to work reliably on Windows (Christian Ullrich, Michael Meskes)", "commit_aliases": ["04fbe0e45", "38d7cb67f", "407e66078", "839ee1811", "a772624b1", "eaf7001eb"], "source_commits": ["407e66078", "839ee1811"], "source_entry_id": "9.6.6/changes/035", "db_id": "f9024a6b4756773fcdab35778fe3b77f", "patch_ids": ["19ca68448c17b1d96ead336dff7c5804", "a9f917dae4b3c13cbcfe323028e98ad6"], "statement_hash": "6224e845c0a4a0b3652b323fd6a4ad6a1f8ad200c969a203db2f93bd070448c8", "relations": [], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.6-ba7c4b9dd7e33df1", "cves": [], "html": "<p>修复类 <code>check</code> Make 目标缺失的临时安装先决条件（Noah Misch）</p>\n<p>一些本应像 <code>make check</code> 一样工作的非默认测试流程未能确保临时安装是最新的。</p>", "text": "修复类 check Make 目标缺失的临时安装先决条件（Noah Misch） 一些本应像 make check 一样工作的非默认测试流程未能确保临时安装是最新的。", "title": "修复类 check Make 目标缺失的临时安装先决条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "8d3a95b8e6d7fb19acb92ba4770489ae415904f488d68dc16a1b45ee7a814eb6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix missing temp-install prerequisites for check-like Make targets (Noah Misch) Some non-default test procedures that are meant to work like make check failed to ensure that the temporary installation was up to date.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/036", "db_id": "c85a49c083768d9a7a41e16279df58c0", "patch_ids": [], "statement_hash": "adf838e56daaf91faf158a31e7924ee6c6bc92c87aae15962a3221ba62bc38df", "relations": [{"rule": 2, "type": "equivalent", "target": "084cff448678bc1c1f7c2bc0199d2688", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "adf838e56daaf91faf158a31e7924ee6c6bc92c87aae15962a3221ba62bc38df"}}, {"rule": 2, "type": "equivalent", "target": "727e420b2bbb58ff1295e9371b8cabad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "adf838e56daaf91faf158a31e7924ee6c6bc92c87aae15962a3221ba62bc38df"}}], "version": "9.6.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "727e420b2bbb58ff1295e9371b8cabad", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "修复类似 check 的 Make 目标缺少 temp-install 前置依赖的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "adf838e56daaf91faf158a31e7924ee6c6bc92c87aae15962a3221ba62bc38df"}, "url": "/docs/compare/?release=10.1#10.1-e596ff90508119e9", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "084cff448678bc1c1f7c2bc0199d2688", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "修复类 check Make 目标缺失的临时安装先决条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "adf838e56daaf91faf158a31e7924ee6c6bc92c87aae15962a3221ba62bc38df"}, "url": "/docs/compare/?release=9.5.10#9.5.10-ba7c4b9dd7e33df1", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}]}, {"id": "9.6.6-a5fb2787fb465882", "cves": [], "html": "<p>把我们的时区库副本与 IANA tzcode2017c 同步（Tom Lane）</p>\n<p>这修复了若干问题；唯一可能对用户可见的是，当时区数据目录中没有 <code>posixrules</code> 文件时，POSIX 风格时区名的默认夏令时规则现在匹配当前美国法律而不是十几年前的。</p>", "text": "把我们的时区库副本与 IANA tzcode2017c 同步（Tom Lane） 这修复了若干问题；唯一可能对用户可见的是，当时区数据目录中没有 posixrules 文件时，POSIX 风格时区名的默认夏令时规则现在匹配当前美国法律而不是十几年前的。", "title": "把我们的时区库副本与 IANA tzcode2017c 同步", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "25cc5ff434913660955ffee22f00813a2dda6bfbf7949ecb7c7d88836e10528f", "section_path": ["变更"], "commit_groups": [["1317d1301", "173b7a4a7", "24a1897ab", "4b433a8b0", "876e076eb", "9c74dd2d5", "dffe7fbc2"], ["2020f90bf", "3876b16ce", "47f849a3c", "89f02e17a", "a07105afa", "dbd6099fb", "e25f4401d"]], "identity_text": "Sync our copy of the timezone library with IANA release tzcode2017c (Tom Lane) This fixes various issues; the only one likely to be user-visible is that the default DST rules for a POSIX-style zone name, if no posixrules file exists in the timezone data directory, now match current US law rather than what it was a dozen years ago.", "commit_aliases": ["1317d1301", "173b7a4a7", "2020f90bf", "24a1897ab", "3876b16ce", "47f849a3c", "4b433a8b0", "876e076eb", "89f02e17a", "9c74dd2d5", "a07105afa", "dbd6099fb", "dffe7fbc2", "e25f4401d"], "source_commits": ["173b7a4a7", "e25f4401d"], "source_entry_id": "9.6.6/changes/037", "db_id": "0a2566d962dc17066b0858eccb1ec8ca", "patch_ids": ["392f613428a8a821e8a507efe798bccc", "aae1a35bf0a6df11a874a38593b8162e"], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d", "relations": [{"rule": 2, "type": "equivalent", "target": "06a4e590689a5f30eb58e6b5354b43a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}}, {"rule": 2, "type": "equivalent", "target": "3323050002a438fd4c496cad0d082d3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}}, {"rule": 2, "type": "equivalent", "target": "85e927695bfabb0a66f2b593f41aea7e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}}, {"rule": 2, "type": "equivalent", "target": "bab62d963c9727b928254af48d27401f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bab62d963c9727b928254af48d27401f", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "把我们的时区库副本与 IANA tzcode2017c 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}, "url": "/docs/compare/?release=9.5.10#9.5.10-a5fb2787fb465882", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "3323050002a438fd4c496cad0d082d3a", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "把我们的时区库副本与 IANA tzcode2017c 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}, "url": "/docs/compare/?release=9.4.15#9.4.15-a5fb2787fb465882", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "06a4e590689a5f30eb58e6b5354b43a6", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "把我们的时区库副本与 IANA tzcode2017c 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}, "url": "/docs/compare/?release=9.3.20#9.3.20-a5fb2787fb465882", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "85e927695bfabb0a66f2b593f41aea7e", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "把我们的时区库副本与 IANA tzcode2017c 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8985edb7ded2d38773ddc64598a39e38bbe5d8b73e649685024b1e356e36406d"}, "url": "/docs/compare/?release=9.2.24#9.2.24-a5fb2787fb465882", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}, {"id": "9.6.6-c140c362332e493c", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。</p>", "text": "更新时区数据文件到 tzdata 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "title": "更新时区数据文件到 tzdata 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.6/#id-1.11.6.23.5", "source_hash": "76d48a43ee33c8746bb6f8063ec88e7cadb450bdd45a77f4e13059ff3ce47ce1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2017c for DST law changes in Fiji, Namibia, Northern Cyprus, Sudan, Tonga, and Turks & Caicos Islands, plus historical corrections for Alaska, Apia, Burma, Calcutta, Detroit, Ireland, Namibia, and Pago Pago.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.6.6/changes/038", "db_id": "293143bd1bebf2fa099b043849086024", "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8", "relations": [{"rule": 2, "type": "equivalent", "target": "41fa2b66666f8560149b4e828a789f52", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}}, {"rule": 2, "type": "equivalent", "target": "5063230b1a3750ce6e2d9f3ced8caedc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}}, {"rule": 2, "type": "equivalent", "target": "85588d39e9c7e704df909e151fc0201f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}}, {"rule": 2, "type": "equivalent", "target": "cc4690a822d3cdb953a0494112d06b92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}}, {"rule": 2, "type": "equivalent", "target": "ecc97112734f3476d067fd7dbbf430da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}}], "version": "9.6.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ecc97112734f3476d067fd7dbbf430da", "kind": "equivalent", "version": "10.1", "label": "10.1", "title": "将时区数据文件更新到 tzdata 2017c 版，以反映斐济、纳米比亚、北塞浦路斯、苏丹、汤加和特克斯 & 凯科斯群岛的夏令时法规变更，并修正阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史数据。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}, "url": "/docs/compare/?release=10.1#10.1-4014adbaf08d9687", "source_url": "/docs/release/10.1/#id-1.11.6.27.5"}, {"db_id": "85588d39e9c7e704df909e151fc0201f", "kind": "equivalent", "version": "9.5.10", "label": "9.5.10", "title": "更新时区数据文件到 tzdata 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}, "url": "/docs/compare/?release=9.5.10#9.5.10-c140c362332e493c", "source_url": "/docs/release/9.5.10/#id-1.11.6.20.5"}, {"db_id": "5063230b1a3750ce6e2d9f3ced8caedc", "kind": "equivalent", "version": "9.4.15", "label": "9.4.15", "title": "将时区数据文件更新到tzdata发行版 2017c，以反映斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，以及阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}, "url": "/docs/compare/?release=9.4.15#9.4.15-3732889a8bc3ae53", "source_url": "/docs/release/9.4.15/#id-1.11.6.16.5"}, {"db_id": "41fa2b66666f8560149b4e828a789f52", "kind": "equivalent", "version": "9.3.20", "label": "9.3.20", "title": "更新时区数据文件到 tzdata 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}, "url": "/docs/compare/?release=9.3.20#9.3.20-c140c362332e493c", "source_url": "/docs/release/9.3.20/#id-1.11.6.10.5"}, {"db_id": "cc4690a822d3cdb953a0494112d06b92", "kind": "equivalent", "version": "9.2.24", "label": "9.2.24", "title": "更新时区数据文件到 tzdata 版本 2017c，涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更，加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3243bb08f79e29c95895ca9e1b7d57c80b961cfd148b11214ab2ca70959afea8"}, "url": "/docs/compare/?release=9.2.24#9.2.24-c140c362332e493c", "source_url": "/docs/release/9.2.24/#id-1.11.6.5.6"}]}]}, {"date": "2017-08-31", "build": "9.6.5", "major": "9.6", "minor": 5, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.5", "eol_date": "2021-11-11", "date_text": "2017-08-31", "supported": false, "manual_url": "/docs/9.6/release-9-6-5.html", "source_url": "/docs/release/9.6.5/", "entry_count": 10, "placeholder": false, "content_hash": "1211bac9bdfb80481d98f088d05db8b80a0dc999d39d6a7c55589a5442b615f8", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 10, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.6.4 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-4.html\" title=\"E.21. 版本 9.6.4\">第 E.21 节</a>。</p>", "compatibility_count": 0, "label": "9.6.5", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3317, "support_days": -1784, "entries": [{"id": "9.6.5-a9471aa1dc145ff0", "cves": [], "html": "<p>在 <code>information_schema</code>.<code>table_privileges</code> 视图中显示外部表（Peter Eisentraut）</p>\n<p>所有其他相关的 <code>information_schema</code> 视图都包含外部表，只有这一个忽略了它们。</p>\n<p>由于这个视图定义是由 <span>initdb</span> 安装的，仅升级不会修复问题。如果需要在现有安装中修复，可以以超级用户身份在 <span>psql</span> 中执行以下操作：</p>\n<pre>SET search_path TO information_schema;\nCREATE OR REPLACE VIEW table_privileges AS\nSELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor,\n       CAST(grantee.rolname AS sql_identifier) AS grantee,\n       CAST(current_database() AS sql_identifier) AS table_catalog,\n       CAST(nc.nspname AS sql_identifier) AS table_schema,\n       CAST(c.relname AS sql_identifier) AS table_name,\n       CAST(c.prtype AS character_data) AS privilege_type,\n       CAST(\n         CASE WHEN\n          -- object owner always has grant options\n          pg_has_role(grantee.oid, c.relowner, 'USAGE')\n          OR c.grantable\n          THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable,\n       CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy\nFROM (\n       SELECT oid, relname, relnamespace, relkind, relowner,\n              (aclexplode(coalesce(relacl, acldefault('r', relowner))).*\n       FROM pg_class ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable),\n     pg_namespace nc, pg_authid u_grantor,\n     (\n       SELECT oid, rolname FROM pg_authid\n       UNION ALL\n       SELECT 0::oid, 'PUBLIC'\n     ) AS grantee (oid, rolname)\nWHERE c.relnamespace = nc.oid\n      AND c.relkind IN ('r', 'v', 'f')\n      AND c.grantee = grantee.oid\n      AND c.grantor = u_grantor.oid\n      AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER')\n      AND (pg_has_role(u_grantor.oid, 'USAGE')\n           OR pg_has_role(grantee.oid, 'USAGE')\n           OR grantee.rolname = 'PUBLIC');\n</pre>\n<p>这必须在每个要修复的数据库中重复，包括 <code>template0</code>。</p>", "text": "在 information_schema.table_privileges 视图中显示外部表（Peter Eisentraut） 所有其他相关的 information_schema 视图都包含外部表，只有这一个忽略了它们。 由于这个视图定义是由 initdb 安装的，仅升级不会修复问题。如果需要在现有安装中修复，可以以超级用户身份在 psql 中执行以下操作： SET search_path TO information_schema; CREATE OR REPLACE VIEW table_privileges AS SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor, CAST(grantee.rolname AS sql_identifier) AS grantee, CAST(current_database() AS sql_identifier) AS table_catalog, CAST(nc.nspname AS sql_identifier) AS table_schema, CAST(c.relname AS sql_identifier) AS table_name, CAST(c.prtype AS character_data) AS privilege_type, CAST( CASE WHEN -- object owner always has grant options pg_has_role(grantee.oid, c.relowner, 'USAGE') OR c.grantable THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable, CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy FROM ( SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner))).* FROM pg_class ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable), pg_namespace nc, pg_authid u_grantor, ( SELECT oid, rolname FROM pg_authid UNION ALL SELECT 0::oid, 'PUBLIC' ) AS grantee (oid, rolname) WHERE c.relnamespace = nc.oid AND c.relkind IN ('r', 'v', 'f') AND c.grantee = grantee.oid AND c.grantor = u_grantor.oid AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER') AND (pg_has_role(u_grantor.oid, 'USAGE') OR pg_has_role(grantee.oid, 'USAGE') OR grantee.rolname = 'PUBLIC'); 这必须在每个要修复的数据库中重复，包括 template0。", "title": "在 information_schema.table_privileges 视图中显示外部表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5", "source_hash": "7f8d4fc87e45efbe69f7cad0e84b5c205cc63664664b66e74af74dd7c081c242", "section_path": ["变更"], "commit_groups": [["0659465ca", "3ea58216d", "52427015a", "98e6784aa", "9f0f4efc2", "dbeefe64f", "dce90c7c8"]], "identity_text": "Show foreign tables in information_schema.table_privileges view (Peter Eisentraut) All other relevant information_schema views include foreign tables, but this one ignored them. Since this view definition is installed by initdb, merely upgrading will not fix the problem. If you need to fix this in an existing installation, you can, as a superuser, do this in psql: SET search_path TO information_schema; CREATE OR REPLACE VIEW table_privileges AS SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor, CAST(grantee.rolname AS sql_identifier) AS grantee, CAST(current_database() AS sql_identifier) AS table_catalog, CAST(nc.nspname AS sql_identifier) AS table_schema, CAST(c.relname AS sql_identifier) AS table_name, CAST(c.prtype AS character_data) AS privilege_type, CAST( CASE WHEN -- object owner always has grant options pg_has_role(grantee.oid, c.relowner, 'USAGE') OR c.grantable THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable, CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy FROM ( SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable), pg_namespace nc, pg_authid u_grantor, ( SELECT oid, rolname FROM pg_authid UNION ALL SELECT 0::oid, 'PUBLIC' ) AS grantee (oid, rolname) WHERE c.relnamespace = nc.oid AND c.relkind IN ('r', 'v', 'f') AND c.grantee = grantee.oid AND c.grantor = u_grantor.oid AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER') AND (pg_has_role(u_grantor.oid, 'USAGE') OR pg_has_role(grantee.oid, 'USAGE') OR grantee.rolname = 'PUBLIC'); This must be repeated in each database to be fixed, including template0.", "commit_aliases": ["0659465ca", "3ea58216d", "52427015a", "98e6784aa", "9f0f4efc2", "dbeefe64f", "dce90c7c8"], "source_commits": ["dce90c7c8"], "source_entry_id": "9.6.5/changes/001", "db_id": "df32761f4e98b569ae3c4a9354183c85", "patch_ids": ["8960b4b2131c05a2459a42b5978dc792"], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd", "relations": [{"rule": 2, "type": "equivalent", "target": "10a4b1a21748add5cdc22ac4594174dc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}, {"rule": 2, "type": "equivalent", "target": "3f82faaf4eff73a2042216d4eac21a2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}, {"rule": 2, "type": "equivalent", "target": "41e90977ae153a8484b1cdec9c094b9d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}, {"rule": 2, "type": "equivalent", "target": "6490008c6b679a796619737abb260ab9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}], "version": "9.6.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "41e90977ae153a8484b1cdec9c094b9d", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "在 information_schema.table_privileges 视图中显示外部表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.5.9#9.5.9-a9471aa1dc145ff0", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "10a4b1a21748add5cdc22ac4594174dc", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "在 information_schema.table_privileges 视图中显示外部表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.4.14#9.4.14-a9471aa1dc145ff0", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "6490008c6b679a796619737abb260ab9", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "在 information_schema.table_privileges 视图中显示外部表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.3.19#9.3.19-a9471aa1dc145ff0", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5"}, {"db_id": "3f82faaf4eff73a2042216d4eac21a2c", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "在 information_schema.table_privileges 视图中显示外部表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.2.23#9.2.23-a9471aa1dc145ff0", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}, {"id": "9.6.5-2c80f774f076c8fd", "cves": [], "html": "<p>清理尝试对失败事务执行 <code>ROLLBACK</code> 时发生致命退出（例如因收到 <span>SIGTERM</span>）的处理（Tom Lane）</p>\n<p>这种情况可能导致断言失败。在生产构建中退出仍会发生，但会记录一条关于 <span>“<span>cannot drop active portal</span>”</span> 的意外消息。</p>", "text": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理（Tom Lane） 这种情况可能导致断言失败。在生产构建中退出仍会发生，但会记录一条关于 “cannot drop active portal” 的意外消息。", "title": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5", "source_hash": "71149e97a117a3fa97748d622a336fc48403bdb9ad470aef1db9754f3ba3e4ad", "section_path": ["变更"], "commit_groups": [["51684bad9", "5b6289c1e", "624b6f328", "8ae41ceae", "cd184273b", "daafb11ff"]], "identity_text": "Clean up handling of a fatal exit (e.g., due to receipt of SIGTERM) that occurs while trying to execute a ROLLBACK of a failed transaction (Tom Lane) This situation could result in an assertion failure. In production builds, the exit would still occur, but it would log an unexpected message about cannot drop active portal.", "commit_aliases": ["51684bad9", "5b6289c1e", "624b6f328", "8ae41ceae", "cd184273b", "daafb11ff"], "source_commits": ["624b6f328"], "source_entry_id": "9.6.5/changes/002", "db_id": "ec8e803c943e0b1082d3dd91507845c3", "patch_ids": ["abc51eeb3a1ebe406542ae9d6991939d"], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3", "relations": [{"rule": 2, "type": "equivalent", "target": "0dae3f449dfb816df1df5fde5f526d0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}, {"rule": 2, "type": "equivalent", "target": "ae36cc2c0a2f6aa05a29af6344b41317", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}, {"rule": 2, "type": "equivalent", "target": "b72e2b8199e9f5e2f2549b1725d05d0b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}, {"rule": 2, "type": "equivalent", "target": "f9959ffe6fe7709a79e620b35064a27d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}], "version": "9.6.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ae36cc2c0a2f6aa05a29af6344b41317", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.5.9#9.5.9-2c80f774f076c8fd", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "b72e2b8199e9f5e2f2549b1725d05d0b", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.4.14#9.4.14-2c80f774f076c8fd", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "0dae3f449dfb816df1df5fde5f526d0f", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.3.19#9.3.19-2c80f774f076c8fd", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5"}, {"db_id": "f9959ffe6fe7709a79e620b35064a27d", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.2.23#9.2.23-2c80f774f076c8fd", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}, {"id": "9.6.5-b5e135b3d4add397", "cves": [], "html": "<p>移除致命退出期间可能触发的断言（Tom Lane）</p>", "text": "移除致命退出期间可能触发的断言（Tom Lane）", "title": "移除致命退出期间可能触发的断言", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5", "source_hash": "49007c73a0e19fa6ec6cc2d2a488788fdeb8bf953cad0e4da6965bcd7fc9fc26", "section_path": ["变更"], "commit_groups": [["004a9702e", "425be3ac9", "5069017fe", "5a3688dc8", "a64b5a992", "bb11ff2bc"]], "identity_text": "Remove assertion that could trigger during a fatal exit (Tom Lane)", "commit_aliases": ["004a9702e", "425be3ac9", "5069017fe", "5a3688dc8", "a64b5a992", "bb11ff2bc"], "source_commits": ["a64b5a992"], "source_entry_id": "9.6.5/changes/003", "db_id": "88259e18f9ffa0f282e9828e4a46b4a0", "patch_ids": ["5cf117a4ec56f532694965ecae47839f"], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746", "relations": [{"rule": 2, "type": "equivalent", "target": "2cdb4a28a33a0e8815255ea6e190bbd9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}, {"rule": 2, "type": "equivalent", "target": "5cd648610ff81e672a3935e98852c494", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}, {"rule": 2, "type": "equivalent", "target": "84ef0ccd288d161ff09bbdcb5dffb3aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}, {"rule": 2, "type": "equivalent", "target": "b49d786050cef1b1d115cc3aa5cd1454", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}], "version": "9.6.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b49d786050cef1b1d115cc3aa5cd1454", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "移除致命退出期间可能触发的断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.5.9#9.5.9-b5e135b3d4add397", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "84ef0ccd288d161ff09bbdcb5dffb3aa", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "移除在致命退出期间可能触发的断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.4.14#9.4.14-b12d68766d941918", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "5cd648610ff81e672a3935e98852c494", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "移除致命退出期间可能触发的断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.3.19#9.3.19-b5e135b3d4add397", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5"}, {"db_id": "2cdb4a28a33a0e8815255ea6e190bbd9", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "移除致命退出期间可能触发的断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.2.23#9.2.23-b5e135b3d4add397", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}, {"id": "9.6.5-8a8b1213bb73a969", "cves": [], "html": "<p>正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列（Tom Lane）</p>\n<p>某些更改复合类型或域类型定义的 <code>ALTER</code> 命令本应在该类型有存储值时失败，因为它们缺少更新或检查这类值所需的基础设施。此前这些检查可能遗漏包裹在范围类型或子域中的相关值，可能允许数据度变得不一致。</p>", "text": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列（Tom Lane） 某些更改复合类型或域类型定义的 ALTER 命令本应在该类型有存储值时失败，因为它们缺少更新或检查这类值所需的基础设施。此前这些检查可能遗漏包裹在范围类型或子域中的相关值，可能允许数据度变得不一致。", "title": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5", "source_hash": "716325e144bfb7fd1d954c360d709b559f92745afd351213b94f851ef9dad809", "section_path": ["变更"], "commit_groups": [["06931a9c0", "4e704aac1", "749c7c417", "95a0a8d2a", "d1c1d90e1", "e2e398473"]], "identity_text": "Correctly identify columns that are of a range type or domain type over a composite type or domain type being searched for (Tom Lane) Certain ALTER commands that change the definition of a composite type or domain type are supposed to fail if there are any stored values of that type in the database, because they lack the infrastructure needed to update or check such values. Previously, these checks could miss relevant values that are wrapped inside range types or sub-domains, possibly allowing the database to become inconsistent.", "commit_aliases": ["06931a9c0", "4e704aac1", "749c7c417", "95a0a8d2a", "d1c1d90e1", "e2e398473"], "source_commits": ["e2e398473"], "source_entry_id": "9.6.5/changes/004", "db_id": "7bf0fd5e8efbe5ef59a9cb0f0755f90c", "patch_ids": ["40fc310af3b5b92bdbbe63621b6e227c"], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761", "relations": [{"rule": 2, "type": "equivalent", "target": "71abe7ea8efc33852b4ca5c481f21278", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}, {"rule": 2, "type": "equivalent", "target": "73b62edc7cc658789a1495105b92e2ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}, {"rule": 2, "type": "equivalent", "target": "74a0658a15a01d0c31a8ba50bc811e75", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}, {"rule": 2, "type": "equivalent", "target": "e9c971ac5fd2b5a201825b0c71b7aa87", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}], "version": "9.6.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "73b62edc7cc658789a1495105b92e2ad", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.5.9#9.5.9-8a8b1213bb73a969", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "74a0658a15a01d0c31a8ba50bc811e75", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.4.14#9.4.14-8a8b1213bb73a969", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "71abe7ea8efc33852b4ca5c481f21278", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.3.19#9.3.19-8a8b1213bb73a969", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5"}, {"db_id": "e9c971ac5fd2b5a201825b0c71b7aa87", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.2.23#9.2.23-8a8b1213bb73a969", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}, {"id": "9.6.5-1ce01de36487ba49", "cves": [], "html": "<p>防止把定长按引用传递数据类型传给并行工作者进程时崩溃（Tom Lane）</p>", "text": "防止把定长按引用传递数据类型传给并行工作者进程时崩溃（Tom Lane）", "title": "防止把定长按引用传递数据类型传给并行工作者进程时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5", "source_hash": "a2058b3aef57474154d75986dc566acfdf21d0485a95c2e7f6de5745c7d4d51d", "section_path": ["变更"], "commit_groups": [["9bf4068cc", "fe578cbd4"]], "identity_text": "Prevent crash when passing fixed-length pass-by-reference data types to parallel worker processes (Tom Lane)", "commit_aliases": ["9bf4068cc", "fe578cbd4"], "source_commits": ["fe578cbd4"], "source_entry_id": "9.6.5/changes/005", "db_id": "e050a50e5c35695b8e58fe5a1befaad5", "patch_ids": ["74f26317a79673132e81b8caeb44b4a7"], "statement_hash": "11cff1c4de95fb0ed06a24cd077facdce5c13ab49ea401afd05ccd534e90683c", "relations": [], "version": "9.6.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.5-39612b25468b2136", "cves": [], "html": "<p>修复使用并行模式并使用列表文件选择要恢复条目子集时 <span>pg_restore</span> 的崩溃（Fabrízio de Royes Mello）</p>", "text": "修复使用并行模式并使用列表文件选择要恢复条目子集时 pg_restore 的崩溃（Fabrízio de Royes Mello）", "title": "修复使用并行模式并使用列表文件选择要恢复条目子集时 pg_restore 的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5", "source_hash": "7039bb621b3b5da2046e89cbef1e2fa32580c524bf1f35473865a201e30f6e43", "section_path": ["变更"], "commit_groups": [["1c3869c0b", "258aac0b2", "41803d55a", "59dde9fed", "b1c2d76a2", "ece4bd901"]], "identity_text": "Fix crash in pg_restore when using parallel mode and using a list file to select a subset of items to restore (Fabrízio de Royes Mello)", "commit_aliases": ["1c3869c0b", "258aac0b2", "41803d55a", "59dde9fed", "b1c2d76a2", "ece4bd901"], "source_commits": ["41803d55a"], "source_entry_id": "9.6.5/changes/006", "db_id": "4b7b3c5c5d968e316d42a993dd32277e", "patch_ids": ["abd5c1fea0eb1cde0380cd77bcf7d3bd"], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d", "relations": [{"rule": 2, "type": "equivalent", "target": "4973f8791ad7072a5b7268ac69880153", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}}, {"rule": 2, "type": "equivalent", "target": "809b5e89cd8a08302229e2aa81106597", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}}, {"rule": 2, "type": "equivalent", "target": "f651852ac99a0a35375d12de814e3e9c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}}], "version": "9.6.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f651852ac99a0a35375d12de814e3e9c", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "修复使用并行模式并使用列表文件选择要恢复条目子集时 pg_restore 的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}, "url": "/docs/compare/?release=9.5.9#9.5.9-39612b25468b2136", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "809b5e89cd8a08302229e2aa81106597", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "修复pg_restore在使用并行模式并使用列表文件选择要还原项的子集时崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}, "url": "/docs/compare/?release=9.4.14#9.4.14-3003c9e1be66c736", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "4973f8791ad7072a5b7268ac69880153", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "修复使用并行模式并使用列表文件选择要恢复条目子集时 pg_restore 的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}, "url": "/docs/compare/?release=9.3.19#9.3.19-39612b25468b2136", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5"}]}, {"id": "9.6.5-a2c9ce6a936c154a", "cves": [], "html": "<p>更改 <span>ecpg</span> 的解析器允许不带 C 变量的 <code>RETURNING</code> 子句（Michael Meskes）</p>\n<p>这允许 <span>ecpg</span> 程序包含在内部使用 <code>RETURNING</code>（例如在 CTE 内）而不是用它定义返回给客户端的值的 SQL 构造。</p>", "text": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句（Michael Meskes） 这允许 ecpg 程序包含在内部使用 RETURNING（例如在 CTE 内）而不是用它定义返回给客户端的值的 SQL 构造。", "title": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5", "source_hash": "e3ffaa4edb55e77dd8b2e347277378b0352c4934edb3659faa54df88dea700c8", "section_path": ["变更"], "commit_groups": [["3d7a1e2b9", "60b135c82", "bd502753a", "ea0ca75d5", "f2ed2d0a1", "f8bc6b2f6"]], "identity_text": "Change ecpg's parser to allow RETURNING clauses without attached C variables (Michael Meskes) This allows ecpg programs to contain SQL constructs that use RETURNING internally (for example, inside a CTE) rather than using it to define values to be returned to the client.", "commit_aliases": ["3d7a1e2b9", "60b135c82", "bd502753a", "ea0ca75d5", "f2ed2d0a1", "f8bc6b2f6"], "source_commits": ["3d7a1e2b9"], "source_entry_id": "9.6.5/changes/007", "db_id": "cff3c4860563f6b8bc8a0dd39b1e7d98", "patch_ids": ["fb2f8cb14a24dc72215a65db81bc6a53"], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348", "relations": [{"rule": 2, "type": "equivalent", "target": "1c903c2b45dfeb3c4c69edb715182ffc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}, {"rule": 2, "type": "equivalent", "target": "397743f1137bc45382759daafaf3e467", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}, {"rule": 2, "type": "equivalent", "target": "8b053a8e0c87c6b9951b5c4833080e89", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}, {"rule": 2, "type": "equivalent", "target": "dcfd6b1086dc12dab1f710cc7cc1e6cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}], "version": "9.6.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dcfd6b1086dc12dab1f710cc7cc1e6cf", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.5.9#9.5.9-a2c9ce6a936c154a", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "8b053a8e0c87c6b9951b5c4833080e89", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.4.14#9.4.14-a2c9ce6a936c154a", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "397743f1137bc45382759daafaf3e467", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.3.19#9.3.19-a2c9ce6a936c154a", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5"}, {"db_id": "1c903c2b45dfeb3c4c69edb715182ffc", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.2.23#9.2.23-a2c9ce6a936c154a", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}, {"id": "9.6.5-8f33962a087be498", "cves": [], "html": "<p>更改 <span>ecpg</span> 的解析器识别 C 预处理命令行的反斜线续行（Michael Meskes）</p>", "text": "更改 ecpg 的解析器识别 C 预处理命令行的反斜线续行（Michael Meskes）", "title": "更改 ecpg 的解析器识别 C 预处理命令行的反斜线续行", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5", "source_hash": "d8a45fe8c7ff93a98eb144b5df22afc466d2d683908d0484e746fc3ea57535f5", "section_path": ["变更"], "commit_groups": [["954490fec", "a4619b26a", "a6b174f55"]], "identity_text": "Change ecpg's parser to recognize backslash continuation of C preprocessor command lines (Michael Meskes)", "commit_aliases": ["954490fec", "a4619b26a", "a6b174f55"], "source_commits": ["954490fec"], "source_entry_id": "9.6.5/changes/008", "db_id": "4d1ce8de029b29c286bce782cf9380a0", "patch_ids": ["fb5c8e99a48ffd5e0c944aa1280012d5"], "statement_hash": "b43de4e4549723df7ecba4769f1a27b90b75080c3fd86c2ac6a1cad099db8e71", "relations": [], "version": "9.6.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.5-59c8a1aebc0aeb07", "cves": [], "html": "<p>改进 Windows 上 PL/Perl 编译器标志的选择（Tom Lane）</p>\n<p>此修复避免了因对 <code>time_t</code> 值宽度的假定不一致而可能的 PL/Perl 崩溃。扩展开发者可能看到的一个副作用是 <code>_USE_32BIT_TIME_T</code> 不再在 <span>PostgreSQL</span> Windows 构建中全局定义。这预计不会引起问题，因为 <code>time_t</code> 类型没有用于任何 <span>PostgreSQL</span> API 定义。</p>", "text": "改进 Windows 上 PL/Perl 编译器标志的选择（Tom Lane） 此修复避免了因对 time_t 值宽度的假定不一致而可能的 PL/Perl 崩溃。扩展开发者可能看到的一个副作用是 _USE_32BIT_TIME_T 不再在 PostgreSQL Windows 构建中全局定义。这预计不会引起问题，因为 time_t 类型没有用于任何 PostgreSQL API 定义。", "title": "改进 Windows 上 PL/Perl 编译器标志的选择", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5", "source_hash": "01fd58281bd37e03093ec072c148ccaf361ca0c7482b66a304715423d970ad02", "section_path": ["变更"], "commit_groups": [["01de7ea85", "1621a7553", "25169b948", "3883be3ea", "5a5c2feca", "e3335ec0b"], ["1d7a479d2", "4f862351d", "b5178c5d0", "bc4404405", "bff216d87", "c34331488", "f7e4783dd"]], "identity_text": "Improve selection of compiler flags for PL/Perl on Windows (Tom Lane) This fix avoids possible crashes of PL/Perl due to inconsistent assumptions about the width of time_t values. A side-effect that may be visible to extension developers is that _USE_32BIT_TIME_T is no longer defined globally in PostgreSQL Windows builds. This is not expected to cause problems, because type time_t is not used in any PostgreSQL API definitions.", "commit_aliases": ["01de7ea85", "1621a7553", "1d7a479d2", "25169b948", "3883be3ea", "4f862351d", "5a5c2feca", "b5178c5d0", "bc4404405", "bff216d87", "c34331488", "e3335ec0b", "f7e4783dd"], "source_commits": ["3883be3ea", "c34331488"], "source_entry_id": "9.6.5/changes/009", "db_id": "174ebed95fdf320d91b3db9f71a9265a", "patch_ids": ["68c9ec54e599f67e8dd10fe0550afb03", "819d54a8cfe08643b3fbd32dc5e5131e"], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66", "relations": [{"rule": 2, "type": "equivalent", "target": "a8ad0fb10f04704616588a82af98dbff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}, {"rule": 2, "type": "equivalent", "target": "f490072174f6dab4a7f5d5d01709bc8c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}, {"rule": 2, "type": "equivalent", "target": "fc4dc1c8fda86f29580edb9411bbad9a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}, {"rule": 2, "type": "equivalent", "target": "ff5f500a1e1a883ae5db2f02f35c34a3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}], "version": "9.6.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ff5f500a1e1a883ae5db2f02f35c34a3", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "改进 Windows 上 PL/Perl 编译器标志的选择", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.5.9#9.5.9-59c8a1aebc0aeb07", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}, {"db_id": "fc4dc1c8fda86f29580edb9411bbad9a", "kind": "equivalent", "version": "9.4.14", "label": "9.4.14", "title": "改进 Windows 上 PL/Perl 编译器标志的选择", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.4.14#9.4.14-59c8a1aebc0aeb07", "source_url": "/docs/release/9.4.14/#id-1.11.6.17.5"}, {"db_id": "a8ad0fb10f04704616588a82af98dbff", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "改进 Windows 上 PL/Perl 编译器标志的选择", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.3.19#9.3.19-59c8a1aebc0aeb07", "source_url": "/docs/release/9.3.19/#id-1.11.6.11.5"}, {"db_id": "f490072174f6dab4a7f5d5d01709bc8c", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "改进 Windows 上 PL/Perl 编译器标志的选择", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.2.23#9.2.23-59c8a1aebc0aeb07", "source_url": "/docs/release/9.2.23/#id-1.11.6.6.6"}]}, {"id": "9.6.5-68c53a8d94fdb0aa", "cves": [], "html": "<p>修复通过非 GNU make 程序调用时 <code>make check</code> 的正确行为（Thomas Munro）</p>", "text": "修复通过非 GNU make 程序调用时 make check 的正确行为（Thomas Munro）", "title": "修复通过非 GNU make 程序调用时 make check 的正确行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.5/#id-1.11.6.24.5", "source_hash": "fcab549fdd45ba1dbdcf9d051cbd161ca324d51e078eaf56852a3cdf1f16b0bc", "section_path": ["变更"], "commit_groups": [["a76200de8", "a784d5f21", "fc2aafe4a"]], "identity_text": "Fix make check to behave correctly when invoked via a non-GNU make program (Thomas Munro)", "commit_aliases": ["a76200de8", "a784d5f21", "fc2aafe4a"], "source_commits": ["fc2aafe4a"], "source_entry_id": "9.6.5/changes/010", "db_id": "47ba35d2c48f35bc6f3aa18562bca457", "patch_ids": ["a8be94464ad59c656d29aeff6ec89830"], "statement_hash": "97d4224c58dc3ee5a6f07b0b104b700afc6275717d3f882306c8cf9a045cf41f", "relations": [{"rule": 2, "type": "equivalent", "target": "053f49b4f93ec90ec2c742afb5581884", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "97d4224c58dc3ee5a6f07b0b104b700afc6275717d3f882306c8cf9a045cf41f"}}], "version": "9.6.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "053f49b4f93ec90ec2c742afb5581884", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "修复通过非 GNU make 程序调用时 make check 的正确行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "97d4224c58dc3ee5a6f07b0b104b700afc6275717d3f882306c8cf9a045cf41f"}, "url": "/docs/compare/?release=9.5.9#9.5.9-68c53a8d94fdb0aa", "source_url": "/docs/release/9.5.9/#id-1.11.6.21.5"}]}]}, {"date": "2017-08-10", "build": "9.6.4", "major": "9.6", "minor": 4, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.4", "eol_date": "2021-11-11", "date_text": "2017-08-10", "supported": false, "manual_url": "/docs/9.6/release-9-6-4.html", "source_url": "/docs/release/9.6.4/", "entry_count": 60, "placeholder": false, "content_hash": "8606ddbcaf078863a9968e24e5cd5df32c7176702c84dc68b5837b82eeae2bc8", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 60, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你使用通过用户密码认证的外部数据服务器，请参见下面第一条变更日志条目。</p>\n<p>另外，如果你是从 9.6.3 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-3.html\" title=\"E.22. 版本 9.6.3\">第 E.22 节</a>。</p>", "compatibility_count": 0, "label": "9.6.4", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3338, "support_days": -1784, "entries": [{"id": "9.6.4-a79358365b635764", "cves": ["CVE-2017-7486", "CVE-2017-7547"], "html": "<p>进一步限制 <code>pg_user_mappings</code>.<code>umoptions</code> 的可见性，以保护存储为用户映射选项的密码（Noah Misch）</p>\n<p>CVE-2017-7486 的修复不正确：它允许用户看到她自己用户映射中的选项，即使她对相关外部服务器没有 <code>USAGE</code> 权限。这种选项可能包含由服务器所有者而非用户自己提供的密码。由于 <code>information_schema.user_mapping_options</code> 在这种情况下不显示选项，<code>pg_user_mappings</code> 也不应该。（CVE-2017-7547）</p>\n<p>此补丁本身只会修复新 initdb 的数据库中的行为。如果希望在现有数据库中应用此更改，需要执行以下操作：</p>\n<div>\n<ol type=\"1\">\n<li>\n<p>在 <code>postgresql.conf</code> 中添加 <code>allow_system_table_mods = true</code> 后重启 postmaster。（在支持 <code>ALTER SYSTEM</code> 的版本中，可以用它进行配置更改，但仍需重启。）</p>\n</li>\n<li>\n<p>在集簇的<span><em>每个</em></span>数据库中，以超级用户身份运行以下命令：</p>\n<pre>SET search_path = pg_catalog;\nCREATE OR REPLACE VIEW pg_user_mappings AS\nSELECT U.oid AS umid, S.oid AS srvid, S.srvname AS srvname,\n       U.umuser AS umuser,\n       CASE WHEN U.umuser = 0 THEN 'public' ELSE A.rolname END AS usename,\n       CASE WHEN (U.umuser &lt;&gt; 0 AND A.rolname = current_user\n                   AND (pg_has_role(S.srvowner, 'USAGE')\n                        OR has_server_privilege(S.oid, 'USAGE')))\n                OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE'))\n                OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)\n            THEN U.umoptions ELSE NULL END AS umoptions\nFROM pg_user_mapping U\n     LEFT JOIN pg_authid A ON (A.oid = U.umuser)\n     JOIN pg_foreign_server S ON (U.umserver = S.oid);\n</pre></li>\n<li>\n<p>不要忘记包括 <code>template0</code> 和 <code>template1</code> 数据库，否则漏洞仍会存在于之后创建的数据库中。要修复 <code>template0</code>，需要暂时让它接受连接。在 <span>PostgreSQL</span> 9.5 及之后，可以使用</p>\n<pre>ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;\n</pre>\n<p>修复 <code>template0</code> 之后再撤销：</p>\n<pre>ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;\n</pre>\n<p>在更早的版本中，改用：</p>\n<pre>UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';\nUPDATE pg_database SET datallowconn = false WHERE datname = 'template0';\n</pre></li>\n<li>\n<p>最后，移除 <code>allow_system_table_mods</code> 配置设置，并再次重启 postmaster。</p>\n</li>\n</ol>\n</div>", "text": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码（Noah Misch） CVE-2017-7486 的修复不正确：它允许用户看到她自己用户映射中的选项，即使她对相关外部服务器没有 USAGE 权限。这种选项可能包含由服务器所有者而非用户自己提供的密码。由于 information_schema.user_mapping_options 在这种情况下不显示选项，pg_user_mappings 也不应该。（CVE-2017-7547） 此补丁本身只会修复新 initdb 的数据库中的行为。如果希望在现有数据库中应用此更改，需要执行以下操作： 在 postgresql.conf 中添加 allow_system_table_mods = true 后重启 postmaster。（在支持 ALTER SYSTEM 的版本中，可以用它进行配置更改，但仍需重启。） 在集簇的每个数据库中，以超级用户身份运行以下命令： SET search_path = pg_catalog; CREATE OR REPLACE VIEW pg_user_mappings AS SELECT U.oid AS umid, S.oid AS srvid, S.srvname AS srvname, U.umuser AS umuser, CASE WHEN U.umuser = 0 THEN 'public' ELSE A.rolname END AS usename, CASE WHEN (U.umuser <> 0 AND A.rolname = current_user AND (pg_has_role(S.srvowner, 'USAGE') OR has_server_privilege(S.oid, 'USAGE'))) OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE')) OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user) THEN U.umoptions ELSE NULL END AS umoptions FROM pg_user_mapping U LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN pg_foreign_server S ON (U.umserver = S.oid); 不要忘记包括 template0 和 template1 数据库，否则漏洞仍会存在于之后创建的数据库中。要修复 template0，需要暂时让它接受连接。在 PostgreSQL 9.5 及之后，可以使用 ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; 修复 template0 之后再撤销： ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; 在更早的版本中，改用： UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'; UPDATE pg_database SET datallowconn = false WHERE datname = 'template0'; 最后，移除 allow_system_table_mods 配置设置，并再次重启 postmaster。", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f7ebba0f67292e920126fc2b315364b3087756fa230f0245c1869aae421eed8a", "section_path": ["变更"], "commit_groups": [["156099630", "36f9f6095", "5e8e00914", "b6e39ca92", "e255e97a2", "e568e1eee"]], "identity_text": "Further restrict visibility of pg_user_mappings.umoptions, to protect passwords stored as user mapping options (Noah Misch) The fix for CVE-2017-7486 was incorrect: it allowed a user to see the options in her own user mapping, even if she did not have USAGE permission on the associated foreign server. Such options might include a password that had been provided by the server owner rather than the user herself. Since information_schema.user_mapping_options does not show the options in such cases, pg_user_mappings should not either. (CVE-2017-7547) By itself, this patch will only fix the behavior in newly initdb'd databases. If you wish to apply this change in an existing database, you will need to do the following: Restart the postmaster after adding allow_system_table_mods = true to postgresql.conf. (In versions supporting ALTER SYSTEM, you can use that to make the configuration change, but you'll still need a restart.) In each database of the cluster, run the following commands as superuser: SET search_path = pg_catalog; CREATE OR REPLACE VIEW pg_user_mappings AS SELECT U.oid AS umid, S.oid AS srvid, S.srvname AS srvname, U.umuser AS umuser, CASE WHEN U.umuser = 0 THEN 'public' ELSE A.rolname END AS usename, CASE WHEN (U.umuser <> 0 AND A.rolname = current_user AND (pg_has_role(S.srvowner, 'USAGE') OR has_server_privilege(S.oid, 'USAGE'))) OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE')) OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user) THEN U.umoptions ELSE NULL END AS umoptions FROM pg_user_mapping U LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN pg_foreign_server S ON (U.umserver = S.oid); Do not forget to include the template0 and template1 databases, or the vulnerability will still exist in databases you create later. To fix template0, you'll need to temporarily make it accept connections. In PostgreSQL 9.5 and later, you can use ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; and then after fixing template0, undo that with ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; In prior versions, instead use UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'; UPDATE pg_database SET datallowconn = false WHERE datname = 'template0'; Finally, remove the allow_system_table_mods configuration setting, and again restart the postmaster.", "commit_aliases": ["156099630", "36f9f6095", "5e8e00914", "b6e39ca92", "e255e97a2", "e568e1eee"], "source_commits": ["156099630"], "source_entry_id": "9.6.4/changes/001", "db_id": "1e69271813fc4ef5d63b790ce20c8121", "patch_ids": ["7d34abb372ef300ca7bd81ea3b0035ed"], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731", "relations": [{"rule": 2, "type": "equivalent", "target": "1855f0a3638d5064133d7c655b6801a8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}, {"rule": 2, "type": "equivalent", "target": "21b6568d8ef3f87de08e2d1aeba27c01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}, {"rule": 2, "type": "equivalent", "target": "d9c8c2d5f382f57bd292b9414c97967a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}, {"rule": 2, "type": "equivalent", "target": "e1a74c8d75ca403b9d0629f7fef87947", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}], "version": "9.6.4", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "e1a74c8d75ca403b9d0629f7fef87947", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.5.8#9.5.8-a79358365b635764", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "21b6568d8ef3f87de08e2d1aeba27c01", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.4.13#9.4.13-a79358365b635764", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "d9c8c2d5f382f57bd292b9414c97967a", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.3.18#9.3.18-a79358365b635764", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "1855f0a3638d5064133d7c655b6801a8", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.2.22#9.2.22-a79358365b635764", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-49a2f6860ca3f76c", "cves": ["CVE-2017-7546"], "html": "<p>禁止在所有基于密码的认证方法中使用空密码（Heikki Linnakangas）</p>\n<p><span>libpq</span> 忽略空的密码说明，不把它们传输给服务器。因此，如果用户的密码被设为空字符串，就无法通过 <span>psql</span> 或其他基于 <span>libpq</span> 的客户端用该密码登录。管理员可能因此认为把密码设为空等同于禁用密码登录。然而，使用修改过的或非 <span>libpq</span> 的客户端，登录可能是可能的，这取决于配置的认证方法。特别是最常见的方法 <code>md5</code> 接受空密码。更改服务器在所有情况下拒绝空密码。（CVE-2017-7546）</p>", "text": "禁止在所有基于密码的认证方法中使用空密码（Heikki Linnakangas） libpq 忽略空的密码说明，不把它们传输给服务器。因此，如果用户的密码被设为空字符串，就无法通过 psql 或其他基于 libpq 的客户端用该密码登录。管理员可能因此认为把密码设为空等同于禁用密码登录。然而，使用修改过的或非 libpq 的客户端，登录可能是可能的，这取决于配置的认证方法。特别是最常见的方法 md5 接受空密码。更改服务器在所有情况下拒绝空密码。（CVE-2017-7546）", "title": "禁止在所有基于密码的认证方法中使用空密码", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "0b15b62725ee6732b6e872513f39e262a70b76233e931fc9eb7584da8836efee", "section_path": ["变更"], "commit_groups": [["06651648a", "127835ddf", "b2f833ea7", "bf6b9e944", "d5d46d99b", "f6fc72cb6"]], "identity_text": "Disallow empty passwords in all password-based authentication methods (Heikki Linnakangas) libpq ignores empty password specifications, and does not transmit them to the server. So, if a user's password has been set to the empty string, it's impossible to log in with that password via psql or other libpq-based clients. An administrator might therefore believe that setting the password to empty is equivalent to disabling password login. However, with a modified or non-libpq-based client, logging in could be possible, depending on which authentication method is configured. In particular the most common method, md5, accepted empty passwords. Change the server to reject empty passwords in all cases. (CVE-2017-7546)", "commit_aliases": ["06651648a", "127835ddf", "b2f833ea7", "bf6b9e944", "d5d46d99b", "f6fc72cb6"], "source_commits": ["f6fc72cb6"], "source_entry_id": "9.6.4/changes/002", "db_id": "40acd6d17343ed4ffc6e174a3ba3d54b", "patch_ids": ["ead756eb15ba40bf21794f911086badf"], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70", "relations": [{"rule": 2, "type": "equivalent", "target": "25dc2f083ab66c1e49733c8097ace563", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}, {"rule": 2, "type": "equivalent", "target": "69397c3edcff5d4d9add77abd127c3c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}, {"rule": 2, "type": "equivalent", "target": "84b04fd1018199fb6cd762ee8453dc5c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}, {"rule": 2, "type": "equivalent", "target": "fa4d8a03c1f22fe89447983939f7c916", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}], "version": "9.6.4", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa4d8a03c1f22fe89447983939f7c916", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.5.8#9.5.8-49a2f6860ca3f76c", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "25dc2f083ab66c1e49733c8097ace563", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.4.13#9.4.13-49a2f6860ca3f76c", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "84b04fd1018199fb6cd762ee8453dc5c", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.3.18#9.3.18-49a2f6860ca3f76c", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "69397c3edcff5d4d9add77abd127c3c7", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.2.22#9.2.22-49a2f6860ca3f76c", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-dccc2650968b60e7", "cves": ["CVE-2017-7548"], "html": "<p>让 <code>lo_put()</code> 检查对目标大对象的 <code>UPDATE</code> 权限（Tom Lane、Michael Paquier）</p>\n<p><code>lo_put()</code> 理所当然应要求与 <code>lowrite()</code> 相同的权限，但检查缺失，允许任何用户更改大对象中的数据。（CVE-2017-7548）</p>", "text": "让 lo_put() 检查对目标大对象的 UPDATE 权限（Tom Lane、Michael Paquier） lo_put() 理所当然应要求与 lowrite() 相同的权限，但检查缺失，允许任何用户更改大对象中的数据。（CVE-2017-7548）", "title": "让 lo_put() 检查对目标大对象的 UPDATE 权限", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "11626c1c975712d2ce837957b19203023f9e1a83394b96c75b7b9b23645e2b76", "section_path": ["变更"], "commit_groups": [["52a414387", "873741c68", "8d9881911", "f1cda6d6c"]], "identity_text": "Make lo_put() check for UPDATE privilege on the target large object (Tom Lane, Michael Paquier) lo_put() should surely require the same permissions as lowrite(), but the check was missing, allowing any user to change the data in a large object. (CVE-2017-7548)", "commit_aliases": ["52a414387", "873741c68", "8d9881911", "f1cda6d6c"], "source_commits": ["52a414387"], "source_entry_id": "9.6.4/changes/003", "db_id": "5bceb6c318f55704a8d217698668a81e", "patch_ids": ["c0f6bc7668b5a2367100487d67b0fce3"], "statement_hash": "f125a54671aa221b3d7f0ed71d3acbabbd715511b27ee70a2991d62f83638757", "relations": [{"rule": 2, "type": "equivalent", "target": "558e1b7f415e4b885907cbd9a480a125", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f125a54671aa221b3d7f0ed71d3acbabbd715511b27ee70a2991d62f83638757"}}, {"rule": 2, "type": "equivalent", "target": "d893d7db30473d6217221904807954e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f125a54671aa221b3d7f0ed71d3acbabbd715511b27ee70a2991d62f83638757"}}], "version": "9.6.4", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "d893d7db30473d6217221904807954e7", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "让 lo_put() 检查对目标大对象的 UPDATE 权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f125a54671aa221b3d7f0ed71d3acbabbd715511b27ee70a2991d62f83638757"}, "url": "/docs/compare/?release=9.5.8#9.5.8-dccc2650968b60e7", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "558e1b7f415e4b885907cbd9a480a125", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "让 lo_put() 检查对目标大对象的 UPDATE 权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f125a54671aa221b3d7f0ed71d3acbabbd715511b27ee70a2991d62f83638757"}, "url": "/docs/compare/?release=9.4.13#9.4.13-dccc2650968b60e7", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-444fc7d1846c3223", "cves": [], "html": "<p>更正关于用 <span>pg_upgrade</span> 升级备库服务器过程的文档（Bruce Momjian）</p>\n<p>原来的文档指示用户在运行 <span>pg_upgrade</span> 之后、同步备库之前启动/停止主服务器。这个顺序是不安全的。</p>", "text": "更正关于用 pg_upgrade 升级备库服务器过程的文档（Bruce Momjian） 原来的文档指示用户在运行 pg_upgrade 之后、同步备库之前启动/停止主服务器。这个顺序是不安全的。", "title": "更正关于用 pg_upgrade 升级备库服务器过程的文档", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "01a0a7b970974e7a7a748007ee1a9597d173b2c74cdf87ea28e724f8049ba7e5", "section_path": ["变更"], "commit_groups": [["0f33a719f", "a0873fbab", "fd376afc9"]], "identity_text": "Correct the documentation about the process for upgrading standby servers with pg_upgrade (Bruce Momjian) The previous documentation instructed users to start/stop the primary server after running pg_upgrade but before syncing the standby servers. This sequence is unsafe.", "commit_aliases": ["0f33a719f", "a0873fbab", "fd376afc9"], "source_commits": ["a0873fbab"], "source_entry_id": "9.6.4/changes/004", "db_id": "981170f5b2f5d00dd184bf992886136c", "patch_ids": ["ed383c0be3062dfd2d5907150bc766bb"], "statement_hash": "511e47dc46013326b22e07c8a8951bfbd928f014544ba05b43c042d42afe1591", "relations": [{"rule": 2, "type": "equivalent", "target": "509a10b2a74a2d4ef0b3142f3517abf8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "511e47dc46013326b22e07c8a8951bfbd928f014544ba05b43c042d42afe1591"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "509a10b2a74a2d4ef0b3142f3517abf8", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "更正关于用 pg_upgrade 升级备库服务器过程的文档", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "511e47dc46013326b22e07c8a8951bfbd928f014544ba05b43c042d42afe1591"}, "url": "/docs/compare/?release=9.5.8#9.5.8-444fc7d1846c3223", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}]}, {"id": "9.6.4-1d168da8c9ffffeb", "cves": [], "html": "<p>修复元组更新链的并发锁定（Álvaro Herrera）</p>\n<p>如果多个会话用非冲突锁模式并使用旧快照并发锁定一条元组更新链，且都成功，由于竞态条件其中一些仍可能失败（并得出没有存活元组版本的结论）。这会导致诸如外键检查看不到一个确实存在但正被并发更新的元组之类的后果。</p>", "text": "修复元组更新链的并发锁定（Álvaro Herrera） 如果多个会话用非冲突锁模式并使用旧快照并发锁定一条元组更新链，且都成功，由于竞态条件其中一些仍可能失败（并得出没有存活元组版本的结论）。这会导致诸如外键检查看不到一个确实存在但正被并发更新的元组之类的后果。", "title": "修复元组更新链的并发锁定", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "7ae5fa6f198c717aa339426c1ee38daa11f46f7512ee9286398bba82cf34efe9", "section_path": ["变更"], "commit_groups": [["0d4604ad6", "2efbfb94b", "459c64d32", "8c348765f", "dfd091985"]], "identity_text": "Fix concurrent locking of tuple update chains (Álvaro Herrera) If several sessions concurrently lock a tuple update chain with nonconflicting lock modes using an old snapshot, and they all succeed, it was possible for some of them to nonetheless fail (and conclude there is no live tuple version) due to a race condition. This had consequences such as foreign-key checks failing to see a tuple that definitely exists but is being updated concurrently.", "commit_aliases": ["0d4604ad6", "2efbfb94b", "459c64d32", "8c348765f", "dfd091985"], "source_commits": ["8c348765f"], "source_entry_id": "9.6.4/changes/005", "db_id": "5021acaa49f542ee7a1757b451c26dd4", "patch_ids": ["96fd78ec6d36c45653dc486426a98b50"], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907", "relations": [{"rule": 2, "type": "equivalent", "target": "26f8fce38455ae9b217177c8d0dc47a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}}, {"rule": 2, "type": "equivalent", "target": "8226a3ad10843c3de2b89569870d5b73", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}}, {"rule": 2, "type": "equivalent", "target": "cc57bf2a68570429ea08bcb73f511f0d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc57bf2a68570429ea08bcb73f511f0d", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复元组更新链的并发锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}, "url": "/docs/compare/?release=9.5.8#9.5.8-1d168da8c9ffffeb", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "26f8fce38455ae9b217177c8d0dc47a1", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复元组更新链的并发锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}, "url": "/docs/compare/?release=9.4.13#9.4.13-1d168da8c9ffffeb", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "8226a3ad10843c3de2b89569870d5b73", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复元组更新链的并发锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}, "url": "/docs/compare/?release=9.3.18#9.3.18-1d168da8c9ffffeb", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-bc9d450fb60692a1", "cves": [], "html": "<p>修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏（Teodor Sigaev）</p>", "text": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏（Teodor Sigaev）", "title": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "a17c19dd88f4c12bd1b190d0c3f44c733f6f6d7a6dbe0827323f308e31546aff", "section_path": ["变更"], "commit_groups": [["31b8db8e6", "42f62e4c9", "b90e4ca3e", "f371cc9e9", "fb2d385e6"]], "identity_text": "Fix potential data corruption when freezing a tuple whose XMAX is a multixact with exactly one still-interesting member (Teodor Sigaev)", "commit_aliases": ["31b8db8e6", "42f62e4c9", "b90e4ca3e", "f371cc9e9", "fb2d385e6"], "source_commits": ["42f62e4c9"], "source_entry_id": "9.6.4/changes/006", "db_id": "3468fa6a3ba50966f59fc08c2e94add7", "patch_ids": ["8159c59d23582a5be7804e0da896a840"], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a", "relations": [{"rule": 2, "type": "equivalent", "target": "6474732a344a1a3c98e4d8c98d30ccdc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}}, {"rule": 2, "type": "equivalent", "target": "dd3dc6a49e24957cea1d5623a01d9d3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}}, {"rule": 2, "type": "equivalent", "target": "edf521238b1e56374b823c0a408a8139", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "edf521238b1e56374b823c0a408a8139", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}, "url": "/docs/compare/?release=9.5.8#9.5.8-bc9d450fb60692a1", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "dd3dc6a49e24957cea1d5623a01d9d3a", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复冻结 XMAX 为恰好剩一个仍受关注成员的多事务的元组时潜在的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}, "url": "/docs/compare/?release=9.4.13#9.4.13-a8968bf371130f39", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "6474732a344a1a3c98e4d8c98d30ccdc", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}, "url": "/docs/compare/?release=9.3.18#9.3.18-bc9d450fb60692a1", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-f0f476ef7aa8d71e", "cves": [], "html": "<p>避免在内存中排序超过十亿元组时的整数溢出和随之而来的崩溃（Sergey Koposov）</p>", "text": "避免在内存中排序超过十亿元组时的整数溢出和随之而来的崩溃（Sergey Koposov）", "title": "避免在内存中排序超过十亿元组时的整数溢出和随之而来的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "541e80fad328d6dee1dd55991fabe2d08452bf118a12a8a4aeadbf16c0584b0f", "section_path": ["变更"], "commit_groups": [["09c598898", "512f67c8d", "e439bbe99", "e7213fe2b"]], "identity_text": "Avoid integer overflow and ensuing crash when sorting more than one billion tuples in-memory (Sergey Koposov)", "commit_aliases": ["09c598898", "512f67c8d", "e439bbe99", "e7213fe2b"], "source_commits": ["09c598898"], "source_entry_id": "9.6.4/changes/007", "db_id": "8f2a8e25088893c45244d02df6d4dd5e", "patch_ids": ["7cc266f0440bc2eb93389b3c347bd928"], "statement_hash": "66733b6e883b70bf7c92d76432bcdb6b49f3b82d9d2c470fa5af34a84ac1f867", "relations": [{"rule": 2, "type": "equivalent", "target": "c313abe7f2c2b70205d0b9dd8b865cc4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66733b6e883b70bf7c92d76432bcdb6b49f3b82d9d2c470fa5af34a84ac1f867"}}, {"rule": 2, "type": "equivalent", "target": "c79b5ef2db7e5f48b13859cb4c9543f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66733b6e883b70bf7c92d76432bcdb6b49f3b82d9d2c470fa5af34a84ac1f867"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c79b5ef2db7e5f48b13859cb4c9543f3", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "避免在内存中排序超过十亿元组时的整数溢出和随之而来的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66733b6e883b70bf7c92d76432bcdb6b49f3b82d9d2c470fa5af34a84ac1f867"}, "url": "/docs/compare/?release=9.5.8#9.5.8-f0f476ef7aa8d71e", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "c313abe7f2c2b70205d0b9dd8b865cc4", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "避免在内存中排序超过十亿个元组时的整数溢出及随后的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66733b6e883b70bf7c92d76432bcdb6b49f3b82d9d2c470fa5af34a84ac1f867"}, "url": "/docs/compare/?release=9.4.13#9.4.13-3f4a6ff5fb8a2faa", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-5dfe6c5122301e0b", "cves": [], "html": "<p>在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建（Tom Lane、Amit Kapila）</p>\n<p>这有望修复可能由杀毒产品干扰导致的偶发子进程启动失败。</p>", "text": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建（Tom Lane、Amit Kapila） 这有望修复可能由杀毒产品干扰导致的偶发子进程启动失败。", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "7f521d12c52e70afd8b490cc6aac828ff23a60dc1799a2f5920aa3c912aced32", "section_path": ["变更"], "commit_groups": [["45e004fb4", "59892b120", "a4a590ee7", "afd1415a4", "bc0f76e7a", "c0077f738"]], "identity_text": "On Windows, retry process creation if we fail to reserve the address range for our shared memory in the new process (Tom Lane, Amit Kapila) This is expected to fix infrequent child-process-launch failures that are probably due to interference from antivirus products.", "commit_aliases": ["45e004fb4", "59892b120", "a4a590ee7", "afd1415a4", "bc0f76e7a", "c0077f738"], "source_commits": ["c0077f738"], "source_entry_id": "9.6.4/changes/008", "db_id": "6e4ce1f4ea2cf3f7543b8266c9528f74", "patch_ids": ["b74d93a86373714f7426593bffac644f"], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d", "relations": [{"rule": 2, "type": "equivalent", "target": "1f54690bed7a1b61467c57f4ea6f33d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}, {"rule": 2, "type": "equivalent", "target": "34e6cdf1912ffe330979dc21077c6288", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}, {"rule": 2, "type": "equivalent", "target": "a5446aca19df9fcf6d2f1d6ee8cecb2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}, {"rule": 2, "type": "equivalent", "target": "faf48774cbb82fce5982d2b859f20fb1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "faf48774cbb82fce5982d2b859f20fb1", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5dfe6c5122301e0b", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "34e6cdf1912ffe330979dc21077c6288", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5dfe6c5122301e0b", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "1f54690bed7a1b61467c57f4ea6f33d6", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.3.18#9.3.18-5dfe6c5122301e0b", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "a5446aca19df9fcf6d2f1d6ee8cecb2c", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5dfe6c5122301e0b", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-2e59d8bea64c1b73", "cves": [], "html": "<p>修复 Windows 构建中共享谓词锁哈希表的低概率损坏（Thomas Munro、Tom Lane）</p>", "text": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏（Thomas Munro、Tom Lane）", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "5a519671d888ec6701572c80c7ba2a4bdd3823334a0b1ef7c49c7e4c81d3b86a", "section_path": ["变更"], "commit_groups": [["05a562d9c", "4ecee1192", "5146ca352", "51865a0a0", "8ad35c7fa", "e2c8100e6"]], "identity_text": "Fix low-probability corruption of shared predicate-lock hash table in Windows builds (Thomas Munro, Tom Lane)", "commit_aliases": ["05a562d9c", "4ecee1192", "5146ca352", "51865a0a0", "8ad35c7fa", "e2c8100e6"], "source_commits": ["51865a0a0"], "source_entry_id": "9.6.4/changes/009", "db_id": "eb123644d0d25507fd759fba8b23f35d", "patch_ids": ["2395a1f67af6590cad3cd2a5136011ae"], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89", "relations": [{"rule": 2, "type": "equivalent", "target": "61aff00b2cbd0d0a19f4de9c64161e33", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}, {"rule": 2, "type": "equivalent", "target": "6239e85838c4defd9c242c9736aac6dc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}, {"rule": 2, "type": "equivalent", "target": "c80803c6d4d1147a93d5b23d67970907", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}, {"rule": 2, "type": "equivalent", "target": "ccc80b8375366a40f739144083dec4bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c80803c6d4d1147a93d5b23d67970907", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.5.8#9.5.8-2e59d8bea64c1b73", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "6239e85838c4defd9c242c9736aac6dc", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 Windows 构建中共享谓词锁哈希表低概率损坏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.4.13#9.4.13-cb90a7f53e5f1214", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "ccc80b8375366a40f739144083dec4bb", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.3.18#9.3.18-2e59d8bea64c1b73", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "61aff00b2cbd0d0a19f4de9c64161e33", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.2.22#9.2.22-2e59d8bea64c1b73", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-63ce467ec91a76ba", "cves": [], "html": "<p>避免把 SSL 连接的干净关闭当作连接重置来记录（Michael Paquier）</p>", "text": "避免把 SSL 连接的干净关闭当作连接重置来记录（Michael Paquier）", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "abac77478c64370510a7b1dcf0867089805238ca637bc0e31c6ac47a4ac3b7f0", "section_path": ["变更"], "commit_groups": [["543e00bc1", "90630a6ad", "b93827c74", "f73382877", "fb1110085", "fb63a0aa3"]], "identity_text": "Avoid logging clean closure of an SSL connection as though it were a connection reset (Michael Paquier)", "commit_aliases": ["543e00bc1", "90630a6ad", "b93827c74", "f73382877", "fb1110085", "fb63a0aa3"], "source_commits": ["f73382877"], "source_entry_id": "9.6.4/changes/010", "db_id": "9f43dcd8e33a849f63af81136e8cffc4", "patch_ids": ["face2482352a41e5a4a5bcbd37e43ef3"], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e", "relations": [{"rule": 2, "type": "equivalent", "target": "4f1ca4a9b4544c5f9b0e201f593b00fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}, {"rule": 2, "type": "equivalent", "target": "7890ed06f30afa11b324e730a77920d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}, {"rule": 2, "type": "equivalent", "target": "796e639d993fe8aa9c00c2a6cb32a298", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}, {"rule": 2, "type": "equivalent", "target": "e26440dbe5fa41f21ec2cfb7ea515129", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7890ed06f30afa11b324e730a77920d4", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.5.8#9.5.8-63ce467ec91a76ba", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "4f1ca4a9b4544c5f9b0e201f593b00fb", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "避免把 SSL 连接的正常关闭记录成连接重置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.4.13#9.4.13-4aec39eb8163f31f", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e26440dbe5fa41f21ec2cfb7ea515129", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.3.18#9.3.18-63ce467ec91a76ba", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "796e639d993fe8aa9c00c2a6cb32a298", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.2.22#9.2.22-63ce467ec91a76ba", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-e308e1857bff9246", "cves": [], "html": "<p>防止向客户端发送 SSL 会话票据（Tom Lane）</p>\n<p>此修复防止使用票据感知的客户端 SSL 代码时的重连失败。</p>", "text": "防止向客户端发送 SSL 会话票据（Tom Lane） 此修复防止使用票据感知的客户端 SSL 代码时的重连失败。", "title": "防止向客户端发送 SSL 会话票据", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "21ac1d5124c4ea3fc41770c74f9e99d0a2512690498191a7c8b755ecc3d0c6ab", "section_path": ["变更"], "commit_groups": [["8d05db3d8", "97d3a0b09", "b798ea88a", "bebee333c", "c180d2eb7", "dda04b9dd"]], "identity_text": "Prevent sending SSL session tickets to clients (Tom Lane) This fix prevents reconnection failures with ticket-aware client-side SSL code.", "commit_aliases": ["8d05db3d8", "97d3a0b09", "b798ea88a", "bebee333c", "c180d2eb7", "dda04b9dd"], "source_commits": ["b798ea88a"], "source_entry_id": "9.6.4/changes/011", "db_id": "a327202592f6a57881437263d94073b8", "patch_ids": ["2a35efab13129ecf89de431c57e945cb"], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5", "relations": [{"rule": 2, "type": "equivalent", "target": "06ca50c6c2100c6be604facd02221004", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}, {"rule": 2, "type": "equivalent", "target": "5417fe28a58f02892e6f851554b173dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}, {"rule": 2, "type": "equivalent", "target": "57c80424a5c5a39644fe6b251c9bbd11", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}, {"rule": 2, "type": "equivalent", "target": "78fa3aaa5d85ae9fdccb058afe139d92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "78fa3aaa5d85ae9fdccb058afe139d92", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.5.8#9.5.8-e308e1857bff9246", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "5417fe28a58f02892e6f851554b173dd", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e308e1857bff9246", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "57c80424a5c5a39644fe6b251c9bbd11", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.3.18#9.3.18-e308e1857bff9246", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "06ca50c6c2100c6be604facd02221004", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.2.22#9.2.22-e308e1857bff9246", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-3e28052d9d329d76", "cves": [], "html": "<p>修复 Solaris 上设置<a href=\"/docs/9.6/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE\">tcp_keepalives_idle</a>的代码（Tom Lane）</p>", "text": "修复 Solaris 上设置tcp_keepalives_idle的代码（Tom Lane）", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "7b15d4e14c4a19150434cb5bc8d0d4741a9628d14f76aa78a60b6d2de0f5ae50", "section_path": ["变更"], "commit_groups": [["43c67e32f", "5e7447132", "63f5db8ab", "99255d73c", "cc154d9a0", "e97b7372b"], ["55968ed89", "6ccab9242", "9ce7f3919", "c2cb606a2", "d16e96fb2", "f0256c774"]], "identity_text": "Fix code for setting guc-tcp-keepalives-idle on Solaris (Tom Lane)", "commit_aliases": ["43c67e32f", "55968ed89", "5e7447132", "63f5db8ab", "6ccab9242", "99255d73c", "9ce7f3919", "c2cb606a2", "cc154d9a0", "d16e96fb2", "e97b7372b", "f0256c774"], "source_commits": ["43c67e32f", "55968ed89"], "source_entry_id": "9.6.4/changes/012", "db_id": "3d12e09651fa92dc3d7691e748c23b13", "patch_ids": ["668ac43fd58a3912d996276f17afb49c", "fdb987a76f5fb17da6a11846e2833fab"], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a", "relations": [{"rule": 2, "type": "equivalent", "target": "1c7bb3243d9e68418b27efa10792167f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}, {"rule": 2, "type": "equivalent", "target": "ad20c605290795b78b75dfa2c7ca72c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}, {"rule": 2, "type": "equivalent", "target": "b1f9de21bc12b73cf6518cf2a56f48d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}, {"rule": 2, "type": "equivalent", "target": "edff4867a55a25f16f546d52b212e769", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c7bb3243d9e68418b27efa10792167f", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.5.8#9.5.8-3e28052d9d329d76", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "ad20c605290795b78b75dfa2c7ca72c9", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.4.13#9.4.13-3e28052d9d329d76", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "b1f9de21bc12b73cf6518cf2a56f48d1", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.3.18#9.3.18-3e28052d9d329d76", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "edff4867a55a25f16f546d52b212e769", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.2.22#9.2.22-3e28052d9d329d76", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-57c375774ebad3a1", "cves": [], "html": "<p>修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息（Tom Lane）</p>\n<p>在上一个 postmaster 关闭之后半秒内发出的统计查询实际上被忽略。</p>", "text": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息（Tom Lane） 在上一个 postmaster 关闭之后半秒内发出的统计查询实际上被忽略。", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "4e168b2b27f8718655e7cfe7f821d25fb3d2a0a51778670b0a6a286e4a2646be", "section_path": ["变更"], "commit_groups": [["439b6363d", "456bf261d", "5a6b95cdf", "ad1b5c842", "f6af9c749", "fc4da1fde"]], "identity_text": "Fix statistics collector to honor inquiry messages issued just after a postmaster shutdown and immediate restart (Tom Lane) Statistics inquiries issued within half a second of the previous postmaster shutdown were effectively ignored.", "commit_aliases": ["439b6363d", "456bf261d", "5a6b95cdf", "ad1b5c842", "f6af9c749", "fc4da1fde"], "source_commits": ["f6af9c749"], "source_entry_id": "9.6.4/changes/013", "db_id": "52169b7dd014d33786c85566c9719250", "patch_ids": ["6f195607863303b46b56c4d604788f16"], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da", "relations": [{"rule": 2, "type": "equivalent", "target": "35d154df872964bdd172e06e7cc7b5e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}, {"rule": 2, "type": "equivalent", "target": "6ea6bdb3b1c0b91370098bb4050cdf5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}, {"rule": 2, "type": "equivalent", "target": "c7939f5f09e159955353f7b29c36efbb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}, {"rule": 2, "type": "equivalent", "target": "e6cd54250e39c6ba75fa8dfed50a9202", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c7939f5f09e159955353f7b29c36efbb", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.5.8#9.5.8-57c375774ebad3a1", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "35d154df872964bdd172e06e7cc7b5e7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.4.13#9.4.13-57c375774ebad3a1", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e6cd54250e39c6ba75fa8dfed50a9202", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.3.18#9.3.18-57c375774ebad3a1", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "6ea6bdb3b1c0b91370098bb4050cdf5a", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.2.22#9.2.22-57c375774ebad3a1", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-20b9745916abac09", "cves": [], "html": "<p>确保统计收集器的接收缓冲区大小至少为 100KB（Tom Lane）</p>\n<p>这降低了默认接收缓冲区大小小于该值的老平台上统计数据丢失的风险。</p>", "text": "确保统计收集器的接收缓冲区大小至少为 100KB（Tom Lane） 这降低了默认接收缓冲区大小小于该值的老平台上统计数据丢失的风险。", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "9ae055c3a511149eb03ea0333f9d010abb95f19e3cfd2f5a597c7d84666864aa", "section_path": ["变更"], "commit_groups": [["34782a348", "364100e0b", "4a3bb96ce", "54676c72c", "82f8c21e0", "8b0b6303e"]], "identity_text": "Ensure that the statistics collector's receive buffer size is at least 100KB (Tom Lane) This reduces the risk of dropped statistics data on older platforms whose default receive buffer size is less than that.", "commit_aliases": ["34782a348", "364100e0b", "4a3bb96ce", "54676c72c", "82f8c21e0", "8b0b6303e"], "source_commits": ["34782a348"], "source_entry_id": "9.6.4/changes/014", "db_id": "35b5f7b5058aa8d2a991d9b4a8b37c93", "patch_ids": ["40e517cfa613647c00d7fcb786753808"], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28", "relations": [{"rule": 2, "type": "equivalent", "target": "3c2dba8fca8015ec95edd7b7e1ef5a4e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}, {"rule": 2, "type": "equivalent", "target": "45f8a1f14d7479817e647f93ea3147f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}, {"rule": 2, "type": "equivalent", "target": "8aec425eef081d0f371de4d506db4c6d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}, {"rule": 2, "type": "equivalent", "target": "cebabf83bae7e2378ddea14ff545ac6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "45f8a1f14d7479817e647f93ea3147f0", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.5.8#9.5.8-20b9745916abac09", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "8aec425eef081d0f371de4d506db4c6d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.4.13#9.4.13-20b9745916abac09", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "3c2dba8fca8015ec95edd7b7e1ef5a4e", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.3.18#9.3.18-20b9745916abac09", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "cebabf83bae7e2378ddea14ff545ac6f", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.2.22#9.2.22-20b9745916abac09", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-b0bf0f68f2bb1135", "cves": [], "html": "<p>修复备库刚处理完 <code>XLOG_SWITCH</code> WAL 记录后被提升时可能创建无效 WAL 段的问题（Andres Freund）</p>", "text": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题（Andres Freund）", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "3a0067a6b20f36434d423fd791fd84e2f8b3d3eaa9e678cd2f41b9718192784d", "section_path": ["变更"], "commit_groups": [["39e30cbc1", "511d803ca", "7775ebaf0", "81bf7b5b1", "823a51ed3", "fb886c153"]], "identity_text": "Fix possible creation of an invalid WAL segment when a standby is promoted just after it processes an XLOG_SWITCH WAL record (Andres Freund)", "commit_aliases": ["39e30cbc1", "511d803ca", "7775ebaf0", "81bf7b5b1", "823a51ed3", "fb886c153"], "source_commits": ["39e30cbc1"], "source_entry_id": "9.6.4/changes/015", "db_id": "2f2e0bd47f601d6acf0caa11807655ce", "patch_ids": ["421aa20d97248f7a7c601872632aa5ad"], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805", "relations": [{"rule": 2, "type": "equivalent", "target": "027472daca45d7d3ca1dda4accfbe514", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}, {"rule": 2, "type": "equivalent", "target": "1ebe514120103dc5eb1fb4461713c100", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}, {"rule": 2, "type": "equivalent", "target": "3343b117e454cf984aadbcbf1c224c1b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}, {"rule": 2, "type": "equivalent", "target": "a167acf8e40e68b1306d951f121d3e0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3343b117e454cf984aadbcbf1c224c1b", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.5.8#9.5.8-b0bf0f68f2bb1135", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "1ebe514120103dc5eb1fb4461713c100", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复备库在刚处理完XLOG_SWITCHWAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.4.13#9.4.13-11f60c94267d3d32", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "027472daca45d7d3ca1dda4accfbe514", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.3.18#9.3.18-b0bf0f68f2bb1135", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "a167acf8e40e68b1306d951f121d3e0f", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.2.22#9.2.22-b0bf0f68f2bb1135", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-fb971341db0b6229", "cves": [], "html": "<p>修复 <span>walsender</span> 在客户端请求关闭时及时退出（Tom Lane）</p>", "text": "修复 walsender 在客户端请求关闭时及时退出（Tom Lane）", "title": "修复 walsender 在客户端请求关闭时及时退出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "703c42134b4fbe7790d05e13eee8f8e2e56d9cca3441e87b074af602491c624a", "section_path": ["变更"], "commit_groups": [["446914f6b", "5aa8db014", "e9d4aa594", "fca85f8ef"]], "identity_text": "Fix walsender to exit promptly when client requests shutdown (Tom Lane)", "commit_aliases": ["446914f6b", "5aa8db014", "e9d4aa594", "fca85f8ef"], "source_commits": ["e9d4aa594"], "source_entry_id": "9.6.4/changes/016", "db_id": "b4c262940ae6a047aa44b1ffd849c50c", "patch_ids": ["effcee447c250432a2fb7b3c4dba27e0"], "statement_hash": "7f8393494213a60a77074fc87c756e548bf7ca61c988d3753552f3f3a7dcf48d", "relations": [{"rule": 2, "type": "equivalent", "target": "e06757cdf0b4c4fc2feefbd345efbaf0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f8393494213a60a77074fc87c756e548bf7ca61c988d3753552f3f3a7dcf48d"}}, {"rule": 2, "type": "equivalent", "target": "eeebdf3f87802a2e37f71e8656f2d240", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f8393494213a60a77074fc87c756e548bf7ca61c988d3753552f3f3a7dcf48d"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e06757cdf0b4c4fc2feefbd345efbaf0", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 walsender 在客户端请求关闭时及时退出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f8393494213a60a77074fc87c756e548bf7ca61c988d3753552f3f3a7dcf48d"}, "url": "/docs/compare/?release=9.5.8#9.5.8-fb971341db0b6229", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "eeebdf3f87802a2e37f71e8656f2d240", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复walsender在客户端请求关闭时及时退出的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f8393494213a60a77074fc87c756e548bf7ca61c988d3753552f3f3a7dcf48d"}, "url": "/docs/compare/?release=9.4.13#9.4.13-d723a2caedd169b7", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-7869db2756522ed5", "cves": [], "html": "<p>修复 walsender 进程中的 <span>SIGHUP</span> 和 <span>SIGUSR1</span> 处理（Petr Jelinek、Andres Freund）</p>", "text": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理（Petr Jelinek、Andres Freund）", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "980bcb8f78ecd8a583d11c4c4e6f8a95ea9f950d6992864611afe72fa3fa50a4", "section_path": ["变更"], "commit_groups": [["133b1920c", "45d067d50", "55d7027d5", "641a60b02", "6e1dd2773", "b8bd32a51"], ["47fd420fb", "b3d5b6833", "e1319f64e", "f4e484dd0"]], "identity_text": "Fix SIGHUP and SIGUSR1 handling in walsender processes (Petr Jelinek, Andres Freund)", "commit_aliases": ["133b1920c", "45d067d50", "47fd420fb", "55d7027d5", "641a60b02", "6e1dd2773", "b3d5b6833", "b8bd32a51", "e1319f64e", "f4e484dd0"], "source_commits": ["b3d5b6833", "b8bd32a51"], "source_entry_id": "9.6.4/changes/017", "db_id": "3a37a29c34d6f5d73ccb334bdba07088", "patch_ids": ["889575634527a56d0b301382cee50367", "d3479e813b85e485501e6c7187e51e1d"], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1", "relations": [{"rule": 2, "type": "equivalent", "target": "56fbd01576e12b75269896592fa2c8c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}, {"rule": 2, "type": "equivalent", "target": "e495da6486bd8be4e4c26d6e5086beee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}, {"rule": 2, "type": "equivalent", "target": "ff38a637d151641073b6f2871680809f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}, {"rule": 2, "type": "equivalent", "target": "ff55a48b73c00e42d28e3b52fe55af78", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ff55a48b73c00e42d28e3b52fe55af78", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7869db2756522ed5", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "56fbd01576e12b75269896592fa2c8c7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 walsender 进程中SIGHUP和SIGUSR1的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e99abd2807b726be", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e495da6486bd8be4e4c26d6e5086beee", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.3.18#9.3.18-7869db2756522ed5", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "ff38a637d151641073b6f2871680809f", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7869db2756522ed5", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-7538ac1b880fb3d7", "cves": [], "html": "<p>防止关闭检查点期间 walsender 引发的 panic（Andres Freund、Michael Paquier）</p>", "text": "防止关闭检查点期间 walsender 引发的 panic（Andres Freund、Michael Paquier）", "title": "防止关闭检查点期间 walsender 引发的 panic", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "c2ce76ebc0da19a3cf23a6ba812b18d30a25ca71522c54813ba550681f528c24", "section_path": ["变更"], "commit_groups": [["1cdc0ab9c", "50581f2e7", "862204aac", "c6c333436"]], "identity_text": "Prevent walsender-triggered panics during shutdown checkpoints (Andres Freund, Michael Paquier)", "commit_aliases": ["1cdc0ab9c", "50581f2e7", "862204aac", "c6c333436"], "source_commits": ["862204aac"], "source_entry_id": "9.6.4/changes/018", "db_id": "634c8d381b6e3f48b2f72cf06ca6263a", "patch_ids": ["327b3bfc49bbee1814b4d056879a56a4"], "statement_hash": "9ddb5d7e644130bd1b9e0dfccdb7af7a6670dc33b1f39dcc366c7a4167442ee8", "relations": [{"rule": 2, "type": "equivalent", "target": "17f194ee6ed4e5a40eccd7995c55c96e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ddb5d7e644130bd1b9e0dfccdb7af7a6670dc33b1f39dcc366c7a4167442ee8"}}, {"rule": 2, "type": "equivalent", "target": "deb92a2f6715b1015ae787db10ac0e6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ddb5d7e644130bd1b9e0dfccdb7af7a6670dc33b1f39dcc366c7a4167442ee8"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "17f194ee6ed4e5a40eccd7995c55c96e", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "防止关闭检查点期间 walsender 引发的 panic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ddb5d7e644130bd1b9e0dfccdb7af7a6670dc33b1f39dcc366c7a4167442ee8"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7538ac1b880fb3d7", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "deb92a2f6715b1015ae787db10ac0e6f", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "防止关闭检查点期间由 walsender 触发的 panic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ddb5d7e644130bd1b9e0dfccdb7af7a6670dc33b1f39dcc366c7a4167442ee8"}, "url": "/docs/compare/?release=9.4.13#9.4.13-9445823d3444455f", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-d0bce37763b84970", "cves": [], "html": "<p>修复 postmaster 中竞态条件导致的 <span>walreceiver</span> 进程不必要的缓慢重启（Tom Lane）</p>", "text": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启（Tom Lane）", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "a35db3ab53f6e97d2b5677fb7aecf82c184bd5a4c4ed4e8576901af95e94a10f", "section_path": ["变更"], "commit_groups": [["47fec424c", "a4d1ce095", "cb59949f6", "dc311b5bd", "e5d494d78", "e96adaacd"]], "identity_text": "Fix unnecessarily slow restarts of walreceiver processes due to race condition in postmaster (Tom Lane)", "commit_aliases": ["47fec424c", "a4d1ce095", "cb59949f6", "dc311b5bd", "e5d494d78", "e96adaacd"], "source_commits": ["a4d1ce095"], "source_entry_id": "9.6.4/changes/019", "db_id": "56bb12dabc419c87a27717fa34bb3be3", "patch_ids": ["8311b2122ee6742525858fbe6e18d904"], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6", "relations": [{"rule": 2, "type": "equivalent", "target": "0cb3087fae06393bc7f76e6cbe7ded78", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}, {"rule": 2, "type": "equivalent", "target": "2c27a0f6cff6d52384428eb46e816ad6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}, {"rule": 2, "type": "equivalent", "target": "bc1b64b2ca3671e5b73d363e398be023", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}, {"rule": 2, "type": "equivalent", "target": "df6bb339b676af9421fec5b435f41df0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0cb3087fae06393bc7f76e6cbe7ded78", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.5.8#9.5.8-d0bce37763b84970", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "2c27a0f6cff6d52384428eb46e816ad6", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复因 postmaster 中的竞争条件导致walreceiver进程不必要地缓慢重启的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.4.13#9.4.13-d83eb4212e3c77c6", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "bc1b64b2ca3671e5b73d363e398be023", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.3.18#9.3.18-d0bce37763b84970", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "df6bb339b676af9421fec5b435f41df0", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.2.22#9.2.22-d0bce37763b84970", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-e8d0ac46581d767c", "cves": [], "html": "<p>修复逻辑解码期间溢出到磁盘的小子事务的泄漏（Andres Freund）</p>\n<p>这导致临时文件消耗过多的磁盘空间。</p>", "text": "修复逻辑解码期间溢出到磁盘的小子事务的泄漏（Andres Freund） 这导致临时文件消耗过多的磁盘空间。", "title": "修复逻辑解码期间溢出到磁盘的小子事务的泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "550a94b36e646d831b47e8618ed1fd5d3fe2029f920f4f306d408b44cea78353", "section_path": ["变更"], "commit_groups": [["1ba1adf77", "3bdea167e", "810344436", "a27c566c7"]], "identity_text": "Fix leakage of small subtransactions spilled to disk during logical decoding (Andres Freund) This resulted in temporary files consuming excessive disk space.", "commit_aliases": ["1ba1adf77", "3bdea167e", "810344436", "a27c566c7"], "source_commits": ["810344436"], "source_entry_id": "9.6.4/changes/020", "db_id": "a6cfaf92275141eab37eda7b8429909b", "patch_ids": ["94057599efb1dbcc7f9fd36d3335e053"], "statement_hash": "2d56855e272cbf811c9187a501574da0e6a723b96bcef42c5aebfe63cf6f5b11", "relations": [{"rule": 2, "type": "equivalent", "target": "83b7a373448e5e2dbe493321301f4153", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d56855e272cbf811c9187a501574da0e6a723b96bcef42c5aebfe63cf6f5b11"}}, {"rule": 2, "type": "equivalent", "target": "99766b865005e04787c4cac0bc8e398a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d56855e272cbf811c9187a501574da0e6a723b96bcef42c5aebfe63cf6f5b11"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "99766b865005e04787c4cac0bc8e398a", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复逻辑解码期间溢出到磁盘的小子事务的泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d56855e272cbf811c9187a501574da0e6a723b96bcef42c5aebfe63cf6f5b11"}, "url": "/docs/compare/?release=9.5.8#9.5.8-e8d0ac46581d767c", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "83b7a373448e5e2dbe493321301f4153", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复逻辑解码期间溢出到磁盘的小子事务的泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d56855e272cbf811c9187a501574da0e6a723b96bcef42c5aebfe63cf6f5b11"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e8d0ac46581d767c", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-c479337ad1bc7f1a", "cves": [], "html": "<p>减少创建逻辑解码槽期间构建快照所需的工作（Andres Freund、Petr Jelinek）</p>\n<p>原来的算法在有大量打开事务的服务器上昂贵得不可行。</p>", "text": "减少创建逻辑解码槽期间构建快照所需的工作（Andres Freund、Petr Jelinek） 原来的算法在有大量打开事务的服务器上昂贵得不可行。", "title": "减少创建逻辑解码槽期间构建快照所需的工作", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "bec3705085599176727f2bfa076d6ec9a9b0e778b4fe39569ceb46de44d89f09", "section_path": ["变更"], "commit_groups": [["2dca50b76", "524dbc143", "bd619fcfe", "fa9207c74"]], "identity_text": "Reduce the work needed to build snapshots during creation of logical-decoding slots (Andres Freund, Petr Jelinek) The previous algorithm was infeasibly expensive on a server with a lot of open transactions.", "commit_aliases": ["2dca50b76", "524dbc143", "bd619fcfe", "fa9207c74"], "source_commits": ["bd619fcfe"], "source_entry_id": "9.6.4/changes/021", "db_id": "b8a11c910d610dccc2bd1dc476d11176", "patch_ids": ["4031ff45c87ec6ee5472c4b0f3283490"], "statement_hash": "7e853ed9955167fd1d4fd2378e643bafe18c458682dc9565fea7e994e5ab4ae8", "relations": [{"rule": 2, "type": "equivalent", "target": "15b44a9b10ca7ce5cb5e957d44369fb4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e853ed9955167fd1d4fd2378e643bafe18c458682dc9565fea7e994e5ab4ae8"}}, {"rule": 2, "type": "equivalent", "target": "33384454e81715c22843b0616b92d18d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e853ed9955167fd1d4fd2378e643bafe18c458682dc9565fea7e994e5ab4ae8"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "33384454e81715c22843b0616b92d18d", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "减少创建逻辑解码槽期间构建快照所需的工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e853ed9955167fd1d4fd2378e643bafe18c458682dc9565fea7e994e5ab4ae8"}, "url": "/docs/compare/?release=9.5.8#9.5.8-c479337ad1bc7f1a", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "15b44a9b10ca7ce5cb5e957d44369fb4", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "减少创建逻辑解码槽期间构建快照所需的工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e853ed9955167fd1d4fd2378e643bafe18c458682dc9565fea7e994e5ab4ae8"}, "url": "/docs/compare/?release=9.4.13#9.4.13-c479337ad1bc7f1a", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-9f98d3b6f6cf455b", "cves": [], "html": "<p>修复可能无限延迟逻辑解码槽创建的竞态条件（Andres Freund、Petr Jelinek）</p>", "text": "修复可能无限延迟逻辑解码槽创建的竞态条件（Andres Freund、Petr Jelinek）", "title": "修复可能无限延迟逻辑解码槽创建的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "6f2923d0156404723962bd9a7026e302a961f2c88cebf887f8eea112e6ca51bc", "section_path": ["变更"], "commit_groups": [["75784859c", "79abd23db", "955a684e0", "b64a68e36"]], "identity_text": "Fix race condition that could indefinitely delay creation of logical-decoding slots (Andres Freund, Petr Jelinek)", "commit_aliases": ["75784859c", "79abd23db", "955a684e0", "b64a68e36"], "source_commits": ["75784859c"], "source_entry_id": "9.6.4/changes/022", "db_id": "6c4da68e4e4f3dd2fb4c473173e089fa", "patch_ids": ["f965770d8244bb95e710794ee333e104"], "statement_hash": "fa71776f01ce72bd84b9da503f864b04e2789ba0380f754d691ffdf34c00b799", "relations": [{"rule": 2, "type": "equivalent", "target": "241594f43042d7fe2d5e726d2158c1ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa71776f01ce72bd84b9da503f864b04e2789ba0380f754d691ffdf34c00b799"}}, {"rule": 2, "type": "equivalent", "target": "fd678af83e000d78c66b5bea6d63ed7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa71776f01ce72bd84b9da503f864b04e2789ba0380f754d691ffdf34c00b799"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fd678af83e000d78c66b5bea6d63ed7f", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复可能无限延迟逻辑解码槽创建的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa71776f01ce72bd84b9da503f864b04e2789ba0380f754d691ffdf34c00b799"}, "url": "/docs/compare/?release=9.5.8#9.5.8-9f98d3b6f6cf455b", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "241594f43042d7fe2d5e726d2158c1ed", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复可能无限延迟逻辑解码槽创建的竞争条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa71776f01ce72bd84b9da503f864b04e2789ba0380f754d691ffdf34c00b799"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5f2a38a94f54c5d8", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-22ba7720b4866475", "cves": [], "html": "<p>减少处理系统缓存失效事件的开销（Tom Lane）</p>\n<p>这对逻辑解码特别有帮助，它触发频繁的缓存失效。</p>", "text": "减少处理系统缓存失效事件的开销（Tom Lane） 这对逻辑解码特别有帮助，它触发频繁的缓存失效。", "title": "减少处理系统缓存失效事件的开销", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "bc859d1fe23fdfd9fa189bba2fe11ed940243c77345c9f8e5a14b6798c49694e", "section_path": ["变更"], "commit_groups": [["2df5d4655", "32900700f", "d0755dc32", "e7955ac64"], ["3569a9a73", "50ee1c746", "64417f8d3", "b7a98b14c"], ["8085a4f75", "8a7506e04", "ef7a6b3c9", "f7d0a31ce"]], "identity_text": "Reduce overhead in processing syscache invalidation events (Tom Lane) This is particularly helpful for logical decoding, which triggers frequent cache invalidation.", "commit_aliases": ["2df5d4655", "32900700f", "3569a9a73", "50ee1c746", "64417f8d3", "8085a4f75", "8a7506e04", "b7a98b14c", "d0755dc32", "e7955ac64", "ef7a6b3c9", "f7d0a31ce"], "source_commits": ["b7a98b14c", "d0755dc32", "f7d0a31ce"], "source_entry_id": "9.6.4/changes/023", "db_id": "cb6098913420bc02bb212c22159f5bee", "patch_ids": ["c82fa2d9dc7ec336ffcc643f59e0c553", "dfe9e7112660bcb6f8921f2b5f7b07a8", "e7556589209c71b39e9654196655309a"], "statement_hash": "e4e7d3dde1821162b5013245696c48bafbd1faa4fd805477573013ae89c09c45", "relations": [{"rule": 2, "type": "equivalent", "target": "bf99a386833723ff946300f5929aae22", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4e7d3dde1821162b5013245696c48bafbd1faa4fd805477573013ae89c09c45"}}, {"rule": 2, "type": "equivalent", "target": "f27af57530d241c400aecae8d3be0cd0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4e7d3dde1821162b5013245696c48bafbd1faa4fd805477573013ae89c09c45"}}], "version": "9.6.4", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f27af57530d241c400aecae8d3be0cd0", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "减少处理系统缓存失效事件的开销", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4e7d3dde1821162b5013245696c48bafbd1faa4fd805477573013ae89c09c45"}, "url": "/docs/compare/?release=9.5.8#9.5.8-22ba7720b4866475", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "bf99a386833723ff946300f5929aae22", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "减少处理系统缓存失效事件的开销", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4e7d3dde1821162b5013245696c48bafbd1faa4fd805477573013ae89c09c45"}, "url": "/docs/compare/?release=9.4.13#9.4.13-22ba7720b4866475", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-bec20635857f4429", "cves": [], "html": "<p>移除某些情况下基于外键约束存在估计连接选择率时使用的不正确启发式（David Rowley）</p>\n<p>在存在多列外键约束但不完全匹配查询连接结构的某些情况下，规划器使用了一种结果完全不好的估计启发式。把这种情况恢复到 9.6 之前的估计方式。</p>", "text": "移除某些情况下基于外键约束存在估计连接选择率时使用的不正确启发式（David Rowley） 在存在多列外键约束但不完全匹配查询连接结构的某些情况下，规划器使用了一种结果完全不好的估计启发式。把这种情况恢复到 9.6 之前的估计方式。", "title": "移除某些情况下基于外键约束存在估计连接选择率时使用的不正确启发式", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "e8fa1f3b49efb9c53f0d8bcf68bb9635486015cd1351742cc4b01f0aaef84893", "section_path": ["变更"], "commit_groups": [["1f184426b", "d8e6b84bd"]], "identity_text": "Remove incorrect heuristic used in some cases to estimate join selectivity based on the presence of foreign-key constraints (David Rowley) In some cases where a multi-column foreign key constraint existed but did not exactly match a query's join structure, the planner used an estimation heuristic that turns out not to work well at all. Revert such cases to the way they were estimated before 9.6.", "commit_aliases": ["1f184426b", "d8e6b84bd"], "source_commits": ["1f184426b"], "source_entry_id": "9.6.4/changes/024", "db_id": "dbb92701e90210400d63f2871b87f4f5", "patch_ids": ["64562b53161bc7186a1d8b5f084a663e"], "statement_hash": "475d16d6942a6d35b745bebd64845e934aabd86069c9ad7208d42af3d1025800", "relations": [], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.4-d20765897a51eeb2", "cves": [], "html": "<p>修复 <code>INSERT</code> 或 <code>UPDATE</code> 对数组之上域类型的列的多个元素赋值的情况（Tom Lane）</p>", "text": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况（Tom Lane）", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "aee4b8d67f25768a4e7d4d8b8556b4a398e066673246d86a0d528a8b95ddb05d", "section_path": ["变更"], "commit_groups": [["123368061", "521fede16", "55204850a", "56076b88d", "a8358559e", "b1cb32fb6"], ["2346f1c10", "75670ec37", "a2320b337", "aea1a3f0e", "bc2d716ad", "ff2d53722"]], "identity_text": "Fix cases where an INSERT or UPDATE assigns to more than one element of a column that is of domain-over-array type (Tom Lane)", "commit_aliases": ["123368061", "2346f1c10", "521fede16", "55204850a", "56076b88d", "75670ec37", "a2320b337", "a8358559e", "aea1a3f0e", "b1cb32fb6", "bc2d716ad", "ff2d53722"], "source_commits": ["123368061", "ff2d53722"], "source_entry_id": "9.6.4/changes/025", "db_id": "581f18312c8db068f74644c8f9aaad95", "patch_ids": ["23fba0e7fe15bd0c9dfaf2fb77ceeb6d", "5fa0a0aa95b102e7d142e927dcc02915"], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c", "relations": [{"rule": 2, "type": "equivalent", "target": "2cdb0efa2e2249d0e3f9b9dd528ebb36", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}, {"rule": 2, "type": "equivalent", "target": "6751805191274189c14b5c574618acf6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}, {"rule": 2, "type": "equivalent", "target": "7fa38e8aef93079d71fc8df9e9eaec2b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}, {"rule": 2, "type": "equivalent", "target": "bec476c995bf0ae2d6c2bbd39a5ee4a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6751805191274189c14b5c574618acf6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.5.8#9.5.8-d20765897a51eeb2", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "2cdb0efa2e2249d0e3f9b9dd528ebb36", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复INSERT或UPDATE对域于数组类型列的多于一个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.4.13#9.4.13-a2678c658d4a7cb7", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "7fa38e8aef93079d71fc8df9e9eaec2b", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.3.18#9.3.18-d20765897a51eeb2", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "bec476c995bf0ae2d6c2bbd39a5ee4a6", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.2.22#9.2.22-d20765897a51eeb2", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-45882918423781a5", "cves": [], "html": "<p>允许在聚合函数参数内的子 <code>SELECT</code> 中使用窗口函数（Tom Lane）</p>", "text": "允许在聚合函数参数内的子 SELECT 中使用窗口函数（Tom Lane）", "title": "允许在聚合函数参数内的子 SELECT 中使用窗口函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "4913cad6ac1b86aa6d433abf113ec81e7c44318955cdfcc1e01f35bcca86265f", "section_path": ["变更"], "commit_groups": [["3a7bd59c4", "66dee28b4", "9a2706572", "9c7dc8928", "dc777f9db"]], "identity_text": "Allow window functions to be used in sub-SELECTs that are within the arguments of an aggregate function (Tom Lane)", "commit_aliases": ["3a7bd59c4", "66dee28b4", "9a2706572", "9c7dc8928", "dc777f9db"], "source_commits": ["3a7bd59c4"], "source_entry_id": "9.6.4/changes/026", "db_id": "2fc123ead4411fe698a8ec30e526d0e9", "patch_ids": ["859aa53537b4edf2483cfbf1a7699948"], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348", "relations": [{"rule": 2, "type": "equivalent", "target": "4d955c084a20c2af0c43bc971277f818", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}}, {"rule": 2, "type": "equivalent", "target": "a3cceca6f8762c038aaacfddecd8a2df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}}, {"rule": 2, "type": "equivalent", "target": "ef9c132dc08d64524af624312932f4aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ef9c132dc08d64524af624312932f4aa", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "允许在聚合函数参数内的子 SELECT 中使用窗口函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}, "url": "/docs/compare/?release=9.5.8#9.5.8-45882918423781a5", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "4d955c084a20c2af0c43bc971277f818", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "允许在聚合函数参数内的子SELECT中使用窗口函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e6232e914314daee", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "a3cceca6f8762c038aaacfddecd8a2df", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "允许在聚合函数参数内的子 SELECT 中使用窗口函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}, "url": "/docs/compare/?release=9.3.18#9.3.18-45882918423781a5", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-b3c112101bc26034", "cves": [], "html": "<p>确保底层表是外部表时正确执行视图的 <code>CHECK OPTIONS</code> 子句（Etsuro Fujita）</p>\n<p>此前更新可能被完全下推到外部服务器，但这样做的验证视图条件的需要被遗漏了。</p>", "text": "确保底层表是外部表时正确执行视图的 CHECK OPTIONS 子句（Etsuro Fujita） 此前更新可能被完全下推到外部服务器，但这样做的验证视图条件的需要被遗漏了。", "title": "确保底层表是外部表时正确执行视图的 CHECK OPTIONS 子句", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "c8bac5c58daa3741223bd327acc8b0da08274c4e72fc1b481f935241d35b3f03", "section_path": ["变更"], "commit_groups": [["7086be6e3", "971faefc2"]], "identity_text": "Ensure that a view's CHECK OPTIONS clause is enforced properly when the underlying table is a foreign table (Etsuro Fujita) Previously, the update might get pushed entirely to the foreign server, but the need to verify the view conditions was missed if so.", "commit_aliases": ["7086be6e3", "971faefc2"], "source_commits": ["971faefc2"], "source_entry_id": "9.6.4/changes/027", "db_id": "accd01ca0010eb1c7a80eb600f2e260a", "patch_ids": ["1a54e37b75f8465259fcfa79d150801b"], "statement_hash": "7f1780df794f4882b7fbfaf08a58580ab46d61090e90ba8df252e56692638585", "relations": [], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.4-26b8910082bb016e", "cves": [], "html": "<p>在 <code>ALTER ... RENAME</code> 期间把自动生成的数组类型移开（Vik Fearing）</p>\n<p>此前我们在 <code>CREATE</code> 期间会把冲突的自动生成数组类型重命名移开；此修复把该行为扩展到重命名操作。</p>", "text": "在 ALTER ... RENAME 期间把自动生成的数组类型移开（Vik Fearing） 此前我们在 CREATE 期间会把冲突的自动生成数组类型重命名移开；此修复把该行为扩展到重命名操作。", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "4b44b67e8821c3dc325e7bb663511cf130172237f8ad084fb7dbd30df9f03bae", "section_path": ["变更"], "commit_groups": [["525780c62", "8f62b388b", "94aced8cd", "9ded51719", "acab87ece", "da9165686"]], "identity_text": "Move autogenerated array types out of the way during ALTER ... RENAME (Vik Fearing) Previously, we would rename a conflicting autogenerated array type out of the way during CREATE; this fix extends that behavior to renaming operations.", "commit_aliases": ["525780c62", "8f62b388b", "94aced8cd", "9ded51719", "acab87ece", "da9165686"], "source_commits": ["acab87ece"], "source_entry_id": "9.6.4/changes/028", "db_id": "35c9a1e915045e14f9285575fbf87fd4", "patch_ids": ["e68ed746d05be0c70fc6ae8544998422"], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790", "relations": [{"rule": 2, "type": "equivalent", "target": "01a3f42570323f11d8590ebbab6be905", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}, {"rule": 2, "type": "equivalent", "target": "3542438a9e62964cff164ac34edfb00b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}, {"rule": 2, "type": "equivalent", "target": "bdc3b303804932fa630f8a8d01e0e891", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}, {"rule": 2, "type": "equivalent", "target": "e0b15344dd65537ca60f9d091cab55fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3542438a9e62964cff164ac34edfb00b", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.5.8#9.5.8-26b8910082bb016e", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "e0b15344dd65537ca60f9d091cab55fb", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.4.13#9.4.13-26b8910082bb016e", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "01a3f42570323f11d8590ebbab6be905", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.3.18#9.3.18-26b8910082bb016e", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "bdc3b303804932fa630f8a8d01e0e891", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.2.22#9.2.22-26b8910082bb016e", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-47b65f0a91bb8ed9", "cves": [], "html": "<p>修复表中约束带有注释时 <code>ALTER TABLE</code> 中的悬空指针（David Rowley）</p>\n<p>把注释重新应用于重建后的约束时可能因奇怪的错误消息失败，甚至崩溃。</p>", "text": "修复表中约束带有注释时 ALTER TABLE 中的悬空指针（David Rowley） 把注释重新应用于重建后的约束时可能因奇怪的错误消息失败，甚至崩溃。", "title": "修复表中约束带有注释时 ALTER TABLE 中的悬空指针", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "2e79346a51a6295ffde9824303d22955b09a8b89532a3229e5c6ce1590939cf4", "section_path": ["变更"], "commit_groups": [["12590c5d3", "53a1aa9f9", "b35cce914"]], "identity_text": "Fix dangling pointer in ALTER TABLE when there is a comment on a constraint belonging to the table (David Rowley) Re-applying the comment to the reconstructed constraint could fail with a weird error message, or even crash.", "commit_aliases": ["12590c5d3", "53a1aa9f9", "b35cce914"], "source_commits": ["b35cce914"], "source_entry_id": "9.6.4/changes/029", "db_id": "ba15e5c268a1a357e0d9406a7af562f3", "patch_ids": ["c999c5f280db0d34a7f056a94e07e96a"], "statement_hash": "0f660e6f689cf33ccfac7e4cd3ba137664528add01185cbf4506735c4ef02c30", "relations": [{"rule": 2, "type": "equivalent", "target": "ceabcf8bf0b524d39b3800b2d902e81e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f660e6f689cf33ccfac7e4cd3ba137664528add01185cbf4506735c4ef02c30"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ceabcf8bf0b524d39b3800b2d902e81e", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复表中约束带有注释时 ALTER TABLE 中的悬空指针", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f660e6f689cf33ccfac7e4cd3ba137664528add01185cbf4506735c4ef02c30"}, "url": "/docs/compare/?release=9.5.8#9.5.8-47b65f0a91bb8ed9", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}]}, {"id": "9.6.4-5d6d8e63b270c702", "cves": [], "html": "<p>确保 <code>ALTER USER ... SET</code> 接受 <code>ALTER ROLE ... SET</code> 接受的所有语法变体（Peter Eisentraut）</p>", "text": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体（Peter Eisentraut）", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "e3f30d8cc03c40d3bdb405e55d6528d9671ec50eb022fa148605a2796db9310f", "section_path": ["变更"], "commit_groups": [["22eb38caa", "b37448122", "b7d1bc820", "df04db041", "e0446d06e", "f2878a608"]], "identity_text": "Ensure that ALTER USER ... SET accepts all the syntax variants that ALTER ROLE ... SET does (Peter Eisentraut)", "commit_aliases": ["22eb38caa", "b37448122", "b7d1bc820", "df04db041", "e0446d06e", "f2878a608"], "source_commits": ["df04db041"], "source_entry_id": "9.6.4/changes/030", "db_id": "e0dfbecb7a9539c1d00387e2230fd26a", "patch_ids": ["78e2410971251e0e0805aa53dfe3b52d"], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02", "relations": [{"rule": 2, "type": "equivalent", "target": "2e9124e378f62726adf44d3d5bfc1844", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}, {"rule": 2, "type": "equivalent", "target": "64cd1132715305e1328535ca3f78902f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}, {"rule": 2, "type": "equivalent", "target": "78533c68c579d16f73c607cdc14e8a1f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}, {"rule": 2, "type": "equivalent", "target": "d30198df80a7b55813806adb967331f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d30198df80a7b55813806adb967331f7", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5d6d8e63b270c702", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "78533c68c579d16f73c607cdc14e8a1f", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "确保ALTER USER ... SET接受ALTER ROLE ... SET接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.4.13#9.4.13-0acb3f4526afe316", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "64cd1132715305e1328535ca3f78902f", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.3.18#9.3.18-5d6d8e63b270c702", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "2e9124e378f62726adf44d3d5bfc1844", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5d6d8e63b270c702", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-c6f9863507473cda", "cves": [], "html": "<p>允许外部表的 <code>CHECK</code> 约束初始为 <code>NOT VALID</code>（Amit Langote）</p>\n<p><code>CREATE TABLE</code> 静默丢弃 <code>CHECK</code> 约束的 <code>NOT VALID</code> 说明符，理由是表必须是空的，所以约束可以立即验证。但这对于 <code>CREATE FOREIGN TABLE</code> 是错误的，没有理由假定底层表是空的，而且即使是，决定约束今后可以被视为有效也不是我们的事。对外部表跳过这一<span>“<span>优化</span>”</span>。</p>", "text": "允许外部表的 CHECK 约束初始为 NOT VALID（Amit Langote） CREATE TABLE 静默丢弃 CHECK 约束的 NOT VALID 说明符，理由是表必须是空的，所以约束可以立即验证。但这对于 CREATE FOREIGN TABLE 是错误的，没有理由假定底层表是空的，而且即使是，决定约束今后可以被视为有效也不是我们的事。对外部表跳过这一“优化”。", "title": "允许外部表的 CHECK 约束初始为 NOT VALID", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "3388610aeb29080898739ca221c0d07d45340a6385ba88333ab87574f69f6c40", "section_path": ["变更"], "commit_groups": [["1f220c390", "86705aa8c"]], "identity_text": "Allow a foreign table's CHECK constraints to be initially NOT VALID (Amit Langote) CREATE TABLE silently drops NOT VALID specifiers for CHECK constraints, reasoning that the table must be empty so the constraint can be validated immediately. But this is wrong for CREATE FOREIGN TABLE, where there's no reason to suppose that the underlying table is empty, and even if it is it's no business of ours to decide that the constraint can be treated as valid going forward. Skip this optimization for foreign tables.", "commit_aliases": ["1f220c390", "86705aa8c"], "source_commits": ["1f220c390"], "source_entry_id": "9.6.4/changes/031", "db_id": "76ddd4cbca270506e56630a5fecfbc20", "patch_ids": ["27e9487ff05f55de1d97fdc5a7321fc4"], "statement_hash": "18103f730c567df1685fe648e0f3432a580366ff51f3afb4efefb82dfa7acc33", "relations": [], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.4-7e64d6a8ac02ee1d", "cves": [], "html": "<p>把数据类型 I/O 函数的参数或返回类型从 <code>opaque</code> 更改为正确类型时正确更新依赖信息（Heikki Linnakangas）</p>\n<p><code>CREATE TYPE</code> 会更新以这种早已过时风格声明的 I/O 函数，但忘记记录对类型的依赖，允许随后的 <code>DROP TYPE</code> 留下损坏的函数定义。</p>", "text": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息（Heikki Linnakangas） CREATE TYPE 会更新以这种早已过时风格声明的 I/O 函数，但忘记记录对类型的依赖，允许随后的 DROP TYPE 留下损坏的函数定义。", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "1b171210b0ce5ad5827a5e2d7251fc9e27c918f65aa1b623d3e5a8a62627a3b7", "section_path": ["变更"], "commit_groups": [["30681c830", "501e6f8b7", "6338b50b9", "a9a5eb32b", "ac93a78b0", "b47e2f7a9"]], "identity_text": "Properly update dependency info when changing a datatype I/O function's argument or return type from opaque to the correct type (Heikki Linnakangas) CREATE TYPE updates I/O functions declared in this long-obsolete style, but it forgot to record a dependency on the type, allowing a subsequent DROP TYPE to leave broken function definitions behind.", "commit_aliases": ["30681c830", "501e6f8b7", "6338b50b9", "a9a5eb32b", "ac93a78b0", "b47e2f7a9"], "source_commits": ["a9a5eb32b"], "source_entry_id": "9.6.4/changes/032", "db_id": "1c71739ec0bc22b2086096c2e708bf8d", "patch_ids": ["6c901075f7e1f0c139a839b714ad1d22"], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95", "relations": [{"rule": 2, "type": "equivalent", "target": "4ea6d45d75e4f4cbecc3f43197c0e279", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}, {"rule": 2, "type": "equivalent", "target": "ca6de75b0e0794384b1bddc37b7725d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}, {"rule": 2, "type": "equivalent", "target": "e2f1d6fdaec7559842c2385b6c1b3960", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}, {"rule": 2, "type": "equivalent", "target": "fc3e91d166da9eace934c7ce332d1d1a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4ea6d45d75e4f4cbecc3f43197c0e279", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "fc3e91d166da9eace934c7ce332d1d1a", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.4.13#9.4.13-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "ca6de75b0e0794384b1bddc37b7725d6", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.3.18#9.3.18-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "e2f1d6fdaec7559842c2385b6c1b3960", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-5d3e2d74baa815d4", "cves": [], "html": "<p>允许 <code>COPY</code> 从查询结果复制时在查询计划中使用并行（Andres Freund）</p>", "text": "允许 COPY 从查询结果复制时在查询计划中使用并行（Andres Freund）", "title": "允许 COPY 从查询结果复制时在查询计划中使用并行", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "e3254b711ee4bd13646f5eece51872e4ce04db8ada212d0868827184a8bab70a", "section_path": ["变更"], "commit_groups": [["34aebcf42", "8a7cd781e"]], "identity_text": "Allow parallelism in the query plan when COPY copies from a query's result (Andres Freund)", "commit_aliases": ["34aebcf42", "8a7cd781e"], "source_commits": ["8a7cd781e"], "source_entry_id": "9.6.4/changes/033", "db_id": "9f7626cfb981bc8f9f5874026365f017", "patch_ids": ["0b33c9b1d6516637c2f1283cedfeb569"], "statement_hash": "47bd6a27c4c3119124c9a66ebbdceedfbb48e59b876abeedf6d9b3d966403971", "relations": [], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.4-53ec6cb2f2c17b5e", "cves": [], "html": "<p>减少 <code>ANALYZE</code> 处理 <code>tsvector</code> 列时的内存使用（Heikki Linnakangas）</p>", "text": "减少 ANALYZE 处理 tsvector 列时的内存使用（Heikki Linnakangas）", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "c5fc3d30d111b31cb4ed00f68f67f0e663b5e1d4f38460e53e23ad1189e8fade", "section_path": ["变更"], "commit_groups": [["11854dee0", "209970ded", "40ba61b44", "852902822", "bbeec3c74", "da11977de"]], "identity_text": "Reduce memory usage when ANALYZE processes a tsvector column (Heikki Linnakangas)", "commit_aliases": ["11854dee0", "209970ded", "40ba61b44", "852902822", "bbeec3c74", "da11977de"], "source_commits": ["bbeec3c74"], "source_entry_id": "9.6.4/changes/034", "db_id": "186cde4e1db0f0be25d5d5bf57d359a3", "patch_ids": ["36b05fa4a27b3a3c009f2918c70b311e"], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285", "relations": [{"rule": 2, "type": "equivalent", "target": "311b3cc3e4fa5b500aa9deca70df0ad1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}, {"rule": 2, "type": "equivalent", "target": "56a90a69a533a8f1b101b1a4530193a8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}, {"rule": 2, "type": "equivalent", "target": "9286e2faff7d6b1fff883e2bd2b97a77", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}, {"rule": 2, "type": "equivalent", "target": "b5fdaa42caf9e6d138b07b5dc501401e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b5fdaa42caf9e6d138b07b5dc501401e", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.5.8#9.5.8-53ec6cb2f2c17b5e", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "311b3cc3e4fa5b500aa9deca70df0ad1", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "减少ANALYZE处理tsvector列时的内存占用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5cc7b36574f17ab3", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "9286e2faff7d6b1fff883e2bd2b97a77", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.3.18#9.3.18-53ec6cb2f2c17b5e", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "56a90a69a533a8f1b101b1a4530193a8", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.2.22#9.2.22-53ec6cb2f2c17b5e", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-7274a73af024ab1f", "cves": [], "html": "<p>修复 <code>money</code> 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入（Tom Lane）</p>", "text": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入（Tom Lane）", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "9ea3fb8cd3a93e33ffed92cba87e6420b777163d1765dac5810042a1810c8c87", "section_path": ["变更"], "commit_groups": [["5032f704e", "798d2321e", "83f4e8f71", "b3c536bce", "c101d83a3", "d761fe218"]], "identity_text": "Fix unnecessary precision loss and sloppy rounding when multiplying or dividing money values by integers or floats (Tom Lane)", "commit_aliases": ["5032f704e", "798d2321e", "83f4e8f71", "b3c536bce", "c101d83a3", "d761fe218"], "source_commits": ["c101d83a3"], "source_entry_id": "9.6.4/changes/035", "db_id": "e18ad23e444eafe61e775b732271dcc6", "patch_ids": ["2d8a217a466d8d91cecdbf60b5fd9b43"], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5", "relations": [{"rule": 2, "type": "equivalent", "target": "200144e3d3d62f9ce4f389e55d3f4745", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}, {"rule": 2, "type": "equivalent", "target": "4b94c1478911b41eaef82286d2b45208", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}, {"rule": 2, "type": "equivalent", "target": "c7eb7fb2b29170b05a637ca27c2a7539", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}, {"rule": 2, "type": "equivalent", "target": "e7af3496a98b2881c3be33678b312c32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b94c1478911b41eaef82286d2b45208", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7274a73af024ab1f", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "200144e3d3d62f9ce4f389e55d3f4745", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复money值与整数或浮点数相乘/相除时不必要的精度损失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.4.13#9.4.13-40f89286d4f1ec29", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "c7eb7fb2b29170b05a637ca27c2a7539", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.3.18#9.3.18-7274a73af024ab1f", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "e7af3496a98b2881c3be33678b312c32", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7274a73af024ab1f", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-5118ee67f07e4d53", "cves": [], "html": "<p>收紧对解析标识符的函数（如 <code>regprocedurein()</code>）中空白的检查（Tom Lane）</p>\n<p>根据当前区域，这些函数可能把多字节字符的片段误解释为空白。</p>", "text": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查（Tom Lane） 根据当前区域，这些函数可能把多字节字符的片段误解释为空白。", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "01880c548587e8427b61b42f1bd2e644d1040e3eceb0f89a0c6c57c3368195c1", "section_path": ["变更"], "commit_groups": [["2c5e3fab3", "8527132e5", "971a158e6", "9ae2661fe", "a047270d5", "a3043d363"]], "identity_text": "Tighten checks for whitespace in functions that parse identifiers, such as regprocedurein() (Tom Lane) Depending on the prevailing locale, these functions could misinterpret fragments of multibyte characters as whitespace.", "commit_aliases": ["2c5e3fab3", "8527132e5", "971a158e6", "9ae2661fe", "a047270d5", "a3043d363"], "source_commits": ["8527132e5"], "source_entry_id": "9.6.4/changes/036", "db_id": "51131f8d3f132e0ebe995be51a7e214b", "patch_ids": ["0044fa0cd3186f3d87434a8f20a07663"], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807", "relations": [{"rule": 2, "type": "equivalent", "target": "3c0a5921b737f2e58d32771afebaa81e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}, {"rule": 2, "type": "equivalent", "target": "7dc7725bf5e33baf9a4661587b0e8778", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}, {"rule": 2, "type": "equivalent", "target": "835321b9bb87e7c0b5749d5c3a0a71eb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}, {"rule": 2, "type": "equivalent", "target": "9efb4404669223331c80f16eb8181e0e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7dc7725bf5e33baf9a4661587b0e8778", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5118ee67f07e4d53", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "9efb4404669223331c80f16eb8181e0e", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5118ee67f07e4d53", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "3c0a5921b737f2e58d32771afebaa81e", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.3.18#9.3.18-5118ee67f07e4d53", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "835321b9bb87e7c0b5749d5c3a0a71eb", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5118ee67f07e4d53", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-474980cb5fb146b9", "cves": [], "html": "<p>编译 <span>PL/Perl</span> 时使用来自 Perl 的相关 <code>#define</code> 符号（Ashutosh Sharma、Tom Lane）</p>\n<p>这避免了可移植性问题（通常表现为库加载期间的<span>“<span>握手</span>”</span>不匹配），在使用最近 Perl 版本时。</p>", "text": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号（Ashutosh Sharma、Tom Lane） 这避免了可移植性问题（通常表现为库加载期间的“握手”不匹配），在使用最近 Perl 版本时。", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "14ae36077d20560b377d74c2cf9bf07abf20b52f78678ed3ca71c816a3b06132", "section_path": ["变更"], "commit_groups": [["0d8f015e7", "1e58c503e", "3c163a7fc", "456c7dff2", "9cbdc6894", "df52739ce"], ["30a5c8bfb", "99eea89db", "b4b958251", "b92f17277", "bebe174bb", "d48180ec8"]], "identity_text": "Use relevant #define symbols from Perl while compiling PL/Perl (Ashutosh Sharma, Tom Lane) This avoids portability problems, typically manifesting as a handshake mismatch during library load, when working with recent Perl versions.", "commit_aliases": ["0d8f015e7", "1e58c503e", "30a5c8bfb", "3c163a7fc", "456c7dff2", "99eea89db", "9cbdc6894", "b4b958251", "b92f17277", "bebe174bb", "d48180ec8", "df52739ce"], "source_commits": ["1e58c503e", "30a5c8bfb"], "source_entry_id": "9.6.4/changes/037", "db_id": "305da47f50ed8f0ce3a821641c6f95b6", "patch_ids": ["3a3b2b637fc116d54e43267cbff8831e", "642fd6fb30e0bf40b080005c01dbcbcb"], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e", "relations": [{"rule": 2, "type": "equivalent", "target": "9d939394d3ef977b355d5067c31096da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}, {"rule": 2, "type": "equivalent", "target": "c22a12a11473dfddf3f84f1ae9150cfb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}, {"rule": 2, "type": "equivalent", "target": "c77f2092d00b5020f4fa8133a9904bef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}, {"rule": 2, "type": "equivalent", "target": "e1497c1373601f3a52ad6e5179cebd31", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c77f2092d00b5020f4fa8133a9904bef", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.5.8#9.5.8-474980cb5fb146b9", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "c22a12a11473dfddf3f84f1ae9150cfb", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.4.13#9.4.13-474980cb5fb146b9", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e1497c1373601f3a52ad6e5179cebd31", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.3.18#9.3.18-474980cb5fb146b9", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "9d939394d3ef977b355d5067c31096da", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.2.22#9.2.22-474980cb5fb146b9", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-056fd7f08bcf3bf3", "cves": [], "html": "<p>在 <span>libpq</span> 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态（Michael Paquier）</p>\n<p>不这样做意味着当从 SSL 回退到非 SSL 连接时，SSL 尝试中的 GSS/SASL 失败总是导致非 SSL 尝试失败。SSPI 不会失败，但泄漏内存。</p>", "text": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态（Michael Paquier） 不这样做意味着当从 SSL 回退到非 SSL 连接时，SSL 尝试中的 GSS/SASL 失败总是导致非 SSL 尝试失败。SSPI 不会失败，但泄漏内存。", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "a084e315f474cab212649dbd1d301034e8accf543ee0efcd2feb9ea2691a255e", "section_path": ["变更"], "commit_groups": [["1fe1fc449", "739cb7f8b", "e6c33d594", "f2fa0c651", "f44c609ea"]], "identity_text": "In libpq, reset GSS/SASL and SSPI authentication state properly after a failed connection attempt (Michael Paquier) Failure to do this meant that when falling back from SSL to non-SSL connections, a GSS/SASL failure in the SSL attempt would always cause the non-SSL attempt to fail. SSPI did not fail, but it leaked memory.", "commit_aliases": ["1fe1fc449", "739cb7f8b", "e6c33d594", "f2fa0c651", "f44c609ea"], "source_commits": ["f44c609ea"], "source_entry_id": "9.6.4/changes/038", "db_id": "0456888e68ba9735aed31467beaa1606", "patch_ids": ["5b0a662cf429607716c22756bf78fd17"], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d", "relations": [{"rule": 2, "type": "equivalent", "target": "0e0c8800fb2de2726071d288ab427a2a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}}, {"rule": 2, "type": "equivalent", "target": "4236ed294a48db58aaecec60f5bd28d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}}, {"rule": 2, "type": "equivalent", "target": "bce8f77346d60ccbd6093c02df55203d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e0c8800fb2de2726071d288ab427a2a", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}, "url": "/docs/compare/?release=9.5.8#9.5.8-056fd7f08bcf3bf3", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "bce8f77346d60ccbd6093c02df55203d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}, "url": "/docs/compare/?release=9.4.13#9.4.13-056fd7f08bcf3bf3", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "4236ed294a48db58aaecec60f5bd28d3", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}, "url": "/docs/compare/?release=9.3.18#9.3.18-056fd7f08bcf3bf3", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-f6dd38d2b91f2552", "cves": [], "html": "<p>在 <span>psql</span> 中，修复 <code>COPY FROM STDIN</code> 以键盘 EOF 信号结束后再尝试另一个 <code>COPY FROM STDIN</code> 时失败的问题（Thomas Munro）</p>\n<p>这种错误行为在 BSD 衍生平台（包括 macOS）上观察到，但在大多数其他平台上没有。</p>", "text": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题（Thomas Munro） 这种错误行为在 BSD 衍生平台（包括 macOS）上观察到，但在大多数其他平台上没有。", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "1b9eeab800e9aa4c751893f45cadc1cec0008b9663d4b42270ffbf16924bcbb2", "section_path": ["变更"], "commit_groups": [["07477130e", "49dfbb53c", "6bc710f6d", "9485516ea", "bee9e8698", "ff0e30512"]], "identity_text": "In psql, fix failure when COPY FROM STDIN is ended with a keyboard EOF signal and then another COPY FROM STDIN is attempted (Thomas Munro) This misbehavior was observed on BSD-derived platforms (including macOS), but not on most others.", "commit_aliases": ["07477130e", "49dfbb53c", "6bc710f6d", "9485516ea", "bee9e8698", "ff0e30512"], "source_commits": ["bee9e8698"], "source_entry_id": "9.6.4/changes/039", "db_id": "97b6de864a42aee7da373e5fe0c118fd", "patch_ids": ["3b19455ea29ab8719801cfbd99969752"], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb", "relations": [{"rule": 2, "type": "equivalent", "target": "6004f396e99c733a1e660e68647024bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}, {"rule": 2, "type": "equivalent", "target": "848a728f38402af058ade6e9b1bebe80", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}, {"rule": 2, "type": "equivalent", "target": "b68ddd9f7cc23e1e7f98a7342cfb1006", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}, {"rule": 2, "type": "equivalent", "target": "ef425a41068590fd5bab895976085ff8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6004f396e99c733a1e660e68647024bc", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.5.8#9.5.8-f6dd38d2b91f2552", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "ef425a41068590fd5bab895976085ff8", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.4.13#9.4.13-f6dd38d2b91f2552", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "b68ddd9f7cc23e1e7f98a7342cfb1006", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.3.18#9.3.18-f6dd38d2b91f2552", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "848a728f38402af058ade6e9b1bebe80", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.2.22#9.2.22-f6dd38d2b91f2552", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-0b8887b8749b708f", "cves": [], "html": "<p>修复 <span>pg_dump</span> 和 <span>pg_restore</span> 把 <code>REFRESH MATERIALIZED VIEW</code> 命令放在最后发出（Tom Lane）</p>\n<p>这防止了物化视图引用其他用户拥有的表时转储/恢复期间的错误。</p>", "text": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出（Tom Lane） 这防止了物化视图引用其他用户拥有的表时转储/恢复期间的错误。", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "875bb64b69e27d4769627cd6d824cc0ea22d22bd6cbf301ca94dc6a9360cb543", "section_path": ["变更"], "commit_groups": [["035bb8222", "3d7632829", "3eb9a5e7c", "65048cf23", "b93217653"]], "identity_text": "Fix pg_dump and pg_restore to emit REFRESH MATERIALIZED VIEW commands last (Tom Lane) This prevents errors during dump/restore when a materialized view refers to tables owned by a different user.", "commit_aliases": ["035bb8222", "3d7632829", "3eb9a5e7c", "65048cf23", "b93217653"], "source_commits": ["3d7632829"], "source_entry_id": "9.6.4/changes/040", "db_id": "1099adc868f2fd81340f5ad0ff580c3e", "patch_ids": ["30fe8dfd5a078c773fb74f6e185f72af"], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a", "relations": [{"rule": 2, "type": "equivalent", "target": "0f3addd499cf349a5d6de089b899807d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}}, {"rule": 2, "type": "equivalent", "target": "a5195efadb3588413ab4580829892e47", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}}, {"rule": 2, "type": "equivalent", "target": "f3362d3ac0ab12a7af758d2723b8575f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a5195efadb3588413ab4580829892e47", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}, "url": "/docs/compare/?release=9.5.8#9.5.8-0b8887b8749b708f", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "0f3addd499cf349a5d6de089b899807d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}, "url": "/docs/compare/?release=9.4.13#9.4.13-0b8887b8749b708f", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "f3362d3ac0ab12a7af758d2723b8575f", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}, "url": "/docs/compare/?release=9.3.18#9.3.18-0b8887b8749b708f", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-6a664b5b42f52a34", "cves": [], "html": "<p>改进 <span>pg_dump</span>/<span>pg_restore</span> 对源自 <span>zlib</span> 的错误情况的报告（Vladimir Kunschikov、Álvaro Herrera）</p>", "text": "改进 pg_dump/pg_restore 对源自 zlib 的错误情况的报告（Vladimir Kunschikov、Álvaro Herrera）", "title": "改进 pg_dump/pg_restore 对源自 zlib 的错误情况的报告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "463c407f79bc6f694f824da7a9cbf5f17473bf9d4d1272eae0a6281303e0f651", "section_path": ["变更"], "commit_groups": [["060393f2a", "330e68734", "4d57e8381", "f3142c027"], ["12f1e523a", "611840074", "69ad12b58", "9a3b5d3ad"]], "identity_text": "Improve pg_dump/pg_restore's reporting of error conditions originating in zlib (Vladimir Kunschikov, Álvaro Herrera)", "commit_aliases": ["060393f2a", "12f1e523a", "330e68734", "4d57e8381", "611840074", "69ad12b58", "9a3b5d3ad", "f3142c027"], "source_commits": ["060393f2a", "611840074"], "source_entry_id": "9.6.4/changes/041", "db_id": "86d8c7635ffee30605202b723c89cbf9", "patch_ids": ["5dad7b4e07858301d2eeb0cb7653fe17", "c9cc37dfa7dedd5cf1f9f033d6092222"], "statement_hash": "b2b7b4673385eaac5f73aa1e875e0dcd791b591111c7ba536075e6a40e708857", "relations": [{"rule": 2, "type": "equivalent", "target": "9d40dcf849197f9c4c220d20840f6fad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2b7b4673385eaac5f73aa1e875e0dcd791b591111c7ba536075e6a40e708857"}}, {"rule": 2, "type": "equivalent", "target": "c0c492a913bfa6f850b9e8aa69ad6891", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2b7b4673385eaac5f73aa1e875e0dcd791b591111c7ba536075e6a40e708857"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c0c492a913bfa6f850b9e8aa69ad6891", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "改进 pg_dump/pg_restore 对源自 zlib 的错误情况的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2b7b4673385eaac5f73aa1e875e0dcd791b591111c7ba536075e6a40e708857"}, "url": "/docs/compare/?release=9.5.8#9.5.8-6a664b5b42f52a34", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "9d40dcf849197f9c4c220d20840f6fad", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "改进pg_dump/pg_restore对源自zlib的错误情况的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2b7b4673385eaac5f73aa1e875e0dcd791b591111c7ba536075e6a40e708857"}, "url": "/docs/compare/?release=9.4.13#9.4.13-40a437b0feca7696", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-887efc91c3b9f809", "cves": [], "html": "<p>修复 <span>pg_dump</span> 使用 <code>--clean</code> 选项按预期删除事件触发器（Tom Lane）</p>\n<p>它现在还正确分配事件触发器的所有权；此前它们被恢复为归运行恢复脚本的超级用户所有。</p>", "text": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器（Tom Lane） 它现在还正确分配事件触发器的所有权；此前它们被恢复为归运行恢复脚本的超级用户所有。", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f0e8e980ea8146f12c218b92fb33435bc19fd73d85da9afda938bfc187c29dbe", "section_path": ["变更"], "commit_groups": [["502ead3d6", "68a22bc69", "7debd9f79", "82ebda7ff", "93f039b49"]], "identity_text": "Fix pg_dump with the --clean option to drop event triggers as expected (Tom Lane) It also now correctly assigns ownership of event triggers; before, they were restored as being owned by the superuser running the restore script.", "commit_aliases": ["502ead3d6", "68a22bc69", "7debd9f79", "82ebda7ff", "93f039b49"], "source_commits": ["82ebda7ff"], "source_entry_id": "9.6.4/changes/042", "db_id": "97c42efa76ac8fe42886299078852fce", "patch_ids": ["6c8eb99ab0fce70118eb73ac50090091"], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff", "relations": [{"rule": 2, "type": "equivalent", "target": "68fc53e5832525f0fc13e98ded49aff3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}}, {"rule": 2, "type": "equivalent", "target": "757afa6498006786ef942aadca896b7c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}}, {"rule": 2, "type": "equivalent", "target": "8d0ccb7e11a250148fe2060c4cb25b8b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "757afa6498006786ef942aadca896b7c", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}, "url": "/docs/compare/?release=9.5.8#9.5.8-887efc91c3b9f809", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "68fc53e5832525f0fc13e98ded49aff3", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}, "url": "/docs/compare/?release=9.4.13#9.4.13-887efc91c3b9f809", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "8d0ccb7e11a250148fe2060c4cb25b8b", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}, "url": "/docs/compare/?release=9.3.18#9.3.18-887efc91c3b9f809", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-ecbcc77edc245567", "cves": [], "html": "<p>修复 <span>pg_dump</span> 使用 <code>--clean</code> 选项在 <code>public</code> 模式不存在时不失败（Stephen Frost）</p>", "text": "修复 pg_dump 使用 --clean 选项在 public 模式不存在时不失败（Stephen Frost）", "title": "修复 pg_dump 使用 --clean 选项在 public 模式不存在时不失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "2ccd9390da0a8f80b0afa8ef61ad0ad3ac62b0ba1fc82e694af3115d73c0cfdf", "section_path": ["变更"], "commit_groups": [["4500edc7e", "a2de017b3"]], "identity_text": "Fix pg_dump with the --clean option to not fail when the public schema doesn't exist (Stephen Frost)", "commit_aliases": ["4500edc7e", "a2de017b3"], "source_commits": ["a2de017b3"], "source_entry_id": "9.6.4/changes/043", "db_id": "1e37237081857ffa9c38a77c259a4ab5", "patch_ids": ["9a673a705d8e4e552cbb854e309563e3"], "statement_hash": "a2496db44a18ea77046e590de0696cd4743a2f3845cff3c2dbec7a331bb63175", "relations": [], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.4-9548977f836b5c39", "cves": [], "html": "<p>修复 <span>pg_dump</span> 不再为空操作符类发出无效 SQL（Daniel Gustafsson）</p>", "text": "修复 pg_dump 不再为空操作符类发出无效 SQL（Daniel Gustafsson）", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f5ad6eebaf96f31e58f96e49b42471beb7078553d65280eafb496bcb5467f773", "section_path": ["变更"], "commit_groups": [["0461b66e3", "1cfc9dc75", "41c4eb5ec", "5886c7d58", "a561254e4", "f62e1eff5"]], "identity_text": "Fix pg_dump to not emit invalid SQL for an empty operator class (Daniel Gustafsson)", "commit_aliases": ["0461b66e3", "1cfc9dc75", "41c4eb5ec", "5886c7d58", "a561254e4", "f62e1eff5"], "source_commits": ["5886c7d58"], "source_entry_id": "9.6.4/changes/044", "db_id": "c29c869ad06caa372ac1b5711b9554d1", "patch_ids": ["8b2fa89b416305a76de85c89fa9df638"], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518", "relations": [{"rule": 2, "type": "equivalent", "target": "070697fb947119da494553bda2f124c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}, {"rule": 2, "type": "equivalent", "target": "840b295f4eeb4c935d37f6c1a782f8cc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}, {"rule": 2, "type": "equivalent", "target": "86c3940da42bf99013987523bdf3df4a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}, {"rule": 2, "type": "equivalent", "target": "e0228a65ed5fca34bd88526c45df6259", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e0228a65ed5fca34bd88526c45df6259", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.5.8#9.5.8-9548977f836b5c39", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "070697fb947119da494553bda2f124c7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复pg_dump对空操作符类不再输出无效 SQL 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.4.13#9.4.13-c14b0269dd70314b", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "840b295f4eeb4c935d37f6c1a782f8cc", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.3.18#9.3.18-9548977f836b5c39", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "86c3940da42bf99013987523bdf3df4a", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.2.22#9.2.22-9548977f836b5c39", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-c3797e4f36dc9e64", "cves": [], "html": "<p>修复 <span>pg_dump</span> 在 Windows 上输出到 stdout（Kuntal Ghosh）</p>\n<p>由于未把文件描述符置为二进制模式，写到 stdout 的压缩纯文本转储会包含损坏的数据。</p>", "text": "修复 pg_dump 在 Windows 上输出到 stdout（Kuntal Ghosh） 由于未把文件描述符置为二进制模式，写到 stdout 的压缩纯文本转储会包含损坏的数据。", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "e20d6b9b8eef49653218c507006232bc76dd49d693dfc8a753c19aab88a6bed8", "section_path": ["变更"], "commit_groups": [["2943c04f7", "3ef40dcec", "4fc274dd8", "bd61d5a19", "c10cbf77a", "d063f972d"]], "identity_text": "Fix pg_dump output to stdout on Windows (Kuntal Ghosh) A compressed plain-text dump written to stdout would contain corrupt data due to failure to put the file descriptor into binary mode.", "commit_aliases": ["2943c04f7", "3ef40dcec", "4fc274dd8", "bd61d5a19", "c10cbf77a", "d063f972d"], "source_commits": ["3ef40dcec"], "source_entry_id": "9.6.4/changes/045", "db_id": "b852a6409848994688858c75c3f50002", "patch_ids": ["93b818b1b400637fddb151bf0c5fc04d"], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9", "relations": [{"rule": 2, "type": "equivalent", "target": "1abe0946f2900b04706de5182f471b42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}, {"rule": 2, "type": "equivalent", "target": "6b7b01759bbaa4b8b22a137cfd58d1e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}, {"rule": 2, "type": "equivalent", "target": "a47aefe46f376f522844b44b005ddbf3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}, {"rule": 2, "type": "equivalent", "target": "e5bf0664cfdd70643c866d5227375b63", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5bf0664cfdd70643c866d5227375b63", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.5.8#9.5.8-c3797e4f36dc9e64", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "6b7b01759bbaa4b8b22a137cfd58d1e7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.4.13#9.4.13-c3797e4f36dc9e64", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "1abe0946f2900b04706de5182f471b42", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.3.18#9.3.18-c3797e4f36dc9e64", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "a47aefe46f376f522844b44b005ddbf3", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.2.22#9.2.22-c3797e4f36dc9e64", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-f12dd04738e5aab4", "cves": [], "html": "<p>修复 <code>pg_get_ruledef()</code> 为列被重命名的视图的 <code>ON SELECT</code> 规则打印正确输出（Tom Lane）</p>\n<p>某些边界情况下 <span>pg_dump</span> 依靠 <code>pg_get_ruledef()</code> 转储视图，因此这个错误可能导致转储/恢复失败。</p>", "text": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出（Tom Lane） 某些边界情况下 pg_dump 依靠 pg_get_ruledef() 转储视图，因此这个错误可能导致转储/恢复失败。", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "8eadc187b02f0158eeb12e8ea59f594117488ef51b98a5eb5dfe1d993a5f39d1", "section_path": ["变更"], "commit_groups": [["3a07ba128", "b4af9e3f3", "b6d640047", "d9874fde8", "f0f255a34", "f579580be"]], "identity_text": "Fix pg_get_ruledef() to print correct output for the ON SELECT rule of a view whose columns have been renamed (Tom Lane) In some corner cases, pg_dump relies on pg_get_ruledef() to dump views, so that this error could result in dump/reload failures.", "commit_aliases": ["3a07ba128", "b4af9e3f3", "b6d640047", "d9874fde8", "f0f255a34", "f579580be"], "source_commits": ["3a07ba128"], "source_entry_id": "9.6.4/changes/046", "db_id": "379c63a4fbb4dcdaffaa11bbc7213eca", "patch_ids": ["922c0001ec872e71ecb122433a64963c"], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0", "relations": [{"rule": 2, "type": "equivalent", "target": "ad3786d2a2b785ec36e6295358ad1500", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}, {"rule": 2, "type": "equivalent", "target": "e7a4d12b68f9153446325e58a125f61b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}, {"rule": 2, "type": "equivalent", "target": "f2edaf5cc2e703873f5b089f4871f5c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}, {"rule": 2, "type": "equivalent", "target": "fc89b5ce5ebfa7e39fc68278673e0a30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ad3786d2a2b785ec36e6295358ad1500", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.5.8#9.5.8-f12dd04738e5aab4", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "e7a4d12b68f9153446325e58a125f61b", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.4.13#9.4.13-f12dd04738e5aab4", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "f2edaf5cc2e703873f5b089f4871f5c0", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.3.18#9.3.18-f12dd04738e5aab4", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "fc89b5ce5ebfa7e39fc68278673e0a30", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.2.22#9.2.22-f12dd04738e5aab4", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-0045f537323e513a", "cves": [], "html": "<p>修复带空约束外连接（如没有公共列的 <code>NATURAL LEFT JOIN</code> 的结果）的转储（Tom Lane）</p>", "text": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储（Tom Lane）", "title": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "bc8175ffcd01659bfc2a4f559776bb8845e422b515a5aa9c534999eeeeff480a", "section_path": ["变更"], "commit_groups": [["41ada8377", "6ab4a1136", "c2bbec9f2", "e947838ae", "eb145fdfe"]], "identity_text": "Fix dumping of outer joins with empty constraints, such as the result of a NATURAL LEFT JOIN with no common columns (Tom Lane)", "commit_aliases": ["41ada8377", "6ab4a1136", "c2bbec9f2", "e947838ae", "eb145fdfe"], "source_commits": ["41ada8377"], "source_entry_id": "9.6.4/changes/047", "db_id": "009dd9aee9e8f4a8eaf5789721b4de32", "patch_ids": ["14983e2e182035444b6bb012c6c15388"], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7", "relations": [{"rule": 2, "type": "equivalent", "target": "7960ba5ff54198dd96a1ae7ea9a99a6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}}, {"rule": 2, "type": "equivalent", "target": "c3c158c1c2ccacd3d3e4c2c9a1d67c99", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}}, {"rule": 2, "type": "equivalent", "target": "eaa0478fcabd4701e6093674de12517a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7960ba5ff54198dd96a1ae7ea9a99a6b", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}, "url": "/docs/compare/?release=9.5.8#9.5.8-0045f537323e513a", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "c3c158c1c2ccacd3d3e4c2c9a1d67c99", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复对带空约束的外连接（例如没有公共列的NATURAL LEFT JOIN结果）的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e5b8203faf687afe", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "eaa0478fcabd4701e6093674de12517a", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}, "url": "/docs/compare/?release=9.3.18#9.3.18-0045f537323e513a", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-7d3ecdbba5e8d785", "cves": [], "html": "<p>修复 <code>FROM</code> 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储（Tom Lane）</p>", "text": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储（Tom Lane）", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f3b2c2df878ed6613b19e6e57d96492a2f5c9d5ac704757033f6f2f2a254759c", "section_path": ["变更"], "commit_groups": [["0ecc407d9", "26d867875", "3b0c2dbed", "3fbebd781", "a3ca72ae9", "bccfb1776"]], "identity_text": "Fix dumping of function expressions in the FROM clause in cases where the expression does not deparse into something that looks like a function call (Tom Lane)", "commit_aliases": ["0ecc407d9", "26d867875", "3b0c2dbed", "3fbebd781", "a3ca72ae9", "bccfb1776"], "source_commits": ["3b0c2dbed"], "source_entry_id": "9.6.4/changes/048", "db_id": "a365a08bf964ae0b5d013c3af4a2b944", "patch_ids": ["33dc925f9f8d2f8c2cf5f0fa3ce693f8"], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6", "relations": [{"rule": 2, "type": "equivalent", "target": "18b23ab20491f4af49f50eb180188cc8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}, {"rule": 2, "type": "equivalent", "target": "27c42f004a817bb395e89624d4c8565b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}, {"rule": 2, "type": "equivalent", "target": "5d279250db704303c3619d09775e014d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}, {"rule": 2, "type": "equivalent", "target": "b4620d508b6c65d987d28869d58a5933", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "18b23ab20491f4af49f50eb180188cc8", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7d3ecdbba5e8d785", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "b4620d508b6c65d987d28869d58a5933", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复FROM子句中函数表达式在表达式无法反向解析为类似函数调用形式时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.4.13#9.4.13-56b4ce7fa2730c8c", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "27c42f004a817bb395e89624d4c8565b", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.3.18#9.3.18-7d3ecdbba5e8d785", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "5d279250db704303c3619d09775e014d", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7d3ecdbba5e8d785", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-5fa98197263eb565", "cves": [], "html": "<p>修复 <span>pg_basebackup</span> 在 Windows 上输出到 stdout（Haribabu Kommi）</p>\n<p>由于未把文件描述符置为二进制模式，写到 stdout 的备份会包含损坏的数据。</p>", "text": "修复 pg_basebackup 在 Windows 上输出到 stdout（Haribabu Kommi） 由于未把文件描述符置为二进制模式，写到 stdout 的备份会包含损坏的数据。", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f6a76e56d938889de0296e7168f25bd6662d641d386d3f9c2511bf50ed9dbf2a", "section_path": ["变更"], "commit_groups": [["240299806", "4b994a96c", "8046465c2", "cedd25ae8", "f20d58a6f", "f3633689f"]], "identity_text": "Fix pg_basebackup output to stdout on Windows (Haribabu Kommi) A backup written to stdout would contain corrupt data due to failure to put the file descriptor into binary mode.", "commit_aliases": ["240299806", "4b994a96c", "8046465c2", "cedd25ae8", "f20d58a6f", "f3633689f"], "source_commits": ["cedd25ae8"], "source_entry_id": "9.6.4/changes/049", "db_id": "89dda01ba3a5a13f897a1a2eeedc22c3", "patch_ids": ["e0eda00344e2804279cabd6b22f9128f"], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029", "relations": [{"rule": 2, "type": "equivalent", "target": "02eb1abc2b9a20b762b97b41818a87d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}, {"rule": 2, "type": "equivalent", "target": "0fb0d233c8ad9c02e201adbd5a151955", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}, {"rule": 2, "type": "equivalent", "target": "b8cb17a32cde2cf63f99f0b6568d654f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}, {"rule": 2, "type": "equivalent", "target": "d4936f7a2cda683f2cdaf1bd900d931c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d4936f7a2cda683f2cdaf1bd900d931c", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5fa98197263eb565", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "b8cb17a32cde2cf63f99f0b6568d654f", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5fa98197263eb565", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "02eb1abc2b9a20b762b97b41818a87d7", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.3.18#9.3.18-5fa98197263eb565", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "0fb0d233c8ad9c02e201adbd5a151955", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5fa98197263eb565", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-dfec0353901a48ba", "cves": [], "html": "<p>修复 <span>pg_rewind</span> 正确处理超过 2GB 的文件（Kuntal Ghosh、Michael Paquier）</p>\n<p>通常这种文件不会出现在 <span>PostgreSQL</span> 数据目录中，但在某些情况下可能存在。</p>", "text": "修复 pg_rewind 正确处理超过 2GB 的文件（Kuntal Ghosh、Michael Paquier） 通常这种文件不会出现在 PostgreSQL 数据目录中，但在某些情况下可能存在。", "title": "修复 pg_rewind 正确处理超过 2GB 的文件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "3c38775ba9a42d1b66a4ac6fe82f59e16501fcaeead1f00279c61e6928c86580", "section_path": ["变更"], "commit_groups": [["73fbf3d3d", "a46fe6e8b", "ed367be64"]], "identity_text": "Fix pg_rewind to correctly handle files exceeding 2GB (Kuntal Ghosh, Michael Paquier) Ordinarily such files won't appear in PostgreSQL data directories, but they could be present in some cases.", "commit_aliases": ["73fbf3d3d", "a46fe6e8b", "ed367be64"], "source_commits": ["73fbf3d3d"], "source_entry_id": "9.6.4/changes/050", "db_id": "220299b9e1cc63fcdcb2f1a62394e134", "patch_ids": ["3d03f148c7cf9377472793fbeff6b4bd"], "statement_hash": "35cdc8405ed68518a45691a28e3aafac5311d964aca3d9c7bdf358021f499984", "relations": [{"rule": 2, "type": "equivalent", "target": "611aac862e1cbacc1a4106e3f9dfd21b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35cdc8405ed68518a45691a28e3aafac5311d964aca3d9c7bdf358021f499984"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "611aac862e1cbacc1a4106e3f9dfd21b", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_rewind 正确处理超过 2GB 的文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35cdc8405ed68518a45691a28e3aafac5311d964aca3d9c7bdf358021f499984"}, "url": "/docs/compare/?release=9.5.8#9.5.8-dfec0353901a48ba", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}]}, {"id": "9.6.4-057eae6ce988e826", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 确保结束 WAL 记录不具有<a href=\"/docs/9.6/runtime-config-wal.html#GUC-WAL-LEVEL\">wal_level</a> = <code>minimum</code>（Bruce Momjian）</p>\n<p>这一条件可能阻止升级后的备库服务器重新连接。</p>", "text": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum（Bruce Momjian） 这一条件可能阻止升级后的备库服务器重新连接。", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "442b3e983d0057f74dfd865ebeaeebc8253a94b6b0e0a6e9abc3ef5fd9c73076", "section_path": ["变更"], "commit_groups": [["0efdbd323", "5c890645d", "65beccae5", "a0e854881", "b710248dd", "f4f867bda"]], "identity_text": "Fix pg_upgrade to ensure that the ending WAL record does not have guc-wal-level = minimum (Bruce Momjian) This condition could prevent upgraded standby servers from reconnecting.", "commit_aliases": ["0efdbd323", "5c890645d", "65beccae5", "a0e854881", "b710248dd", "f4f867bda"], "source_commits": ["0efdbd323"], "source_entry_id": "9.6.4/changes/051", "db_id": "ed0d7539c7cc60379dde8603ba837426", "patch_ids": ["29abe5865f248f1dd4b66003e2e49a33"], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb", "relations": [{"rule": 2, "type": "equivalent", "target": "5fffffcb249499b6b89e60eb86efe93f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}, {"rule": 2, "type": "equivalent", "target": "70779e891888cb9fd45c465d792baee9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}, {"rule": 2, "type": "equivalent", "target": "9ae680ee51cfb93f20beb90598dc48c1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}, {"rule": 2, "type": "equivalent", "target": "cc2cb7fef069b9f35fc77bf5ea661129", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc2cb7fef069b9f35fc77bf5ea661129", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.5.8#9.5.8-057eae6ce988e826", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "5fffffcb249499b6b89e60eb86efe93f", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.4.13#9.4.13-057eae6ce988e826", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "70779e891888cb9fd45c465d792baee9", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.3.18#9.3.18-057eae6ce988e826", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "9ae680ee51cfb93f20beb90598dc48c1", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.2.22#9.2.22-057eae6ce988e826", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-ed461dd6690dc561", "cves": [], "html": "<p>修复 <span>pg_xlogdump</span> 对 WAL 记录长度的计算（Andres Freund）</p>", "text": "修复 pg_xlogdump 对 WAL 记录长度的计算（Andres Freund）", "title": "修复 pg_xlogdump 对 WAL 记录长度的计算", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "6ef126252566f7ccd902f0e2f0f6a0495c67139d6bb7838dd2924a06e677367a", "section_path": ["变更"], "commit_groups": [["25653c171", "c25ed2006", "d3ca4b4b4"]], "identity_text": "Fix pg_xlogdump's computation of WAL record length (Andres Freund)", "commit_aliases": ["25653c171", "c25ed2006", "d3ca4b4b4"], "source_commits": ["d3ca4b4b4"], "source_entry_id": "9.6.4/changes/052", "db_id": "b291bdd517c7cf81f97f2bdb6d43484c", "patch_ids": ["df2da976def64785188d886ba24915ef"], "statement_hash": "9f1c3d77ca9ae42d10b949eaf78f3b209761b8733caeb535b24c76aefd9e0996", "relations": [{"rule": 2, "type": "equivalent", "target": "e5c6dce769c0d772b9a73e27653eeded", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f1c3d77ca9ae42d10b949eaf78f3b209761b8733caeb535b24c76aefd9e0996"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5c6dce769c0d772b9a73e27653eeded", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_xlogdump 对 WAL 记录长度的计算", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f1c3d77ca9ae42d10b949eaf78f3b209761b8733caeb535b24c76aefd9e0996"}, "url": "/docs/compare/?release=9.5.8#9.5.8-ed461dd6690dc561", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}]}, {"id": "9.6.4-3146732edb16f5bc", "cves": [], "html": "<p>在 <code>postgres_fdw</code> 中，<code>ALTER SERVER</code> 或 <code>ALTER USER MAPPING</code> 命令之后重建到远程服务器的连接（Kyotaro Horiguchi）</p>\n<p>这确保影响连接参数的选项更改被及时应用。</p>", "text": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接（Kyotaro Horiguchi） 这确保影响连接参数的选项更改被及时应用。", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "42bf1468d2163140a0edb6036a7c6d99cf16ef0b906243be09fe6a86ebeca157", "section_path": ["变更"], "commit_groups": [["0d503dd1f", "6d9de660d", "88f48b57f", "90877d28e", "a648fc70a"], ["69711415e", "72318eaed", "8bf58c0d9", "cb2b1cac0", "d86a2b7b5"]], "identity_text": "In postgres_fdw, re-establish connections to remote servers after ALTER SERVER or ALTER USER MAPPING commands (Kyotaro Horiguchi) This ensures that option changes affecting connection parameters will be applied promptly.", "commit_aliases": ["0d503dd1f", "69711415e", "6d9de660d", "72318eaed", "88f48b57f", "8bf58c0d9", "90877d28e", "a648fc70a", "cb2b1cac0", "d86a2b7b5"], "source_commits": ["0d503dd1f", "d86a2b7b5"], "source_entry_id": "9.6.4/changes/053", "db_id": "0577b3aa5522ea1e273982f5ddacc2a1", "patch_ids": ["28acb7b8b7d378196ee42daf55835726", "d4da6fefc3b34588cf2c57450e410cc1"], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d", "relations": [{"rule": 2, "type": "equivalent", "target": "8f622e5b02ead97c90bde2fcc254e6c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}}, {"rule": 2, "type": "equivalent", "target": "94250a16e17dfa2eb9ed8f99cfda6c17", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}}, {"rule": 2, "type": "equivalent", "target": "b29b29297c8df354d55917285ee410c4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8f622e5b02ead97c90bde2fcc254e6c6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}, "url": "/docs/compare/?release=9.5.8#9.5.8-3146732edb16f5bc", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "94250a16e17dfa2eb9ed8f99cfda6c17", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}, "url": "/docs/compare/?release=9.4.13#9.4.13-3146732edb16f5bc", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "b29b29297c8df354d55917285ee410c4", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}, "url": "/docs/compare/?release=9.3.18#9.3.18-3146732edb16f5bc", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-afa0bc63a7dcc349", "cves": [], "html": "<p>在 <code>postgres_fdw</code> 中，允许取消远程事务控制命令（Robert Haas、Rafia Sabih）</p>\n<p>这一更改使我们能在比以前多得多的情况下快速摆脱对无响应远程服务器的等待。</p>", "text": "在 postgres_fdw 中，允许取消远程事务控制命令（Robert Haas、Rafia Sabih） 这一更改使我们能在比以前多得多的情况下快速摆脱对无响应远程服务器的等待。", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "e4d2b4111711c9be0949ad922ee5a82617f1ed354ebc2ee3be4055828c0d5832", "section_path": ["变更"], "commit_groups": [["ae9bfc5d6", "b7665f079", "c02c450cf", "fc267a0c3", "fd849956c"]], "identity_text": "In postgres_fdw, allow cancellation of remote transaction control commands (Robert Haas, Rafia Sabih) This change allows us to quickly escape a wait for an unresponsive remote server in many more cases than previously.", "commit_aliases": ["ae9bfc5d6", "b7665f079", "c02c450cf", "fc267a0c3", "fd849956c"], "source_commits": ["fd849956c"], "source_entry_id": "9.6.4/changes/054", "db_id": "b843661c6ce7490ed5abd624d1949ecc", "patch_ids": ["0eeb23b538d048480847bea5b8a99fba"], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02", "relations": [{"rule": 2, "type": "equivalent", "target": "68cac93c846a20baf38128bd29308781", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}}, {"rule": 2, "type": "equivalent", "target": "b15160e72ef4a8a96223642acaf1f71e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}}, {"rule": 2, "type": "equivalent", "target": "f9d5f9fb37faff9c5e79adfbf0b454b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "68cac93c846a20baf38128bd29308781", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}, "url": "/docs/compare/?release=9.5.8#9.5.8-afa0bc63a7dcc349", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "f9d5f9fb37faff9c5e79adfbf0b454b9", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}, "url": "/docs/compare/?release=9.4.13#9.4.13-afa0bc63a7dcc349", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "b15160e72ef4a8a96223642acaf1f71e", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}, "url": "/docs/compare/?release=9.3.18#9.3.18-afa0bc63a7dcc349", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-7c01090eeb995200", "cves": [], "html": "<p>增大 <code>MAX_SYSCACHE_CALLBACKS</code>，为扩展提供更多空间（Tom Lane）</p>", "text": "增大 MAX_SYSCACHE_CALLBACKS，为扩展提供更多空间（Tom Lane）", "title": "增大 MAX_SYSCACHE_CALLBACKS，为扩展提供更多空间", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "58e6c643f71170c45c2aabc27487543e909ff4eaff1074aba6c3d4486cb9bf5d", "section_path": ["变更"], "commit_groups": [["128e133cc", "596a7c8df", "5c633f76b", "6f2fe2468"]], "identity_text": "Increase MAX_SYSCACHE_CALLBACKS to provide more room for extensions (Tom Lane)", "commit_aliases": ["128e133cc", "596a7c8df", "5c633f76b", "6f2fe2468"], "source_commits": ["128e133cc"], "source_entry_id": "9.6.4/changes/055", "db_id": "a0f8011dc1c5eca10f49457e5e21c529", "patch_ids": ["eabefab63fe2c4aa668e2a927dead637"], "statement_hash": "b96bdf342989742e20675cb1885dce5ebd95fccc08c6b6f6c17369965fdfe59e", "relations": [{"rule": 2, "type": "equivalent", "target": "4a4ebed6881c0a5f0c87e713f60c380d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b96bdf342989742e20675cb1885dce5ebd95fccc08c6b6f6c17369965fdfe59e"}}, {"rule": 2, "type": "equivalent", "target": "73822ea00152785455842a53ce614cc2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b96bdf342989742e20675cb1885dce5ebd95fccc08c6b6f6c17369965fdfe59e"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4a4ebed6881c0a5f0c87e713f60c380d", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "增大 MAX_SYSCACHE_CALLBACKS，为扩展提供更多空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b96bdf342989742e20675cb1885dce5ebd95fccc08c6b6f6c17369965fdfe59e"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7c01090eeb995200", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "73822ea00152785455842a53ce614cc2", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "提高MAX_SYSCACHE_CALLBACKS以为扩展提供更多空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b96bdf342989742e20675cb1885dce5ebd95fccc08c6b6f6c17369965fdfe59e"}, "url": "/docs/compare/?release=9.4.13#9.4.13-92283afb0d4454d2", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-206b0d511840b329", "cves": [], "html": "<p>用 gcc 构建共享库时始终使用 <code>-fPIC</code> 而不是 <code>-fpic</code>（Tom Lane）</p>\n<p>这在有差别的平台上支持更大的扩展库。</p>", "text": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic（Tom Lane） 这在有差别的平台上支持更大的扩展库。", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f7a5326f3f1e0beca66505e8e9d389b9f3a9fb678bad3721d7ed026a78ee98a5", "section_path": ["变更"], "commit_groups": [["68938ab8e", "894ce0e97", "8d9b4fe01", "a378b9bc2", "cee7238de", "e9a3c047a"]], "identity_text": "Always use -fPIC, not -fpic, when building shared libraries with gcc (Tom Lane) This supports larger extension libraries on platforms where it makes a difference.", "commit_aliases": ["68938ab8e", "894ce0e97", "8d9b4fe01", "a378b9bc2", "cee7238de", "e9a3c047a"], "source_commits": ["8d9b4fe01"], "source_entry_id": "9.6.4/changes/056", "db_id": "88836e2b0a18775d156de14ee0ec0b35", "patch_ids": ["4ff7793202042e3f9216122d21959583"], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf", "relations": [{"rule": 2, "type": "equivalent", "target": "09be3ad89f8721a50b41d56c4f7a06ab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}, {"rule": 2, "type": "equivalent", "target": "283f393e01a328dd5c4a3b42e8f2fe97", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}, {"rule": 2, "type": "equivalent", "target": "4dc83f6692ada3a0722e84b153a661f6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}, {"rule": 2, "type": "equivalent", "target": "7f021a07a0f5f6e98690d6b7807ca400", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4dc83f6692ada3a0722e84b153a661f6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.5.8#9.5.8-206b0d511840b329", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "7f021a07a0f5f6e98690d6b7807ca400", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.4.13#9.4.13-206b0d511840b329", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "283f393e01a328dd5c4a3b42e8f2fe97", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.3.18#9.3.18-206b0d511840b329", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "09be3ad89f8721a50b41d56c4f7a06ab", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.2.22#9.2.22-206b0d511840b329", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-0d6cc60c08d63989", "cves": [], "html": "<p>在 MSVC 构建中，处理 <span>openssl</span> 库不在 <code>VC</code> 子目录内的情况（Andrew Dunstan）</p>", "text": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况（Andrew Dunstan）", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "a79bd947f2a8f2e4f1ef093f1bb7c8fefcf09678fdaf4a9376c57f43b2a99899", "section_path": ["变更"], "commit_groups": [["0fde390f6", "307fc49d5", "545dc4d21", "614350a3a", "b64ff9c5a", "fe39a086d"], ["2e02136fe", "6da999635", "b2482ab83", "da30fa603", "ec504aff7", "f964a7c5a"]], "identity_text": "In MSVC builds, handle the case where the openssl library is not within a VC subdirectory (Andrew Dunstan)", "commit_aliases": ["0fde390f6", "2e02136fe", "307fc49d5", "545dc4d21", "614350a3a", "6da999635", "b2482ab83", "b64ff9c5a", "da30fa603", "ec504aff7", "f964a7c5a", "fe39a086d"], "source_commits": ["b64ff9c5a", "ec504aff7"], "source_entry_id": "9.6.4/changes/057", "db_id": "5ba5c3c618b18840b6e7ea4b065e8eff", "patch_ids": ["69ca4112afe2ba6074a97471fdaf14f0", "a6aba0d99f5ca99dd81c6c0c59870891"], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143", "relations": [{"rule": 2, "type": "equivalent", "target": "2ffe419c5f7176f78b624e77d8ed0445", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}, {"rule": 2, "type": "equivalent", "target": "4987cc700fdf507f6d116cb8c00a95f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}, {"rule": 2, "type": "equivalent", "target": "b1e8c52cd265fcb98d29ef30f720c81d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}, {"rule": 2, "type": "equivalent", "target": "e2a259345722af9b05ae29fa2570b75e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2ffe419c5f7176f78b624e77d8ed0445", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.5.8#9.5.8-0d6cc60c08d63989", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "b1e8c52cd265fcb98d29ef30f720c81d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "MSVC 构建中，处理openssl库不在VC子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.4.13#9.4.13-41e2b916a89271ec", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e2a259345722af9b05ae29fa2570b75e", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.3.18#9.3.18-0d6cc60c08d63989", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "4987cc700fdf507f6d116cb8c00a95f2", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.2.22#9.2.22-0d6cc60c08d63989", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-52a5f74194c8f736", "cves": [], "html": "<p>在 MSVC 构建中，为 <span>libxml2</span> 头文件添加正确的包含路径（Andrew Dunstan）</p>\n<p>这修复了以前需要移动标准 Windows 安装的 <span>libxml2</span> 中某些东西的需要。</p>", "text": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径（Andrew Dunstan） 这修复了以前需要移动标准 Windows 安装的 libxml2 中某些东西的需要。", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "bd6cfbc7aad7d34cf37574fda546a0745a48f363f11a839f4e538cbb5b8c98bf", "section_path": ["变更"], "commit_groups": [["2c7d2114b", "614f83c12", "616dd9978", "69ce3ead1", "8ec82ee6a", "b757e01f6"]], "identity_text": "In MSVC builds, add proper include path for libxml2 header files (Andrew Dunstan) This fixes a former need to move things around in standard Windows installations of libxml2.", "commit_aliases": ["2c7d2114b", "614f83c12", "616dd9978", "69ce3ead1", "8ec82ee6a", "b757e01f6"], "source_commits": ["69ce3ead1"], "source_entry_id": "9.6.4/changes/058", "db_id": "8461d768f61b233b5f9b20907c2a131a", "patch_ids": ["dfcb841675832a8675e7460a2d66c9c4"], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840", "relations": [{"rule": 2, "type": "equivalent", "target": "02e85494d7f70ee9aec00724e9cea8e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}, {"rule": 2, "type": "equivalent", "target": "5a23348b20eaec0a5ee2ec9cf24180ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}, {"rule": 2, "type": "equivalent", "target": "69a1c1ee3e2fd1046eb41dae764406d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}, {"rule": 2, "type": "equivalent", "target": "cf9983c3fe174fb913939e9666d03f02", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "69a1c1ee3e2fd1046eb41dae764406d3", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.5.8#9.5.8-52a5f74194c8f736", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "cf9983c3fe174fb913939e9666d03f02", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.4.13#9.4.13-52a5f74194c8f736", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "5a23348b20eaec0a5ee2ec9cf24180ca", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.3.18#9.3.18-52a5f74194c8f736", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "02e85494d7f70ee9aec00724e9cea8e9", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.2.22#9.2.22-52a5f74194c8f736", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-09717ca3220cfa78", "cves": [], "html": "<p>在 MSVC 构建中，识别名为 <code>tcl86.lib</code> 的 Tcl 库（Noah Misch）</p>", "text": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库（Noah Misch）", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "a27428de62f919a3fd88669a17270f81df9384df19e1f607912e3a19dc95b935", "section_path": ["变更"], "commit_groups": [["0328bd1ef", "4885e5c88", "71ad8000d", "9842c1b55", "bcc2c3b45", "bef96e57e"]], "identity_text": "In MSVC builds, recognize a Tcl library that is named tcl86.lib (Noah Misch)", "commit_aliases": ["0328bd1ef", "4885e5c88", "71ad8000d", "9842c1b55", "bcc2c3b45", "bef96e57e"], "source_commits": ["bcc2c3b45"], "source_entry_id": "9.6.4/changes/059", "db_id": "3f75c573c809644f4849abb7e6e49a14", "patch_ids": ["83df8fb355c2f09981c3c7f3a24cbb0c"], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be", "relations": [{"rule": 2, "type": "equivalent", "target": "09853f1b92e62eeb03a0337b392cd00e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}, {"rule": 2, "type": "equivalent", "target": "8426debdeb9bf3af83fe18cea868f692", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}, {"rule": 2, "type": "equivalent", "target": "c6c010717f86305f92265081e43c02b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}, {"rule": 2, "type": "equivalent", "target": "d64aeca94e20b7f5038e441bcca2f806", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "09853f1b92e62eeb03a0337b392cd00e", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.5.8#9.5.8-09717ca3220cfa78", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "d64aeca94e20b7f5038e441bcca2f806", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "MSVC 构建中，识别名为tcl86.lib的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.4.13#9.4.13-9c59be30dd25ecf3", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "8426debdeb9bf3af83fe18cea868f692", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.3.18#9.3.18-09717ca3220cfa78", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "c6c010717f86305f92265081e43c02b4", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.2.22#9.2.22-09717ca3220cfa78", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-6c6f838bc9e9da15", "cves": [], "html": "<p>在 MSVC 构建中，尊重 <code>vcregress.pl</code> 命令行上的 <code>PROVE_FLAGS</code> 设置（Andrew Dunstan）</p>", "text": "在 MSVC 构建中，尊重 vcregress.pl 命令行上的 PROVE_FLAGS 设置（Andrew Dunstan）", "title": "在 MSVC 构建中，尊重 vcregress.pl 命令行上的 PROVE_FLAGS 设置", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "8292c356a7232ab2eccb44a1554adb120c45de9f0a0cdafbeec15534eb60c038", "section_path": ["变更"], "commit_groups": [["054a897c4", "56b6ef893", "cb701af78", "d39d968f5"], ["11aa362c8", "3c017a545", "6b2a0b475", "93b7d9731"], ["7eb4124da", "9c3f502b4", "b4a1d69ed", "fd2487e49"]], "identity_text": "In MSVC builds, honor PROVE_FLAGS settings on vcregress.pl's command line (Andrew Dunstan)", "commit_aliases": ["054a897c4", "11aa362c8", "3c017a545", "56b6ef893", "6b2a0b475", "7eb4124da", "93b7d9731", "9c3f502b4", "b4a1d69ed", "cb701af78", "d39d968f5", "fd2487e49"], "source_commits": ["3c017a545", "b4a1d69ed", "cb701af78"], "source_entry_id": "9.6.4/changes/060", "db_id": "66e949672976314ec915b5ad58863818", "patch_ids": ["181a44c1fe59d77ef2b0d00c882566aa", "c58a289d08ed299ced79095b19c1b2bd", "d0f00ee553fd5dc23d41d569fc036faf"], "statement_hash": "d254c693e5272e812c9a281ed3a68cca6e08515eeff2ec0e43d6e4ed73d1a65e", "relations": [{"rule": 2, "type": "equivalent", "target": "9c3f871e92aceebaa87e0c7a7bc68cd0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d254c693e5272e812c9a281ed3a68cca6e08515eeff2ec0e43d6e4ed73d1a65e"}}, {"rule": 2, "type": "equivalent", "target": "c5c84a0a90686f81e6145299e2aa0aa6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d254c693e5272e812c9a281ed3a68cca6e08515eeff2ec0e43d6e4ed73d1a65e"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c5c84a0a90686f81e6145299e2aa0aa6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 MSVC 构建中，尊重 vcregress.pl 命令行上的 PROVE_FLAGS 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d254c693e5272e812c9a281ed3a68cca6e08515eeff2ec0e43d6e4ed73d1a65e"}, "url": "/docs/compare/?release=9.5.8#9.5.8-6c6f838bc9e9da15", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "9c3f871e92aceebaa87e0c7a7bc68cd0", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "MSVC 构建中，遵循vcregress.pl命令行上的PROVE_FLAGS设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d254c693e5272e812c9a281ed3a68cca6e08515eeff2ec0e43d6e4ed73d1a65e"}, "url": "/docs/compare/?release=9.4.13#9.4.13-0ece994579512c2d", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}]}, {"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"}]}]}, {"date": "2017-02-09", "build": "9.6.2", "major": "9.6", "minor": 2, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.2", "eol_date": "2021-11-11", "date_text": "2017-02-09", "supported": false, "manual_url": "/docs/9.6/release-9-6-2.html", "source_url": "/docs/release/9.6.2/", "entry_count": 76, "placeholder": false, "content_hash": "7b59db928d00a931328beba6bb5b415e870641fc880f39fd06d1486a93f667f0", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 76, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你的安装受到下面第一条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的索引。</p>\n<p>另外，如果你是从 9.6.1 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-1.html\" title=\"E.24. 版本 9.6.1\">第 E.24 节</a>。</p>", "compatibility_count": 0, "label": "9.6.2", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3520, "support_days": -1784, "entries": [{"id": "9.6.2-21a67de54dffdc53", "cves": [], "html": "<p>修复可能导致用 <code>CREATE INDEX CONCURRENTLY</code> 构建的索引损坏的竞态条件（Pavan Deolasee、Tom Lane）</p>\n<p>如果 <code>CREATE INDEX CONCURRENTLY</code> 被用于构建一个依赖于先前未被索引的列的索引，那么与 <code>CREATE INDEX</code> 命令并发运行的事务所更新的行可能收到错误的索引条目。如果怀疑这可能已发生，最可靠的解决方案是在安装此更新后重建受影响的索引。</p>", "text": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件（Pavan Deolasee、Tom Lane） 如果 CREATE INDEX CONCURRENTLY 被用于构建一个依赖于先前未被索引的列的索引，那么与 CREATE INDEX 命令并发运行的事务所更新的行可能收到错误的索引条目。如果怀疑这可能已发生，最可靠的解决方案是在安装此更新后重建受影响的索引。", "title": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "dbca9c8427f5b5c51cba3f6b785166c0f57b264f679d927298ee5f93e2b62445", "section_path": ["变更"], "commit_groups": [["2aaec6546", "32c893c8d", "5879958e1", "7fcddbdd0", "bcd7b47c2", "e935696f4"]], "identity_text": "Fix a race condition that could cause indexes built with CREATE INDEX CONCURRENTLY to be corrupt (Pavan Deolasee, Tom Lane) If CREATE INDEX CONCURRENTLY was used to build an index that depends on a column not previously indexed, then rows updated by transactions that ran concurrently with the CREATE INDEX command could have received incorrect index entries. If you suspect this may have happened, the most reliable solution is to rebuild affected indexes after installing this update.", "commit_aliases": ["2aaec6546", "32c893c8d", "5879958e1", "7fcddbdd0", "bcd7b47c2", "e935696f4"], "source_commits": ["7fcddbdd0"], "source_entry_id": "9.6.2/changes/001", "db_id": "1cf1b386fe96749b60daea1d10f070a2", "patch_ids": ["c49860c211a323c1d6a6db1b9ce8eaba"], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1", "relations": [{"rule": 2, "type": "equivalent", "target": "80f05bec188e07b7d3f6a0b6791679fc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}}, {"rule": 2, "type": "equivalent", "target": "83bfe86923226dd4e0badea659d093d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}}, {"rule": 2, "type": "equivalent", "target": "da451e693368b905282c3421d049ca20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}}, {"rule": 2, "type": "equivalent", "target": "f3c2b62e07edee730ed0d25e17fadc66", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f3c2b62e07edee730ed0d25e17fadc66", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}, "url": "/docs/compare/?release=9.5.6#9.5.6-21a67de54dffdc53", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "da451e693368b905282c3421d049ca20", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}, "url": "/docs/compare/?release=9.4.11#9.4.11-21a67de54dffdc53", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "80f05bec188e07b7d3f6a0b6791679fc", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}, "url": "/docs/compare/?release=9.3.16#9.3.16-21a67de54dffdc53", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "83bfe86923226dd4e0badea659d093d4", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"}, "url": "/docs/compare/?release=9.2.20#9.2.20-21a67de54dffdc53", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-f5e00b652c630d9b", "cves": [], "html": "<p>确保用于目录扫描的特殊快照不被过早的数据修剪失效（Tom Lane）</p>\n<p>后端在通告其最旧 xmin 时没有考虑这个快照，可能允许并发清理操作移除仍需要的数据。这导致 <span>“<span>cache lookup failed for relation 1255</span>”</span> 之类的瞬态失败。</p>", "text": "确保用于目录扫描的特殊快照不被过早的数据修剪失效（Tom Lane） 后端在通告其最旧 xmin 时没有考虑这个快照，可能允许并发清理操作移除仍需要的数据。这导致 “cache lookup failed for relation 1255” 之类的瞬态失败。", "title": "确保用于目录扫描的特殊快照不被过早的数据修剪失效", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "3bef415fa5ccbf915d8ae9f08c701986c6ff5d222a1ceeb57b883dfdbcf93451", "section_path": ["变更"], "commit_groups": [["0bc3ed98c", "3e844a34b", "8aa3e4751", "ffaa44cb5"]], "identity_text": "Ensure that the special snapshot used for catalog scans is not invalidated by premature data pruning (Tom Lane) Backends failed to account for this snapshot when advertising their oldest xmin, potentially allowing concurrent vacuuming operations to remove data that was still needed. This led to transient failures along the lines of cache lookup failed for relation 1255.", "commit_aliases": ["0bc3ed98c", "3e844a34b", "8aa3e4751", "ffaa44cb5"], "source_commits": ["8aa3e4751"], "source_entry_id": "9.6.2/changes/002", "db_id": "3b03ab6a4874e92d5ae101ac6f8f7548", "patch_ids": ["0163959fe392ffc55ca42a3101c1513d"], "statement_hash": "aa692793722eabd5fb2954782e575316ccb8a62fb831592f208c22d47e957c9a", "relations": [{"rule": 2, "type": "equivalent", "target": "2c84c10883d4291699453f586c96335b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa692793722eabd5fb2954782e575316ccb8a62fb831592f208c22d47e957c9a"}}, {"rule": 2, "type": "equivalent", "target": "7932849db1ec2230e24032f39e06376e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa692793722eabd5fb2954782e575316ccb8a62fb831592f208c22d47e957c9a"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2c84c10883d4291699453f586c96335b", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保用于目录扫描的特殊快照不被过早的数据修剪失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa692793722eabd5fb2954782e575316ccb8a62fb831592f208c22d47e957c9a"}, "url": "/docs/compare/?release=9.5.6#9.5.6-f5e00b652c630d9b", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "7932849db1ec2230e24032f39e06376e", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保用于目录扫描的特殊快照不被过早的数据修剪失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aa692793722eabd5fb2954782e575316ccb8a62fb831592f208c22d47e957c9a"}, "url": "/docs/compare/?release=9.4.11#9.4.11-f5e00b652c630d9b", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-164ae811ad46fc00", "cves": [], "html": "<p>修复 BRIN 索引不正确的 WAL 记录（Kuntal Ghosh）</p>\n<p>把索引元组移动到不同页时为 BRIN <span>“<span>revmap</span>”</span> 页发出的 WAL 记录不正确。重放会使索引的相关部分失效，迫使它重新计算。</p>", "text": "修复 BRIN 索引不正确的 WAL 记录（Kuntal Ghosh） 把索引元组移动到不同页时为 BRIN “revmap” 页发出的 WAL 记录不正确。重放会使索引的相关部分失效，迫使它重新计算。", "title": "修复 BRIN 索引不正确的 WAL 记录", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "1d444bf8891d8584047ed3ae0e00b8bb70781dd8844fdb192b70da962d84eddf", "section_path": ["变更"], "commit_groups": [["4482c6a23", "7403561c0", "ed8e8b814"]], "identity_text": "Fix incorrect WAL logging for BRIN indexes (Kuntal Ghosh) The WAL record emitted for a BRIN revmap page when moving an index tuple to a different page was incorrect. Replay would make the related portion of the index useless, forcing it to be recomputed.", "commit_aliases": ["4482c6a23", "7403561c0", "ed8e8b814"], "source_commits": ["4482c6a23"], "source_entry_id": "9.6.2/changes/003", "db_id": "614f8054aac239ddee78333a8a6a0e63", "patch_ids": ["dd439f5852dba3656445bcdedc769197"], "statement_hash": "ddc44366f82d2af72f7ff43ac76cf53d42d9ad9ddbc9f48e855fcc9f33ecea45", "relations": [{"rule": 2, "type": "equivalent", "target": "50832b8eb58408ff2388aa5f88514e8b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc44366f82d2af72f7ff43ac76cf53d42d9ad9ddbc9f48e855fcc9f33ecea45"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "50832b8eb58408ff2388aa5f88514e8b", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 BRIN 索引不正确的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddc44366f82d2af72f7ff43ac76cf53d42d9ad9ddbc9f48e855fcc9f33ecea45"}, "url": "/docs/compare/?release=9.5.6#9.5.6-164ae811ad46fc00", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-c73b348ba5749039", "cves": [], "html": "<p>无条件地为未记录表的 <span>“<span>init fork</span>”</span> 写 WAL 日志（Michael Paquier）</p>\n<p>此前当<a href=\"/docs/9.6/runtime-config-wal.html#GUC-WAL-LEVEL\">wal_level</a> = <code>minimum</code> 时跳过这一步，但实际上即使在这种情况下也需要它，以确保未记录表在崩溃后被正确重置为空。</p>", "text": "无条件地为未记录表的 “init fork” 写 WAL 日志（Michael Paquier） 此前当wal_level = minimum 时跳过这一步，但实际上即使在这种情况下也需要它，以确保未记录表在崩溃后被正确重置为空。", "title": "无条件地为未记录表的 “init fork” 写 WAL 日志", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "4ee537017a0378480402ec110e48eb24b23994ad67bfbd5302bb297eb24acc52", "section_path": ["变更"], "commit_groups": [["141ad6896", "1ed3c6ff9", "68e56eef6", "8e403f215", "a00ac6299", "fa0f466d5"]], "identity_text": "Unconditionally WAL-log creation of the init fork for an unlogged table (Michael Paquier) Previously, this was skipped when guc-wal-level = minimal, but actually it's necessary even in that case to ensure that the unlogged table is properly reset to empty after a crash.", "commit_aliases": ["141ad6896", "1ed3c6ff9", "68e56eef6", "8e403f215", "a00ac6299", "fa0f466d5"], "source_commits": ["1ed3c6ff9"], "source_entry_id": "9.6.2/changes/004", "db_id": "96a2ccd3484c42b56fc3124dff045bcc", "patch_ids": ["55692a89363530f2d3d53b1e055f96c7"], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41", "relations": [{"rule": 2, "type": "equivalent", "target": "2debfe09e358306f7ebcf196fe79b585", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}}, {"rule": 2, "type": "equivalent", "target": "8800fa89cd7d4ca0f42ba417a524734e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}}, {"rule": 2, "type": "equivalent", "target": "b750554a280b9a7fb664ae9c535c3aed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}}, {"rule": 2, "type": "equivalent", "target": "c6f68b3c5a7bedd78abd53ea623e5172", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2debfe09e358306f7ebcf196fe79b585", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "无条件地为未记录表的 “init fork” 写 WAL 日志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}, "url": "/docs/compare/?release=9.5.6#9.5.6-c73b348ba5749039", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "c6f68b3c5a7bedd78abd53ea623e5172", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "无条件地为未记录表的 “init fork” 写 WAL 日志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}, "url": "/docs/compare/?release=9.4.11#9.4.11-c73b348ba5749039", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "b750554a280b9a7fb664ae9c535c3aed", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "无条件地为未记录表的 “init fork” 写 WAL 日志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}, "url": "/docs/compare/?release=9.3.16#9.3.16-c73b348ba5749039", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "8800fa89cd7d4ca0f42ba417a524734e", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "无条件地为未记录表的“init fork”写 WAL 日志", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"}, "url": "/docs/compare/?release=9.2.20#9.2.20-dbf4362fbbfe6087", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-0f82f6bd0e8b372d", "cves": [], "html": "<p>如果统计收集器在热备期间死亡，重启它（Takayuki Tsunakawa）</p>", "text": "如果统计收集器在热备期间死亡，重启它（Takayuki Tsunakawa）", "title": "如果统计收集器在热备期间死亡，重启它", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "89a58357c241bf03507d2d9b5e3ccba4b328d1c748f636be6a934fe3cd09526d", "section_path": ["变更"], "commit_groups": [["0cbd199fd", "2be2838a7", "4a43a6244", "4a8cfbdcb", "4f714b2fd", "e927f55ff"]], "identity_text": "If the stats collector dies during hot standby, restart it (Takayuki Tsunakawa)", "commit_aliases": ["0cbd199fd", "2be2838a7", "4a43a6244", "4a8cfbdcb", "4f714b2fd", "e927f55ff"], "source_commits": ["4a43a6244"], "source_entry_id": "9.6.2/changes/005", "db_id": "de4a22008d1a7afbe4d6940986bb6745", "patch_ids": ["57a0783d5b708291fe7497eb2b209e08"], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6", "relations": [{"rule": 2, "type": "equivalent", "target": "3565a145961676913ee62a2e99986cf4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}}, {"rule": 2, "type": "equivalent", "target": "5cd2d2ca24fb08243155c25f7150bab8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}}, {"rule": 2, "type": "equivalent", "target": "c6a9d1159620c8f9492800dea76a81e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}}, {"rule": 2, "type": "equivalent", "target": "e7a331a06d5fd2e3592830e064808397", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3565a145961676913ee62a2e99986cf4", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "如果统计收集器在热备期间死亡，重启它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}, "url": "/docs/compare/?release=9.5.6#9.5.6-0f82f6bd0e8b372d", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "e7a331a06d5fd2e3592830e064808397", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "如果统计收集器在热备期间死亡，重启它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}, "url": "/docs/compare/?release=9.4.11#9.4.11-0f82f6bd0e8b372d", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "c6a9d1159620c8f9492800dea76a81e3", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "如果统计收集器在热备期间死亡，重启它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}, "url": "/docs/compare/?release=9.3.16#9.3.16-0f82f6bd0e8b372d", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "5cd2d2ca24fb08243155c25f7150bab8", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "如果统计收集器在热备期间死亡，重启它", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"}, "url": "/docs/compare/?release=9.2.20#9.2.20-0f82f6bd0e8b372d", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-66e992ec17ca40d7", "cves": [], "html": "<p>确保热备反馈在备库服务器启动时启用的情况下正确工作（Ants Aasma、Craig Ringer）</p>", "text": "确保热备反馈在备库服务器启动时启用的情况下正确工作（Ants Aasma、Craig Ringer）", "title": "确保热备反馈在备库服务器启动时启用的情况下正确工作", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "dad5559309f967092d78cb3a175ce4841fd8c62fce7aa0cb2e70f3a8364f6c2f", "section_path": ["变更"], "commit_groups": [["048d44175", "800d89a98", "95d1b4145", "99289e506", "ec4b97501"]], "identity_text": "Ensure that hot standby feedback works correctly when it's enabled at standby server start (Ants Aasma, Craig Ringer)", "commit_aliases": ["048d44175", "800d89a98", "95d1b4145", "99289e506", "ec4b97501"], "source_commits": ["95d1b4145"], "source_entry_id": "9.6.2/changes/006", "db_id": "dc2b3ccb7994551d3faa9ee16a22499c", "patch_ids": ["78bcedf70cd6af583a2eb302e746c867"], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18", "relations": [{"rule": 2, "type": "equivalent", "target": "48839c20206bcdefc18f38f72fd13df2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}}, {"rule": 2, "type": "equivalent", "target": "bb4794f379e611c9cbe4afc5bec87747", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}}, {"rule": 2, "type": "equivalent", "target": "df175040bd737712b32e91bd73f38a14", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "48839c20206bcdefc18f38f72fd13df2", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保热备反馈在备库服务器启动时启用的情况下正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}, "url": "/docs/compare/?release=9.5.6#9.5.6-66e992ec17ca40d7", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "bb4794f379e611c9cbe4afc5bec87747", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保热备反馈在备库服务器启动时启用的情况下正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}, "url": "/docs/compare/?release=9.4.11#9.4.11-66e992ec17ca40d7", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "df175040bd737712b32e91bd73f38a14", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保热备反馈在备库服务器启动时启用的情况下正确工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e042608e385ed58c86b49db5597b0dfdbcff1de01c34ee7e67c0659540bffb18"}, "url": "/docs/compare/?release=9.3.16#9.3.16-66e992ec17ca40d7", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}]}, {"id": "9.6.2-2f1772ccd52404ad", "cves": [], "html": "<p>热备等待冲突查询时检查中断（Simon Riggs）</p>", "text": "热备等待冲突查询时检查中断（Simon Riggs）", "title": "热备等待冲突查询时检查中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "eafa76245b4cc2b12bc7a37de9384b541e617ffd68516f7a75ec6c11e5f81c15", "section_path": ["变更"], "commit_groups": [["15c54e836", "332068a21", "357e06128", "40b7800da", "ace2cd80a", "e8ee3d6b8"]], "identity_text": "Check for interrupts while hot standby is waiting for a conflicting query (Simon Riggs)", "commit_aliases": ["15c54e836", "332068a21", "357e06128", "40b7800da", "ace2cd80a", "e8ee3d6b8"], "source_commits": ["40b7800da"], "source_entry_id": "9.6.2/changes/007", "db_id": "904e692e04647660f143f1abbd55fb2b", "patch_ids": ["6b13d743970c9fc46abaa4b9588efab4"], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247", "relations": [{"rule": 2, "type": "equivalent", "target": "418ce2365b56a5159ffcc02fac0f59e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}}, {"rule": 2, "type": "equivalent", "target": "d08fdcde47ec4f569bbf62c039c95924", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}}, {"rule": 2, "type": "equivalent", "target": "d729e551b00e1e502cf2a1171df1894b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}}, {"rule": 2, "type": "equivalent", "target": "f7eeb1dfac0116093446d208fcff1772", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7eeb1dfac0116093446d208fcff1772", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "热备等待冲突查询时检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}, "url": "/docs/compare/?release=9.5.6#9.5.6-2f1772ccd52404ad", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "d729e551b00e1e502cf2a1171df1894b", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "热备等待冲突查询时检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}, "url": "/docs/compare/?release=9.4.11#9.4.11-2f1772ccd52404ad", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "418ce2365b56a5159ffcc02fac0f59e1", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "热备等待冲突查询时检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}, "url": "/docs/compare/?release=9.3.16#9.3.16-2f1772ccd52404ad", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "d08fdcde47ec4f569bbf62c039c95924", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "热备等待冲突查询时检查中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"}, "url": "/docs/compare/?release=9.2.20#9.2.20-2f1772ccd52404ad", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-b47d5ae4829cde1d", "cves": [], "html": "<p>避免边界情况下自动清理启动器的不断重启（Amit Khandekar）</p>\n<p>此修复避免了自动清理名义上关闭且有一些需要冻结的表，但所有这种表都已被自动清理工作者处理时的问题。</p>", "text": "避免边界情况下自动清理启动器的不断重启（Amit Khandekar） 此修复避免了自动清理名义上关闭且有一些需要冻结的表，但所有这种表都已被自动清理工作者处理时的问题。", "title": "避免边界情况下自动清理启动器的不断重启", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "f8e9cde3962ae5bc854e039842f04403fbcea88eadc90d26433689f630f8720c", "section_path": ["变更"], "commit_groups": [["5c5788e90", "5dff230eb", "746ba76f1", "806f9b3d7", "aeaaf62aa", "c6a389792"]], "identity_text": "Avoid constantly respawning the autovacuum launcher in a corner case (Amit Khandekar) This fix avoids problems when autovacuum is nominally off and there are some tables that require freezing, but all such tables are already being processed by autovacuum workers.", "commit_aliases": ["5c5788e90", "5dff230eb", "746ba76f1", "806f9b3d7", "aeaaf62aa", "c6a389792"], "source_commits": ["746ba76f1"], "source_entry_id": "9.6.2/changes/008", "db_id": "aa38277809efab39953b106568c98bf9", "patch_ids": ["2c251d2747e2a558e5c26eaf975584df"], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e", "relations": [{"rule": 2, "type": "equivalent", "target": "89017e1d3ff5af35903564a49d0d91d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}}, {"rule": 2, "type": "equivalent", "target": "8a8ffdf1dacd6ab87d6692ed2bca3e52", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}}, {"rule": 2, "type": "equivalent", "target": "a3281c6a1a3aa069f7c670b9497931e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}}, {"rule": 2, "type": "equivalent", "target": "ccc0f6bc1bd1392b9fc1f27d5bd3588e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "89017e1d3ff5af35903564a49d0d91d0", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "避免边界情况下自动清理启动器的不断重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}, "url": "/docs/compare/?release=9.5.6#9.5.6-b47d5ae4829cde1d", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "8a8ffdf1dacd6ab87d6692ed2bca3e52", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "避免边界情况下自动清理启动器的不断重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}, "url": "/docs/compare/?release=9.4.11#9.4.11-b47d5ae4829cde1d", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "a3281c6a1a3aa069f7c670b9497931e8", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "避免边界情况下自动清理启动器的不断重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}, "url": "/docs/compare/?release=9.3.16#9.3.16-b47d5ae4829cde1d", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "ccc0f6bc1bd1392b9fc1f27d5bd3588e", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "避免边界情况下自动清理启动器的不断重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"}, "url": "/docs/compare/?release=9.2.20#9.2.20-b47d5ae4829cde1d", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-8d6800ad73a388ad", "cves": [], "html": "<p>禁止把<a href=\"/docs/9.6/runtime-config-replication.html#GUC-SYNCHRONOUS-STANDBY-NAMES\">synchronous_standby_names</a>中的 <em><code>num_sync</code></em> 字段设为零（Fujii Masao）</p>\n<p>禁用同步备库的正确方式是把整个值设为空字符串。</p>", "text": "禁止把synchronous_standby_names中的 num_sync 字段设为零（Fujii Masao） 禁用同步备库的正确方式是把整个值设为空字符串。", "title": "禁止把synchronous_standby_names中的 num_sync 字段设为零", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "64082f42e4bf4ab3e8407375688d03f55b21353554738688e9c30c77ae06ddaa", "section_path": ["变更"], "commit_groups": [["6c75fb6b3", "93eb619cd"]], "identity_text": "Disallow setting the num_sync field to zero in guc-synchronous-standby-names (Fujii Masao) The correct way to disable synchronous standby is to set the whole value to an empty string.", "commit_aliases": ["6c75fb6b3", "93eb619cd"], "source_commits": ["6c75fb6b3"], "source_entry_id": "9.6.2/changes/009", "db_id": "8e8ea7b93ba9dcac332fa47e03659c83", "patch_ids": ["50f41c8601c3bf35c1b0514687c33ad4"], "statement_hash": "5f074a0d79f6e76754a212f69552e296754bff9d6e67a2f98710882a03835857", "relations": [], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-32db04441f7c9098", "cves": [], "html": "<p>不要把后台工作者进程计入用户的连接限制（David Rowley）</p>", "text": "不要把后台工作者进程计入用户的连接限制（David Rowley）", "title": "不要把后台工作者进程计入用户的连接限制", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "a2bd86b3bd480205540f90805a71a66da37154264f42fb8a402956a82d7d7415", "section_path": ["变更"], "commit_groups": [["13752743b", "f1169ab50"]], "identity_text": "Don't count background worker processes against a user's connection limit (David Rowley)", "commit_aliases": ["13752743b", "f1169ab50"], "source_commits": ["13752743b"], "source_entry_id": "9.6.2/changes/010", "db_id": "ee5af6ed0bc0b571bcc5c72c3f193773", "patch_ids": ["ddac829eebb445bff578757c6ba81a26"], "statement_hash": "f49fe6b94fa62f435d1f8e23e660c49d059bde43c85959da786a1efed3cab07f", "relations": [], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-77b3340da27d93a5", "cves": [], "html": "<p>修复扩展成员对象何时可被删除的检查（Tom Lane）</p>\n<p>扩展升级脚本应当能删除成员对象，但对序列列的序列（可能还有其他情况）这不被允许。</p>", "text": "修复扩展成员对象何时可被删除的检查（Tom Lane） 扩展升级脚本应当能删除成员对象，但对序列列的序列（可能还有其他情况）这不被允许。", "title": "修复扩展成员对象何时可被删除的检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "9b8cbbbfbef5dd88146881a25fa0eb8ab5496c2789fcaaf32c1c187e4a58e1cb", "section_path": ["变更"], "commit_groups": [["0cc8453ac", "182db0704", "2cbb62db1", "313786a74", "576bd360b", "a982b02a4"]], "identity_text": "Fix check for when an extension member object can be dropped (Tom Lane) Extension upgrade scripts should be able to drop member objects, but this was disallowed for serial-column sequences, and possibly other cases.", "commit_aliases": ["0cc8453ac", "182db0704", "2cbb62db1", "313786a74", "576bd360b", "a982b02a4"], "source_commits": ["0cc8453ac"], "source_entry_id": "9.6.2/changes/011", "db_id": "54c022475888431c0d41c6627d11dd7c", "patch_ids": ["1e0fbc657f2ed20429d43981cc4f0c10"], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7", "relations": [{"rule": 2, "type": "equivalent", "target": "5c374ac5cee41cb051285200e880aca6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}}, {"rule": 2, "type": "equivalent", "target": "90cc460b606c55a661713e42f58ddd06", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}}, {"rule": 2, "type": "equivalent", "target": "b2a1fd04c001ab77cd5d29af552c323a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}}, {"rule": 2, "type": "equivalent", "target": "f4270e9af73e1877ed538fab27b58e81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "90cc460b606c55a661713e42f58ddd06", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复扩展成员对象何时可被删除的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}, "url": "/docs/compare/?release=9.5.6#9.5.6-77b3340da27d93a5", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "f4270e9af73e1877ed538fab27b58e81", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复扩展成员对象何时可被删除的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}, "url": "/docs/compare/?release=9.4.11#9.4.11-77b3340da27d93a5", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "5c374ac5cee41cb051285200e880aca6", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复扩展成员对象何时可被删除的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}, "url": "/docs/compare/?release=9.3.16#9.3.16-77b3340da27d93a5", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "b2a1fd04c001ab77cd5d29af552c323a", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复扩展成员对象何时可被删除的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"}, "url": "/docs/compare/?release=9.2.20#9.2.20-77b3340da27d93a5", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-0382edc839a85646", "cves": [], "html": "<p>修复扩展成员对象初始权限的追踪，使其与 <code>ALTER EXTENSION ... ADD/DROP</code> 正确配合（Stephen Frost）</p>\n<p>对象被添加到扩展时的当前权限现在将被视为其默认权限；之后 <span>pg_dump</span> 运行只转储其权限的后续更改。</p>", "text": "修复扩展成员对象初始权限的追踪，使其与 ALTER EXTENSION ... ADD/DROP 正确配合（Stephen Frost） 对象被添加到扩展时的当前权限现在将被视为其默认权限；之后 pg_dump 运行只转储其权限的后续更改。", "title": "修复扩展成员对象初始权限的追踪，使其与 ALTER EXTENSION ... ADD/DROP 正确配合", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "3b1230d552d1957c238b986d84d528481ea78641eb9876a829e6e4b6b173589a", "section_path": ["变更"], "commit_groups": [["20064c0ec", "e54f75722"]], "identity_text": "Fix tracking of initial privileges for extension member objects so that it works correctly with ALTER EXTENSION ... ADD/DROP (Stephen Frost) An object's current privileges at the time it is added to the extension will now be considered its default privileges; only later changes in its privileges will be dumped by subsequent pg_dump runs.", "commit_aliases": ["20064c0ec", "e54f75722"], "source_commits": ["20064c0ec"], "source_entry_id": "9.6.2/changes/012", "db_id": "0db830fb16fff2b00eb499b7d591e80b", "patch_ids": ["59e21ecdc53806a4c2884bc9e2028bd6"], "statement_hash": "ece3c70fc7b400cb4da619b7d2c1573d86916a3a34d16a15caf768944d109a24", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-92e6a6e4971f8631", "cves": [], "html": "<p>确保 <code>ALTER TABLE</code> 重建索引时保留索引表空间分配（Tom Lane、Michael Paquier）</p>\n<p>此前，<a href=\"/docs/9.6/runtime-config-client.html#GUC-DEFAULT-TABLESPACE\">default_tablespace</a>的非默认设置可能导致索引损坏。</p>", "text": "确保 ALTER TABLE 重建索引时保留索引表空间分配（Tom Lane、Michael Paquier） 此前，default_tablespace的非默认设置可能导致索引损坏。", "title": "确保 ALTER TABLE 重建索引时保留索引表空间分配", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "81fdc773582bb24e321ab4f88c9389d3abfb3698cc82083b2b2be98b8c067616", "section_path": ["变更"], "commit_groups": [["05975ab0a", "15f3e0cb1", "4a5e1d370", "8f67a6c22", "bd673e8e8", "e0375d77b"]], "identity_text": "Make sure ALTER TABLE preserves index tablespace assignments when rebuilding indexes (Tom Lane, Michael Paquier) Previously, non-default settings of guc-default-tablespace could result in broken indexes.", "commit_aliases": ["05975ab0a", "15f3e0cb1", "4a5e1d370", "8f67a6c22", "bd673e8e8", "e0375d77b"], "source_commits": ["4a5e1d370"], "source_entry_id": "9.6.2/changes/013", "db_id": "8c2998b77b9aaad172f95093a387ff93", "patch_ids": ["4fecf86e77cb8a28427e89669d04c917"], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53", "relations": [{"rule": 2, "type": "equivalent", "target": "8e7e3ca249ae1764f1792d1243b6e38c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}}, {"rule": 2, "type": "equivalent", "target": "a940ace5794433517e51d947f4235130", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}}, {"rule": 2, "type": "equivalent", "target": "ea5a7adb4bb360e50c78a14021cb2906", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}}, {"rule": 2, "type": "equivalent", "target": "f3ec2ab38f376224b5a1cf410ead414e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ea5a7adb4bb360e50c78a14021cb2906", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保 ALTER TABLE 重建索引时保留索引表空间分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}, "url": "/docs/compare/?release=9.5.6#9.5.6-92e6a6e4971f8631", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "a940ace5794433517e51d947f4235130", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保 ALTER TABLE 重建索引时保留索引表空间分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}, "url": "/docs/compare/?release=9.4.11#9.4.11-92e6a6e4971f8631", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "f3ec2ab38f376224b5a1cf410ead414e", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保 ALTER TABLE 重建索引时保留索引表空间分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}, "url": "/docs/compare/?release=9.3.16#9.3.16-92e6a6e4971f8631", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "8e7e3ca249ae1764f1792d1243b6e38c", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "确保 ALTER TABLE 重建索引时保留索引表空间分配", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"}, "url": "/docs/compare/?release=9.2.20#9.2.20-92e6a6e4971f8631", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-c73a3cdcef1c3cfe", "cves": [], "html": "<p>修复用 <code>ALTER TABLE ... ALTER CONSTRAINT</code> 更改外键约束可延迟性属性时触发器函数属性的错误更新（Tom Lane）</p>\n<p>这导致之后执行外键时的奇怪失败，因为触发器在错误的时间触发。</p>", "text": "修复用 ALTER TABLE ... ALTER CONSTRAINT 更改外键约束可延迟性属性时触发器函数属性的错误更新（Tom Lane） 这导致之后执行外键时的奇怪失败，因为触发器在错误的时间触发。", "title": "修复用 ALTER TABLE ... ALTER CONSTRAINT 更改外键约束可延迟性属性时触发器函数属性的错误更新", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "feee25d9ac60611f9a0d6e77639e6d820e24de571214c0b40e11f2e6c5a623aa", "section_path": ["变更"], "commit_groups": [["3a9a8c408", "445035a6e", "a522fc3d8", "b53c841e5"]], "identity_text": "Fix incorrect updating of trigger function properties when changing a foreign-key constraint's deferrability properties with ALTER TABLE ... ALTER CONSTRAINT (Tom Lane) This led to odd failures during subsequent exercise of the foreign key, as the triggers were fired at the wrong times.", "commit_aliases": ["3a9a8c408", "445035a6e", "a522fc3d8", "b53c841e5"], "source_commits": ["445035a6e"], "source_entry_id": "9.6.2/changes/014", "db_id": "99640de3fc14ce8556bacda8d80c2da8", "patch_ids": ["96258a671615299ddc7ba57d6197ee5f"], "statement_hash": "919fc2ed828ef481df2d2ef12f31f02840819e4771b909035736fee4fd92b694", "relations": [{"rule": 2, "type": "equivalent", "target": "08145cc12d78266b01ce4e46ab3be92c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919fc2ed828ef481df2d2ef12f31f02840819e4771b909035736fee4fd92b694"}}, {"rule": 2, "type": "equivalent", "target": "96bbb5b62b5ff6920136e625b9c362c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919fc2ed828ef481df2d2ef12f31f02840819e4771b909035736fee4fd92b694"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "96bbb5b62b5ff6920136e625b9c362c6", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复用 ALTER TABLE ... ALTER CONSTRAINT 更改外键约束可延迟性属性时触发器函数属性的错误更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919fc2ed828ef481df2d2ef12f31f02840819e4771b909035736fee4fd92b694"}, "url": "/docs/compare/?release=9.5.6#9.5.6-c73a3cdcef1c3cfe", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "08145cc12d78266b01ce4e46ab3be92c", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复用 ALTER TABLE ... ALTER CONSTRAINT 更改外键约束可延迟性属性时触发器函数属性的错误更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "919fc2ed828ef481df2d2ef12f31f02840819e4771b909035736fee4fd92b694"}, "url": "/docs/compare/?release=9.4.11#9.4.11-c73a3cdcef1c3cfe", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-3f696a5cebc0a39b", "cves": [], "html": "<p>如果被引用关系有未决的触发器事件，防止删除外键约束（Tom Lane）</p>\n<p>这避免了 <span>“<span>could not find trigger <em><code>NNN</code></em></span>”</span> 或 <span>“<span>relation <em><code>NNN</code></em> has no triggers</span>”</span> 错误。</p>", "text": "如果被引用关系有未决的触发器事件，防止删除外键约束（Tom Lane） 这避免了 “could not find trigger NNN” 或 “relation NNN has no triggers” 错误。", "title": "如果被引用关系有未决的触发器事件，防止删除外键约束", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "62af529e361e84af609dc920574de8c9c3468869a0f1f7cdb2200b892ef4db58", "section_path": ["变更"], "commit_groups": [["05bef7b08", "4e026b32d", "6a363a4c2", "6cbe84c82", "bf5fe7bfa", "f7166ce24"]], "identity_text": "Prevent dropping a foreign-key constraint if there are pending trigger events for the referenced relation (Tom Lane) This avoids could not find trigger NNN or relation NNN has no triggers errors.", "commit_aliases": ["05bef7b08", "4e026b32d", "6a363a4c2", "6cbe84c82", "bf5fe7bfa", "f7166ce24"], "source_commits": ["bf5fe7bfa"], "source_entry_id": "9.6.2/changes/015", "db_id": "e3e90c45c0b1ffffb3efe7f0453c17a6", "patch_ids": ["6fc8f96ff4ab86c0781b0011df4b74b3"], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5", "relations": [{"rule": 2, "type": "equivalent", "target": "4180f1dc12d821cfb0d34a11cb7eda3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}}, {"rule": 2, "type": "equivalent", "target": "cfaeb4233abb836f8a9b62a8363fd4dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}}, {"rule": 2, "type": "equivalent", "target": "d2463ec969093f0493acb893a8c637e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}}, {"rule": 2, "type": "equivalent", "target": "d733025ccceb6389f46aedbbb8111ce2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d733025ccceb6389f46aedbbb8111ce2", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "如果被引用关系有未决的触发器事件，防止删除外键约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}, "url": "/docs/compare/?release=9.5.6#9.5.6-3f696a5cebc0a39b", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "4180f1dc12d821cfb0d34a11cb7eda3a", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "如果被引用关系有未决的触发器事件，防止删除外键约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}, "url": "/docs/compare/?release=9.4.11#9.4.11-3f696a5cebc0a39b", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "d2463ec969093f0493acb893a8c637e2", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "如果被引用关系有未决的触发器事件，防止删除外键约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}, "url": "/docs/compare/?release=9.3.16#9.3.16-3f696a5cebc0a39b", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "cfaeb4233abb836f8a9b62a8363fd4dd", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "如果被引用关系有未决的触发器事件，防止删除外键约束", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"}, "url": "/docs/compare/?release=9.2.20#9.2.20-3f696a5cebc0a39b", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-b7a1111efd7521b8", "cves": [], "html": "<p>修复子表列顺序与父表不同时的 <code>ALTER TABLE ... SET DATA TYPE ... USING</code>（Álvaro Herrera）</p>\n<p>未能调整 <code>USING</code> 表达式中的列编号导致错误，典型的是 <span>“<span>attribute <em><code>N</code></em> has wrong type</span>”</span>。</p>", "text": "修复子表列顺序与父表不同时的 ALTER TABLE ... SET DATA TYPE ... USING（Álvaro Herrera） 未能调整 USING 表达式中的列编号导致错误，典型的是 “attribute N has wrong type”。", "title": "修复子表列顺序与父表不同时的 ALTER TABLE ... SET DATA TYPE ... USING", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "c866685ebb854ca4444a47155f7524f01ce96213e16fc01ad6535e86201c2564", "section_path": ["变更"], "commit_groups": [["3957b58b8", "4d4ab6ccd", "4e563a1f6"]], "identity_text": "Fix ALTER TABLE ... SET DATA TYPE ... USING when child table has different column ordering than the parent (Álvaro Herrera) Failure to adjust the column numbering in the USING expression led to errors, typically attribute N has wrong type.", "commit_aliases": ["3957b58b8", "4d4ab6ccd", "4e563a1f6"], "source_commits": ["4e563a1f6"], "source_entry_id": "9.6.2/changes/016", "db_id": "d3252897c0844d42a3230bec3dae7294", "patch_ids": ["6dd3a604b8f0c8435f0b8ebc5979570a"], "statement_hash": "7124373f373a20f12e4106aa5cee9bea9dc37effb2b71bd4de58181a8f6df07c", "relations": [{"rule": 2, "type": "equivalent", "target": "f53ee780a2ce6fe941a20416a219a392", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7124373f373a20f12e4106aa5cee9bea9dc37effb2b71bd4de58181a8f6df07c"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f53ee780a2ce6fe941a20416a219a392", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复子表列顺序与父表不同时的 ALTER TABLE ... SET DATA TYPE ... USING", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7124373f373a20f12e4106aa5cee9bea9dc37effb2b71bd4de58181a8f6df07c"}, "url": "/docs/compare/?release=9.5.6#9.5.6-b7a1111efd7521b8", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-d9386a2270ac8ee4", "cves": [], "html": "<p>修复带 OID 的表通过 <code>ALTER TABLE ... INHERIT</code> 关联到带 OID 的父表时 OID 列的处理（Amit Langote）</p>\n<p>这种情况下 OID 列应当与普通用户列同等对待，但没有，导致之后继承更改中的奇怪行为。</p>", "text": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理（Amit Langote） 这种情况下 OID 列应当与普通用户列同等对待，但没有，导致之后继承更改中的奇怪行为。", "title": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "901572463c16684aaa4e1d405ec846cae1754b08caa3ddfd0b25b377c3ca3b8e", "section_path": ["变更"], "commit_groups": [["50c8196f9", "5f89a9885", "696d40d30", "6c4cf2be8", "d86f40009", "f64554b99"]], "identity_text": "Fix processing of OID column when a table with OIDs is associated to a parent with OIDs via ALTER TABLE ... INHERIT (Amit Langote) The OID column should be treated the same as regular user columns in this case, but it wasn't, leading to odd behavior in later inheritance changes.", "commit_aliases": ["50c8196f9", "5f89a9885", "696d40d30", "6c4cf2be8", "d86f40009", "f64554b99"], "source_commits": ["f64554b99"], "source_entry_id": "9.6.2/changes/017", "db_id": "b201bab401077b935165ebdbe790f99a", "patch_ids": ["a8e33555b594c5211ad0d1b21be3fea2"], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03", "relations": [{"rule": 2, "type": "equivalent", "target": "1b04a4ada89a2013f7e6daf82f89be94", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}}, {"rule": 2, "type": "equivalent", "target": "7187dd1d1fef7844008f543688191aab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}}, {"rule": 2, "type": "equivalent", "target": "bddd782ba9be3b76ffb0d6bee3de9080", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}}, {"rule": 2, "type": "equivalent", "target": "ce5ca50cbec28a07219808056bb5a5cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1b04a4ada89a2013f7e6daf82f89be94", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}, "url": "/docs/compare/?release=9.5.6#9.5.6-d9386a2270ac8ee4", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "bddd782ba9be3b76ffb0d6bee3de9080", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}, "url": "/docs/compare/?release=9.4.11#9.4.11-d9386a2270ac8ee4", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "7187dd1d1fef7844008f543688191aab", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}, "url": "/docs/compare/?release=9.3.16#9.3.16-d9386a2270ac8ee4", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "ce5ca50cbec28a07219808056bb5a5cd", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"}, "url": "/docs/compare/?release=9.2.20#9.2.20-d9386a2270ac8ee4", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-79e4732db75f1cb2", "cves": [], "html": "<p>确保 <code>CREATE TABLE ... LIKE ... WITH OIDS</code> 创建带 OID 的表，无论 <code>LIKE</code> 引用的表是否带 OID（Tom Lane）</p>", "text": "确保 CREATE TABLE ... LIKE ... WITH OIDS 创建带 OID 的表，无论 LIKE 引用的表是否带 OID（Tom Lane）", "title": "确保 CREATE TABLE ... LIKE ... WITH OIDS 创建带 OID 的表，无论 LIKE 引用的表是否带 OID", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "2ce60fb15bf026d261a854c0c2562dec3cd600fdc046bf94e04ccdaeb0d114a9", "section_path": ["变更"], "commit_groups": [["1ead0208b", "68330c8b4"]], "identity_text": "Ensure that CREATE TABLE ... LIKE ... WITH OIDS creates a table with OIDs, whether or not the LIKE-referenced table(s) have OIDs (Tom Lane)", "commit_aliases": ["1ead0208b", "68330c8b4"], "source_commits": ["68330c8b4"], "source_entry_id": "9.6.2/changes/018", "db_id": "e7f05cfe4c9453693729849a6833d40c", "patch_ids": ["5083f7dfa6737fca3228d70bee7e3d45"], "statement_hash": "a2015f80879c1228d61f705ebc276263d06a11a4aa1a1ec10f44a2f78cb33fa7", "relations": [], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-03eec8e3dccf4637", "cves": [], "html": "<p>修复 <code>CREATE OR REPLACE VIEW</code> 在尝试应用新视图选项之前先更新视图查询（Dean Rasheed）</p>\n<p>此前如果新选项与旧视图定义不一致，命令就会失败。</p>", "text": "修复 CREATE OR REPLACE VIEW 在尝试应用新视图选项之前先更新视图查询（Dean Rasheed） 此前如果新选项与旧视图定义不一致，命令就会失败。", "title": "修复 CREATE OR REPLACE VIEW 在尝试应用新视图选项之前先更新视图查询", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "1e1540bdea6ce22861390a0b485f6de7080a0499a528f8440a1e053fb9e26546", "section_path": ["变更"], "commit_groups": [["58b136264", "78a98b767", "a46ee6b30", "cad24980e"]], "identity_text": "Fix CREATE OR REPLACE VIEW to update the view query before attempting to apply the new view options (Dean Rasheed) Previously the command would fail if the new options were inconsistent with the old view definition.", "commit_aliases": ["58b136264", "78a98b767", "a46ee6b30", "cad24980e"], "source_commits": ["a46ee6b30"], "source_entry_id": "9.6.2/changes/019", "db_id": "c94a440be136f418f40ab1fa05f43f21", "patch_ids": ["0dfb26bca4a2cc1093fd292a2d8c62ef"], "statement_hash": "be5fedbd66b9675ee44acb296dd5dc06694c076ea48502729a510d4498e29faa", "relations": [{"rule": 2, "type": "equivalent", "target": "6e5358beed14dd0b4182dc414c644ebb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be5fedbd66b9675ee44acb296dd5dc06694c076ea48502729a510d4498e29faa"}}, {"rule": 2, "type": "equivalent", "target": "918e658cf74aa81f91fbb6f8e8352102", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be5fedbd66b9675ee44acb296dd5dc06694c076ea48502729a510d4498e29faa"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6e5358beed14dd0b4182dc414c644ebb", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 CREATE OR REPLACE VIEW 在尝试应用新视图选项之前先更新视图查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be5fedbd66b9675ee44acb296dd5dc06694c076ea48502729a510d4498e29faa"}, "url": "/docs/compare/?release=9.5.6#9.5.6-03eec8e3dccf4637", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "918e658cf74aa81f91fbb6f8e8352102", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 CREATE OR REPLACE VIEW 在尝试应用新视图选项之前先更新视图查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be5fedbd66b9675ee44acb296dd5dc06694c076ea48502729a510d4498e29faa"}, "url": "/docs/compare/?release=9.4.11#9.4.11-03eec8e3dccf4637", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-19513a40f9d99c2d", "cves": [], "html": "<p>修复 <code>ALTER TEXT SEARCH CONFIGURATION</code> 期间报告正确的对象身份（Artur Zakirov）</p>\n<p>向逻辑解码等扩展报告了错误的目录 OID。</p>", "text": "修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份（Artur Zakirov） 向逻辑解码等扩展报告了错误的目录 OID。", "title": "修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "ecc59f91d433bc1e1e65cec2681d06fc08399938411fe5c4e3b13d9656156c92", "section_path": ["变更"], "commit_groups": [["0e3aadb68", "12bd7dd31", "ac1ec9c1f", "e82369217", "f0f2e56ac"]], "identity_text": "Report correct object identity during ALTER TEXT SEARCH CONFIGURATION (Artur Zakirov) The wrong catalog OID was reported to extensions such as logical decoding.", "commit_aliases": ["0e3aadb68", "12bd7dd31", "ac1ec9c1f", "e82369217", "f0f2e56ac"], "source_commits": ["f0f2e56ac"], "source_entry_id": "9.6.2/changes/020", "db_id": "4aeb0eea4216b573306205c5f3d3ab4f", "patch_ids": ["0d1ab813f5039f833bc01539f4b52068"], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7", "relations": [{"rule": 2, "type": "equivalent", "target": "2b00c62f4a76d67225f66fa518f613a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}}, {"rule": 2, "type": "equivalent", "target": "924df19334a53f88b93a62caf853b933", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}}, {"rule": 2, "type": "equivalent", "target": "f2592ddd51722adbe66146a511088ace", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f2592ddd51722adbe66146a511088ace", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}, "url": "/docs/compare/?release=9.5.6#9.5.6-19513a40f9d99c2d", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "924df19334a53f88b93a62caf853b933", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}, "url": "/docs/compare/?release=9.4.11#9.4.11-19513a40f9d99c2d", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "2b00c62f4a76d67225f66fa518f613a0", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "692f4dc7e1010ae34e85aa333b79c95a936cab6f94357e5cc72f95ad44258bd7"}, "url": "/docs/compare/?release=9.3.16#9.3.16-19513a40f9d99c2d", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}]}, {"id": "9.6.2-0e450e4eff705658", "cves": [], "html": "<p>修复提交时间戳机制在被询问特殊 XID <code>FrozenTransactionId</code> 和 <code>BootstrapTransactionId</code> 时不失败（Craig Ringer）</p>", "text": "修复提交时间戳机制在被询问特殊 XID FrozenTransactionId 和 BootstrapTransactionId 时不失败（Craig Ringer）", "title": "修复提交时间戳机制在被询问特殊 XID FrozenTransactionId 和 BootstrapTransactionId 时不失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "bd69ab44614b0d947391e0b6cedbcdaa059f0e4068c9f4eb101cfb21729519fa", "section_path": ["变更"], "commit_groups": [["4aaddf2f0", "7816d1356", "9b6634290"]], "identity_text": "Fix commit timestamp mechanism to not fail when queried about the special XIDs FrozenTransactionId and BootstrapTransactionId (Craig Ringer)", "commit_aliases": ["4aaddf2f0", "7816d1356", "9b6634290"], "source_commits": ["9b6634290"], "source_entry_id": "9.6.2/changes/021", "db_id": "03091fc82858246c83d45510d4a0f543", "patch_ids": ["eccab9bc4966fa3303eecae22a721168"], "statement_hash": "e8035ea9d93cc7df08b41f633001af7c7cf377cd3e9f144cdc8510fec4bface4", "relations": [{"rule": 2, "type": "equivalent", "target": "e08dd2deb2e5dd33519a2dfe36ced61e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8035ea9d93cc7df08b41f633001af7c7cf377cd3e9f144cdc8510fec4bface4"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e08dd2deb2e5dd33519a2dfe36ced61e", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复提交时间戳机制在被询问特殊 XID FrozenTransactionId 和 BootstrapTransactionId 时不失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e8035ea9d93cc7df08b41f633001af7c7cf377cd3e9f144cdc8510fec4bface4"}, "url": "/docs/compare/?release=9.5.6#9.5.6-0e450e4eff705658", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-a39909c0528b35cf", "cves": [], "html": "<p>修复视图重选项被错误地当作普通表重选项使用的问题（Tom Lane）</p>\n<p>症状是当 <code>INSERT ... ON CONFLICT</code> 的目标是带级联选项的视图时，出现虚假的 <span>“<span>ON CONFLICT is not supported on table ... used as a catalog table</span>”</span> 错误。</p>", "text": "修复视图重选项被错误地当作普通表重选项使用的问题（Tom Lane） 症状是当 INSERT ... ON CONFLICT 的目标是带级联选项的视图时，出现虚假的 “ON CONFLICT is not supported on table ... used as a catalog table” 错误。", "title": "修复视图重选项被错误地当作普通表重选项使用的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "f31c754d96f905db879312663c20f1faf852f7b631e182339b38112b18d58b10", "section_path": ["变更"], "commit_groups": [["05a6e8728", "530f80652", "6e00ba1e1"], ["5ee3a7453", "e2f5cd9cf", "e3e66d8a9"]], "identity_text": "Fix incorrect use of view reloptions as regular table reloptions (Tom Lane) The symptom was spurious ON CONFLICT is not supported on table ... used as a catalog table errors when the target of INSERT ... ON CONFLICT is a view with cascade option.", "commit_aliases": ["05a6e8728", "530f80652", "5ee3a7453", "6e00ba1e1", "e2f5cd9cf", "e3e66d8a9"], "source_commits": ["05a6e8728", "5ee3a7453"], "source_entry_id": "9.6.2/changes/022", "db_id": "960f222e49b420add23c68d26e007a76", "patch_ids": ["63a29e6cca2da66f7ceeff94ecd10fbb", "f9f21d0d5ccd6c19586ec9bd5c9e0cd4"], "statement_hash": "f7e042a730242f0586aa4f953f1c456b555e5aba1578c50769471028c7baecc6", "relations": [{"rule": 2, "type": "equivalent", "target": "ecdaef209caef3b08cb12df3fc96f7ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7e042a730242f0586aa4f953f1c456b555e5aba1578c50769471028c7baecc6"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ecdaef209caef3b08cb12df3fc96f7ad", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复视图重选项被错误地当作普通表重选项使用的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7e042a730242f0586aa4f953f1c456b555e5aba1578c50769471028c7baecc6"}, "url": "/docs/compare/?release=9.5.6#9.5.6-a39909c0528b35cf", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-866afc6013314e28", "cves": [], "html": "<p>修复对宽表使用 <code>ON CONFLICT</code> 时错误的 <span>“<span>target lists can have at most <em><code>N</code></em> entries</span>”</span> 报怨（Tom Lane）</p>", "text": "修复对宽表使用 ON CONFLICT 时错误的 “target lists can have at most N entries” 报怨（Tom Lane）", "title": "修复对宽表使用 ON CONFLICT 时错误的 “target lists can have at most N entries” 报怨", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "202e47bcc45f723345b72783d3e2dc98e3458a4fde7f2f46de6bdfe4d1d1a9c4", "section_path": ["变更"], "commit_groups": [["25c06a1ed", "385072320", "da05d0ebc"]], "identity_text": "Fix incorrect target lists can have at most N entries complaint when using ON CONFLICT with wide tables (Tom Lane)", "commit_aliases": ["25c06a1ed", "385072320", "da05d0ebc"], "source_commits": ["da05d0ebc"], "source_entry_id": "9.6.2/changes/023", "db_id": "d1f83b41d977c9fd302ceb7a6f2818c5", "patch_ids": ["e4e85e3835736312c4ac4d9fdce43b1a"], "statement_hash": "9ffd56bc6b5d5bd6a5be9df33a4d96dbf38b1ce083d2ad5392a1be7478623eeb", "relations": [{"rule": 2, "type": "equivalent", "target": "6d6e8c04cf9e3754f5925124a13013b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ffd56bc6b5d5bd6a5be9df33a4d96dbf38b1ce083d2ad5392a1be7478623eeb"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6d6e8c04cf9e3754f5925124a13013b8", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复对宽表使用 ON CONFLICT 时错误的 “target lists can have at most N entries” 报怨", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ffd56bc6b5d5bd6a5be9df33a4d96dbf38b1ce083d2ad5392a1be7478623eeb"}, "url": "/docs/compare/?release=9.5.6#9.5.6-866afc6013314e28", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-165a45400ec28578", "cves": [], "html": "<p>修复对带已删除列的表执行 <code>INSERT</code> 或 <code>UPDATE</code> 期间虚假的 <span>“<span>query provides a value for a dropped column</span>”</span> 错误（Tom Lane）</p>", "text": "修复对带已删除列的表执行 INSERT 或 UPDATE 期间虚假的 “query provides a value for a dropped column” 错误（Tom Lane）", "title": "修复对带已删除列的表执行 INSERT 或 UPDATE 期间虚假的 “query provides a value for a dropped column” 错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "9c51fade2f3b27d02e0357241e81c04ef7fe9ff4ac448dab0541914e3556cd75", "section_path": ["变更"], "commit_groups": [["da8f3ebf3", "f4d865f22"]], "identity_text": "Fix spurious query provides a value for a dropped column errors during INSERT or UPDATE on a table with a dropped column (Tom Lane)", "commit_aliases": ["da8f3ebf3", "f4d865f22"], "source_commits": ["f4d865f22"], "source_entry_id": "9.6.2/changes/024", "db_id": "78ff93b0f8821927c53b13d23d9b81a3", "patch_ids": ["e2f5c16bb75d1be1069c673f725e2a5c"], "statement_hash": "df78c8849b31b0519405b49fbd3006812ccca17dd48d20dc4ce0f4296cf3b6e6", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-5a32be0979144f98", "cves": [], "html": "<p>防止 <code>UPDATE</code> 源表达式中 <em><code>foo</code></em><code>.*</code> 的多列展开（Tom Lane）</p>\n<p>这导致 <span>“<span>UPDATE target count mismatch --- internal error</span>”</span>。现在该语法被理解为整行变量，与其他上下文中一样。</p>", "text": "防止 UPDATE 源表达式中 foo.* 的多列展开（Tom Lane） 这导致 “UPDATE target count mismatch --- internal error”。现在该语法被理解为整行变量，与其他上下文中一样。", "title": "防止 UPDATE 源表达式中 foo.* 的多列展开", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "71beb62393f4c9f8df365927987da25d61320c22666e4cba704fa6f72374e0d8", "section_path": ["变更"], "commit_groups": [["44c8b4fcd", "71db302ec", "90f8b4be5", "aeb5e8242", "c5f365f3a"]], "identity_text": "Prevent multicolumn expansion of foo.* in an UPDATE source expression (Tom Lane) This led to UPDATE target count mismatch --- internal error. Now the syntax is understood as a whole-row variable, as it would be in other contexts.", "commit_aliases": ["44c8b4fcd", "71db302ec", "90f8b4be5", "aeb5e8242", "c5f365f3a"], "source_commits": ["90f8b4be5"], "source_entry_id": "9.6.2/changes/025", "db_id": "e56e6bc6059fb602437ebbe14f154465", "patch_ids": ["5d4ed638d14e09862941bc9b65742bec"], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc", "relations": [{"rule": 2, "type": "equivalent", "target": "0e1af8c5f71f8102604aa64825a37032", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}}, {"rule": 2, "type": "equivalent", "target": "dfa06e7e2ff2c24b68c8e9f2afbfda7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}}, {"rule": 2, "type": "equivalent", "target": "ebda0d74d7cabb3a7fcac47d0f664d6c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e1af8c5f71f8102604aa64825a37032", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "防止 UPDATE 源表达式中 foo.* 的多列展开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}, "url": "/docs/compare/?release=9.5.6#9.5.6-5a32be0979144f98", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "dfa06e7e2ff2c24b68c8e9f2afbfda7f", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "防止 UPDATE 源表达式中 foo.* 的多列展开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}, "url": "/docs/compare/?release=9.4.11#9.4.11-5a32be0979144f98", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "ebda0d74d7cabb3a7fcac47d0f664d6c", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "防止 UPDATE 源表达式中 foo.* 的多列展开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc89b82ddcf87448a357e8516ce3da9e20e7356c70c5be2b53dff2d2cda181bc"}, "url": "/docs/compare/?release=9.3.16#9.3.16-5a32be0979144f98", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}]}, {"id": "9.6.2-1a59df5e0457650c", "cves": [], "html": "<p>确保多行 <code>VALUES</code> 构造的列 typmod 被准确确定（Tom Lane）</p>\n<p>这修复了列的第一个值有可确定的 typmod（如 <code>varchar</code> 值的长度）但后面的值不共享同一限制时发生的问题。</p>", "text": "确保多行 VALUES 构造的列 typmod 被准确确定（Tom Lane） 这修复了列的第一个值有可确定的 typmod（如 varchar 值的长度）但后面的值不共享同一限制时发生的问题。", "title": "确保多行 VALUES 构造的列 typmod 被准确确定", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "bdcf4420c3e3e2ae6915154a8c6eb35efbf0d2a1d7d7bea67c2674956e64ee6d", "section_path": ["变更"], "commit_groups": [["082d1fb9e", "0b78106cd", "2afe282a3", "6a493adda", "c7a62135a", "cf22c8cb8"]], "identity_text": "Ensure that column typmods are determined accurately for multi-row VALUES constructs (Tom Lane) This fixes problems occurring when the first value in a column has a determinable typmod (e.g., length for a varchar value) but later values don't share the same limit.", "commit_aliases": ["082d1fb9e", "0b78106cd", "2afe282a3", "6a493adda", "c7a62135a", "cf22c8cb8"], "source_commits": ["cf22c8cb8"], "source_entry_id": "9.6.2/changes/026", "db_id": "be57f1e4a79a11465f1a7d407d68c2df", "patch_ids": ["0ba774c44bf3b8ee9c0d4e9bd296d72d"], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d", "relations": [{"rule": 2, "type": "equivalent", "target": "005b71ae9dbe2bb708300e53c6fe3b79", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}}, {"rule": 2, "type": "equivalent", "target": "07d63ba33c77c1124b368f5d69c3ae8e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}}, {"rule": 2, "type": "equivalent", "target": "2aeff17dc6647c2d1a2ad0dd3f2c66c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}}, {"rule": 2, "type": "equivalent", "target": "b88d2f5af913237effe99220b3d82494", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "07d63ba33c77c1124b368f5d69c3ae8e", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保多行 VALUES 构造的列 typmod 被准确确定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}, "url": "/docs/compare/?release=9.5.6#9.5.6-1a59df5e0457650c", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "b88d2f5af913237effe99220b3d82494", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保多行 VALUES 构造的列 typmod 被准确确定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}, "url": "/docs/compare/?release=9.4.11#9.4.11-1a59df5e0457650c", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "005b71ae9dbe2bb708300e53c6fe3b79", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保多行 VALUES 构造的列 typmod 被准确确定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}, "url": "/docs/compare/?release=9.3.16#9.3.16-1a59df5e0457650c", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "2aeff17dc6647c2d1a2ad0dd3f2c66c5", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "确保多行 VALUES 构造的列 typmod 被准确确定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"}, "url": "/docs/compare/?release=9.2.20#9.2.20-1a59df5e0457650c", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-3d086ae0cc351d15", "cves": [], "html": "<p>对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误（Tom Lane）</p>\n<p>通常 Unicode 代理项前导字符后面必须跟 Unicode 代理项后随字符，但当前导字符是 Unicode 字符串字面量（<code>U&amp;'...'</code>）或 Unicode 标识符（<code>U&amp;\"...\"</code>）的最后一个字符时漏掉了这一检查。</p>", "text": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误（Tom Lane） 通常 Unicode 代理项前导字符后面必须跟 Unicode 代理项后随字符，但当前导字符是 Unicode 字符串字面量（U&'...'）或 Unicode 标识符（U&\"...\"）的最后一个字符时漏掉了这一检查。", "title": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "03c708ebe8babea5d9dc58ae2ecc6c2b39bc28bdd66470b58d5caf1ffa19d378", "section_path": ["变更"], "commit_groups": [["6e2c21ec5", "88e1e91da", "a57695d9a", "a8ae12322", "d0f60e4cc", "d5633af7b"]], "identity_text": "Throw error for an unfinished Unicode surrogate pair at the end of a Unicode string (Tom Lane) Normally, a Unicode surrogate leading character must be followed by a Unicode surrogate trailing character, but the check for this was missed if the leading character was the last character in a Unicode string literal (U&'...') or Unicode identifier (U&\"...\").", "commit_aliases": ["6e2c21ec5", "88e1e91da", "a57695d9a", "a8ae12322", "d0f60e4cc", "d5633af7b"], "source_commits": ["88e1e91da"], "source_entry_id": "9.6.2/changes/027", "db_id": "a93421ec62e45ab76ef7ca68cc99ccdc", "patch_ids": ["dd270ae93d2dc126ea9a645ea7a54380"], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81", "relations": [{"rule": 2, "type": "equivalent", "target": "0608db3962143d173e4e8107a654548b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}}, {"rule": 2, "type": "equivalent", "target": "3d48dead07b652756096d4f0d993e12c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}}, {"rule": 2, "type": "equivalent", "target": "475b9ac6145d6cf05b60d1454777cb98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}}, {"rule": 2, "type": "equivalent", "target": "d0789e2d0f8c7d3c2f58a565ec63d22f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "475b9ac6145d6cf05b60d1454777cb98", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}, "url": "/docs/compare/?release=9.5.6#9.5.6-3d086ae0cc351d15", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "d0789e2d0f8c7d3c2f58a565ec63d22f", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}, "url": "/docs/compare/?release=9.4.11#9.4.11-3d086ae0cc351d15", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "0608db3962143d173e4e8107a654548b", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}, "url": "/docs/compare/?release=9.3.16#9.3.16-3d086ae0cc351d15", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "3d48dead07b652756096d4f0d993e12c", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"}, "url": "/docs/compare/?release=9.2.20#9.2.20-3d086ae0cc351d15", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-51cb97616e0f9ced", "cves": [], "html": "<p>修复多个 <code>DISTINCT</code> 和有序聚合能共享同一转换状态时的执行（Heikki Linnakangas）</p>", "text": "修复多个 DISTINCT 和有序聚合能共享同一转换状态时的执行（Heikki Linnakangas）", "title": "修复多个 DISTINCT 和有序聚合能共享同一转换状态时的执行", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "2062dd328107ac49f035f438e6da980e07a16f07746f9cd83a8a0723a6f7e3ce", "section_path": ["变更"], "commit_groups": [["ce92fc4e2", "db80acfc9"]], "identity_text": "Fix execution of DISTINCT and ordered aggregates when multiple such aggregates are able to share the same transition state (Heikki Linnakangas)", "commit_aliases": ["ce92fc4e2", "db80acfc9"], "source_commits": ["ce92fc4e2"], "source_entry_id": "9.6.2/changes/028", "db_id": "45b8165ea4c349b74b4a559461eb5857", "patch_ids": ["d5d3070ff2ca3887aed7950e5a0d0259"], "statement_hash": "6cbc8974e3cc93914bc214134e3aa41579651ec07bf79bd20ab5c0fc65befac2", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-c630ed39f2438248", "cves": [], "html": "<p>修复 <code>tsquery</code> 中短语搜索操作符的实现（Tom Lane）</p>\n<p>移除试图转换掉 PHRASE 操作符下方的 AND/OR/NOT 操作符的错误且应用不一致的改写规则；改为升级执行引擎以正确处理这种情况。这修复了包含这种组合的文本搜索查询的各种奇怪行为和可能的崩溃。还修复了嵌套 PHRASE 操作符在简单左深树之外的组合中正常工作，更正了从短语搜索子句移除停用词时的行为，并确保索引搜索与这类查询的简单顺序扫描应用一致。</p>", "text": "修复 tsquery 中短语搜索操作符的实现（Tom Lane） 移除试图转换掉 PHRASE 操作符下方的 AND/OR/NOT 操作符的错误且应用不一致的改写规则；改为升级执行引擎以正确处理这种情况。这修复了包含这种组合的文本搜索查询的各种奇怪行为和可能的崩溃。还修复了嵌套 PHRASE 操作符在简单左深树之外的组合中正常工作，更正了从短语搜索子句移除停用词时的行为，并确保索引搜索与这类查询的简单顺序扫描应用一致。", "title": "修复 tsquery 中短语搜索操作符的实现", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "84ed32734eaca0bf7c0cd7235149e947937aa625add8d30ac19cb5462285442a", "section_path": ["变更"], "commit_groups": [["260443847", "3f07eff10"], ["4e2477b7b", "89fcea1ac"]], "identity_text": "Fix implementation of phrase search operators in tsquery (Tom Lane) Remove incorrect, and inconsistently-applied, rewrite rules that tried to transform away AND/OR/NOT operators appearing below a PHRASE operator; instead upgrade the execution engine to handle such cases correctly. This fixes assorted strange behavior and possible crashes for text search queries containing such combinations. Also fix nested PHRASE operators to work sanely in combinations other than simple left-deep trees, correct the behavior when removing stopwords from a phrase search clause, and make sure that index searches behave consistently with simple sequential-scan application of such queries.", "commit_aliases": ["260443847", "3f07eff10", "4e2477b7b", "89fcea1ac"], "source_commits": ["3f07eff10", "4e2477b7b"], "source_entry_id": "9.6.2/changes/029", "db_id": "ee1785349b68fa148320c122872fad09", "patch_ids": ["e813255f5ee4cd0e734843fa3461cd8f", "eb8e61b60e0bc3e5c3da7af4c6416764"], "statement_hash": "c019b53b49cda40c0d651548b0a8a0605534877bb4a20558c8a4637c7ad85b80", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-eff451e7b360abcb", "cves": [], "html": "<p>确保纯否定的文本搜索查询（如 <code>!foo</code>）匹配空的 <code>tsvector</code>（Tom Dunstan）</p>\n<p>GIN 索引搜索能找到这种匹配，但顺序扫描或 GiST 索引搜索不能。</p>", "text": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector（Tom Dunstan） GIN 索引搜索能找到这种匹配，但顺序扫描或 GiST 索引搜索不能。", "title": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "0c083966841ecfdd9ca6ab00d85b1de851f9f71f47f494bcd5bb9228f7b8e212", "section_path": ["变更"], "commit_groups": [["2c1976a6c", "2dfc12647", "2e024f83b", "423ad86f4", "9d4ca0131", "fe6120f9b"]], "identity_text": "Ensure that a purely negative text search query, such as !foo, matches empty tsvectors (Tom Dunstan) Such matches were found by GIN index searches, but not by sequential scans or GiST index searches.", "commit_aliases": ["2c1976a6c", "2dfc12647", "2e024f83b", "423ad86f4", "9d4ca0131", "fe6120f9b"], "source_commits": ["2dfc12647"], "source_entry_id": "9.6.2/changes/030", "db_id": "5d9ac0edd48483c5563e2aef60ce8772", "patch_ids": ["63ff8c6e6d554e4f2154920c35d0b33a"], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963", "relations": [{"rule": 2, "type": "equivalent", "target": "0b7a8b19196658117104bc98cf22fc01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}}, {"rule": 2, "type": "equivalent", "target": "3769e34a099b693920b472acbff9dc60", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}}, {"rule": 2, "type": "equivalent", "target": "aba27986be457da4c9701e00d01bbc3c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}}, {"rule": 2, "type": "equivalent", "target": "fbbd8a5fd39ea048ef38e6f0b26b5dbe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fbbd8a5fd39ea048ef38e6f0b26b5dbe", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}, "url": "/docs/compare/?release=9.5.6#9.5.6-eff451e7b360abcb", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "aba27986be457da4c9701e00d01bbc3c", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}, "url": "/docs/compare/?release=9.4.11#9.4.11-eff451e7b360abcb", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "0b7a8b19196658117104bc98cf22fc01", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}, "url": "/docs/compare/?release=9.3.16#9.3.16-eff451e7b360abcb", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "3769e34a099b693920b472acbff9dc60", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"}, "url": "/docs/compare/?release=9.2.20#9.2.20-eff451e7b360abcb", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-1b733fffaed0caf4", "cves": [], "html": "<p>防止 <code>ts_rewrite()</code> 用空查询替换非顶层子树时崩溃（Artur Zakirov）</p>", "text": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃（Artur Zakirov）", "title": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "34c20dad3d063dddf18ed7e676bd4ed696d2c1c61994d53aee29d03ae29865a0", "section_path": ["变更"], "commit_groups": [["0eaaaf00e", "6f5cb982e", "79e1a9efa", "c6caa5200", "c8bfe055b", "f4ccee408"]], "identity_text": "Prevent crash when ts_rewrite() replaces a non-top-level subtree with an empty query (Artur Zakirov)", "commit_aliases": ["0eaaaf00e", "6f5cb982e", "79e1a9efa", "c6caa5200", "c8bfe055b", "f4ccee408"], "source_commits": ["c8bfe055b"], "source_entry_id": "9.6.2/changes/031", "db_id": "1ad120bd822b42e5ce4decf1901d8154", "patch_ids": ["524e3352ba661bb86107fac788efd7ca"], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006", "relations": [{"rule": 2, "type": "equivalent", "target": "2df43244e2125ac7b6bf7ca7cebeceee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}}, {"rule": 2, "type": "equivalent", "target": "3e2d55ea9ee221b83b420165e030a10a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}}, {"rule": 2, "type": "equivalent", "target": "a636489603d1cbf480e8bbd749c75c94", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}}, {"rule": 2, "type": "equivalent", "target": "d6c330345c9debe55108886fee1afad3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a636489603d1cbf480e8bbd749c75c94", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}, "url": "/docs/compare/?release=9.5.6#9.5.6-1b733fffaed0caf4", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "2df43244e2125ac7b6bf7ca7cebeceee", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}, "url": "/docs/compare/?release=9.4.11#9.4.11-1b733fffaed0caf4", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "d6c330345c9debe55108886fee1afad3", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}, "url": "/docs/compare/?release=9.3.16#9.3.16-1b733fffaed0caf4", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "3e2d55ea9ee221b83b420165e030a10a", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "防止 ts_rewrite() 用空查询替换非顶层子树时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"}, "url": "/docs/compare/?release=9.2.20#9.2.20-1b733fffaed0caf4", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-46a730393b762f11", "cves": [], "html": "<p>修复 <code>ts_rewrite()</code> 的性能问题（Tom Lane）</p>", "text": "修复 ts_rewrite() 的性能问题（Tom Lane）", "title": "修复 ts_rewrite() 的性能问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "f75795e87f6534166f9073aafd13486695ce065dcef85385265c4fa4091846cb", "section_path": ["变更"], "commit_groups": [["407d513df", "464326e83", "514797a52", "5ec81acee", "606e16a7f", "e0491c19d"]], "identity_text": "Fix performance problems in ts_rewrite() (Tom Lane)", "commit_aliases": ["407d513df", "464326e83", "514797a52", "5ec81acee", "606e16a7f", "e0491c19d"], "source_commits": ["464326e83"], "source_entry_id": "9.6.2/changes/032", "db_id": "b48a6e714c9918aceca947ccd0094617", "patch_ids": ["8f0fad08214605711bc092113758a508"], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1", "relations": [{"rule": 2, "type": "equivalent", "target": "1f5824f69393d547f3375c08032a9e07", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}}, {"rule": 2, "type": "equivalent", "target": "6c3e04dad251af4d71379579d3d357e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}}, {"rule": 2, "type": "equivalent", "target": "7c9d5ec604ecf94f33a79a9602c27a17", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}}, {"rule": 2, "type": "equivalent", "target": "aedb568933d91d1c73c63db3629de155", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6c3e04dad251af4d71379579d3d357e8", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 ts_rewrite() 的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}, "url": "/docs/compare/?release=9.5.6#9.5.6-46a730393b762f11", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "aedb568933d91d1c73c63db3629de155", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 ts_rewrite() 的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}, "url": "/docs/compare/?release=9.4.11#9.4.11-46a730393b762f11", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "7c9d5ec604ecf94f33a79a9602c27a17", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 ts_rewrite() 的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}, "url": "/docs/compare/?release=9.3.16#9.3.16-46a730393b762f11", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "1f5824f69393d547f3375c08032a9e07", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 ts_rewrite() 的性能问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"}, "url": "/docs/compare/?release=9.2.20#9.2.20-46a730393b762f11", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-96f8b0ba7bf5c9fa", "cves": [], "html": "<p>修复 <code>ts_rewrite()</code> 对嵌套 NOT 操作符的处理（Tom Lane）</p>", "text": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理（Tom Lane）", "title": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "31de3ce57578639b5c433e61e3eac72ed75b3a4b049ae077bad708cc3c455097", "section_path": ["变更"], "commit_groups": [["24ebc444c", "2a2b439cc", "77a22f898", "b0f8a273e", "de7387604", "f0c2ce45e"]], "identity_text": "Fix ts_rewrite()'s handling of nested NOT operators (Tom Lane)", "commit_aliases": ["24ebc444c", "2a2b439cc", "77a22f898", "b0f8a273e", "de7387604", "f0c2ce45e"], "source_commits": ["2a2b439cc"], "source_entry_id": "9.6.2/changes/033", "db_id": "1955174329b5ccdb9c211201d0b4c59d", "patch_ids": ["86c02ecaacb2a946070693a674a8ca14"], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0", "relations": [{"rule": 2, "type": "equivalent", "target": "103c4627f3d335c63cfaf9772d07be58", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}}, {"rule": 2, "type": "equivalent", "target": "7dcfada5b7da833763dbaaac496f5553", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}}, {"rule": 2, "type": "equivalent", "target": "d159053347d63c8729260287facb7141", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}}, {"rule": 2, "type": "equivalent", "target": "dedf4985fd71589c29886993b02e9ad5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7dcfada5b7da833763dbaaac496f5553", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}, "url": "/docs/compare/?release=9.5.6#9.5.6-96f8b0ba7bf5c9fa", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "d159053347d63c8729260287facb7141", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}, "url": "/docs/compare/?release=9.4.11#9.4.11-96f8b0ba7bf5c9fa", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "dedf4985fd71589c29886993b02e9ad5", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}, "url": "/docs/compare/?release=9.3.16#9.3.16-96f8b0ba7bf5c9fa", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "103c4627f3d335c63cfaf9772d07be58", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 ts_rewrite() 对嵌套 NOT 操作符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"}, "url": "/docs/compare/?release=9.2.20#9.2.20-96f8b0ba7bf5c9fa", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-c98052999c7e6f27", "cves": [], "html": "<p>提高使用 <code>array_append()</code> 作为转换函数的用户定义聚合的速度（Tom Lane）</p>", "text": "提高使用 array_append() 作为转换函数的用户定义聚合的速度（Tom Lane）", "title": "提高使用 array_append() 作为转换函数的用户定义聚合的速度", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "4391b41bbd8cbd224f33b21080d39dc906040b5b9e6576db97b6c60519782124", "section_path": ["变更"], "commit_groups": [["48a6592da", "7151e72d7", "9a00f03e4"]], "identity_text": "Improve speed of user-defined aggregates that use array_append() as transition function (Tom Lane)", "commit_aliases": ["48a6592da", "7151e72d7", "9a00f03e4"], "source_commits": ["48a6592da"], "source_entry_id": "9.6.2/changes/034", "db_id": "aca3d20838bd2ee17ded08493f496ffc", "patch_ids": ["a6fbf600f4ec0342f6062c94db275d56"], "statement_hash": "f3071a7ed53bb8c0b0db18a377e8184a1853dba1bd11d39e180b45a9c39a5945", "relations": [{"rule": 2, "type": "equivalent", "target": "8373d8c2ce77a44a4161a6e6852abfda", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f3071a7ed53bb8c0b0db18a377e8184a1853dba1bd11d39e180b45a9c39a5945"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8373d8c2ce77a44a4161a6e6852abfda", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "提高使用 array_append() 作为转换函数的用户定义聚合的速度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f3071a7ed53bb8c0b0db18a377e8184a1853dba1bd11d39e180b45a9c39a5945"}, "url": "/docs/compare/?release=9.5.6#9.5.6-c98052999c7e6f27", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-11a92e5c26f1b0f5", "cves": [], "html": "<p>修复 <code>array_fill()</code> 正确处理空数组（Tom Lane）</p>", "text": "修复 array_fill() 正确处理空数组（Tom Lane）", "title": "修复 array_fill() 正确处理空数组", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "e97b10cb2df9c00087435ff439e93424727705e5b525ab3e5de9b8807d3685e2", "section_path": ["变更"], "commit_groups": [["4555a375a", "4e446563b", "5b4f8f4c6", "82f8107b9", "e0d59c6ef", "ee9cb284a"]], "identity_text": "Fix array_fill() to handle empty arrays properly (Tom Lane)", "commit_aliases": ["4555a375a", "4e446563b", "5b4f8f4c6", "82f8107b9", "e0d59c6ef", "ee9cb284a"], "source_commits": ["5b4f8f4c6"], "source_entry_id": "9.6.2/changes/035", "db_id": "8b998e09fa39e92645bf76cf7654e7cd", "patch_ids": ["00cecf29722051a263b03c453566b095"], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac", "relations": [{"rule": 2, "type": "equivalent", "target": "3bc26bda247376a0b791a32215b0d4e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}}, {"rule": 2, "type": "equivalent", "target": "86f4f8f81874a3056f1fa1b714aadf62", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}}, {"rule": 2, "type": "equivalent", "target": "b42a04eefcfe8f30ea47c10da25f4d61", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}}, {"rule": 2, "type": "equivalent", "target": "df786aaf54cc17fb935820452a2c7724", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b42a04eefcfe8f30ea47c10da25f4d61", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 array_fill() 正确处理空数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}, "url": "/docs/compare/?release=9.5.6#9.5.6-11a92e5c26f1b0f5", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "86f4f8f81874a3056f1fa1b714aadf62", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 array_fill() 正确处理空数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}, "url": "/docs/compare/?release=9.4.11#9.4.11-11a92e5c26f1b0f5", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "3bc26bda247376a0b791a32215b0d4e3", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 array_fill() 正确处理空数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}, "url": "/docs/compare/?release=9.3.16#9.3.16-11a92e5c26f1b0f5", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "df786aaf54cc17fb935820452a2c7724", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 array_fill() 正确处理空数组", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"}, "url": "/docs/compare/?release=9.2.20#9.2.20-11a92e5c26f1b0f5", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-88d0b1daae848817", "cves": [], "html": "<p>修复 <code>array_position()</code> 或 <code>array_positions()</code> 处理记录数组时可能的崩溃（Junseok Yang）</p>", "text": "修复 array_position() 或 array_positions() 处理记录数组时可能的崩溃（Junseok Yang）", "title": "修复 array_position() 或 array_positions() 处理记录数组时可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "9db7bd9af75dfdce52e9674e4150476cef9cd9f991e00147714a05a31063e65e", "section_path": ["变更"], "commit_groups": [["581b09c72", "79c89f1f4", "a73491e5f"]], "identity_text": "Fix possible crash in array_position() or array_positions() when processing arrays of records (Junseok Yang)", "commit_aliases": ["581b09c72", "79c89f1f4", "a73491e5f"], "source_commits": ["79c89f1f4"], "source_entry_id": "9.6.2/changes/036", "db_id": "4f0d99f12e43e846436439f5ac7492fb", "patch_ids": ["979eeb3c6cd41c3f47ebd5b86d1516a7"], "statement_hash": "a93bd5503cf11571033cd976491a75e63e400939741ffe67e26e62f1c198feef", "relations": [{"rule": 2, "type": "equivalent", "target": "b94a06666d3adc1499873a5c26db431e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a93bd5503cf11571033cd976491a75e63e400939741ffe67e26e62f1c198feef"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b94a06666d3adc1499873a5c26db431e", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 array_position() 或 array_positions() 处理记录数组时可能的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a93bd5503cf11571033cd976491a75e63e400939741ffe67e26e62f1c198feef"}, "url": "/docs/compare/?release=9.5.6#9.5.6-88d0b1daae848817", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-5116023449e8f470", "cves": [], "html": "<p>修复 <code>quote_literal_cstr()</code> 中的一字节缓冲区越界（Heikki Linnakangas）</p>\n<p>只有当输入完全由单引号和/或反斜线组成时才会发生越界。</p>", "text": "修复 quote_literal_cstr() 中的一字节缓冲区越界（Heikki Linnakangas） 只有当输入完全由单引号和/或反斜线组成时才会发生越界。", "title": "修复 quote_literal_cstr() 中的一字节缓冲区越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "6234a71b5e41e313191d03e2c4a513aa919bbd6ae5724bee0990783da9775143", "section_path": ["变更"], "commit_groups": [["0fe5a4cd7", "4f5182e18", "595333ff4", "779325478", "c8f8ed5c2", "e71fe8470"]], "identity_text": "Fix one-byte buffer overrun in quote_literal_cstr() (Heikki Linnakangas) The overrun occurred only if the input consisted entirely of single quotes and/or backslashes.", "commit_aliases": ["0fe5a4cd7", "4f5182e18", "595333ff4", "779325478", "c8f8ed5c2", "e71fe8470"], "source_commits": ["0fe5a4cd7"], "source_entry_id": "9.6.2/changes/037", "db_id": "ca1e35c79adeabc54efc1d6777143db9", "patch_ids": ["984dcf938e401fe44f2a05a7d663125e"], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363", "relations": [{"rule": 2, "type": "equivalent", "target": "10a5bbcfd71d433423afebd1522c42b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}}, {"rule": 2, "type": "equivalent", "target": "1207f1dadef5930c562a950286517ce1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}}, {"rule": 2, "type": "equivalent", "target": "cac299f1d0f8356d356789ac772e0acc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}}, {"rule": 2, "type": "equivalent", "target": "ee3ffeab5f1f036a7d5faeb3a592b9da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "10a5bbcfd71d433423afebd1522c42b9", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 quote_literal_cstr() 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}, "url": "/docs/compare/?release=9.5.6#9.5.6-5116023449e8f470", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "cac299f1d0f8356d356789ac772e0acc", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 quote_literal_cstr() 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}, "url": "/docs/compare/?release=9.4.11#9.4.11-5116023449e8f470", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "1207f1dadef5930c562a950286517ce1", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 quote_literal_cstr() 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}, "url": "/docs/compare/?release=9.3.16#9.3.16-5116023449e8f470", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "ee3ffeab5f1f036a7d5faeb3a592b9da", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 quote_literal_cstr() 中的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"}, "url": "/docs/compare/?release=9.2.20#9.2.20-5116023449e8f470", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-ad45c4e99311a5d6", "cves": [], "html": "<p>防止 <code>pg_start_backup()</code> 和 <code>pg_stop_backup()</code> 的多次调用并发运行（Michael Paquier）</p>\n<p>这避免了有人试图并行运行这些函数时的断言失败以及可能更糟的事情。</p>", "text": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行（Michael Paquier） 这避免了有人试图并行运行这些函数时的断言失败以及可能更糟的事情。", "title": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "2b235015419268d7d0a33392ea8af18e164bbf00f6f12eedbcb8f34c494c1223", "section_path": ["变更"], "commit_groups": [["60a8b63d2", "974ece58b", "9e7f00d86", "c73157ca0", "dfe348c1b", "f64b11fa0"]], "identity_text": "Prevent multiple calls of pg_start_backup() and pg_stop_backup() from running concurrently (Michael Paquier) This avoids an assertion failure, and possibly worse things, if someone tries to run these functions in parallel.", "commit_aliases": ["60a8b63d2", "974ece58b", "9e7f00d86", "c73157ca0", "dfe348c1b", "f64b11fa0"], "source_commits": ["60a8b63d2"], "source_entry_id": "9.6.2/changes/038", "db_id": "687224dcab90b5b2af651f8438c6598c", "patch_ids": ["9571a75d1e657dac0edf5454f0a333c3"], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf", "relations": [{"rule": 2, "type": "equivalent", "target": "1ef018685a9c483cd28f9ca52e3c966a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}}, {"rule": 2, "type": "equivalent", "target": "23cf73717317ca27a5983c7fcb59cdf5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}}, {"rule": 2, "type": "equivalent", "target": "acd2eba3f7197ed9790f383a150768bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}}, {"rule": 2, "type": "equivalent", "target": "ed7140f1a4fdb9bd4e31465aaaff57b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1ef018685a9c483cd28f9ca52e3c966a", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}, "url": "/docs/compare/?release=9.5.6#9.5.6-ad45c4e99311a5d6", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "acd2eba3f7197ed9790f383a150768bb", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}, "url": "/docs/compare/?release=9.4.11#9.4.11-ad45c4e99311a5d6", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "23cf73717317ca27a5983c7fcb59cdf5", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}, "url": "/docs/compare/?release=9.3.16#9.3.16-ad45c4e99311a5d6", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "ed7140f1a4fdb9bd4e31465aaaff57b3", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"}, "url": "/docs/compare/?release=9.2.20#9.2.20-ad45c4e99311a5d6", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-6a7fb3a29350126c", "cves": [], "html": "<p>禁用试图移除无操作 <code>AT TIME ZONE</code> 转换的变换（Tom Lane）</p>\n<p>当简化后的表达式用于索引条件时，这导致错误答案。</p>", "text": "禁用试图移除无操作 AT TIME ZONE 转换的变换（Tom Lane） 当简化后的表达式用于索引条件时，这导致错误答案。", "title": "禁用试图移除无操作 AT TIME ZONE 转换的变换", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "6ab55b6e003d01a869d10b7c0c0f67caf11f70d92fdb357d8e58d109699b6c2d", "section_path": ["变更"], "commit_groups": [["74e67bbad", "b21e665f2", "c22ecc656"]], "identity_text": "Disable transform that attempted to remove no-op AT TIME ZONE conversions (Tom Lane) This resulted in wrong answers when the simplified expression was used in an index condition.", "commit_aliases": ["74e67bbad", "b21e665f2", "c22ecc656"], "source_commits": ["b21e665f2"], "source_entry_id": "9.6.2/changes/039", "db_id": "62a6eb182d3060f0f6bda442395dcec4", "patch_ids": ["1956214fac6d9ae264c859ec725bd5cf"], "statement_hash": "aadd77cd6da7cd7a24f6882b01465d9b3e227c5fd7da1bbc0a547a4c3d0a5d30", "relations": [{"rule": 2, "type": "equivalent", "target": "4b0a80a80bdefecbb41d1f2adf7d47e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aadd77cd6da7cd7a24f6882b01465d9b3e227c5fd7da1bbc0a547a4c3d0a5d30"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b0a80a80bdefecbb41d1f2adf7d47e8", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "禁用试图移除无操作 AT TIME ZONE 转换的变换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aadd77cd6da7cd7a24f6882b01465d9b3e227c5fd7da1bbc0a547a4c3d0a5d30"}, "url": "/docs/compare/?release=9.5.6#9.5.6-6a7fb3a29350126c", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-8943a394f75ad1d5", "cves": [], "html": "<p>避免丢弃并非真正无操作的 <code>interval</code> 到 <code>interval</code> 强制转换（Tom Lane）</p>\n<p>某些情况下，本应导致清零低阶 <code>interval</code> 字段的强制转换被错误地当作无操作而丢弃。例如从 <code>INTERVAL MONTH</code> 转换到 <code>INTERVAL YEAR</code> 未能清除月份字段。</p>", "text": "避免丢弃并非真正无操作的 interval 到 interval 强制转换（Tom Lane） 某些情况下，本应导致清零低阶 interval 字段的强制转换被错误地当作无操作而丢弃。例如从 INTERVAL MONTH 转换到 INTERVAL YEAR 未能清除月份字段。", "title": "避免丢弃并非真正无操作的 interval 到 interval 强制转换", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "55fecb844ece87f693876ecf8ec489960a4f7881f72100345697b726db0e7205", "section_path": ["变更"], "commit_groups": [["0b947b692", "21e24eb9a", "4efe7aa2d", "583599839", "beae7d5f0", "f0774abde"]], "identity_text": "Avoid discarding interval-to-interval casts that aren't really no-ops (Tom Lane) In some cases, a cast that should result in zeroing out low-order interval fields was mistakenly deemed to be a no-op and discarded. An example is that casting from INTERVAL MONTH to INTERVAL YEAR failed to clear the months field.", "commit_aliases": ["0b947b692", "21e24eb9a", "4efe7aa2d", "583599839", "beae7d5f0", "f0774abde"], "source_commits": ["21e24eb9a"], "source_entry_id": "9.6.2/changes/040", "db_id": "e248e2718d6804294de52aff8888e4ac", "patch_ids": ["1f893fbee91f679635e14699d87d7972"], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6", "relations": [{"rule": 2, "type": "equivalent", "target": "22d23dc52cffb0a68ddc7fb66794ed3e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}}, {"rule": 2, "type": "equivalent", "target": "81db7ea24635608650b11971639f5898", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}}, {"rule": 2, "type": "equivalent", "target": "96f623510909436fffafe711bab45701", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}}, {"rule": 2, "type": "equivalent", "target": "e198f84900b2693f4096946b7a53bdd1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "96f623510909436fffafe711bab45701", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "避免丢弃并非真正无操作的 interval 到 interval 强制转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}, "url": "/docs/compare/?release=9.5.6#9.5.6-8943a394f75ad1d5", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "81db7ea24635608650b11971639f5898", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "避免丢弃并非真正无操作的 interval 到 interval 强制转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}, "url": "/docs/compare/?release=9.4.11#9.4.11-8943a394f75ad1d5", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "e198f84900b2693f4096946b7a53bdd1", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "避免丢弃并非真正无操作的 interval 到 interval 强制转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}, "url": "/docs/compare/?release=9.3.16#9.3.16-8943a394f75ad1d5", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "22d23dc52cffb0a68ddc7fb66794ed3e", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "避免丢弃并非真正无操作的 interval 到 interval 强制转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"}, "url": "/docs/compare/?release=9.2.20#9.2.20-8943a394f75ad1d5", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-d68aa1561f7125af", "cves": [], "html": "<p>修复并行查询重扫描期间可用工作者数量减少时的崩溃（Andreas Seltenreich）</p>", "text": "修复并行查询重扫描期间可用工作者数量减少时的崩溃（Andreas Seltenreich）", "title": "修复并行查询重扫描期间可用工作者数量减少时的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "15cc9558f92bdb70d3b736d5b832660bf6ed2bede0210b6960d7b278f8a40b6c", "section_path": ["变更"], "commit_groups": [["06fa6670f", "53c7cff72"]], "identity_text": "Fix crash if the number of workers available to a parallel query decreases during a rescan (Andreas Seltenreich)", "commit_aliases": ["06fa6670f", "53c7cff72"], "source_commits": ["06fa6670f"], "source_entry_id": "9.6.2/changes/041", "db_id": "09845d84751e21bf3bd628d3a6588fcd", "patch_ids": ["73f4acae55435c9455154ba95b220248"], "statement_hash": "2da70c691a2f598c2350224cbe296fb91e1f38addf8e0d97f7b9fa9f10353ac6", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-79e0776a09a09d74", "cves": [], "html": "<p>修复向并行工作者传输 GUC 参数值的 bug（Michael Paquier、Tom Lane）</p>", "text": "修复向并行工作者传输 GUC 参数值的 bug（Michael Paquier、Tom Lane）", "title": "修复向并行工作者传输 GUC 参数值的 bug", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "f90ce7196a3d994953d96cadeff816c7d97141406daeb3e42cbc8b00f259edb7", "section_path": ["变更"], "commit_groups": [["13671b4b2", "272c42660", "b9ee42e70"]], "identity_text": "Fix bugs in transmitting GUC parameter values to parallel workers (Michael Paquier, Tom Lane)", "commit_aliases": ["13671b4b2", "272c42660", "b9ee42e70"], "source_commits": ["272c42660"], "source_entry_id": "9.6.2/changes/042", "db_id": "046c364384c318fc6b905fad70841885", "patch_ids": ["1febbe626405440dfb1f995bc3d112eb"], "statement_hash": "929c5da99fd61412c4fb5e840f9ba947b2ebf5a79ec1be11cfa056c2f936522e", "relations": [{"rule": 2, "type": "equivalent", "target": "f1d6a5362cd3b5d2ef0595a667d7156f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "929c5da99fd61412c4fb5e840f9ba947b2ebf5a79ec1be11cfa056c2f936522e"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f1d6a5362cd3b5d2ef0595a667d7156f", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复向并行工作者传输 GUC 参数值的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "929c5da99fd61412c4fb5e840f9ba947b2ebf5a79ec1be11cfa056c2f936522e"}, "url": "/docs/compare/?release=9.5.6#9.5.6-79e0776a09a09d74", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-ed400a1978911c3d", "cves": [], "html": "<p>允许用 <code>PREPARE</code> 预备的语句获得并行计划（Amit Kapila、Tobias Bussmann）</p>", "text": "允许用 PREPARE 预备的语句获得并行计划（Amit Kapila、Tobias Bussmann）", "title": "允许用 PREPARE 预备的语句获得并行计划", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "58260c7ef78d82d344802d6d1b5bc7f0b660c1f546f66ac07188d91ba6ffc3ca", "section_path": ["变更"], "commit_groups": [["4212cb732", "ebe5dc9e0"]], "identity_text": "Allow statements prepared with PREPARE to be given parallel plans (Amit Kapila, Tobias Bussmann)", "commit_aliases": ["4212cb732", "ebe5dc9e0"], "source_commits": ["ebe5dc9e0"], "source_entry_id": "9.6.2/changes/043", "db_id": "d01bebf9b1925f5a6e5281cc7683e475", "patch_ids": ["713492733f679e15d7b655c225ceafe3"], "statement_hash": "180a82c8fcbd23e3ad2243de720bfb6b7d09e715f47c6fb495aa2b663e71a45e", "relations": [], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-7abeaa013f78aec3", "cves": [], "html": "<p>修复半连接并行计划的错误生成（Tom Lane）</p>", "text": "修复半连接并行计划的错误生成（Tom Lane）", "title": "修复半连接并行计划的错误生成", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "54016f1b0bd71883254e26057521f4a94cb3418343d26f090f8b61eaf826b8c8", "section_path": ["变更"], "commit_groups": [["41e2b84ce", "e5b8aa636"]], "identity_text": "Fix incorrect generation of parallel plans for semi-joins (Tom Lane)", "commit_aliases": ["41e2b84ce", "e5b8aa636"], "source_commits": ["e5b8aa636"], "source_entry_id": "9.6.2/changes/044", "db_id": "2e7ba915075e5e846539aeac87cd7d4a", "patch_ids": ["7e16a0fed8226d0e9892de9d99d5aee9"], "statement_hash": "84d894665707b36245611c477ddc3963eeca671ca4bbd3cb2ae3b8f2e4a5391b", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-0910ddb6d6d649a4", "cves": [], "html": "<p>修复规划器对并行连接的基数估计（Robert Haas）</p>\n<p>确保这些估计反映每个工作者预计看到的行数，而不是总数。</p>", "text": "修复规划器对并行连接的基数估计（Robert Haas） 确保这些估计反映每个工作者预计看到的行数，而不是总数。", "title": "修复规划器对并行连接的基数估计", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "764dbecf8befd0fe27c439c6a680a00f4175bbd839d563a4f832af66e2012b13", "section_path": ["变更"], "commit_groups": [["0c2070cef", "2d443ae1b"]], "identity_text": "Fix planner's cardinality estimates for parallel joins (Robert Haas) Ensure that these estimates reflect the number of rows predicted to be seen by each worker, rather than the total.", "commit_aliases": ["0c2070cef", "2d443ae1b"], "source_commits": ["2d443ae1b"], "source_entry_id": "9.6.2/changes/045", "db_id": "c1e8bf5e9a1cb408ee84b2605242d6d4", "patch_ids": ["9fd222ee5bdedc0bf573a1efe4430eaf"], "statement_hash": "320e5b62fff53cd033112e343f485da1c024c98f1c8f52586aef53b1a5af4a5e", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-524a1740557b8bc9", "cves": [], "html": "<p>修复规划器避免尝试并行化包含 initplan 或 subplan 的计划节点（Tom Lane、Amit Kapila）</p>", "text": "修复规划器避免尝试并行化包含 initplan 或 subplan 的计划节点（Tom Lane、Amit Kapila）", "title": "修复规划器避免尝试并行化包含 initplan 或 subplan 的计划节点", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "cc3b4462dce5d86060cadf15945965f2790be4b6faa5972acf03263dc2e028f4", "section_path": ["变更"], "commit_groups": [["01f08cbbc", "f24cf960d"], ["474de765a", "ab77a5a45"]], "identity_text": "Fix planner to avoid trying to parallelize plan nodes containing initplans or subplans (Tom Lane, Amit Kapila)", "commit_aliases": ["01f08cbbc", "474de765a", "ab77a5a45", "f24cf960d"], "source_commits": ["01f08cbbc", "474de765a"], "source_entry_id": "9.6.2/changes/046", "db_id": "520efb34d4348bd6b67081cb66d5c78e", "patch_ids": ["017ea92e5deec7806f2b414760064503", "496250597af4ee24c9f53fa6c12ac0cb"], "statement_hash": "7966a09dcfd84202ccc9ffae943ef1b0c1494558e2853f4fbd4230f7b2ba4810", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-d74df8927b35510c", "cves": [], "html": "<p>确保缓存计划因外部表选项的更改而失效（Amit Langote、Etsuro Fujita、Ashutosh Bapat）</p>", "text": "确保缓存计划因外部表选项的更改而失效（Amit Langote、Etsuro Fujita、Ashutosh Bapat）", "title": "确保缓存计划因外部表选项的更改而失效", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "559c5c6dfbd8aecc58cac7452c6b4bf5ceba776bf90385d672c317639c0af3ab", "section_path": ["变更"], "commit_groups": [["4103a2f20", "a8191800a", "aaf12e577", "c52d37c8b", "e4380e4cf"]], "identity_text": "Ensure that cached plans are invalidated by changes in foreign-table options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)", "commit_aliases": ["4103a2f20", "a8191800a", "aaf12e577", "c52d37c8b", "e4380e4cf"], "source_commits": ["4103a2f20"], "source_entry_id": "9.6.2/changes/047", "db_id": "07273cabbed1e8889403b2e5ed486244", "patch_ids": ["111dddc6bc3ece1869c8907d2689a569"], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300", "relations": [{"rule": 2, "type": "equivalent", "target": "2fd1741641c58d37f1ff04b3cf72b610", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}}, {"rule": 2, "type": "equivalent", "target": "6235e93ff352456cef8e82479659a505", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}}, {"rule": 2, "type": "equivalent", "target": "db0fbae43f58460ea06feb3c921dd878", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "db0fbae43f58460ea06feb3c921dd878", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保缓存计划因外部表选项的更改而失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}, "url": "/docs/compare/?release=9.5.6#9.5.6-d74df8927b35510c", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "6235e93ff352456cef8e82479659a505", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保缓存计划因外部表选项的更改而失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}, "url": "/docs/compare/?release=9.4.11#9.4.11-d74df8927b35510c", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "2fd1741641c58d37f1ff04b3cf72b610", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保缓存计划因外部表选项的更改而失效", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b4e27377c21ee50d71abbfe4cbea361e69dbbca91b8cbe725bad759f900300"}, "url": "/docs/compare/?release=9.3.16#9.3.16-d74df8927b35510c", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}]}, {"id": "9.6.2-4a3ab919497e8982", "cves": [], "html": "<p>修复带常量 <code>GROUP BY</code> 子句的排序部分聚合的计划生成（Tom Lane）</p>", "text": "修复带常量 GROUP BY 子句的排序部分聚合的计划生成（Tom Lane）", "title": "修复带常量 GROUP BY 子句的排序部分聚合的计划生成", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "597b9d07b97c65df241465ff89853c7d880274da1b0c5121a1ca9636699edbbb", "section_path": ["变更"], "commit_groups": [["7defc3b97", "e1b449bea"]], "identity_text": "Fix the plan generated for sorted partial aggregation with a constant GROUP BY clause (Tom Lane)", "commit_aliases": ["7defc3b97", "e1b449bea"], "source_commits": ["7defc3b97"], "source_entry_id": "9.6.2/changes/048", "db_id": "355506c91c0323f188de9c0d04d23df1", "patch_ids": ["837bf63fe8ec79c475ed11bc40a95f02"], "statement_hash": "508598d3a62b43b0c9c46eccc90f4d46a29277f012414246c7d108a0577ef3ef", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-1cbefd137e29b0e0", "cves": [], "html": "<p>修复处理包含 CTE 引用的 <code>UNION ALL</code> 时的 <span>“<span>could not find plan for CTE</span>”</span> 规划器错误（Tom Lane）</p>", "text": "修复处理包含 CTE 引用的 UNION ALL 时的 “could not find plan for CTE” 规划器错误（Tom Lane）", "title": "修复处理包含 CTE 引用的 UNION ALL 时的 “could not find plan for CTE” 规划器错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "7450267869646d1e9c425777e132417a723b758b7060984180fe8400c4340b57", "section_path": ["变更"], "commit_groups": [["1f542a2ea", "997a2994e"]], "identity_text": "Fix could not find plan for CTE planner error when dealing with a UNION ALL containing CTE references (Tom Lane)", "commit_aliases": ["1f542a2ea", "997a2994e"], "source_commits": ["997a2994e"], "source_entry_id": "9.6.2/changes/049", "db_id": "e178943506cb74091a70b407f6b73ab5", "patch_ids": ["ef4dcf0a722e1c89b3643d4e2db70cf5"], "statement_hash": "943357ed98727ac044defc4eb4fd3752789968a968826312b7d3842fcd3caeab", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-11385bb63ca80571", "cves": [], "html": "<p>修复强制向子计划添加 Material 节点时 initplan 的处理不当（Tom Lane）</p>\n<p>这个错误的典型后果是 <span>“<span>plan should not reference subplan's variable</span>”</span> 错误。</p>", "text": "修复强制向子计划添加 Material 节点时 initplan 的处理不当（Tom Lane） 这个错误的典型后果是 “plan should not reference subplan's variable” 错误。", "title": "修复强制向子计划添加 Material 节点时 initplan 的处理不当", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "8961903873633f5d3a907fbe1f7e5d32ea8a0177b1d0a724b0595f65c018e62d", "section_path": ["变更"], "commit_groups": [["555494d1b", "b971a98ce"]], "identity_text": "Fix mishandling of initplans when forcibly adding a Material node to a subplan (Tom Lane) The typical consequence of this mistake was a plan should not reference subplan's variable error.", "commit_aliases": ["555494d1b", "b971a98ce"], "source_commits": ["b971a98ce"], "source_entry_id": "9.6.2/changes/050", "db_id": "e74dc788ec78bf2a82dc5a4fbafdc08d", "patch_ids": ["7dc23dba7f79913b0c33a1a77595186d"], "statement_hash": "02bc49d27661431888e190e3f70bbeff75e64871a5029fff4f820c11c390d4f4", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-9dd396f476677f75", "cves": [], "html": "<p>修复半连接和反连接以及继承情况下基于外键的连接选择率估计（Tom Lane）</p>\n<p>考虑外键关系存在的新代码在这些情况下做了错误的事情，使估计比 9.6 之前的代码更差而不是更好。</p>", "text": "修复半连接和反连接以及继承情况下基于外键的连接选择率估计（Tom Lane） 考虑外键关系存在的新代码在这些情况下做了错误的事情，使估计比 9.6 之前的代码更差而不是更好。", "title": "修复半连接和反连接以及继承情况下基于外键的连接选择率估计", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "b7e27d186f129740a1a73726b9e6ba494d63b3c8fd2cc5fa317e57bf7ffd5555", "section_path": ["变更"], "commit_groups": [["23c6c437f", "770671062"], ["7fa93eec4", "f4f195d15"]], "identity_text": "Fix foreign-key-based join selectivity estimation for semi-joins and anti-joins, as well as inheritance cases (Tom Lane) The new code for taking the existence of a foreign key relationship into account did the wrong thing in these cases, making the estimates worse not better than the pre-9.6 code.", "commit_aliases": ["23c6c437f", "770671062", "7fa93eec4", "f4f195d15"], "source_commits": ["23c6c437f", "f4f195d15"], "source_entry_id": "9.6.2/changes/051", "db_id": "5963ca00ac8741f1b15dcc0ad215f03c", "patch_ids": ["4a65597e38de4d01acfb5fbd71a4016e", "c638d7958adf107bee2baf9c8afff88e"], "statement_hash": "cd1dd7df00e5970818acd97bd38d8a04c5fe0f772e9e35097227d6bb42dec8ee", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-8ab26a9b4abaa868", "cves": [], "html": "<p>修复 <span>pg_dump</span> 发出被标记为扩展配置表的序列的数据（Michael Paquier）</p>", "text": "修复 pg_dump 发出被标记为扩展配置表的序列的数据（Michael Paquier）", "title": "修复 pg_dump 发出被标记为扩展配置表的序列的数据", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "00e7e099c772a0b5345db98de835a3b4c3489de998dac2e7a8081f19e99fcdca", "section_path": ["变更"], "commit_groups": [["bec96c82f", "fd081cabf"]], "identity_text": "Fix pg_dump to emit the data of a sequence that is marked as an extension configuration table (Michael Paquier)", "commit_aliases": ["bec96c82f", "fd081cabf"], "source_commits": ["fd081cabf"], "source_entry_id": "9.6.2/changes/052", "db_id": "4900394800a6096c711d16d09abce3c5", "patch_ids": ["9fb32af836d74d914a6bab5365cc8fc0"], "statement_hash": "15511b609c5ccb2c896479d4d544338151a285908bc794c6fc75e8fd90c389ae", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-f18cc743b9d7a36e", "cves": [], "html": "<p>修复 <span>pg_dump</span> 中 <code>ALTER DEFAULT PRIVILEGES ... REVOKE</code> 的处理不当（Stephen Frost）</p>\n<p>在 <code>ALTER DEFAULT PRIVILEGES</code> 被用于把权限减少到低于正常水平的情况下，<span>pg_dump</span> 漏发所需的 <code>REVOKE</code> 命令。</p>", "text": "修复 pg_dump 中 ALTER DEFAULT PRIVILEGES ... REVOKE 的处理不当（Stephen Frost） 在 ALTER DEFAULT PRIVILEGES 被用于把权限减少到低于正常水平的情况下，pg_dump 漏发所需的 REVOKE 命令。", "title": "修复 pg_dump 中 ALTER DEFAULT PRIVILEGES ... REVOKE 的处理不当", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "e8da4cbfe3c9fa605c9753018530cfd0b66335d980428c0a5d82a36c54dc5215", "section_path": ["变更"], "commit_groups": [["e2090d9d2", "eb5e9d90d"]], "identity_text": "Fix mishandling of ALTER DEFAULT PRIVILEGES ... REVOKE in pg_dump (Stephen Frost) pg_dump missed issuing the required REVOKE commands in cases where ALTER DEFAULT PRIVILEGES had been used to reduce privileges to less than they would normally be.", "commit_aliases": ["e2090d9d2", "eb5e9d90d"], "source_commits": ["eb5e9d90d"], "source_entry_id": "9.6.2/changes/053", "db_id": "eba5c0ac95c04a82cfc99cc5d33e2dfe", "patch_ids": ["f6b6b7a4f5a85b7d699932a1a591aabb"], "statement_hash": "6430cea7f7a4728b15931529548ffdc4654f64aaa4427fed4f81e7e2ffbe9762", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-4fba47bfcb2ec0ac", "cves": [], "html": "<p>修复 <span>pg_dump</span> 转储使用内建函数的用户定义强制转换和转换（Stephen Frost）</p>", "text": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换（Stephen Frost）", "title": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "86f6c27f5829df20fa5622928dd1ffbf1cc086265e78296bb85250f19cb9f2b6", "section_path": ["变更"], "commit_groups": [["107943f1a", "19990918d", "59a389891", "94476436a", "e45319bb7", "fc03f7dd1"], ["13f51dacf", "1efc5dba0", "1f2cfd26f", "2259bf672", "542975a14", "da57166b7"]], "identity_text": "Fix pg_dump to dump user-defined casts and transforms that use built-in functions (Stephen Frost)", "commit_aliases": ["107943f1a", "13f51dacf", "19990918d", "1efc5dba0", "1f2cfd26f", "2259bf672", "542975a14", "59a389891", "94476436a", "da57166b7", "e45319bb7", "fc03f7dd1"], "source_commits": ["542975a14", "e45319bb7"], "source_entry_id": "9.6.2/changes/054", "db_id": "581a06be52555037f10c237117874cc0", "patch_ids": ["1c6aa36948e15f65b75249518e197017", "965ef618c35969efcd3fcfcac5863242"], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4", "relations": [{"rule": 2, "type": "equivalent", "target": "141e88f49f53e4beac817386630d457f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}}, {"rule": 2, "type": "equivalent", "target": "1af558f49869195daea66118c0df707f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}}, {"rule": 2, "type": "equivalent", "target": "206f6527fb116024cd1b8b9db2358953", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}}, {"rule": 2, "type": "equivalent", "target": "fea8649624e2953332f50903213b1685", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fea8649624e2953332f50903213b1685", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}, "url": "/docs/compare/?release=9.5.6#9.5.6-4fba47bfcb2ec0ac", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "1af558f49869195daea66118c0df707f", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}, "url": "/docs/compare/?release=9.4.11#9.4.11-4fba47bfcb2ec0ac", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "206f6527fb116024cd1b8b9db2358953", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}, "url": "/docs/compare/?release=9.3.16#9.3.16-4fba47bfcb2ec0ac", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "141e88f49f53e4beac817386630d457f", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 pg_dump 转储使用内建函数的用户定义强制转换和转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"}, "url": "/docs/compare/?release=9.2.20#9.2.20-4fba47bfcb2ec0ac", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-6f2e3fa7344ed7b7", "cves": [], "html": "<p>修复 <span>pg_restore</span> 使用 <code>--create --if-exists</code> 时对包含无法识别的 <code>DROP</code> 命令的归档表现得更理智（Tom Lane）</p>\n<p>这不修复任何现存 bug，但如果 <span>pg_restore</span> 与更晚的 <span>pg_dump</span> 版本生成的归档一起使用，将来可能改进行为。</p>", "text": "修复 pg_restore 使用 --create --if-exists 时对包含无法识别的 DROP 命令的归档表现得更理智（Tom Lane） 这不修复任何现存 bug，但如果 pg_restore 与更晚的 pg_dump 版本生成的归档一起使用，将来可能改进行为。", "title": "修复 pg_restore 使用 --create --if-exists 时对包含无法识别的 DROP 命令的归档表现得更理智", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "93c1f6ddcf25ed8bc8df37a991691d510f1e016345714469744c7d2e9132c3e6", "section_path": ["变更"], "commit_groups": [["0eaa5118a", "a7864037d", "ac888986f", "e69b532be"]], "identity_text": "Fix pg_restore with --create --if-exists to behave more sanely if an archive contains unrecognized DROP commands (Tom Lane) This doesn't fix any live bug, but it may improve the behavior in future if pg_restore is used with an archive generated by a later pg_dump version.", "commit_aliases": ["0eaa5118a", "a7864037d", "ac888986f", "e69b532be"], "source_commits": ["0eaa5118a"], "source_entry_id": "9.6.2/changes/055", "db_id": "d95921cd7abc0fb5e59c7dd3cf7ba92f", "patch_ids": ["a9583c70020367052176b5fe1bebd59e"], "statement_hash": "e9072a2d2d532e2f23198565b761dbb108e21d67e448346118c9055e329b4b27", "relations": [{"rule": 2, "type": "equivalent", "target": "49c06b2f206d9d8b0aac7545f4d30e43", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9072a2d2d532e2f23198565b761dbb108e21d67e448346118c9055e329b4b27"}}, {"rule": 2, "type": "equivalent", "target": "b54f6d5d1dee88ea2ace4dd6098a2046", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9072a2d2d532e2f23198565b761dbb108e21d67e448346118c9055e329b4b27"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b54f6d5d1dee88ea2ace4dd6098a2046", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 pg_restore 使用 --create --if-exists 时对包含无法识别的 DROP 命令的归档表现得更理智", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9072a2d2d532e2f23198565b761dbb108e21d67e448346118c9055e329b4b27"}, "url": "/docs/compare/?release=9.5.6#9.5.6-6f2e3fa7344ed7b7", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "49c06b2f206d9d8b0aac7545f4d30e43", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 pg_restore 使用 --create --if-exists 时对包含无法识别的 DROP 命令的归档表现得更理智", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e9072a2d2d532e2f23198565b761dbb108e21d67e448346118c9055e329b4b27"}, "url": "/docs/compare/?release=9.4.11#9.4.11-6f2e3fa7344ed7b7", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-c9ab92fb4e52f968", "cves": [], "html": "<p>修复慢 I/O 情况下 <span>pg_basebackup</span> 的速率限制（Antonin Houska）</p>\n<p>如果磁盘 I/O 暂时比指定的速率限制慢得多，计算就会溢出，实际上禁用了运行剩余部分的速率限制。</p>", "text": "修复慢 I/O 情况下 pg_basebackup 的速率限制（Antonin Houska） 如果磁盘 I/O 暂时比指定的速率限制慢得多，计算就会溢出，实际上禁用了运行剩余部分的速率限制。", "title": "修复慢 I/O 情况下 pg_basebackup 的速率限制", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "fbd20670d3f8e513a4361420e852664747d750ed7a9606f38011ad888b2edc34", "section_path": ["变更"], "commit_groups": [["10238fad0", "1c8ad594e", "bc53d7130", "f6508827a"]], "identity_text": "Fix pg_basebackup's rate limiting in the presence of slow I/O (Antonin Houska) If disk I/O was transiently much slower than the specified rate limit, the calculation overflowed, effectively disabling the rate limit for the rest of the run.", "commit_aliases": ["10238fad0", "1c8ad594e", "bc53d7130", "f6508827a"], "source_commits": ["1c8ad594e"], "source_entry_id": "9.6.2/changes/056", "db_id": "adeba6e5e7ae4cc6e7c34d769088b383", "patch_ids": ["8ef8b220d7ab2127ec4fc3cdf78afd46"], "statement_hash": "d8ba3af92b13e045c18539777661d6f5dee3c5c832817b475c0ddf43297e0ef7", "relations": [{"rule": 2, "type": "equivalent", "target": "a2f5a686593d4ec3305f3fd840963c70", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8ba3af92b13e045c18539777661d6f5dee3c5c832817b475c0ddf43297e0ef7"}}, {"rule": 2, "type": "equivalent", "target": "ceaa5966d70cd20ccc5138eba633af76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8ba3af92b13e045c18539777661d6f5dee3c5c832817b475c0ddf43297e0ef7"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2f5a686593d4ec3305f3fd840963c70", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复慢 I/O 情况下 pg_basebackup 的速率限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8ba3af92b13e045c18539777661d6f5dee3c5c832817b475c0ddf43297e0ef7"}, "url": "/docs/compare/?release=9.5.6#9.5.6-c9ab92fb4e52f968", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "ceaa5966d70cd20ccc5138eba633af76", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复慢 I/O 情况下 pg_basebackup 的速率限制", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8ba3af92b13e045c18539777661d6f5dee3c5c832817b475c0ddf43297e0ef7"}, "url": "/docs/compare/?release=9.4.11#9.4.11-c9ab92fb4e52f968", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-16fc51cb0c47c6b6", "cves": [], "html": "<p>修复 <span>pg_basebackup</span> 对符号链接的 <code>pg_stat_tmp</code> 和 <code>pg_replslot</code> 子目录的处理（Magnus Hagander、Michael Paquier）</p>", "text": "修复 pg_basebackup 对符号链接的 pg_stat_tmp 和 pg_replslot 子目录的处理（Magnus Hagander、Michael Paquier）", "title": "修复 pg_basebackup 对符号链接的 pg_stat_tmp 和 pg_replslot 子目录的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "edccccd9332509d76991dd5780270545d524da3926ff9fcf8ac9028f1e080eb0", "section_path": ["变更"], "commit_groups": [["5556420d4", "6d779e05a", "b6a323a8c"]], "identity_text": "Fix pg_basebackup's handling of symlinked pg_stat_tmp and pg_replslot subdirectories (Magnus Hagander, Michael Paquier)", "commit_aliases": ["5556420d4", "6d779e05a", "b6a323a8c"], "source_commits": ["b6a323a8c"], "source_entry_id": "9.6.2/changes/057", "db_id": "25671e41ac06308dd43acbb0b4950ca8", "patch_ids": ["d1875d7114fed9a26ffe2dd55e6658a2"], "statement_hash": "07c5573ce1b06c08b4daa86d09fb08e6e89a60e4c9fea19318577de226c4ce4d", "relations": [{"rule": 2, "type": "equivalent", "target": "59928788596595bbfb0ae687c316f3c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07c5573ce1b06c08b4daa86d09fb08e6e89a60e4c9fea19318577de226c4ce4d"}}, {"rule": 2, "type": "equivalent", "target": "f76ab6ec3a0177411afabf4ed4d3ed62", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07c5573ce1b06c08b4daa86d09fb08e6e89a60e4c9fea19318577de226c4ce4d"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "59928788596595bbfb0ae687c316f3c9", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 pg_basebackup 对符号链接的 pg_stat_tmp 和 pg_replslot 子目录的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07c5573ce1b06c08b4daa86d09fb08e6e89a60e4c9fea19318577de226c4ce4d"}, "url": "/docs/compare/?release=9.5.6#9.5.6-16fc51cb0c47c6b6", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "f76ab6ec3a0177411afabf4ed4d3ed62", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 pg_basebackup 对符号链接的 pg_stat_tmp 和 pg_replslot 子目录的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "07c5573ce1b06c08b4daa86d09fb08e6e89a60e4c9fea19318577de226c4ce4d"}, "url": "/docs/compare/?release=9.4.11#9.4.11-16fc51cb0c47c6b6", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}]}, {"id": "9.6.2-ba21d14c399b76c0", "cves": [], "html": "<p>修复包含 WAL 文件时备库服务器上可能的 <span>pg_basebackup</span> 失败（Amit Kapila、Robert Haas）</p>", "text": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败（Amit Kapila、Robert Haas）", "title": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "e93f97719b06e1c1da8774abec8f4246af5997b4dc5d5abbd62e8d2871d7ad4f", "section_path": ["变更"], "commit_groups": [["05e2293f4", "629575fa2", "92929a3e3", "d1e9c8269", "ef18cb7da", "f267c1c24"]], "identity_text": "Fix possible pg_basebackup failure on standby server when including WAL files (Amit Kapila, Robert Haas)", "commit_aliases": ["05e2293f4", "629575fa2", "92929a3e3", "d1e9c8269", "ef18cb7da", "f267c1c24"], "source_commits": ["05e2293f4"], "source_entry_id": "9.6.2/changes/058", "db_id": "abeb2fd128bd039a4190704c1fb38488", "patch_ids": ["60c7961904f08ef1a1672252957fcd0d"], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4", "relations": [{"rule": 2, "type": "equivalent", "target": "68c6b0764c4bf1614e325f69f12285e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}}, {"rule": 2, "type": "equivalent", "target": "6933c0008409c2ee70f12fe8d226fbd2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}}, {"rule": 2, "type": "equivalent", "target": "7570cd69307a64fcb41f65e0392d4c57", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}}, {"rule": 2, "type": "equivalent", "target": "917389edbf58b05a6f1216e2d6417b83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6933c0008409c2ee70f12fe8d226fbd2", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}, "url": "/docs/compare/?release=9.5.6#9.5.6-ba21d14c399b76c0", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "68c6b0764c4bf1614e325f69f12285e5", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}, "url": "/docs/compare/?release=9.4.11#9.4.11-ba21d14c399b76c0", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "7570cd69307a64fcb41f65e0392d4c57", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}, "url": "/docs/compare/?release=9.3.16#9.3.16-ba21d14c399b76c0", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "917389edbf58b05a6f1216e2d6417b83", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"}, "url": "/docs/compare/?release=9.2.20#9.2.20-ba21d14c399b76c0", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-ebd373f265d7a9ea", "cves": [], "html": "<p>改进 <span>initdb</span> 把 <em><code>xxx</code></em><code>_flush_after</code> 参数的正确平台特定默认值插入 <code>postgresql.conf</code>（Fabien Coelho、Tom Lane）</p>\n<p>这是比以前使用的更干净的默认值记录方式。</p>", "text": "改进 initdb 把 xxx_flush_after 参数的正确平台特定默认值插入 postgresql.conf（Fabien Coelho、Tom Lane） 这是比以前使用的更干净的默认值记录方式。", "title": "改进 initdb 把 xxx_flush_after 参数的正确平台特定默认值插入 postgresql.conf", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "bc6f2c554372f4b94c37449e764b9793559cd52707eec9fe493e730ef841e883", "section_path": ["变更"], "commit_groups": [["255bcd27f", "dbdfd114f"]], "identity_text": "Improve initdb to insert the correct platform-specific default values for the xxx_flush_after parameters into postgresql.conf (Fabien Coelho, Tom Lane) This is a cleaner way of documenting the default values than was used previously.", "commit_aliases": ["255bcd27f", "dbdfd114f"], "source_commits": ["255bcd27f"], "source_entry_id": "9.6.2/changes/059", "db_id": "6de92ef59ec3f3a470d0deaef9d5af6d", "patch_ids": ["dc5bdd8b7a5b9cfd23a8788887008305"], "statement_hash": "178a21bff119c557a22daebdcb8abeb6f65e20a93f5c3d1ae3a187f8f43446c3", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-0f90f89749494e90", "cves": [], "html": "<p>修复域检查约束和 <code>CASE</code> 执行中展开数组的可能处理不当（Tom Lane）</p>\n<p>在这些上下文中调用的 PL/pgSQL 函数有可能修改甚至删除需要为额外操作保留的数组值。</p>", "text": "修复域检查约束和 CASE 执行中展开数组的可能处理不当（Tom Lane） 在这些上下文中调用的 PL/pgSQL 函数有可能修改甚至删除需要为额外操作保留的数组值。", "title": "修复域检查约束和 CASE 执行中展开数组的可能处理不当", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "5cf34611259a5f3cbb773e06eaccd8b8b78f944ff2b77000db532d72d3e4fb01", "section_path": ["变更"], "commit_groups": [["77cd0dc7e", "c472f2a33", "cd1b21569"]], "identity_text": "Fix possible mishandling of expanded arrays in domain check constraints and CASE execution (Tom Lane) It was possible for a PL/pgSQL function invoked in these contexts to modify or even delete an array value that needs to be preserved for additional operations.", "commit_aliases": ["77cd0dc7e", "c472f2a33", "cd1b21569"], "source_commits": ["77cd0dc7e"], "source_entry_id": "9.6.2/changes/060", "db_id": "0d3e8408f3a52b40add739fc9dad1df5", "patch_ids": ["4e5caed6a15333b8859b62f111fb6e40"], "statement_hash": "b4e9d2042fdfe8ecf018cab16842d9febec6822c85bbec42d6df1b19e17c2b79", "relations": [{"rule": 2, "type": "equivalent", "target": "eee279534cb7b6cd0aeef3e69b37223e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b4e9d2042fdfe8ecf018cab16842d9febec6822c85bbec42d6df1b19e17c2b79"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "eee279534cb7b6cd0aeef3e69b37223e", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复域检查约束和 CASE 执行中展开数组的可能处理不当", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b4e9d2042fdfe8ecf018cab16842d9febec6822c85bbec42d6df1b19e17c2b79"}, "url": "/docs/compare/?release=9.5.6#9.5.6-0f90f89749494e90", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-0067e54e57762ff8", "cves": [], "html": "<p>修复 PL/pgSQL 函数在诸如对 PL/pgSQL 变量赋值期间求值的域检查约束等上下文中的嵌套使用（Tom Lane）</p>", "text": "修复 PL/pgSQL 函数在诸如对 PL/pgSQL 变量赋值期间求值的域检查约束等上下文中的嵌套使用（Tom Lane）", "title": "修复 PL/pgSQL 函数在诸如对 PL/pgSQL 变量赋值期间求值的域检查约束等上下文中的嵌套使用", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "e6b5f97b04c674952db08b9de6eb746490cdfc3c9a09ba34170d821ee21a6b4b", "section_path": ["变更"], "commit_groups": [["674877e93", "a5b153ff5", "fc8b81a29"]], "identity_text": "Fix nested uses of PL/pgSQL functions in contexts such as domain check constraints evaluated during assignment to a PL/pgSQL variable (Tom Lane)", "commit_aliases": ["674877e93", "a5b153ff5", "fc8b81a29"], "source_commits": ["a5b153ff5"], "source_entry_id": "9.6.2/changes/061", "db_id": "ffab04a46730da80d0f33f9b44454c92", "patch_ids": ["fd08985a25ffe5ea4e6f248215587ed7"], "statement_hash": "aea8bf004efa9ddf8c79e4117024ae6806be0e4a2e75b279b61b11406272b8db", "relations": [{"rule": 2, "type": "equivalent", "target": "daeec92ce4e7caa83868d76eb6eec8a9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aea8bf004efa9ddf8c79e4117024ae6806be0e4a2e75b279b61b11406272b8db"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "daeec92ce4e7caa83868d76eb6eec8a9", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 PL/pgSQL 函数在诸如对 PL/pgSQL 变量赋值期间求值的域检查约束等上下文中的嵌套使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "aea8bf004efa9ddf8c79e4117024ae6806be0e4a2e75b279b61b11406272b8db"}, "url": "/docs/compare/?release=9.5.6#9.5.6-0067e54e57762ff8", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-12c278910814d24b", "cves": [], "html": "<p>确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数（Rafa de la Torre、Tom Lane）</p>\n<p>这避免了对象在 Python 垃圾回收周期发生之后被使用时的失败。</p>", "text": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数（Rafa de la Torre、Tom Lane） 这避免了对象在 Python 垃圾回收周期发生之后被使用时的失败。", "title": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "04ec46db244f1ce639e6b8e44072affa658b0d57c3d491bb8e59bc0998610a8f", "section_path": ["变更"], "commit_groups": [["00858728f", "13a4b37b9", "981885d17", "9cda81f00", "b90f2247e", "cea6de20b"]], "identity_text": "Ensure that the Python exception objects we create for PL/Python are properly reference-counted (Rafa de la Torre, Tom Lane) This avoids failures if the objects are used after a Python garbage collection cycle has occurred.", "commit_aliases": ["00858728f", "13a4b37b9", "981885d17", "9cda81f00", "b90f2247e", "cea6de20b"], "source_commits": ["b90f2247e"], "source_entry_id": "9.6.2/changes/062", "db_id": "f975296ade117cc2815748df07818bb4", "patch_ids": ["7f8a32886a4354a29ffd12b984f874ac"], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c", "relations": [{"rule": 2, "type": "equivalent", "target": "1390a5bd66a14c3b3d519b9461fdda99", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}}, {"rule": 2, "type": "equivalent", "target": "8db1722f361c4d812e07500deebd3442", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}}, {"rule": 2, "type": "equivalent", "target": "af675597a1d73dea0e4f5c459b2b5564", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}}, {"rule": 2, "type": "equivalent", "target": "b124b04f9107a88fb643b6d7061d5dd4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "af675597a1d73dea0e4f5c459b2b5564", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}, "url": "/docs/compare/?release=9.5.6#9.5.6-12c278910814d24b", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "b124b04f9107a88fb643b6d7061d5dd4", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}, "url": "/docs/compare/?release=9.4.11#9.4.11-12c278910814d24b", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "1390a5bd66a14c3b3d519b9461fdda99", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}, "url": "/docs/compare/?release=9.3.16#9.3.16-12c278910814d24b", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "8db1722f361c4d812e07500deebd3442", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"}, "url": "/docs/compare/?release=9.2.20#9.2.20-12c278910814d24b", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-2d0a4d1007979a08", "cves": [], "html": "<p>修复 PL/Tcl 支持以 <code>.tupno</code> 为列名的表上的触发器（Tom Lane）</p>\n<p>这与 PL/Tcl 的 <code>spi_exec</code> 和 <code>spi_execp</code> 命令（以前未写入文档）的行为一致，即只在不存在该名字的真实列时才插入幻 <code>.tupno</code> 列。</p>", "text": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器（Tom Lane） 这与 PL/Tcl 的 spi_exec 和 spi_execp 命令（以前未写入文档）的行为一致，即只在不存在该名字的真实列时才插入幻 .tupno 列。", "title": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "cd7af79197473e669de3f94caab24e0082d4b041636998f7cf619f7601ad4b11", "section_path": ["变更"], "commit_groups": [["110413a35", "3af8467e9", "92b7b1058", "9c0b04f18", "abdc83998", "fd2664dcb"]], "identity_text": "Fix PL/Tcl to support triggers on tables that have .tupno as a column name (Tom Lane) This matches the (previously undocumented) behavior of PL/Tcl's spi_exec and spi_execp commands, namely that a magic .tupno column is inserted only if there isn't a real column named that.", "commit_aliases": ["110413a35", "3af8467e9", "92b7b1058", "9c0b04f18", "abdc83998", "fd2664dcb"], "source_commits": ["3af8467e9"], "source_entry_id": "9.6.2/changes/063", "db_id": "78476c1a60a30fcdf082194b37a52d13", "patch_ids": ["becf0e40b37357c9dfdcc9ce2e45ef8f"], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e", "relations": [{"rule": 2, "type": "equivalent", "target": "13155088bcc3b2534d123510878f9213", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}}, {"rule": 2, "type": "equivalent", "target": "5e6780c37e4bb1e32b64d68e4f7d2e96", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}}, {"rule": 2, "type": "equivalent", "target": "982c56a5a1cda9da427ee7e8135b9435", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}}, {"rule": 2, "type": "equivalent", "target": "9b3168a190a255cde02dbbac2e0ef469", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9b3168a190a255cde02dbbac2e0ef469", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}, "url": "/docs/compare/?release=9.5.6#9.5.6-2d0a4d1007979a08", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "5e6780c37e4bb1e32b64d68e4f7d2e96", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}, "url": "/docs/compare/?release=9.4.11#9.4.11-2d0a4d1007979a08", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "982c56a5a1cda9da427ee7e8135b9435", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}, "url": "/docs/compare/?release=9.3.16#9.3.16-2d0a4d1007979a08", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "13155088bcc3b2534d123510878f9213", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"}, "url": "/docs/compare/?release=9.2.20#9.2.20-2d0a4d1007979a08", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-f13e8ec0337a146d", "cves": [], "html": "<p>允许 <code>~/.pgpass</code> 文件中的 DOS 风格行尾，即使在 Unix 上也一样（Vik Fearing）</p>\n<p>这一更改简化了在 Unix 和 Windows 机器之间使用同一密码文件。</p>", "text": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样（Vik Fearing） 这一更改简化了在 Unix 和 Windows 机器之间使用同一密码文件。", "title": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "1f8f0a9fd3e5bee7ec5badca244da6d9de62f537f25377a2b5b73220766d99c9", "section_path": ["变更"], "commit_groups": [["0a7481930", "13aa9af37", "46b6f3fff", "8951f92da", "a69e6d9a6", "e9802122d"]], "identity_text": "Allow DOS-style line endings in ~/.pgpass files, even on Unix (Vik Fearing) This change simplifies use of the same password file across Unix and Windows machines.", "commit_aliases": ["0a7481930", "13aa9af37", "46b6f3fff", "8951f92da", "a69e6d9a6", "e9802122d"], "source_commits": ["a69e6d9a6"], "source_entry_id": "9.6.2/changes/064", "db_id": "f5042c2a104b12d38b1ec389b9b13fb1", "patch_ids": ["49673741cd6ad4342265570bbfac21ab"], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6", "relations": [{"rule": 2, "type": "equivalent", "target": "07b8249fa1e1fd91d3a90a40a51448c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}}, {"rule": 2, "type": "equivalent", "target": "76b00a5bcfca92d6496177c433ba9910", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}}, {"rule": 2, "type": "equivalent", "target": "95d6f23f8ca3e577f27198c5a76696b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}}, {"rule": 2, "type": "equivalent", "target": "e9627113cb8963dd664fd65dab91e196", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e9627113cb8963dd664fd65dab91e196", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}, "url": "/docs/compare/?release=9.5.6#9.5.6-f13e8ec0337a146d", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "07b8249fa1e1fd91d3a90a40a51448c5", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}, "url": "/docs/compare/?release=9.4.11#9.4.11-f13e8ec0337a146d", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "76b00a5bcfca92d6496177c433ba9910", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}, "url": "/docs/compare/?release=9.3.16#9.3.16-f13e8ec0337a146d", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "95d6f23f8ca3e577f27198c5a76696b9", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"}, "url": "/docs/compare/?release=9.2.20#9.2.20-f13e8ec0337a146d", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-77d838eeb1473632", "cves": [], "html": "<p>修复 <span>ecpg</span> 被给定以点结尾的文件名时的一字节缓冲区越界（Takayuki Tsunakawa）</p>", "text": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界（Takayuki Tsunakawa）", "title": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "bcf7099510128ffc6610fa22b5cb786c259cfaddc7988c61a49e3d4106675e66", "section_path": ["变更"], "commit_groups": [["1df8b3fe8", "3af172f7b", "4032ef18d", "501c91074", "a88c547f9", "fd2a5547c"]], "identity_text": "Fix one-byte buffer overrun if ecpg is given a file name that ends with a dot (Takayuki Tsunakawa)", "commit_aliases": ["1df8b3fe8", "3af172f7b", "4032ef18d", "501c91074", "a88c547f9", "fd2a5547c"], "source_commits": ["fd2a5547c"], "source_entry_id": "9.6.2/changes/065", "db_id": "2690cbca07c4d6e844be7d7d35b9f611", "patch_ids": ["04118287e00dd579687dc3dfa9e92dd4"], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8", "relations": [{"rule": 2, "type": "equivalent", "target": "1eef4bb7b78714b618129ec8963589ee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}}, {"rule": 2, "type": "equivalent", "target": "58b636d8f88209ce036765aade41cba8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}}, {"rule": 2, "type": "equivalent", "target": "8a4ca1a5d92dfa9aac0aae5141f0eb08", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}}, {"rule": 2, "type": "equivalent", "target": "bf4cb52160fd94e8fbc8e94af8ed4337", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "58b636d8f88209ce036765aade41cba8", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}, "url": "/docs/compare/?release=9.5.6#9.5.6-77d838eeb1473632", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "bf4cb52160fd94e8fbc8e94af8ed4337", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}, "url": "/docs/compare/?release=9.4.11#9.4.11-77d838eeb1473632", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "8a4ca1a5d92dfa9aac0aae5141f0eb08", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}, "url": "/docs/compare/?release=9.3.16#9.3.16-77d838eeb1473632", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "1eef4bb7b78714b618129ec8963589ee", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"}, "url": "/docs/compare/?release=9.2.20#9.2.20-77d838eeb1473632", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-627877932d767b3f", "cves": [], "html": "<p>修复 <span>psql</span> 的 <code>\\crosstabview</code> 中对重复数据的错误报告（Tom Lane）</p>\n<p><span>psql</span> 抱怨同一交叉表单元有多个条目时，有时引用了错误的行和/或列值。</p>", "text": "修复 psql 的 \\crosstabview 中对重复数据的错误报告（Tom Lane） psql 抱怨同一交叉表单元有多个条目时，有时引用了错误的行和/或列值。", "title": "修复 psql 的 \\crosstabview 中对重复数据的错误报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "49f855e4aabe2ff08221ab84cd610a1be2bc0d05abfe2abcac7bc1ba69e7bece", "section_path": ["变更"], "commit_groups": [["6a8c67f50", "a3aef88e6"]], "identity_text": "Fix incorrect error reporting for duplicate data in psql's \\crosstabview (Tom Lane) psql sometimes quoted the wrong row and/or column values when complaining about multiple entries for the same crosstab cell.", "commit_aliases": ["6a8c67f50", "a3aef88e6"], "source_commits": ["6a8c67f50"], "source_entry_id": "9.6.2/changes/066", "db_id": "fa0632c448ae5ed97078c70281741608", "patch_ids": ["76b753eb330bde048733c759d4845900"], "statement_hash": "f622c3ee8fe7adbdf9fb2c5fa6742894c865ef3700bc487753601be9004d354f", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-c86790c533835e8d", "cves": [], "html": "<p>修复 <span>psql</span> 对 <code>ALTER DEFAULT PRIVILEGES</code> 的 Tab 补全（Gilles Darold、Stephen Frost）</p>", "text": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全（Gilles Darold、Stephen Frost）", "title": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "ebc3534f40f6987ec50ce7107b43a28e5e45c0473e58913eb02ad57b27aa31dd", "section_path": ["变更"], "commit_groups": [["16a2efdb2", "2022d594d", "26b55d669", "98f30a0e7", "dc61580bd", "f3fd531a5"]], "identity_text": "Fix psql's tab completion for ALTER DEFAULT PRIVILEGES (Gilles Darold, Stephen Frost)", "commit_aliases": ["16a2efdb2", "2022d594d", "26b55d669", "98f30a0e7", "dc61580bd", "f3fd531a5"], "source_commits": ["dc61580bd"], "source_entry_id": "9.6.2/changes/067", "db_id": "39cf1158ae74daa4b58cfcd084f8c908", "patch_ids": ["e7b0ec31822adf3aff2259d1f23ff8d9"], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493", "relations": [{"rule": 2, "type": "equivalent", "target": "300301c03eeb20361e3c44174604a3cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}}, {"rule": 2, "type": "equivalent", "target": "424f4ab11b2beeff894e1af2db875e74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}}, {"rule": 2, "type": "equivalent", "target": "a1bc105b6784ac48a0444b9350c18c67", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}}, {"rule": 2, "type": "equivalent", "target": "be83e01d61a42923210581e911a32989", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "300301c03eeb20361e3c44174604a3cd", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}, "url": "/docs/compare/?release=9.5.6#9.5.6-c86790c533835e8d", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "a1bc105b6784ac48a0444b9350c18c67", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}, "url": "/docs/compare/?release=9.4.11#9.4.11-c86790c533835e8d", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "424f4ab11b2beeff894e1af2db875e74", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}, "url": "/docs/compare/?release=9.3.16#9.3.16-c86790c533835e8d", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "be83e01d61a42923210581e911a32989", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"}, "url": "/docs/compare/?release=9.2.20#9.2.20-c86790c533835e8d", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-05e12adf00c48e23", "cves": [], "html": "<p>修复 <span>psql</span> 对 <code>ALTER TABLE t ALTER c DROP ...</code> 的 Tab 补全（Kyotaro Horiguchi）</p>", "text": "修复 psql 对 ALTER TABLE t ALTER c DROP ... 的 Tab 补全（Kyotaro Horiguchi）", "title": "修复 psql 对 ALTER TABLE t ALTER c DROP ... 的 Tab 补全", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "b4c9ba5f80393cff0c74b1ffd61c39bc314569cf22248a87c2a441a91c268d20", "section_path": ["变更"], "commit_groups": [["28735cc72", "404e66758"]], "identity_text": "Fix psql's tab completion for ALTER TABLE t ALTER c DROP ... (Kyotaro Horiguchi)", "commit_aliases": ["28735cc72", "404e66758"], "source_commits": ["28735cc72"], "source_entry_id": "9.6.2/changes/068", "db_id": "ca1480d6be419d77190f1a14e1a0fa83", "patch_ids": ["00900ec75edf07ebd0243f26da3c751c"], "statement_hash": "c983734f514c63868c1100c88219b40d6c5252a63cf8f2bbf2396a4639df91cd", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-b4e87a046ed587c0", "cves": [], "html": "<p>在 <span>psql</span> 中，把 <code>PAGER</code> 环境变量的空或全空白设置当作<span>“<span>不使用分页器</span>”</span>（Tom Lane）</p>\n<p>此前这种设置导致本应发给分页器的输出完全消失。</p>", "text": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”（Tom Lane） 此前这种设置导致本应发给分页器的输出完全消失。", "title": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "1dd24789d534316ac574a287d16348439e37c984ddce41ff89f195ae8fed5dd0", "section_path": ["变更"], "commit_groups": [["18f8f784c", "1ec5cc025", "370c7a863", "82eb5c514", "bb39f58f7", "ccb84dae1"]], "identity_text": "In psql, treat an empty or all-blank setting of the PAGER environment variable as meaning no pager (Tom Lane) Previously, such a setting caused output intended for the pager to vanish entirely.", "commit_aliases": ["18f8f784c", "1ec5cc025", "370c7a863", "82eb5c514", "bb39f58f7", "ccb84dae1"], "source_commits": ["bb39f58f7"], "source_entry_id": "9.6.2/changes/069", "db_id": "5398a79d78c70d471e631f9d90646066", "patch_ids": ["81988e124da61b079347f79f27578ec2"], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf", "relations": [{"rule": 2, "type": "equivalent", "target": "31f5d927c4eccb46d56991e647e5e335", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}}, {"rule": 2, "type": "equivalent", "target": "4462083b036c40f47bc4aee4208296b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}}, {"rule": 2, "type": "equivalent", "target": "766ba9a631742b05926183290fead72b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}}, {"rule": 2, "type": "equivalent", "target": "b9eca872baf4c74ad145f241bdefc229", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4462083b036c40f47bc4aee4208296b6", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}, "url": "/docs/compare/?release=9.5.6#9.5.6-b4e87a046ed587c0", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "31f5d927c4eccb46d56991e647e5e335", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}, "url": "/docs/compare/?release=9.4.11#9.4.11-b4e87a046ed587c0", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "766ba9a631742b05926183290fead72b", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}, "url": "/docs/compare/?release=9.3.16#9.3.16-b4e87a046ed587c0", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "b9eca872baf4c74ad145f241bdefc229", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"}, "url": "/docs/compare/?release=9.2.20#9.2.20-b4e87a046ed587c0", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-cb194d2ff6803edd", "cves": [], "html": "<p>改进 <code>contrib/dblink</code> 对低层 <span>libpq</span> 错误（如内存不足）的报告（Joe Conway）</p>", "text": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告（Joe Conway）", "title": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "6ea022d235a0a0e5613e66f3fddd77d760b3d8cbceda0eebb9910dec3f1f580b", "section_path": ["变更"], "commit_groups": [["2f802d95b", "44de099f8", "51126ccdb", "76943f54a", "80ca22aa6", "9b8507bfa"]], "identity_text": "Improve contrib/dblink's reporting of low-level libpq errors, such as out-of-memory (Joe Conway)", "commit_aliases": ["2f802d95b", "44de099f8", "51126ccdb", "76943f54a", "80ca22aa6", "9b8507bfa"], "source_commits": ["51126ccdb"], "source_entry_id": "9.6.2/changes/070", "db_id": "f7e01026e1a47f1bbda753dfc83fddb3", "patch_ids": ["a4c45a54f46cb13a44bdc15855dd1b08"], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650", "relations": [{"rule": 2, "type": "equivalent", "target": "82fc7c47cba9088cec956c07eb036737", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}}, {"rule": 2, "type": "equivalent", "target": "978abd96ba15d8bd4ad1ca4c636e1b3d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}}, {"rule": 2, "type": "equivalent", "target": "aff1165f3f84d0922c4d50503f700156", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}}, {"rule": 2, "type": "equivalent", "target": "c1e22408dc4cf7995a40f11ed4d27218", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "aff1165f3f84d0922c4d50503f700156", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}, "url": "/docs/compare/?release=9.5.6#9.5.6-cb194d2ff6803edd", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "c1e22408dc4cf7995a40f11ed4d27218", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}, "url": "/docs/compare/?release=9.4.11#9.4.11-cb194d2ff6803edd", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "978abd96ba15d8bd4ad1ca4c636e1b3d", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}, "url": "/docs/compare/?release=9.3.16#9.3.16-cb194d2ff6803edd", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "82fc7c47cba9088cec956c07eb036737", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"}, "url": "/docs/compare/?release=9.2.20#9.2.20-cb194d2ff6803edd", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-b28a8df0fb9aa81c", "cves": [], "html": "<p>让 <code>contrib/dblink</code> 在使用 <code>contrib/postgres_fdw</code> 外部服务器作为连接选项来源时忽略无关的服务器选项（Corey Huinker）</p>\n<p>此前如果外部服务器对象的选项不是 <span>libpq</span> 连接选项，就会出错。</p>", "text": "让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项（Corey Huinker） 此前如果外部服务器对象的选项不是 libpq 连接选项，就会出错。", "title": "让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "a5c64b046a4303688a80a9423c5c48a98364dae6861564493d607f5e4ff0ed14", "section_path": ["变更"], "commit_groups": [["150841fb9", "bd46cce21", "c44486838", "cb687e0ac", "d5c05f27a"]], "identity_text": "Teach contrib/dblink to ignore irrelevant server options when it uses a contrib/postgres_fdw foreign server as the source of connection options (Corey Huinker) Previously, if the foreign server object had options that were not also libpq connection options, an error occurred.", "commit_aliases": ["150841fb9", "bd46cce21", "c44486838", "cb687e0ac", "d5c05f27a"], "source_commits": ["150841fb9"], "source_entry_id": "9.6.2/changes/071", "db_id": "b43a9d82a40a9e939019bfcb84628e1d", "patch_ids": ["3de974bcc16ffab40885a40aa5f6275d"], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a", "relations": [{"rule": 2, "type": "equivalent", "target": "28b34472f0015ce86a765c04ae8c3679", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}}, {"rule": 2, "type": "equivalent", "target": "9002018720b19c625fc8935a51aa0792", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}}, {"rule": 2, "type": "equivalent", "target": "f14ee10a55358a2e5e616ccf03475d93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f14ee10a55358a2e5e616ccf03475d93", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}, "url": "/docs/compare/?release=9.5.6#9.5.6-b28a8df0fb9aa81c", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "9002018720b19c625fc8935a51aa0792", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}, "url": "/docs/compare/?release=9.4.11#9.4.11-b28a8df0fb9aa81c", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "28b34472f0015ce86a765c04ae8c3679", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1e913d8f30cf3d0ae4b8451592edf2b1cf6f1d9b5f30502ef8287e0368e2627a"}, "url": "/docs/compare/?release=9.3.16#9.3.16-b28a8df0fb9aa81c", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}]}, {"id": "9.6.2-1532eab3cbea9d83", "cves": [], "html": "<p>修复 <code>contrib/pageinspect</code> 的 GIN 索引函数中的可移植性问题（Peter Eisentraut、Tom Lane）</p>", "text": "修复 contrib/pageinspect 的 GIN 索引函数中的可移植性问题（Peter Eisentraut、Tom Lane）", "title": "修复 contrib/pageinspect 的 GIN 索引函数中的可移植性问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "d6c21fe55a76083f08ee3db989fed9c4b4b7f8ef2668a44d8e4caff4fff33725", "section_path": ["变更"], "commit_groups": [["14ee35799", "4774f6183", "56d34ba5f"], ["2a8783e44", "af636d7b5"]], "identity_text": "Fix portability problems in contrib/pageinspect's functions for GIN indexes (Peter Eisentraut, Tom Lane)", "commit_aliases": ["14ee35799", "2a8783e44", "4774f6183", "56d34ba5f", "af636d7b5"], "source_commits": ["2a8783e44", "4774f6183"], "source_entry_id": "9.6.2/changes/072", "db_id": "a51f10686a3ed1b9e065300d9768df20", "patch_ids": ["34d24aeaf6f5ecf46bdf09da5351e6d8", "c2404e571c5a07ee7078557e7cbcce9d"], "statement_hash": "c399b5889f1b81761cfed0ce18510f17e6c0ffbd76ae2ec7addb59af8e4d0489", "relations": [{"rule": 2, "type": "equivalent", "target": "6b38ea1b079702f80fb0e72b09688c5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c399b5889f1b81761cfed0ce18510f17e6c0ffbd76ae2ec7addb59af8e4d0489"}}], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6b38ea1b079702f80fb0e72b09688c5a", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "修复 contrib/pageinspect 的 GIN 索引函数中的可移植性问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c399b5889f1b81761cfed0ce18510f17e6c0ffbd76ae2ec7addb59af8e4d0489"}, "url": "/docs/compare/?release=9.5.6#9.5.6-1532eab3cbea9d83", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}]}, {"id": "9.6.2-79f1eefb4fc0aa54", "cves": [], "html": "<p>修复 Windows 上等待期间可能遗漏套接字读取事件的问题（Amit Kapila）</p>\n<p>这个错误对大多数使用无害，但已知会在尝试使用 pldebugger 扩展时导致挂起。</p>", "text": "修复 Windows 上等待期间可能遗漏套接字读取事件的问题（Amit Kapila） 这个错误对大多数使用无害，但已知会在尝试使用 pldebugger 扩展时导致挂起。", "title": "修复 Windows 上等待期间可能遗漏套接字读取事件的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "3f14963f17b47391984aa331787cf5ce964fe584c713acb547942f5d6c68705b", "section_path": ["变更"], "commit_groups": [["3b790d256", "b98e5513f"]], "identity_text": "Fix possible miss of socket read events while waiting on Windows (Amit Kapila) This error was harmless for most uses, but it is known to cause hangs when trying to use the pldebugger extension.", "commit_aliases": ["3b790d256", "b98e5513f"], "source_commits": ["b98e5513f"], "source_entry_id": "9.6.2/changes/073", "db_id": "d769ba9050e475ab7f4fb4bc5722b13b", "patch_ids": ["0d8c1c812bebe6b9c0585efd38a59ea6"], "statement_hash": "1678c41e1ab91b32ff326a4329296f783f11c4e2dbf38bc9897d6aab0695bc6a", "relations": [], "version": "9.6.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.2-e3a04de3fa88d654", "cves": [], "html": "<p>在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL（Christian Ullrich）</p>", "text": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL（Christian Ullrich）", "title": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "cca5e05788c2f00562745d8d480f8aaf63e43e533e2a355ab75d527509809bb7", "section_path": ["变更"], "commit_groups": [["056d62c5e", "3cb8bdfef", "4c3505eb4", "a9265258a", "b37da1e8a", "ec7eacfae"], ["5ab4b2ec4", "6c5d5918b", "784054579", "95b9b8a39", "b45a4949d", "d83c94292"]], "identity_text": "On Windows, ensure that environment variable changes are propagated to DLLs built with debug options (Christian Ullrich)", "commit_aliases": ["056d62c5e", "3cb8bdfef", "4c3505eb4", "5ab4b2ec4", "6c5d5918b", "784054579", "95b9b8a39", "a9265258a", "b37da1e8a", "b45a4949d", "d83c94292", "ec7eacfae"], "source_commits": ["056d62c5e", "784054579"], "source_entry_id": "9.6.2/changes/074", "db_id": "7162d92bab380922d7dff3b7ebb0a506", "patch_ids": ["545bdd547553424c9f24c0a923029d39", "9d52b70c4a6c7935ecb7ae9cff1c8432"], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b", "relations": [{"rule": 2, "type": "equivalent", "target": "92241514366458f8be2bc54c45b57b77", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}}, {"rule": 2, "type": "equivalent", "target": "ae6bb923bdf9d0c4aec9e93d8e422383", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}}, {"rule": 2, "type": "equivalent", "target": "bc60be7aeca51282c86243f04104edcb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}}, {"rule": 2, "type": "equivalent", "target": "c4d22fa01c7df0bcf97cfa9049c954ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ae6bb923bdf9d0c4aec9e93d8e422383", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}, "url": "/docs/compare/?release=9.5.6#9.5.6-e3a04de3fa88d654", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "92241514366458f8be2bc54c45b57b77", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}, "url": "/docs/compare/?release=9.4.11#9.4.11-e3a04de3fa88d654", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "c4d22fa01c7df0bcf97cfa9049c954ff", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}, "url": "/docs/compare/?release=9.3.16#9.3.16-e3a04de3fa88d654", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "bc60be7aeca51282c86243f04104edcb", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"}, "url": "/docs/compare/?release=9.2.20#9.2.20-e3a04de3fa88d654", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-8ca36f6367d6fab6", "cves": [], "html": "<p>把我们的时区库副本与 IANA tzcode2016j 同步（Tom Lane）</p>\n<p>这修复了若干问题，最显著的是当目标目录不支持硬链接时区数据安装失败。</p>", "text": "把我们的时区库副本与 IANA tzcode2016j 同步（Tom Lane） 这修复了若干问题，最显著的是当目标目录不支持硬链接时区数据安装失败。", "title": "把我们的时区库副本与 IANA tzcode2016j 同步", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "a44e7a11c943ffb7d98589c40ddbf8ea1bdc98dd7ab345dc5d92e3be89f48fb7", "section_path": ["变更"], "commit_groups": [["07bc2fc45", "1f87181e1", "22b1207a3", "7afafe8af", "ac6fc1b55", "c09478e15"], ["20559a854", "32416b0f9", "3a8f24abd", "6651ab058", "6653dbafd", "6e377ef0c"], ["2b7d715c0", "492fe48f0", "6f4d38dbe", "93513d1b6", "b95f4bf07", "ccf24539b"]], "identity_text": "Sync our copy of the timezone library with IANA release tzcode2016j (Tom Lane) This fixes various issues, most notably that timezone data installation failed if the target directory didn't support hard links.", "commit_aliases": ["07bc2fc45", "1f87181e1", "20559a854", "22b1207a3", "2b7d715c0", "32416b0f9", "3a8f24abd", "492fe48f0", "6651ab058", "6653dbafd", "6e377ef0c", "6f4d38dbe", "7afafe8af", "93513d1b6", "ac6fc1b55", "b95f4bf07", "c09478e15", "ccf24539b"], "source_commits": ["20559a854", "6f4d38dbe", "7afafe8af"], "source_entry_id": "9.6.2/changes/075", "db_id": "457a190719c70cfc1f2c096b9d846f54", "patch_ids": ["12d8ab92e79d61d9604ad395a8284db2", "62310cb1d9da714efcd8c4c8e4163746", "ca50f2a4c74009fb23844bc3d764e291"], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db", "relations": [{"rule": 2, "type": "equivalent", "target": "28247a8918f5b21afafdd608c376bd8b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}}, {"rule": 2, "type": "equivalent", "target": "54437dc8b7a05c4e4a66fd2ca9236a05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}}, {"rule": 2, "type": "equivalent", "target": "ca2c92a81d1310ca096285ae5b1ef55e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}}, {"rule": 2, "type": "equivalent", "target": "eba27fcaf1b4470b6ed9ad2c0f08c917", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "28247a8918f5b21afafdd608c376bd8b", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "把我们的时区库副本与 IANA tzcode2016j 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}, "url": "/docs/compare/?release=9.5.6#9.5.6-8ca36f6367d6fab6", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "ca2c92a81d1310ca096285ae5b1ef55e", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "把我们的时区库副本与 IANA tzcode2016j 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}, "url": "/docs/compare/?release=9.4.11#9.4.11-8ca36f6367d6fab6", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "eba27fcaf1b4470b6ed9ad2c0f08c917", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "把我们的时区库副本与 IANA tzcode2016j 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}, "url": "/docs/compare/?release=9.3.16#9.3.16-8ca36f6367d6fab6", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "54437dc8b7a05c4e4a66fd2ca9236a05", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "把我们的时区库副本与 IANA tzcode2016j 同步", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"}, "url": "/docs/compare/?release=9.2.20#9.2.20-8ca36f6367d6fab6", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}, {"id": "9.6.2-36d60f2ae6e8d309", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。</p>", "text": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "title": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.2/#id-1.11.6.27.5", "source_hash": "f6e74f81e111ed74450db74a9991d7d0099c91f65d42d32f851182cf6d266ca2", "section_path": ["变更"], "commit_groups": [["2b133be04", "308d86827", "4c729f471", "6da67b684", "a7b5de3ba", "ef878cc2c"]], "identity_text": "Update time zone data files to tzdata release 2016j for DST law changes in northern Cyprus (adding a new zone Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga, and Antarctica/Casey. Historical corrections for Italy, Kazakhstan, Malta, and Palestine. Switch to preferring numeric zone abbreviations for Tonga.", "commit_aliases": ["2b133be04", "308d86827", "4c729f471", "6da67b684", "a7b5de3ba", "ef878cc2c"], "source_commits": ["6da67b684"], "source_entry_id": "9.6.2/changes/076", "db_id": "b9138779daab18b2425a44234398696f", "patch_ids": ["ade96486225f3d7f6f73b80018a8e53b"], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713", "relations": [{"rule": 2, "type": "equivalent", "target": "1ecb13fc6bee48daab0328fe79047aea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}}, {"rule": 2, "type": "equivalent", "target": "984e50f01c50c81f2e6530606dab0861", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}}, {"rule": 2, "type": "equivalent", "target": "a8d123be1a72877ac194ad3da4bda463", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}}, {"rule": 2, "type": "equivalent", "target": "f8c284348cf875fa447124b6c63868f1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}}], "version": "9.6.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f8c284348cf875fa447124b6c63868f1", "kind": "equivalent", "version": "9.5.6", "label": "9.5.6", "title": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}, "url": "/docs/compare/?release=9.5.6#9.5.6-36d60f2ae6e8d309", "source_url": "/docs/release/9.5.6/#id-1.11.6.24.5"}, {"db_id": "1ecb13fc6bee48daab0328fe79047aea", "kind": "equivalent", "version": "9.4.11", "label": "9.4.11", "title": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}, "url": "/docs/compare/?release=9.4.11#9.4.11-36d60f2ae6e8d309", "source_url": "/docs/release/9.4.11/#id-1.11.6.20.5"}, {"db_id": "984e50f01c50c81f2e6530606dab0861", "kind": "equivalent", "version": "9.3.16", "label": "9.3.16", "title": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}, "url": "/docs/compare/?release=9.3.16#9.3.16-36d60f2ae6e8d309", "source_url": "/docs/release/9.3.16/#id-1.11.6.14.5"}, {"db_id": "a8d123be1a72877ac194ad3da4bda463", "kind": "equivalent", "version": "9.2.20", "label": "9.2.20", "title": "更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"}, "url": "/docs/compare/?release=9.2.20#9.2.20-36d60f2ae6e8d309", "source_url": "/docs/release/9.2.20/#id-1.11.6.9.5"}]}]}, {"date": "2016-10-27", "build": "9.6.1", "major": "9.6", "minor": 1, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.1", "eol_date": "2021-11-11", "date_text": "2016-10-27", "supported": false, "manual_url": "/docs/9.6/release-9-6-1.html", "source_url": "/docs/release/9.6.1/", "entry_count": 28, "placeholder": false, "content_hash": "e71556a487a0f578f60e49a36e05eaf9a794cb9ae21b37b2234e753a0f6e06a0", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 28, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你的安装受到下面前两条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的空闲空间映射和/或可见性映射。</p>", "compatibility_count": 0, "label": "9.6.1", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3625, "support_days": -1784, "entries": [{"id": "9.6.1-11f8f9985f40fab4", "cves": [], "html": "<p>修复关系空闲空间映射和可见性映射截断的 WAL 记录（Pavan Deolasee、Heikki Linnakangas）</p>\n<p>这些文件有可能在崩溃恢复期间未被正确恢复，或者在备库服务器上被错误写入。空闲空间映射中的虚假条目可能导致访问已从关系中截断掉的页，通常产生诸如 <span>“<span>could not read block <em><code>XXX</code></em>: read only 0 of 8192 bytes</span>”</span> 的错误。如果启用了校验和，可见性映射中的校验和失败也是可能的。</p>\n<p>判断是否存在问题以及如何修复的程序在<a href=\"https://wiki.postgresql.org/wiki/Free_Space_Map_Problems\">https://wiki.postgresql.org/wiki/Free_Space_Map_Problems</a>中讨论。</p>", "text": "修复关系空闲空间映射和可见性映射截断的 WAL 记录（Pavan Deolasee、Heikki Linnakangas） 这些文件有可能在崩溃恢复期间未被正确恢复，或者在备库服务器上被错误写入。空闲空间映射中的虚假条目可能导致访问已从关系中截断掉的页，通常产生诸如 “could not read block XXX: read only 0 of 8192 bytes” 的错误。如果启用了校验和，可见性映射中的校验和失败也是可能的。 判断是否存在问题以及如何修复的程序在https://wiki.postgresql.org/wiki/Free_Space_Map_Problems中讨论。", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "cd3ea0102e9a5a4f7116bbedbaf3a4c77cb441af55d076783a92c1e0276104da", "section_path": ["变更"], "commit_groups": [["142530ef0", "1c02ee314", "2523bef15", "917dc7d23", "b82573d6e"]], "identity_text": "Fix WAL-logging of truncation of relation free space maps and visibility maps (Pavan Deolasee, Heikki Linnakangas) It was possible for these files to not be correctly restored during crash recovery, or to be written incorrectly on a standby server. Bogus entries in a free space map could lead to attempts to access pages that have been truncated away from the relation itself, typically producing errors like could not read block XXX: read only 0 of 8192 bytes. Checksum failures in the visibility map are also possible, if checksumming is enabled. Procedures for determining whether there is a problem and repairing it if so are discussed at .", "commit_aliases": ["142530ef0", "1c02ee314", "2523bef15", "917dc7d23", "b82573d6e"], "source_commits": ["142530ef0"], "source_entry_id": "9.6.1/changes/001", "db_id": "f7aa35ae515033d8874d9c9a6d5aa129", "patch_ids": ["4a3d761dc18937abc8bd445a2277d498"], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734", "relations": [{"rule": 2, "type": "equivalent", "target": "2e98beda261d76d5e2d451d7d589fe76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}}, {"rule": 2, "type": "equivalent", "target": "b8931467596606ee308ef7bf67015c41", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}}, {"rule": 2, "type": "equivalent", "target": "ec09950c4b42590a3a372f8dbd97440b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e98beda261d76d5e2d451d7d589fe76", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}, "url": "/docs/compare/?release=9.5.5#9.5.5-11f8f9985f40fab4", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "ec09950c4b42590a3a372f8dbd97440b", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}, "url": "/docs/compare/?release=9.4.10#9.4.10-11f8f9985f40fab4", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "b8931467596606ee308ef7bf67015c41", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复关系空闲空间映射和可见性映射截断的 WAL 记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "27cdeeeff24fa935a7c84bfda055fcf082be79fb96036a1751c3a8e5058cc734"}, "url": "/docs/compare/?release=9.3.15#9.3.15-11f8f9985f40fab4", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}]}, {"id": "9.6.1-f1e12c15a6064076", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 把关系可见性映射重写为 9.6 格式时可能的数据损坏（Tom Lane）</p>\n<p>在大端机器上，新可见性映射的字节以错误顺序写入，导致完全错误的映射。在 Windows 上，旧映射以文本模式读取，如果映射碰巧包含匹配回车/ 换行序列的连续字节则导致错误结果。后者几乎总是由于映射文件看起来长度错误而导致 <span>pg_upgrade</span> 失败。</p>\n<p>如果你在使用大端机器（许多非 Intel 架构是大端的）并且使用过 <span>pg_upgrade</span> 从 9.6 之前的版本升级，应当假定所有可见性映射都是错误的、需要重新生成。用 <code>contrib/pg_visibility</code> 的 <code>pg_truncate_visibility_map()</code> 函数截断每个关系的可见性映射就足够了。更多信息见<a href=\"https://wiki.postgresql.org/wiki/Visibility_Map_Problems\">https://wiki.postgresql.org/wiki/Visibility_Map_Problems</a>。</p>", "text": "修复 pg_upgrade 把关系可见性映射重写为 9.6 格式时可能的数据损坏（Tom Lane） 在大端机器上，新可见性映射的字节以错误顺序写入，导致完全错误的映射。在 Windows 上，旧映射以文本模式读取，如果映射碰巧包含匹配回车/ 换行序列的连续字节则导致错误结果。后者几乎总是由于映射文件看起来长度错误而导致 pg_upgrade 失败。 如果你在使用大端机器（许多非 Intel 架构是大端的）并且使用过 pg_upgrade 从 9.6 之前的版本升级，应当假定所有可见性映射都是错误的、需要重新生成。用 contrib/pg_visibility 的 pg_truncate_visibility_map() 函数截断每个关系的可见性映射就足够了。更多信息见https://wiki.postgresql.org/wiki/Visibility_Map_Problems。", "title": "修复 pg_upgrade 把关系可见性映射重写为 9.6 格式时可能的数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "0eed2d61e89adf5d622b2d2f53d3b593c210f7edf347dfe2af06dca51141713b", "section_path": ["变更"], "commit_groups": [["5afcd2aa7", "b6d906073"]], "identity_text": "Fix possible data corruption when pg_upgrade rewrites a relation visibility map into 9.6 format (Tom Lane) On big-endian machines, bytes of the new visibility map were written in the wrong order, leading to a completely incorrect map. On Windows, the old map was read using text mode, leading to incorrect results if the map happened to contain consecutive bytes that matched a carriage return/line feed sequence. The latter error would almost always lead to a pg_upgrade failure due to the map file appearing to be the wrong length. If you are using a big-endian machine (many non-Intel architectures are big-endian) and have used pg_upgrade to upgrade from a pre-9.6 release, you should assume that all visibility maps are incorrect and need to be regenerated. It is sufficient to truncate each relation's visibility map with contrib/pg_visibility's pg_truncate_visibility_map() function. For more information see .", "commit_aliases": ["5afcd2aa7", "b6d906073"], "source_commits": ["b6d906073"], "source_entry_id": "9.6.1/changes/002", "db_id": "9f87f6defbd0712a1660ade0a8953e4b", "patch_ids": ["be37f68ed14681e8da1eb42959850c69"], "statement_hash": "fbc2bbb3153af8c659c71db3eb98f987053c96273a26e96ddfc54b9b88a8105f", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-a0bb7954a1b1e2db", "cves": [], "html": "<p>不再对 <code>INSERT ... ON CONFLICT</code> 中的自冲突插入抛出序列化错误（Thomas Munro、Peter Geoghegan）</p>", "text": "不再对 INSERT ... ON CONFLICT 中的自冲突插入抛出序列化错误（Thomas Munro、Peter Geoghegan）", "title": "不再对 INSERT ... ON CONFLICT 中的自冲突插入抛出序列化错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "8768e8184b579541a2a94f5408c8edf7cc2febe951a1ddcff03d5be21a0d72f5", "section_path": ["变更"], "commit_groups": [["65d85b8f9", "a6c0a5b6e", "c4016fcb1"]], "identity_text": "Don't throw serialization errors for self-conflicting insertions in INSERT ... ON CONFLICT (Thomas Munro, Peter Geoghegan)", "commit_aliases": ["65d85b8f9", "a6c0a5b6e", "c4016fcb1"], "source_commits": ["c4016fcb1"], "source_entry_id": "9.6.1/changes/003", "db_id": "a71c63c6645ce0253391abccc57a5638", "patch_ids": ["a00463c5e71a6404f69027742e6dff70"], "statement_hash": "c127d9cacb2d73f3395dbd9f01f659d1f36652880c92cd494e5d9b8f13a66e3e", "relations": [{"rule": 2, "type": "equivalent", "target": "4925fd02193c528c2bf941a69d416d4a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c127d9cacb2d73f3395dbd9f01f659d1f36652880c92cd494e5d9b8f13a66e3e"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4925fd02193c528c2bf941a69d416d4a", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "不再对 INSERT ... ON CONFLICT 中的自冲突插入抛出序列化错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c127d9cacb2d73f3395dbd9f01f659d1f36652880c92cd494e5d9b8f13a66e3e"}, "url": "/docs/compare/?release=9.5.5#9.5.5-a0bb7954a1b1e2db", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-2b4b3fe07ecdefae", "cves": [], "html": "<p>修复使用 <code>DISTINCT</code> 的聚合函数执行中的释放后使用风险（Peter Geoghegan）</p>\n<p>这可能导致崩溃或错误查询结果。</p>", "text": "修复使用 DISTINCT 的聚合函数执行中的释放后使用风险（Peter Geoghegan） 这可能导致崩溃或错误查询结果。", "title": "修复使用 DISTINCT 的聚合函数执行中的释放后使用风险", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "f5df7fa5bdf56cc1f98f098c46d5e67ba635e506beca11409cf3e3ea6754fda7", "section_path": ["变更"], "commit_groups": [["a5f0bd77a", "d8589946d"]], "identity_text": "Fix use-after-free hazard in execution of aggregate functions using DISTINCT (Peter Geoghegan) This could lead to a crash or incorrect query results.", "commit_aliases": ["a5f0bd77a", "d8589946d"], "source_commits": ["a5f0bd77a"], "source_entry_id": "9.6.1/changes/004", "db_id": "1fe654cc162d25b34a32a148bf4b91e6", "patch_ids": ["7bcf6fcc18a3a99fad3d32b2f8839554"], "statement_hash": "43eb45108dae92f21d12ed088c3683604e49317e165b53896edc403c4f45b233", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-e567278f84ca3732", "cves": [], "html": "<p>修复用作窗口函数的多态聚合的错误处理（Tom Lane）</p>\n<p>聚合的转换函数被告知其第一个参数和结果是聚合的输出类型而不是状态类型。这导致多态转换函数的错误或崩溃。</p>", "text": "修复用作窗口函数的多态聚合的错误处理（Tom Lane） 聚合的转换函数被告知其第一个参数和结果是聚合的输出类型而不是状态类型。这导致多态转换函数的错误或崩溃。", "title": "修复用作窗口函数的多态聚合的错误处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "24b3dc65cc0aeb8a41c36f373f863e54a36d52d8a86c0c771c39de225a527cb5", "section_path": ["变更"], "commit_groups": [["ac4a9d92f", "dca25c256"]], "identity_text": "Fix incorrect handling of polymorphic aggregates used as window functions (Tom Lane) The aggregate's transition function was told that its first argument and result were of the aggregate's output type, rather than the state type. This led to errors or crashes with polymorphic transition functions.", "commit_aliases": ["ac4a9d92f", "dca25c256"], "source_commits": ["dca25c256"], "source_entry_id": "9.6.1/changes/005", "db_id": "07907458595e08b42a2fe02357e5c7ee", "patch_ids": ["2db20fa516cd2450acb901a23cf0ce01"], "statement_hash": "0abcc2fd9a49db54d85da9060280029f7107eae04a71a2ee136239662a4924b2", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-e96ca4a48827b1c2", "cves": [], "html": "<p>修复对启用了行级安全的表使用带列名列表的 <code>COPY</code>（Adam Brightwell）</p>", "text": "修复对启用了行级安全的表使用带列名列表的 COPY（Adam Brightwell）", "title": "修复对启用了行级安全的表使用带列名列表的 COPY", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "2fccf0535f2521e5288f8420b32aa65453629ac1b0ba31446675e4ce334f8217", "section_path": ["变更"], "commit_groups": [["190765a05", "647a86e37", "814b9e9b8"]], "identity_text": "Fix COPY with a column name list from a table that has row-level security enabled (Adam Brightwell)", "commit_aliases": ["190765a05", "647a86e37", "814b9e9b8"], "source_commits": ["190765a05"], "source_entry_id": "9.6.1/changes/006", "db_id": "67d5ac0ca5a3eed110d770ca22cc9e1c", "patch_ids": ["1d627f4a58bc5427a277f089f6667fbc"], "statement_hash": "c9b07a2acda4ca684db76cc1fba42bb9a4718b98ff9e024dd532efc56ca477bc", "relations": [{"rule": 2, "type": "equivalent", "target": "d899869d00de43211c7aa6d89fbe38c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9b07a2acda4ca684db76cc1fba42bb9a4718b98ff9e024dd532efc56ca477bc"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d899869d00de43211c7aa6d89fbe38c8", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复对启用了行级安全的表使用带列名列表的 COPY", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c9b07a2acda4ca684db76cc1fba42bb9a4718b98ff9e024dd532efc56ca477bc"}, "url": "/docs/compare/?release=9.5.5#9.5.5-e96ca4a48827b1c2", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-1ce213d7a7e480a4", "cves": [], "html": "<p>修复<a href=\"/docs/9.6/runtime-config-statistics.html#GUC-TRACK-IO-TIMING\">track_io_timing</a>打开时 <code>EXPLAIN</code> 发出有效 XML（Markus Winand）</p>\n<p>此前 XML 输出格式选项产生语法无效的标记，如 <code>&lt;I/O-Read-Time&gt;</code>。现在它被渲染为 <code>&lt;I-O-Read-Time&gt;</code>。</p>", "text": "修复track_io_timing打开时 EXPLAIN 发出有效 XML（Markus Winand） 此前 XML 输出格式选项产生语法无效的标记，如 <I/O-Read-Time>。现在它被渲染为 <I-O-Read-Time>。", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "ea7946ab4b8aa56c96bd9416427c9015099184e2554743e0bede29400e68c0bd", "section_path": ["变更"], "commit_groups": [["033666515", "709e461be", "adb199711", "cc0e4c567", "edb514306", "f17c26dbd"]], "identity_text": "Fix EXPLAIN to emit valid XML when guc-track-io-timing is on (Markus Winand) Previously the XML output-format option produced syntactically invalid tags such as <I/O-Read-Time>. That is now rendered as <I-O-Read-Time>.", "commit_aliases": ["033666515", "709e461be", "adb199711", "cc0e4c567", "edb514306", "f17c26dbd"], "source_commits": ["033666515"], "source_entry_id": "9.6.1/changes/007", "db_id": "c35805d056ec383a472956b186d0e0c6", "patch_ids": ["f840ff87162cc73e5f38617abf664421"], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099", "relations": [{"rule": 2, "type": "equivalent", "target": "031d3c079a7113c9bce46abaecdf1492", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}, {"rule": 2, "type": "equivalent", "target": "2fa487464b0dfddc6e527f5a845fa85d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}, {"rule": 2, "type": "equivalent", "target": "684f2a691ee59de4a4bcc3301b1e7459", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}, {"rule": 2, "type": "equivalent", "target": "7d7e9a5d8afdcb8105c7b6a186564444", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2fa487464b0dfddc6e527f5a845fa85d", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.5.5#9.5.5-1ce213d7a7e480a4", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "684f2a691ee59de4a4bcc3301b1e7459", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.4.10#9.4.10-1ce213d7a7e480a4", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "7d7e9a5d8afdcb8105c7b6a186564444", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.3.15#9.3.15-1ce213d7a7e480a4", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "031d3c079a7113c9bce46abaecdf1492", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复track_io_timing打开时 EXPLAIN 发出有效 XML", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7684251d5d0c3e099470838cc7d80527d0d235a04ca6bbc27cd999a07c9cd099"}, "url": "/docs/compare/?release=9.2.19#9.2.19-1ce213d7a7e480a4", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.6.1-41bacac096d86e52", "cves": [], "html": "<p>修复预备事务中 <code>TRUNCATE</code> 的统计信息更新（Stas Kelvich）</p>", "text": "修复预备事务中 TRUNCATE 的统计信息更新（Stas Kelvich）", "title": "修复预备事务中 TRUNCATE 的统计信息更新", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "8d6380e3dc5b2c6ff31ec270aebc794f71ae1ca6c44406908afa082116824c0a", "section_path": ["变更"], "commit_groups": [["03f2bf70a", "3cd504254", "81e82a2bd"]], "identity_text": "Fix statistics update for TRUNCATE in a prepared transaction (Stas Kelvich)", "commit_aliases": ["03f2bf70a", "3cd504254", "81e82a2bd"], "source_commits": ["03f2bf70a"], "source_entry_id": "9.6.1/changes/008", "db_id": "449a2512af576a09b3bdfd593f77d9cb", "patch_ids": ["f1e9112301fef7d8455574626b453033"], "statement_hash": "981c2e6e7c8d983c70c6a0235524fe9f7c0dbbc00a2fcc63122610d97574d8d4", "relations": [{"rule": 2, "type": "equivalent", "target": "4f00adb909846432c51419a45c9a5479", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "981c2e6e7c8d983c70c6a0235524fe9f7c0dbbc00a2fcc63122610d97574d8d4"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f00adb909846432c51419a45c9a5479", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复预备事务中 TRUNCATE 的统计信息更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "981c2e6e7c8d983c70c6a0235524fe9f7c0dbbc00a2fcc63122610d97574d8d4"}, "url": "/docs/compare/?release=9.5.5#9.5.5-41bacac096d86e52", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-57214dd6616bc23b", "cves": [], "html": "<p>修复创建或更改表时合并继承 <code>CHECK</code> 约束的 bug（Tom Lane、Amit Langote）</p>\n<p>允许以任一顺序向父表和子表添加相同的 <code>CHECK</code> 约束。防止父表的有效约束与子表的 <code>NOT VALID</code> 约束合并。同样防止 <code>NO INHERIT</code> 子约束与继承约束合并。</p>", "text": "修复创建或更改表时合并继承 CHECK 约束的 bug（Tom Lane、Amit Langote） 允许以任一顺序向父表和子表添加相同的 CHECK 约束。防止父表的有效约束与子表的 NOT VALID 约束合并。同样防止 NO INHERIT 子约束与继承约束合并。", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "9e0aa396bbf22322bcc9b91a4a4dc5875617343e5cf728b26d24abec5f43cafa", "section_path": ["变更"], "commit_groups": [["12230c478", "56a047f46", "a54faa659", "b605aeba0", "d1a9f128d", "e55a946a8"], ["3217ac3a9", "3cca13cbf", "6f2db29ec", "f0bf0f233", "f2024d59a", "f9e8b05e5"]], "identity_text": "Fix bugs in merging inherited CHECK constraints while creating or altering a table (Tom Lane, Amit Langote) Allow identical CHECK constraints to be added to a parent and child table in either order. Prevent merging of a valid constraint from the parent table with a NOT VALID constraint on the child. Likewise, prevent merging of a NO INHERIT child constraint with an inherited constraint.", "commit_aliases": ["12230c478", "3217ac3a9", "3cca13cbf", "56a047f46", "6f2db29ec", "a54faa659", "b605aeba0", "d1a9f128d", "e55a946a8", "f0bf0f233", "f2024d59a", "f9e8b05e5"], "source_commits": ["b605aeba0", "f9e8b05e5"], "source_entry_id": "9.6.1/changes/009", "db_id": "820976eee5d0d58fc24e6faef69ef024", "patch_ids": ["7855b05750225fc106ea8dbc42e37eb2", "7c1d3ebdad386a3a1549a646ddd79b86"], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a", "relations": [{"rule": 2, "type": "equivalent", "target": "17c3b5c88a4e18eeb9db0d79f1bd4738", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}, {"rule": 2, "type": "equivalent", "target": "864da9828cbc9dedf3a48fbb88838d2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}, {"rule": 2, "type": "equivalent", "target": "cf4210aa72e5ceb04465bf6396e92fd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}, {"rule": 2, "type": "equivalent", "target": "d0ba967b9080e8d3d7c374af62b71ddc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d0ba967b9080e8d3d7c374af62b71ddc", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.5.5#9.5.5-57214dd6616bc23b", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "864da9828cbc9dedf3a48fbb88838d2c", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.4.10#9.4.10-57214dd6616bc23b", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "cf4210aa72e5ceb04465bf6396e92fd3", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.3.15#9.3.15-57214dd6616bc23b", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "17c3b5c88a4e18eeb9db0d79f1bd4738", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "修复创建或更改表时合并继承 CHECK 约束的 bug", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c6b2020261c2724cfab703b00857db00700c29782efcb621b3753fb01eaa86a"}, "url": "/docs/compare/?release=9.2.19#9.2.19-57214dd6616bc23b", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}]}, {"id": "9.6.1-862ecac105bdca83", "cves": [], "html": "<p>在 <code>pg_settings</code>.<code>unit</code> 中为 <code>min_wal_size</code> 和 <code>max_wal_size</code> 显示合理的值（Tom Lane）</p>", "text": "在 pg_settings.unit 中为 min_wal_size 和 max_wal_size 显示合理的值（Tom Lane）", "title": "在 pg_settings.unit 中为 min_wal_size 和 max_wal_size 显示合理的值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "3f13b0bc3ca897bf29ed2c8f4adb48026656999b50559ed1f27bf55a6648a8c3", "section_path": ["变更"], "commit_groups": [["6bc811c99", "993d94c59", "f50fa46cc"]], "identity_text": "Show a sensible value in pg_settings.unit for min_wal_size and max_wal_size (Tom Lane)", "commit_aliases": ["6bc811c99", "993d94c59", "f50fa46cc"], "source_commits": ["993d94c59"], "source_entry_id": "9.6.1/changes/010", "db_id": "b0badb4d8e0ca5c536eb7fe9efed9439", "patch_ids": ["23e8fab3206c2aa11d48ee35b6a0388e"], "statement_hash": "11bd97214d153c36ec602bba6c569b4e9a227dbcf57d661037d3acf23019a5c6", "relations": [{"rule": 2, "type": "equivalent", "target": "b74c3b34bd426427dbb634addc6f069f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "11bd97214d153c36ec602bba6c569b4e9a227dbcf57d661037d3acf23019a5c6"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b74c3b34bd426427dbb634addc6f069f", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 pg_settings.unit 中为 min_wal_size 和 max_wal_size 显示合理的值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "11bd97214d153c36ec602bba6c569b4e9a227dbcf57d661037d3acf23019a5c6"}, "url": "/docs/compare/?release=9.5.5#9.5.5-862ecac105bdca83", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-977d94687865d44a", "cves": [], "html": "<p>修复 <code>jsonb_set()</code> 中数组元素的替换（Tom Lane）</p>\n<p>如果目标是现有的 JSON 数组元素，它被删除而不是被替换为新值。</p>", "text": "修复 jsonb_set() 中数组元素的替换（Tom Lane） 如果目标是现有的 JSON 数组元素，它被删除而不是被替换为新值。", "title": "修复 jsonb_set() 中数组元素的替换", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "7d5c7afa90a73d29e9f10028da9c81d5f8d2eb0703b1e35140ea5dee3a8b0870", "section_path": ["变更"], "commit_groups": [["0e9e64c07", "9c4cc9e2c"]], "identity_text": "Fix replacement of array elements in jsonb_set() (Tom Lane) If the target is an existing JSON array element, it got deleted instead of being replaced with a new value.", "commit_aliases": ["0e9e64c07", "9c4cc9e2c"], "source_commits": ["0e9e64c07"], "source_entry_id": "9.6.1/changes/011", "db_id": "11e3dd2c6235912220fcbea99115b5f2", "patch_ids": ["34d6cbefd12e68c1ffe120d78e8914ac"], "statement_hash": "da0657c9b7214eb1a3d332aaf30672104d1babbc3529dd136c0d0fd2054b5f87", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-4eb1a050d783d079", "cves": [], "html": "<p>避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏（Thomas Munro、Peter Geoghegan、Tom Lane）</p>", "text": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏（Thomas Munro、Peter Geoghegan、Tom Lane）", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "f6707b5ec6072a51de6a2209466027bacabc8eff011e822827834c86feae0d8e", "section_path": ["变更"], "commit_groups": [["5beb73b49", "6292c2339", "676c60375", "913e7e598", "9bc01e7a4", "9ec21591f", "d4fa18a55"], ["8f1fb7d62", "beac79369", "fdcee9f1f"]], "identity_text": "Avoid very-low-probability data corruption due to testing tuple visibility without holding buffer lock (Thomas Munro, Peter Geoghegan, Tom Lane)", "commit_aliases": ["5beb73b49", "6292c2339", "676c60375", "8f1fb7d62", "913e7e598", "9bc01e7a4", "9ec21591f", "beac79369", "d4fa18a55", "fdcee9f1f"], "source_commits": ["5beb73b49", "fdcee9f1f"], "source_entry_id": "9.6.1/changes/012", "db_id": "faba4ef996319c8db73db30748abf489", "patch_ids": ["a6b7e34970060495328385d27c213a3c", "c0908100272a961771a5c51c610c7cb0"], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37", "relations": [{"rule": 2, "type": "equivalent", "target": "53b0b52d899de881f8586469efa7f5aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "6ca408c5775b0169d72f4bf6b3f53cbe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "ae85002bd79a9c04b168f6dc9ace9ce5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "f765abee4edf5f8c07e5c00859b6aef5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}, {"rule": 2, "type": "equivalent", "target": "fec739de452ca83cbdf70ca3235da08b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fec739de452ca83cbdf70ca3235da08b", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.5.5#9.5.5-4eb1a050d783d079", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "53b0b52d899de881f8586469efa7f5aa", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.4.10#9.4.10-4eb1a050d783d079", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "f765abee4edf5f8c07e5c00859b6aef5", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.3.15#9.3.15-4eb1a050d783d079", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "6ca408c5775b0169d72f4bf6b3f53cbe", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.2.19#9.2.19-4eb1a050d783d079", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "ae85002bd79a9c04b168f6dc9ace9ce5", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dc3a7ed96669ea608d4c733bb9f23d94722acad9fff15a88d593a50d15116c37"}, "url": "/docs/compare/?release=9.1.24#9.1.24-4eb1a050d783d079", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.6.1-4513d994931e48ce", "cves": [], "html": "<p>跨服务器重启保留提交时间戳（Julien Rouhaud、Craig Ringer）</p>\n<p>在打开<a href=\"/docs/9.6/runtime-config-replication.html#GUC-TRACK-COMMIT-TIMESTAMP\">track_commit_timestamp</a>的情况下，干净的服务器重启后旧的提交时间戳变得不可访问。</p>", "text": "跨服务器重启保留提交时间戳（Julien Rouhaud、Craig Ringer） 在打开track_commit_timestamp的情况下，干净的服务器重启后旧的提交时间戳变得不可访问。", "title": "跨服务器重启保留提交时间戳", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "717b3358cac01b334e4ce7e2a7b760c54f07722d773bb5d6d2374d7bf7fe4f0b", "section_path": ["变更"], "commit_groups": [["00f15338b", "7a2fa5774", "c8329f934"]], "identity_text": "Preserve commit timestamps across server restart (Julien Rouhaud, Craig Ringer) With guc-track-commit-timestamp turned on, old commit timestamps became inaccessible after a clean server restart.", "commit_aliases": ["00f15338b", "7a2fa5774", "c8329f934"], "source_commits": ["c8329f934"], "source_entry_id": "9.6.1/changes/013", "db_id": "1953461365bff77eb10e05f6b4eef6da", "patch_ids": ["6e5a5ee1506bd3492da1a6854d295621"], "statement_hash": "548c5da096bd7ac5055abf5ddce51bb4c7220f0786d51a4320c3a10d0236da0e", "relations": [{"rule": 2, "type": "equivalent", "target": "06691e7afa92b25002b15fe22317c5c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "548c5da096bd7ac5055abf5ddce51bb4c7220f0786d51a4320c3a10d0236da0e"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "06691e7afa92b25002b15fe22317c5c3", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "跨服务器重启保留提交时间戳", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "548c5da096bd7ac5055abf5ddce51bb4c7220f0786d51a4320c3a10d0236da0e"}, "url": "/docs/compare/?release=9.5.5#9.5.5-4513d994931e48ce", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-dcae3583b71426d8", "cves": [], "html": "<p>修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作（Andres Freund）</p>", "text": "修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作（Andres Freund）", "title": "修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "f6fb6f26440f6bca01f32e2bbb578ee5790d78210517c23629e8904c5c397548", "section_path": ["变更"], "commit_groups": [["07172b20f", "61633f790", "76c0b73df", "ce603a34a"]], "identity_text": "Fix logical WAL decoding to work properly when a subtransaction's WAL output is large enough to spill to disk (Andres Freund)", "commit_aliases": ["07172b20f", "61633f790", "76c0b73df", "ce603a34a"], "source_commits": ["76c0b73df"], "source_entry_id": "9.6.1/changes/014", "db_id": "7fbb078e2be4bbd5ba0ce87dfe2ac2b2", "patch_ids": ["a6f377cf73f521524477669681b5d062"], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550", "relations": [{"rule": 2, "type": "equivalent", "target": "470a039e7a7d709e873acc07b7315fed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550"}}, {"rule": 2, "type": "equivalent", "target": "523527d73ae0b1bd4d93ce8d8679d2ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "470a039e7a7d709e873acc07b7315fed", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550"}, "url": "/docs/compare/?release=9.5.5#9.5.5-dcae3583b71426d8", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "523527d73ae0b1bd4d93ce8d8679d2ff", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fb79dd6fa77aee0939f4bd03a29e002dc5b2c387280a8afe3431ec8d2cdb5550"}, "url": "/docs/compare/?release=9.4.10#9.4.10-dcae3583b71426d8", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}]}, {"id": "9.6.1-63ee0159edde63b5", "cves": [], "html": "<p>修复逻辑 WAL 解码中的悬空指针问题（Stas Kelvich）</p>", "text": "修复逻辑 WAL 解码中的悬空指针问题（Stas Kelvich）", "title": "修复逻辑 WAL 解码中的悬空指针问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "6a0f187e1ee12aafb9542424d59ca8f3abd59a332159025e992ee824c10b28e6", "section_path": ["变更"], "commit_groups": [["308985b0b", "32841fa32"]], "identity_text": "Fix dangling-pointer problem in logical WAL decoding (Stas Kelvich)", "commit_aliases": ["308985b0b", "32841fa32"], "source_commits": ["32841fa32"], "source_entry_id": "9.6.1/changes/015", "db_id": "d773713b8973e28cbff69d2411f617f2", "patch_ids": ["03b8b132f63fa097f8866093ec86daec"], "statement_hash": "8f99283977240483bd34c4b532bc8b56b64c78ef3ef2f9dac36f726156a52e07", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-340ef99e357b0024", "cves": [], "html": "<p>在 Linux 上尝试使用大页时，把共享内存分配请求舍入到实际大页大小的整数倍（Tom Lane）</p>\n<p>这避免了在默认大页大小非典型的系统上 <code>munmap()</code> 期间可能的失败。除崩溃恢复情况外，除了日志消息之外没有不良影响。</p>", "text": "在 Linux 上尝试使用大页时，把共享内存分配请求舍入到实际大页大小的整数倍（Tom Lane） 这避免了在默认大页大小非典型的系统上 munmap() 期间可能的失败。除崩溃恢复情况外，除了日志消息之外没有不良影响。", "title": "在 Linux 上尝试使用大页时，把共享内存分配请求舍入到实际大页大小的整数倍", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "9781c97e82f584b22cf4cca4126eec25f058395b784f88110c0bf1d279e2ea0d", "section_path": ["变更"], "commit_groups": [["2dd9e315d", "43d17489d", "6d3cbbf59", "cb775768e"]], "identity_text": "Round shared-memory allocation request to a multiple of the actual huge page size when attempting to use huge pages on Linux (Tom Lane) This avoids possible failures during munmap() on systems with atypical default huge page sizes. Except in crash-recovery cases, there were no ill effects other than a log message.", "commit_aliases": ["2dd9e315d", "43d17489d", "6d3cbbf59", "cb775768e"], "source_commits": ["2dd9e315d"], "source_entry_id": "9.6.1/changes/016", "db_id": "a066e114fd293025640585d59d825a63", "patch_ids": ["a0a20e03ac02d752f088069d16cfe34b"], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b", "relations": [{"rule": 2, "type": "equivalent", "target": "152b0f62f3ead8fce5a3b6113a2d9cf4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b"}}, {"rule": 2, "type": "equivalent", "target": "a670574ba6a5c60b94b85ba20dc0c50a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a670574ba6a5c60b94b85ba20dc0c50a", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 Linux 上尝试使用大页时，把共享内存分配请求舍入到实际大页大小的整数倍", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b"}, "url": "/docs/compare/?release=9.5.5#9.5.5-340ef99e357b0024", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "152b0f62f3ead8fce5a3b6113a2d9cf4", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "在 Linux 上尝试使用大页时，把共享内存分配请求舍入到实际大页大小的整数倍", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7122a074c72b2f59b6f7bb786570bb6d918344510cdd05f57c9b0a3bc5dddc0b"}, "url": "/docs/compare/?release=9.4.10#9.4.10-340ef99e357b0024", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}]}, {"id": "9.6.1-8003d20ba0ae4da2", "cves": [], "html": "<p>不要在 <span>libpq</span> 中跨多个连接共享 SSL 上下文（Heikki Linnakangas）</p>\n<p>这导致了各种边界情况 bug，特别是当尝试对不同连接使用不同 SSL 参数时。</p>", "text": "不要在 libpq 中跨多个连接共享 SSL 上下文（Heikki Linnakangas） 这导致了各种边界情况 bug，特别是当尝试对不同连接使用不同 SSL 参数时。", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "9a783fabe16a049fa9ace146697dd7e9af28990fb9fd36178132f7bd1bdffdd6", "section_path": ["变更"], "commit_groups": [["275bf9860", "418cd758a", "4d3ecbfee", "5d5dc6f68", "b5afc6f67", "e84e4761f", "f0ca54037"], ["31895abd8", "341acf235", "8bb14cdd3", "cb38c056f", "e76d06d7f", "e7bb327e3", "fde92dc22"]], "identity_text": "Don't try to share SSL contexts across multiple connections in libpq (Heikki Linnakangas) This led to assorted corner-case bugs, particularly when trying to use different SSL parameters for different connections.", "commit_aliases": ["275bf9860", "31895abd8", "341acf235", "418cd758a", "4d3ecbfee", "5d5dc6f68", "8bb14cdd3", "b5afc6f67", "cb38c056f", "e76d06d7f", "e7bb327e3", "e84e4761f", "f0ca54037", "fde92dc22"], "source_commits": ["341acf235", "4d3ecbfee"], "source_entry_id": "9.6.1/changes/017", "db_id": "e4e858812dc39cda82cd0c879258e22e", "patch_ids": ["6d07f687a957bae95986b84853de4d75", "c0f9044dfee54804bcebcc33e87743a9"], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679", "relations": [{"rule": 2, "type": "equivalent", "target": "5797a86f9ccff5c9d9bc62cededb71ea", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "6cf72552733f502b0431bb9d9b3679f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "78f23bf21615092d97ff903e3cbe4886", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "8e470a25f92f8433de8ca041850612c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}, {"rule": 2, "type": "equivalent", "target": "dd8ac44910aec9313eac765230d29672", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "78f23bf21615092d97ff903e3cbe4886", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.5.5#9.5.5-8003d20ba0ae4da2", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "6cf72552733f502b0431bb9d9b3679f7", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.4.10#9.4.10-8003d20ba0ae4da2", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "8e470a25f92f8433de8ca041850612c3", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.3.15#9.3.15-8003d20ba0ae4da2", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "dd8ac44910aec9313eac765230d29672", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.2.19#9.2.19-8003d20ba0ae4da2", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "5797a86f9ccff5c9d9bc62cededb71ea", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "不要在 libpq 中跨多个连接共享 SSL 上下文", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6bdce0efd0e728656918668f39af1d03df422501f0a4f0d9ef15d30efce81679"}, "url": "/docs/compare/?release=9.1.24#9.1.24-8003d20ba0ae4da2", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.6.1-dc53364de494302c", "cves": [], "html": "<p>避免 <span>libpq</span> 中的边界情况内存泄漏（Tom Lane）</p>\n<p>报告的问题涉及 <code>PQreset()</code> 期间泄漏错误报告，但可能有相关情况。</p>", "text": "避免 libpq 中的边界情况内存泄漏（Tom Lane） 报告的问题涉及 PQreset() 期间泄漏错误报告，但可能有相关情况。", "title": "避免 libpq 中的边界情况内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "d844e510e0b80e52da89c9784efcbf19a5864d22c2db18a5d97a1f10a3749c07", "section_path": ["变更"], "commit_groups": [["455eaf984", "4f87f7640", "7397f62e7", "886f6c5cc", "bb211b66f", "eb6bc03bf", "fb6825fe5"]], "identity_text": "Avoid corner-case memory leak in libpq (Tom Lane) The reported problem involved leaking an error report during PQreset(), but there might be related cases.", "commit_aliases": ["455eaf984", "4f87f7640", "7397f62e7", "886f6c5cc", "bb211b66f", "eb6bc03bf", "fb6825fe5"], "source_commits": ["bb211b66f"], "source_entry_id": "9.6.1/changes/018", "db_id": "f7275762184112b2fde26f52da082d79", "patch_ids": ["f65dddf3be22caa4e526630dfdc43759"], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151", "relations": [{"rule": 2, "type": "equivalent", "target": "04b184ad52defb377059eb805941b633", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "3567237d2f5f97af726737510ecec076", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "49a3081384e05d757cf9c1c27d9f7dce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "8c19c02343fed4f8c84e6f95cd8dec60", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}, {"rule": 2, "type": "equivalent", "target": "f9d1df0ce59f793c20266442d620f9e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}}], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "04b184ad52defb377059eb805941b633", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.5.5#9.5.5-dc53364de494302c", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "3567237d2f5f97af726737510ecec076", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.4.10#9.4.10-dc53364de494302c", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "f9d1df0ce59f793c20266442d620f9e9", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.3.15#9.3.15-dc53364de494302c", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "49a3081384e05d757cf9c1c27d9f7dce", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.2.19#9.2.19-dc53364de494302c", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "8c19c02343fed4f8c84e6f95cd8dec60", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "避免 libpq 中的边界情况内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "313d3777d34cff9e4b941bae31f6872e8699bcb56272ba9d62dcd279ab03c151"}, "url": "/docs/compare/?release=9.1.24#9.1.24-dc53364de494302c", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}, {"id": "9.6.1-3be6d9c9f46c6dab", "cves": [], "html": "<p>在 <span>pg_upgrade</span> 中，按名称顺序检查库可加载性（Tom Lane）</p>\n<p>这是处理语言转换模块对其基础语言和数据类型模块的跨扩展依赖的权宜之计。</p>", "text": "在 pg_upgrade 中，按名称顺序检查库可加载性（Tom Lane） 这是处理语言转换模块对其基础语言和数据类型模块的跨扩展依赖的权宜之计。", "title": "在 pg_upgrade 中，按名称顺序检查库可加载性", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "6b8b51700dfb19137611c4fc0074f4c5bd3db5da68ef6fb53f793897299ebd6c", "section_path": ["变更"], "commit_groups": [["0f259bd17", "83c249200", "bac56dbe0"]], "identity_text": "In pg_upgrade, check library loadability in name order (Tom Lane) This is a workaround to deal with cross-extension dependencies from language transform modules to their base language and data type modules.", "commit_aliases": ["0f259bd17", "83c249200", "bac56dbe0"], "source_commits": ["bac56dbe0"], "source_entry_id": "9.6.1/changes/019", "db_id": "12de532a4d03ab8b387c350843f97d71", "patch_ids": ["143a51a4498ceaf187856219e2513b15"], "statement_hash": "f47bceb14c4d2e496af2425b01d3ae642b028c3177f543cea70359c0cc7cd392", "relations": [{"rule": 2, "type": "equivalent", "target": "57611a54226b885c63c5665a32fc0143", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f47bceb14c4d2e496af2425b01d3ae642b028c3177f543cea70359c0cc7cd392"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "57611a54226b885c63c5665a32fc0143", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 pg_upgrade 中，按名称顺序检查库可加载性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f47bceb14c4d2e496af2425b01d3ae642b028c3177f543cea70359c0cc7cd392"}, "url": "/docs/compare/?release=9.5.5#9.5.5-3be6d9c9f46c6dab", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-83112276de477e50", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 对包含索引访问方法的扩展正确工作（Tom Lane）</p>\n<p>为此，服务器被扩展以支持 <code>ALTER EXTENSION ADD/DROP ACCESS METHOD</code>。这一功能本应包含在支持动态创建访问方法的原始补丁中，但被遗漏了。</p>", "text": "修复 pg_upgrade 对包含索引访问方法的扩展正确工作（Tom Lane） 为此，服务器被扩展以支持 ALTER EXTENSION ADD/DROP ACCESS METHOD。这一功能本应包含在支持动态创建访问方法的原始补丁中，但被遗漏了。", "title": "修复 pg_upgrade 对包含索引访问方法的扩展正确工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "72252c4c7b4b39246dcfc84821516717a459b5d691f808cbe453b39881340ce4", "section_path": ["变更"], "commit_groups": [["e8bdee277", "f40334b85"]], "identity_text": "Fix pg_upgrade to work correctly for extensions containing index access methods (Tom Lane) To allow this, the server has been extended to support ALTER EXTENSION ADD/DROP ACCESS METHOD. That functionality should have been included in the original patch to support dynamic creation of access methods, but it was overlooked.", "commit_aliases": ["e8bdee277", "f40334b85"], "source_commits": ["f40334b85"], "source_entry_id": "9.6.1/changes/020", "db_id": "518f006ecede4cc40514e319a50a7602", "patch_ids": ["66981347b5741768068a955da1862687"], "statement_hash": "c65dca63da7da38b8127977d82fc9825052dc39f8d1066a014947e1d9adfa035", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-44224be5b7385e30", "cves": [], "html": "<p>改进 <span>pg_upgrade</span> 文件复制/链接/重写步骤中的错误报告（Tom Lane、Álvaro Herrera）</p>", "text": "改进 pg_upgrade 文件复制/链接/重写步骤中的错误报告（Tom Lane、Álvaro Herrera）", "title": "改进 pg_upgrade 文件复制/链接/重写步骤中的错误报告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "b1dbfb0dbf8cb68e0a8ea75abac24f532053c64f5bebf95bfae9969de5b6ce49", "section_path": ["变更"], "commit_groups": [["53fbeed40", "f002ed2b8"]], "identity_text": "Improve error reporting in pg_upgrade's file copying/linking/rewriting steps (Tom Lane, Álvaro Herrera)", "commit_aliases": ["53fbeed40", "f002ed2b8"], "source_commits": ["53fbeed40"], "source_entry_id": "9.6.1/changes/021", "db_id": "fee3522ca1f71cd479dc03a5aaaf10c7", "patch_ids": ["0e093787fc6da0e946d7e7e75633446f"], "statement_hash": "88710a199795da7a78e56ab74a820a1d22ee8d5975e5d9a4ee7e16684f3d14f0", "relations": [], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-f52f0815769c7545", "cves": [], "html": "<p>修复 <span>pg_dump</span> 对 7.4 之前服务器的工作（Amit Langote、Tom Lane）</p>", "text": "修复 pg_dump 对 7.4 之前服务器的工作（Amit Langote、Tom Lane）", "title": "修复 pg_dump 对 7.4 之前服务器的工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "b93fc621b006268495152aaa9475c4e0337c5154c3bb450b8edf214b5e08f18c", "section_path": ["变更"], "commit_groups": [["1749332ec", "4806f26f9"]], "identity_text": "Fix pg_dump to work against pre-7.4 servers (Amit Langote, Tom Lane)", "commit_aliases": ["1749332ec", "4806f26f9"], "source_commits": ["1749332ec"], "source_entry_id": "9.6.1/changes/022", "db_id": "31be2dc7eda2bbf9167d30a3204efd57", "patch_ids": ["52a026c5212c6166fd56570cbb9ab09d"], "statement_hash": "6b2038238e0e18770e36095e1d60ebff4cd1390cd171a2480c0e4ff799c31d04", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-da39e560b59e3860", "cves": [], "html": "<p>禁止对 <span>pg_rewind</span> 同时指定 <code>--source-server</code> 和 <code>--source-target</code> 选项（Michael Banck）</p>", "text": "禁止对 pg_rewind 同时指定 --source-server 和 --source-target 选项（Michael Banck）", "title": "禁止对 pg_rewind 同时指定 --source-server 和 --source-target 选项", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "8da7250010fe643598baa146fff80d574a16231c06dd68c4bffe066fa130ac00", "section_path": ["变更"], "commit_groups": [["010a1b561", "0d4d7d618", "2933ed036"]], "identity_text": "Disallow specifying both --source-server and --source-target options to pg_rewind (Michael Banck)", "commit_aliases": ["010a1b561", "0d4d7d618", "2933ed036"], "source_commits": ["2933ed036"], "source_entry_id": "9.6.1/changes/023", "db_id": "720aaed0b0fe82f4a1fe19af56f7f35b", "patch_ids": ["8c9a121091a8dd75709d26ae4de7eb74"], "statement_hash": "3678e4d3b7cfd2a84248583069e282d985c52f2ac862c42359d8931c0d2ad75a", "relations": [{"rule": 2, "type": "equivalent", "target": "cb5ee804d395c324d54e6742ab5e786d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3678e4d3b7cfd2a84248583069e282d985c52f2ac862c42359d8931c0d2ad75a"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cb5ee804d395c324d54e6742ab5e786d", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "禁止对 pg_rewind 同时指定 --source-server 和 --source-target 选项", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3678e4d3b7cfd2a84248583069e282d985c52f2ac862c42359d8931c0d2ad75a"}, "url": "/docs/compare/?release=9.5.5#9.5.5-da39e560b59e3860", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-a1f7732bd4dea8cc", "cves": [], "html": "<p>让 <span>pg_rewind</span> 在源服务器上的会话中关闭 <code>synchronous_commit</code>（Michael Banck、Michael Paquier）</p>\n<p>这允许 <span>pg_rewind</span> 即使在源服务器使用的同步复制因某种原因不工作时也能运行。</p>", "text": "让 pg_rewind 在源服务器上的会话中关闭 synchronous_commit（Michael Banck、Michael Paquier） 这允许 pg_rewind 即使在源服务器使用的同步复制因某种原因不工作时也能运行。", "title": "让 pg_rewind 在源服务器上的会话中关闭 synchronous_commit", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "8ab5a72c3c859063f7e84c09172eea9433b25b883cc61115063211e789eb822c", "section_path": ["变更"], "commit_groups": [["69da71254", "aab809664", "d7eb76b90"]], "identity_text": "Make pg_rewind turn off synchronous_commit in its session on the source server (Michael Banck, Michael Paquier) This allows pg_rewind to work even when the source server is using synchronous replication that is not working for some reason.", "commit_aliases": ["69da71254", "aab809664", "d7eb76b90"], "source_commits": ["aab809664"], "source_entry_id": "9.6.1/changes/024", "db_id": "3d9d07da8611979828974a00f7d5e93c", "patch_ids": ["bb6525a8530a405fc406be369c4b5701"], "statement_hash": "176ffbc55a3881d1812fea12b4236f6ad61a4ed1550d0c96b66db74baf855119", "relations": [{"rule": 2, "type": "equivalent", "target": "7cdbd79a62155689cca1ba178c38ea83", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "176ffbc55a3881d1812fea12b4236f6ad61a4ed1550d0c96b66db74baf855119"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7cdbd79a62155689cca1ba178c38ea83", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "让 pg_rewind 在源服务器上的会话中关闭 synchronous_commit", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "176ffbc55a3881d1812fea12b4236f6ad61a4ed1550d0c96b66db74baf855119"}, "url": "/docs/compare/?release=9.5.5#9.5.5-a1f7732bd4dea8cc", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}]}, {"id": "9.6.1-3588338c44b471b3", "cves": [], "html": "<p>在 <span>pg_xlogdump</span> 中，使用 <code>--follow</code> 选项时重试打开新的 WAL 段（Magnus Hagander）</p>\n<p>这考虑到服务器创建下一段的可能延迟。</p>", "text": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段（Magnus Hagander） 这考虑到服务器创建下一段的可能延迟。", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "b16041b4f315e4e2830e4d9d4ce39d834cec962b9f2d1c844c985034c5fa1c83", "section_path": ["变更"], "commit_groups": [["3d39244e6", "41d58e97a", "4bff35cca", "d8b4c3490", "da3f71a08"]], "identity_text": "In pg_xlogdump, retry opening new WAL segments when using --follow option (Magnus Hagander) This allows for a possible delay in the server's creation of the next segment.", "commit_aliases": ["3d39244e6", "41d58e97a", "4bff35cca", "d8b4c3490", "da3f71a08"], "source_commits": ["41d58e97a"], "source_entry_id": "9.6.1/changes/025", "db_id": "76feb8e100587752206df4baba988197", "patch_ids": ["418ead167b9504a96b1556a13a9d1b27"], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a", "relations": [{"rule": 2, "type": "equivalent", "target": "2113e3ca11fc4e23dbedd995bafef047", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}}, {"rule": 2, "type": "equivalent", "target": "95a5bd12885de7f441144ce2c9527398", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}}, {"rule": 2, "type": "equivalent", "target": "f2af211971ec3653a813cd132d95e373", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2113e3ca11fc4e23dbedd995bafef047", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}, "url": "/docs/compare/?release=9.5.5#9.5.5-3588338c44b471b3", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "95a5bd12885de7f441144ce2c9527398", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}, "url": "/docs/compare/?release=9.4.10#9.4.10-3588338c44b471b3", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "f2af211971ec3653a813cd132d95e373", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "在 pg_xlogdump 中，使用 --follow 选项时重试打开新的 WAL 段", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc129e42363d4b76d77a04575b50b11e577ea99eb260c4e34c9e6a17e9b0fb1a"}, "url": "/docs/compare/?release=9.3.15#9.3.15-3588338c44b471b3", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}]}, {"id": "9.6.1-a2c5411f5d0ee13f", "cves": [], "html": "<p>修复 <code>contrib/pg_visibility</code> 为作为已回滚更新主题的损坏元组报告正确的 TID（Tom Lane）</p>", "text": "修复 contrib/pg_visibility 为作为已回滚更新主题的损坏元组报告正确的 TID（Tom Lane）", "title": "修复 contrib/pg_visibility 为作为已回滚更新主题的损坏元组报告正确的 TID", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "df919fd6c492843c8fcf6b6b56d0ae1fcd4b12eb53b4efac6367c53553696a55", "section_path": ["变更"], "commit_groups": [["9a109452d", "f4e787c82"]], "identity_text": "Fix contrib/pg_visibility to report the correct TID for a corrupt tuple that has been the subject of a rolled-back update (Tom Lane)", "commit_aliases": ["9a109452d", "f4e787c82"], "source_commits": ["f4e787c82"], "source_entry_id": "9.6.1/changes/026", "db_id": "0c2649d3d76573cd13e1ef3577805798", "patch_ids": ["0a67daf6c7dbd88647b1fcbd809db557"], "statement_hash": "dac0f72a0e66b3b4a8a732a79997163afe9f5027e5cf11dce37c04e8c7d1934b", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-d439e304dabe7fb3", "cves": [], "html": "<p>修复 makefile 依赖，使单独并行构建 <span>PL/Python</span> 能可靠成功（Pavel Raiskup）</p>", "text": "修复 makefile 依赖，使单独并行构建 PL/Python 能可靠成功（Pavel Raiskup）", "title": "修复 makefile 依赖，使单独并行构建 PL/Python 能可靠成功", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "2343dbb157474ba33513348513dcb3fb75bb3977c22081a5e458db5d555fbdac", "section_path": ["变更"], "commit_groups": [["68fb75e10", "7107d58ec"]], "identity_text": "Fix makefile dependencies so that parallel make of PL/Python by itself will succeed reliably (Pavel Raiskup)", "commit_aliases": ["68fb75e10", "7107d58ec"], "source_commits": ["68fb75e10"], "source_entry_id": "9.6.1/changes/027", "db_id": "556b8d4b860a9c00df17e533a146a4f8", "patch_ids": ["e581315ac4f077aa3ca8b40204845cba"], "statement_hash": "81bd9b169a4990c987c4808435e1b86421c68f85203c6a47e072e2c0caa34d07", "relations": [], "version": "9.6.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.1-6e227d3e50c92407", "cves": [], "html": "<p>更新时区数据文件到 <span>tzdata</span> 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。</p>\n<p>IANA 时区数据库以前为所有时区提供文本缩写，有时编造在当地居民中几乎或完全没有使用的缩写。他们正在逆转这一政策，改为在没有证据表明实际使用英文缩写的区域使用数字 UTC 偏移。至少目前，<span>PostgreSQL</span> 将继续接受这种被移除的缩写用于时间戳输入。但它们不会显示在 <code>pg_timezone_names</code> 视图中，也不用于输出。</p>\n<p>在此更新中，<code>AMT</code> 不再显示为表示亚美尼亚时间。因此我们把 <code>Default</code> 缩写集改为把它解释为亚马逊时间，即 UTC-4 而不是 UTC+4。</p>", "text": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。 IANA 时区数据库以前为所有时区提供文本缩写，有时编造在当地居民中几乎或完全没有使用的缩写。他们正在逆转这一政策，改为在没有证据表明实际使用英文缩写的区域使用数字 UTC 偏移。至少目前，PostgreSQL 将继续接受这种被移除的缩写用于时间戳输入。但它们不会显示在 pg_timezone_names 视图中，也不用于输出。 在此更新中，AMT 不再显示为表示亚美尼亚时间。因此我们把 Default 缩写集改为把它解释为亚马逊时间，即 UTC-4 而不是 UTC+4。", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.1/#id-1.11.6.28.5", "source_hash": "f56c53a55af7cc864afc603e943b32517cfcd9ffeca49ebfcf58ca78dcce6fba", "section_path": ["变更"], "commit_groups": [["0c2f4c54c", "22cf97635", "5508d0c0b", "7abda82ef", "9727dac58", "a03339aef", "ecbac3e6e"], ["1d388ba2c", "3c5fae786", "80ba149b0", "8cddedc17", "9345bf08c", "d8fc45bd0", "ff68f434f"], ["2877b102e", "381c4b03b", "66adeefda", "7fec5e101", "ad6f67179", "bc59c1236", "f3094920a"], ["37ecf07d3", "5e21b6811", "845a8ea3e", "92da75278", "a8518738a", "aac898ac5", "b2aee4cb6"]], "identity_text": "Update time zone data files to tzdata release 2016h for DST law changes in Palestine and Turkey, plus historical corrections for Turkey and some regions of Russia. Switch to numeric abbreviations for some time zones in Antarctica, the former Soviet Union, and Sri Lanka. The IANA time zone database previously provided textual abbreviations for all time zones, sometimes making up abbreviations that have little or no currency among the local population. They are in process of reversing that policy in favor of using numeric UTC offsets in zones where there is no evidence of real-world use of an English abbreviation. At least for the time being, PostgreSQL will continue to accept such removed abbreviations for timestamp input. But they will not be shown in the pg_timezone_names view nor used for output. In this update, AMT is no longer shown as being in use to mean Armenia Time. Therefore, we have changed the Default abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.", "commit_aliases": ["0c2f4c54c", "1d388ba2c", "22cf97635", "2877b102e", "37ecf07d3", "381c4b03b", "3c5fae786", "5508d0c0b", "5e21b6811", "66adeefda", "7abda82ef", "7fec5e101", "80ba149b0", "845a8ea3e", "8cddedc17", "92da75278", "9345bf08c", "9727dac58", "a03339aef", "a8518738a", "aac898ac5", "ad6f67179", "b2aee4cb6", "bc59c1236", "d8fc45bd0", "ecbac3e6e", "f3094920a", "ff68f434f"], "source_commits": ["0c2f4c54c", "7fec5e101", "80ba149b0", "845a8ea3e"], "source_entry_id": "9.6.1/changes/028", "db_id": "48ce47c9c15ba40810e3bf5ec621c6e2", "patch_ids": ["62f78316a6a8ac4b51035e905dec4981", "ab082a2b2f54ac1c80cfcbf1b568c16d", "bb64e758074231f2c483fe7395b37dcc", "c7b68179d6d2cd8776c7a0b875e26d3a"], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc", "relations": [{"rule": 2, "type": "equivalent", "target": "0beb84d0b5ea7d442a7e372ee1f44a0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "22efdf8d456fcfa0566c2bec71378820", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "649e25bc93cef830346c3561540e67e2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "7dbf3562cb1733646d00e2c34c95c08d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}, {"rule": 2, "type": "equivalent", "target": "acf105f7b3890b7ae360a1c91e091c35", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}}], "version": "9.6.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "649e25bc93cef830346c3561540e67e2", "kind": "equivalent", "version": "9.5.5", "label": "9.5.5", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.5.5#9.5.5-6e227d3e50c92407", "source_url": "/docs/release/9.5.5/#id-1.11.6.25.5"}, {"db_id": "22efdf8d456fcfa0566c2bec71378820", "kind": "equivalent", "version": "9.4.10", "label": "9.4.10", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.4.10#9.4.10-6e227d3e50c92407", "source_url": "/docs/release/9.4.10/#id-1.11.6.21.5"}, {"db_id": "7dbf3562cb1733646d00e2c34c95c08d", "kind": "equivalent", "version": "9.3.15", "label": "9.3.15", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.3.15#9.3.15-6e227d3e50c92407", "source_url": "/docs/release/9.3.15/#id-1.11.6.15.5"}, {"db_id": "0beb84d0b5ea7d442a7e372ee1f44a0f", "kind": "equivalent", "version": "9.2.19", "label": "9.2.19", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.2.19#9.2.19-6e227d3e50c92407", "source_url": "/docs/release/9.2.19/#id-1.11.6.10.5"}, {"db_id": "acf105f7b3890b7ae360a1c91e091c35", "kind": "equivalent", "version": "9.1.24", "label": "9.1.24", "title": "更新时区数据文件到 tzdata 版本 2016h，涉及巴勒斯坦和土耳其的夏令时法规变更，加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0cb45bb3cd4941ccdd512f55ef1911c539dd4baf115c1558d9c9521d14beb8fc"}, "url": "/docs/compare/?release=9.1.24#9.1.24-6e227d3e50c92407", "source_url": "/docs/release/9.1.24/#id-1.11.6.5.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 891}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 446}, {"key": "security", "label": "安全相关", "count": 29}, {"key": "performance", "label": "性能改进", "count": 9}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 407}], "total": 891, "cve_count": 31, "cves": [{"id": "CVE-2020-25695", "url": "https://www.postgresql.org/support/security/CVE-2020-25695/", "fixed": {"10": "10.15", "11": "11.10", "12": "12.5", "13": "13.1", "9.5": "9.5.24", "9.6": "9.6.20"}, "score": 8.8, "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"10": "2020-11-12", "11": "2020-11-12", "12": "2020-11-12", "13": "2020-11-12", "9.5": "2020-11-12", "9.6": "2020-11-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "An attacker having permission to create non-temporary objects in at least one schema can execute arbitrary SQL functions under the identity of a superuser.\n\nWhile promptly updating PostgreSQL is the best remediation for most users, a user unable to do that can work around the vulnerability by disabling autovacuum and not manually running ANALYZE , CLUSTER , REINDEX , CREATE INDEX , VACUUM FULL , REFRESH MATERIALIZED VIEW , or a restore from output of the pg_dump command. Performance may degrade quickly under this workaround.\n\nVACUUM without the FULL option is safe, and all commands are fine when a trusted user owns the target object.\n\nThe PostgreSQL project thanks Etienne Stalmans for reporting this problem.", "first_published": "2020-11-12", "fixed_version": "9.6.20", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2018-1058", "url": "https://www.postgresql.org/support/security/CVE-2018-1058/", "fixed": {"10": "10.3", "9.3": "9.3.22", "9.4": "9.4.17", "9.5": "9.5.12", "9.6": "9.6.8"}, "score": 8.8, "title": "记录如何配置安装和应用以防受其他用户依赖 search_path 的特洛伊木马攻击", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2018-03-01", "9.3": "2018-03-01", "9.4": "2018-03-01", "9.5": "2018-03-01", "9.6": "2018-03-01"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2018-03-01", "fixed_version": "9.6.8", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2018-10915", "url": "https://www.postgresql.org/support/security/CVE-2018-10915/", "fixed": {"10": "10.5", "9.3": "9.3.24", "9.4": "9.4.19", "9.5": "9.5.14", "9.6": "9.6.10"}, "score": 8.5, "title": "修复连接尝试之间未能完全重置 libpq 状态的问题", "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "affected": {"10": "10", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2018-08-09", "9.3": "2018-08-09", "9.4": "2018-08-09", "9.5": "2018-08-09", "9.6": "2018-08-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2018-08-09", "fixed_version": "9.6.10", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-7547", "url": "https://www.postgresql.org/support/security/CVE-2017-7547/", "fixed": {"9.2": "9.2.22", "9.3": "9.3.18", "9.4": "9.4.13", "9.5": "9.5.8", "9.6": "9.6.4"}, "score": 8.5, "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-08-10", "9.3": "2017-08-10", "9.4": "2017-08-10", "9.5": "2017-08-10", "9.6": "2017-08-10"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-08-10", "fixed_version": "9.6.4", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-7486", "url": "https://www.postgresql.org/support/security/CVE-2017-7486/", "fixed": {"9.2": "9.2.21", "9.3": "9.3.17", "9.4": "9.4.12", "9.5": "9.5.7", "9.6": "9.6.3"}, "score": 8.5, "title": "限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-05-11", "9.3": "2017-05-11", "9.4": "2017-05-11", "9.5": "2017-05-11", "9.6": "2017-05-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-05-11", "fixed_version": "9.6.3", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2019-3466", "url": "https://www.postgresql.org/support/security/CVE-2019-3466/", "fixed": {"10": "10.11", "11": "11.6", "12": "12.1", "9.4": "9.4.25", "9.5": "9.5.20", "9.6": "9.6.16"}, "score": 8.4, "title": "pg_ctlcluster script in postgresql-common does not drop privileges when creating socket/statistics temporary directories", "vector": "AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "packaging", "published": {"10": "2019-12-04", "11": "2019-12-04", "12": "2019-12-04", "9.4": "2019-12-04", "9.5": "2019-12-04", "9.6": "2019-12-04"}, "introduced": {}, "cvss_version": "3.0", "description_en": "A PostgreSQL superuser could escalate to root using a deficiency in the pg_ctlcluster command. pg_ctlcluster is a utility provided by the \"postgresql-common\" package that is installed with PostgreSQL on Debian and Ubuntu platforms.", "first_published": "2019-12-04", "fixed_version": "9.6.16", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-12172", "url": "https://www.postgresql.org/support/security/CVE-2017-12172/", "fixed": {"10": "10.1", "9.2": "9.2.24", "9.3": "9.3.20", "9.4": "9.4.15", "9.5": "9.5.10", "9.6": "9.6.6"}, "score": 8.4, "title": "修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER", "vector": "AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:H", "affected": {"10": "10", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "contrib module", "published": {"10": "2017-11-09", "9.2": "2017-11-09", "9.3": "2017-11-09", "9.4": "2017-11-09", "9.5": "2017-11-09", "9.6": "2017-11-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-11-09", "fixed_version": "9.6.6", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2021-23214", "url": "https://www.postgresql.org/support/security/CVE-2021-23214/", "fixed": {"10": "10.19", "11": "11.14", "12": "12.9", "13": "13.5", "14": "14.1", "9.6": "9.6.24"}, "score": 8.1, "title": "让服务器拒绝 SSL 或 GSS 加密握手之后的多余数据", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "14": "14", "9.6": "9.6"}, "component": "core server", "published": {"10": "2021-11-11", "11": "2021-11-11", "12": "2021-11-11", "13": "2021-11-11", "14": "2021-11-11", "9.6": "2021-11-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "When the server is configured to use trust authentication with a clientcert requirement or to use cert authentication, a man-in-the-middle attacker can inject arbitrary SQL queries when a connection is first established, despite the use of SSL certificate verification and encryption. This is similar to CVE-2011-0411 (different product).\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "first_published": "2021-11-11", "fixed_version": "9.6.24", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2020-25694", "url": "https://www.postgresql.org/support/security/CVE-2020-25694/", "fixed": {"10": "10.15", "11": "11.10", "12": "12.5", "13": "13.1", "9.5": "9.5.24", "9.6": "9.6.20"}, "score": 8.1, "title": "修复 pg_dump、pg_restore、 clusterdb、reindexdb 和 vacuumdb 中复杂连接字符串参数的用法", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2020-11-12", "11": "2020-11-12", "12": "2020-11-12", "13": "2020-11-12", "9.5": "2020-11-12", "9.6": "2020-11-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Many PostgreSQL-provided client applications have options that create additional database connections. Some of those applications reuse only the basic connection parameters (e.g. host , user , port ), dropping others. If this drops a security-relevant parameter (e.g. channel_binding , sslmode , requirepeer , gssencmode ), the attacker has an opportunity to complete a MITM attack or observe cleartext transmission.\n\nAffected applications are clusterdb , pg_dump , pg_restore , psql , reindexdb , and vacuumdb . The vulnerability arises only if one invokes an affected client application with a connection string containing a security-relevant parameter.\n\nThis also fixes how the \\connect command of psql reuses connection parameters, i.e. all non-overridden parameters from a previous connection string now re-used.\n\nThe PostgreSQL project thanks Peter Eisentraut for reporting this problem.", "first_published": "2020-11-12", "fixed_version": "9.6.20", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-7546", "url": "https://www.postgresql.org/support/security/CVE-2017-7546/", "fixed": {"9.2": "9.2.22", "9.3": "9.3.18", "9.4": "9.4.13", "9.5": "9.5.8", "9.6": "9.6.4"}, "score": 8.1, "title": "禁止在所有基于密码的认证方法中使用空密码", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-08-10", "9.3": "2017-08-10", "9.4": "2017-08-10", "9.5": "2017-08-10", "9.6": "2017-08-10"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-08-10", "fixed_version": "9.6.4", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-7485", "url": "https://www.postgresql.org/support/security/CVE-2017-7485/", "fixed": {"9.3": "9.3.17", "9.4": "9.4.12", "9.5": "9.5.7", "9.6": "9.6.3"}, "score": 8.1, "title": "恢复 libpq 对 PGREQUIRESSL 环境变量的识别", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "affected": {"9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"9.3": "2017-05-11", "9.4": "2017-05-11", "9.5": "2017-05-11", "9.6": "2017-05-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-05-11", "fixed_version": "9.6.3", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2019-10211", "url": "https://www.postgresql.org/support/security/CVE-2019-10211/", "fixed": {"10": "10.10", "11": "11.5", "9.4": "9.4.24", "9.5": "9.5.19", "9.6": "9.6.15"}, "score": 7.8, "title": "Windows installer bundled OpenSSL executes code from unprotected directory", "vector": "AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "packaging", "published": {"10": "2019-08-08", "11": "2019-08-08", "9.4": "2019-08-08", "9.5": "2019-08-08", "9.6": "2019-08-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "When the database server or libpq client library initializes SSL, libeay32.dll attempts to read configuration from a hard-coded directory. Typically, the directory does not exist, but any local user could create it and inject configuration. This configuration can direct OpenSSL to load and execute arbitrary code as the user running a PostgreSQL server or client.\n\nMost PostgreSQL client tools and libraries use libpq , and one can encounter this vulnerability by using any of them. This vulnerability is much like CVE-2019-5443 , but it originated independently. One can work around the vulnerability by setting environment variable OPENSSL_CONF to \"NUL:/openssl.cnf\" or any other name that cannot exist as a file.\n\nThe PostgreSQL project thanks Daniel Gustafsson of the curl security team for reporting this problem.", "first_published": "2019-08-08", "fixed_version": "9.6.15", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2020-25696", "url": "https://www.postgresql.org/support/security/CVE-2020-25696/", "fixed": {"10": "10.15", "11": "11.10", "12": "12.5", "13": "13.1", "9.5": "9.5.24", "9.6": "9.6.20"}, "score": 7.5, "title": "防止 psql 的 \\gset 命令修改特殊处理的变量", "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2020-11-12", "11": "2020-11-12", "12": "2020-11-12", "13": "2020-11-12", "9.5": "2020-11-12", "9.6": "2020-11-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "The \\gset meta-command, which sets psql variables based on query results, does not distinguish variables that control psql behavior. If an interactive psql session uses \\gset when querying a compromised server, the attacker can execute arbitrary code as the operating system account running psql . Using \\gset with a prefix not found among specially treated variables, e.g. any lowercase string, precludes the attack in an unpatched psql .\n\nThe PostgreSQL project thanks Nick Cleaton for reporting this problem.", "first_published": "2020-11-12", "fixed_version": "9.6.20", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2019-10208", "url": "https://www.postgresql.org/support/security/CVE-2019-10208/", "fixed": {"10": "10.10", "11": "11.5", "9.4": "9.4.24", "9.5": "9.5.19", "9.6": "9.6.15"}, "score": 7.5, "title": "要求使用函数式转换语法转换到临时类型时进行模式限定", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"10": "2019-08-08", "11": "2019-08-08", "9.4": "2019-08-08", "9.5": "2019-08-08", "9.6": "2019-08-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Given a suitable SECURITY DEFINER function, an attacker can execute arbitrary SQL under the identity of the function owner. An attack requires EXECUTE permission on the function, which must itself contain a function call having inexact argument type match. For example, length('foo'::varchar) and length('foo') are inexact, while length('foo'::text) is exact.\n\nAs part of exploiting this vulnerability, the attacker uses CREATE DOMAIN to create a type in a pg_temp schema. The attack pattern and fix are similar to that for CVE-2007-2138 .\n\nWriting SECURITY DEFINER functions continues to require following the considerations noted in the documentation:\n\nhttps://www.postgresql.org/docs/current/sql-createfunction.html#SQL-CREATEFUNCTION-SECURITY\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "first_published": "2019-08-08", "fixed_version": "9.6.15", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2020-14350", "url": "https://www.postgresql.org/support/security/CVE-2020-14350/", "fixed": {"10": "10.14", "11": "11.9", "12": "12.4", "9.5": "9.5.23", "9.6": "9.6.19"}, "score": 7.1, "title": "使 contrib 模块的安装脚本更安全", "vector": "AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"10": "2020-08-13", "11": "2020-08-13", "12": "2020-08-13", "9.5": "2020-08-13", "9.6": "2020-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "When a superuser runs certain CREATE EXTENSION statements, users may be able to execute arbitrary SQL functions under the identity of that superuser. The attacker must have permission to create objects in the new extension's schema or a schema of a prerequisite extension. Not all extensions are vulnerable.\n\nIn addition to correcting the extensions provided with PostgreSQL, the PostgreSQL Global Development Group is issuing guidance for third-party extension authors to secure their own work.\n\nThe PostgreSQL project thanks Andres Freund for reporting this problem.", "first_published": "2020-08-13", "fixed_version": "9.6.19", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2018-10925", "url": "https://www.postgresql.org/support/security/CVE-2018-10925/", "fixed": {"10": "10.5", "9.5": "9.5.14", "9.6": "9.6.10"}, "score": 7.1, "title": "修复通过不只是 SELECT * FROM ... 的视图执行 INSERT ... ON CONFLICT UPDATE 的问题", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N", "affected": {"10": "10", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"10": "2018-08-09", "9.5": "2018-08-09", "9.6": "2018-08-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2018-08-09", "fixed_version": "9.6.10", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2019-10128", "url": "https://www.postgresql.org/support/security/CVE-2019-10128/", "fixed": {"10": "10.8", "11": "11.3", "9.4": "9.4.22", "9.5": "9.5.17", "9.6": "9.6.13"}, "score": 7.0, "title": "EnterpriseDB Windows installer does not clear permissive ACL entries", "vector": "AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "packaging", "published": {"10": "2019-05-09", "11": "2019-05-09", "9.4": "2019-05-09", "9.5": "2019-05-09", "9.6": "2019-05-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Due to both the EnterpriseDB and BigSQL Windows installers not locking down the permissions of the PostgreSQL binary installation directory and the data directory, an unprivileged Windows user account and an unprivileged PostgreSQL account could cause the PostgreSQL service account to execute arbitrary code.\n\nThis vulnerability is present in all supported versions of PostgreSQL for these installers, and possibly exists in older versions. Both sets of installers have fixed the permissions for these directories for both new and existing installations. If you have installed PostgreSQL on Windows using other methods, we advise that you check that your PostgreSQL binary directories are writable only to trusted users and that your data directories are only accessible to trusted users.\n\nThe PostgreSQL project thanks Conner Jones for reporting this problem.", "first_published": "2019-05-09", "fixed_version": "9.6.13", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2019-10127", "url": "https://www.postgresql.org/support/security/CVE-2019-10127/", "fixed": {"10": "10.8", "11": "11.3", "9.4": "9.4.22", "9.5": "9.5.17", "9.6": "9.6.13"}, "score": 7.0, "title": "BigSQL Windows installer does not clear permissive ACL entries.", "vector": "AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "packaging", "published": {"10": "2019-05-09", "11": "2019-05-09", "9.4": "2019-05-09", "9.5": "2019-05-09", "9.6": "2019-05-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Due to both the EnterpriseDB and BigSQL Windows installers not locking down the permissions of the PostgreSQL binary installation directory and the data directory, an unprivileged Windows user account and an unprivileged PostgreSQL account could cause the PostgreSQL service account to execute arbitrary code.\n\nThis vulnerability is present in all supported versions of PostgreSQL for these installers, and possibly exists in older versions. Both sets of installers have fixed the permissions for these directories for both new and existing installations. If you have installed PostgreSQL on Windows using other methods, we advise that you check that your PostgreSQL binary directories are writable only to trusted users and that your data directories are only accessible to trusted users.\n\nThe PostgreSQL project thanks Conner Jones for reporting this problem.", "first_published": "2019-05-09", "fixed_version": "9.6.13", "severity": "高危", "status_label": "目标版本已修复"}, {"id": "CVE-2020-10733", "url": "https://www.postgresql.org/support/security/CVE-2020-10733/", "fixed": {"10": "10.13", "11": "11.8", "12": "12.3", "9.5": "9.5.22", "9.6": "9.6.18"}, "score": 6.7, "title": "Windows installer runs executables from uncontrolled directories", "vector": "AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "9.5": "9.5", "9.6": "9.6"}, "component": "packaging", "published": {"10": "2020-05-14", "11": "2020-05-14", "12": "2020-05-14", "9.5": "2020-05-14", "9.6": "2020-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "The Windows installer for PostgreSQL invokes system-provided executables that do not have fully-qualified paths. Executables in the directory where the installer loads or the current working directory take precedence over the intended executables. An attacker having permission to add files into one of those directories can use this to execute arbitrary code with the installer's administrative rights.\n\nThe PostgreSQL project thanks Hou JingYi (@hjy79425575) for reporting this problem.", "first_published": "2020-05-14", "fixed_version": "9.6.18", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2019-10210", "url": "https://www.postgresql.org/support/security/CVE-2019-10210/", "fixed": {"10": "10.10", "11": "11.5", "9.4": "9.4.24", "9.5": "9.5.19", "9.6": "9.6.15"}, "score": 6.7, "title": "Windows installer writes superuser password to unprotected temporary file", "vector": "AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "packaging", "published": {"10": "2019-08-08", "11": "2019-08-08", "9.4": "2019-08-08", "9.5": "2019-08-08", "9.6": "2019-08-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "The EnterpriseDB Windows installer writes a password to a temporary file in its installation directory, creates initial databases, and deletes the file. During those seconds while the file exists, a local attacker can read the PostgreSQL superuser password from the file.\n\nThe PostgreSQL project thanks Noah Misch for reporting this problem.", "first_published": "2019-08-08", "fixed_version": "9.6.15", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2018-1053", "url": "https://www.postgresql.org/support/security/CVE-2018-1053/", "fixed": {"10": "10.2", "9.3": "9.3.21", "9.4": "9.4.16", "9.5": "9.5.11", "9.6": "9.6.7"}, "score": 6.7, "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "vector": "AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "affected": {"10": "10", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2018-02-08", "9.3": "2018-02-08", "9.4": "2018-02-08", "9.5": "2018-02-08", "9.6": "2018-02-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2018-02-08", "fixed_version": "9.6.7", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2021-32028", "url": "https://www.postgresql.org/support/security/CVE-2021-32028/", "fixed": {"10": "10.17", "11": "11.12", "12": "12.7", "13": "13.3", "9.6": "9.6.22"}, "score": 6.5, "title": "修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中“垃圾”列的处理不当", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "9.6": "9.6"}, "component": "core server", "published": {"10": "2021-05-13", "11": "2021-05-13", "12": "2021-05-13", "13": "2021-05-13", "9.6": "2021-05-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Using an INSERT ... ON CONFLICT ... DO UPDATE command on a purpose-crafted table, an attacker can read arbitrary bytes of server memory. In the default configuration, any authenticated database user can create prerequisite objects and complete this attack at will. A user lacking the CREATE and TEMPORARY privileges on all databases and the CREATE privilege on all schemas cannot use this attack at will.\n\nThe PostgreSQL project thanks Andres Freund for reporting this problem.", "first_published": "2021-05-13", "fixed_version": "9.6.22", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2021-32027", "url": "https://www.postgresql.org/support/security/CVE-2021-32027/", "fixed": {"10": "10.17", "11": "11.12", "12": "12.7", "13": "13.3", "9.6": "9.6.22"}, "score": 6.5, "title": "防止数组下标计算中的整数溢出", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "9.6": "9.6"}, "component": "core server", "published": {"10": "2021-05-13", "11": "2021-05-13", "12": "2021-05-13", "13": "2021-05-13", "9.6": "2021-05-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "While modifying certain SQL array values, missing bounds checks let authenticated database users write arbitrary bytes to a wide area of server memory.\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "first_published": "2021-05-13", "fixed_version": "9.6.22", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-7484", "url": "https://www.postgresql.org/support/security/CVE-2017-7484/", "fixed": {"9.2": "9.2.21", "9.3": "9.3.17", "9.4": "9.4.12", "9.5": "9.5.7", "9.6": "9.6.3"}, "score": 4.3, "title": "防止通过泄漏型操作符暴露统计信息", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-05-11", "9.3": "2017-05-11", "9.4": "2017-05-11", "9.5": "2017-05-11", "9.6": "2017-05-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-05-11", "fixed_version": "9.6.3", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-15098", "url": "https://www.postgresql.org/support/security/CVE-2017-15098/", "fixed": {"10": "10.1", "9.3": "9.3.20", "9.4": "9.4.15", "9.5": "9.5.10", "9.6": "9.6.6"}, "score": 4.3, "title": "修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "affected": {"10": "10", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"10": "2017-11-09", "9.3": "2017-11-09", "9.4": "2017-11-09", "9.5": "2017-11-09", "9.6": "2017-11-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-11-09", "fixed_version": "9.6.6", "severity": "中危", "status_label": "目标版本已修复"}, {"id": "CVE-2021-23222", "url": "https://www.postgresql.org/support/security/CVE-2021-23222/", "fixed": {"10": "10.19", "11": "11.14", "12": "12.9", "13": "13.5", "14": "14.1", "9.6": "9.6.24"}, "score": 3.7, "title": "让 libpq 拒绝 SSL 或 GSS 加密握手之后的多余数据", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "14": "14", "9.6": "9.6"}, "component": "client", "published": {"10": "2021-11-11", "11": "2021-11-11", "12": "2021-11-11", "13": "2021-11-11", "14": "2021-11-11", "9.6": "2021-11-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "A man-in-the-middle attacker can inject false responses to the client's first few queries, despite the use of SSL certificate verification and encryption.\n\nIf more preconditions hold, the attacker can exfiltrate the client's password or other confidential data that might be transmitted early in a session. The attacker must have a way to trick the client's intended server into making the confidential data accessible to the attacker. A known implementation having that property is a PostgreSQL configuration vulnerable to CVE-2021-23214 . As with any exploitation of CVE-2021-23214 , the server must be using trust authentication with a clientcert requirement or using cert authentication. To disclose a password, the client must be in possession of a password, which is atypical when using an authentication configuration vulnerable to CVE-2021-23214 . The attacker must have some other way to access the server to retrieve the exfiltrated data (a valid, unprivileged login account would be sufficient).\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "first_published": "2021-11-11", "fixed_version": "9.6.24", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2020-1720", "url": "https://www.postgresql.org/support/security/CVE-2020-1720/", "fixed": {"10": "10.12", "11": "11.7", "12": "12.2", "9.6": "9.6.17"}, "score": 3.1, "title": "为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N", "affected": {"10": "10", "11": "11", "12": "12", "9.6": "9.6"}, "component": "core server", "published": {"10": "2020-02-13", "11": "2020-02-13", "12": "2020-02-13", "9.6": "2020-02-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "The ALTER ... DEPENDS ON EXTENSION sub-commands do not perform authorization checks, which can allow an unprivileged user to drop any function, procedure, materialized view, index, or trigger under certain conditions. This attack is possible if an administrator has installed an extension and an unprivileged user can CREATE , or an extension owner either executes DROP EXTENSION predictably or can be convinced to execute DROP EXTENSION .\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "first_published": "2020-02-13", "fixed_version": "9.6.17", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2019-10130", "url": "https://www.postgresql.org/support/security/CVE-2019-10130/", "fixed": {"10": "10.8", "11": "11.3", "9.5": "9.5.17", "9.6": "9.6.13"}, "score": 3.1, "title": "防止通过选择率估计器绕过行级安全策略", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "affected": {"10": "10", "11": "11", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"10": "2019-05-09", "11": "2019-05-09", "9.5": "2019-05-09", "9.6": "2019-05-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "PostgreSQL maintains statistics for tables by sampling data available in columns; this data is consulted during the query planning process. Prior to this release, a user able to execute SQL queries with permissions to read a given column could craft a leaky operator that could read whatever data had been sampled from that column. If this happened to include values from rows that the user is forbidden to see by a row security policy, the user could effectively bypass the policy. This is fixed by only allowing a non-leakproof operator to use this data if there are no relevant row security policies for the table.\n\nThe PostgreSQL project thanks Dean Rasheed for reporting this problem.", "first_published": "2019-05-09", "fixed_version": "9.6.13", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2018-1115", "url": "https://www.postgresql.org/support/security/CVE-2018-1115/", "fixed": {"10": "10.4", "9.6": "9.6.9"}, "score": 3.1, "title": "移除 contrib/adminpack 的 pg_logfile_rotate() 函数上的公共执行权限", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N", "affected": {"10": "10", "9.6": "9.6"}, "component": "contrib module", "published": {"10": "2018-05-10", "9.6": "2018-05-10"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2018-05-10", "fixed_version": "9.6.9", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-7548", "url": "https://www.postgresql.org/support/security/CVE-2017-7548/", "fixed": {"9.4": "9.4.13", "9.5": "9.5.8", "9.6": "9.6.4"}, "score": 3.1, "title": "让 lo_put() 检查对目标大对象的 UPDATE 权限", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N", "affected": {"9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.4": "2017-11-09", "9.5": "2017-11-09", "9.6": "2017-11-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-11-09", "fixed_version": "9.6.4", "severity": "低危", "status_label": "目标版本已修复"}, {"id": "CVE-2017-15099", "url": "https://www.postgresql.org/support/security/CVE-2017-15099/", "fixed": {"10": "10.1", "9.5": "9.5.10", "9.6": "9.6.6"}, "score": 3.1, "title": "确保 INSERT ... ON CONFLICT DO UPDATE 在所有情况下检查表权限和 RLS 策略", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "affected": {"10": "10", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"10": "2017-11-09", "9.5": "2017-11-09", "9.6": "2017-11-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-11-09", "fixed_version": "9.6.6", "severity": "低危", "status_label": "目标版本已修复"}], "cve_available": true, "security_regressions": [], "remaining_cves": [{"id": "CVE-2026-6637", "url": "https://www.postgresql.org/support/security/CVE-2026-6637/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL refint allows stack buffer overflow and SQL injection", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6637", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Stack buffer overflow in PostgreSQL module \"refint\" allows an unprivileged database user to execute arbitrary code as the operating system user running the database. A distinct attack is possible if the application declares a user-controlled column as a \"refint\" cascade primary key and facilitates user-controlled updates to that column. In that case, a SQL injection allows a primary key update value provider to execute arbitrary SQL as the database user performing the primary key update. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6477", "url": "https://www.postgresql.org/support/security/CVE-2026-6477/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6477", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Use of inherently dangerous function PQfn(..., result_is_int=0, ...) in PostgreSQL libpq lo_export(), lo_read(), lo_lseek64(), and lo_tell64() functions allows the server superuser to overwrite a client stack buffer with an arbitrarily-large response. Like gets(), PQfn(..., result_is_int=0, ...) stores arbitrary-length, server-determined data into a buffer of unspecified size. Because both the \\lo_export command in psql and pg_dump call lo_read(), the server superuser can overwrite pg_dump or psql stack memory. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6475", "url": "https://www.postgresql.org/support/security/CVE-2026-6475/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL pg_basebackup and pg_rewind can overwrite unrelated files of origin superuser choice", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6475", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Symlink following in PostgreSQL pg_basebackup plain format and in pg_rewind allows an origin superuser to overwrite local files, e.g. /var/lib/postgres/.bashrc, that hijack the operating system account. It will remain the case that starting the server after these commands implicitly trusts the origin superuser, due to features like shared_preload_libraries. Hence, the attack has practical implications only if one takes relevant action between these commands and server start, like moving the files to a different VM or snapshotting the VM. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6473", "url": "https://www.postgresql.org/support/security/CVE-2026-6473/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 8.8, "title": "PostgreSQL server undersizes allocations, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6473", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in multiple PostgreSQL server features allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds. This may execute arbitrary code as the operating system user running the database. In applications that pass gigabyte-scale user inputs to the relevant database functions, the application input provider may achieve a segmentation fault. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-2006", "url": "https://www.postgresql.org/support/security/CVE-2026-2006/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "PostgreSQL missing validation of multibyte character length executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2006", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing validation of multibyte character length in PostgreSQL text manipulation allows a database user to issue crafted queries that achieve a buffer overrun. That suffices to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-2005", "url": "https://www.postgresql.org/support/security/CVE-2026-2005/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "PostgreSQL pgcrypto heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2005", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL pgcrypto allows a ciphertext provider to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-2004", "url": "https://www.postgresql.org/support/security/CVE-2026-2004/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "PostgreSQL intarray missing validation of type of input to selectivity estimator executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2004", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing validation of type of input in PostgreSQL intarray extension selectivity estimator function allows an object creator to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-19385", "url": "https://www.postgresql.org/support/security/CVE-2026-19385/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL pg_dump heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-19385", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL pg_dump of long function transform lists allows an object creator to execute arbitrary code as the operating system user running pg_dump, via a crafted transform list. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-18408", "url": "https://www.postgresql.org/support/security/CVE-2026-18408/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL psql \\unrestrict lets superuser of pg_dump origin server execute arbitrary code in psql client", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-18408", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql \\restrict meta-command input expansion. The fix for CVE-2025-8714 introduced \\restrict and \\unrestrict to block this attack, but \\unrestrict itself was sufficient for an attack. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. Non-core use of \\restrict would be affected, but we've not identified non-core use. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-16239", "url": "https://www.postgresql.org/support/security/CVE-2026-16239/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL type confusion in cursor CLOSE + DECLARE executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-16239", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion in PostgreSQL \"portal\"/cursor lifecycle allows a user to execute arbitrary code as the operating system user running the database, via re-creation of a cursor or other portal with different types. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-15742", "url": "https://www.postgresql.org/support/security/CVE-2026-15742/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL fuzzystrmatch writes effectively-arbitrary addresses, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-15742", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in PostgreSQL fuzzystrmatch allows a user to direct writes to a huge range of addresses, executing arbitrary code as the operating system user running the database, via extreme inputs to SQL function levenshtein() or levenshtein_less_equal(). Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-15741", "url": "https://www.postgresql.org/support/security/CVE-2026-15741/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL expression deparse allows SQL injection via EXTRACT argument", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-15741", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "SQL injection in PostgreSQL EXTRACT() deparse allows an object owner to execute arbitrary SQL as a superuser via a hostile object definition. Attacks affect expression deparse consumers broadly, including pg_dump, psql commands like \\sf, and any similar usage in non-core tools. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14680", "url": "https://www.postgresql.org/support/security/CVE-2026-14680/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL type confusion via \"internal\" arguments", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14680", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion with PostgreSQL \"internal\" data type arguments allows any user to execute arbitrary code as the operating system user running the database, via calls to functions with that argument type. Type \"internal\" represents a class of mutually-incompatible data structures not intended for access from SQL. The system intended to prevent such function calls, but this prevention had gaps. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14677", "url": "https://www.postgresql.org/support/security/CVE-2026-14677/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL 32-bit pltcl and plperl undersize allocations, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14677", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in PostgreSQL 32-bit builds of pltcl and plperl allows an object creator to cause the server to undersize an allocation and write out-of-bounds via crafted function bodies. This may execute arbitrary code as the operating system user running the database. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14671", "url": "https://www.postgresql.org/support/security/CVE-2026-14671/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL refint plan cache type confusion executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14671", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion in PostgreSQL module \"refint\" allows an object creator to execute arbitrary code as the operating system user running the database. The fix for this emerged as a non-security bug report, and the fix appear in the git repository with subject \"refint: Remove plan cache.\", without a CVE number. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14670", "url": "https://www.postgresql.org/support/security/CVE-2026-14670/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL plperl tied object heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14670", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL plperl return of a tied hash allows the function owner to execute arbitrary code as the operating system user running the database, via a crafted function body. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14669", "url": "https://www.postgresql.org/support/security/CVE-2026-14669/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL to_char heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14669", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL to_char(timestamptz) allows the party choosing the timezone to execute arbitrary code as the operating system user running the database, via a long POSIX timezone abbreviation. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14664", "url": "https://www.postgresql.org/support/security/CVE-2026-14664/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL regexp heap buffer overflow executes arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14664", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL regexp allows the query author to execute arbitrary code as the operating system user running the database, via text that would not pass encoding validation. This shares heritage with CVE-2026-2006, but this case involved unanticipated data growth when round-tripped through pg_wchar. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14662", "url": "https://www.postgresql.org/support/security/CVE-2026-14662/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.8, "title": "PostgreSQL tsvector and tsquery undersize allocations, via integer wraparound", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14662", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in PostgreSQL tsvector and tsquery data type functions allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds, via crafted large inputs. This may execute arbitrary code as the operating system user running the database. These types are typically sourced from application logic, not taken from the application's user. Hence, application users attacking the database, through the application as a conduit, are unlikely. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2025-8714", "url": "https://www.postgresql.org/support/security/CVE-2025-8714/", "fixed": {"13": "13.22", "14": "14.19", "15": "15.14", "16": "16.10", "17": "17.6"}, "score": 8.8, "title": "PostgreSQL pg_dump lets superuser of origin server execute arbitrary code in psql client", "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-8714", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-08-14", "14": "2025-08-14", "15": "2025-08-14", "16": "2025-08-14", "17": "2025-08-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. This is similar to MySQL CVE-2024-21096. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "affected_ranges": [{"from": "0", "until": "13.22"}, {"from": "14", "until": "14.19"}, {"from": "15", "until": "15.14"}, {"from": "16", "until": "16.10"}, {"from": "17", "until": "17.6"}], "first_published": "2025-08-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2024-7348", "url": "https://www.postgresql.org/support/security/CVE-2024-7348/", "fixed": {"12": "12.20", "13": "13.16", "14": "14.13", "15": "15.8", "16": "16.4"}, "score": 8.8, "title": "PostgreSQL relation replacement during pg_dump executes arbitrary SQL", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-7348", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16"}, "component": "core server", "published": {"12": "2024-08-08", "13": "2024-08-08", "14": "2024-08-08", "15": "2024-08-08", "16": "2024-08-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Time-of-check Time-of-use (TOCTOU) race condition in pg_dump in PostgreSQL allows an object creator to execute arbitrary SQL functions as the user running pg_dump, which is often a superuser. The attack involves replacing another relation type with a view or foreign table. The attack requires waiting for pg_dump to start, but winning the race condition is trivial if the attacker retains an open transaction. Versions before PostgreSQL 16.4, 15.8, 14.13, 13.16, and 12.20 are affected.\n\nThe PostgreSQL project thanks Noah Misch for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.20"}, {"from": "13", "until": "13.16"}, {"from": "14", "until": "14.13"}, {"from": "15", "until": "15.8"}, {"from": "16", "until": "16.4"}], "first_published": "2024-08-08", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2024-10979", "url": "https://www.postgresql.org/support/security/CVE-2024-10979/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 8.8, "title": "PostgreSQL PL/Perl environment variable changes execute arbitrary code", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10979", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect control of environment variables in PostgreSQL PL/Perl allows an unprivileged database user to change sensitive process environment variables (e.g. PATH ). That often suffices to enable arbitrary code execution, even if the attacker lacks a database server operating system user. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Coby Abrams for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14679", "url": "https://www.postgresql.org/support/security/CVE-2026-14679/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.2, "title": "PostgreSQL stack buffer overflow in argument match writes 0x0 and 0x1 to server memory", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14679", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Stack buffer overflow in PostgreSQL argument name matching allows an object creator to achieve unknown impacts via OUT parameter count. The attack can write only 0x0 and 0x1 bytes. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6464", "url": "https://www.postgresql.org/support/security/CVE-2026-6464/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.1, "title": "PostgreSQL psql COPY FROM STDIN early failure processes data lines as psql commands", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6464", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted data inclusion in PostgreSQL psql COPY may allow a server administrator to elicit execution of data lines as psql commands, via error injection. If the \"COPY FROM STDIN\" or \"\\copy FROM STDIN\" command fails before the server indicates that it awaits input rows, psql processes the in-line data rows as psql commands. \"COPY FROM\" with a filename is unaffected. The server administrator has no inherent control over the data rows, so a complete attack requires the attacker to separately acquire control of both the server and the data rows. Alternatively, an attacker controlling data rows alone might complete an attack through a coincidental error that they don't control. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-14668", "url": "https://www.postgresql.org/support/security/CVE-2026-14668/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 8.1, "title": "PostgreSQL ctid type confusion in selectivity estimator discloses derivative of arbitrary read", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14668", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Type confusion regarding input of PostgreSQL ctid data type selectivity estimator allows an object creator to view a calculation derived from the value of an arbitrary 4-byte span of memory, via a chosen non-ctid input. While the calculation loses precision, substantial memory value recovery appears possible. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2025-1094", "url": "https://www.postgresql.org/support/security/CVE-2025-1094/", "fixed": {"13": "13.19", "14": "14.16", "15": "15.11", "16": "16.7", "17": "17.3"}, "score": 8.1, "title": "PostgreSQL quoting APIs miss neutralizing quoting syntax in text that fails encoding validation", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-1094", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-02-13", "14": "2025-02-13", "15": "2025-02-13", "16": "2025-02-13", "17": "2025-02-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Improper neutralization of quoting syntax in PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() allows a database input provider to achieve SQL injection in certain usage patterns. Specifically, SQL injection requires the application to use the function result to construct input to psql, the PostgreSQL interactive terminal. Similarly, improper neutralization of quoting syntax in PostgreSQL command line utility programs allows a source of command line arguments to achieve SQL injection when client_encoding is BIG5 and server_encoding is one of EUC_TW or MULE_INTERNAL. Versions before PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 are affected.", "affected_ranges": [{"from": "0", "until": "13.19"}, {"from": "14", "until": "14.16"}, {"from": "15", "until": "15.11"}, {"from": "16", "until": "16.7"}, {"from": "17", "until": "17.3"}], "first_published": "2025-02-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2024-0985", "url": "https://www.postgresql.org/support/security/CVE-2024-0985/", "fixed": {"12": "12.18", "13": "13.14", "14": "14.11", "15": "15.6", "16": "16.2"}, "score": 8.0, "title": "PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL", "vector": "AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-0985", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16"}, "component": "core server", "published": {"12": "2024-02-08", "13": "2024-02-08", "14": "2024-02-08", "15": "2024-02-08", "16": "2024-02-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "UPDATE (June 19, 2024) : Added v16 as impacted. Updated description to clarify the attack vector.\n\nLate privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim into running REFRESH MATERIALIZED VIEW CONCURRENTLY on the attacker's materialized view.", "affected_ranges": [{"from": "0", "until": "12.18"}, {"from": "13", "until": "13.14"}, {"from": "14", "until": "14.11"}, {"from": "15", "until": "15.6"}, {"from": "16", "until": "16.2"}], "first_published": "2024-02-08", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6479", "url": "https://www.postgresql.org/support/security/CVE-2026-6479/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 7.5, "title": "PostgreSQL SSL/GSS init causes denial of service, via uncontrolled recursion", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6479", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Uncontrolled recursion in PostgreSQL SSL and GSS negotiation allows an attacker able to connect to a PostgreSQL AF_UNIX socket to achieve sustained denial of service. If SSL and GSS are both disabled, an attacker can do the same via access to a PostgreSQL TCP socket. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6471", "url": "https://www.postgresql.org/support/security/CVE-2026-6471/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 7.2, "title": "PostgreSQL logical decoding can dlopen arbitrary file", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6471", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL logical decoding allows a non-superuser holding REPLICATION privilege to dlopen any file visible to the operating system account running the server, via the choice of logical decoding plugin. This in turn runs arbitrary code as that account. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "高危"}, {"id": "CVE-2026-6478", "url": "https://www.postgresql.org/support/security/CVE-2026-6478/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 6.5, "title": "PostgreSQL discloses MD5-hashed passwords via covert timing channel", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6478", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Covert timing channel in comparison of MD5-hashed password in PostgreSQL authentication allows an attacker to recover user credentials sufficient to authenticate. This does not affect scram-sha-256 passwords, the default in all supported releases. However, current databases may have MD5-hashed passwords originating in upgrades from PostgreSQL 13 or earlier. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-14663", "url": "https://www.postgresql.org/support/security/CVE-2026-14663/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 6.5, "title": "PostgreSQL pgcrypto, for OpenSSL-disabled ciphers, silently encrypts to and decrypts from cleartext", "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14663", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Cleartext storage in PostgreSQL pgcrypto disabled ciphers allows a user to recover cleartext, via direct observation of the faulty ciphertext. The OpenSSL version and OpenSSL configuration determine the disabled ciphers. If the application accepts encrypted data as input, decryption will succeed even with the wrong key. This in turn loses the modest protection from the Modification Detection Code (MDC). Affected functions are pgp_sym_encrypt, pgp_sym_decrypt, pgp_pub_encrypt, pgp_pub_decrypt, pgp_sym_encrypt_bytea, pgp_sym_decrypt_bytea, pgp_pub_encrypt_bytea, and pgp_pub_decrypt_bytea. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2025-4207", "url": "https://www.postgresql.org/support/security/CVE-2025-4207/", "fixed": {"13": "13.21", "14": "14.18", "15": "15.13", "16": "16.9", "17": "17.5"}, "score": 5.9, "title": "PostgreSQL GB18030 encoding validation can read one byte past end of allocation for text that fails validation", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-4207", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-05-08", "14": "2025-05-08", "15": "2025-05-08", "16": "2025-05-08", "17": "2025-05-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Buffer over-read in PostgreSQL GB18030 encoding validation allows a database input provider to achieve temporary denial of service on platforms where a 1-byte over-read can elicit process termination. This affects the database server and also libpq. Versions before PostgreSQL 17.5, 16.9, 15.13, 14.18, and 13.21 are affected.", "affected_ranges": [{"from": "0", "until": "13.21"}, {"from": "14", "until": "14.18"}, {"from": "15", "until": "15.13"}, {"from": "16", "until": "16.9"}, {"from": "17", "until": "17.5"}], "first_published": "2025-05-08", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2025-12818", "url": "https://www.postgresql.org/support/security/CVE-2025-12818/", "fixed": {"13": "13.23", "14": "14.20", "15": "15.15", "16": "16.11", "17": "17.7", "18": "18.1"}, "score": 5.9, "title": "PostgreSQL libpq undersizes allocations, via integer wraparound", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-12818", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"13": "2025-11-13", "14": "2025-11-13", "15": "2025-11-13", "16": "2025-11-13", "17": "2025-11-13", "18": "2025-11-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in multiple PostgreSQL libpq client library functions allows an application input provider or network peer to cause libpq to undersize an allocation and write out-of-bounds by hundreds of megabytes. This results in a segmentation fault for the application using libpq. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "affected_ranges": [{"from": "0", "until": "13.23"}, {"from": "14", "until": "14.20"}, {"from": "15", "until": "15.15"}, {"from": "16", "until": "16.11"}, {"from": "17", "until": "17.7"}, {"from": "18", "until": "18.1"}], "first_published": "2025-11-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6472", "url": "https://www.postgresql.org/support/security/CVE-2026-6472/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 5.4, "title": "PostgreSQL CREATE TYPE does not check multirange schema CREATE privilege", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6472", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL CREATE TYPE allows an object creator to hijack other queries that use search_path to find user-defined types, including extension-defined types. That is to say, the victim will execute arbitrary SQL functions of the attacker's choice. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6474", "url": "https://www.postgresql.org/support/security/CVE-2026-6474/", "fixed": {"14": "14.23", "15": "15.18", "16": "16.14", "17": "17.10", "18": "18.4"}, "score": 4.3, "title": "PostgreSQL timeofday() can disclose portions of server memory", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6474", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-05-14", "15": "2026-05-14", "16": "2026-05-14", "17": "2026-05-14", "18": "2026-05-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Externally-controlled format string in PostgreSQL timeofday() function allows an attacker to retrieve portions of server memory, via crafted timezone zones. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "affected_ranges": [{"from": "0", "until": "14.23"}, {"from": "15", "until": "15.18"}, {"from": "16", "until": "16.14"}, {"from": "17", "until": "17.10"}, {"from": "18", "until": "18.4"}], "first_published": "2026-05-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6470", "url": "https://www.postgresql.org/support/security/CVE-2026-6470/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.3, "title": "PostgreSQL fails to check type USAGE privilege", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6470", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL DDL commands allows an object creator to achieve denial of service against ALTER and DROP of the type, via creating a dependency on the type. Many DDL operations did check the privilege, but assigning a range subtype and referencing the type from an SQL expression did not. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-2003", "url": "https://www.postgresql.org/support/security/CVE-2026-2003/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 4.3, "title": "PostgreSQL oidvector discloses a few bytes of memory", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2003", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Improper validation of type \"oidvector\" in PostgreSQL allows a database user to disclose a few bytes of server memory. We have not ruled out viability of attacks that arrange for presence of confidential information in disclosed bytes, but they seem unlikely. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-18024", "url": "https://www.postgresql.org/support/security/CVE-2026-18024/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.3, "title": "PostgreSQL ascii() function reads past end of buffer", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-18024", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Buffer over-read in PostgreSQL ascii() SQL function allows a user to disclose up to 3 bytes after the end of a specific allocation, via a crafted text value. This is the same class of defect that CVE-2026-2006 fixed, though this instance has less impact. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-14678", "url": "https://www.postgresql.org/support/security/CVE-2026-14678/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.3, "title": "PostgreSQL pg_trgm picksplit reads past end of buffer", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14678", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Buffer over-read in PostgreSQL pg_trgm index picksplit function reads past end of a heap buffer. This might allow a table maintainer to infer limited memory values, via the lossy signal of index split choices. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-14666", "url": "https://www.postgresql.org/support/security/CVE-2026-14666/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 4.2, "title": "PostgreSQL row security caching disregards role modifications", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14666", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incomplete tracking in PostgreSQL of changes to role membership, role attributes, and database ownership allows a query to continue using cached row-level security policies after those changes require a different policy, via plan reuse. Stale policies continue until some other event invalidates the cache or connection termination ends the session. This permits a user to complete reads and modifications that were recently permitted but now forbidden. An attacker must tailor an attack to a particular application's pattern of privilege removal and role-specific row security policies. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2024-10978", "url": "https://www.postgresql.org/support/security/CVE-2024-10978/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 4.2, "title": "PostgreSQL SET ROLE, SET SESSION AUTHORIZATION reset to wrong user ID", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10978", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to view or change different rows from those intended. An attack requires the application to use SET ROLE , SET SESSION AUTHORIZATION , or an equivalent feature. The problem arises when an application query uses parameters from the attacker or conveys query results to the attacker. If that query reacts to current_setting('role') or the current user ID, it may modify or return data as though the session had not used SET ROLE or SET SESSION AUTHORIZATION . The attacker does not control which incorrect user ID applies. Query text from less-privileged sources is not a concern here, because SET ROLE and SET SESSION AUTHORIZATION are not sandboxes for unvetted queries. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2024-10976", "url": "https://www.postgresql.org/support/security/CVE-2024-10976/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 4.2, "title": "PostgreSQL row security below e.g. subqueries disregards user ID changes", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10976", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incomplete tracking in PostgreSQL of tables with row security allows a reused query to view or change different rows from those intended. CVE-2023-2455 and CVE-2016-2193 fixed most interaction between row security and user ID changes. They missed cases where a subquery, WITH query, security invoker view, or SQL-language function references a table with a row-level security policy. This has the same consequences as the two earlier CVEs. That is to say, it leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLEs.\n\nApplying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy. An attacker must tailor an attack to a particular application's pattern of query plan reuse, user ID changes, and role-specific row security policies. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "中危"}, {"id": "CVE-2026-6469", "url": "https://www.postgresql.org/support/security/CVE-2026-6469/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 3.8, "title": "PostgreSQL ALTER TABLE ALTER TYPE resets extended statistics ownership", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-6469", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Incorrect ownership assignment in PostgreSQL ALTER TABLE ALTER TYPE command reassigns ownership of dependent statistics objects to the current user. This wrongly allows the table owner to run DROP STATISTICS and ALTER STATISTICS via this improper ownership. It wrongly denies those commands to the prior statistics object owner. DROP TABLE remains able to remove statistics objects, so this exploit achieves nothing in many ownership arrangements. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2026-16241", "url": "https://www.postgresql.org/support/security/CVE-2026-16241/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "17": "17.11", "18": "18.6"}, "score": 3.8, "title": "PostgreSQL ECPG integer underflow can crash the client", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-16241", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "client", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "17": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer underflow in PostgreSQL ECPG allows a database server administrator to achieve temporary denial of service against the ECPG client via sending a bytea value lacking the mandatory prefix. The client overwrites a huge memory region with bytes outside attacker knowledge or control. This typically yields a simple SIGSEGV, but rare cases might achieve client-specific integrity impact via the write. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "17", "until": "17.11"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2026-14673", "url": "https://www.postgresql.org/support/security/CVE-2026-14673/", "fixed": {"14": "14.24", "15": "15.19", "16": "16.15", "18": "18.6"}, "score": 3.8, "title": "PostgreSQL amcheck does not clear untrusted search path", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-14673", "affected": {"14": "14", "15": "15", "16": "16", "18": "18"}, "component": "contrib module", "published": {"14": "2026-08-13", "15": "2026-08-13", "16": "2026-08-13", "18": "2026-08-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Untrusted search path in PostgreSQL amcheck allows a grantee of amcheck function EXECUTE privilege to execute arbitrary functions as the owners of expression indexes that depend on the search path, via setting a hostile search path before calling the amcheck function. Within major versions 18, 16, 15, and 14, minor versions before PostgreSQL 18.6, 16.15, 15.19, and 14.24 are affected. PostgreSQL 17 is unaffected.", "affected_ranges": [{"from": "0", "until": "14.24"}, {"from": "15", "until": "15.19"}, {"from": "16", "until": "16.15"}, {"from": "18", "until": "18.6"}], "first_published": "2026-08-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2025-8713", "url": "https://www.postgresql.org/support/security/CVE-2025-8713/", "fixed": {"13": "13.22", "14": "14.19", "15": "15.14", "16": "16.10", "17": "17.6"}, "score": 3.1, "title": "PostgreSQL optimizer statistics can expose sampled data within a view, partition, or child table", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-8713", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "core server", "published": {"13": "2025-08-14", "14": "2025-08-14", "15": "2025-08-14", "16": "2025-08-14", "17": "2025-08-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "PostgreSQL optimizer statistics allow a user to read sampled data within a view that the user cannot access. Separately, statistics allow a user to read sampled data that a row security policy intended to hide. PostgreSQL maintains statistics for tables by sampling data available in columns; this data is consulted during the query planning process. Prior to this release, a user could craft a leaky operator that bypassed view access control lists (ACLs) and bypassed row security policies in partitioning or table inheritance hierarchies. Reachable statistics data notably included histograms and most-common-values lists. CVE-2017-7484 and CVE-2019-10130 intended to close this class of vulnerability, but this gap remained. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "affected_ranges": [{"from": "0", "until": "13.22"}, {"from": "14", "until": "14.19"}, {"from": "15", "until": "15.14"}, {"from": "16", "until": "16.10"}, {"from": "17", "until": "17.6"}], "first_published": "2025-08-14", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2025-12817", "url": "https://www.postgresql.org/support/security/CVE-2025-12817/", "fixed": {"13": "13.23", "14": "14.20", "15": "15.15", "16": "16.11", "17": "17.7", "18": "18.1"}, "score": 3.1, "title": "PostgreSQL CREATE STATISTICS does not check for schema CREATE privilege", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-12817", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"13": "2025-11-13", "14": "2025-11-13", "15": "2025-11-13", "16": "2025-11-13", "17": "2025-11-13", "18": "2025-11-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL CREATE STATISTICS command allows a table owner to achieve denial of service against other CREATE STATISTICS users by creating in any schema. A later CREATE STATISTICS for the same name, from a user having the CREATE privilege, would then fail. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "affected_ranges": [{"from": "0", "until": "13.23"}, {"from": "14", "until": "14.20"}, {"from": "15", "until": "15.15"}, {"from": "16", "until": "16.11"}, {"from": "17", "until": "17.7"}, {"from": "18", "until": "18.1"}], "first_published": "2025-11-13", "fixed_version": "", "severity": "低危"}, {"id": "CVE-2024-10977", "url": "https://www.postgresql.org/support/security/CVE-2024-10977/", "fixed": {"12": "12.21", "13": "13.17", "14": "14.14", "15": "15.9", "16": "16.5", "17": "17.1"}, "score": 3.1, "title": "PostgreSQL libpq retains an error message from man-in-the-middle", "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-10977", "affected": {"12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17"}, "component": "client", "published": {"12": "2024-11-14", "13": "2024-11-14", "14": "2024-11-14", "15": "2024-11-14", "16": "2024-11-14", "17": "2024-11-14"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Client use of server error message in PostgreSQL allows a server not trusted under current SSL or GSS settings to furnish arbitrary non-NUL bytes to the libpq application. For example, a man-in-the-middle attacker could send a long error message that a human or screen-scraper user of psql mistakes for valid query results. This is probably not a concern for clients where the user interface unambiguously indicates the boundary between one error message and other text. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "affected_ranges": [{"from": "0", "until": "12.21"}, {"from": "13", "until": "13.17"}, {"from": "14", "until": "14.14"}, {"from": "15", "until": "15.9"}, {"from": "16", "until": "16.5"}, {"from": "17", "until": "17.1"}], "first_published": "2024-11-14", "fixed_version": "", "severity": "低危"}], "cross_major": false, "excluded_count": 0, "already_in_source_count": 0, "duplicate_count": 0, "candidate_count": 891, "exclusions": [], "history": {"source": ["9.0.0", "9.0.1", "9.0.2", "9.0.3", "9.0.4", "9.1.0", "9.1.1", "9.1.2", "9.1.3", "9.1.4", "9.1.5", "9.2.0", "9.2.1", "9.2.2", "9.2.3", "9.2.4", "9.3.0", "9.3.1", "9.3.2", "9.3.3", "9.3.4", "9.3.5", "9.4.0", "9.4.1", "9.4.2", "9.4.3", "9.4.4", "9.4.5", "9.5.0", "9.5.1", "9.5.2", "9.5.3", "9.5.4", "9.6.0"], "target": ["9.0.0", "9.0.1", "9.0.2", "9.0.3", "9.0.4", "9.1.0", "9.1.1", "9.1.2", "9.1.3", "9.1.4", "9.1.5", "9.2.0", "9.2.1", "9.2.2", "9.2.3", "9.2.4", "9.3.0", "9.3.1", "9.3.2", "9.3.3", "9.3.4", "9.3.5", "9.4.0", "9.4.1", "9.4.2", "9.4.3", "9.4.4", "9.4.5", "9.5.0", "9.5.1", "9.5.2", "9.5.3", "9.5.4", "9.6.0", "9.6.1", "9.6.2", "9.6.3", "9.6.4", "9.6.5", "9.6.6", "9.6.7", "9.6.8", "9.6.9", "9.6.10", "9.6.11", "9.6.12", "9.6.13", "9.6.14", "9.6.15", "9.6.16", "9.6.17", "9.6.18", "9.6.19", "9.6.20", "9.6.21", "9.6.22", "9.6.23", "9.6.24"], "candidates": ["9.6.1", "9.6.2", "9.6.3", "9.6.4", "9.6.5", "9.6.6", "9.6.7", "9.6.8", "9.6.9", "9.6.10", "9.6.11", "9.6.12", "9.6.13", "9.6.14", "9.6.15", "9.6.16", "9.6.17", "9.6.18", "9.6.19", "9.6.20", "9.6.21", "9.6.22", "9.6.23", "9.6.24"]}, "release_count": 24, "warnings": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}