{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2021-11-11", "build": "13.5", "major": "13", "minor": 5, "manual": "13", "status": "stable", "doc_git": "", "version": "13.5", "eol_date": "2025-11-13", "date_text": "2021-11-11", "supported": false, "manual_url": "/docs/13/release-13-5.html", "source_url": "/docs/release/13.5/", "entry_count": 77, "placeholder": false, "content_hash": "b605ddcb1cc138865967a9c5b022c010e265222f8bccaa273c7fb0963326b826", "manual_build": "13.23", "source_as_of": "", "changes_count": 77, "doc_loaded_at": "2026-09-26T02:56:40.428744", "migration_html": "<p>对于运行 13.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，请注意使用物理复制的安装应先更新备库再更新主库，如下面第三个变更日志条目所述。</p>\n<p>此外，已发现若干可能导致索引损坏的错误，如接下来几个变更日志条目所述。如果存在上述任一情况，建议在更新后重建可能受影响的索引。</p>\n<p>此外，如果是从早于 13.2 的版本升级，请参见<a href=\"/docs/13/release-13-2.html\" title=\"E.22. 发布版本 13.2\">第 E.22 节</a>。</p>", "compatibility_count": 0, "label": "13.5", "status_label": "历史版本", "eol": "2025-11-13", "age_days": 1784, "support_days": -321}, "groups": [{"date": "2021-11-11", "build": "13.5", "major": "13", "minor": 5, "manual": "13", "status": "stable", "doc_git": "", "version": "13.5", "eol_date": "2025-11-13", "date_text": "2021-11-11", "supported": false, "manual_url": "/docs/13/release-13-5.html", "source_url": "/docs/release/13.5/", "entry_count": 77, "placeholder": false, "content_hash": "b605ddcb1cc138865967a9c5b022c010e265222f8bccaa273c7fb0963326b826", "manual_build": "13.23", "source_as_of": "", "changes_count": 77, "doc_loaded_at": "2026-09-26T02:56:40.428744", "migration_html": "<p>对于运行 13.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，请注意使用物理复制的安装应先更新备库再更新主库，如下面第三个变更日志条目所述。</p>\n<p>此外，已发现若干可能导致索引损坏的错误，如接下来几个变更日志条目所述。如果存在上述任一情况，建议在更新后重建可能受影响的索引。</p>\n<p>此外，如果是从早于 13.2 的版本升级，请参见<a href=\"/docs/13/release-13-2.html\" title=\"E.22. 发布版本 13.2\">第 E.22 节</a>。</p>", "compatibility_count": 0, "label": "13.5", "status_label": "历史版本", "eol": "2025-11-13", "age_days": 1784, "support_days": -321, "entries": [{"id": "13.5-39a07d46c9c5e38f", "cves": ["CVE-2021-23214"], "html": "<p>使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据（Tom Lane）<a href=\"https://postgr.es/c/e92ed93e8\">§</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": ["e92ed93e8"], "section": "变更", "category": "security", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "f18cd89c37b511679673c5734146e75cbf057e122d2e0df1ee43900499bde090", "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": ["e92ed93e8"], "source_entry_id": "13.5/changes/001", "db_id": "68a03d0d65e3da6f02b80a9de5b45861", "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": "857b0ddcc2ac0b70542c7713521baa4a", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}, {"rule": 2, "type": "equivalent", "target": "fc87ef5d0ccafcfa310e5943b1e9fd2d", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}], "version": "13.5", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "fc87ef5d0ccafcfa310e5943b1e9fd2d", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=14.1#14.1-1856c71e2cf03259", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-32b7064eba088818", "cves": ["CVE-2021-23214", "CVE-2021-23222"], "html": "<p>使 <span>libpq</span> 在 SSL 或 GSS 加密握手后拒绝多余的数据（Tom Lane）<a href=\"https://postgr.es/c/844b31692\">§</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": ["844b31692"], "section": "变更", "category": "security", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "f1d64a872a733ade32cc0d95c2c7db101d01a0e1a8408dd6fc139cf3dae2a7d5", "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": ["844b31692"], "source_entry_id": "13.5/changes/002", "db_id": "f175095a9c0dad30b1caedf4975b6b2d", "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1", "relations": [{"rule": 2, "type": "equivalent", "target": "0eb9d93d5afa77a8d89883bdcf340ff7", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}, {"rule": 2, "type": "equivalent", "target": "5001ce09f2dce03a32492997ae85add4", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}, {"rule": 2, "type": "equivalent", "target": "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"}}], "version": "13.5", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "0eb9d93d5afa77a8d89883bdcf340ff7", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=14.1#14.1-2148a2c0309fac1a", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-c9110b1993e1bb99", "cves": [], "html": "<p>修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题（Álvaro Herrera）<a href=\"https://postgr.es/c/1d97d3d08\">§</a> <a href=\"https://postgr.es/c/2cdf97fd1\">§</a> <a href=\"https://postgr.es/c/17227825c\">§</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": ["17227825c", "1d97d3d08", "2cdf97fd1"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "9e444b8255027d944d0c686d6dfc743f02c8768cacf87de9b8f25d7bfd547286", "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": ["17227825c", "1d97d3d08", "2cdf97fd1", "d03bca4d7", "d186d233d"], "source_entry_id": "13.5/changes/003", "db_id": "24e3cb4aab4eecfee00d72e62234bb5e", "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3", "relations": [{"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": "ad7b9b773525fc6f9c73b4c0868d1bfd", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}, {"rule": 2, "type": "equivalent", "target": "c1a28326739ee1ee5062116c49c68403", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}, {"rule": 2, "type": "equivalent", "target": "c98dc2039b40bbb53e21b4209589935a", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}, {"rule": 2, "type": "equivalent", "target": "ea07b13999ba4cf5a7ddb4c9e2a9676b", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ad7b9b773525fc6f9c73b4c0868d1bfd", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=14.1#14.1-0856b4e7843716b2", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-a71726ee797fd35e", "cves": [], "html": "<p>修复 <code>CREATE INDEX CONCURRENTLY</code> 以等待最新的预备事务（Andrey Borodin）<a href=\"https://postgr.es/c/a9d0a5409\">§</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": ["a9d0a5409"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "059a517ed6698335834c147c3bb510bfc004824f28eb51c02a24b4b6d23c7868", "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": ["a9d0a5409"], "source_entry_id": "13.5/changes/004", "db_id": "6d5aa221c7204c3c6a575c9053ba8e7e", "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992", "relations": [{"rule": 2, "type": "equivalent", "target": "040865f25a25265641a31412866e5f31", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "326096d37352533242e31c4c828e4d26", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "4934600b9293e0f1f7f8f1e739af1119", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "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": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4934600b9293e0f1f7f8f1e739af1119", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=14.1#14.1-7eff03da16984474", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-25f23f4cfd45f2d8", "cves": [], "html": "<p>避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中（Noah Misch，Andrey Borodin）<a href=\"https://postgr.es/c/2e33b4359\">§</a></p>\n<p>虽然此情况在实际环境中似乎很少发生，但它可能影响使用 <code>CONCURRENTLY</code> 选项构建或重建的任何索引。建议重建此类索引以确保其正确性。</p>", "text": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中（Noah Misch，Andrey Borodin）§ 虽然此情况在实际环境中似乎很少发生，但它可能影响使用 CONCURRENTLY 选项构建或重建的任何索引。建议重建此类索引以确保其正确性。", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "commits": ["2e33b4359"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "5b0c31db9a4f9b188930395d3c6a0a83be982141510e1f83a4be1a47f0ad5b71", "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": ["2e33b4359"], "source_entry_id": "13.5/changes/005", "db_id": "bfb5691124f6d19bcde0e0b89c3cf102", "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": "d7a3416e3d836824c570371f9fd6e77e", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d7a3416e3d836824c570371f9fd6e77e", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=14.1#14.1-a2238e4d68b7f1ba", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-f0c9db2b94e03c96", "cves": [], "html": "<p>修复 <code>float4</code> 和 <code>float8</code> 的 hash 函数，使其对 NaN 产生一致的结果（Tom Lane）<a href=\"https://postgr.es/c/be2beadaf\">§</a> <a href=\"https://postgr.es/c/9089f1543\">§</a> <a href=\"https://postgr.es/c/2c0dd669c\">§</a></p>\n<p>由于 <span>PostgreSQL</span> 的浮点类型将所有 NaN 视为相等，hash 函数必须为所有按 IEEE 754 标准表示 NaN 的位模式生成相同的 hash 值。以前没有做到这一点，因此对于非规范的 NaN 值，hash 索引和基于 hash 的查询计划可能产生错误结果。（在大多数机器上，<code>'-NaN'::float8</code> 就是产生此类值的一种方法。）如果浮点列的 hash 索引有任何可能包含此类值，建议重建这些索引。</p>", "text": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果（Tom Lane）§ § § 由于 PostgreSQL 的浮点类型将所有 NaN 视为相等，hash 函数必须为所有按 IEEE 754 标准表示 NaN 的位模式生成相同的 hash 值。以前没有做到这一点，因此对于非规范的 NaN 值，hash 索引和基于 hash 的查询计划可能产生错误结果。（在大多数机器上，'-NaN'::float8 就是产生此类值的一种方法。）如果浮点列的 hash 索引有任何可能包含此类值，建议重建这些索引。", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "commits": ["2c0dd669c", "9089f1543", "be2beadaf"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "86b1822650cd4e052a08c6cf13771cc839fa92d4826ffd4509c5272415298d7a", "section_path": ["变更"], "commit_groups": [["08b96a2b5", "1fab33c0b", "2836d57e4", "9089f1543", "fd549145d"], ["23c6bc581", "2bb20e34c", "a3bf13673", "ad66373ea", "be2beadaf", "ce773f230", "dea212e24"], ["2c0dd669c", "70354dd56", "718978d9d", "8782a8452", "a5e8f7b37", "b30cc0fd6", "fd295d0c6"]], "identity_text": "Fix float4 and float8 hash functions to produce uniform results for NaNs (Tom Lane) Since PostgreSQL's floating-point types deem all NaNs to be equal, it's important for the hash functions to produce the same hash code for all bit-patterns that are NaNs according to the IEEE 754 standard. This failed to happen before, meaning that hash indexes and hash-based query plans might produce incorrect results for non-canonical NaN values. ('-NaN'::float8 is one way to produce such a value on most machines.) It is advisable to reindex hash indexes on floating-point columns, if there is any possibility that they might contain such values.", "commit_aliases": ["08b96a2b5", "1fab33c0b", "23c6bc581", "2836d57e4", "2bb20e34c", "2c0dd669c", "70354dd56", "718978d9d", "8782a8452", "9089f1543", "a3bf13673", "a5e8f7b37", "ad66373ea", "b30cc0fd6", "be2beadaf", "ce773f230", "dea212e24", "fd295d0c6", "fd549145d"], "source_commits": ["2c0dd669c", "9089f1543", "be2beadaf"], "source_entry_id": "13.5/changes/006", "db_id": "b8a49a4163bd28797df570a8bc632519", "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9", "relations": [{"rule": 2, "type": "equivalent", "target": "2667b344491df1781fcab9e69afa3bb4", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}, {"rule": 2, "type": "equivalent", "target": "9b4b90715965ebe3a6b3002a3028a03d", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}, {"rule": 2, "type": "equivalent", "target": "b4a0bdf9f2a7379a065a113e6b85cf10", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}, {"rule": 2, "type": "equivalent", "target": "d85c062801bdaef5499a448bf5f441c1", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b4a0bdf9f2a7379a065a113e6b85cf10", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=12.9#12.9-cf2d607a598d13d4", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "2667b344491df1781fcab9e69afa3bb4", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=11.14#11.14-052ad8764346a5f0", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "9b4b90715965ebe3a6b3002a3028a03d", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=10.19#10.19-052ad8764346a5f0", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "d85c062801bdaef5499a448bf5f441c1", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复 float4 和 float8 的哈希函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=9.6.24#9.6.24-2a21bc572f40e144", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-482a77d28b65aad4", "cves": [], "html": "<p>修复 <code>REINDEX CONCURRENTLY</code> 以保留附加到目标索引上的操作符类参数（Michael Paquier）<a href=\"https://postgr.es/c/77f7909a4\">§</a></p>", "text": "修复 REINDEX CONCURRENTLY 以保留附加到目标索引上的操作符类参数（Michael Paquier）§", "title": "修复 REINDEX CONCURRENTLY 以保留附加到目标索引上的操作符类参数", "commits": ["77f7909a4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "221495b6fa1c48cb9eaff92e38b59303c44fe2b66d351606bc20ea19c21eeb3a", "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": ["77f7909a4"], "source_entry_id": "13.5/changes/007", "db_id": "5e26ac6014011713746f449500785356", "patch_ids": ["5bc629d78d36462090740e5bafe5ad55"], "statement_hash": "c9a897b67e127d14f3bbd245753ad4619f1f28cdf69601a9753ee2d0cdff69fc", "relations": [{"rule": 2, "type": "equivalent", "target": "91194d5478ada2a116322a65e3541598", "evidence": {"same_day": true, "patch_ids": ["5bc629d78d36462090740e5bafe5ad55"], "statement_hash": "c9a897b67e127d14f3bbd245753ad4619f1f28cdf69601a9753ee2d0cdff69fc"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "91194d5478ada2a116322a65e3541598", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 REINDEX CONCURRENTLY 以保留附加到目标索引上的操作符类参数", "evidence": {"same_day": true, "patch_ids": ["5bc629d78d36462090740e5bafe5ad55"], "statement_hash": "c9a897b67e127d14f3bbd245753ad4619f1f28cdf69601a9753ee2d0cdff69fc"}, "url": "/docs/compare/?release=14.1#14.1-88f48d683752c3d0", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}]}, {"id": "13.5-dba64f5c7b076050", "cves": [], "html": "<p>防止在 <code>wal_level</code> = <code>minimal</code> 时，对 <code>CREATE TABLESPACE</code> 进行崩溃恢复导致数据丢失（Noah Misch）<a href=\"https://postgr.es/c/b18669f5e\">§</a></p>\n<p>如果服务器在 <code>CREATE TABLESPACE</code> 与下一次检查点之间崩溃，重放会完全删除新表空间目录中的内容，并依靠后续 WAL 重放来恢复目录中的一切。这与跳过 WAL 写入的优化配合不当（例如向刚创建的表执行 <code>COPY</code>）。此类优化仅在 <code>wal_level</code> 为 <code>minimal</code> 时应用，而这并非 v10 及更新版本的默认设置。</p>", "text": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失（Noah Misch）§ 如果服务器在 CREATE TABLESPACE 与下一次检查点之间崩溃，重放会完全删除新表空间目录中的内容，并依靠后续 WAL 重放来恢复目录中的一切。这与跳过 WAL 写入的优化配合不当（例如向刚创建的表执行 COPY）。此类优化仅在 wal_level 为 minimal 时应用，而这并非 v10 及更新版本的默认设置。", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "commits": ["b18669f5e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "ef18386f757748f10f278d1264507e836e81924d28f34cc48499547b0b84c022", "section_path": ["变更"], "commit_groups": [["5513c09c8", "6ebd2426b", "978998dbd", "97ddda8a8", "a494f1023", "b18669f5e", "f11c1bb17"]], "identity_text": "Prevent data loss during crash recovery of CREATE TABLESPACE, when wal_level = minimal (Noah Misch) If the server crashed between CREATE TABLESPACE and the next checkpoint, replay would fully remove the contents of the new tablespace's directory, relying on subsequent WAL replay to restore everything within that directory. This interacts badly with optimizations that skip writing WAL (one example is COPY into a just-created table). Such optimizations are applied only when wal_level is minimal, which is not the default in v10 and later.", "commit_aliases": ["5513c09c8", "6ebd2426b", "978998dbd", "97ddda8a8", "a494f1023", "b18669f5e", "f11c1bb17"], "source_commits": ["b18669f5e"], "source_entry_id": "13.5/changes/008", "db_id": "6eeef9462a17f4bb0443c35da2454aca", "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4", "relations": [{"rule": 2, "type": "equivalent", "target": "4ba2c2dc5ff0a53e36d75daf831f45fd", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}, {"rule": 2, "type": "equivalent", "target": "82015ca1a84ddaeb224d28aa6ea66fbc", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}, {"rule": 2, "type": "equivalent", "target": "ba23d3fe41bb0c2419dc2b5eb063cd04", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}, {"rule": 2, "type": "equivalent", "target": "ef8cbd3b7156273f62645800ddb07f6e", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "82015ca1a84ddaeb224d28aa6ea66fbc", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=12.9#12.9-19f919b00208693e", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "ba23d3fe41bb0c2419dc2b5eb063cd04", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=11.14#11.14-4180f06a01ef7687", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "4ba2c2dc5ff0a53e36d75daf831f45fd", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=10.19#10.19-4180f06a01ef7687", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "ef8cbd3b7156273f62645800ddb07f6e", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "防止 wal_level = minimal 时 CREATE TABLESPACE 崩溃恢复期间的数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=9.6.24#9.6.24-d33a57ba63c7df07", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-248868883c5bf3f3", "cves": [], "html": "<p>确保在将表附加到分区表或从分区表中分离时正确地使关系缓存失效（Amit Langote，Álvaro Herrera）<a href=\"https://postgr.es/c/fe35528a5\">§</a></p>\n<p>此疏忽可能导致直接对该分区进行后续插入/更新时出现错误行为，但仅在当前已存在的会话中。</p>", "text": "确保在将表附加到分区表或从分区表中分离时正确地使关系缓存失效（Amit Langote，Álvaro Herrera）§ 此疏忽可能导致直接对该分区进行后续插入/更新时出现错误行为，但仅在当前已存在的会话中。", "title": "确保在将表附加到分区表或从分区表中分离时正确地使关系缓存失效", "commits": ["fe35528a5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "ff1b96f232dae5b5facd5f3e7fb902ba555ee7d95e08f31000e91b2ebc9bf608", "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": ["fe35528a5"], "source_entry_id": "13.5/changes/009", "db_id": "68f6e9565e0d2ed7061eab04e6d2ca8b", "patch_ids": ["b6c54f624b14decafe39b03160f53b71"], "statement_hash": "18f6a26fe479a9da390ed03a7b0a43257a27a3ecd2e0ba2d4e8cae9673b02d97", "relations": [{"rule": 2, "type": "equivalent", "target": "399e64fa5c4b8514038703aef9b1061f", "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": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "399e64fa5c4b8514038703aef9b1061f", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保在将表附加到分区表或从分区表中分离时正确地使关系缓存失效", "evidence": {"same_day": true, "patch_ids": ["b6c54f624b14decafe39b03160f53b71"], "statement_hash": "18f6a26fe479a9da390ed03a7b0a43257a27a3ecd2e0ba2d4e8cae9673b02d97"}, "url": "/docs/compare/?release=14.1#14.1-235941af878ba53a", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"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": "13.5-736526be257585b7", "cves": [], "html": "<p>确保将分区表添加到发布或从发布移除时，使其所有分区的关系缓存失效（Hou Zhijie，Vignesh C）<a href=\"https://postgr.es/c/f09a81f1c\">§</a></p>\n<p>这一疏漏可能导致不正确的复制行为，直到所有当前已存在的会话都退出。</p>", "text": "确保将分区表添加到发布或从发布移除时，使其所有分区的关系缓存失效（Hou Zhijie，Vignesh C）§ 这一疏漏可能导致不正确的复制行为，直到所有当前已存在的会话都退出。", "title": "确保将分区表添加到发布或从发布移除时，使其所有分区的关系缓存失效", "commits": ["f09a81f1c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "9f0212eebfb9c8e42c281067a214528a9dcefe6192c9af76fe10038c86628bff", "section_path": ["变更"], "commit_groups": [["4548c7673", "9eff85932", "f09a81f1c"]], "identity_text": "Ensure that the relation cache is invalidated for all partitions of a partitioned table that is being added to or removed from a publication (Hou Zhijie, Vignesh C) This oversight could lead to improper replication behavior until all currently-existing sessions have exited.", "commit_aliases": ["4548c7673", "9eff85932", "f09a81f1c"], "source_commits": ["f09a81f1c"], "source_entry_id": "13.5/changes/010", "db_id": "799608e70c0674648b4a3473ddb456ac", "patch_ids": ["73d43f51a3957fc483dd75fb2c025580"], "statement_hash": "dfb22f0b01e68ede0a6ba962ef8b4abf9468e0db45c0c3829c0d8a76d2eb4e64", "relations": [], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.5-901bad3895e9214d", "cves": [], "html": "<p>确保创建或删除 <code>FOR ALL TABLES</code> 发布时使关系缓存失效（Hou Zhijie，Vignesh C）<a href=\"https://postgr.es/c/ddfc7299d\">§</a></p>\n<p>这一疏漏可能导致不正确的复制行为，直到所有当前已存在的会话都退出。</p>", "text": "确保创建或删除 FOR ALL TABLES 发布时使关系缓存失效（Hou Zhijie，Vignesh C）§ 这一疏漏可能导致不正确的复制行为，直到所有当前已存在的会话都退出。", "title": "确保创建或删除 FOR ALL TABLES 发布时使关系缓存失效", "commits": ["ddfc7299d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "eef0b8dc0da907f19412524257768015c740cfc5294b6c911a654a2da0ed5aca", "section_path": ["变更"], "commit_groups": [["28cde380c", "2eb09f27d", "8bd534274", "8db27fbc1", "96e38fa5e", "ddfc7299d"]], "identity_text": "Ensure that the relation cache is invalidated when creating or dropping a FOR ALL TABLES publication (Hou Zhijie, Vignesh C) This oversight could lead to improper replication behavior until all currently-existing sessions have exited.", "commit_aliases": ["28cde380c", "2eb09f27d", "8bd534274", "8db27fbc1", "96e38fa5e", "ddfc7299d"], "source_commits": ["ddfc7299d"], "source_entry_id": "13.5/changes/011", "db_id": "14d0600941bde045c30812109a00ef8b", "patch_ids": ["65872bfda9a8ced2cfb0a9a53e2437e7"], "statement_hash": "a2062f94ce5aaab213c234c4e2292846b89276ca927dfb057419a74a049f9d8c", "relations": [{"rule": 2, "type": "equivalent", "target": "030217cf04f67dff197c78dcf74241df", "evidence": {"same_day": true, "patch_ids": ["65872bfda9a8ced2cfb0a9a53e2437e7"], "statement_hash": "a2062f94ce5aaab213c234c4e2292846b89276ca927dfb057419a74a049f9d8c"}}, {"rule": 2, "type": "equivalent", "target": "1c316f53a694795bc5bfe0f32d2e861e", "evidence": {"same_day": true, "patch_ids": ["65872bfda9a8ced2cfb0a9a53e2437e7"], "statement_hash": "a2062f94ce5aaab213c234c4e2292846b89276ca927dfb057419a74a049f9d8c"}}, {"rule": 2, "type": "equivalent", "target": "1d3b9b1e81c6e1e450d91c2379333ceb", "evidence": {"same_day": true, "patch_ids": ["65872bfda9a8ced2cfb0a9a53e2437e7"], "statement_hash": "a2062f94ce5aaab213c234c4e2292846b89276ca927dfb057419a74a049f9d8c"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c316f53a694795bc5bfe0f32d2e861e", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保创建或删除 FOR ALL TABLES 发布时使关系缓存失效", "evidence": {"same_day": true, "patch_ids": ["65872bfda9a8ced2cfb0a9a53e2437e7"], "statement_hash": "a2062f94ce5aaab213c234c4e2292846b89276ca927dfb057419a74a049f9d8c"}, "url": "/docs/compare/?release=12.9#12.9-6820f3b566588c67", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "030217cf04f67dff197c78dcf74241df", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保创建或删除 FOR ALL TABLES 发布时使关系缓存失效", "evidence": {"same_day": true, "patch_ids": ["65872bfda9a8ced2cfb0a9a53e2437e7"], "statement_hash": "a2062f94ce5aaab213c234c4e2292846b89276ca927dfb057419a74a049f9d8c"}, "url": "/docs/compare/?release=11.14#11.14-06b4cfff1aeb42fa", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "1d3b9b1e81c6e1e450d91c2379333ceb", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保创建或删除 FOR ALL TABLES 发布时使关系缓存失效", "evidence": {"same_day": true, "patch_ids": ["65872bfda9a8ced2cfb0a9a53e2437e7"], "statement_hash": "a2062f94ce5aaab213c234c4e2292846b89276ca927dfb057419a74a049f9d8c"}, "url": "/docs/compare/?release=10.19#10.19-06b4cfff1aeb42fa", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "13.5-7f47318a010ee73a", "cves": [], "html": "<p>不要丢弃未指定类型修饰符的同类型转换（Tom Lane）<a href=\"https://postgr.es/c/dede14399\">§</a></p>\n<p>例如，如果列 <code>f1</code> 的类型为 <code>numeric(18,3)</code>，解析器以前会直接丢弃 <code>f1::numeric</code> 这样的类型转换，理由是它在运行时没有任何作用。这一点没错，但表达式对外呈现的类型仍应视为普通的 <code>numeric</code>，而非 <code>numeric(18,3)</code>。这对于正确确定更大结构的类型很重要，例如递归 <code>UNION</code>。</p>", "text": "不要丢弃未指定类型修饰符的同类型转换（Tom Lane）§ 例如，如果列 f1 的类型为 numeric(18,3)，解析器以前会直接丢弃 f1::numeric 这样的类型转换，理由是它在运行时没有任何作用。这一点没错，但表达式对外呈现的类型仍应视为普通的 numeric，而非 numeric(18,3)。这对于正确确定更大结构的类型很重要，例如递归 UNION。", "title": "不要丢弃未指定类型修饰符的同类型转换", "commits": ["dede14399"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "93e44d07f542d12bc29edaf3ee2d2c75c856fccd78ad18e86a25dc9ce00589c0", "section_path": ["变更"], "commit_groups": [["183b3aced", "5c056b0c2", "914e54501", "923b7efc2", "dede14399", "e5f6493e3", "f230614da"]], "identity_text": "Don't discard a cast to the same type with unspecified type modifier (Tom Lane) For example, if column f1 is of type numeric(18,3), the parser used to simply discard a cast like f1::numeric, on the grounds that it would have no run-time effect. That's true, but the exposed type of the expression should still be considered to be plain numeric, not numeric(18,3). This is important for correctly resolving the type of larger constructs, such as recursive UNIONs.", "commit_aliases": ["183b3aced", "5c056b0c2", "914e54501", "923b7efc2", "dede14399", "e5f6493e3", "f230614da"], "source_commits": ["dede14399"], "source_entry_id": "13.5/changes/012", "db_id": "3f481a78e4240bfe0f1b494d43b511f7", "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf", "relations": [{"rule": 2, "type": "equivalent", "target": "8c2dd14797b34df9a5afca02fff27580", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}, {"rule": 2, "type": "equivalent", "target": "c47bd83d49e6cf337d1e762efc2d200b", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}, {"rule": 2, "type": "equivalent", "target": "cab9f92a0cb611332bd820331c837ca3", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}, {"rule": 2, "type": "equivalent", "target": "e2b3fcaa7b119d13883b60e8c073e671", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8c2dd14797b34df9a5afca02fff27580", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "不要丢弃未指定类型修饰符的同类型转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=12.9#12.9-8d47e060f23f4654", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "e2b3fcaa7b119d13883b60e8c073e671", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "不要丢弃未指定类型修饰符的同类型转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=11.14#11.14-be49d2b4726f7bfe", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "c47bd83d49e6cf337d1e762efc2d200b", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "不要丢弃未指定类型修饰符的同类型转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=10.19#10.19-be49d2b4726f7bfe", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "cab9f92a0cb611332bd820331c837ca3", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "不要丢弃目标为未指定类型修饰符的同一类型的转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=9.6.24#9.6.24-97a4177256564f2d", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-f1295f4fe8ce0d0b", "cves": [], "html": "<p>修复复合类型上域的数组中元素字段的更新问题（Tom Lane）<a href=\"https://postgr.es/c/30e61a8cd\">§</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": ["30e61a8cd"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "bf11ce7f70ed0da9028439db012eab7298faddbaefccec0e3beb670d51fc58c3", "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": ["30e61a8cd"], "source_entry_id": "13.5/changes/013", "db_id": "d540ff2b8d86b2ef1160afed776d5391", "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": "d15026641129c059d812e9938a29747c", "evidence": {"same_day": true, "patch_ids": ["e448e00f97298157e5b29041db9eb7c5"], "statement_hash": "035a869420643c0bf81a4e4e81a12f02453029968ff6ed26feab550a68fdacd9"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d15026641129c059d812e9938a29747c", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复复合类型上域的数组中元素字段的更新问题", "evidence": {"same_day": true, "patch_ids": ["e448e00f97298157e5b29041db9eb7c5"], "statement_hash": "035a869420643c0bf81a4e4e81a12f02453029968ff6ed26feab550a68fdacd9"}, "url": "/docs/compare/?release=14.1#14.1-5b14c0c9df66c22e", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"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": "13.5-81cb435953838401", "cves": [], "html": "<p>禁止 <code>FETCH FIRST WITH TIES</code> 和 <code>FOR UPDATE SKIP LOCKED</code> 的组合（David Christensen）<a href=\"https://postgr.es/c/170206e45\">§</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": ["170206e45"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "4d9b31f064c34f51123a351d5110aee965d9162a6cd138569b1932ec75c68021", "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": ["170206e45"], "source_entry_id": "13.5/changes/014", "db_id": "891a8127eab4dd1e1dd16052a8a1888f", "patch_ids": ["1dc5a9f589bdb4d08b808a06ff3ba98e"], "statement_hash": "81c596d52b544c6c6aba4ace18d30f5e666f7b9068fad0f0edf802e166f0272b", "relations": [{"rule": 2, "type": "equivalent", "target": "38e10857c1882f10fb46a3469278df23", "evidence": {"same_day": true, "patch_ids": ["1dc5a9f589bdb4d08b808a06ff3ba98e"], "statement_hash": "81c596d52b544c6c6aba4ace18d30f5e666f7b9068fad0f0edf802e166f0272b"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "38e10857c1882f10fb46a3469278df23", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "禁止 FETCH FIRST WITH TIES 和 FOR UPDATE SKIP LOCKED 的组合", "evidence": {"same_day": true, "patch_ids": ["1dc5a9f589bdb4d08b808a06ff3ba98e"], "statement_hash": "81c596d52b544c6c6aba4ace18d30f5e666f7b9068fad0f0edf802e166f0272b"}, "url": "/docs/compare/?release=14.1#14.1-663c613c6600f28f", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}]}, {"id": "13.5-88a4557386a3dc93", "cves": [], "html": "<p>如果当前数据库的编码不支持某个 ICU 排序规则，则禁止创建该排序规则（Tom Lane）<a href=\"https://postgr.es/c/132be6000\">§</a></p>\n<p>以前允许这样做，但由于排序规则查找的工作方式，之后无法引用该排序规则；既不能使用它，甚至也不能删除它。</p>", "text": "如果当前数据库的编码不支持某个 ICU 排序规则，则禁止创建该排序规则（Tom Lane）§ 以前允许这样做，但由于排序规则查找的工作方式，之后无法引用该排序规则；既不能使用它，甚至也不能删除它。", "title": "如果当前数据库的编码不支持某个 ICU 排序规则，则禁止创建该排序规则", "commits": ["132be6000"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "336cb31764a040ea8d777363d63b662002f0abf5c66a59009c8f48a958b80bd1", "section_path": ["变更"], "commit_groups": [["132be6000", "2cc018ba8", "5d7c6b6c8", "9046a0536", "9ebe2852e", "db2760a84"]], "identity_text": "Disallow creating an ICU collation if the current database's encoding won't support it (Tom Lane) Previously this was allowed, but then the collation could not be referenced because of the way collation lookup works; you could not use the collation, nor even drop it.", "commit_aliases": ["132be6000", "2cc018ba8", "5d7c6b6c8", "9046a0536", "9ebe2852e", "db2760a84"], "source_commits": ["132be6000"], "source_entry_id": "13.5/changes/015", "db_id": "8ce2b247b376da52ac444fbb169e1149", "patch_ids": ["57f2fed5e9fd06c856ad2db3c59d7b61"], "statement_hash": "c41f9ff7f8035e2e3d557349ef0ec68751f0c5cc49128a53b3c646bdf78988b0", "relations": [{"rule": 2, "type": "equivalent", "target": "8bb42d9f4d9070993e2b6c906debc13f", "evidence": {"same_day": true, "patch_ids": ["57f2fed5e9fd06c856ad2db3c59d7b61"], "statement_hash": "c41f9ff7f8035e2e3d557349ef0ec68751f0c5cc49128a53b3c646bdf78988b0"}}, {"rule": 2, "type": "equivalent", "target": "984aac77c883e8738f5784e62ccabf04", "evidence": {"same_day": true, "patch_ids": ["57f2fed5e9fd06c856ad2db3c59d7b61"], "statement_hash": "c41f9ff7f8035e2e3d557349ef0ec68751f0c5cc49128a53b3c646bdf78988b0"}}, {"rule": 2, "type": "equivalent", "target": "e49409c6b1b1abf753a6f67543d92f91", "evidence": {"same_day": true, "patch_ids": ["57f2fed5e9fd06c856ad2db3c59d7b61"], "statement_hash": "c41f9ff7f8035e2e3d557349ef0ec68751f0c5cc49128a53b3c646bdf78988b0"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "984aac77c883e8738f5784e62ccabf04", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "如果当前数据库的编码不支持某个 ICU 排序规则，则禁止创建该排序规则", "evidence": {"same_day": true, "patch_ids": ["57f2fed5e9fd06c856ad2db3c59d7b61"], "statement_hash": "c41f9ff7f8035e2e3d557349ef0ec68751f0c5cc49128a53b3c646bdf78988b0"}, "url": "/docs/compare/?release=12.9#12.9-51d9797aee2028f5", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "8bb42d9f4d9070993e2b6c906debc13f", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "如果当前数据库的编码不支持某个 ICU 排序规则，则禁止创建该排序规则", "evidence": {"same_day": true, "patch_ids": ["57f2fed5e9fd06c856ad2db3c59d7b61"], "statement_hash": "c41f9ff7f8035e2e3d557349ef0ec68751f0c5cc49128a53b3c646bdf78988b0"}, "url": "/docs/compare/?release=11.14#11.14-63ece95a96260408", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "e49409c6b1b1abf753a6f67543d92f91", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "如果当前数据库的编码不支持某个 ICU 排序规则，则禁止创建该排序规则", "evidence": {"same_day": true, "patch_ids": ["57f2fed5e9fd06c856ad2db3c59d7b61"], "statement_hash": "c41f9ff7f8035e2e3d557349ef0ec68751f0c5cc49128a53b3c646bdf78988b0"}, "url": "/docs/compare/?release=10.19#10.19-63ece95a96260408", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "13.5-f1fb4aa5d89e65ff", "cves": [], "html": "<p>禁止 <code>ALTER INDEX index ALTER COLUMN col SET (options)</code>（Nathan Bossart，Michael Paquier）<a href=\"https://postgr.es/c/85dc4292a\">§</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": ["85dc4292a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "3b6313aabdd15a8745cb1937e5fd349c12b4a1fb999bc55b37934ef2078b92ca", "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": ["85dc4292a"], "source_entry_id": "13.5/changes/016", "db_id": "a244659e643c6c31adfc504dd01a4e4b", "patch_ids": ["674555d159034aaa65a362e6eaf5805c"], "statement_hash": "a253f0cc29afe0819c9dc17a6a3e16c7eed1bc1365cdc87c450c8a38873dbb00", "relations": [{"rule": 2, "type": "equivalent", "target": "4c05819be7855a16c7126b35403fca32", "evidence": {"same_day": true, "patch_ids": ["674555d159034aaa65a362e6eaf5805c"], "statement_hash": "a253f0cc29afe0819c9dc17a6a3e16c7eed1bc1365cdc87c450c8a38873dbb00"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4c05819be7855a16c7126b35403fca32", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "禁止 ALTER INDEX index ALTER COLUMN col SET (options)", "evidence": {"same_day": true, "patch_ids": ["674555d159034aaa65a362e6eaf5805c"], "statement_hash": "a253f0cc29afe0819c9dc17a6a3e16c7eed1bc1365cdc87c450c8a38873dbb00"}, "url": "/docs/compare/?release=14.1#14.1-62ade54d0ad56b7e", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}]}, {"id": "13.5-673ee8b61e23f79f", "cves": [], "html": "<p>修复 numeric <code>power()</code> 在边界情况下的精度损失（Dean Rasheed）<a href=\"https://postgr.es/c/9ab94ccb1\">§</a></p>\n<p>当第一个参数非常接近 1 时，结果可能不准确。</p>", "text": "修复 numeric power() 在边界情况下的精度损失（Dean Rasheed）§ 当第一个参数非常接近 1 时，结果可能不准确。", "title": "修复 numeric power() 在边界情况下的精度损失", "commits": ["9ab94ccb1"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "8f2bed0503750de8b1fcea5c7ada7d442945a39e3592bfa0d28db3c6c9c07f71", "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": ["9ab94ccb1"], "source_entry_id": "13.5/changes/017", "db_id": "6491fe99ed8928515123587023572951", "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e", "relations": [{"rule": 2, "type": "equivalent", "target": "030a2046e24b898c1430427f489eb485", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}, {"rule": 2, "type": "equivalent", "target": "27be00824a0ba04d07e8342cfa7a32d4", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}, {"rule": 2, "type": "equivalent", "target": "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": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "030a2046e24b898c1430427f489eb485", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 numeric power() 在边界情况下的精度损失", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=14.1#14.1-241308668d1bbfbf", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-f946ab4d4a4c4562", "cves": [], "html": "<p>避免 <code>{0}</code> 内部存在捕获括号时出现正则表达式错误（Tom Lane）<a href=\"https://postgr.es/c/071146184\">§</a></p>\n<p><code>(.){0}...\\1</code> 这样的正则表达式会产生 <span>“<span>invalid backreference number</span>”</span> 错误。但 Perl 等其他正则表达式引擎不会报错，而且在一些非常相近的情况下，我们的引擎也不会报错。更糟的是，它还可能触发断言失败。现在修复为不抛出错误，而是静默地将该反向引用视为永不匹配。</p>", "text": "避免 {0} 内部存在捕获括号时出现正则表达式错误（Tom Lane）§ (.){0}...\\1 这样的正则表达式会产生 “invalid backreference number” 错误。但 Perl 等其他正则表达式引擎不会报错，而且在一些非常相近的情况下，我们的引擎也不会报错。更糟的是，它还可能触发断言失败。现在修复为不抛出错误，而是静默地将该反向引用视为永不匹配。", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "commits": ["071146184"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "b3898c3b95c2ce16c0ce6ac5fa4ff589c92f2ab9f1127e0201ddebaf95aaa722", "section_path": ["变更"], "commit_groups": [["062c4c791", "071146184", "244dd7992", "3ebd32e70", "65dc30ced", "7e75fe390", "92620e82f"]], "identity_text": "Avoid regular expression errors with capturing parentheses inside {0} (Tom Lane) Regular expressions like (.){0}...\\1 drew invalid backreference number. Other regexp engines such as Perl don't complain, though, and for that matter ours doesn't either in some closely related cases. Worse, it could throw an assertion failure instead. Fix it so that no error is thrown and instead the back-reference is silently deemed to never match.", "commit_aliases": ["062c4c791", "071146184", "244dd7992", "3ebd32e70", "65dc30ced", "7e75fe390", "92620e82f"], "source_commits": ["071146184"], "source_entry_id": "13.5/changes/018", "db_id": "6137a626b6ebdca900a21e159963b0e1", "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5", "relations": [{"rule": 2, "type": "equivalent", "target": "0851f9c822462108d03b12b8a676de26", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}, {"rule": 2, "type": "equivalent", "target": "a2b6b5277ba16d3a7ac847e98f5f3c6c", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}, {"rule": 2, "type": "equivalent", "target": "c8719989d0e5fd9df8c5fff17f6bb8d1", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}, {"rule": 2, "type": "equivalent", "target": "d7e27d3c44914e575f270c53720f8215", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2b6b5277ba16d3a7ac847e98f5f3c6c", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=12.9#12.9-40472a515c7bfd50", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "c8719989d0e5fd9df8c5fff17f6bb8d1", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=11.14#11.14-de4981f6ecebcdbe", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "d7e27d3c44914e575f270c53720f8215", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=10.19#10.19-de4981f6ecebcdbe", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "0851f9c822462108d03b12b8a676de26", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "避免捕获圆括号位于 {0} 内部时引发的正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=9.6.24#9.6.24-daa46723b2831e41", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-b4fd8549fa48ccc0", "cves": [], "html": "<p>防止正则表达式的反向引用有时在不应匹配的情况下匹配（Tom Lane）<a href=\"https://postgr.es/c/9a327179c\">§</a></p>\n<p>正则表达式引擎在拒绝一个部分匹配后，没有仔细清除捕获括号的匹配数据。这可能使后续的反向引用在本应因没有已定义的引用对象而失败的位置匹配成功。</p>", "text": "防止正则表达式的反向引用有时在不应匹配的情况下匹配（Tom Lane）§ 正则表达式引擎在拒绝一个部分匹配后，没有仔细清除捕获括号的匹配数据。这可能使后续的反向引用在本应因没有已定义的引用对象而失败的位置匹配成功。", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "commits": ["9a327179c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "6ee31f9dfe199f40ceb6f8b9d2b87c47e6dd4948e4c27a957436310393d1f623", "section_path": ["变更"], "commit_groups": [["08e080756", "779557bd2", "9a327179c", "9bbf6f734", "b9521a1f9", "d90e14414", "df87b7c44"]], "identity_text": "Prevent regular expression back-references from sometimes matching when they shouldn't (Tom Lane) The regexp engine was careless about clearing match data for capturing parentheses after rejecting a partial match. This could allow a later back-reference to match in places where it should fail for lack of a defined referent.", "commit_aliases": ["08e080756", "779557bd2", "9a327179c", "9bbf6f734", "b9521a1f9", "d90e14414", "df87b7c44"], "source_commits": ["9a327179c"], "source_entry_id": "13.5/changes/019", "db_id": "210ecd50c09b115e6bd2066d62f997f8", "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a", "relations": [{"rule": 2, "type": "equivalent", "target": "5a3f5610fed82ab625e04525006e0607", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}, {"rule": 2, "type": "equivalent", "target": "db98f99b0d1f6903dbfc5e3be4d5387c", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}, {"rule": 2, "type": "equivalent", "target": "dde6640a815b7ab63041151f90246968", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}, {"rule": 2, "type": "equivalent", "target": "fd9076c2292385c1b7f2613b7dd2add3", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fd9076c2292385c1b7f2613b7dd2add3", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=12.9#12.9-d7f665f17d71c527", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "5a3f5610fed82ab625e04525006e0607", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=11.14#11.14-bbc027e805c07736", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "dde6640a815b7ab63041151f90246968", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=10.19#10.19-bbc027e805c07736", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "db98f99b0d1f6903dbfc5e3be4d5387c", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "防止正则表达式反向引用在不应匹配时有时仍匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=9.6.24#9.6.24-646116d0661b60f3", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-327417f31c652548", "cves": [], "html": "<p>修复迭代节点内部反向引用的正则表达式性能缺陷（Tom Lane）<a href=\"https://postgr.es/c/b30f7f399\">§</a></p>\n<p>错误的回溯逻辑可能使寻找匹配所花费的时间呈指数级增长。幸运的是，其他优化在大多数情况下掩盖了此问题。</p>", "text": "修复迭代节点内部反向引用的正则表达式性能缺陷（Tom Lane）§ 错误的回溯逻辑可能使寻找匹配所花费的时间呈指数级增长。幸运的是，其他优化在大多数情况下掩盖了此问题。", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "commits": ["b30f7f399"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "bdae8c16507b9b69b8f34de862a53fd51afdec19afa14515fa3f0da893f59c21", "section_path": ["变更"], "commit_groups": [["57a2d4a1b", "9610852ab", "adbfde3db", "b30f7f399", "cafebd663", "e0f2acf26", "facce1da9"]], "identity_text": "Fix regular expression performance bug with back-references inside iteration nodes (Tom Lane) Incorrect back-tracking logic could result in exponential time spent looking for a match. Fortunately the problem is masked in most cases by other optimizations.", "commit_aliases": ["57a2d4a1b", "9610852ab", "adbfde3db", "b30f7f399", "cafebd663", "e0f2acf26", "facce1da9"], "source_commits": ["b30f7f399"], "source_entry_id": "13.5/changes/020", "db_id": "fcda11b7a0efa290fbe039d6e34ab27d", "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7", "relations": [{"rule": 2, "type": "equivalent", "target": "42e028519e0ba2febe6342873cebc1f7", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}, {"rule": 2, "type": "equivalent", "target": "4fced0b9275aaf74765209b7f904b28c", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}, {"rule": 2, "type": "equivalent", "target": "688ccbc9cb0855becfc0adcfaf70a154", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}, {"rule": 2, "type": "equivalent", "target": "e2a9330ca2af18a79c0bbb6006eabfad", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "688ccbc9cb0855becfc0adcfaf70a154", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=12.9#12.9-446f89346a6d1c1d", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "e2a9330ca2af18a79c0bbb6006eabfad", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=11.14#11.14-acfd58a3252d574e", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "4fced0b9275aaf74765209b7f904b28c", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=10.19#10.19-acfd58a3252d574e", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "42e028519e0ba2febe6342873cebc1f7", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复反向引用位于迭代节点内部时正则表达式的性能问题", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=9.6.24#9.6.24-502282f690b48a6b", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-5852d98035c78c4e", "cves": [], "html": "<p>修复对 <code>time with time zone</code> 值应用 <code>AT TIME ZONE</code> 时产生的错误结果（Tom Lane）<a href=\"https://postgr.es/c/d8a266c5e\">§</a></p>\n<p>如果目标时区通过动态时区缩写指定（即定义为等价于完整时区名称，而非固定 UTC 偏移量的缩写），结果就会不正确。</p>", "text": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果（Tom Lane）§ 如果目标时区通过动态时区缩写指定（即定义为等价于完整时区名称，而非固定 UTC 偏移量的缩写），结果就会不正确。", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "commits": ["d8a266c5e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "4ce0a7f518375932ce7817762d8d4eef8d7db7973adb5f04ddecafa4a3699fed", "section_path": ["变更"], "commit_groups": [["5907c3818", "599c73a91", "90b4647f6", "b28c862a6", "d8a266c5e", "eb3c8d248"]], "identity_text": "Fix incorrect results from AT TIME ZONE applied to a time with time zone value (Tom Lane) The results were incorrect if the target time zone was specified by a dynamic timezone abbreviation (that is, one that is defined as equivalent to a full time zone name, rather than a fixed UTC offset).", "commit_aliases": ["5907c3818", "599c73a91", "90b4647f6", "b28c862a6", "d8a266c5e", "eb3c8d248"], "source_commits": ["d8a266c5e"], "source_entry_id": "13.5/changes/021", "db_id": "1d98d253603f63b72170b1a21fa26ecb", "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce", "relations": [{"rule": 2, "type": "equivalent", "target": "02ca028508a70046df9141999d0af648", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}, {"rule": 2, "type": "equivalent", "target": "1cbe7ac9a3e48112574b93b9c4337936", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}, {"rule": 2, "type": "equivalent", "target": "873842f3b76c836d3d0b43d915bf20ff", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}, {"rule": 2, "type": "equivalent", "target": "fa17b8425ecd09a5d4c77915aacbe62f", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "873842f3b76c836d3d0b43d915bf20ff", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=12.9#12.9-79e3fbdf7c3057f9", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "fa17b8425ecd09a5d4c77915aacbe62f", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=11.14#11.14-e53c6799b48f5e3b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "02ca028508a70046df9141999d0af648", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=10.19#10.19-e53c6799b48f5e3b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "1cbe7ac9a3e48112574b93b9c4337936", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时结果错误的问题", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=9.6.24#9.6.24-a39c99bea3f06bbd", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-745211cd58d35a7a", "cves": [], "html": "<p>修复将子查询表达式上拉到函数范围表条目时的规划器错误（Tom Lane）<a href=\"https://postgr.es/c/fdd6a4d8d\">§</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": ["fdd6a4d8d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "20fca4bd85667ba68fe89e8e4d2f69d50b32311d0b940b3bbdd8462feaf82e9d", "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": ["fdd6a4d8d"], "source_entry_id": "13.5/changes/022", "db_id": "1e31766be74f5ea330e081ad6f4f6f0f", "patch_ids": ["f74a20059cb48d113623d0064bc38632"], "statement_hash": "b0378ac98e16d71d497248b483c334b74d2347a2e3c5058532c9c168cbc5fd7a", "relations": [{"rule": 2, "type": "equivalent", "target": "17523b9e1c96b9a083f4b4e8cd8e97bd", "evidence": {"same_day": true, "patch_ids": ["f74a20059cb48d113623d0064bc38632"], "statement_hash": "b0378ac98e16d71d497248b483c334b74d2347a2e3c5058532c9c168cbc5fd7a"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "17523b9e1c96b9a083f4b4e8cd8e97bd", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复将子查询表达式上拉到函数范围表条目时的规划器错误", "evidence": {"same_day": true, "patch_ids": ["f74a20059cb48d113623d0064bc38632"], "statement_hash": "b0378ac98e16d71d497248b483c334b74d2347a2e3c5058532c9c168cbc5fd7a"}, "url": "/docs/compare/?release=14.1#14.1-15a220296cc91bf5", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}]}, {"id": "13.5-85fbdae7eadb8ddf", "cves": [], "html": "<p>修复将 PlaceHolderVars 转换到继承子关系时的错误（Tom Lane）<a href=\"https://postgr.es/c/e0b0d1eab\">§</a></p>\n<p>此错误可能导致断言失败，或使外连接可空一侧含有分区表或继承表的查询得到错误的计划。</p>", "text": "修复将 PlaceHolderVars 转换到继承子关系时的错误（Tom Lane）§ 此错误可能导致断言失败，或使外连接可空一侧含有分区表或继承表的查询得到错误的计划。", "title": "修复将 PlaceHolderVars 转换到继承子关系时的错误", "commits": ["e0b0d1eab"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "1cb156071cbe648f5a11e8c31e94cd5deb50065eb8185255c96af72e14e30fd1", "section_path": ["变更"], "commit_groups": [["4d5b4483d", "a21049fd3", "e0b0d1eab", "febe013ca"]], "identity_text": "Fix mistranslation of PlaceHolderVars to inheritance child relations (Tom Lane) This error could result in assertion failures, or in mis-planning of queries having partitioned or inherited tables on the nullable side of an outer join.", "commit_aliases": ["4d5b4483d", "a21049fd3", "e0b0d1eab", "febe013ca"], "source_commits": ["e0b0d1eab"], "source_entry_id": "13.5/changes/023", "db_id": "21b1927bbba8fdf946e3a955ca00a7f2", "patch_ids": ["790210121d680beb7b5e473db29216e5"], "statement_hash": "ec48d1a2493ff244e7b43973927d87bd76fe566b8818d53a4ac41e496ad68c7c", "relations": [{"rule": 2, "type": "equivalent", "target": "113a007310ef188bb565a96667898eae", "evidence": {"same_day": true, "patch_ids": ["790210121d680beb7b5e473db29216e5"], "statement_hash": "ec48d1a2493ff244e7b43973927d87bd76fe566b8818d53a4ac41e496ad68c7c"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "113a007310ef188bb565a96667898eae", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复将 PlaceHolderVars 转换到继承子关系时的错误", "evidence": {"same_day": true, "patch_ids": ["790210121d680beb7b5e473db29216e5"], "statement_hash": "ec48d1a2493ff244e7b43973927d87bd76fe566b8818d53a4ac41e496ad68c7c"}, "url": "/docs/compare/?release=12.9#12.9-816351318a41bcd5", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}]}, {"id": "13.5-2b0369b01183463d", "cves": [], "html": "<p>避免仅使用 MCV 统计信息来估计列的范围（Tom Lane）<a href=\"https://postgr.es/c/7adbe186f\">§</a></p>\n<p>在某些边界情况下，<code>ANALYZE</code> 会构建高频值（MCV）列表但不构建直方图，即使 MCV 列表并未包含所有观测值。在这种情况下，防止规划器仅使用 MCV 列表来估计列值的范围。</p>", "text": "避免仅使用 MCV 统计信息来估计列的范围（Tom Lane）§ 在某些边界情况下，ANALYZE 会构建高频值（MCV）列表但不构建直方图，即使 MCV 列表并未包含所有观测值。在这种情况下，防止规划器仅使用 MCV 列表来估计列值的范围。", "title": "避免仅使用 MCV 统计信息来估计列的范围", "commits": ["7adbe186f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "d1dab5718434a00800f2da8d3bb8389baebc03738cc1eb94a1068ff32743b2a0", "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": ["7adbe186f"], "source_entry_id": "13.5/changes/024", "db_id": "1d202e85f143908b770a47d7b781767e", "patch_ids": ["4efe9bd34b08521309829ff1c5795758"], "statement_hash": "50e48f5643b6fa0b2bfdf0f247e2883b0fd2d2d5112a7ed9c780409c2960e079", "relations": [{"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": "dad67037f356b21cb96e011dde8431e3", "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": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dad67037f356b21cb96e011dde8431e3", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "避免仅使用 MCV 统计信息来估计列的范围", "evidence": {"same_day": true, "patch_ids": ["4efe9bd34b08521309829ff1c5795758"], "statement_hash": "50e48f5643b6fa0b2bfdf0f247e2883b0fd2d2d5112a7ed9c780409c2960e079"}, "url": "/docs/compare/?release=14.1#14.1-fad66ee87321cc81", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"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": "13.5-2baea8409b5154c3", "cves": [], "html": "<p>修复子事务内部 Portal 快照的恢复（Bertrand Drouvot）<a href=\"https://postgr.es/c/04ef2021e\">§</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": ["04ef2021e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "2eeb0529ee451c4463625841ad16b46a88f24e751f63a8b11ea9e1c18d392436", "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": ["04ef2021e"], "source_entry_id": "13.5/changes/025", "db_id": "b28666fde4f152d690b0177e406198b4", "patch_ids": ["78bc1a96d32fa9ee281fb490fedfdd1f"], "statement_hash": "5ed29f70c2da0cba39295dec42842ef848c166f6a57a6ce3cab8e6935cf90e55", "relations": [{"rule": 2, "type": "equivalent", "target": "8650e14675ac23e8cb7d788bc373a407", "evidence": {"same_day": true, "patch_ids": ["78bc1a96d32fa9ee281fb490fedfdd1f"], "statement_hash": "5ed29f70c2da0cba39295dec42842ef848c166f6a57a6ce3cab8e6935cf90e55"}}, {"rule": 2, "type": "equivalent", "target": "a8e0b8073331f4c21bc6ca6333017675", "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": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8650e14675ac23e8cb7d788bc373a407", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复子事务内部 Portal 快照的恢复", "evidence": {"same_day": true, "patch_ids": ["78bc1a96d32fa9ee281fb490fedfdd1f"], "statement_hash": "5ed29f70c2da0cba39295dec42842ef848c166f6a57a6ce3cab8e6935cf90e55"}, "url": "/docs/compare/?release=14.1#14.1-5c95d59d1cdc3220", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"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": "13.5-321ab322cdafb3a7", "cves": [], "html": "<p>确保在事务导出快照后失败时正确清理（Dilip Kumar）<a href=\"https://postgr.es/c/8f4fe8d7f\">§</a></p>\n<p>此疏忽仅在同一会话再次尝试导出快照时才会导致问题。最可能的场景是创建复制槽（随后回滚）然后再创建另一个复制槽。</p>", "text": "确保在事务导出快照后失败时正确清理（Dilip Kumar）§ 此疏忽仅在同一会话再次尝试导出快照时才会导致问题。最可能的场景是创建复制槽（随后回滚）然后再创建另一个复制槽。", "title": "确保在事务导出快照后失败时正确清理", "commits": ["8f4fe8d7f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "5de699cfd85205c4c10c70d2936514659cf109508a8c1e8f980ebdcb5fd1ff9c", "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": ["8f4fe8d7f"], "source_entry_id": "13.5/changes/026", "db_id": "d84d87ff6a70c047ba38c6f69e2653cd", "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": "2a6d4610a6f5aae215be59292ae31f23", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}, {"rule": 2, "type": "equivalent", "target": "2cdb632e8ea189be5b2edfd5de9df713", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}, {"rule": 2, "type": "equivalent", "target": "7fd74714d89c82665748bdf2f6d7574b", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}, {"rule": 2, "type": "equivalent", "target": "cea2acf8b2beaa8c1eb10702b8eff1a0", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2a6d4610a6f5aae215be59292ae31f23", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保在事务导出快照后失败时正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=14.1#14.1-3e0b45737d95faa1", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-6faf1363b8eb1c6a", "cves": [], "html": "<p>防止备库上溢出子事务跟踪的回卷（Kyotaro Horiguchi，Alexander Korotkov）<a href=\"https://postgr.es/c/e1fee28a0\">§</a></p>\n<p>此疏忽可能导致备库上显著的性能下降（表现为过多的 SubtransSLRU 流量）。</p>", "text": "防止备库上溢出子事务跟踪的回卷（Kyotaro Horiguchi，Alexander Korotkov）§ 此疏忽可能导致备库上显著的性能下降（表现为过多的 SubtransSLRU 流量）。", "title": "防止备库上溢出子事务跟踪的回卷", "commits": ["e1fee28a0"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "57de89a18311a8ca84d8af747cabbcfdc70ee783718169d85600dbb243ba445b", "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": ["e1fee28a0"], "source_entry_id": "13.5/changes/027", "db_id": "3a3a1a407a6152538920dd69792d6335", "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9", "relations": [{"rule": 2, "type": "equivalent", "target": "1b931f8fd7d6f996bd4ac4bdfc4c5936", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}}, {"rule": 2, "type": "equivalent", "target": "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": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1b931f8fd7d6f996bd4ac4bdfc4c5936", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "防止备库上溢出子事务跟踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=14.1#14.1-145cfc88539998a5", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-80dc5538a590895d", "cves": [], "html": "<p>确保在备库提升期间正确地将预备事务纳入考虑（Michael Paquier，Andres Freund）<a href=\"https://postgr.es/c/194e535a0\">§</a></p>\n<p>存在一个很窄的窗口，预备事务可能从并发运行的会话获取的快照中被遗漏。如果该会话随后使用该快照执行数据更新，可能导致错误的结果或数据损坏。</p>", "text": "确保在备库提升期间正确地将预备事务纳入考虑（Michael Paquier，Andres Freund）§ 存在一个很窄的窗口，预备事务可能从并发运行的会话获取的快照中被遗漏。如果该会话随后使用该快照执行数据更新，可能导致错误的结果或数据损坏。", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "commits": ["194e535a0"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "97b05bdfa68914aac2b358abd1bf684ba3fe6ae3ab34e571bcd9e6660938f641", "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": ["194e535a0"], "source_entry_id": "13.5/changes/028", "db_id": "019600634a5a25a4a59c9231fe378ad5", "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4", "relations": [{"rule": 2, "type": "equivalent", "target": "477487d44f47e562b13d9d7f0906e5d9", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}, {"rule": 2, "type": "equivalent", "target": "574b9aff44b85a3689d0b0c052e479e2", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}, {"rule": 2, "type": "equivalent", "target": "6412f7045465fdb83a2ae55bfabca6d4", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}, {"rule": 2, "type": "equivalent", "target": "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": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "477487d44f47e562b13d9d7f0906e5d9", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=14.1#14.1-1a51cb18db7c3adb", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-fcce30e516a86fcb", "cves": [], "html": "<p>禁止在后台工作进程中使用 <code>LISTEN</code>（Tom Lane）<a href=\"https://postgr.es/c/e06cc024b\">§</a></p>\n<p>没有支持此功能的基础设施，因此如果有人这样做，只会导致 <code>NOTIFY</code> 队列无法清理。</p>", "text": "禁止在后台工作进程中使用 LISTEN（Tom Lane）§ 没有支持此功能的基础设施，因此如果有人这样做，只会导致 NOTIFY 队列无法清理。", "title": "禁止在后台工作进程中使用 LISTEN", "commits": ["e06cc024b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "f52a6c4e03023627248640aa74971fa6c9d23d52aba8106fab258bb2e630ace4", "section_path": ["变更"], "commit_groups": [["1316be286", "d84d62b62", "e06cc024b"]], "identity_text": "Disallow LISTEN in background workers (Tom Lane) There's no infrastructure to support this, so if someone did it, it would only result in preventing cleanup of the NOTIFY queue.", "commit_aliases": ["1316be286", "d84d62b62", "e06cc024b"], "source_commits": ["e06cc024b"], "source_entry_id": "13.5/changes/029", "db_id": "12324259d2391ed7d54410448c4cd72d", "patch_ids": ["51bfbb081dfecb6a01990240e69fc913"], "statement_hash": "61a1c6224d60810a2075619155e0dcda3e0e1bd1d61b9040fba60ac60c897f3b", "relations": [], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.5-e9b9952d21874425", "cves": [], "html": "<p>在事务提交期间向其他后端发送 <code>NOTIFY</code> 信号，而不在服务器的空闲循环中发送（Artur Zakirov，Tom Lane）<a href=\"https://postgr.es/c/63f28776c\">§</a></p>\n<p>此项修改使通知可以在过程内部执行 <code>COMMIT</code> 后立即送达，也允许逻辑复制工作进程发送通知。</p>", "text": "在事务提交期间向其他后端发送 NOTIFY 信号，而不在服务器的空闲循环中发送（Artur Zakirov，Tom Lane）§ 此项修改使通知可以在过程内部执行 COMMIT 后立即送达，也允许逻辑复制工作进程发送通知。", "title": "在事务提交期间向其他后端发送 NOTIFY 信号，而不在服务器的空闲循环中发送", "commits": ["63f28776c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "2872c8d3194e9af3fd813185065342faca01188cf33b63d6ba7164d5a3b6084d", "section_path": ["变更"], "commit_groups": [["0eff10a00", "2e4eae87d", "63f28776c"]], "identity_text": "Send NOTIFY signals to other backends during transaction commit, not in the server's idle loop (Artur Zakirov, Tom Lane) This change allows notifications to be delivered immediately after an intra-procedure COMMIT. It also allows logical replication workers to send notifications.", "commit_aliases": ["0eff10a00", "2e4eae87d", "63f28776c"], "source_commits": ["63f28776c"], "source_entry_id": "13.5/changes/030", "db_id": "63d682a24f409d7b1eb68f8f4157c75b", "patch_ids": ["a5f540caa24fa4d8ada7ce4daa132d5d"], "statement_hash": "b66a6d27d3c6f933ef63bd9bb9bacf61251ec0348672ee49084b16c8f8ab6965", "relations": [], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.5-18629f93473a7c5f", "cves": [], "html": "<p>如果标记为 <code>NO SCROLL</code> 的游标因 <code>WITH HOLD</code> 选项而从上一个事务保留下来，则拒绝将其退回起点（Tom Lane）<a href=\"https://postgr.es/c/fa5d0415f\">§</a></p>\n<p>我们早已禁止从 <code>NO SCROLL</code> 游标向后获取数据，但由于历史原因，这一禁令没有涵盖将整个查询退回起点后再向前重新获取的情况。这一例外会导致不一致，尤其是对于跨事务保留的游标，它们可能没有存储退回起点所需的全部数据。现在禁止不可滚动的保留游标退回起点，以避免最严重的不一致。（v15 将完全移除这一例外。）</p>", "text": "如果标记为 NO SCROLL 的游标因 WITH HOLD 选项而从上一个事务保留下来，则拒绝将其退回起点（Tom Lane）§ 我们早已禁止从 NO SCROLL 游标向后获取数据，但由于历史原因，这一禁令没有涵盖将整个查询退回起点后再向前重新获取的情况。这一例外会导致不一致，尤其是对于跨事务保留的游标，它们可能没有存储退回起点所需的全部数据。现在禁止不可滚动的保留游标退回起点，以避免最严重的不一致。（v15 将完全移除这一例外。）", "title": "如果标记为 NO SCROLL 的游标因 WITH HOLD 选项而从上一个事务保留下来，则拒绝将其退回起点", "commits": ["fa5d0415f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "24904a18b63469dd6213ef4ba509a85f0a6d71c2cb0f5514a1b4f53158bab0e8", "section_path": ["变更"], "commit_groups": [["9ea8d3d24", "ba408fc96", "c1b7a6c27", "d844cd75a", "fa5d0415f"]], "identity_text": "Refuse to rewind a cursor marked NO SCROLL if it has been held over from a previous transaction due to the WITH HOLD option (Tom Lane) We have long forbidden fetching backwards from a NO SCROLL cursor, but for historical reasons the prohibition didn't extend to cases in which we rewind the query altogether and then re-fetch forwards. That exception leads to inconsistencies, particularly for held-over cursors which may not have stored all the data necessary to rewind. Disallow rewinding for non-scrollable held-over cursors to block the worst inconsistencies. (v15 will remove the exception altogether.)", "commit_aliases": ["9ea8d3d24", "ba408fc96", "c1b7a6c27", "d844cd75a", "fa5d0415f"], "source_commits": ["fa5d0415f"], "source_entry_id": "13.5/changes/031", "db_id": "e7a9b4621675519ec23f0c6ead90eabd", "patch_ids": ["e91742d50d6e4d6597fffb9fbcbc6f7c"], "statement_hash": "4dda490f8e35ed3457142caa65e0af83787143e9d4febe39711cec77d4e87c43", "relations": [{"rule": 2, "type": "equivalent", "target": "34dc81e5bfe4057205488124c14d6cdb", "evidence": {"same_day": true, "patch_ids": ["e91742d50d6e4d6597fffb9fbcbc6f7c"], "statement_hash": "4dda490f8e35ed3457142caa65e0af83787143e9d4febe39711cec77d4e87c43"}}, {"rule": 2, "type": "equivalent", "target": "f29502990e0a576987ff8d5daf25b74b", "evidence": {"same_day": true, "patch_ids": ["e91742d50d6e4d6597fffb9fbcbc6f7c"], "statement_hash": "4dda490f8e35ed3457142caa65e0af83787143e9d4febe39711cec77d4e87c43"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "34dc81e5bfe4057205488124c14d6cdb", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "如果标记为 NO SCROLL 的游标因 WITH HOLD 选项而从上一个事务保留下来，则拒绝将其退回起点", "evidence": {"same_day": true, "patch_ids": ["e91742d50d6e4d6597fffb9fbcbc6f7c"], "statement_hash": "4dda490f8e35ed3457142caa65e0af83787143e9d4febe39711cec77d4e87c43"}, "url": "/docs/compare/?release=12.9#12.9-b703a2963e1bf4c5", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "f29502990e0a576987ff8d5daf25b74b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "如果标记为 NO SCROLL 的游标因 WITH HOLD 选项而从上一个事务保留下来，则拒绝将其退回起点", "evidence": {"same_day": true, "patch_ids": ["e91742d50d6e4d6597fffb9fbcbc6f7c"], "statement_hash": "4dda490f8e35ed3457142caa65e0af83787143e9d4febe39711cec77d4e87c43"}, "url": "/docs/compare/?release=11.14#11.14-ba69231b58f3a199", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}]}, {"id": "13.5-cda1769b939574cc", "cves": [], "html": "<p>修复事务结束时保存已读取完毕的 <code>WITH HOLD</code> 游标可能发生的失败（Tom Lane）<a href=\"https://postgr.es/c/d8d93bc8b\">§</a></p>", "text": "修复事务结束时保存已读取完毕的 WITH HOLD 游标可能发生的失败（Tom Lane）§", "title": "修复事务结束时保存已读取完毕的 WITH HOLD 游标可能发生的失败", "commits": ["d8d93bc8b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "20f03aafc7ad470e9e3e644942ce1ba35c78794eb2488b61b09ddf3c67655c32", "section_path": ["变更"], "commit_groups": [["2e75e969c", "7813451c2", "b7056c0a2", "cba79a163", "d8d93bc8b"]], "identity_text": "Fix possible failure while saving a WITH HOLD cursor at transaction end, if it had already been read to completion (Tom Lane)", "commit_aliases": ["2e75e969c", "7813451c2", "b7056c0a2", "cba79a163", "d8d93bc8b"], "source_commits": ["d8d93bc8b"], "source_entry_id": "13.5/changes/032", "db_id": "02bbff6a61bc996dcdba2e1c0e190171", "patch_ids": ["31c11f4c5d462b7e427add2005ab828b"], "statement_hash": "266860b07fc5e9b14696f9d62241a2095a1ecf66427bbb955ae76e88a16d2a40", "relations": [{"rule": 2, "type": "equivalent", "target": "0451ed5788e3946ad30d1307f175905b", "evidence": {"same_day": true, "patch_ids": ["31c11f4c5d462b7e427add2005ab828b"], "statement_hash": "266860b07fc5e9b14696f9d62241a2095a1ecf66427bbb955ae76e88a16d2a40"}}, {"rule": 2, "type": "equivalent", "target": "fb98c05f30412ab59e4483600d92c5ca", "evidence": {"same_day": true, "patch_ids": ["31c11f4c5d462b7e427add2005ab828b"], "statement_hash": "266860b07fc5e9b14696f9d62241a2095a1ecf66427bbb955ae76e88a16d2a40"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0451ed5788e3946ad30d1307f175905b", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复事务结束时保存已读取完毕的 WITH HOLD 游标可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["31c11f4c5d462b7e427add2005ab828b"], "statement_hash": "266860b07fc5e9b14696f9d62241a2095a1ecf66427bbb955ae76e88a16d2a40"}, "url": "/docs/compare/?release=12.9#12.9-dea1c9b1659f7ac5", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "fb98c05f30412ab59e4483600d92c5ca", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复事务结束时保存已读取完毕的 WITH HOLD 游标可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["31c11f4c5d462b7e427add2005ab828b"], "statement_hash": "266860b07fc5e9b14696f9d62241a2095a1ecf66427bbb955ae76e88a16d2a40"}, "url": "/docs/compare/?release=11.14#11.14-42e1215fd23207c7", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}]}, {"id": "13.5-8f5bff695c654adf", "cves": [], "html": "<p>修复对已增长到最大允许长度的关系的检测（Tom Lane）<a href=\"https://postgr.es/c/04118de78\">§</a></p>\n<p>虽然尝试将表或索引扩展到超过 2^32-1 个块的限制会被拒绝，但拒绝得不够早，未能防止产生不一致的内部状态。</p>", "text": "修复对已增长到最大允许长度的关系的检测（Tom Lane）§ 虽然尝试将表或索引扩展到超过 2^32-1 个块的限制会被拒绝，但拒绝得不够早，未能防止产生不一致的内部状态。", "title": "修复对已增长到最大允许长度的关系的检测", "commits": ["04118de78"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "7515ca074175f2f961b708b9f6dbb93748cd477586a0e469a7cdb896492dad9e", "section_path": ["变更"], "commit_groups": [["04118de78", "1a23b669d", "7430c7742", "8481f9989", "a7a73ce30", "ca1dd6234", "cc4de2bba"]], "identity_text": "Fix detection of a relation that has grown to the maximum allowed length (Tom Lane) An attempt to extend a table or index past the limit of 2^32-1 blocks was rejected, but not soon enough to prevent inconsistent internal state from being created.", "commit_aliases": ["04118de78", "1a23b669d", "7430c7742", "8481f9989", "a7a73ce30", "ca1dd6234", "cc4de2bba"], "source_commits": ["04118de78"], "source_entry_id": "13.5/changes/033", "db_id": "9ad8ebd9b82c34b47199eabd351bcb79", "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0", "relations": [{"rule": 2, "type": "equivalent", "target": "02620a82d9fe5a2e97b9aa2ab6ca0618", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}, {"rule": 2, "type": "equivalent", "target": "0cb33bedf43543570b1af1b969554aa1", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}, {"rule": 2, "type": "equivalent", "target": "4a9be823ec1a5ece64a803992b674622", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}, {"rule": 2, "type": "equivalent", "target": "68b7bde5631885e9119726942741ac7c", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0cb33bedf43543570b1af1b969554aa1", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=12.9#12.9-cb626cd9aff10613", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "02620a82d9fe5a2e97b9aa2ab6ca0618", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=11.14#11.14-e2e50c835079a809", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "4a9be823ec1a5ece64a803992b674622", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=10.19#10.19-e2e50c835079a809", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "68b7bde5631885e9119726942741ac7c", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=9.6.24#9.6.24-e2e50c835079a809", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-ec01a885700fdb23", "cves": [], "html": "<p>展开 <code>DO INSTEAD</code> 规则时，正确跟踪是否存在修改数据的 CTE（Greg Nancarrow，Tom Lane）<a href=\"https://postgr.es/c/cbba6ba3a\">§</a></p>\n<p>以前未能做到这一点，可能导致不安全地选择并行计划等问题。</p>", "text": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE（Greg Nancarrow，Tom Lane）§ 以前未能做到这一点，可能导致不安全地选择并行计划等问题。", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "commits": ["cbba6ba3a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "f253b5a616f05ca829025a19a6ac7aec12a7c779d2f2327e1faba45f7c77dc71", "section_path": ["变更"], "commit_groups": [["03d01d746", "1fedbcc7a", "362e2dcc4", "595ab8a54", "882b7e728", "9de082399", "cbba6ba3a"]], "identity_text": "Correctly track the presence of data-modifying CTEs when expanding a DO INSTEAD rule (Greg Nancarrow, Tom Lane) The previous failure to do this could lead to problems such as unsafely choosing a parallel plan.", "commit_aliases": ["03d01d746", "1fedbcc7a", "362e2dcc4", "595ab8a54", "882b7e728", "9de082399", "cbba6ba3a"], "source_commits": ["cbba6ba3a"], "source_entry_id": "13.5/changes/034", "db_id": "ea32fbf02af669812d61b1a2b53dfd4c", "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf", "relations": [{"rule": 2, "type": "equivalent", "target": "0a4376a7c1aa202e64b47d72e3255bb3", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}, {"rule": 2, "type": "equivalent", "target": "564803e6c1db05d5ea401ac3487524e9", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}, {"rule": 2, "type": "equivalent", "target": "909e1f16e1911b23c664098f46c319d9", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}, {"rule": 2, "type": "equivalent", "target": "97b2e67152c79cd5cf728020b5a4bfc9", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "97b2e67152c79cd5cf728020b5a4bfc9", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=12.9#12.9-d816ab86053cc740", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "564803e6c1db05d5ea401ac3487524e9", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=11.14#11.14-3cecd7d848d6bee1", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "909e1f16e1911b23c664098f46c319d9", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=10.19#10.19-3cecd7d848d6bee1", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "0a4376a7c1aa202e64b47d72e3255bb3", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "在扩展使用 DO INSTEAD 的规则时，正确跟踪存在数据修改 CTE 的情况", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=9.6.24#9.6.24-9d403b0de29d5732", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-bc4d5f5f120a2193", "cves": [], "html": "<p>修复对扩展统计对象权限检查失败的不正确报告（Tomas Vondra）<a href=\"https://postgr.es/c/1fe1a04af\">§</a> <a href=\"https://postgr.es/c/c8213aa94\">§</a></p>\n<p>代码通常会产生 <span>“<span>cache lookup error</span>”</span>，而非预期的消息。</p>", "text": "修复对扩展统计对象权限检查失败的不正确报告（Tomas Vondra）§ § 代码通常会产生 “cache lookup error”，而非预期的消息。", "title": "修复对扩展统计对象权限检查失败的不正确报告", "commits": ["1fe1a04af", "c8213aa94"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "18163352290abcac4d05faaf2a6d9a9adc62b4606cf2c3f33bdcd3ff9003fae4", "section_path": ["变更"], "commit_groups": [["1fe1a04af", "5be8ce82e", "6c8b98669", "a371a5ba3", "b46ff4b50", "bfb732c0e"], ["4090ff2a9", "5f8dd5dc1", "628bc9d13", "6963e723f", "bce24d1ed", "c8213aa94"]], "identity_text": "Fix incorrect reporting of permissions failures on extended statistics objects (Tomas Vondra) The code typically produced cache lookup error rather than the intended message.", "commit_aliases": ["1fe1a04af", "4090ff2a9", "5be8ce82e", "5f8dd5dc1", "628bc9d13", "6963e723f", "6c8b98669", "a371a5ba3", "b46ff4b50", "bce24d1ed", "bfb732c0e", "c8213aa94"], "source_commits": ["1fe1a04af", "c8213aa94"], "source_entry_id": "13.5/changes/035", "db_id": "382b1d2e6230ec7755a070651620debf", "patch_ids": ["29e4ae3e045b7e0d41ce774edf4ba8ce", "5de3454d71258ad0b781741805131771"], "statement_hash": "9b966f0f75ad14cfd2673c2da2e412535a6ebdbeb5145095b02840fb8e8e6f8c", "relations": [{"rule": 2, "type": "equivalent", "target": "3c052641d2b09ba781a21fb0eff8aabb", "evidence": {"same_day": true, "patch_ids": ["29e4ae3e045b7e0d41ce774edf4ba8ce", "5de3454d71258ad0b781741805131771"], "statement_hash": "9b966f0f75ad14cfd2673c2da2e412535a6ebdbeb5145095b02840fb8e8e6f8c"}}, {"rule": 2, "type": "equivalent", "target": "87865de19516fc51526230ce01748d28", "evidence": {"same_day": true, "patch_ids": ["29e4ae3e045b7e0d41ce774edf4ba8ce", "5de3454d71258ad0b781741805131771"], "statement_hash": "9b966f0f75ad14cfd2673c2da2e412535a6ebdbeb5145095b02840fb8e8e6f8c"}}, {"rule": 2, "type": "equivalent", "target": "db03d04161d3427913472702103e9422", "evidence": {"same_day": true, "patch_ids": ["29e4ae3e045b7e0d41ce774edf4ba8ce", "5de3454d71258ad0b781741805131771"], "statement_hash": "9b966f0f75ad14cfd2673c2da2e412535a6ebdbeb5145095b02840fb8e8e6f8c"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3c052641d2b09ba781a21fb0eff8aabb", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复对扩展统计对象权限检查失败的不正确报告", "evidence": {"same_day": true, "patch_ids": ["29e4ae3e045b7e0d41ce774edf4ba8ce", "5de3454d71258ad0b781741805131771"], "statement_hash": "9b966f0f75ad14cfd2673c2da2e412535a6ebdbeb5145095b02840fb8e8e6f8c"}, "url": "/docs/compare/?release=12.9#12.9-46b7b5d63460599e", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "87865de19516fc51526230ce01748d28", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复对扩展统计对象权限检查失败的不正确报告", "evidence": {"same_day": true, "patch_ids": ["29e4ae3e045b7e0d41ce774edf4ba8ce", "5de3454d71258ad0b781741805131771"], "statement_hash": "9b966f0f75ad14cfd2673c2da2e412535a6ebdbeb5145095b02840fb8e8e6f8c"}, "url": "/docs/compare/?release=11.14#11.14-b6413ce357a93311", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "db03d04161d3427913472702103e9422", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复对扩展统计对象权限检查失败的不正确报告", "evidence": {"same_day": true, "patch_ids": ["29e4ae3e045b7e0d41ce774edf4ba8ce", "5de3454d71258ad0b781741805131771"], "statement_hash": "9b966f0f75ad14cfd2673c2da2e412535a6ebdbeb5145095b02840fb8e8e6f8c"}, "url": "/docs/compare/?release=10.19#10.19-b6413ce357a93311", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "13.5-da1f805242f84e49", "cves": [], "html": "<p>修复并行工作进程中不正确的快照处理（Greg Nancarrow）<a href=\"https://postgr.es/c/bc062cb93\">§</a></p>\n<p>如果事务隔离级别低于 <code>REPEATABLE READ</code>，这一疏漏可能导致并行查询行为异常。</p>", "text": "修复并行工作进程中不正确的快照处理（Greg Nancarrow）§ 如果事务隔离级别低于 REPEATABLE READ，这一疏漏可能导致并行查询行为异常。", "title": "修复并行工作进程中不正确的快照处理", "commits": ["bc062cb93"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "c1c0ddb2dbc495c26275a20d35853f69a719fbca7df1bac390289bb758224cb5", "section_path": ["变更"], "commit_groups": [["11c123988", "198cf81e2", "96f6ef9fe", "a780b2fcc", "bc062cb93", "f4b77e82e"]], "identity_text": "Fix incorrect snapshot handling in parallel workers (Greg Nancarrow) This oversight could lead to misbehavior in parallel queries if the transaction isolation level is less than REPEATABLE READ.", "commit_aliases": ["11c123988", "198cf81e2", "96f6ef9fe", "a780b2fcc", "bc062cb93", "f4b77e82e"], "source_commits": ["bc062cb93"], "source_entry_id": "13.5/changes/036", "db_id": "c2f86514a86d03924b9d27be98e11f24", "patch_ids": ["588edd010823e1d24df6b3505539f773"], "statement_hash": "ef850cdb0e677e33dd204853ee901a5756caa9295b033cd8061b8a02620dcfb5", "relations": [{"rule": 2, "type": "equivalent", "target": "15120c6c3761f9c3b05730dae2f77989", "evidence": {"same_day": true, "patch_ids": ["588edd010823e1d24df6b3505539f773"], "statement_hash": "ef850cdb0e677e33dd204853ee901a5756caa9295b033cd8061b8a02620dcfb5"}}, {"rule": 2, "type": "equivalent", "target": "2b5b732376aaa202e47855af32e60c95", "evidence": {"same_day": true, "patch_ids": ["588edd010823e1d24df6b3505539f773"], "statement_hash": "ef850cdb0e677e33dd204853ee901a5756caa9295b033cd8061b8a02620dcfb5"}}, {"rule": 2, "type": "equivalent", "target": "efafbe8e4af642c7295dd532b699b5d4", "evidence": {"same_day": true, "patch_ids": ["588edd010823e1d24df6b3505539f773"], "statement_hash": "ef850cdb0e677e33dd204853ee901a5756caa9295b033cd8061b8a02620dcfb5"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2b5b732376aaa202e47855af32e60c95", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复并行工作进程中不正确的快照处理", "evidence": {"same_day": true, "patch_ids": ["588edd010823e1d24df6b3505539f773"], "statement_hash": "ef850cdb0e677e33dd204853ee901a5756caa9295b033cd8061b8a02620dcfb5"}, "url": "/docs/compare/?release=12.9#12.9-7c6787a6e35238a0", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "efafbe8e4af642c7295dd532b699b5d4", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复并行工作进程中不正确的快照处理", "evidence": {"same_day": true, "patch_ids": ["588edd010823e1d24df6b3505539f773"], "statement_hash": "ef850cdb0e677e33dd204853ee901a5756caa9295b033cd8061b8a02620dcfb5"}, "url": "/docs/compare/?release=11.14#11.14-835680c0dd41dff2", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "15120c6c3761f9c3b05730dae2f77989", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复并行工作进程中不正确的快照处理", "evidence": {"same_day": true, "patch_ids": ["588edd010823e1d24df6b3505539f773"], "statement_hash": "ef850cdb0e677e33dd204853ee901a5756caa9295b033cd8061b8a02620dcfb5"}, "url": "/docs/compare/?release=10.19#10.19-835680c0dd41dff2", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "13.5-d8a8c323e1b8390d", "cves": [], "html": "<p>修复逻辑解码，使其正确忽略短暂表的 TOAST 表变更（Bertrand Drouvot）<a href=\"https://postgr.es/c/794025eff\">§</a></p>\n<p>逻辑解码通常会忽略短暂表中的变更，例如 <code>ALTER TABLE</code> 堆重写期间创建的表。但这一过滤没有应用于其关联的 TOAST 表（如果存在），因而在重写正在发布的表时可能出错。</p>", "text": "修复逻辑解码，使其正确忽略短暂表的 TOAST 表变更（Bertrand Drouvot）§ 逻辑解码通常会忽略短暂表中的变更，例如 ALTER TABLE 堆重写期间创建的表。但这一过滤没有应用于其关联的 TOAST 表（如果存在），因而在重写正在发布的表时可能出错。", "title": "修复逻辑解码，使其正确忽略短暂表的 TOAST 表变更", "commits": ["794025eff"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "4475c84b45927b8cf6846eb2015db02504dde3d4c6d276efde2cb757f7e36934", "section_path": ["变更"], "commit_groups": [["29b590547", "794025eff", "9d7a80ce0", "bfdbda24b", "e35705f54"]], "identity_text": "Fix logical decoding to correctly ignore toast-table changes for transient tables (Bertrand Drouvot) Logical decoding normally ignores changes in transient tables such as those created during an ALTER TABLE heap rewrite. But that filtering wasn't applied to the associated toast table if any, leading to possible errors when rewriting a table that's being published.", "commit_aliases": ["29b590547", "794025eff", "9d7a80ce0", "bfdbda24b", "e35705f54"], "source_commits": ["794025eff"], "source_entry_id": "13.5/changes/037", "db_id": "ef5d7280a52d97fdfbb7004d800d5114", "patch_ids": ["d24052c45e59d9b36b683c7b1202fcdd"], "statement_hash": "eab9adb00a2e44a80b37f8d25dde6f6c27b7901e4dddae19a0c7a2e3c735c1e6", "relations": [{"rule": 2, "type": "equivalent", "target": "4ef3b7d0d62922b6858c9da163c2be8e", "evidence": {"same_day": true, "patch_ids": ["d24052c45e59d9b36b683c7b1202fcdd"], "statement_hash": "eab9adb00a2e44a80b37f8d25dde6f6c27b7901e4dddae19a0c7a2e3c735c1e6"}}, {"rule": 2, "type": "equivalent", "target": "ab357d4bffce116d1f9f8ebbd066c82d", "evidence": {"same_day": true, "patch_ids": ["d24052c45e59d9b36b683c7b1202fcdd"], "statement_hash": "eab9adb00a2e44a80b37f8d25dde6f6c27b7901e4dddae19a0c7a2e3c735c1e6"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4ef3b7d0d62922b6858c9da163c2be8e", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复逻辑解码，使其正确忽略短暂表的 TOAST 表变更", "evidence": {"same_day": true, "patch_ids": ["d24052c45e59d9b36b683c7b1202fcdd"], "statement_hash": "eab9adb00a2e44a80b37f8d25dde6f6c27b7901e4dddae19a0c7a2e3c735c1e6"}, "url": "/docs/compare/?release=12.9#12.9-b8f72b331b1ed22b", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "ab357d4bffce116d1f9f8ebbd066c82d", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复逻辑解码，使其正确忽略短暂表的 TOAST 表变更", "evidence": {"same_day": true, "patch_ids": ["d24052c45e59d9b36b683c7b1202fcdd"], "statement_hash": "eab9adb00a2e44a80b37f8d25dde6f6c27b7901e4dddae19a0c7a2e3c735c1e6"}, "url": "/docs/compare/?release=11.14#11.14-a63700ba5f758e84", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}]}, {"id": "13.5-278564966bafe31e", "cves": [], "html": "<p>修复逻辑解码的内存用量统计，使其正确处理 TOAST 数据（Bertrand Drouvot）<a href=\"https://postgr.es/c/58cf794ca\">§</a></p>", "text": "修复逻辑解码的内存用量统计，使其正确处理 TOAST 数据（Bertrand Drouvot）§", "title": "修复逻辑解码的内存用量统计，使其正确处理 TOAST 数据", "commits": ["58cf794ca"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "179c2dba708b2312d4c95d830445491cef993e2fd0d8a784b3a8c4807590049a", "section_path": ["变更"], "commit_groups": [["58cf794ca", "df3640e52", "f5e0ff463"]], "identity_text": "Fix logical decoding's memory usage accounting to handle TOAST data correctly (Bertrand Drouvot)", "commit_aliases": ["58cf794ca", "df3640e52", "f5e0ff463"], "source_commits": ["58cf794ca"], "source_entry_id": "13.5/changes/038", "db_id": "0110748727667594e8e60ca60ebfbd99", "patch_ids": ["e7bb6533088adc31a7da4251562256d7"], "statement_hash": "4bdcb2690ca49b8b0474dd65e44f96e9c88154b7b1e1a2b7f84c162d17ab22c1", "relations": [], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.5-8d321f3fc937a37f", "cves": [], "html": "<p>确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件（Fujii Masao）<a href=\"https://postgr.es/c/dd9b3fced\">§</a></p>\n<p>如果 WAL 接收进程恰好在 WAL 段边界处退出，它就不会为最后接收的段创建通知文件，从而延迟该段在备库上的归档。</p>", "text": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件（Fujii Masao）§ 如果 WAL 接收进程恰好在 WAL 段边界处退出，它就不会为最后接收的段创建通知文件，从而延迟该段在备库上的归档。", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "commits": ["dd9b3fced"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "75792ced5ac0a21a6ffa526bc10db7d88cd88f5406ed553d6bab13c8ef0808f3", "section_path": ["变更"], "commit_groups": [["466535254", "596ba75cb", "61e2aa2db", "aacb3cfaf", "b5ec22bf5", "dd9b3fced", "f77489046"]], "identity_text": "Ensure that walreceiver processes create all required archive notification files before exiting (Fujii Masao) If a walreceiver exited exactly at a WAL segment boundary, it failed to make a notification file for the last-received segment, thus delaying archiving of that segment on the standby.", "commit_aliases": ["466535254", "596ba75cb", "61e2aa2db", "aacb3cfaf", "b5ec22bf5", "dd9b3fced", "f77489046"], "source_commits": ["dd9b3fced"], "source_entry_id": "13.5/changes/039", "db_id": "5ecd1622713295afe5325e4bcfead745", "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773", "relations": [{"rule": 2, "type": "equivalent", "target": "05e4a5dd4548e1babf402942954f6aec", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}, {"rule": 2, "type": "equivalent", "target": "570e6a7b74301e76effec9d7207286b2", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}, {"rule": 2, "type": "equivalent", "target": "60eb726588a2a97005b0cbf8a9144c09", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}, {"rule": 2, "type": "equivalent", "target": "65e3b6d584270d4556d9c65e10b466b0", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "05e4a5dd4548e1babf402942954f6aec", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=12.9#12.9-d6f6a0f8947bc443", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "65e3b6d584270d4556d9c65e10b466b0", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=11.14#11.14-e9ef48ebd8ccbc08", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "570e6a7b74301e76effec9d7207286b2", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=10.19#10.19-e9ef48ebd8ccbc08", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "60eb726588a2a97005b0cbf8a9144c09", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "确保 walreceiver 进程在退出之前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=9.6.24#9.6.24-54eb6f8205fc3dd0", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-8b7fc4fac482c355", "cves": [], "html": "<p>修复涉及时间线变更时对备份清单中应包含的 WAL 范围的计算（Kyotaro Horiguchi）<a href=\"https://postgr.es/c/29f942325\">§</a> <a href=\"https://postgr.es/c/d6d68e223\">§</a></p>", "text": "修复涉及时间线变更时对备份清单中应包含的 WAL 范围的计算（Kyotaro Horiguchi）§ §", "title": "修复涉及时间线变更时对备份清单中应包含的 WAL 范围的计算", "commits": ["29f942325", "d6d68e223"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "7c75c7d55d661442e0afba0e5228995fc9c7a81a41e7e43cee3df7fa520f2c82", "section_path": ["变更"], "commit_groups": [["29f942325", "65b649fec", "a3fcbcda7"], ["ae254356f", "d6d68e223", "ec2133a44"]], "identity_text": "Fix computation of the WAL range to include in a backup manifest when a timeline change is involved (Kyotaro Horiguchi)", "commit_aliases": ["29f942325", "65b649fec", "a3fcbcda7", "ae254356f", "d6d68e223", "ec2133a44"], "source_commits": ["29f942325", "d6d68e223"], "source_entry_id": "13.5/changes/040", "db_id": "f3177935ae653fda650c908cb9929bd2", "patch_ids": ["50fed08fb329972b6b3419a0e7cee0ef", "807dd1cd00e50b3e0fe410f63ed2cfde"], "statement_hash": "86d263a21eab92c1574d7e7998a892218657eec7c58a237044fdc2c6f2144897", "relations": [], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.5-318f460d557a7048", "cves": [], "html": "<p>避免尝试锁定使用 <code>SELECT FOR UPDATE</code> 的规则中的 <code>OLD</code> 和 <code>NEW</code> 伪关系（Masahiko Sawada，Tom Lane）<a href=\"https://postgr.es/c/7fa367d96\">§</a></p>", "text": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系（Masahiko Sawada，Tom Lane）§", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "commits": ["7fa367d96"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "0fda8c6f1b22384829a72ffbdf902ad93041ce19b65454db9e68387c80d219a0", "section_path": ["变更"], "commit_groups": [["0c13ee198", "2739a2810", "464900393", "7fa367d96", "8d2d6ec77", "cc7fae5c2", "fbc1eed8a"]], "identity_text": "Avoid trying to lock the OLD and NEW pseudo-relations in a rule that uses SELECT FOR UPDATE (Masahiko Sawada, Tom Lane)", "commit_aliases": ["0c13ee198", "2739a2810", "464900393", "7fa367d96", "8d2d6ec77", "cc7fae5c2", "fbc1eed8a"], "source_commits": ["7fa367d96"], "source_entry_id": "13.5/changes/041", "db_id": "39462c99ee92e6fbf700e8275c02d5f8", "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7", "relations": [{"rule": 2, "type": "equivalent", "target": "14c7b3a2b8155f7e2820c0cc1e8dd18a", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}, {"rule": 2, "type": "equivalent", "target": "28165fbc6b3b9618c7b7111677dd97f7", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}, {"rule": 2, "type": "equivalent", "target": "4f1b7383a2ae9a4d9d4ff94f8efcf494", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}, {"rule": 2, "type": "equivalent", "target": "6c7d070586d47d9e4ac0a14cda01b87f", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f1b7383a2ae9a4d9d4ff94f8efcf494", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=12.9#12.9-56669339e9e4b841", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "14c7b3a2b8155f7e2820c0cc1e8dd18a", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=11.14#11.14-935e0586b7b3777a", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "28165fbc6b3b9618c7b7111677dd97f7", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=10.19#10.19-935e0586b7b3777a", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "6c7d070586d47d9e4ac0a14cda01b87f", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "避免在使用 SELECT FOR UPDATE 的规则中尝试锁定 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=9.6.24#9.6.24-a6acd6c6780525b2", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-41bd70ef2b3eb66d", "cves": [], "html": "<p>修复解析器对聚合 <code>FILTER</code> 子句的处理（Tom Lane）<a href=\"https://postgr.es/c/ecd4dd9f1\">§</a></p>\n<p>如果 <code>FILTER</code> 表达式是普通的布尔列，聚合的语义层级可能被错误判定，从而产生不符合规范的行为。如果 <code>FILTER</code> 表达式本身是返回布尔值的聚合，本应抛出错误却没有，因而很可能在执行时崩溃。</p>", "text": "修复解析器对聚合 FILTER 子句的处理（Tom Lane）§ 如果 FILTER 表达式是普通的布尔列，聚合的语义层级可能被错误判定，从而产生不符合规范的行为。如果 FILTER 表达式本身是返回布尔值的聚合，本应抛出错误却没有，因而很可能在执行时崩溃。", "title": "修复解析器对聚合 FILTER 子句的处理", "commits": ["ecd4dd9f1"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "51d94265336dd66732c26b3d721877b83092dd41c8dcb8a0e0a5cb7a9ff382dc", "section_path": ["变更"], "commit_groups": [["2313dda9d", "61f9dae2c", "82ad7ecb4", "a65319f09", "c09f56fed", "eb2f59b34", "ecd4dd9f1"]], "identity_text": "Fix parser's processing of aggregate FILTER clauses (Tom Lane) If the FILTER expression is a plain boolean column, the semantic level of the aggregate could be mis-determined, leading to not-per-spec behavior. If the FILTER expression is itself a boolean-returning aggregate, an error should be thrown but was not, likely resulting in a crash at execution.", "commit_aliases": ["2313dda9d", "61f9dae2c", "82ad7ecb4", "a65319f09", "c09f56fed", "eb2f59b34", "ecd4dd9f1"], "source_commits": ["ecd4dd9f1"], "source_entry_id": "13.5/changes/042", "db_id": "60b81e312dd395c4c302758f033ae357", "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d", "relations": [{"rule": 2, "type": "equivalent", "target": "37ee40c887d80b0d9873d3eab1f7a09e", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}, {"rule": 2, "type": "equivalent", "target": "6dc94628aca27ac286ebe39f0461c9ff", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}, {"rule": 2, "type": "equivalent", "target": "bab3c9495a1ecfddebc528e663260838", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}, {"rule": 2, "type": "equivalent", "target": "f45531e529dca8d85db9a46a9cbf39e3", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "37ee40c887d80b0d9873d3eab1f7a09e", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复解析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=12.9#12.9-3b5a8c412fbb65ad", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "bab3c9495a1ecfddebc528e663260838", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复解析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=11.14#11.14-409f408bb5bfd268", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "6dc94628aca27ac286ebe39f0461c9ff", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复解析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=10.19#10.19-409f408bb5bfd268", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "f45531e529dca8d85db9a46a9cbf39e3", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复分析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=9.6.24#9.6.24-106e9180970765ca", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-5d2840a7c0a94139", "cves": [], "html": "<p>确保在重命名表时使用正确的锁级别（Nathan Bossart，Álvaro Herrera）<a href=\"https://postgr.es/c/842fe6123\">§</a> <a href=\"https://postgr.es/c/a73a3671d\">§</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": ["842fe6123", "a73a3671d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "fb6351cd0a190119b737ef0723898449ed576645247ffdfae579e3f96903c40b", "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": ["842fe6123", "a73a3671d"], "source_entry_id": "13.5/changes/043", "db_id": "8803d314f99553daa502212591405426", "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": "e1ff141933659df19b0a78178614a396", "evidence": {"same_day": true, "patch_ids": ["5af4dd3ba44595b1277d5abd09267b5e", "7707330d2b24d469e65c3a09be251410"], "statement_hash": "e873ae212ff6de72dd1fd182c85e7ae25043b726da428c0a0050451ccd4e9f4d"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e1ff141933659df19b0a78178614a396", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保在重命名表时使用正确的锁级别", "evidence": {"same_day": true, "patch_ids": ["5af4dd3ba44595b1277d5abd09267b5e", "7707330d2b24d469e65c3a09be251410"], "statement_hash": "e873ae212ff6de72dd1fd182c85e7ae25043b726da428c0a0050451ccd4e9f4d"}, "url": "/docs/compare/?release=14.1#14.1-242e7a9ab6962fa4", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"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": "13.5-1befda69a50e6d99", "cves": [], "html": "<p>防止 <code>ALTER TYPE/DOMAIN/OPERATOR ... SET</code> 改变扩展成员关系（Tom Lane）<a href=\"https://postgr.es/c/7b01246e1\">§</a></p>\n<p>扩展脚本执行 <code>ALTER ... SET</code> 时，如果目标对象尚不属于该扩展，就会使其成为扩展成员。这本身并不太令人困扰，因为扩展脚本几乎没有理由操作不属于该扩展的对象。但 <code>ALTER TYPE SET</code> 会递归处理依赖它的域，从而使这些域也成为扩展成员。如果扩展升级脚本使用该命令调整属于扩展的某个基础类型的属性，就会产生不希望的副作用。通过重新定义这些 <code>ALTER</code> 操作，使其永不改变扩展成员关系来修复此问题。</p>", "text": "防止 ALTER TYPE/DOMAIN/OPERATOR ... SET 改变扩展成员关系（Tom Lane）§ 扩展脚本执行 ALTER ... SET 时，如果目标对象尚不属于该扩展，就会使其成为扩展成员。这本身并不太令人困扰，因为扩展脚本几乎没有理由操作不属于该扩展的对象。但 ALTER TYPE SET 会递归处理依赖它的域，从而使这些域也成为扩展成员。如果扩展升级脚本使用该命令调整属于扩展的某个基础类型的属性，就会产生不希望的副作用。通过重新定义这些 ALTER 操作，使其永不改变扩展成员关系来修复此问题。", "title": "防止 ALTER TYPE/DOMAIN/OPERATOR ... SET 改变扩展成员关系", "commits": ["7b01246e1"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "331a4675c1fd2c8f0e3b0fe22aed547604de01d6cadda32cc57a93c16c1a06d8", "section_path": ["变更"], "commit_groups": [["6b71c925c", "7b01246e1", "8f51ee63d"]], "identity_text": "Prevent ALTER TYPE/DOMAIN/OPERATOR ... SET from changing extension membership (Tom Lane) ALTER ... SET executed by an extension script would cause the target object to become a member of the extension if it was not already. In itself this isn't too troubling, since there's little reason for an extension script to touch an object not belonging to the extension. But ALTER TYPE SET will recurse to dependent domains, thus causing them to also become extension members. This causes unwanted side-effects from extension upgrade scripts that use that command to adjust the properties of a base type belonging to the extension. Fix by redefining these ALTER cases to never change extension membership.", "commit_aliases": ["6b71c925c", "7b01246e1", "8f51ee63d"], "source_commits": ["7b01246e1"], "source_entry_id": "13.5/changes/044", "db_id": "7b71ffb51446e3c7460ee8d721ebd54a", "patch_ids": ["00051e395850dbf85f7ef9bbfe55cf59"], "statement_hash": "dc1f5844aeef24bceae0c3b0b3b42a77b974159c2ecee9c41dc905ffe0664fca", "relations": [], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.5-f041be9ff5b327a6", "cves": [], "html": "<p>避免在 LLVM 内部发生错误后尝试清理 LLVM 状态（Andres Freund，Justin Pryzby）<a href=\"https://postgr.es/c/c49e6f9d9\">§</a></p>\n<p>这可以防止 LLVM 发生致命错误后，后端退出时很可能出现的崩溃。</p>", "text": "避免在 LLVM 内部发生错误后尝试清理 LLVM 状态（Andres Freund，Justin Pryzby）§ 这可以防止 LLVM 发生致命错误后，后端退出时很可能出现的崩溃。", "title": "避免在 LLVM 内部发生错误后尝试清理 LLVM 状态", "commits": ["c49e6f9d9"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "ca782e29ffb80fdbb9d02cca7c675023cae67566764f43cf22459f6699da5d42", "section_path": ["变更"], "commit_groups": [["43849b65f", "4e86887e0", "c49e6f9d9", "dccffd9a2", "edb4d95dd"]], "identity_text": "Avoid trying to clean up LLVM state after an error within LLVM (Andres Freund, Justin Pryzby) This prevents a likely crash during backend exit after a fatal LLVM error.", "commit_aliases": ["43849b65f", "4e86887e0", "c49e6f9d9", "dccffd9a2", "edb4d95dd"], "source_commits": ["c49e6f9d9"], "source_entry_id": "13.5/changes/045", "db_id": "da7f2c3faf8133ac4368ae7817658c1b", "patch_ids": ["1c0060f4af38ca9748df7ad0240b2362"], "statement_hash": "3353fe2a89a81c34ffb64ac5c122262d47488f40868ba67012e6bcc1f430f646", "relations": [{"rule": 2, "type": "equivalent", "target": "38992b42fa24dbc4089ef73fc9199583", "evidence": {"same_day": true, "patch_ids": ["1c0060f4af38ca9748df7ad0240b2362"], "statement_hash": "3353fe2a89a81c34ffb64ac5c122262d47488f40868ba67012e6bcc1f430f646"}}, {"rule": 2, "type": "equivalent", "target": "cdf2308d41b14ae6c93bb3d82303ebac", "evidence": {"same_day": true, "patch_ids": ["1c0060f4af38ca9748df7ad0240b2362"], "statement_hash": "3353fe2a89a81c34ffb64ac5c122262d47488f40868ba67012e6bcc1f430f646"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cdf2308d41b14ae6c93bb3d82303ebac", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免在 LLVM 内部发生错误后尝试清理 LLVM 状态", "evidence": {"same_day": true, "patch_ids": ["1c0060f4af38ca9748df7ad0240b2362"], "statement_hash": "3353fe2a89a81c34ffb64ac5c122262d47488f40868ba67012e6bcc1f430f646"}, "url": "/docs/compare/?release=12.9#12.9-f640017f3b5cc126", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "38992b42fa24dbc4089ef73fc9199583", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免在 LLVM 内部发生错误后尝试清理 LLVM 状态", "evidence": {"same_day": true, "patch_ids": ["1c0060f4af38ca9748df7ad0240b2362"], "statement_hash": "3353fe2a89a81c34ffb64ac5c122262d47488f40868ba67012e6bcc1f430f646"}, "url": "/docs/compare/?release=11.14#11.14-bec53cee20e3ea8e", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}]}, {"id": "13.5-96d1210694672ff3", "cves": [], "html": "<p>避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃（Álvaro Herrera）<a href=\"https://postgr.es/c/bf5cdcfd5\">§</a></p>", "text": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃（Álvaro Herrera）§", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "commits": ["bf5cdcfd5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "943b52fa78bfa4a8a0a92855b6ed9c3e0451663ae8ea371d16d6e49c4dd3bf73", "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": ["bf5cdcfd5"], "source_entry_id": "13.5/changes/046", "db_id": "d415d54f26d7e6277ddb652d13db5914", "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": "8d7f7c8ab514055c493684736147c915", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8d7f7c8ab514055c493684736147c915", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=14.1#14.1-fe52717b9f6be91d", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-e1d4ba1245f74980", "cves": [], "html": "<p>防止当 <code>lo_export()</code> 或相关函数失败时出现 <span>“<span>snapshot reference leak</span>”</span> 警告（Heikki Linnakangas）<a href=\"https://postgr.es/c/07070c008\">§</a> <a href=\"https://postgr.es/c/b7299b664\">§</a></p>", "text": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告（Heikki Linnakangas）§ §", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "commits": ["07070c008", "b7299b664"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "96259d9c0aec7013a7f78f213246d1f688948935b5dce9d93514be438b70514d", "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": ["07070c008", "b7299b664"], "source_entry_id": "13.5/changes/047", "db_id": "c0209306d827d4e581002c9286a68081", "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd", "relations": [{"rule": 2, "type": "equivalent", "target": "54f8f4cdbbab4d6977845dbc56c9ce67", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}}, {"rule": 2, "type": "equivalent", "target": "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": "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": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "54f8f4cdbbab4d6977845dbc56c9ce67", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=14.1#14.1-32c0f62eebd60c3a", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-356c04282e59b8ee", "cves": [], "html": "<p>确保统计视图会计入对 SP-GiST 索引的扫描（Tom Lane）<a href=\"https://postgr.es/c/dbb239d51\">§</a></p>\n<p>SP-GiST 代码遗漏了递增索引扫描次数计数器的操作，虽然逐元组计数器已被正确递增。</p>", "text": "确保统计视图会计入对 SP-GiST 索引的扫描（Tom Lane）§ SP-GiST 代码遗漏了递增索引扫描次数计数器的操作，虽然逐元组计数器已被正确递增。", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "commits": ["dbb239d51"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "b17545682a020b8c93199a06a68707880b50a176f1aa80cafa082ffa23c51d3a", "section_path": ["变更"], "commit_groups": [["187b5fea9", "3778bcb39", "6a787c83c", "7c1b0f4c3", "9e959f7ed", "dbb239d51", "e84d4810c"]], "identity_text": "Ensure that scans of SP-GiST indexes are counted in the statistics views (Tom Lane) Incrementing the number-of-index-scans counter was overlooked in the SP-GiST code, although per-tuple counters were advanced correctly.", "commit_aliases": ["187b5fea9", "3778bcb39", "6a787c83c", "7c1b0f4c3", "9e959f7ed", "dbb239d51", "e84d4810c"], "source_commits": ["dbb239d51"], "source_entry_id": "13.5/changes/048", "db_id": "ce05ddfd43e3231b0aee2bf7ec3320dd", "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564", "relations": [{"rule": 2, "type": "equivalent", "target": "14b9ceb5caddd235bba393b75ded5652", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}, {"rule": 2, "type": "equivalent", "target": "1ed381a09ab2673593aaf6a25c574db4", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}, {"rule": 2, "type": "equivalent", "target": "877dd2a0338013867a07285282d7baf5", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}, {"rule": 2, "type": "equivalent", "target": "fb5ead0cfbecc7b79b44473cbaec8eda", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "877dd2a0338013867a07285282d7baf5", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=12.9#12.9-4acf5088ea8dfabe", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "14b9ceb5caddd235bba393b75ded5652", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=11.14#11.14-e97fe7a665dd0f08", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "fb5ead0cfbecc7b79b44473cbaec8eda", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=10.19#10.19-e97fe7a665dd0f08", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "1ed381a09ab2673593aaf6a25c574db4", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "确保 SP-GiST 索引的扫描被计入统计视图", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=9.6.24#9.6.24-505dc93f466cfacb", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-d30cec3801e776e4", "cves": [], "html": "<p>修复 CoerceToDomain 表达式节点的低效代码生成（Ranier Vilela）<a href=\"https://postgr.es/c/ada667b45\">§</a></p>", "text": "修复 CoerceToDomain 表达式节点的低效代码生成（Ranier Vilela）§", "title": "修复 CoerceToDomain 表达式节点的低效代码生成", "commits": ["ada667b45"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "26604f2ca04cd27c67c1bb076f0466d6e991c6306fc6855b29a14368f9937fe3", "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": ["ada667b45"], "source_entry_id": "13.5/changes/049", "db_id": "d6fc8bfc4a494e7c18d4e39439586639", "patch_ids": ["e00772351961b10c78acd181f8ecdde2"], "statement_hash": "a1c5fe7880e565a807b94873a4c049a6abe9e53ba88bac79354d4af970c575b5", "relations": [{"rule": 2, "type": "equivalent", "target": "207dd2ab9bf4c6a7fe645c9332e236b7", "evidence": {"same_day": true, "patch_ids": ["e00772351961b10c78acd181f8ecdde2"], "statement_hash": "a1c5fe7880e565a807b94873a4c049a6abe9e53ba88bac79354d4af970c575b5"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "207dd2ab9bf4c6a7fe645c9332e236b7", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 CoerceToDomain 表达式节点的低效代码生成", "evidence": {"same_day": true, "patch_ids": ["e00772351961b10c78acd181f8ecdde2"], "statement_hash": "a1c5fe7880e565a807b94873a4c049a6abe9e53ba88bac79354d4af970c575b5"}, "url": "/docs/compare/?release=14.1#14.1-a49e28d7193d3b4e", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}]}, {"id": "13.5-95e96eb9b06aa0aa", "cves": [], "html": "<p>如果在恢复期间修改 <code>recovery_min_apply_delay</code>，则重新计算相关等待间隔（Soumyadeep Chakraborty，Ashwin Agrawal）<a href=\"https://postgr.es/c/7f0873f32\">§</a></p>", "text": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔（Soumyadeep Chakraborty，Ashwin Agrawal）§", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "commits": ["7f0873f32"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "de6fc36da96ace7de84456ca5ee3f1ac21fc126d51812430e1434d9d955087a8", "section_path": ["变更"], "commit_groups": [["024fd44e0", "7f0873f32", "84c1bac57", "942416f4b", "d392e86fa", "e4ba1005c", "f83d80ea1"]], "identity_text": "Recalculate relevant wait intervals if recovery_min_apply_delay is changed during recovery (Soumyadeep Chakraborty, Ashwin Agrawal)", "commit_aliases": ["024fd44e0", "7f0873f32", "84c1bac57", "942416f4b", "d392e86fa", "e4ba1005c", "f83d80ea1"], "source_commits": ["7f0873f32"], "source_entry_id": "13.5/changes/050", "db_id": "5ceda1b54fe8a64600b433abac805875", "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe", "relations": [{"rule": 2, "type": "equivalent", "target": "082bad8bae7c912abd9bc380d3c50dd7", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}, {"rule": 2, "type": "equivalent", "target": "3a609503e41f557ed818fd1a05265e4b", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}, {"rule": 2, "type": "equivalent", "target": "6fac8b5c87112931307fa495a23cc0e5", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}, {"rule": 2, "type": "equivalent", "target": "b25321b0e53c0862f3d2d36d1eaf0adb", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "082bad8bae7c912abd9bc380d3c50dd7", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=12.9#12.9-024ce04e4ac42538", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "3a609503e41f557ed818fd1a05265e4b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=11.14#11.14-ab35cad87ebb872b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "b25321b0e53c0862f3d2d36d1eaf0adb", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=10.19#10.19-ab35cad87ebb872b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "6fac8b5c87112931307fa495a23cc0e5", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "如果恢复期间更改了 recovery_min_apply_delay，重新计算相关的等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=9.6.24#9.6.24-5cb3861d83c7e02e", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-6d60d6f3c8ff9111", "cves": [], "html": "<p>修复 <code>simplehash.h</code> hash 表达到 2^32 个元素时的无限循环（Yura Sokolov）<a href=\"https://postgr.es/c/4873da79d\">§</a></p>\n<p>此缺陷似乎不太可能在实践中被触发，因为就 <code>simplehash.h</code> 的现有用途而言，需要将 <code>work_mem</code> 设置为数百 GB 才会出现。</p>", "text": "修复 simplehash.h hash 表达到 2^32 个元素时的无限循环（Yura Sokolov）§ 此缺陷似乎不太可能在实践中被触发，因为就 simplehash.h 的现有用途而言，需要将 work_mem 设置为数百 GB 才会出现。", "title": "修复 simplehash.h hash 表达到 2^32 个元素时的无限循环", "commits": ["4873da79d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "fb125f37533258d04cd395864b45d587cc027765d2f9c2f31a822b1aeb7bde80", "section_path": ["变更"], "commit_groups": [["37450f2ca", "4873da79d", "4874886b4", "5a6b0f21e", "75d8fe818", "dc23c77d0"]], "identity_text": "Fix infinite loop if a simplehash.h hash table reaches 2^32 elements (Yura Sokolov) It seems unlikely that this bug has been hit in practice, as it would require work_mem settings of hundreds of gigabytes for existing uses of simplehash.h.", "commit_aliases": ["37450f2ca", "4873da79d", "4874886b4", "5a6b0f21e", "75d8fe818", "dc23c77d0"], "source_commits": ["4873da79d"], "source_entry_id": "13.5/changes/051", "db_id": "337dd894708e37a849e9dd4d4d48cc52", "patch_ids": ["5caa4b104645da585c35e7115e41c0d6"], "statement_hash": "0a6de9130f3b4fcdcd7eb4e60038e7c770f4a8df34847588e282fe0ab1070e3e", "relations": [{"rule": 2, "type": "equivalent", "target": "2bcbc438cc605707c94b1fedafc02dcb", "evidence": {"same_day": true, "patch_ids": ["5caa4b104645da585c35e7115e41c0d6"], "statement_hash": "0a6de9130f3b4fcdcd7eb4e60038e7c770f4a8df34847588e282fe0ab1070e3e"}}, {"rule": 2, "type": "equivalent", "target": "60f44cf8a5e9d7c0b9a187bf50166365", "evidence": {"same_day": true, "patch_ids": ["5caa4b104645da585c35e7115e41c0d6"], "statement_hash": "0a6de9130f3b4fcdcd7eb4e60038e7c770f4a8df34847588e282fe0ab1070e3e"}}, {"rule": 2, "type": "equivalent", "target": "c94982c308c25e162f884702c165ce07", "evidence": {"same_day": true, "patch_ids": ["5caa4b104645da585c35e7115e41c0d6"], "statement_hash": "0a6de9130f3b4fcdcd7eb4e60038e7c770f4a8df34847588e282fe0ab1070e3e"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c94982c308c25e162f884702c165ce07", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 simplehash.h hash 表达到 2^32 个元素时的无限循环", "evidence": {"same_day": true, "patch_ids": ["5caa4b104645da585c35e7115e41c0d6"], "statement_hash": "0a6de9130f3b4fcdcd7eb4e60038e7c770f4a8df34847588e282fe0ab1070e3e"}, "url": "/docs/compare/?release=12.9#12.9-b263cdb1f1032ad1", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "60f44cf8a5e9d7c0b9a187bf50166365", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 simplehash.h hash 表达到 2^32 个元素时的无限循环", "evidence": {"same_day": true, "patch_ids": ["5caa4b104645da585c35e7115e41c0d6"], "statement_hash": "0a6de9130f3b4fcdcd7eb4e60038e7c770f4a8df34847588e282fe0ab1070e3e"}, "url": "/docs/compare/?release=11.14#11.14-f2ab9ca223cb219a", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "2bcbc438cc605707c94b1fedafc02dcb", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 simplehash.h hash 表达到 2^32 个元素时的无限循环", "evidence": {"same_day": true, "patch_ids": ["5caa4b104645da585c35e7115e41c0d6"], "statement_hash": "0a6de9130f3b4fcdcd7eb4e60038e7c770f4a8df34847588e282fe0ab1070e3e"}, "url": "/docs/compare/?release=10.19#10.19-f2ab9ca223cb219a", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "13.5-97de81c9a7d9dddb", "cves": [], "html": "<p>避免某些列表操作中的 O(N^2) 行为（Nathan Bossart，Tom Lane）<a href=\"https://postgr.es/c/df238aed1\">§</a> <a href=\"https://postgr.es/c/e477642a1\">§</a> <a href=\"https://postgr.es/c/0151af40c\">§</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": ["0151af40c", "df238aed1", "e477642a1"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "74f70942616e602d1f1fa95c8f9fb569f8545c93c9d365d528f14ba8bd09762a", "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": ["0151af40c", "df238aed1", "e477642a1"], "source_entry_id": "13.5/changes/052", "db_id": "87c5589514aaaee5fad9967df54c3e7e", "patch_ids": ["614f547d27c1ad1c11b465de9f0e03c6", "9e78b504bb7ffae0edae96387762399c", "b0266ad8a09f245c5bd2f05fa06a0b1d"], "statement_hash": "c9c47097ae399a29fd2fb79d51f9c3b898c3b63e7edf422dafc069ad8df41e43", "relations": [{"rule": 2, "type": "equivalent", "target": "6312597b2992d1da52bdcf087cecf677", "evidence": {"same_day": true, "patch_ids": ["614f547d27c1ad1c11b465de9f0e03c6", "9e78b504bb7ffae0edae96387762399c", "b0266ad8a09f245c5bd2f05fa06a0b1d"], "statement_hash": "c9c47097ae399a29fd2fb79d51f9c3b898c3b63e7edf422dafc069ad8df41e43"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6312597b2992d1da52bdcf087cecf677", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "避免某些列表操作中的 O(N^2) 行为", "evidence": {"same_day": true, "patch_ids": ["614f547d27c1ad1c11b465de9f0e03c6", "9e78b504bb7ffae0edae96387762399c", "b0266ad8a09f245c5bd2f05fa06a0b1d"], "statement_hash": "c9c47097ae399a29fd2fb79d51f9c3b898c3b63e7edf422dafc069ad8df41e43"}, "url": "/docs/compare/?release=14.1#14.1-f8faaa1015188410", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}]}, {"id": "13.5-a6976ad5c7768633", "cves": [], "html": "<p>减少计算扩展统计信息时的内存消耗（Justin Pryzby，Tomas Vondra）<a href=\"https://postgr.es/c/b564eb018\">§</a> <a href=\"https://postgr.es/c/c0386f403\">§</a></p>", "text": "减少计算扩展统计信息时的内存消耗（Justin Pryzby，Tomas Vondra）§ §", "title": "减少计算扩展统计信息时的内存消耗", "commits": ["b564eb018", "c0386f403"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "77bfac52797dc2cee7faf137b154cdde2bd788c3464ee3fe27389be7b89ad964", "section_path": ["变更"], "commit_groups": [["16d394c05", "3aac99068", "83772cc78", "ac7290a20", "b564eb018", "bb7628e55"], ["4185632e9", "4487a7def", "abb2f9144", "ad8a166ca", "c0386f403", "d77e085af"]], "identity_text": "Reduce memory consumption during calculation of extended statistics (Justin Pryzby, Tomas Vondra)", "commit_aliases": ["16d394c05", "3aac99068", "4185632e9", "4487a7def", "83772cc78", "abb2f9144", "ac7290a20", "ad8a166ca", "b564eb018", "bb7628e55", "c0386f403", "d77e085af"], "source_commits": ["b564eb018", "c0386f403"], "source_entry_id": "13.5/changes/053", "db_id": "116c8e993578b3bf2745b26ef95ddf29", "patch_ids": ["9130df328539d846fbc22c8dc3b83da0", "f3cfa6d524141549163fcaff51f509e8"], "statement_hash": "d74bb0421594d1bd98d7451a250090e05a7f1333a953ba82715253e789c2268e", "relations": [{"rule": 2, "type": "equivalent", "target": "145a080f5d63f228160e10dd86250005", "evidence": {"same_day": true, "patch_ids": ["9130df328539d846fbc22c8dc3b83da0", "f3cfa6d524141549163fcaff51f509e8"], "statement_hash": "d74bb0421594d1bd98d7451a250090e05a7f1333a953ba82715253e789c2268e"}}, {"rule": 2, "type": "equivalent", "target": "75d69a36f3d785590f5a2a67d440d1dd", "evidence": {"same_day": true, "patch_ids": ["9130df328539d846fbc22c8dc3b83da0", "f3cfa6d524141549163fcaff51f509e8"], "statement_hash": "d74bb0421594d1bd98d7451a250090e05a7f1333a953ba82715253e789c2268e"}}, {"rule": 2, "type": "equivalent", "target": "9f0cafec244548ad0f630504d62d2d0b", "evidence": {"same_day": true, "patch_ids": ["9130df328539d846fbc22c8dc3b83da0", "f3cfa6d524141549163fcaff51f509e8"], "statement_hash": "d74bb0421594d1bd98d7451a250090e05a7f1333a953ba82715253e789c2268e"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "75d69a36f3d785590f5a2a67d440d1dd", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "减少计算扩展统计信息时的内存消耗", "evidence": {"same_day": true, "patch_ids": ["9130df328539d846fbc22c8dc3b83da0", "f3cfa6d524141549163fcaff51f509e8"], "statement_hash": "d74bb0421594d1bd98d7451a250090e05a7f1333a953ba82715253e789c2268e"}, "url": "/docs/compare/?release=12.9#12.9-d81635d81cfc69ec", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "9f0cafec244548ad0f630504d62d2d0b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "减少计算扩展统计信息时的内存消耗", "evidence": {"same_day": true, "patch_ids": ["9130df328539d846fbc22c8dc3b83da0", "f3cfa6d524141549163fcaff51f509e8"], "statement_hash": "d74bb0421594d1bd98d7451a250090e05a7f1333a953ba82715253e789c2268e"}, "url": "/docs/compare/?release=11.14#11.14-fd6dc82784155e0d", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "145a080f5d63f228160e10dd86250005", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "减少计算扩展统计信息时的内存消耗", "evidence": {"same_day": true, "patch_ids": ["9130df328539d846fbc22c8dc3b83da0", "f3cfa6d524141549163fcaff51f509e8"], "statement_hash": "d74bb0421594d1bd98d7451a250090e05a7f1333a953ba82715253e789c2268e"}, "url": "/docs/compare/?release=10.19#10.19-fd6dc82784155e0d", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "13.5-e28b032e26aed975", "cves": [], "html": "<p>增加更多围绕 B-树倒排列表分裂的防御性检查（Peter Geoghegan）<a href=\"https://postgr.es/c/f8cce4a3d\">§</a> <a href=\"https://postgr.es/c/d5a2ffbce\">§</a></p>\n<p>此更改应有助于检测涉及重复表 TID 的索引损坏。</p>", "text": "增加更多围绕 B-树倒排列表分裂的防御性检查（Peter Geoghegan）§ § 此更改应有助于检测涉及重复表 TID 的索引损坏。", "title": "增加更多围绕 B-树倒排列表分裂的防御性检查", "commits": ["d5a2ffbce", "f8cce4a3d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "ee672e7e1eb6c9ab29c3b2fd7c25e3f9b206f68fa88942abedf65cc0234e5386", "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": ["d5a2ffbce", "f8cce4a3d"], "source_entry_id": "13.5/changes/054", "db_id": "4b6dcbf19c3ccbc0c8e7b43e73901429", "patch_ids": ["6da8e069984f7b07333e8314159f2eaf", "6f716a8849b639c891eddddddb8d02cb"], "statement_hash": "14abe034c2ba3578a60059afaaca2d3585eb3bae5a4cf9f808140b4097c16a92", "relations": [{"rule": 2, "type": "equivalent", "target": "050722d3037fda9b41bc4303d82929af", "evidence": {"same_day": true, "patch_ids": ["6da8e069984f7b07333e8314159f2eaf", "6f716a8849b639c891eddddddb8d02cb"], "statement_hash": "14abe034c2ba3578a60059afaaca2d3585eb3bae5a4cf9f808140b4097c16a92"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "050722d3037fda9b41bc4303d82929af", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "增加更多围绕 B-树倒排列表分裂的防御性检查", "evidence": {"same_day": true, "patch_ids": ["6da8e069984f7b07333e8314159f2eaf", "6f716a8849b639c891eddddddb8d02cb"], "statement_hash": "14abe034c2ba3578a60059afaaca2d3585eb3bae5a4cf9f808140b4097c16a92"}, "url": "/docs/compare/?release=14.1#14.1-92a9feddae08626e", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}]}, {"id": "13.5-cff690b74dcb510d", "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/24b7cf8a5\">§</a></p>\n<p>之前此设置会被接受，但由于缺乏实现而不起作用。</p>", "text": "当 shared_memory_type 为 sysv 时，禁止将 huge_pages 设置为 on（Thomas Munro）§ 之前此设置会被接受，但由于缺乏实现而不起作用。", "title": "当 shared_memory_type 为 sysv 时，禁止将 huge_pages 设置为 on", "commits": ["24b7cf8a5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "37a6c54049c45bd3c51b31b339bb62bbbbba654ba26b40be7338e9eb969d24e4", "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": ["24b7cf8a5"], "source_entry_id": "13.5/changes/055", "db_id": "5274288c014fdba692c1ad6944761e1a", "patch_ids": ["65b27634df785f08a29f5f0ac496d0b5"], "statement_hash": "e3877ac618bd72ea69ccfb02224c7cea5d59d924deee79639b8799136a85d1f1", "relations": [{"rule": 2, "type": "equivalent", "target": "9bbf6e472e540a2d6bba4afe14ce44eb", "evidence": {"same_day": true, "patch_ids": ["65b27634df785f08a29f5f0ac496d0b5"], "statement_hash": "e3877ac618bd72ea69ccfb02224c7cea5d59d924deee79639b8799136a85d1f1"}}, {"rule": 2, "type": "equivalent", "target": "cd31848f2070789c71d103414d584251", "evidence": {"same_day": true, "patch_ids": ["65b27634df785f08a29f5f0ac496d0b5"], "statement_hash": "e3877ac618bd72ea69ccfb02224c7cea5d59d924deee79639b8799136a85d1f1"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cd31848f2070789c71d103414d584251", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "当 shared_memory_type 为 sysv 时，禁止将 huge_pages 设置为 on", "evidence": {"same_day": true, "patch_ids": ["65b27634df785f08a29f5f0ac496d0b5"], "statement_hash": "e3877ac618bd72ea69ccfb02224c7cea5d59d924deee79639b8799136a85d1f1"}, "url": "/docs/compare/?release=14.1#14.1-eb3909d043258815", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"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": "13.5-33f2b36b18d83f2b", "cves": [], "html": "<p>修复 AIX 上缺失的 <span>libpq</span> 函数（Tony Reix）<a href=\"https://postgr.es/c/aae398a87\">§</a></p>\n<p>代码重组导致 AIX 上的 <span>libpq</span> 没有导出以下已记录在文档中的函数：<code>pg_encoding_to_char()</code>、<code>pg_utf_mblen()</code>、<code>pg_char_to_encoding()</code>、<code>pg_valid_server_encoding()</code> 和 <code>pg_valid_server_encoding_id()</code>。现在恢复这些函数的可见性。</p>", "text": "修复 AIX 上缺失的 libpq 函数（Tony Reix）§ 代码重组导致 AIX 上的 libpq 没有导出以下已记录在文档中的函数：pg_encoding_to_char()、pg_utf_mblen()、pg_char_to_encoding()、pg_valid_server_encoding() 和 pg_valid_server_encoding_id()。现在恢复这些函数的可见性。", "title": "修复 AIX 上缺失的 libpq 函数", "commits": ["aae398a87"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "e871db5208d61a1d0fbe8def188c2e280f111388fbf3bfe599b9031fb88c398a", "section_path": ["变更"], "commit_groups": [["47d54b6ba", "8670b9b99", "aae398a87"]], "identity_text": "Fix missing libpq functions on AIX (Tony Reix) Code reorganization led to the following documented functions not being exported from libpq on AIX: pg_encoding_to_char(), pg_utf_mblen(), pg_char_to_encoding(), pg_valid_server_encoding(), and pg_valid_server_encoding_id(). Restore them to visibility.", "commit_aliases": ["47d54b6ba", "8670b9b99", "aae398a87"], "source_commits": ["aae398a87"], "source_entry_id": "13.5/changes/056", "db_id": "776e89c3f7a62c2f2821590374abf822", "patch_ids": ["21e741a9405dd94ead727d8ba8ffe86f"], "statement_hash": "fdacde4d44fabfdd0febbef6882a2ece129d0eefc57247d10a46df30ab18a6e1", "relations": [], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.5-c7da596d7055c9dd", "cves": [], "html": "<p>修复 <span>ecpg</span>，使其在建立连接期间 <code>malloc()</code> 失败后能够正确恢复（Michael Paquier）<a href=\"https://postgr.es/c/b589d212f\">§</a></p>", "text": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复（Michael Paquier）§", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "commits": ["b589d212f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "acd1087e9aec34c95f6244f6cfc0f7bfc34e7c55e9bf52f24a82e4cb3d21fefb", "section_path": ["变更"], "commit_groups": [["3768c468d", "83a3737a6", "b34dcf87f", "b589d212f", "b6a10ff4a", "cc057fb31", "fa703b317"]], "identity_text": "Fix ecpg to recover correctly after malloc() failure while establishing a connection (Michael Paquier)", "commit_aliases": ["3768c468d", "83a3737a6", "b34dcf87f", "b589d212f", "b6a10ff4a", "cc057fb31", "fa703b317"], "source_commits": ["b589d212f"], "source_entry_id": "13.5/changes/057", "db_id": "cfe3688e5f0c61eb1dd8b2914e6a061a", "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888", "relations": [{"rule": 2, "type": "equivalent", "target": "70d957f7da6a0d4ff9a54196768faf98", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}, {"rule": 2, "type": "equivalent", "target": "76ef5811ec79e51e7476b872d7284aea", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}, {"rule": 2, "type": "equivalent", "target": "d53fb177e7d08ab01574498c67f0a370", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}, {"rule": 2, "type": "equivalent", "target": "e860219fe57c764e16b8972133d2c395", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "76ef5811ec79e51e7476b872d7284aea", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=12.9#12.9-51ed3abe86fc6d7c", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "e860219fe57c764e16b8972133d2c395", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=11.14#11.14-d649e65ae9bc38ea", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "70d957f7da6a0d4ff9a54196768faf98", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=10.19#10.19-d649e65ae9bc38ea", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "d53fb177e7d08ab01574498c67f0a370", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复 ecpg 在建立连接期间 malloc() 失败后不能正确恢复的问题", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=9.6.24#9.6.24-fffabbaca1a8c849", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-672ed347e95aa3f6", "cves": [], "html": "<p>修复 PL/pgSQL <code>CALL</code> 语句参数中调用的稳定函数被错误求值的问题（Tom Lane）<a href=\"https://postgr.es/c/5f0a073cb\">§</a></p>\n<p>这些函数调用时使用了过期的快照，因此无法看到自会话顶层命令开始以来的任何数据库变更。</p>", "text": "修复 PL/pgSQL CALL 语句参数中调用的稳定函数被错误求值的问题（Tom Lane）§ 这些函数调用时使用了过期的快照，因此无法看到自会话顶层命令开始以来的任何数据库变更。", "title": "修复 PL/pgSQL CALL 语句参数中调用的稳定函数被错误求值的问题", "commits": ["5f0a073cb"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "955087a986d24b9e62caccdfe6410a2e09dd256a27308feabba41dbb8f54ca28", "section_path": ["变更"], "commit_groups": [["13921c511", "2ad5f963e", "4476bcb87", "5f0a073cb", "e8b0bcae6"]], "identity_text": "Fix misevaluation of stable functions called in the arguments of a PL/pgSQL CALL statement (Tom Lane) They were being called with an out-of-date snapshot, so that they would not see any database changes made since the start of the session's top-level command.", "commit_aliases": ["13921c511", "2ad5f963e", "4476bcb87", "5f0a073cb", "e8b0bcae6"], "source_commits": ["5f0a073cb"], "source_entry_id": "13.5/changes/058", "db_id": "4821fd93b5ffd365e44a9cac04962b1b", "patch_ids": ["43380361dded57b5abb21673f2679abd"], "statement_hash": "4b068789bc1c3405358598a877587eaf0f276c251a309236a0a8e3a9f6a8fc65", "relations": [{"rule": 2, "type": "equivalent", "target": "7a20dc851afdc5589e4bcf26e7b22eca", "evidence": {"same_day": true, "patch_ids": ["43380361dded57b5abb21673f2679abd"], "statement_hash": "4b068789bc1c3405358598a877587eaf0f276c251a309236a0a8e3a9f6a8fc65"}}, {"rule": 2, "type": "equivalent", "target": "95addb37ea00ffbbf851cfa83883c4fd", "evidence": {"same_day": true, "patch_ids": ["43380361dded57b5abb21673f2679abd"], "statement_hash": "4b068789bc1c3405358598a877587eaf0f276c251a309236a0a8e3a9f6a8fc65"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7a20dc851afdc5589e4bcf26e7b22eca", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 PL/pgSQL CALL 语句参数中调用的稳定函数被错误求值的问题", "evidence": {"same_day": true, "patch_ids": ["43380361dded57b5abb21673f2679abd"], "statement_hash": "4b068789bc1c3405358598a877587eaf0f276c251a309236a0a8e3a9f6a8fc65"}, "url": "/docs/compare/?release=12.9#12.9-36d1e40deaf788b7", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "95addb37ea00ffbbf851cfa83883c4fd", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 PL/pgSQL CALL 语句参数中调用的稳定函数被错误求值的问题", "evidence": {"same_day": true, "patch_ids": ["43380361dded57b5abb21673f2679abd"], "statement_hash": "4b068789bc1c3405358598a877587eaf0f276c251a309236a0a8e3a9f6a8fc65"}, "url": "/docs/compare/?release=11.14#11.14-da0bae29f0b0b44d", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}]}, {"id": "13.5-69e6e3fb4131e872", "cves": [], "html": "<p>允许使用 <code>EXIT</code> 退出 PL/pgSQL 例程的最外层块（Tom Lane）<a href=\"https://postgr.es/c/745abdd95\">§</a></p>\n<p>如果例程不要求显式 <code>RETURN</code>，这种用法应该有效，但以前会被拒绝。</p>", "text": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块（Tom Lane）§ 如果例程不要求显式 RETURN，这种用法应该有效，但以前会被拒绝。", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "commits": ["745abdd95"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "eba4454aa9c06a0c7d38f980641907a9959f1568236d945eafa20ee5a8eb5dc6", "section_path": ["变更"], "commit_groups": [["1bf2518dd", "4ffd3fe4d", "745abdd95", "a460f7eb3", "b1de90699", "bdd6ce48d", "fe70ec907"]], "identity_text": "Allow EXIT out of the outermost block in a PL/pgSQL routine (Tom Lane) If the routine does not require an explicit RETURN, this usage should be valid, but it was rejected.", "commit_aliases": ["1bf2518dd", "4ffd3fe4d", "745abdd95", "a460f7eb3", "b1de90699", "bdd6ce48d", "fe70ec907"], "source_commits": ["745abdd95"], "source_entry_id": "13.5/changes/059", "db_id": "a4301c155d30eeb455f699c0c15edf08", "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7", "relations": [{"rule": 2, "type": "equivalent", "target": "14abe7b7e21556c7c7795a1a20087b01", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}, {"rule": 2, "type": "equivalent", "target": "83e7cbfe3fc2dc3dcca0a59f573a0148", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}, {"rule": 2, "type": "equivalent", "target": "a3cad7263bc7b9df14dbb9c972495ac3", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}, {"rule": 2, "type": "equivalent", "target": "e578063ab9393e8bdc2691d98c57740a", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "83e7cbfe3fc2dc3dcca0a59f573a0148", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=12.9#12.9-b56ab44f211b84fe", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "14abe7b7e21556c7c7795a1a20087b01", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=11.14#11.14-49f72f4f8e93c522", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "a3cad7263bc7b9df14dbb9c972495ac3", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=10.19#10.19-49f72f4f8e93c522", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "e578063ab9393e8bdc2691d98c57740a", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "允许在 PL/pgSQL 例程最外层块中使用 EXIT", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=9.6.24#9.6.24-1e5a793ff70ec649", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-5ce57ba729ac3ab2", "cves": [], "html": "<p>移除 <span>pg_ctl</span> 对生成命令总长度的硬编码限制（Phil Krylov）<a href=\"https://postgr.es/c/742b30cae\">§</a></p>\n<p>例如，这移除了对可传递给 postmaster 的命令行选项数量的限制。<span>pg_ctl</span> 处理的单个路径名，例如 postmaster 可执行文件名或数据目录名，在大多数情况下仍限制为 <code>MAXPGPATH</code> 字节。</p>", "text": "移除 pg_ctl 对生成命令总长度的硬编码限制（Phil Krylov）§ 例如，这移除了对可传递给 postmaster 的命令行选项数量的限制。pg_ctl 处理的单个路径名，例如 postmaster 可执行文件名或数据目录名，在大多数情况下仍限制为 MAXPGPATH 字节。", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "commits": ["742b30cae"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "8c51cb878ab609f01380d1d847db8279b8674243b23d99fcf60722a021e89755", "section_path": ["变更"], "commit_groups": [["3b302eb1e", "69d670e68", "6e2f45817", "742b30cae", "87ad49147", "9a070c658", "beb404d3b"]], "identity_text": "Remove pg_ctl's hard-coded limits on the total length of generated commands (Phil Krylov) For example, this removes a restriction on how many command-line options can be passed through to the postmaster. Individual path names that pg_ctl deals with, such as the postmaster executable's name or the data directory name, are still limited to MAXPGPATH bytes in most cases.", "commit_aliases": ["3b302eb1e", "69d670e68", "6e2f45817", "742b30cae", "87ad49147", "9a070c658", "beb404d3b"], "source_commits": ["742b30cae"], "source_entry_id": "13.5/changes/060", "db_id": "09c540f5a1f749ab99a994fc1278487f", "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4", "relations": [{"rule": 2, "type": "equivalent", "target": "2f31d2d697d825c4daffd6bedf18088a", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}, {"rule": 2, "type": "equivalent", "target": "aebee72ce9cc7ab76d8a4244e9560893", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}, {"rule": 2, "type": "equivalent", "target": "d716cacb6c1dff50a74fa93ad2b2b02a", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}, {"rule": 2, "type": "equivalent", "target": "f37d036a60b3457a9f75717ac928433b", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f37d036a60b3457a9f75717ac928433b", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=12.9#12.9-85bbba180ce85be2", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "2f31d2d697d825c4daffd6bedf18088a", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=11.14#11.14-9aa6a3e1fa9ae8f3", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "d716cacb6c1dff50a74fa93ad2b2b02a", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=10.19#10.19-9aa6a3e1fa9ae8f3", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "aebee72ce9cc7ab76d8a4244e9560893", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "移除 pg_ctl 对所生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=9.6.24#9.6.24-e8ae62da5ea549f8", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-5f6add66fa0fccbc", "cves": [], "html": "<p>修复 <span>pg_dump</span> 以正确导出非全局默认权限（Neil Chen，Masahiko Sawada）<a href=\"https://postgr.es/c/476006023\">§</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": ["476006023"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "a906e6ab4c8a9bea767352ead776b4720252bd13b7403a70fff31084cafd1968", "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": ["476006023"], "source_entry_id": "13.5/changes/061", "db_id": "99ef75076fa5da565638b47bec18f7d4", "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": "5a099d974b3a124bcf385c238af571ae", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}, {"rule": 2, "type": "equivalent", "target": "607d4955a34c14d8019c8dce92b3c395", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}, {"rule": 2, "type": "equivalent", "target": "6261fdcceb679d2eda2b529e73c0ec7b", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5a099d974b3a124bcf385c238af571ae", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 pg_dump 以正确导出非全局默认权限", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=14.1#14.1-a78af80f0cf2381e", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-5c53bb32a4df8c0a", "cves": [], "html": "<p>使 <span>pg_dump</span> 对要导出的分区表获取共享锁（Tom Lane）<a href=\"https://postgr.es/c/6a262ba8c\">§</a></p>\n<p>此疏忽通常是相当无害的，因为一旦 <span>pg_dump</span> 锁定了任何叶分区，就足以阻止对分区表本身的重大 DDL。但是，在导出没有子分区的分区表时可能出现问题，因为不会持有相关的锁。</p>", "text": "使 pg_dump 对要导出的分区表获取共享锁（Tom Lane）§ 此疏忽通常是相当无害的，因为一旦 pg_dump 锁定了任何叶分区，就足以阻止对分区表本身的重大 DDL。但是，在导出没有子分区的分区表时可能出现问题，因为不会持有相关的锁。", "title": "使 pg_dump 对要导出的分区表获取共享锁", "commits": ["6a262ba8c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "7d1d00baf835c0ea66459195c4a218e996a3762eb39b24361ae7e9b9c94edf09", "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": ["6a262ba8c"], "source_entry_id": "13.5/changes/062", "db_id": "6aead1917d5a20aa4e8d0631c558c1de", "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635", "relations": [{"rule": 2, "type": "equivalent", "target": "94e2639c241219463d108d83bdab76d2", "evidence": {"same_day": true, "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635"}}, {"rule": 2, "type": "equivalent", "target": "ac63d1c61c89c1c8fbe9719ad7588ca0", "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": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ac63d1c61c89c1c8fbe9719ad7588ca0", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "使 pg_dump 对要导出的分区表获取共享锁", "evidence": {"same_day": true, "patch_ids": ["49afa36d3e8866010ac1857f590a5434"], "statement_hash": "e20664314fcb787ab6fded04c05060b7edcfa3aac33d55222e27aa386701c635"}, "url": "/docs/compare/?release=14.1#14.1-989bf5ab4bd6937c", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"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": "13.5-b877cfe07d784398", "cves": [], "html": "<p>避免逐表查询 RLS 策略和重复调用 <code>format_type()</code>，从而提高 <span>pg_dump</span> 的性能（Tom Lane）<a href=\"https://postgr.es/c/db11b4a3d\">§</a> <a href=\"https://postgr.es/c/904ce45bf\">§</a></p>\n<p>这些修改在从本地服务器转储时只能带来小幅提升，但从远程服务器转储时，可以因网络往返次数减少而获益显著。</p>", "text": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能（Tom Lane）§ § 这些修改在从本地服务器转储时只能带来小幅提升，但从远程服务器转储时，可以因网络往返次数减少而获益显著。", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "commits": ["904ce45bf", "db11b4a3d"], "section": "变更", "category": "performance", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "68ea7f07628773f29c8dcaf1ff5cc701fa1563dd8505dc71d26aa77964ab455f", "section_path": ["变更"], "commit_groups": [["0e7bdc722", "2f1ed9d98", "4645997c8", "6c450a861", "904ce45bf", "9407dbbcb", "c4b298ee1"], ["6b9667392", "a20a9f26c", "a60860ff3", "ba8f1a0be", "bd3611db5", "db11b4a3d", "dd3105286"]], "identity_text": "Improve pg_dump's performance by avoiding making per-table queries for RLS policies, and by avoiding repetitive calls to format_type() (Tom Lane) These changes provide only marginal improvement when dumping from a local server, but a dump from a remote server can benefit substantially due to fewer network round-trips.", "commit_aliases": ["0e7bdc722", "2f1ed9d98", "4645997c8", "6b9667392", "6c450a861", "904ce45bf", "9407dbbcb", "a20a9f26c", "a60860ff3", "ba8f1a0be", "bd3611db5", "c4b298ee1", "db11b4a3d", "dd3105286"], "source_commits": ["904ce45bf", "db11b4a3d"], "source_entry_id": "13.5/changes/063", "db_id": "49e26a2349adc919fcbfc71ae5ef1819", "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727", "relations": [{"rule": 2, "type": "equivalent", "target": "4bb1a99cbb1ab871468c8b52b95761f4", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}, {"rule": 2, "type": "equivalent", "target": "7de5c63a6642ca59d96fc43f2aefa6f5", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}, {"rule": 2, "type": "equivalent", "target": "cf23d26384b6b17f28b238f5dd0ab707", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}, {"rule": 2, "type": "equivalent", "target": "f7aaf4440b31954cb78e810b906616ec", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}], "version": "13.5", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7de5c63a6642ca59d96fc43f2aefa6f5", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=12.9#12.9-b1b601699638c8f0", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "f7aaf4440b31954cb78e810b906616ec", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=11.14#11.14-2b9b86decb34541e", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "cf23d26384b6b17f28b238f5dd0ab707", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=10.19#10.19-2b9b86decb34541e", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "4bb1a99cbb1ab871468c8b52b95761f4", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "通过避免为 RLS 策略逐表查询、避免重复调用 format_type() 来改进 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=9.6.24#9.6.24-e10032a865f98c1a", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-fe74a14135d5d41a", "cves": [], "html": "<p>修复 <span>pg_dump</span> 在尝试从 8.3 之前版本的服务器导出触发器定义时的崩溃（Tom Lane）<a href=\"https://postgr.es/c/0b5f557b7\">§</a></p>", "text": "修复 pg_dump 在尝试从 8.3 之前版本的服务器导出触发器定义时的崩溃（Tom Lane）§", "title": "修复 pg_dump 在尝试从 8.3 之前版本的服务器导出触发器定义时的崩溃", "commits": ["0b5f557b7"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "068c9033a63b8b1b7b099a9bb77a6b4d31adb81bce0c87bcbe4f3c526f6b8ffc", "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": ["0b5f557b7"], "source_entry_id": "13.5/changes/064", "db_id": "17c02b93e2c375f94ad4a137b6172c2c", "patch_ids": ["72b73b6b519f650ecdb5788d356beefd"], "statement_hash": "e8c1f6805c34073c924311926cd9ad3ae1c4e499fb31e40d5327be2a3bd0ca2b", "relations": [{"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"}}, {"rule": 2, "type": "equivalent", "target": "964265d23b6cf74a57a1af7798d6efbb", "evidence": {"same_day": true, "patch_ids": ["72b73b6b519f650ecdb5788d356beefd"], "statement_hash": "e8c1f6805c34073c924311926cd9ad3ae1c4e499fb31e40d5327be2a3bd0ca2b"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "964265d23b6cf74a57a1af7798d6efbb", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 pg_dump 在尝试从 8.3 之前版本的服务器导出触发器定义时的崩溃", "evidence": {"same_day": true, "patch_ids": ["72b73b6b519f650ecdb5788d356beefd"], "statement_hash": "e8c1f6805c34073c924311926cd9ad3ae1c4e499fb31e40d5327be2a3bd0ca2b"}, "url": "/docs/compare/?release=14.1#14.1-685b165cea28f12d", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"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": "13.5-9ab9db11dae894f4", "cves": [], "html": "<p>修复 <span>pg_restore</span> 关于无效大对象 TOC 文件的错误消息中的不正确文件名（Daniel Gustafsson）<a href=\"https://postgr.es/c/687fe8a9d\">§</a></p>", "text": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名（Daniel Gustafsson）§", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "commits": ["687fe8a9d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "a9811b8f212ea6d5cfacbe789aa18e091ea76bf9b5fe9d1af51e99e9b2e8f2cd", "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": ["687fe8a9d"], "source_entry_id": "13.5/changes/065", "db_id": "76ec7864d79d6c138df646918b4dfdb2", "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": "8e213c302cc546704d495ce7f76822c0", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}, {"rule": 2, "type": "equivalent", "target": "f07ae55bc247498a990b40534ac5f5e6", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f07ae55bc247498a990b40534ac5f5e6", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=14.1#14.1-cefd2ff84d51ec7d", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-fc90d0235bcddc9a", "cves": [], "html": "<p>确保 <span>pgbench</span> 在套接字级别失败后以非零状态退出（Yugo Nagata，Fabien Coelho）<a href=\"https://postgr.es/c/3cc85d7d5\">§</a> <a href=\"https://postgr.es/c/8cf4f7118\">§</a></p>\n<p>期望的行为是完成运行但随后以状态 2 退出。同时修复了此类错误的报告。</p>", "text": "确保 pgbench 在套接字级别失败后以非零状态退出（Yugo Nagata，Fabien Coelho）§ § 期望的行为是完成运行但随后以状态 2 退出。同时修复了此类错误的报告。", "title": "确保 pgbench 在套接字级别失败后以非零状态退出", "commits": ["3cc85d7d5", "8cf4f7118"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "26eaec75619a3e58f7e46cd0b2cfae2854b4190467d7be50fe3355b02396d70a", "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": ["3cc85d7d5", "8cf4f7118"], "source_entry_id": "13.5/changes/066", "db_id": "701db4c382c12dce3fe2cab2797b9357", "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": "e5def1bd9779e68ca10fec04aa460035", "evidence": {"same_day": true, "patch_ids": ["11f5c80504e0bb982fe38fa4feaf8fb6", "1614ef056684ccc0adcd83ef123a5ad9"], "statement_hash": "4bda2cc9005ba96306762115277f0bb215adab0288ff860caeb4c6e7be23ea1d"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5def1bd9779e68ca10fec04aa460035", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保 pgbench 在套接字级别失败后以非零状态退出", "evidence": {"same_day": true, "patch_ids": ["11f5c80504e0bb982fe38fa4feaf8fb6", "1614ef056684ccc0adcd83ef123a5ad9"], "statement_hash": "4bda2cc9005ba96306762115277f0bb215adab0288ff860caeb4c6e7be23ea1d"}, "url": "/docs/compare/?release=14.1#14.1-a5106935c60acca7", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"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": "13.5-53bf5ca130967d06", "cves": [], "html": "<p>修复对 <code>\"char\"</code> 列（而非 <code>char(<em><code>n</code></em>)</code> 列）的 <code>contrib/btree_gin</code> 索引使用 <code>&lt;</code> 或 <code>&lt;=</code> 操作符进行索引扫描时的失败（Tom Lane）<a href=\"https://postgr.es/c/7ba487cf9\">§</a></p>\n<p>这样的索引扫描无法返回所有应返回的条目。</p>", "text": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败（Tom Lane）§ 这样的索引扫描无法返回所有应返回的条目。", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "commits": ["7ba487cf9"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "1b708fdd01738a00acb8804ef772541e17f5428c0c924a24c4521cff4f2e5525", "section_path": ["变更"], "commit_groups": [["5a9df5d50", "7ba487cf9", "843d2879a", "a4957b5a7", "a6bd28beb", "cd7d9b6b6", "eefa4c2b5"]], "identity_text": "Fix failure of contrib/btree_gin indexes on \"char\" (not char(n)) columns, when an indexscan using the < or <= operator is performed (Tom Lane) Such an indexscan failed to return all the entries it should.", "commit_aliases": ["5a9df5d50", "7ba487cf9", "843d2879a", "a4957b5a7", "a6bd28beb", "cd7d9b6b6", "eefa4c2b5"], "source_commits": ["7ba487cf9"], "source_entry_id": "13.5/changes/067", "db_id": "a277177e17d860cc0e252a2f35807932", "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061", "relations": [{"rule": 2, "type": "equivalent", "target": "13290d8e4bf294c76c577c844db6d78f", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}, {"rule": 2, "type": "equivalent", "target": "62f53af5ee09ff4b38cd4efb4239e4b9", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}, {"rule": 2, "type": "equivalent", "target": "e327f3b4836ca3ec1c5e87574cf26437", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}, {"rule": 2, "type": "equivalent", "target": "f4025e04b5b9d94579bce89cb92e2d8c", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e327f3b4836ca3ec1c5e87574cf26437", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=12.9#12.9-eece66ff014231e4", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "62f53af5ee09ff4b38cd4efb4239e4b9", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=11.14#11.14-93270a3ee6a0cf07", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "f4025e04b5b9d94579bce89cb92e2d8c", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=10.19#10.19-93270a3ee6a0cf07", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "13290d8e4bf294c76c577c844db6d78f", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "修复 contrib/btree_gin 在 \"char\"（而非 char(n)）列上的索引在执行使用 < 或 <= 操作符的索引扫描时失败的问题", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=9.6.24#9.6.24-17cb13afaecadcf6", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-5e4ad0da97a51a4d", "cves": [], "html": "<p>改变 <code>contrib/pg_stat_statements</code> 以最大 1GB 为单位读取其<span>“<span>查询文本</span>”</span>文件（Tom Lane）<a href=\"https://postgr.es/c/3a5b313ce\">§</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": ["3a5b313ce"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "fcfa65415d41b82f36a60c8783848ba92b3dd6f62b35b7e4373909e8061a4543", "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": ["3a5b313ce"], "source_entry_id": "13.5/changes/068", "db_id": "f9b1bfa11b570618b6bcd18099dc3fad", "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": "d43f2700cb72344d8146a3efd59b8ee1", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d43f2700cb72344d8146a3efd59b8ee1", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=14.1#14.1-68127bd965885596", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-ce1c56a7475c246a", "cves": [], "html": "<p>修复 <code>contrib/postgres_fdw</code> 尝试报告数据转换错误时的空指针崩溃（Tom Lane）<a href=\"https://postgr.es/c/aee83f39a\">§</a></p>", "text": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃（Tom Lane）§", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "commits": ["aee83f39a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "716fb563ee738c4844b10af60ddc9677b94013c8b64cc519bba41ddc035a01ad", "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": ["aee83f39a"], "source_entry_id": "13.5/changes/069", "db_id": "ea56ce70c9c40cdc0e56532c70478ccd", "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477", "relations": [{"rule": 2, "type": "equivalent", "target": "4d82294c92694050c948b67c159dcc16", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}, {"rule": 2, "type": "equivalent", "target": "59724df9664a8909e68fab2ce8c42560", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}, {"rule": 2, "type": "equivalent", "target": "98290aab4ae48248ce3126dd259f8200", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}, {"rule": 2, "type": "equivalent", "target": "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"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "98290aab4ae48248ce3126dd259f8200", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=14.1#14.1-f2edcd70ca4ee95c", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-fd9f970d868cfb3e", "cves": [], "html": "<p>增加对 RISC-V 架构的自旋锁支持（Marek Szuba）<a href=\"https://postgr.es/c/48695decc\">§</a></p>\n<p>这对于在该平台上获得合理的性能至关重要。</p>", "text": "增加对 RISC-V 架构的自旋锁支持（Marek Szuba）§ 这对于在该平台上获得合理的性能至关重要。", "title": "增加对 RISC-V 架构的自旋锁支持", "commits": ["48695decc"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "2aef7d44e0e09ea39ddad8155627e851f65ab6b1d5637c0297d97d769ff60534", "section_path": ["变更"], "commit_groups": [["48695decc", "4ffbd55d9", "582a2affa", "7915a9515", "8024ff478", "c32fcac56", "cdda2b247"]], "identity_text": "Add spinlock support for the RISC-V architecture (Marek Szuba) This is essential for reasonable performance on that platform.", "commit_aliases": ["48695decc", "4ffbd55d9", "582a2affa", "7915a9515", "8024ff478", "c32fcac56", "cdda2b247"], "source_commits": ["48695decc"], "source_entry_id": "13.5/changes/070", "db_id": "2b7f4d027ea6ac4feb2799ceecd23c03", "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918", "relations": [{"rule": 2, "type": "equivalent", "target": "0d4a6fd2ac04ba1b30b714d01c8fdef8", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}, {"rule": 2, "type": "equivalent", "target": "1dca9f29d9aedf9881fdfcdfc44afeb3", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}, {"rule": 2, "type": "equivalent", "target": "c7a1c8b2a2351bf7e57d3d99aba772bb", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}, {"rule": 2, "type": "equivalent", "target": "ef4cdb9b434b444fb421ab654584badd", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0d4a6fd2ac04ba1b30b714d01c8fdef8", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "增加对 RISC-V 架构的自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=12.9#12.9-5466e34a4da721cc", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "1dca9f29d9aedf9881fdfcdfc44afeb3", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "增加对 RISC-V 架构的自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=11.14#11.14-8e98d7aed335dac4", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "ef4cdb9b434b444fb421ab654584badd", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "增加对 RISC-V 架构的自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=10.19#10.19-8e98d7aed335dac4", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "c7a1c8b2a2351bf7e57d3d99aba772bb", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "为 RISC-V 架构添加自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=9.6.24#9.6.24-22a8601426cbff71", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-a2c6f9410ee3483d", "cves": [], "html": "<p>支持 OpenSSL 3.0.0（Peter Eisentraut，Daniel Gustafsson，Michael Paquier）<a href=\"https://postgr.es/c/a69e1506f\">§</a> <a href=\"https://postgr.es/c/135d8687a\">§</a> <a href=\"https://postgr.es/c/8e7199453\">§</a> <a href=\"https://postgr.es/c/abb9ee92c\">§</a></p>", "text": "支持 OpenSSL 3.0.0（Peter Eisentraut，Daniel Gustafsson，Michael Paquier）§ § § §", "title": "支持 OpenSSL 3.0.0", "commits": ["135d8687a", "8e7199453", "a69e1506f", "abb9ee92c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "635ed2d7432163807dba378fc17dd7b20d232638404b6d8cfc839395d8f79586", "section_path": ["变更"], "commit_groups": [["00c72da4a", "11901cd96", "135d8687a", "318df8023", "4fa2b15e1", "e802b594e"], ["0f28d267c", "22e1943f1", "841075a65", "90cfd269f", "a69e1506f"], ["1539e0ecd", "41f30ecc2", "81aefaea8", "922e3c3b7", "abb9ee92c", "d581960df", "e00d45fea"], ["19e91a40b", "6d0001aab", "72bbff4cd", "7b6ce36fb", "8e7199453", "eb643536b"]], "identity_text": "Support OpenSSL 3.0.0 (Peter Eisentraut, Daniel Gustafsson, Michael Paquier)", "commit_aliases": ["00c72da4a", "0f28d267c", "11901cd96", "135d8687a", "1539e0ecd", "19e91a40b", "22e1943f1", "318df8023", "41f30ecc2", "4fa2b15e1", "6d0001aab", "72bbff4cd", "7b6ce36fb", "81aefaea8", "841075a65", "8e7199453", "90cfd269f", "922e3c3b7", "a69e1506f", "abb9ee92c", "d581960df", "e00d45fea", "e802b594e", "eb643536b"], "source_commits": ["135d8687a", "8e7199453", "a69e1506f", "abb9ee92c"], "source_entry_id": "13.5/changes/071", "db_id": "1599b5b114e880a34789c5532458cc83", "patch_ids": ["3793c0c2c66c2f223799111b4ba30313", "b2f85a953e42ca93ea20dcd2140d35a6", "e055b7ff9f32fdd377a6c23c03f98c4c", "ef3c8a4313c40c7c0cae2cf432219f89"], "statement_hash": "1f2373514821247dc56fb96f75b5bb5a22cab69f8ff19890307036ff0b1d9edd", "relations": [{"rule": 2, "type": "equivalent", "target": "b05d1b6d43b68f139b6299b163315a22", "evidence": {"same_day": true, "patch_ids": ["3793c0c2c66c2f223799111b4ba30313", "b2f85a953e42ca93ea20dcd2140d35a6", "e055b7ff9f32fdd377a6c23c03f98c4c", "ef3c8a4313c40c7c0cae2cf432219f89"], "statement_hash": "1f2373514821247dc56fb96f75b5bb5a22cab69f8ff19890307036ff0b1d9edd"}}, {"rule": 2, "type": "equivalent", "target": "d4ca54c622417741ab3b19082bb162a4", "evidence": {"same_day": true, "patch_ids": ["3793c0c2c66c2f223799111b4ba30313", "b2f85a953e42ca93ea20dcd2140d35a6", "e055b7ff9f32fdd377a6c23c03f98c4c", "ef3c8a4313c40c7c0cae2cf432219f89"], "statement_hash": "1f2373514821247dc56fb96f75b5bb5a22cab69f8ff19890307036ff0b1d9edd"}}, {"rule": 2, "type": "equivalent", "target": "f59d19f7b316fe6da931fa7543b7c9e8", "evidence": {"same_day": true, "patch_ids": ["3793c0c2c66c2f223799111b4ba30313", "b2f85a953e42ca93ea20dcd2140d35a6", "e055b7ff9f32fdd377a6c23c03f98c4c", "ef3c8a4313c40c7c0cae2cf432219f89"], "statement_hash": "1f2373514821247dc56fb96f75b5bb5a22cab69f8ff19890307036ff0b1d9edd"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b05d1b6d43b68f139b6299b163315a22", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "支持 OpenSSL 3.0.0", "evidence": {"same_day": true, "patch_ids": ["3793c0c2c66c2f223799111b4ba30313", "b2f85a953e42ca93ea20dcd2140d35a6", "e055b7ff9f32fdd377a6c23c03f98c4c", "ef3c8a4313c40c7c0cae2cf432219f89"], "statement_hash": "1f2373514821247dc56fb96f75b5bb5a22cab69f8ff19890307036ff0b1d9edd"}, "url": "/docs/compare/?release=12.9#12.9-9e62cea718bf4693", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "f59d19f7b316fe6da931fa7543b7c9e8", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "支持 OpenSSL 3.0.0", "evidence": {"same_day": true, "patch_ids": ["3793c0c2c66c2f223799111b4ba30313", "b2f85a953e42ca93ea20dcd2140d35a6", "e055b7ff9f32fdd377a6c23c03f98c4c", "ef3c8a4313c40c7c0cae2cf432219f89"], "statement_hash": "1f2373514821247dc56fb96f75b5bb5a22cab69f8ff19890307036ff0b1d9edd"}, "url": "/docs/compare/?release=11.14#11.14-f2218c065c6278ff", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "d4ca54c622417741ab3b19082bb162a4", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "支持 OpenSSL 3.0.0", "evidence": {"same_day": true, "patch_ids": ["3793c0c2c66c2f223799111b4ba30313", "b2f85a953e42ca93ea20dcd2140d35a6", "e055b7ff9f32fdd377a6c23c03f98c4c", "ef3c8a4313c40c7c0cae2cf432219f89"], "statement_hash": "1f2373514821247dc56fb96f75b5bb5a22cab69f8ff19890307036ff0b1d9edd"}, "url": "/docs/compare/?release=10.19#10.19-f2218c065c6278ff", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "13.5-0a4c57a269205cd5", "cves": [], "html": "<p>为 <span>PostgreSQL</span> 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符（Itamar Gafni）<a href=\"https://postgr.es/c/e15f32f0e\">§</a></p>\n<p>这一疏漏可能只对执行审计 OpenSSL 安装等任务的代码有影响。但严格来说，这违反了 OpenSSL API，因此予以修复。</p>", "text": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符（Itamar Gafni）§ 这一疏漏可能只对执行审计 OpenSSL 安装等任务的代码有影响。但严格来说，这违反了 OpenSSL API，因此予以修复。", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "commits": ["e15f32f0e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "0271f9e6ffb3cffe4e4341c95e86f6472a436bece345bae884aa802695e07f99", "section_path": ["变更"], "commit_groups": [["0a88d4ece", "31f860a52", "b88377ad6", "e15f32f0e", "ed209db77", "ef7e24ff7", "f1d5a94fc"]], "identity_text": "Set correct type identifier on OpenSSL BIO (I/O abstraction) objects created by PostgreSQL (Itamar Gafni) This oversight probably only matters for code that is doing tasks like auditing the OpenSSL installation. But it's nominally a violation of the OpenSSL API, so fix it.", "commit_aliases": ["0a88d4ece", "31f860a52", "b88377ad6", "e15f32f0e", "ed209db77", "ef7e24ff7", "f1d5a94fc"], "source_commits": ["e15f32f0e"], "source_entry_id": "13.5/changes/072", "db_id": "adb6e090b3ec86a65b556eed193f865b", "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4", "relations": [{"rule": 2, "type": "equivalent", "target": "20be44c65f15eb8c025ad176cf5f3735", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}, {"rule": 2, "type": "equivalent", "target": "296f6fe655a7ee0f15e069302e2d0938", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}, {"rule": 2, "type": "equivalent", "target": "b327f51f9ad30f338a464dae3ed74562", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}, {"rule": 2, "type": "equivalent", "target": "cfe81e4d3f5248f89cbfab2b8a20baaf", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "20be44c65f15eb8c025ad176cf5f3735", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=12.9#12.9-2af3b8c42de17e12", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "cfe81e4d3f5248f89cbfab2b8a20baaf", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=11.14#11.14-189f6dab80ef402f", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "296f6fe655a7ee0f15e069302e2d0938", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=10.19#10.19-189f6dab80ef402f", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "b327f51f9ad30f338a464dae3ed74562", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "在 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象上设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=9.6.24#9.6.24-61720bef03799fbf", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-b89c018379a663f8", "cves": [], "html": "<p>修复我们的 <code>pkg-config</code> 文件，使其重新支持静态链接 <span>libpq</span>（Peter Eisentraut）<a href=\"https://postgr.es/c/9f9ae019d\">§</a></p>", "text": "修复我们的 pkg-config 文件，使其重新支持静态链接 libpq（Peter Eisentraut）§", "title": "修复我们的 pkg-config 文件，使其重新支持静态链接 libpq", "commits": ["9f9ae019d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "7516a45595cd3df105df0d7c84b3700ec11e843eba4c2677e5c3985d650592ad", "section_path": ["变更"], "commit_groups": [["1e9afc868", "55392bc5b", "60bf7e69b", "9f9ae019d"], ["4c2eab3a0"]], "identity_text": "Fix our pkg-config files to again support static linking of libpq (Peter Eisentraut)", "commit_aliases": ["1e9afc868", "4c2eab3a0", "55392bc5b", "60bf7e69b", "9f9ae019d"], "source_commits": ["4c2eab3a0", "9f9ae019d"], "source_entry_id": "13.5/changes/073", "db_id": "31b0c379c449b02d83a20783b40b5926", "patch_ids": ["b4398282143dda8c563351256cd9175d", "ddd8bd1243a654ffbf18a2def831f6af"], "statement_hash": "6aeb177a7d4be7dee9c5ae81361ae3d70fe4b6243f5f8d7d733b96be958821b0", "relations": [{"rule": 2, "type": "equivalent", "target": "c56b5cee63cde80f40bfb51fe07e3713", "evidence": {"same_day": true, "patch_ids": ["b4398282143dda8c563351256cd9175d", "ddd8bd1243a654ffbf18a2def831f6af"], "statement_hash": "6aeb177a7d4be7dee9c5ae81361ae3d70fe4b6243f5f8d7d733b96be958821b0"}}], "version": "13.5", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c56b5cee63cde80f40bfb51fe07e3713", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复我们的 pkg-config 文件，使其重新支持静态链接 libpq", "evidence": {"same_day": true, "patch_ids": ["b4398282143dda8c563351256cd9175d", "ddd8bd1243a654ffbf18a2def831f6af"], "statement_hash": "6aeb177a7d4be7dee9c5ae81361ae3d70fe4b6243f5f8d7d733b96be958821b0"}, "url": "/docs/compare/?release=12.9#12.9-a765968739826f75", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}]}, {"id": "13.5-b56d94eb5bb2ff1e", "cves": [], "html": "<p>使 <code>pg_regexec()</code> 能够稳健地处理超出范围的 <em><code>search_start</code></em> 参数（Tom Lane）<a href=\"https://postgr.es/c/7e420072e\">§</a></p>\n<p>当 <em><code>search_start</code></em> 超过字符串末尾时，返回 <code>REG_NOMATCH</code>，而不再可能崩溃。核心 <span>PostgreSQL</span> 中可能不会出现这种情况，但扩展可能对参数值不够谨慎。</p>", "text": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数（Tom Lane）§ 当 search_start 超过字符串末尾时，返回 REG_NOMATCH，而不再可能崩溃。核心 PostgreSQL 中可能不会出现这种情况，但扩展可能对参数值不够谨慎。", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "commits": ["7e420072e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "15d5997a14ca5ad81b284fd8346a6814e2f437d90ecca52d9d4e3ec08facf68b", "section_path": ["变更"], "commit_groups": [["3adde7eb6", "3be381a90", "7e420072e", "b33283cbd", "daac97eb0", "e757080e0", "ec89d7ace"]], "identity_text": "Make pg_regexec() robust against an out-of-range search_start parameter (Tom Lane) Return REG_NOMATCH, instead of possibly crashing, when search_start is past the end of the string. This case is probably unreachable within core PostgreSQL, but extensions might be more careless about the parameter value.", "commit_aliases": ["3adde7eb6", "3be381a90", "7e420072e", "b33283cbd", "daac97eb0", "e757080e0", "ec89d7ace"], "source_commits": ["7e420072e"], "source_entry_id": "13.5/changes/074", "db_id": "68a0798944ef65f0b28e00c969a4deaf", "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a", "relations": [{"rule": 2, "type": "equivalent", "target": "28b7973785c0901fc917d0a6816008a1", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}, {"rule": 2, "type": "equivalent", "target": "719ea4027e846640130fb4a3bf1ad6f3", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}, {"rule": 2, "type": "equivalent", "target": "8fd53487c838cc0f99f3c02278840a26", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}, {"rule": 2, "type": "equivalent", "target": "cdf3f5a89ea1b3f50f4da0f944973dfd", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cdf3f5a89ea1b3f50f4da0f944973dfd", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=12.9#12.9-67d20da78a5ee8cd", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "8fd53487c838cc0f99f3c02278840a26", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=11.14#11.14-13e59272cdbe4a58", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "719ea4027e846640130fb4a3bf1ad6f3", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=10.19#10.19-13e59272cdbe4a58", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}, {"db_id": "28b7973785c0901fc917d0a6816008a1", "kind": "equivalent", "version": "9.6.24", "label": "9.6.24", "title": "使 pg_regexec() 能够稳健处理越界的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=9.6.24#9.6.24-b33908c85cb84548", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6"}]}, {"id": "13.5-10f65a07a327751a", "cves": [], "html": "<p>确保 <code>GetSharedSecurityLabel()</code> 可以在尚未构建关键关系缓存条目的新启动会话中使用（Jeff Davis）<a href=\"https://postgr.es/c/20f785732\">§</a></p>", "text": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用（Jeff Davis）§", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "commits": ["20f785732"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "793e002e0d4ce3616b901904e8724b4677f0d3ca72dcb8993e4fae3761bd0a64", "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": ["20f785732"], "source_entry_id": "13.5/changes/075", "db_id": "ede201067cf500d822e8b273272c57fa", "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": "581bb9962efbe7d042b7db8ec51eb373", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}, {"rule": 2, "type": "equivalent", "target": "5bc4e0e3715ef1c44bfed0bc068ffd86", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}, {"rule": 2, "type": "equivalent", "target": "e47146af6b7c83064f7b512dee45f52d", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "581bb9962efbe7d042b7db8ec51eb373", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=14.1#14.1-5fb5b1c0880a6789", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-89ec458ef613be1e", "cves": [], "html": "<p>使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区（Tom Lane）<a href=\"https://postgr.es/c/9c76689de\">§</a> <a href=\"https://postgr.es/c/7ba8eb81f\">§</a> <a href=\"https://postgr.es/c/c53ff69e1\">§</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": ["7ba8eb81f", "9c76689de", "c53ff69e1"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "bdd184ec6f60a4ae0a867afb70518a764394a8f36dab5cfc881aeb3d885baccb", "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": ["7ba8eb81f", "9c76689de", "c53ff69e1"], "source_entry_id": "13.5/changes/076", "db_id": "b0c088d69d60b2cde99897d93d01f9e2", "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": "b31e5b75c3a44d2e3b7b0211ebd3532f", "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": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b31e5b75c3a44d2e3b7b0211ebd3532f", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=14.1#14.1-4d7731400f0f4517", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "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": "13.5-3b4a31ead6939171", "cves": [], "html": "<p>将时区数据文件更新至 <span>tzdata</span> release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。（Tom Lane）<a href=\"https://postgr.es/c/4cd72add0\">§</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": ["4cd72add0"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.5/#id-1.11.6.24.5", "source_hash": "78deccccf436b74b95ac2d7c36ddc247d3c8a2922d462390cc6ed65c9717d951", "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": ["4cd72add0"], "source_entry_id": "13.5/changes/077", "db_id": "a9acb6cdf72b4d976f76108f26cf4fe9", "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": "9f598042f3d276143481ef2fb46b3aa0", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "cdfbceae45f4ea27f11158ff17484a7ad205431c0fca612011a82c43ca637fc6"}}, {"rule": 2, "type": "equivalent", "target": "a3608b5016b21226b7fceb7f31e290fe", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "cdfbceae45f4ea27f11158ff17484a7ad205431c0fca612011a82c43ca637fc6"}}, {"rule": 2, "type": "equivalent", "target": "f1a086b3fdf5adab8ba5986bd0def2cc", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}}], "version": "13.5", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9f598042f3d276143481ef2fb46b3aa0", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "将时区数据文件更新至 tzdata release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "cdfbceae45f4ea27f11158ff17484a7ad205431c0fca612011a82c43ca637fc6"}, "url": "/docs/compare/?release=14.1#14.1-6fb0ad2f59adff81", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"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": 77}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 36}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 1}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 38}], "total": 77, "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": "13.5"}, {"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": "13.5"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 77, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}