{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2021-11-11", "build": "14.1", "major": "14", "minor": 1, "manual": "14", "status": "stable", "doc_git": "", "version": "14.1", "eol_date": "2026-11-12", "date_text": "2021-11-11", "supported": true, "manual_url": "/docs/14/release-14-1.html", "source_url": "/docs/release/14.1/", "entry_count": 46, "placeholder": false, "content_hash": "98d724308dddfdd651436353fea1575ca99733518df8ce896822fa1cbb1670d6", "manual_build": "14.24", "source_as_of": "", "changes_count": 46, "doc_loaded_at": "2026-09-26T02:56:39.341991", "migration_html": "<p>对于运行 14.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，请注意使用物理复制的安装应先更新备库再更新主库，如下面第三个变更日志条目所述。</p>\n<p>此外，已发现若干可能导致索引损坏的错误，如接下来几个变更日志条目所述。如果存在上述任一情况，建议在更新后重建可能受影响的索引。</p>", "compatibility_count": 0, "label": "14.1", "status_label": "受支持版本", "eol": "2026-11-12", "age_days": 1784, "support_days": 43}, "groups": [{"date": "2021-11-11", "build": "14.1", "major": "14", "minor": 1, "manual": "14", "status": "stable", "doc_git": "", "version": "14.1", "eol_date": "2026-11-12", "date_text": "2021-11-11", "supported": true, "manual_url": "/docs/14/release-14-1.html", "source_url": "/docs/release/14.1/", "entry_count": 46, "placeholder": false, "content_hash": "98d724308dddfdd651436353fea1575ca99733518df8ce896822fa1cbb1670d6", "manual_build": "14.24", "source_as_of": "", "changes_count": 46, "doc_loaded_at": "2026-09-26T02:56:39.341991", "migration_html": "<p>对于运行 14.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，请注意使用物理复制的安装应先更新备库再更新主库，如下面第三个变更日志条目所述。</p>\n<p>此外，已发现若干可能导致索引损坏的错误，如接下来几个变更日志条目所述。如果存在上述任一情况，建议在更新后重建可能受影响的索引。</p>", "compatibility_count": 0, "label": "14.1", "status_label": "受支持版本", "eol": "2026-11-12", "age_days": 1784, "support_days": 43, "entries": [{"id": "14.1-1856c71e2cf03259", "cves": ["CVE-2021-23214"], "html": "<p>使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据（Tom Lane）<a href=\"https://postgr.es/c/9d5a76b8d\">§</a></p>\n<p>能够向 TCP 连接注入数据的中间人攻击者可以在本应受加密保护的数据库会话开始时塞入一些明文数据。这可以被用来向服务器发送伪造的 SQL 命令，不过只有在服务器不要求任何认证数据时才能生效。（然而，依赖 SSL 证书认证的服务器很可能不会要求认证数据。）</p>\n<p><span>PostgreSQL</span> 项目感谢 Jacob Champion 报告此问题。（CVE-2021-23214）</p>", "text": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据（Tom Lane）§ 能够向 TCP 连接注入数据的中间人攻击者可以在本应受加密保护的数据库会话开始时塞入一些明文数据。这可以被用来向服务器发送伪造的 SQL 命令，不过只有在服务器不要求任何认证数据时才能生效。（然而，依赖 SSL 证书认证的服务器很可能不会要求认证数据。） PostgreSQL 项目感谢 Jacob Champion 报告此问题。（CVE-2021-23214）", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "commits": ["9d5a76b8d"], "section": "变更", "category": "security", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "ef422b71ec3556968aef547ccfe61b3ed7d46399c44a8536e629309162f1302a", "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": ["9d5a76b8d"], "source_entry_id": "14.1/changes/001", "db_id": "fc87ef5d0ccafcfa310e5943b1e9fd2d", "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": "857b0ddcc2ac0b70542c7713521baa4a", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}], "version": "14.1", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "857b0ddcc2ac0b70542c7713521baa4a", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "让服务器拒绝 SSL 或 GSS 加密握手之后的多余数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=9.6.24#9.6.24-c319beb02a50a88f", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-2148a2c0309fac1a", "cves": ["CVE-2021-23214", "CVE-2021-23222"], "html": "<p>使 <span>libpq</span> 在 SSL 或 GSS 加密握手后拒绝多余的数据（Tom Lane）<a href=\"https://postgr.es/c/30547d791\">§</a></p>\n<p>能够向 TCP 连接注入数据的中间人攻击者可以在本应受加密保护的数据库会话开始时塞入一些明文数据。这可能被用来向客户端注入伪造的响应，不过 libpq 行为的其他细节使得这比听起来更难实现。另一种攻击方式是窃取客户端的密码或其他可能在会话早期发送的敏感数据。已证明在受 CVE-2021-23214 漏洞影响的服务器上这是可能的。</p>\n<p><span>PostgreSQL</span> 项目感谢 Jacob Champion 报告此问题。（CVE-2021-23222）</p>", "text": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据（Tom Lane）§ 能够向 TCP 连接注入数据的中间人攻击者可以在本应受加密保护的数据库会话开始时塞入一些明文数据。这可能被用来向客户端注入伪造的响应，不过 libpq 行为的其他细节使得这比听起来更难实现。另一种攻击方式是窃取客户端的密码或其他可能在会话早期发送的敏感数据。已证明在受 CVE-2021-23214 漏洞影响的服务器上这是可能的。 PostgreSQL 项目感谢 Jacob Champion 报告此问题。（CVE-2021-23222）", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "commits": ["30547d791"], "section": "变更", "category": "security", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "34371d277e1f93519c8354608010199a466eb879f426a8238da21cd851ae1d24", "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": ["30547d791"], "source_entry_id": "14.1/changes/002", "db_id": "0eb9d93d5afa77a8d89883bdcf340ff7", "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1", "relations": [{"rule": 2, "type": "equivalent", "target": "5001ce09f2dce03a32492997ae85add4", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}, {"rule": 2, "type": "equivalent", "target": "53707865a7e0107f3647c7f9f6fd2945", "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": "14.1", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "53707865a7e0107f3647c7f9f6fd2945", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "让 libpq 拒绝 SSL 或 GSS 加密握手之后的多余数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=9.6.24#9.6.24-0eb2aa94a5567b47", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-0856b4e7843716b2", "cves": [], "html": "<p>修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题（Álvaro Herrera）<a href=\"https://postgr.es/c/64a8687a6\">§</a> <a href=\"https://postgr.es/c/e3731bac5\">§</a> <a href=\"https://postgr.es/c/0ce67bce0\">§</a> <a href=\"https://postgr.es/c/79c7fe1af\">§</a> <a href=\"https://postgr.es/c/494ec0037\">§</a></p>\n<p>如果主库未能存活足够长的时间来完成写入不完整 WAL 记录的剩余部分，则之前的崩溃恢复逻辑会回退并从不完整 WAL 记录的开头处重新覆盖写入 WAL。这是有问题的，因为备库可能已有该 WAL 段的副本。它们随后会看到不一致的下一个段，将无法在没有人工干预的情况下恢复。为修复此问题，在崩溃后重新启动时不再跨越 WAL 段边界回退。而是在下一个 WAL 段的开头写入一种新类型的 WAL 记录，通知读取器不完整的 WAL 记录将永远不会被完成且必须被忽略。</p>\n<p>应用此更新时，最好先更新备库再更新主库，这样如果主库发生崩溃，备库就已准备好处理这种新类型的 WAL 记录。</p>", "text": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题（Álvaro Herrera）§ § § § § 如果主库未能存活足够长的时间来完成写入不完整 WAL 记录的剩余部分，则之前的崩溃恢复逻辑会回退并从不完整 WAL 记录的开头处重新覆盖写入 WAL。这是有问题的，因为备库可能已有该 WAL 段的副本。它们随后会看到不一致的下一个段，将无法在没有人工干预的情况下恢复。为修复此问题，在崩溃后重新启动时不再跨越 WAL 段边界回退。而是在下一个 WAL 段的开头写入一种新类型的 WAL 记录，通知读取器不完整的 WAL 记录将永远不会被完成且必须被忽略。 应用此更新时，最好先更新备库再更新主库，这样如果主库发生崩溃，备库就已准备好处理这种新类型的 WAL 记录。", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "commits": ["0ce67bce0", "494ec0037", "64a8687a6", "79c7fe1af", "e3731bac5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "5230ea071f11d512bd0ecb1668a092b8fffdfb05d7e9bff2010a0160439d21f6", "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": ["0ce67bce0", "494ec0037", "64a8687a6", "79c7fe1af", "e3731bac5"], "source_entry_id": "14.1/changes/003", "db_id": "ad7b9b773525fc6f9c73b4c0868d1bfd", "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": "5c3b4b3569d336c307f9853e4ba2e79b", "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": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "5c3b4b3569d336c307f9853e4ba2e79b", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复主库在传送了一个以不完整 WAL 记录结尾的 WAL 段之后崩溃时物理复制的问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=9.6.24#9.6.24-a8cf2c8e93f988bb", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-7fab7c517c86aa39", "cves": [], "html": "<p>确保并行 <code>VACUUM</code> 不会遗漏任何索引（Peter Geoghegan，Masahiko Sawada）<a href=\"https://postgr.es/c/61a86ed55\">§</a></p>\n<p>如果表还有至少两个大于 <code>min_parallel_index_scan_size</code> 阈值的索引，则并行 <code>VACUUM</code> 会无法处理低于该阈值的索引。这可能导致那些索引变得损坏，因为它们仍然包含对已被 <code>VACUUM</code> 移除的堆条目的引用；使用此类索引的后续查询可能会返回不应返回的行。此问题不影响 autovacuum，因为它不使用并行清理。但是，建议对具有合适索引大小组合的手动执行清理的表重建索引。</p>", "text": "确保并行 VACUUM 不会遗漏任何索引（Peter Geoghegan，Masahiko Sawada）§ 如果表还有至少两个大于 min_parallel_index_scan_size 阈值的索引，则并行 VACUUM 会无法处理低于该阈值的索引。这可能导致那些索引变得损坏，因为它们仍然包含对已被 VACUUM 移除的堆条目的引用；使用此类索引的后续查询可能会返回不应返回的行。此问题不影响 autovacuum，因为它不使用并行清理。但是，建议对具有合适索引大小组合的手动执行清理的表重建索引。", "title": "确保并行 VACUUM 不会遗漏任何索引", "commits": ["61a86ed55"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "ea01e3e41e8fd307b47359f09a8820e452c020f322bed26edd4734ed1ab4cbb7", "section_path": ["变更"], "commit_groups": [["61a86ed55", "9bacec15b"]], "identity_text": "Ensure that parallel VACUUM doesn't miss any indexes (Peter Geoghegan, Masahiko Sawada) A parallel VACUUM would fail to process indexes that are below the min_parallel_index_scan_size cutoff, if the table also has at least two indexes that are above that size. This could result in those indexes becoming corrupt, since they'd still contain references to any heap entries removed by the VACUUM; subsequent queries using such indexes would be likely to return rows they shouldn't. This problem does not affect autovacuum, since it doesn't use parallel vacuuming. However, it is advisable to reindex any manually-vacuumed tables that have the right mix of index sizes.", "commit_aliases": ["61a86ed55", "9bacec15b"], "source_commits": ["61a86ed55"], "source_entry_id": "14.1/changes/004", "db_id": "fcd15b6f489e272877dfb9cca546f760", "patch_ids": ["f7accc6c5729347c45755acda85ffa0b"], "statement_hash": "d2150ba54f70357aed2b6b5df9182773a9f58a91259606da41a57865e248924a", "relations": [], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-7eff03da16984474", "cves": [], "html": "<p>修复 <code>CREATE INDEX CONCURRENTLY</code> 以等待最新的预备事务（Andrey Borodin）<a href=\"https://postgr.es/c/a5b9a0000\">§</a></p>\n<p>刚刚预备的事务插入的行可能会从新索引中遗漏，导致依赖该索引的查询错过此类行。之前对此类问题的修复未能考虑到在 <code>CREATE INDEX CONCURRENTLY</code> 检查时仍在进行中的 <code>PREPARE TRANSACTION</code> 命令。与之前一样，在启用了预备事务（<code>max_prepared_transactions</code> &gt; 0）的安装中，建议重建所有并发构建的索引，以防在构建时发生了此问题。</p>", "text": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务（Andrey Borodin）§ 刚刚预备的事务插入的行可能会从新索引中遗漏，导致依赖该索引的查询错过此类行。之前对此类问题的修复未能考虑到在 CREATE INDEX CONCURRENTLY 检查时仍在进行中的 PREPARE TRANSACTION 命令。与之前一样，在启用了预备事务（max_prepared_transactions > 0）的安装中，建议重建所有并发构建的索引，以防在构建时发生了此问题。", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "commits": ["a5b9a0000"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "cfc79bdfc2eaeb1c3291dcc3712df4e35fc461eb7b4b21ea8cb3ecf6034d0195", "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": ["a5b9a0000"], "source_entry_id": "14.1/changes/005", "db_id": "4934600b9293e0f1f7f8f1e739af1119", "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": "6d5aa221c7204c3c6a575c9053ba8e7e", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "a7521435391a05f9d426c68191458f68", "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": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "a7521435391a05f9d426c68191458f68", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复 CREATE INDEX CONCURRENTLY，使其等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=9.6.24#9.6.24-35c0e2b5295528e8", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-a2238e4d68b7f1ba", "cves": [], "html": "<p>避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中（Noah Misch，Andrey Borodin）<a href=\"https://postgr.es/c/dde966efb\">§</a></p>\n<p>虽然此情况在实际环境中似乎很少发生，但它可能影响使用 <code>CONCURRENTLY</code> 选项构建或重建的任何索引。建议重建此类索引以确保其正确性。</p>", "text": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中（Noah Misch，Andrey Borodin）§ 虽然此情况在实际环境中似乎很少发生，但它可能影响使用 CONCURRENTLY 选项构建或重建的任何索引。建议重建此类索引以确保其正确性。", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "commits": ["dde966efb"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "ccb07cb601c1d84d6ee5b1b8452753dff668766a3593b05a5885711414285699", "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": ["dde966efb"], "source_entry_id": "14.1/changes/006", "db_id": "d7a3416e3d836824c570371f9fd6e77e", "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151", "relations": [{"rule": 2, "type": "equivalent", "target": "4c7c7a71adee68fc5ead28fb2dc5d91f", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}, {"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"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "4c7c7a71adee68fc5ead28fb2dc5d91f", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "避免可能导致后端进程无法把新行的条目加入正在并发构建的索引的竞态条件", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=9.6.24#9.6.24-e449c3889eb37b5b", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-88f48d683752c3d0", "cves": [], "html": "<p>修复 <code>REINDEX CONCURRENTLY</code> 以保留附加到目标索引上的操作符类参数（Michael Paquier）<a href=\"https://postgr.es/c/f255de9a4\">§</a></p>", "text": "修复 REINDEX CONCURRENTLY 以保留附加到目标索引上的操作符类参数（Michael Paquier）§", "title": "修复 REINDEX CONCURRENTLY 以保留附加到目标索引上的操作符类参数", "commits": ["f255de9a4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "8929c64e8211fff4f235f88f76c25d5d8c4d1dcb9586a83144424e6b5c7a894c", "section_path": ["变更"], "commit_groups": [["77f7909a4", "add5cf28d", "f255de9a4"]], "identity_text": "Fix REINDEX CONCURRENTLY to preserve operator class parameters that were attached to the target index (Michael Paquier)", "commit_aliases": ["77f7909a4", "add5cf28d", "f255de9a4"], "source_commits": ["f255de9a4"], "source_entry_id": "14.1/changes/007", "db_id": "91194d5478ada2a116322a65e3541598", "patch_ids": ["5bc629d78d36462090740e5bafe5ad55"], "statement_hash": "c9a897b67e127d14f3bbd245753ad4619f1f28cdf69601a9753ee2d0cdff69fc", "relations": [{"rule": 2, "type": "equivalent", "target": "5e26ac6014011713746f449500785356", "evidence": {"same_day": true, "patch_ids": ["5bc629d78d36462090740e5bafe5ad55"], "statement_hash": "c9a897b67e127d14f3bbd245753ad4619f1f28cdf69601a9753ee2d0cdff69fc"}}], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e26ac6014011713746f449500785356", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 REINDEX CONCURRENTLY 以保留附加到目标索引上的操作符类参数", "evidence": {"same_day": true, "patch_ids": ["5bc629d78d36462090740e5bafe5ad55"], "statement_hash": "c9a897b67e127d14f3bbd245753ad4619f1f28cdf69601a9753ee2d0cdff69fc"}, "url": "/docs/compare/?release=13.5#13.5-482a77d28b65aad4", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}]}, {"id": "14.1-c71b01261b75c8d7", "cves": [], "html": "<p>修复克隆包含非内置对象的数据库时共享依赖关系的错误创建（Aleksander Alekseev）<a href=\"https://postgr.es/c/5040c9641\">§</a></p>\n<p>此错误在实际中的影响可能是有限的。原则上，它可能允许在角色仍拥有对象时被删除；但大多数安装永远不会想要删除曾被用于向 <code>template1</code> 添加对象的角色。</p>", "text": "修复克隆包含非内置对象的数据库时共享依赖关系的错误创建（Aleksander Alekseev）§ 此错误在实际中的影响可能是有限的。原则上，它可能允许在角色仍拥有对象时被删除；但大多数安装永远不会想要删除曾被用于向 template1 添加对象的角色。", "title": "修复克隆包含非内置对象的数据库时共享依赖关系的错误创建", "commits": ["5040c9641"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "09bb9de43df8442b62bac390ded35358bdcba938cd7c895a06421a0984aee92e", "section_path": ["变更"], "commit_groups": [["5040c9641", "98ec35b0b"]], "identity_text": "Fix incorrect creation of shared dependencies when cloning a database that contains non-builtin objects (Aleksander Alekseev) The effects of this error are probably limited in practice. In principle, it could allow a role to be dropped while it still owns objects; but most installations would never want to drop a role that had been used for objects they'd added to template1.", "commit_aliases": ["5040c9641", "98ec35b0b"], "source_commits": ["5040c9641"], "source_entry_id": "14.1/changes/008", "db_id": "05b3142de124bcf0297bd8276e183b43", "patch_ids": ["58fad30849fc191143e7b7a277e379d6"], "statement_hash": "168d9ec6cc8025198aa6e13e7b59452b1d2cb786bb233c6f7a9f82cbc97931d0", "relations": [], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-235941af878ba53a", "cves": [], "html": "<p>确保在将表附加到分区表或从分区表中分离时正确地使关系缓存失效（Amit Langote，Álvaro Herrera）<a href=\"https://postgr.es/c/72d064217\">§</a></p>\n<p>此疏忽可能导致直接对该分区进行后续插入/更新时出现错误行为，但仅在当前已存在的会话中。</p>", "text": "确保在将表附加到分区表或从分区表中分离时正确地使关系缓存失效（Amit Langote，Álvaro Herrera）§ 此疏忽可能导致直接对该分区进行后续插入/更新时出现错误行为，但仅在当前已存在的会话中。", "title": "确保在将表附加到分区表或从分区表中分离时正确地使关系缓存失效", "commits": ["72d064217"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "e5a4ae1dd77c9b46b79acdf010bb331dcb4cd45fec24c3972b8a4cf7f7c1b97a", "section_path": ["变更"], "commit_groups": [["72d064217", "8b26be8a3", "b703b7d31", "d36bdc4e9", "d6f1e16c8", "fe35528a5"]], "identity_text": "Ensure that the relation cache is invalidated for a table being attached to or detached from a partitioned table (Amit Langote, Álvaro Herrera) This oversight could allow misbehavior of subsequent inserts/updates addressed directly to the partition, but only in currently-existing sessions.", "commit_aliases": ["72d064217", "8b26be8a3", "b703b7d31", "d36bdc4e9", "d6f1e16c8", "fe35528a5"], "source_commits": ["72d064217"], "source_entry_id": "14.1/changes/009", "db_id": "399e64fa5c4b8514038703aef9b1061f", "patch_ids": ["b6c54f624b14decafe39b03160f53b71"], "statement_hash": "18f6a26fe479a9da390ed03a7b0a43257a27a3ecd2e0ba2d4e8cae9673b02d97", "relations": [{"rule": 2, "type": "equivalent", "target": "68f6e9565e0d2ed7061eab04e6d2ca8b", "evidence": {"same_day": true, "patch_ids": ["b6c54f624b14decafe39b03160f53b71"], "statement_hash": "18f6a26fe479a9da390ed03a7b0a43257a27a3ecd2e0ba2d4e8cae9673b02d97"}}, {"rule": 2, "type": "equivalent", "target": "6c1745ac029f0ebc0c59c7da1486932a", "evidence": {"same_day": true, "patch_ids": ["b6c54f624b14decafe39b03160f53b71"], "statement_hash": "18f6a26fe479a9da390ed03a7b0a43257a27a3ecd2e0ba2d4e8cae9673b02d97"}}, {"rule": 2, "type": "equivalent", "target": "a96120cb8226babdad88dfadd2f4e94c", "evidence": {"same_day": true, "patch_ids": ["b6c54f624b14decafe39b03160f53b71"], "statement_hash": "18f6a26fe479a9da390ed03a7b0a43257a27a3ecd2e0ba2d4e8cae9673b02d97"}}, {"rule": 2, "type": "equivalent", "target": "babede4b24ab932fa7ec8b2f8bcb3ee2", "evidence": {"same_day": true, "patch_ids": ["b6c54f624b14decafe39b03160f53b71"], "statement_hash": "18f6a26fe479a9da390ed03a7b0a43257a27a3ecd2e0ba2d4e8cae9673b02d97"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "68f6e9565e0d2ed7061eab04e6d2ca8b", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保在将表附加到分区表或从分区表中分离时正确地使关系缓存失效", "evidence": {"same_day": true, "patch_ids": ["b6c54f624b14decafe39b03160f53b71"], "statement_hash": "18f6a26fe479a9da390ed03a7b0a43257a27a3ecd2e0ba2d4e8cae9673b02d97"}, "url": "/docs/compare/?release=13.5#13.5-248868883c5bf3f3", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "a96120cb8226babdad88dfadd2f4e94c", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保在将表附加到分区表或从分区表中分离时正确地使关系缓存失效", "evidence": {"same_day": true, "patch_ids": ["b6c54f624b14decafe39b03160f53b71"], "statement_hash": "18f6a26fe479a9da390ed03a7b0a43257a27a3ecd2e0ba2d4e8cae9673b02d97"}, "url": "/docs/compare/?release=12.9#12.9-195c42984982f484", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "6c1745ac029f0ebc0c59c7da1486932a", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保在将表附加到分区表或从分区表中分离时正确地使关系缓存失效", "evidence": {"same_day": true, "patch_ids": ["b6c54f624b14decafe39b03160f53b71"], "statement_hash": "18f6a26fe479a9da390ed03a7b0a43257a27a3ecd2e0ba2d4e8cae9673b02d97"}, "url": "/docs/compare/?release=11.14#11.14-dbc88a9bc6e9a7ed", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "babede4b24ab932fa7ec8b2f8bcb3ee2", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保在将表附加到分区表或从分区表中分离时正确地使关系缓存失效", "evidence": {"same_day": true, "patch_ids": ["b6c54f624b14decafe39b03160f53b71"], "statement_hash": "18f6a26fe479a9da390ed03a7b0a43257a27a3ecd2e0ba2d4e8cae9673b02d97"}, "url": "/docs/compare/?release=10.19#10.19-dbc88a9bc6e9a7ed", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "14.1-2e085b604105f719", "cves": [], "html": "<p>修复创建范围类型时解析树的损坏（Alex Kozhemyakin，Sergey Shinderuk）<a href=\"https://postgr.es/c/922e15c47\">§</a></p>\n<p><code>CREATE TYPE</code> 错误地释放了解析树的一个元素，这可能导致后续事件触发器出现问题，或者如果 <code>CREATE TYPE</code> 命令被存储在计划缓存中并在稍后再次使用时也会出问题。</p>", "text": "修复创建范围类型时解析树的损坏（Alex Kozhemyakin，Sergey Shinderuk）§ CREATE TYPE 错误地释放了解析树的一个元素，这可能导致后续事件触发器出现问题，或者如果 CREATE TYPE 命令被存储在计划缓存中并在稍后再次使用时也会出问题。", "title": "修复创建范围类型时解析树的损坏", "commits": ["922e15c47"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "7cfc4c71ab1d3df6af2e1db1d981565bbff0a293e91c74a4a80cee08dd35ad29", "section_path": ["变更"], "commit_groups": [["5b0e7fe1d", "922e15c47"]], "identity_text": "Fix corruption of parse tree while creating a range type (Alex Kozhemyakin, Sergey Shinderuk) CREATE TYPE incorrectly freed an element of the parse tree, which could cause problems for a later event trigger, or if the CREATE TYPE command was stored in the plan cache and used again later.", "commit_aliases": ["5b0e7fe1d", "922e15c47"], "source_commits": ["922e15c47"], "source_entry_id": "14.1/changes/010", "db_id": "890faac6051533b12584bda93115e02b", "patch_ids": ["8a3d88445a5e92a60a600b49af7bb533"], "statement_hash": "baeed433a8f9ce37e0a6691cce38ae475146a874c988c473dc474a4e335cbfbb", "relations": [], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-5b14c0c9df66c22e", "cves": [], "html": "<p>修复复合类型上域的数组中元素字段的更新问题（Tom Lane）<a href=\"https://postgr.es/c/04dae19f4\">§</a></p>\n<p>如果数组的元素是域而不是普通复合类型，则类似 <code>UPDATE tab SET fld[1].subfld = val</code> 这样的命令会失败。</p>", "text": "修复复合类型上域的数组中元素字段的更新问题（Tom Lane）§ 如果数组的元素是域而不是普通复合类型，则类似 UPDATE tab SET fld[1].subfld = val 这样的命令会失败。", "title": "修复复合类型上域的数组中元素字段的更新问题", "commits": ["04dae19f4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "d3b43568f43e7e09109fe2a00f42153e979b2f7fd849536fffe4fe5eab8e5d4e", "section_path": ["变更"], "commit_groups": [["04dae19f4", "0d08c279b", "30e61a8cd", "3e310d837", "ae7b1dd59"]], "identity_text": "Fix updates of element fields in arrays of domain over composite (Tom Lane) A command such as UPDATE tab SET fld[1].subfld = val failed if the array's elements were domains rather than plain composites.", "commit_aliases": ["04dae19f4", "0d08c279b", "30e61a8cd", "3e310d837", "ae7b1dd59"], "source_commits": ["04dae19f4"], "source_entry_id": "14.1/changes/011", "db_id": "d15026641129c059d812e9938a29747c", "patch_ids": ["e448e00f97298157e5b29041db9eb7c5"], "statement_hash": "035a869420643c0bf81a4e4e81a12f02453029968ff6ed26feab550a68fdacd9", "relations": [{"rule": 2, "type": "equivalent", "target": "333832aac4821f3773076f8ae57b634b", "evidence": {"same_day": true, "patch_ids": ["e448e00f97298157e5b29041db9eb7c5"], "statement_hash": "035a869420643c0bf81a4e4e81a12f02453029968ff6ed26feab550a68fdacd9"}}, {"rule": 2, "type": "equivalent", "target": "c9c4b63722bccb2e6c1f09f56061387d", "evidence": {"same_day": true, "patch_ids": ["e448e00f97298157e5b29041db9eb7c5"], "statement_hash": "035a869420643c0bf81a4e4e81a12f02453029968ff6ed26feab550a68fdacd9"}}, {"rule": 2, "type": "equivalent", "target": "d540ff2b8d86b2ef1160afed776d5391", "evidence": {"same_day": true, "patch_ids": ["e448e00f97298157e5b29041db9eb7c5"], "statement_hash": "035a869420643c0bf81a4e4e81a12f02453029968ff6ed26feab550a68fdacd9"}}], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d540ff2b8d86b2ef1160afed776d5391", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复复合类型上域的数组中元素字段的更新问题", "evidence": {"same_day": true, "patch_ids": ["e448e00f97298157e5b29041db9eb7c5"], "statement_hash": "035a869420643c0bf81a4e4e81a12f02453029968ff6ed26feab550a68fdacd9"}, "url": "/docs/compare/?release=13.5#13.5-f1295f4fe8ce0d0b", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "333832aac4821f3773076f8ae57b634b", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复复合类型上域的数组中元素字段的更新问题", "evidence": {"same_day": true, "patch_ids": ["e448e00f97298157e5b29041db9eb7c5"], "statement_hash": "035a869420643c0bf81a4e4e81a12f02453029968ff6ed26feab550a68fdacd9"}, "url": "/docs/compare/?release=12.9#12.9-af0de0d3d97509c3", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "c9c4b63722bccb2e6c1f09f56061387d", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复复合类型上域的数组中元素字段的更新问题", "evidence": {"same_day": true, "patch_ids": ["e448e00f97298157e5b29041db9eb7c5"], "statement_hash": "035a869420643c0bf81a4e4e81a12f02453029968ff6ed26feab550a68fdacd9"}, "url": "/docs/compare/?release=11.14#11.14-04b9f12f8ccb13b1", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}]}, {"id": "14.1-663c613c6600f28f", "cves": [], "html": "<p>禁止 <code>FETCH FIRST WITH TIES</code> 和 <code>FOR UPDATE SKIP LOCKED</code> 的组合（David Christensen）<a href=\"https://postgr.es/c/20047609d\">§</a></p>\n<p><code>FETCH FIRST WITH TIES</code> 必然会多获取一行，因为在找到非并列行之前它无法停止。在我们当前的实现中，如果使用了 <code>FOR UPDATE</code>，那么该行也会被锁定，即使它不会被返回。如果指定了 <code>SKIP LOCKED</code> 选项，则会导致不期望的行为。在不引入另一组不期望行为的情况下很难改变这一点，因此目前禁止此组合。</p>", "text": "禁止 FETCH FIRST WITH TIES 和 FOR UPDATE SKIP LOCKED 的组合（David Christensen）§ FETCH FIRST WITH TIES 必然会多获取一行，因为在找到非并列行之前它无法停止。在我们当前的实现中，如果使用了 FOR UPDATE，那么该行也会被锁定，即使它不会被返回。如果指定了 SKIP LOCKED 选项，则会导致不期望的行为。在不引入另一组不期望行为的情况下很难改变这一点，因此目前禁止此组合。", "title": "禁止 FETCH FIRST WITH TIES 和 FOR UPDATE SKIP LOCKED 的组合", "commits": ["20047609d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "441dd70626a6ee752266462c8e6ca52ce68b872d336afdd7d2805bd79f033772", "section_path": ["变更"], "commit_groups": [["170206e45", "20047609d", "c6bc655ee"]], "identity_text": "Disallow the combination of FETCH FIRST WITH TIES and FOR UPDATE SKIP LOCKED (David Christensen) FETCH FIRST WITH TIES necessarily fetches one more row than requested, since it cannot stop until it finds a row that is not a tie. In our current implementation, if FOR UPDATE is used then that row will also get locked even though it is not returned. That results in undesirable behavior if the SKIP LOCKED option is specified. It's difficult to change this without introducing a different set of undesirable behaviors, so for now, forbid the combination.", "commit_aliases": ["170206e45", "20047609d", "c6bc655ee"], "source_commits": ["20047609d"], "source_entry_id": "14.1/changes/012", "db_id": "38e10857c1882f10fb46a3469278df23", "patch_ids": ["1dc5a9f589bdb4d08b808a06ff3ba98e"], "statement_hash": "81c596d52b544c6c6aba4ace18d30f5e666f7b9068fad0f0edf802e166f0272b", "relations": [{"rule": 2, "type": "equivalent", "target": "891a8127eab4dd1e1dd16052a8a1888f", "evidence": {"same_day": true, "patch_ids": ["1dc5a9f589bdb4d08b808a06ff3ba98e"], "statement_hash": "81c596d52b544c6c6aba4ace18d30f5e666f7b9068fad0f0edf802e166f0272b"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "891a8127eab4dd1e1dd16052a8a1888f", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "禁止 FETCH FIRST WITH TIES 和 FOR UPDATE SKIP LOCKED 的组合", "evidence": {"same_day": true, "patch_ids": ["1dc5a9f589bdb4d08b808a06ff3ba98e"], "statement_hash": "81c596d52b544c6c6aba4ace18d30f5e666f7b9068fad0f0edf802e166f0272b"}, "url": "/docs/compare/?release=13.5#13.5-81cb435953838401", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}]}, {"id": "14.1-62ade54d0ad56b7e", "cves": [], "html": "<p>禁止 <code>ALTER INDEX index ALTER COLUMN col SET (options)</code>（Nathan Bossart，Michael Paquier）<a href=\"https://postgr.es/c/b1b797ec7\">§</a></p>\n<p>虽然解析器接受此语法，但它没有文档记录且实际上不起作用。</p>", "text": "禁止 ALTER INDEX index ALTER COLUMN col SET (options)（Nathan Bossart，Michael Paquier）§ 虽然解析器接受此语法，但它没有文档记录且实际上不起作用。", "title": "禁止 ALTER INDEX index ALTER COLUMN col SET (options)", "commits": ["b1b797ec7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "2f23f4c9d918811243e8ad2caa06685cfc48d1e004884c986a936633f1e8972e", "section_path": ["变更"], "commit_groups": [["85dc4292a", "b1b797ec7", "fdd885714"]], "identity_text": "Disallow ALTER INDEX index ALTER COLUMN col SET (options) (Nathan Bossart, Michael Paquier) While the parser accepted this, it's undocumented and doesn't actually work.", "commit_aliases": ["85dc4292a", "b1b797ec7", "fdd885714"], "source_commits": ["b1b797ec7"], "source_entry_id": "14.1/changes/013", "db_id": "4c05819be7855a16c7126b35403fca32", "patch_ids": ["674555d159034aaa65a362e6eaf5805c"], "statement_hash": "a253f0cc29afe0819c9dc17a6a3e16c7eed1bc1365cdc87c450c8a38873dbb00", "relations": [{"rule": 2, "type": "equivalent", "target": "a244659e643c6c31adfc504dd01a4e4b", "evidence": {"same_day": true, "patch_ids": ["674555d159034aaa65a362e6eaf5805c"], "statement_hash": "a253f0cc29afe0819c9dc17a6a3e16c7eed1bc1365cdc87c450c8a38873dbb00"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a244659e643c6c31adfc504dd01a4e4b", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "禁止 ALTER INDEX index ALTER COLUMN col SET (options)", "evidence": {"same_day": true, "patch_ids": ["674555d159034aaa65a362e6eaf5805c"], "statement_hash": "a253f0cc29afe0819c9dc17a6a3e16c7eed1bc1365cdc87c450c8a38873dbb00"}, "url": "/docs/compare/?release=13.5#13.5-f1fb4aa5d89e65ff", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}]}, {"id": "14.1-241308668d1bbfbf", "cves": [], "html": "<p>修复 numeric <code>power()</code> 在边界情况下的精度损失（Dean Rasheed）<a href=\"https://postgr.es/c/8e26b868d\">§</a></p>\n<p>当第一个参数非常接近 1 时，结果可能不准确。</p>", "text": "修复 numeric power() 在边界情况下的精度损失（Dean Rasheed）§ 当第一个参数非常接近 1 时，结果可能不准确。", "title": "修复 numeric power() 在边界情况下的精度损失", "commits": ["8e26b868d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "436760918bcbe76c240302249a8236bb6e148ae91926d5f4f60f323b1ff5080e", "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": ["8e26b868d"], "source_entry_id": "14.1/changes/014", "db_id": "030a2046e24b898c1430427f489eb485", "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e", "relations": [{"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": "b0151959d488107ae648f8f155484246", "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": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "b0151959d488107ae648f8f155484246", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复 numeric power() 在边界情况下精度丢失的问题", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=9.6.24#9.6.24-09db23914eb48ed2", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-a8b6a8740692306b", "cves": [], "html": "<p>避免为 Memoize 计划选择错误的 hash 相等操作符（David Rowley）<a href=\"https://postgr.es/c/1f194ed6c\">§</a></p>\n<p>此错误可能导致崩溃或不正确的查询结果。</p>", "text": "避免为 Memoize 计划选择错误的 hash 相等操作符（David Rowley）§ 此错误可能导致崩溃或不正确的查询结果。", "title": "避免为 Memoize 计划选择错误的 hash 相等操作符", "commits": ["1f194ed6c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "b5ac3679f5d1fcb224324c6ea491a9a4fae114b9bdbfc11ef1c5a592e4f84d5d", "section_path": ["变更"], "commit_groups": [["1f194ed6c", "39a310567"]], "identity_text": "Avoid choosing the wrong hash equality operator for Memoize plans (David Rowley) This error could result in crashes or incorrect query results.", "commit_aliases": ["1f194ed6c", "39a310567"], "source_commits": ["1f194ed6c"], "source_entry_id": "14.1/changes/015", "db_id": "446b2fb7031b8c410f5b1f61ad09728e", "patch_ids": ["0a334d11f7cb0703772d011974f8d682"], "statement_hash": "85b6b6d3ae421f646d7a704ad2738a4f617f923678c5dc72745f8fa4c0277b63", "relations": [], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-15a220296cc91bf5", "cves": [], "html": "<p>修复将子查询表达式上拉到函数范围表条目时的规划器错误（Tom Lane）<a href=\"https://postgr.es/c/fd059ac2e\">§</a></p>\n<p>如果 <code>FROM</code> 中的函数横向引用了 <code>FROM</code> 子句中较早出现的某个子 <code>SELECT</code> 的输出，并且我们能够将该子 <code>SELECT</code> 展平到外层查询中，则复制到函数表达式中的表达式未被完全处理。这可能导致执行时崩溃。</p>", "text": "修复将子查询表达式上拉到函数范围表条目时的规划器错误（Tom Lane）§ 如果 FROM 中的函数横向引用了 FROM 子句中较早出现的某个子 SELECT 的输出，并且我们能够将该子 SELECT 展平到外层查询中，则复制到函数表达式中的表达式未被完全处理。这可能导致执行时崩溃。", "title": "修复将子查询表达式上拉到函数范围表条目时的规划器错误", "commits": ["fd059ac2e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "b709b2fadb60f0e4ee7a4f55d35a46a5750254d41a4eab8fa6288df9bfdb2aff", "section_path": ["变更"], "commit_groups": [["4d5f651f1", "fd059ac2e", "fdd6a4d8d"]], "identity_text": "Fix planner error with pulling up subquery expressions into function rangetable entries (Tom Lane) If a function in FROM laterally references the output of some sub-SELECT earlier in the FROM clause, and we are able to flatten that sub-SELECT into the outer query, the expression(s) copied into the function expression were not fully processed. This could lead to crashes at execution.", "commit_aliases": ["4d5f651f1", "fd059ac2e", "fdd6a4d8d"], "source_commits": ["fd059ac2e"], "source_entry_id": "14.1/changes/016", "db_id": "17523b9e1c96b9a083f4b4e8cd8e97bd", "patch_ids": ["f74a20059cb48d113623d0064bc38632"], "statement_hash": "b0378ac98e16d71d497248b483c334b74d2347a2e3c5058532c9c168cbc5fd7a", "relations": [{"rule": 2, "type": "equivalent", "target": "1e31766be74f5ea330e081ad6f4f6f0f", "evidence": {"same_day": true, "patch_ids": ["f74a20059cb48d113623d0064bc38632"], "statement_hash": "b0378ac98e16d71d497248b483c334b74d2347a2e3c5058532c9c168cbc5fd7a"}}], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e31766be74f5ea330e081ad6f4f6f0f", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复将子查询表达式上拉到函数范围表条目时的规划器错误", "evidence": {"same_day": true, "patch_ids": ["f74a20059cb48d113623d0064bc38632"], "statement_hash": "b0378ac98e16d71d497248b483c334b74d2347a2e3c5058532c9c168cbc5fd7a"}, "url": "/docs/compare/?release=13.5#13.5-745211cd58d35a7a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}]}, {"id": "14.1-fad66ee87321cc81", "cves": [], "html": "<p>避免仅使用 MCV 统计信息来估计列的范围（Tom Lane）<a href=\"https://postgr.es/c/a54509bfd\">§</a></p>\n<p>在某些边界情况下，<code>ANALYZE</code> 会构建高频值（MCV）列表但不构建直方图，即使 MCV 列表并未包含所有观测值。在这种情况下，防止规划器仅使用 MCV 列表来估计列值的范围。</p>", "text": "避免仅使用 MCV 统计信息来估计列的范围（Tom Lane）§ 在某些边界情况下，ANALYZE 会构建高频值（MCV）列表但不构建直方图，即使 MCV 列表并未包含所有观测值。在这种情况下，防止规划器仅使用 MCV 列表来估计列值的范围。", "title": "避免仅使用 MCV 统计信息来估计列的范围", "commits": ["a54509bfd"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "e13abfc6bad7ee7b1c0f14e3a29a102bee35360e5b40b8588aa474f0a3007ddd", "section_path": ["变更"], "commit_groups": [["334fb8c3d", "5863d348a", "7adbe186f", "8c1144ba7", "a54509bfd", "f951ea3a2"]], "identity_text": "Avoid using MCV-only statistics to estimate the range of a column (Tom Lane) There are corner cases in which ANALYZE will build a most-common-values (MCV) list but not a histogram, even though the MCV list does not account for all the observed values. In such cases, keep the planner from using the MCV list alone to estimate the range of column values.", "commit_aliases": ["334fb8c3d", "5863d348a", "7adbe186f", "8c1144ba7", "a54509bfd", "f951ea3a2"], "source_commits": ["a54509bfd"], "source_entry_id": "14.1/changes/017", "db_id": "dad67037f356b21cb96e011dde8431e3", "patch_ids": ["4efe9bd34b08521309829ff1c5795758"], "statement_hash": "50e48f5643b6fa0b2bfdf0f247e2883b0fd2d2d5112a7ed9c780409c2960e079", "relations": [{"rule": 2, "type": "equivalent", "target": "1d202e85f143908b770a47d7b781767e", "evidence": {"same_day": true, "patch_ids": ["4efe9bd34b08521309829ff1c5795758"], "statement_hash": "50e48f5643b6fa0b2bfdf0f247e2883b0fd2d2d5112a7ed9c780409c2960e079"}}, {"rule": 2, "type": "equivalent", "target": "5573686c5e74e4e92005939845e394ef", "evidence": {"same_day": true, "patch_ids": ["4efe9bd34b08521309829ff1c5795758"], "statement_hash": "50e48f5643b6fa0b2bfdf0f247e2883b0fd2d2d5112a7ed9c780409c2960e079"}}, {"rule": 2, "type": "equivalent", "target": "d54f8dbb8efe34dc02194d55a39c11cf", "evidence": {"same_day": true, "patch_ids": ["4efe9bd34b08521309829ff1c5795758"], "statement_hash": "50e48f5643b6fa0b2bfdf0f247e2883b0fd2d2d5112a7ed9c780409c2960e079"}}, {"rule": 2, "type": "equivalent", "target": "e9a5e0e3c41229d2c857f6d0f6fda4b2", "evidence": {"same_day": true, "patch_ids": ["4efe9bd34b08521309829ff1c5795758"], "statement_hash": "50e48f5643b6fa0b2bfdf0f247e2883b0fd2d2d5112a7ed9c780409c2960e079"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d202e85f143908b770a47d7b781767e", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免仅使用 MCV 统计信息来估计列的范围", "evidence": {"same_day": true, "patch_ids": ["4efe9bd34b08521309829ff1c5795758"], "statement_hash": "50e48f5643b6fa0b2bfdf0f247e2883b0fd2d2d5112a7ed9c780409c2960e079"}, "url": "/docs/compare/?release=13.5#13.5-2b0369b01183463d", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "5573686c5e74e4e92005939845e394ef", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免仅使用 MCV 统计信息来估计列的范围", "evidence": {"same_day": true, "patch_ids": ["4efe9bd34b08521309829ff1c5795758"], "statement_hash": "50e48f5643b6fa0b2bfdf0f247e2883b0fd2d2d5112a7ed9c780409c2960e079"}, "url": "/docs/compare/?release=12.9#12.9-430a1f041218b08b", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "d54f8dbb8efe34dc02194d55a39c11cf", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免仅使用 MCV 统计信息来估计列的范围", "evidence": {"same_day": true, "patch_ids": ["4efe9bd34b08521309829ff1c5795758"], "statement_hash": "50e48f5643b6fa0b2bfdf0f247e2883b0fd2d2d5112a7ed9c780409c2960e079"}, "url": "/docs/compare/?release=11.14#11.14-19fca1baad358bf3", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "e9a5e0e3c41229d2c857f6d0f6fda4b2", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免仅使用 MCV 统计信息来估计列的范围", "evidence": {"same_day": true, "patch_ids": ["4efe9bd34b08521309829ff1c5795758"], "statement_hash": "50e48f5643b6fa0b2bfdf0f247e2883b0fd2d2d5112a7ed9c780409c2960e079"}, "url": "/docs/compare/?release=10.19#10.19-19fca1baad358bf3", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "14.1-5c95d59d1cdc3220", "cves": [], "html": "<p>修复子事务内部 Portal 快照的恢复（Bertrand Drouvot）<a href=\"https://postgr.es/c/e6adaa179\">§</a></p>\n<p>如果过程提交或回滚了一个事务，然后其下一个重要操作在新的子事务内部，快照管理会出错，导致悬挂指针和可能的崩溃。PL/pgSQL 中的一个典型示例是 <code>COMMIT</code> 紧跟一个执行查询的 <code>BEGIN ... EXCEPTION</code> 块。</p>", "text": "修复子事务内部 Portal 快照的恢复（Bertrand Drouvot）§ 如果过程提交或回滚了一个事务，然后其下一个重要操作在新的子事务内部，快照管理会出错，导致悬挂指针和可能的崩溃。PL/pgSQL 中的一个典型示例是 COMMIT 紧跟一个执行查询的 BEGIN ... EXCEPTION 块。", "title": "修复子事务内部 Portal 快照的恢复", "commits": ["e6adaa179"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "3f62b9da6873e8d1fce7973e16d64f6542e36e96f4ab7278a13972daf7d3c2cd", "section_path": ["变更"], "commit_groups": [["04ef2021e", "5abbda985", "7b5d4c29e", "cded2c460", "e6adaa179"]], "identity_text": "Fix restoration of a Portal's snapshot inside a subtransaction (Bertrand Drouvot) If a procedure commits or rolls back a transaction, and then its next significant action is inside a new subtransaction, snapshot management went wrong, leading to a dangling pointer and probable crash. A typical example in PL/pgSQL is a COMMIT immediately followed by a BEGIN ... EXCEPTION block that performs a query.", "commit_aliases": ["04ef2021e", "5abbda985", "7b5d4c29e", "cded2c460", "e6adaa179"], "source_commits": ["e6adaa179"], "source_entry_id": "14.1/changes/018", "db_id": "8650e14675ac23e8cb7d788bc373a407", "patch_ids": ["78bc1a96d32fa9ee281fb490fedfdd1f"], "statement_hash": "5ed29f70c2da0cba39295dec42842ef848c166f6a57a6ce3cab8e6935cf90e55", "relations": [{"rule": 2, "type": "equivalent", "target": "a8e0b8073331f4c21bc6ca6333017675", "evidence": {"same_day": true, "patch_ids": ["78bc1a96d32fa9ee281fb490fedfdd1f"], "statement_hash": "5ed29f70c2da0cba39295dec42842ef848c166f6a57a6ce3cab8e6935cf90e55"}}, {"rule": 2, "type": "equivalent", "target": "b28666fde4f152d690b0177e406198b4", "evidence": {"same_day": true, "patch_ids": ["78bc1a96d32fa9ee281fb490fedfdd1f"], "statement_hash": "5ed29f70c2da0cba39295dec42842ef848c166f6a57a6ce3cab8e6935cf90e55"}}, {"rule": 2, "type": "equivalent", "target": "d7fed16fbc823b7a18887b340db4f56b", "evidence": {"same_day": true, "patch_ids": ["78bc1a96d32fa9ee281fb490fedfdd1f"], "statement_hash": "5ed29f70c2da0cba39295dec42842ef848c166f6a57a6ce3cab8e6935cf90e55"}}], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b28666fde4f152d690b0177e406198b4", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复子事务内部 Portal 快照的恢复", "evidence": {"same_day": true, "patch_ids": ["78bc1a96d32fa9ee281fb490fedfdd1f"], "statement_hash": "5ed29f70c2da0cba39295dec42842ef848c166f6a57a6ce3cab8e6935cf90e55"}, "url": "/docs/compare/?release=13.5#13.5-2baea8409b5154c3", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "a8e0b8073331f4c21bc6ca6333017675", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复子事务内部 Portal 快照的恢复", "evidence": {"same_day": true, "patch_ids": ["78bc1a96d32fa9ee281fb490fedfdd1f"], "statement_hash": "5ed29f70c2da0cba39295dec42842ef848c166f6a57a6ce3cab8e6935cf90e55"}, "url": "/docs/compare/?release=12.9#12.9-c58becd720ce0176", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "d7fed16fbc823b7a18887b340db4f56b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复子事务内部 Portal 快照的恢复", "evidence": {"same_day": true, "patch_ids": ["78bc1a96d32fa9ee281fb490fedfdd1f"], "statement_hash": "5ed29f70c2da0cba39295dec42842ef848c166f6a57a6ce3cab8e6935cf90e55"}, "url": "/docs/compare/?release=11.14#11.14-258d0ec0a8a0e7ec", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}]}, {"id": "14.1-3e0b45737d95faa1", "cves": [], "html": "<p>确保在事务导出快照后失败时正确清理（Dilip Kumar）<a href=\"https://postgr.es/c/5b353aaff\">§</a></p>\n<p>此疏忽仅在同一会话再次尝试导出快照时才会导致问题。最可能的场景是创建复制槽（随后回滚）然后再创建另一个复制槽。</p>", "text": "确保在事务导出快照后失败时正确清理（Dilip Kumar）§ 此疏忽仅在同一会话再次尝试导出快照时才会导致问题。最可能的场景是创建复制槽（随后回滚）然后再创建另一个复制槽。", "title": "确保在事务导出快照后失败时正确清理", "commits": ["5b353aaff"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "51a38ad27dd2bc0416836921215762fc56c7d5754412d7b8aa0814fbd60dc12f", "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": ["5b353aaff"], "source_entry_id": "14.1/changes/019", "db_id": "2a6d4610a6f5aae215be59292ae31f23", "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4", "relations": [{"rule": 2, "type": "equivalent", "target": "00ed973f66eee22cad354bd48bbcaac9", "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": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "00ed973f66eee22cad354bd48bbcaac9", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复事务在导出快照后失败时的正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=9.6.24#9.6.24-a6915ef6bfbcb58d", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-145cfc88539998a5", "cves": [], "html": "<p>防止备库上溢出子事务跟踪的回卷（Kyotaro Horiguchi，Alexander Korotkov）<a href=\"https://postgr.es/c/b0f6bd48f\">§</a></p>\n<p>此疏忽可能导致备库上显著的性能下降（表现为过多的 SubtransSLRU 流量）。</p>", "text": "防止备库上溢出子事务跟踪的回卷（Kyotaro Horiguchi，Alexander Korotkov）§ 此疏忽可能导致备库上显著的性能下降（表现为过多的 SubtransSLRU 流量）。", "title": "防止备库上溢出子事务跟踪的回卷", "commits": ["b0f6bd48f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "dbd4a0dfaca0e9a878a77148ebd945c3dfcf5c2e7e7bcc0b68613929e6ba153c", "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": ["b0f6bd48f"], "source_entry_id": "14.1/changes/020", "db_id": "1b931f8fd7d6f996bd4ac4bdfc4c5936", "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9", "relations": [{"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": "8c7aa33bdc5e564c16f43b906dca889e", "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": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "8c7aa33bdc5e564c16f43b906dca889e", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "防止备库服务器上溢出子事务追踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=9.6.24#9.6.24-36216625593cacab", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-1a51cb18db7c3adb", "cves": [], "html": "<p>确保在备库提升期间正确地将预备事务纳入考虑（Michael Paquier，Andres Freund）<a href=\"https://postgr.es/c/828f7f000\">§</a></p>\n<p>存在一个很窄的窗口，预备事务可能从并发运行的会话获取的快照中被遗漏。如果该会话随后使用该快照执行数据更新，可能导致错误的结果或数据损坏。</p>", "text": "确保在备库提升期间正确地将预备事务纳入考虑（Michael Paquier，Andres Freund）§ 存在一个很窄的窗口，预备事务可能从并发运行的会话获取的快照中被遗漏。如果该会话随后使用该快照执行数据更新，可能导致错误的结果或数据损坏。", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "commits": ["828f7f000"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "688c6373abbb814b2f31764646cad5427f1763e9b4b3b0ea02a06d79d812444d", "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": ["828f7f000"], "source_entry_id": "14.1/changes/021", "db_id": "477487d44f47e562b13d9d7f0906e5d9", "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": "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": "7b6a64f86be7d64af165898c7392b416", "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": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "7b6a64f86be7d64af165898c7392b416", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "确保在备库服务器提升期间正确统计预备事务", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=9.6.24#9.6.24-249aeaa2b0e37e14", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-45eca7d62883ff00", "cves": [], "html": "<p>修复当 <code>EXPLAIN</code> 尝试打印附加到 WorkTableScan 节点上的过滤条件时出现的 <span>“<span>could not find RecursiveUnion</span>”</span> 错误（Tom Lane）<a href=\"https://postgr.es/c/2c25db32e\">§</a></p>", "text": "修复当 EXPLAIN 尝试打印附加到 WorkTableScan 节点上的过滤条件时出现的 “could not find RecursiveUnion” 错误（Tom Lane）§", "title": "修复当 EXPLAIN 尝试打印附加到 WorkTableScan 节点上的过滤条件时出现的 “could not find RecursiveUnion” 错误", "commits": ["2c25db32e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "4b7621bf23a388bccaccee8b50389e74c51e621cf5496d96c81740d408af9e98", "section_path": ["变更"], "commit_groups": [["2c25db32e", "39ae0ef85"]], "identity_text": "Fix could not find RecursiveUnion error when EXPLAIN tries to print a filter condition attached to a WorkTableScan node (Tom Lane)", "commit_aliases": ["2c25db32e", "39ae0ef85"], "source_commits": ["2c25db32e"], "source_entry_id": "14.1/changes/022", "db_id": "0ab7360b9127d66b751416e9b8a2a4b5", "patch_ids": ["4e2205944b3f39b54b48633d0b89b5a1"], "statement_hash": "211c9289ce81972b7e7a0b9638bce0ed42b16dfd016f4a1eeab871166a5df689", "relations": [], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-242e7a9ab6962fa4", "cves": [], "html": "<p>确保在重命名表时使用正确的锁级别（Nathan Bossart，Álvaro Herrera）<a href=\"https://postgr.es/c/3ce3fb2f7\">§</a> <a href=\"https://postgr.es/c/718278855\">§</a></p>\n<p>由于历史原因，<code>ALTER INDEX ... RENAME</code> 可以应用于任何类型的关系。重命名索引所需的锁级别低于重命名表或其他类型关系所需的锁级别，但代码在此处出错，每当命令拼写为 <code>ALTER INDEX</code> 时都会使用较弱的锁级别。</p>", "text": "确保在重命名表时使用正确的锁级别（Nathan Bossart，Álvaro Herrera）§ § 由于历史原因，ALTER INDEX ... RENAME 可以应用于任何类型的关系。重命名索引所需的锁级别低于重命名表或其他类型关系所需的锁级别，但代码在此处出错，每当命令拼写为 ALTER INDEX 时都会使用较弱的锁级别。", "title": "确保在重命名表时使用正确的锁级别", "commits": ["3ce3fb2f7", "718278855"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "6e112ed15f952c58512a9ec0c13ac96f37b6bc5f6436c0603b637b5fb41288c7", "section_path": ["变更"], "commit_groups": [["3c8c49945", "718278855", "a73a3671d", "cd124d205"], ["3ce3fb2f7", "6c8d1c197", "842fe6123", "c2c618ff1"]], "identity_text": "Ensure that the correct lock level is used when renaming a table (Nathan Bossart, Álvaro Herrera) For historical reasons, ALTER INDEX ... RENAME can be applied to any sort of relation. The lock level required to rename an index is lower than that required to rename a table or other kind of relation, but the code got this wrong and would use the weaker lock level whenever the command is spelled ALTER INDEX.", "commit_aliases": ["3c8c49945", "3ce3fb2f7", "6c8d1c197", "718278855", "842fe6123", "a73a3671d", "c2c618ff1", "cd124d205"], "source_commits": ["3ce3fb2f7", "718278855"], "source_entry_id": "14.1/changes/023", "db_id": "e1ff141933659df19b0a78178614a396", "patch_ids": ["5af4dd3ba44595b1277d5abd09267b5e", "7707330d2b24d469e65c3a09be251410"], "statement_hash": "e873ae212ff6de72dd1fd182c85e7ae25043b726da428c0a0050451ccd4e9f4d", "relations": [{"rule": 2, "type": "equivalent", "target": "1724266ad6f0d9322f0f730cfc91e222", "evidence": {"same_day": true, "patch_ids": ["5af4dd3ba44595b1277d5abd09267b5e", "7707330d2b24d469e65c3a09be251410"], "statement_hash": "e873ae212ff6de72dd1fd182c85e7ae25043b726da428c0a0050451ccd4e9f4d"}}, {"rule": 2, "type": "equivalent", "target": "8803d314f99553daa502212591405426", "evidence": {"same_day": true, "patch_ids": ["5af4dd3ba44595b1277d5abd09267b5e", "7707330d2b24d469e65c3a09be251410"], "statement_hash": "e873ae212ff6de72dd1fd182c85e7ae25043b726da428c0a0050451ccd4e9f4d"}}], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8803d314f99553daa502212591405426", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保在重命名表时使用正确的锁级别", "evidence": {"same_day": true, "patch_ids": ["5af4dd3ba44595b1277d5abd09267b5e", "7707330d2b24d469e65c3a09be251410"], "statement_hash": "e873ae212ff6de72dd1fd182c85e7ae25043b726da428c0a0050451ccd4e9f4d"}, "url": "/docs/compare/?release=13.5#13.5-5d2840a7c0a94139", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "1724266ad6f0d9322f0f730cfc91e222", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保在重命名表时使用正确的锁级别", "evidence": {"same_day": true, "patch_ids": ["5af4dd3ba44595b1277d5abd09267b5e", "7707330d2b24d469e65c3a09be251410"], "statement_hash": "e873ae212ff6de72dd1fd182c85e7ae25043b726da428c0a0050451ccd4e9f4d"}, "url": "/docs/compare/?release=12.9#12.9-566cef9b15eb6ea4", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}]}, {"id": "14.1-fe52717b9f6be91d", "cves": [], "html": "<p>避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃（Álvaro Herrera）<a href=\"https://postgr.es/c/02e20bb2d\">§</a></p>", "text": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃（Álvaro Herrera）§", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "commits": ["02e20bb2d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "bdb60b980622af403b5fbd78e4d94edf54275517bf1401e4b49f13f3331d78c8", "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": ["02e20bb2d"], "source_entry_id": "14.1/changes/024", "db_id": "8d7f7c8ab514055c493684736147c915", "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b", "relations": [{"rule": 2, "type": "equivalent", "target": "25a21cb05a216d3801e7ffc008cd7002", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}, {"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": "d415d54f26d7e6277ddb652d13db5914", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "25a21cb05a216d3801e7ffc008cd7002", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "避免删除一个拥有正被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=9.6.24#9.6.24-2be55d1a273bcd84", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-32c0f62eebd60c3a", "cves": [], "html": "<p>防止当 <code>lo_export()</code> 或相关函数失败时出现 <span>“<span>snapshot reference leak</span>”</span> 警告（Heikki Linnakangas）<a href=\"https://postgr.es/c/4ebd740cd\">§</a> <a href=\"https://postgr.es/c/f4e3b6271\">§</a></p>", "text": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告（Heikki Linnakangas）§ §", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "commits": ["4ebd740cd", "f4e3b6271"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "42a2388999ebda33e8e9b838c4e98f9317b1776e55c3804f477e6ac99f9bb5d9", "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": ["4ebd740cd", "f4e3b6271"], "source_entry_id": "14.1/changes/025", "db_id": "54f8f4cdbbab4d6977845dbc56c9ce67", "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd", "relations": [{"rule": 2, "type": "equivalent", "target": "8302c84eb949151a3485fe7a6a54d4ae", "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": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "8302c84eb949151a3485fe7a6a54d4ae", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "防止 lo_export() 或相关函数失败时出现“snapshot reference leak”警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=9.6.24#9.6.24-9fc13e6681b127f7", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-a49e28d7193d3b4e", "cves": [], "html": "<p>修复 CoerceToDomain 表达式节点的低效代码生成（Ranier Vilela）<a href=\"https://postgr.es/c/16a56774f\">§</a></p>", "text": "修复 CoerceToDomain 表达式节点的低效代码生成（Ranier Vilela）§", "title": "修复 CoerceToDomain 表达式节点的低效代码生成", "commits": ["16a56774f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "c3a2bec7e839626e05fce95f2ef835aead6e5d20e3b04d3f26224dc2a3ac7f8b", "section_path": ["变更"], "commit_groups": [["01fc65270", "16a56774f", "ada667b45"]], "identity_text": "Fix inefficient code generation for CoerceToDomain expression nodes (Ranier Vilela)", "commit_aliases": ["01fc65270", "16a56774f", "ada667b45"], "source_commits": ["16a56774f"], "source_entry_id": "14.1/changes/026", "db_id": "207dd2ab9bf4c6a7fe645c9332e236b7", "patch_ids": ["e00772351961b10c78acd181f8ecdde2"], "statement_hash": "a1c5fe7880e565a807b94873a4c049a6abe9e53ba88bac79354d4af970c575b5", "relations": [{"rule": 2, "type": "equivalent", "target": "d6fc8bfc4a494e7c18d4e39439586639", "evidence": {"same_day": true, "patch_ids": ["e00772351961b10c78acd181f8ecdde2"], "statement_hash": "a1c5fe7880e565a807b94873a4c049a6abe9e53ba88bac79354d4af970c575b5"}}], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d6fc8bfc4a494e7c18d4e39439586639", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 CoerceToDomain 表达式节点的低效代码生成", "evidence": {"same_day": true, "patch_ids": ["e00772351961b10c78acd181f8ecdde2"], "statement_hash": "a1c5fe7880e565a807b94873a4c049a6abe9e53ba88bac79354d4af970c575b5"}, "url": "/docs/compare/?release=13.5#13.5-d30cec3801e776e4", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}]}, {"id": "14.1-f8faaa1015188410", "cves": [], "html": "<p>避免某些列表操作中的 O(N^2) 行为（Nathan Bossart，Tom Lane）<a href=\"https://postgr.es/c/8424dfced\">§</a> <a href=\"https://postgr.es/c/ad87bf355\">§</a> <a href=\"https://postgr.es/c/08cfa5981\">§</a></p>\n<p>这些更改修复了多个场景中的慢处理问题，包括：当备库重放主库上持有许多排他锁的事务时；当检查点后有许多文件需要取消链接时；当 hash 聚合涉及许多批次时；以及当 <code>pg_trgm</code> 从复杂正则表达式中提取可索引条件时。仅第一种场景实际上已在实际环境中被报告，但它们都似乎是低效列表删除的合理后果。</p>", "text": "避免某些列表操作中的 O(N^2) 行为（Nathan Bossart，Tom Lane）§ § § 这些更改修复了多个场景中的慢处理问题，包括：当备库重放主库上持有许多排他锁的事务时；当检查点后有许多文件需要取消链接时；当 hash 聚合涉及许多批次时；以及当 pg_trgm 从复杂正则表达式中提取可索引条件时。仅第一种场景实际上已在实际环境中被报告，但它们都似乎是低效列表删除的合理后果。", "title": "避免某些列表操作中的 O(N^2) 行为", "commits": ["08cfa5981", "8424dfced", "ad87bf355"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "a789126ad78928afd1baf58dc28261461120568f9bc0ed34655e05cfda6e37d6", "section_path": ["变更"], "commit_groups": [["0151af40c", "08cfa5981", "65c6cab13"], ["6301c3ada", "8424dfced", "df238aed1"], ["ad87bf355", "e477642a1", "e9d9ba2a4"]], "identity_text": "Avoid O(N^2) behavior in some list-manipulation operations (Nathan Bossart, Tom Lane) These changes fix slow processing in several scenarios, including: when a standby replays a transaction that held many exclusive locks on the primary; when many files are due to be unlinked after a checkpoint; when hash aggregation involves many batches; and when pg_trgm extracts indexable conditions from a complex regular expression. Only the first of these scenarios has actually been reported from the field, but they all seem like plausible consequences of inefficient list deletions.", "commit_aliases": ["0151af40c", "08cfa5981", "6301c3ada", "65c6cab13", "8424dfced", "ad87bf355", "df238aed1", "e477642a1", "e9d9ba2a4"], "source_commits": ["08cfa5981", "8424dfced", "ad87bf355"], "source_entry_id": "14.1/changes/027", "db_id": "6312597b2992d1da52bdcf087cecf677", "patch_ids": ["614f547d27c1ad1c11b465de9f0e03c6", "9e78b504bb7ffae0edae96387762399c", "b0266ad8a09f245c5bd2f05fa06a0b1d"], "statement_hash": "c9c47097ae399a29fd2fb79d51f9c3b898c3b63e7edf422dafc069ad8df41e43", "relations": [{"rule": 2, "type": "equivalent", "target": "87c5589514aaaee5fad9967df54c3e7e", "evidence": {"same_day": true, "patch_ids": ["614f547d27c1ad1c11b465de9f0e03c6", "9e78b504bb7ffae0edae96387762399c", "b0266ad8a09f245c5bd2f05fa06a0b1d"], "statement_hash": "c9c47097ae399a29fd2fb79d51f9c3b898c3b63e7edf422dafc069ad8df41e43"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "87c5589514aaaee5fad9967df54c3e7e", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免某些列表操作中的 O(N^2) 行为", "evidence": {"same_day": true, "patch_ids": ["614f547d27c1ad1c11b465de9f0e03c6", "9e78b504bb7ffae0edae96387762399c", "b0266ad8a09f245c5bd2f05fa06a0b1d"], "statement_hash": "c9c47097ae399a29fd2fb79d51f9c3b898c3b63e7edf422dafc069ad8df41e43"}, "url": "/docs/compare/?release=13.5#13.5-97de81c9a7d9dddb", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}]}, {"id": "14.1-92a9feddae08626e", "cves": [], "html": "<p>增加更多围绕 B-树倒排列表分裂的防御性检查（Peter Geoghegan）<a href=\"https://postgr.es/c/d078fe83d\">§</a> <a href=\"https://postgr.es/c/6cac34339\">§</a></p>\n<p>此更改应有助于检测涉及重复表 TID 的索引损坏。</p>", "text": "增加更多围绕 B-树倒排列表分裂的防御性检查（Peter Geoghegan）§ § 此更改应有助于检测涉及重复表 TID 的索引损坏。", "title": "增加更多围绕 B-树倒排列表分裂的防御性检查", "commits": ["6cac34339", "d078fe83d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "5f30d2c6d682d1f85f5f870c5cd25908bf5637c530bf40a9d3d888df69314f9e", "section_path": ["变更"], "commit_groups": [["6cac34339", "c2381b510", "d5a2ffbce"], ["a5213adf3", "d078fe83d", "f8cce4a3d"]], "identity_text": "Add more defensive checks around B-tree posting list splits (Peter Geoghegan) This change should help detect index corruption involving duplicate table TIDs.", "commit_aliases": ["6cac34339", "a5213adf3", "c2381b510", "d078fe83d", "d5a2ffbce", "f8cce4a3d"], "source_commits": ["6cac34339", "d078fe83d"], "source_entry_id": "14.1/changes/028", "db_id": "050722d3037fda9b41bc4303d82929af", "patch_ids": ["6da8e069984f7b07333e8314159f2eaf", "6f716a8849b639c891eddddddb8d02cb"], "statement_hash": "14abe034c2ba3578a60059afaaca2d3585eb3bae5a4cf9f808140b4097c16a92", "relations": [{"rule": 2, "type": "equivalent", "target": "4b6dcbf19c3ccbc0c8e7b43e73901429", "evidence": {"same_day": true, "patch_ids": ["6da8e069984f7b07333e8314159f2eaf", "6f716a8849b639c891eddddddb8d02cb"], "statement_hash": "14abe034c2ba3578a60059afaaca2d3585eb3bae5a4cf9f808140b4097c16a92"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b6dcbf19c3ccbc0c8e7b43e73901429", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "增加更多围绕 B-树倒排列表分裂的防御性检查", "evidence": {"same_day": true, "patch_ids": ["6da8e069984f7b07333e8314159f2eaf", "6f716a8849b639c891eddddddb8d02cb"], "statement_hash": "14abe034c2ba3578a60059afaaca2d3585eb3bae5a4cf9f808140b4097c16a92"}, "url": "/docs/compare/?release=13.5#13.5-e28b032e26aed975", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}]}, {"id": "14.1-84d2dbf0bde2c08b", "cves": [], "html": "<p>避免在将 NaN 插入 BRIN float8 或 float4 minmax_multi_ops 索引时出现断言失败（Tomas Vondra）<a href=\"https://postgr.es/c/f7829feb7\">§</a></p>\n<p>在生产构建中，此类情况会导致效率稍低但实际上并不错误的索引。</p>", "text": "避免在将 NaN 插入 BRIN float8 或 float4 minmax_multi_ops 索引时出现断言失败（Tomas Vondra）§ 在生产构建中，此类情况会导致效率稍低但实际上并不错误的索引。", "title": "避免在将 NaN 插入 BRIN float8 或 float4 minmax_multi_ops 索引时出现断言失败", "commits": ["f7829feb7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "5c333259daeee700cbc451d29f708abf517e67444a61e961de942229f290c24e", "section_path": ["变更"], "commit_groups": [["d91353f4b", "f7829feb7"]], "identity_text": "Avoid assertion failure when inserting NaN into a BRIN float8 or float4 minmax_multi_ops index (Tomas Vondra) In production builds, such cases would result in a somewhat inefficient, but not actually incorrect, index.", "commit_aliases": ["d91353f4b", "f7829feb7"], "source_commits": ["f7829feb7"], "source_entry_id": "14.1/changes/029", "db_id": "a7d5bfb7e382c6258140dee6c0ae486b", "patch_ids": ["9d5e3b7947ed8a44fb601963661bbb28"], "statement_hash": "95e07bae8353eefff1f0ebb3609ee457bf942150c86c7c950d9a7656eb3c2f1e", "relations": [], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-4cbfb7780100d787", "cves": [], "html": "<p>允许 autovacuum 启动器进程更快地响应 <code>pg_log_backend_memory_contexts()</code> 请求（Koyu Tanigawa）<a href=\"https://postgr.es/c/62e821ad2\">§</a></p>", "text": "允许 autovacuum 启动器进程更快地响应 pg_log_backend_memory_contexts() 请求（Koyu Tanigawa）§", "title": "允许 autovacuum 启动器进程更快地响应 pg_log_backend_memory_contexts() 请求", "commits": ["62e821ad2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "d62d9cf59456cf582ed07fff8d21c2ef19b78871a2d432bdf1318887b7acf9a4", "section_path": ["变更"], "commit_groups": [["62e821ad2", "e3e29cec1"]], "identity_text": "Allow the autovacuum launcher process to respond to pg_log_backend_memory_contexts() requests more quickly (Koyu Tanigawa)", "commit_aliases": ["62e821ad2", "e3e29cec1"], "source_commits": ["62e821ad2"], "source_entry_id": "14.1/changes/030", "db_id": "75d974a75a738d170851af1dc72ca2ff", "patch_ids": ["1ae5153777ac62278b73819a50871c24"], "statement_hash": "0b32a302e958cc9ac78b05723bcf0515434080764eb69019e6fd405cf1e73038", "relations": [], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-f195ff2c53239e3f", "cves": [], "html": "<p>修复 HMAC hash 计算中的内存泄漏（Sergey Shinderuk）<a href=\"https://postgr.es/c/a5e83ad79\">§</a></p>", "text": "修复 HMAC hash 计算中的内存泄漏（Sergey Shinderuk）§", "title": "修复 HMAC hash 计算中的内存泄漏", "commits": ["a5e83ad79"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "2688d1eeb0872f0bc3bdf0366819857178d016455c1dc64ea7278796f7b39ba0", "section_path": ["变更"], "commit_groups": [["0ded7039f", "a5e83ad79"]], "identity_text": "Fix memory leak in HMAC hash calculations (Sergey Shinderuk)", "commit_aliases": ["0ded7039f", "a5e83ad79"], "source_commits": ["a5e83ad79"], "source_entry_id": "14.1/changes/031", "db_id": "124df4d89d1a793f7b7a13a45c164614", "patch_ids": ["3df0f157eafc1841a27076d3d793693d"], "statement_hash": "48936a094de38a8036d26ae3631727f72b5a856602623912e5240379547a7ec6", "relations": [], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-eb3909d043258815", "cves": [], "html": "<p>当 <code>shared_memory_type</code> 为 <code>sysv</code> 时，禁止将 <code>huge_pages</code> 设置为 <code>on</code>（Thomas Munro）<a href=\"https://postgr.es/c/181361a0c\">§</a></p>\n<p>之前此设置会被接受，但由于缺乏实现而不起作用。</p>", "text": "当 shared_memory_type 为 sysv 时，禁止将 huge_pages 设置为 on（Thomas Munro）§ 之前此设置会被接受，但由于缺乏实现而不起作用。", "title": "当 shared_memory_type 为 sysv 时，禁止将 huge_pages 设置为 on", "commits": ["181361a0c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "6d985e7158d84f0739dde0bf313fdf7cf8f60e4a2e9d4c06e8d7624dc4db359b", "section_path": ["变更"], "commit_groups": [["181361a0c", "24b7cf8a5", "8781b0ce2", "8fef901e3"]], "identity_text": "Disallow setting huge_pages to on when shared_memory_type is sysv (Thomas Munro) Previously, this setting was accepted, but it did nothing for lack of any implementation.", "commit_aliases": ["181361a0c", "24b7cf8a5", "8781b0ce2", "8fef901e3"], "source_commits": ["181361a0c"], "source_entry_id": "14.1/changes/032", "db_id": "cd31848f2070789c71d103414d584251", "patch_ids": ["65b27634df785f08a29f5f0ac496d0b5"], "statement_hash": "e3877ac618bd72ea69ccfb02224c7cea5d59d924deee79639b8799136a85d1f1", "relations": [{"rule": 2, "type": "equivalent", "target": "5274288c014fdba692c1ad6944761e1a", "evidence": {"same_day": true, "patch_ids": ["65b27634df785f08a29f5f0ac496d0b5"], "statement_hash": "e3877ac618bd72ea69ccfb02224c7cea5d59d924deee79639b8799136a85d1f1"}}, {"rule": 2, "type": "equivalent", "target": "9bbf6e472e540a2d6bba4afe14ce44eb", "evidence": {"same_day": true, "patch_ids": ["65b27634df785f08a29f5f0ac496d0b5"], "statement_hash": "e3877ac618bd72ea69ccfb02224c7cea5d59d924deee79639b8799136a85d1f1"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5274288c014fdba692c1ad6944761e1a", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "当 shared_memory_type 为 sysv 时，禁止将 huge_pages 设置为 on", "evidence": {"same_day": true, "patch_ids": ["65b27634df785f08a29f5f0ac496d0b5"], "statement_hash": "e3877ac618bd72ea69ccfb02224c7cea5d59d924deee79639b8799136a85d1f1"}, "url": "/docs/compare/?release=13.5#13.5-cff690b74dcb510d", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "9bbf6e472e540a2d6bba4afe14ce44eb", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "当 shared_memory_type 为 sysv 时，禁止将 huge_pages 设置为 on", "evidence": {"same_day": true, "patch_ids": ["65b27634df785f08a29f5f0ac496d0b5"], "statement_hash": "e3877ac618bd72ea69ccfb02224c7cea5d59d924deee79639b8799136a85d1f1"}, "url": "/docs/compare/?release=12.9#12.9-264f2c91f3d2f371", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}]}, {"id": "14.1-7962a08227b76ad2", "cves": [], "html": "<p>修复 PL/pgSQL 中 <code>RETURN QUERY</code> 语句的查询类型检查（Tom Lane）<a href=\"https://postgr.es/c/e0eba586b\">§</a></p>\n<p><code>RETURN QUERY</code> 应该接受任何能返回元组的查询，例如 <code>UPDATE RETURNING</code>。v14 意外地只允许了 <code>SELECT</code>；此外，<code>RETURN QUERY EXECUTE</code> 变体完全没有进行任何查询类型检查。</p>", "text": "修复 PL/pgSQL 中 RETURN QUERY 语句的查询类型检查（Tom Lane）§ RETURN QUERY 应该接受任何能返回元组的查询，例如 UPDATE RETURNING。v14 意外地只允许了 SELECT；此外，RETURN QUERY EXECUTE 变体完全没有进行任何查询类型检查。", "title": "修复 PL/pgSQL 中 RETURN QUERY 语句的查询类型检查", "commits": ["e0eba586b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "5d3a291a14e8520a4d7a31b7c0a8ceef7a022bc98c9013e01f4fc438e54e7f34", "section_path": ["变更"], "commit_groups": [["a0558cfa3", "e0eba586b"]], "identity_text": "Fix checking of query type in PL/pgSQL's RETURN QUERY statement (Tom Lane) RETURN QUERY should accept any query that can return tuples, e.g. UPDATE RETURNING. v14 accidentally disallowed anything but SELECT; moreover, the RETURN QUERY EXECUTE variant failed to apply any query-type check at all.", "commit_aliases": ["a0558cfa3", "e0eba586b"], "source_commits": ["e0eba586b"], "source_entry_id": "14.1/changes/033", "db_id": "89c31dbd13ead3d3a99b3adfbd9d98bb", "patch_ids": ["073ac696f91d5a6e059102d23014e72e"], "statement_hash": "fa7515dcb2ff41d8c84cffcd7cd7fe96ab198df5bcdbe7c7ab8a0e84949ed35b", "relations": [], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-a78af80f0cf2381e", "cves": [], "html": "<p>修复 <span>pg_dump</span> 以正确导出非全局默认权限（Neil Chen，Masahiko Sawada）<a href=\"https://postgr.es/c/3ad2c2455\">§</a></p>\n<p>如果全局（不受限的）<code>ALTER DEFAULT PRIVILEGES</code> 命令撤销了某个默认存在的权限，例如函数的 <code>EXECUTE</code>，然后受限的 <code>ALTER DEFAULT PRIVILEGES</code> 命令又为选定的角色或模式重新授予了该权限，则 <span>pg_dump</span> 无法正确导出受限的权限授予。</p>", "text": "修复 pg_dump 以正确导出非全局默认权限（Neil Chen，Masahiko Sawada）§ 如果全局（不受限的）ALTER DEFAULT PRIVILEGES 命令撤销了某个默认存在的权限，例如函数的 EXECUTE，然后受限的 ALTER DEFAULT PRIVILEGES 命令又为选定的角色或模式重新授予了该权限，则 pg_dump 无法正确导出受限的权限授予。", "title": "修复 pg_dump 以正确导出非全局默认权限", "commits": ["3ad2c2455"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "5a1eb7ef93d02e91f93fdee11973505399cf925ee8d43fd1305a7ba66c2b5125", "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": ["3ad2c2455"], "source_entry_id": "14.1/changes/034", "db_id": "5a099d974b3a124bcf385c238af571ae", "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": "35361d936334db7ff40cdf174e511db8", "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": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "35361d936334db7ff40cdf174e511db8", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复 pg_dump 正确转储非全局默认权限的问题", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=9.6.24#9.6.24-062a44c48562f080", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-989bf5ab4bd6937c", "cves": [], "html": "<p>使 <span>pg_dump</span> 对要导出的分区表获取共享锁（Tom Lane）<a href=\"https://postgr.es/c/b5152e3ba\">§</a></p>\n<p>此疏忽通常是相当无害的，因为一旦 <span>pg_dump</span> 锁定了任何叶分区，就足以阻止对分区表本身的重大 DDL。但是，在导出没有子分区的分区表时可能出现问题，因为不会持有相关的锁。</p>", "text": "使 pg_dump 对要导出的分区表获取共享锁（Tom Lane）§ 此疏忽通常是相当无害的，因为一旦 pg_dump 锁定了任何叶分区，就足以阻止对分区表本身的重大 DDL。但是，在导出没有子分区的分区表时可能出现问题，因为不会持有相关的锁。", "title": "使 pg_dump 对要导出的分区表获取共享锁", "commits": ["b5152e3ba"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "92671cfa74dc435e78e2b50def03dc0ceec9d575f5dbf8d36797995b617cc793", "section_path": ["变更"], "commit_groups": [["2e2a23283", "6a262ba8c", "b5152e3ba", "ca7a4ce58", "e2ff7d9a8", "fd182a92a"]], "identity_text": "Make pg_dump acquire shared lock on partitioned tables that are to be dumped (Tom Lane) This oversight was usually pretty harmless, since once pg_dump has locked any of the leaf partitions, that would suffice to prevent significant DDL on the partitioned table itself. However problems could ensue when dumping a childless partitioned table, since no relevant lock would be held.", "commit_aliases": ["2e2a23283", "6a262ba8c", "b5152e3ba", "ca7a4ce58", "e2ff7d9a8", "fd182a92a"], "source_commits": ["b5152e3ba"], "source_entry_id": "14.1/changes/035", "db_id": "ac63d1c61c89c1c8fbe9719ad7588ca0", "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635", "relations": [{"rule": 2, "type": "equivalent", "target": "6aead1917d5a20aa4e8d0631c558c1de", "evidence": {"same_day": true, "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635"}}, {"rule": 2, "type": "equivalent", "target": "94e2639c241219463d108d83bdab76d2", "evidence": {"same_day": true, "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635"}}, {"rule": 2, "type": "equivalent", "target": "d735aae7bc7ebe3581cd4d11fa23c0ff", "evidence": {"same_day": true, "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635"}}, {"rule": 2, "type": "equivalent", "target": "f0542d7f397b2965c5d1a94b1a16e48d", "evidence": {"same_day": true, "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6aead1917d5a20aa4e8d0631c558c1de", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "使 pg_dump 对要导出的分区表获取共享锁", "evidence": {"same_day": true, "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635"}, "url": "/docs/compare/?release=13.5#13.5-5c53bb32a4df8c0a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "f0542d7f397b2965c5d1a94b1a16e48d", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "使 pg_dump 对要导出的分区表获取共享锁", "evidence": {"same_day": true, "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635"}, "url": "/docs/compare/?release=12.9#12.9-8e4296c79d136a4c", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "94e2639c241219463d108d83bdab76d2", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "使 pg_dump 对要导出的分区表获取共享锁", "evidence": {"same_day": true, "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635"}, "url": "/docs/compare/?release=11.14#11.14-941fae26fefb0c04", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "d735aae7bc7ebe3581cd4d11fa23c0ff", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "使 pg_dump 对要导出的分区表获取共享锁", "evidence": {"same_day": true, "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635"}, "url": "/docs/compare/?release=10.19#10.19-941fae26fefb0c04", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "14.1-685b165cea28f12d", "cves": [], "html": "<p>修复 <span>pg_dump</span> 在尝试从 8.3 之前版本的服务器导出触发器定义时的崩溃（Tom Lane）<a href=\"https://postgr.es/c/3e4c8db93\">§</a></p>", "text": "修复 pg_dump 在尝试从 8.3 之前版本的服务器导出触发器定义时的崩溃（Tom Lane）§", "title": "修复 pg_dump 在尝试从 8.3 之前版本的服务器导出触发器定义时的崩溃", "commits": ["3e4c8db93"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "ba765cfcfbf1d9471b7db3279974ec40ff9b1deb12f8c61f4a46f1e2b344b7e7", "section_path": ["变更"], "commit_groups": [["0b5f557b7", "3e4c8db93", "40dfac4fc", "58955c84f", "5b0b2983a"]], "identity_text": "Fix crash in pg_dump when attempting to dump trigger definitions from a pre-8.3 server (Tom Lane)", "commit_aliases": ["0b5f557b7", "3e4c8db93", "40dfac4fc", "58955c84f", "5b0b2983a"], "source_commits": ["3e4c8db93"], "source_entry_id": "14.1/changes/036", "db_id": "964265d23b6cf74a57a1af7798d6efbb", "patch_ids": ["72b73b6b519f650ecdb5788d356beefd"], "statement_hash": "e8c1f6805c34073c924311926cd9ad3ae1c4e499fb31e40d5327be2a3bd0ca2b", "relations": [{"rule": 2, "type": "equivalent", "target": "17c02b93e2c375f94ad4a137b6172c2c", "evidence": {"same_day": true, "patch_ids": ["72b73b6b519f650ecdb5788d356beefd"], "statement_hash": "e8c1f6805c34073c924311926cd9ad3ae1c4e499fb31e40d5327be2a3bd0ca2b"}}, {"rule": 2, "type": "equivalent", "target": "392162c85f88c5c4e51d51680f41e97b", "evidence": {"same_day": true, "patch_ids": ["72b73b6b519f650ecdb5788d356beefd"], "statement_hash": "e8c1f6805c34073c924311926cd9ad3ae1c4e499fb31e40d5327be2a3bd0ca2b"}}, {"rule": 2, "type": "equivalent", "target": "917edcdf50f736e645ae630fd74df066", "evidence": {"same_day": true, "patch_ids": ["72b73b6b519f650ecdb5788d356beefd"], "statement_hash": "e8c1f6805c34073c924311926cd9ad3ae1c4e499fb31e40d5327be2a3bd0ca2b"}}], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "17c02b93e2c375f94ad4a137b6172c2c", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 pg_dump 在尝试从 8.3 之前版本的服务器导出触发器定义时的崩溃", "evidence": {"same_day": true, "patch_ids": ["72b73b6b519f650ecdb5788d356beefd"], "statement_hash": "e8c1f6805c34073c924311926cd9ad3ae1c4e499fb31e40d5327be2a3bd0ca2b"}, "url": "/docs/compare/?release=13.5#13.5-fe74a14135d5d41a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "917edcdf50f736e645ae630fd74df066", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 pg_dump 在尝试从 8.3 之前版本的服务器导出触发器定义时的崩溃", "evidence": {"same_day": true, "patch_ids": ["72b73b6b519f650ecdb5788d356beefd"], "statement_hash": "e8c1f6805c34073c924311926cd9ad3ae1c4e499fb31e40d5327be2a3bd0ca2b"}, "url": "/docs/compare/?release=12.9#12.9-79d005e58ed6ca98", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "392162c85f88c5c4e51d51680f41e97b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 pg_dump 在尝试从 8.3 之前版本的服务器导出触发器定义时的崩溃", "evidence": {"same_day": true, "patch_ids": ["72b73b6b519f650ecdb5788d356beefd"], "statement_hash": "e8c1f6805c34073c924311926cd9ad3ae1c4e499fb31e40d5327be2a3bd0ca2b"}, "url": "/docs/compare/?release=11.14#11.14-ca844c5f92705aea", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}]}, {"id": "14.1-cefd2ff84d51ec7d", "cves": [], "html": "<p>修复 <span>pg_restore</span> 关于无效大对象 TOC 文件的错误消息中的不正确文件名（Daniel Gustafsson）<a href=\"https://postgr.es/c/3e2f32b01\">§</a></p>", "text": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名（Daniel Gustafsson）§", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "commits": ["3e2f32b01"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "d2b130cc1b90d75d6195232f93444ff5e4085459ab4b33041be1b3abf88b3130", "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": ["3e2f32b01"], "source_entry_id": "14.1/changes/037", "db_id": "f07ae55bc247498a990b40534ac5f5e6", "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": "0b04801b2d8fe3c1be144e863b29b9fa", "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"}}], "version": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "0b04801b2d8fe3c1be144e863b29b9fa", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的文件名错误", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=9.6.24#9.6.24-8ff294aa4e22fbd4", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-a5106935c60acca7", "cves": [], "html": "<p>确保 <span>pgbench</span> 在套接字级别失败后以非零状态退出（Yugo Nagata，Fabien Coelho）<a href=\"https://postgr.es/c/8021334d3\">§</a> <a href=\"https://postgr.es/c/8231c500e\">§</a></p>\n<p>期望的行为是完成运行但随后以状态 2 退出。同时修复了此类错误的报告。</p>", "text": "确保 pgbench 在套接字级别失败后以非零状态退出（Yugo Nagata，Fabien Coelho）§ § 期望的行为是完成运行但随后以状态 2 退出。同时修复了此类错误的报告。", "title": "确保 pgbench 在套接字级别失败后以非零状态退出", "commits": ["8021334d3", "8231c500e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "3fe596774ff30d664c1e4f069640e9898379365485f086539725ca93b6591274", "section_path": ["变更"], "commit_groups": [["2acb7cc6b", "8231c500e", "8cf4f7118", "c5f7e702d"], ["3cc85d7d5", "8021334d3", "d33674708"]], "identity_text": "Ensure that pgbench exits with non-zero status after a socket-level failure (Yugo Nagata, Fabien Coelho) The desired behavior is to finish out the run but then exit with status 2. Also, fix the reporting of such errors.", "commit_aliases": ["2acb7cc6b", "3cc85d7d5", "8021334d3", "8231c500e", "8cf4f7118", "c5f7e702d", "d33674708"], "source_commits": ["8021334d3", "8231c500e"], "source_entry_id": "14.1/changes/038", "db_id": "e5def1bd9779e68ca10fec04aa460035", "patch_ids": ["11f5c80504e0bb982fe38fa4feaf8fb6", "1614ef056684ccc0adcd83ef123a5ad9"], "statement_hash": "4bda2cc9005ba96306762115277f0bb215adab0288ff860caeb4c6e7be23ea1d", "relations": [{"rule": 2, "type": "equivalent", "target": "11cc48059737b3673a1eaf81fa881ca5", "evidence": {"same_day": true, "patch_ids": ["11f5c80504e0bb982fe38fa4feaf8fb6", "1614ef056684ccc0adcd83ef123a5ad9"], "statement_hash": "4bda2cc9005ba96306762115277f0bb215adab0288ff860caeb4c6e7be23ea1d"}}, {"rule": 2, "type": "equivalent", "target": "701db4c382c12dce3fe2cab2797b9357", "evidence": {"same_day": true, "patch_ids": ["11f5c80504e0bb982fe38fa4feaf8fb6", "1614ef056684ccc0adcd83ef123a5ad9"], "statement_hash": "4bda2cc9005ba96306762115277f0bb215adab0288ff860caeb4c6e7be23ea1d"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "701db4c382c12dce3fe2cab2797b9357", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保 pgbench 在套接字级别失败后以非零状态退出", "evidence": {"same_day": true, "patch_ids": ["11f5c80504e0bb982fe38fa4feaf8fb6", "1614ef056684ccc0adcd83ef123a5ad9"], "statement_hash": "4bda2cc9005ba96306762115277f0bb215adab0288ff860caeb4c6e7be23ea1d"}, "url": "/docs/compare/?release=13.5#13.5-fc90d0235bcddc9a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "11cc48059737b3673a1eaf81fa881ca5", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保 pgbench 在套接字级别失败后以非零状态退出", "evidence": {"same_day": true, "patch_ids": ["11f5c80504e0bb982fe38fa4feaf8fb6", "1614ef056684ccc0adcd83ef123a5ad9"], "statement_hash": "4bda2cc9005ba96306762115277f0bb215adab0288ff860caeb4c6e7be23ea1d"}, "url": "/docs/compare/?release=12.9#12.9-0b1c937bfeea07cd", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}]}, {"id": "14.1-445ef3b7053b564b", "cves": [], "html": "<p>防止 <span>pg_amcheck</span> 检查临时关系以及无效或未就绪的索引（Mark Dilger）<a href=\"https://postgr.es/c/dd58194cf\">§</a> <a href=\"https://postgr.es/c/5863115e4\">§</a></p>\n<p>这避免了对几乎肯定显示为不一致的关系进行无用的检查。</p>", "text": "防止 pg_amcheck 检查临时关系以及无效或未就绪的索引（Mark Dilger）§ § 这避免了对几乎肯定显示为不一致的关系进行无用的检查。", "title": "防止 pg_amcheck 检查临时关系以及无效或未就绪的索引", "commits": ["5863115e4", "dd58194cf"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "38742789dd885545a2db67dddf951b746bcc10cd0254e6ef0b32c43e9d21ce35", "section_path": ["变更"], "commit_groups": [["5863115e4", "cd3f429d9"], ["d2bf06db3", "dd58194cf"]], "identity_text": "Prevent pg_amcheck from checking temporary relations, as well as indexes that are invalid or not ready (Mark Dilger) This avoids unhelpful checks of relations that will almost certainly appear inconsistent.", "commit_aliases": ["5863115e4", "cd3f429d9", "d2bf06db3", "dd58194cf"], "source_commits": ["5863115e4", "dd58194cf"], "source_entry_id": "14.1/changes/039", "db_id": "9ac47da7040bfcdc6187657909aebee9", "patch_ids": ["2530fc8272bc77d8d10c05d674942bab", "71c950dafc90df164e6d56c2e8d8d101"], "statement_hash": "0f1a5e5d352ece5aaa54c819ade17ced2cf2d5b756ac1198edd5c3ac911f7b4a", "relations": [], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-8f4a04cbf00960bc", "cves": [], "html": "<p>使 <code>contrib/amcheck</code> 在备库上运行时跳过不记录 WAL 的表（Mark Dilger）<a href=\"https://postgr.es/c/e7712155e\">§</a></p>\n<p>这样做是合适的，因为此类表将为空，而不记录 WAL 的索引已经以类似方式处理。</p>", "text": "使 contrib/amcheck 在备库上运行时跳过不记录 WAL 的表（Mark Dilger）§ 这样做是合适的，因为此类表将为空，而不记录 WAL 的索引已经以类似方式处理。", "title": "使 contrib/amcheck 在备库上运行时跳过不记录 WAL 的表", "commits": ["e7712155e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "6eba25c120ffe081df95b31a81b640729be6ac977a88cb6a3d091d9e14cdd056", "section_path": ["变更"], "commit_groups": [["292698f15", "e7712155e"]], "identity_text": "Make contrib/amcheck skip unlogged tables when running on a standby server (Mark Dilger) It's appropriate to do this since such tables will be empty, and unlogged indexes were already handled similarly.", "commit_aliases": ["292698f15", "e7712155e"], "source_commits": ["e7712155e"], "source_entry_id": "14.1/changes/040", "db_id": "59d7e380a25dbdd95d1f50d46f59156f", "patch_ids": ["9d0b5515a9523164394761f7f2b73ac7"], "statement_hash": "1f8669a7038c4978277b223e08bb5ea0b5f1b71f2a4b2dda90d1f0bc9d03aa85", "relations": [], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-68127bd965885596", "cves": [], "html": "<p>改变 <code>contrib/pg_stat_statements</code> 以最大 1GB 为单位读取其<span>“<span>查询文本</span>”</span>文件（Tom Lane）<a href=\"https://postgr.es/c/7104e0b24\">§</a></p>\n<p>如此大的查询文本文件非常不常见，但如果确实出现，之前的代码在 Windows 64 上会失败（因为它拒绝超过 2GB 的单次读取请求）。</p>", "text": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件（Tom Lane）§ 如此大的查询文本文件非常不常见，但如果确实出现，之前的代码在 Windows 64 上会失败（因为它拒绝超过 2GB 的单次读取请求）。", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "commits": ["7104e0b24"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "2efe1fb78eadf7f264abe2c205d87f3519e85948faf52eee39a739b60789cba2", "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": ["7104e0b24"], "source_entry_id": "14.1/changes/041", "db_id": "d43f2700cb72344d8146a3efd59b8ee1", "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": "6085b37daa5b09ebea485d926c991a03", "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": "f9b1bfa11b570618b6bcd18099dc3fad", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "6085b37daa5b09ebea485d926c991a03", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "将 contrib/pg_stat_statements 改为以至多 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=9.6.24#9.6.24-da478d75489c9aa1", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-f2edcd70ca4ee95c", "cves": [], "html": "<p>修复 <code>contrib/postgres_fdw</code> 尝试报告数据转换错误时的空指针崩溃（Tom Lane）<a href=\"https://postgr.es/c/12ff678e1\">§</a></p>", "text": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃（Tom Lane）§", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "commits": ["12ff678e1"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "b045e125ab1d1a3c7e96e7d76b01ebc0f6d2c60df349239912e4fe4532db35c9", "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": ["12ff678e1"], "source_entry_id": "14.1/changes/042", "db_id": "98290aab4ae48248ce3126dd259f8200", "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": "cda3957c847bee85448fcd3c997db0f4", "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": "14.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "cda3957c847bee85448fcd3c997db0f4", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=9.6.24#9.6.24-28d5fcf453564806", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-5fb5b1c0880a6789", "cves": [], "html": "<p>确保 <code>GetSharedSecurityLabel()</code> 可以在尚未构建关键关系缓存条目的新启动会话中使用（Jeff Davis）<a href=\"https://postgr.es/c/0b90f1c4c\">§</a></p>", "text": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用（Jeff Davis）§", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "commits": ["0b90f1c4c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "5125c85f982f4e09697abdeb5cebf66509246f3d4eb98a1c52fdfee3e610c6f4", "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": ["0b90f1c4c"], "source_entry_id": "14.1/changes/043", "db_id": "581bb9962efbe7d042b7db8ec51eb373", "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc", "relations": [{"rule": 2, "type": "equivalent", "target": "10d48cfdbf4dec0caf4e02364220a7b0", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}, {"rule": 2, "type": "equivalent", "target": "3448a6d5c4fd9927bcbe9681a9258699", "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": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "10d48cfdbf4dec0caf4e02364220a7b0", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=9.6.24#9.6.24-da7b9852d6a02836", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-f7bff8b727b3eb7d", "cves": [], "html": "<p>运行 TAP 测试时，将模块自身的目录包含在 <code>PATH</code> 中（Andrew Dunstan）<a href=\"https://postgr.es/c/52c0c1136\">§</a></p>\n<p>这允许测试找到尚未安装的已构建程序，例如自定义测试驱动程序。</p>", "text": "运行 TAP 测试时，将模块自身的目录包含在 PATH 中（Andrew Dunstan）§ 这允许测试找到尚未安装的已构建程序，例如自定义测试驱动程序。", "title": "运行 TAP 测试时，将模块自身的目录包含在 PATH 中", "commits": ["52c0c1136"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "8eddaa7cd5aa68b13aa6fdcf45a055f7709b9452a346dd2010a53e7de7cb6989", "section_path": ["变更"], "commit_groups": [["52c0c1136", "f4ce6c4d3"]], "identity_text": "When running a TAP test, include the module's own directory in PATH (Andrew Dunstan) This allows tests to find built programs that are not installed, such as custom test drivers.", "commit_aliases": ["52c0c1136", "f4ce6c4d3"], "source_commits": ["52c0c1136"], "source_entry_id": "14.1/changes/044", "db_id": "71ee9e815dd17042f647170fd72461ca", "patch_ids": ["8ce7f99c7c9f955e88689ae1052d82f5"], "statement_hash": "fa788e5d983b28a8d9a9e9eb1cdd627122750e96c3f81df52a68e1be671d05a8", "relations": [], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.1-4d7731400f0f4517", "cves": [], "html": "<p>使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区（Tom Lane）<a href=\"https://postgr.es/c/fa8db4879\">§</a> <a href=\"https://postgr.es/c/81464999b\">§</a> <a href=\"https://postgr.es/c/919c08d90\">§</a></p>\n<p>在 Windows 上运行时，<span>initdb</span> 尝试将新集簇的 <code>timezone</code> 参数设置为与系统当前时区匹配的 IANA 时区。我们使用的是多年前生成的映射表，并且只是零星地更新；不出所料，它包含许多错误以及遗漏了最近添加的时区。事实证明 CLDR 一直在跟踪最合适的映射，所以开始使用他们的数据。此更改不会影响任何现有安装，仅影响新初始化的集簇。</p>", "text": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区（Tom Lane）§ § § 在 Windows 上运行时，initdb 尝试将新集簇的 timezone 参数设置为与系统当前时区匹配的 IANA 时区。我们使用的是多年前生成的映射表，并且只是零星地更新；不出所料，它包含许多错误以及遗漏了最近添加的时区。事实证明 CLDR 一直在跟踪最合适的映射，所以开始使用他们的数据。此更改不会影响任何现有安装，仅影响新初始化的集簇。", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "commits": ["81464999b", "919c08d90", "fa8db4879"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "84f6771d11179a57dfb36de4192a26d61d4821f63f07789663f30ca4f5e4b0c9", "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": ["81464999b", "919c08d90", "fa8db4879"], "source_entry_id": "14.1/changes/045", "db_id": "b31e5b75c3a44d2e3b7b0211ebd3532f", "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": "c0b120c8a67c659dc93c7b89fb50097a", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "c0b120c8a67c659dc93c7b89fb50097a", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "使用 CLDR 项目的数据把 Windows 时区名映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=9.6.24#9.6.24-15150c83c5e9a4c9", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "14.1-6fb0ad2f59adff81", "cves": [], "html": "<p>将时区数据文件更新至 <span>tzdata</span> release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。（Tom Lane）<a href=\"https://postgr.es/c/0c8a40b39\">§</a></p>\n<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 和 Antarctica/Syowa。在所有这些情况下，之前的时区名称仍作为别名保留。</p>", "text": "将时区数据文件更新至 tzdata release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。（Tom Lane）§ 此外，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 release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。", "commits": ["0c8a40b39"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44", "source_hash": "f6fd11ec6e6e5cea95d686ba516cc6ff2cafdf5186d15c05e39147dbb4e9ef77", "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. (Tom Lane) 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": ["0c8a40b39"], "source_entry_id": "14.1/changes/046", "db_id": "9f598042f3d276143481ef2fb46b3aa0", "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "cdfbceae45f4ea27f11158ff17484a7ad205431c0fca612011a82c43ca637fc6", "relations": [{"rule": 2, "type": "equivalent", "target": "1423180b54f26b7322789f7e8c2706a9", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}}, {"rule": 2, "type": "equivalent", "target": "6aa686bf99f85b7efa0e0917ff80bc55", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}}, {"rule": 2, "type": "equivalent", "target": "a3608b5016b21226b7fceb7f31e290fe", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "cdfbceae45f4ea27f11158ff17484a7ad205431c0fca612011a82c43ca637fc6"}}, {"rule": 2, "type": "equivalent", "target": "a9acb6cdf72b4d976f76108f26cf4fe9", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "cdfbceae45f4ea27f11158ff17484a7ad205431c0fca612011a82c43ca637fc6"}}, {"rule": 2, "type": "equivalent", "target": "f1a086b3fdf5adab8ba5986bd0def2cc", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}}], "version": "14.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a9acb6cdf72b4d976f76108f26cf4fe9", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "将时区数据文件更新至 tzdata release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "cdfbceae45f4ea27f11158ff17484a7ad205431c0fca612011a82c43ca637fc6"}, "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"], "statement_hash": "cdfbceae45f4ea27f11158ff17484a7ad205431c0fca612011a82c43ca637fc6"}, "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"]}, "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"]}, "url": "/docs/compare/?release=10.19#10.19-232f99613fa5aa2b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "f1a086b3fdf5adab8ba5986bd0def2cc", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "更新时区数据文件到 tzdata 版本 2021e，涉及斐济、约旦、巴勒斯坦和萨摩亚的夏令时法规变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史修正。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}, "url": "/docs/compare/?release=9.6.24#9.6.24-6ed029bc6b84961e", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 46}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 21}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 23}], "total": 46, "release_count": 1, "cross_major": false, "cve_count": 2, "cves": [{"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": "14.1"}, {"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": "14.1"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 46, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}