{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2021-11-11", "build": "9.6.24", "major": "9.6", "minor": 24, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.24", "eol_date": "2021-11-11", "date_text": "2021-11-11", "supported": false, "manual_url": "/docs/9.6/release-9-6-24.html", "source_url": "/docs/release/9.6.24/", "entry_count": 40, "placeholder": false, "content_hash": "a8d2ee34e6eaa76223c4c0ae4b7fbb2ab7c600ddb73e8b65cf89d6dec933bbdc", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 40, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>    对于运行 9.6.X 的用户，不需要转储/恢复。\n   </p><p>    不过请注意，使用物理复制的安装应先更新备库服务器再更新主库服务器，如下面第三条变更日志条目所述。\n   </p><p>    此外，还发现了几个可能导致索引损坏的 bug，如接下来几条变更日志条目所述。如果其中任何情况适用于你，建议在更新之后对可能受影响的索引执行\n    REINDEX。\n   </p><p>    另外，如果你是从 9.6.21 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-21.html\" title=\"E.4. 版本 9.6.21\">第 E.4 节</a>。\n   </p>", "compatibility_count": 0, "label": "9.6.24", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 1784, "support_days": -1784}, "groups": [{"date": "2021-11-11", "build": "9.6.24", "major": "9.6", "minor": 24, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.24", "eol_date": "2021-11-11", "date_text": "2021-11-11", "supported": false, "manual_url": "/docs/9.6/release-9-6-24.html", "source_url": "/docs/release/9.6.24/", "entry_count": 40, "placeholder": false, "content_hash": "a8d2ee34e6eaa76223c4c0ae4b7fbb2ab7c600ddb73e8b65cf89d6dec933bbdc", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 40, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>    对于运行 9.6.X 的用户，不需要转储/恢复。\n   </p><p>    不过请注意，使用物理复制的安装应先更新备库服务器再更新主库服务器，如下面第三条变更日志条目所述。\n   </p><p>    此外，还发现了几个可能导致索引损坏的 bug，如接下来几条变更日志条目所述。如果其中任何情况适用于你，建议在更新之后对可能受影响的索引执行\n    REINDEX。\n   </p><p>    另外，如果你是从 9.6.21 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-21.html\" title=\"E.4. 版本 9.6.21\">第 E.4 节</a>。\n   </p>", "compatibility_count": 0, "label": "9.6.24", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 1784, "support_days": -1784, "entries": [{"id": "9.6.24-c319beb02a50a88f", "cves": ["CVE-2021-23214"], "html": "<p>      让服务器拒绝 SSL 或 GSS 加密握手之后的多余数据（Tom Lane）\n     </p><p>      能够向 TCP 连接注入数据的中间人，可以在本应受加密保护的数据库会话的开头塞入一些明文数据。这可能被滥用以向服务器发送伪造的 SQL 命令，不过只有当服务器不要求任何认证数据时才会奏效。（然而，依赖 SSL 证书认证的服务器很可能确实不要求。）\n     </p><p> <span>PostgreSQL</span> 项目感谢 Jacob Champion 报告此问题。(CVE-2021-23214)\n     </p>", "text": "让服务器拒绝 SSL 或 GSS 加密握手之后的多余数据（Tom Lane） 能够向 TCP 连接注入数据的中间人，可以在本应受加密保护的数据库会话的开头塞入一些明文数据。这可能被滥用以向服务器发送伪造的 SQL 命令，不过只有当服务器不要求任何认证数据时才会奏效。（然而，依赖 SSL 证书认证的服务器很可能确实不要求。） PostgreSQL 项目感谢 Jacob Champion 报告此问题。(CVE-2021-23214)", "title": "让服务器拒绝 SSL 或 GSS 加密握手之后的多余数据", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b837c66a3789ae6b713c206fac9a9bc29e6dc52d5f7ceb48e2e96a51770e7081", "section_path": ["变更"], "commit_groups": [["046c2c846", "28e241255", "9394fb828", "9ae0f1112", "9d5a76b8d", "d1bd26740", "e92ed93e8"]], "identity_text": "Make the server reject extraneous data after an SSL or GSS encryption handshake (Tom Lane) A man-in-the-middle with the ability to inject data into the TCP connection could stuff some cleartext data into the start of a supposedly encryption-protected database session. This could be abused to send faked SQL commands to the server, although that would only work if the server did not demand any authentication data. (However, a server relying on SSL certificate authentication might well not do so.) The PostgreSQL Project thanks Jacob Champion for reporting this problem. (CVE-2021-23214)", "commit_aliases": ["046c2c846", "28e241255", "9394fb828", "9ae0f1112", "9d5a76b8d", "d1bd26740", "e92ed93e8"], "source_commits": ["046c2c846"], "source_entry_id": "9.6.24/changes/001", "db_id": "857b0ddcc2ac0b70542c7713521baa4a", "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b", "relations": [{"rule": 2, "type": "equivalent", "target": "09173dd64f94bf13156c433846baac7d", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}, {"rule": 2, "type": "equivalent", "target": "23d5be7b761c04e734bf3d43433e109b", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}, {"rule": 2, "type": "equivalent", "target": "60b53f19afdd3985317f150336e3ec26", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}, {"rule": 2, "type": "equivalent", "target": "68a03d0d65e3da6f02b80a9de5b45861", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}, {"rule": 2, "type": "equivalent", "target": "fc87ef5d0ccafcfa310e5943b1e9fd2d", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}}], "version": "9.6.24", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "fc87ef5d0ccafcfa310e5943b1e9fd2d", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=14.1#14.1-1856c71e2cf03259", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "68a03d0d65e3da6f02b80a9de5b45861", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=13.5#13.5-39a07d46c9c5e38f", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "09173dd64f94bf13156c433846baac7d", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=12.9#12.9-363608434205a801", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "23d5be7b761c04e734bf3d43433e109b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=11.14#11.14-5eea6f66c6b5cf3f", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "60b53f19afdd3985317f150336e3ec26", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "使服务器在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["b4df894aeb196bf565a2eb9da3420f94"], "statement_hash": "cc1aed85777397a9b0c857063c632f21cdce38efc8c8a7c2a9d46b6a53fa430b"}, "url": "/docs/compare/?release=10.19#10.19-5eea6f66c6b5cf3f", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-0eb2aa94a5567b47", "cves": ["CVE-2021-23214", "CVE-2021-23222"], "html": "<p>      让 <span>libpq</span> 拒绝 SSL 或 GSS 加密握手之后的多余数据（Tom Lane）\n     </p><p>      能够向 TCP 连接注入数据的中间人，可以在本应受加密保护的数据库会话的开头塞入一些明文数据。这也许可被滥用以向客户端的前几个查询注入伪造的响应，不过 libpq 行为的其他细节使这比听起来更难。另一种攻击思路是窃取客户端的密码或会话早期可能发送的其他敏感数据。已经证明，对于存在 CVE-2021-23214 漏洞的服务器，这是可能的。\n     </p><p> <span>PostgreSQL</span> 项目感谢 Jacob Champion 报告此问题。(CVE-2021-23222)\n     </p>", "text": "让 libpq 拒绝 SSL 或 GSS 加密握手之后的多余数据（Tom Lane） 能够向 TCP 连接注入数据的中间人，可以在本应受加密保护的数据库会话的开头塞入一些明文数据。这也许可被滥用以向客户端的前几个查询注入伪造的响应，不过 libpq 行为的其他细节使这比听起来更难。另一种攻击思路是窃取客户端的密码或会话早期可能发送的其他敏感数据。已经证明，对于存在 CVE-2021-23214 漏洞的服务器，这是可能的。 PostgreSQL 项目感谢 Jacob Champion 报告此问题。(CVE-2021-23222)", "title": "让 libpq 拒绝 SSL 或 GSS 加密握手之后的多余数据", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "c79bcb2987bf3fb9fe840eb8f9fd686577b5bf86d7527b0917cc5808a48facc3", "section_path": ["变更"], "commit_groups": [["160c02588", "30547d791", "36bb95ef2", "844b31692", "a021a1d2a", "d83cdfdca", "e65d9c8cd"]], "identity_text": "Make libpq reject extraneous data after an SSL or GSS encryption handshake (Tom Lane) A man-in-the-middle with the ability to inject data into the TCP connection could stuff some cleartext data into the start of a supposedly encryption-protected database session. This could probably be abused to inject faked responses to the client's first few queries, although other details of libpq's behavior make that harder than it sounds. A different line of attack is to exfiltrate the client's password, or other sensitive data that might be sent early in the session. That has been shown to be possible with a server vulnerable to CVE-2021-23214. The PostgreSQL Project thanks Jacob Champion for reporting this problem. (CVE-2021-23222)", "commit_aliases": ["160c02588", "30547d791", "36bb95ef2", "844b31692", "a021a1d2a", "d83cdfdca", "e65d9c8cd"], "source_commits": ["d83cdfdca"], "source_entry_id": "9.6.24/changes/002", "db_id": "53707865a7e0107f3647c7f9f6fd2945", "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1", "relations": [{"rule": 2, "type": "equivalent", "target": "0eb9d93d5afa77a8d89883bdcf340ff7", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}, {"rule": 2, "type": "equivalent", "target": "5001ce09f2dce03a32492997ae85add4", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}, {"rule": 2, "type": "equivalent", "target": "7bfd458cc9aba55256fda5e905e86ee1", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}, {"rule": 2, "type": "equivalent", "target": "e407a83d059330027e44cdbd6f4f1779", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}, {"rule": 2, "type": "equivalent", "target": "f175095a9c0dad30b1caedf4975b6b2d", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}}], "version": "9.6.24", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "0eb9d93d5afa77a8d89883bdcf340ff7", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=14.1#14.1-2148a2c0309fac1a", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "f175095a9c0dad30b1caedf4975b6b2d", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=13.5#13.5-32b7064eba088818", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "e407a83d059330027e44cdbd6f4f1779", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=12.9#12.9-1981162a570e17a7", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "5001ce09f2dce03a32492997ae85add4", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=11.14#11.14-cba8a84a21202abc", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "7bfd458cc9aba55256fda5e905e86ee1", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "使 libpq 在 SSL 或 GSS 加密握手后拒绝多余的数据", "evidence": {"same_day": true, "patch_ids": ["30ddec582d317abae1767df0eef99575"], "statement_hash": "15cc7e5fb57d80e4c39c6f7edcb96af9072dd6f39e557ff70a964f480019a8e1"}, "url": "/docs/compare/?release=10.19#10.19-cba8a84a21202abc", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-a8cf2c8e93f988bb", "cves": [], "html": "<p>      修复主库在传送了一个以不完整 WAL 记录结尾的 WAL 段之后崩溃时物理复制的问题（Álvaro Herrera）\n     </p><p>      如果主库没能存活到把不完整 WAL 记录的其余部分写完，原来的崩溃恢复逻辑会让它回退并从这条不完整 WAL 记录的开头开始覆盖 WAL。这是有问题的，因为备库服务器可能已经拥有该 WAL 段的副本。它们随后会看到不一致的下一个段，没有人工干预将无法恢复。为修复此问题，崩溃后重启时不再回退越过 WAL 段边界，而是在下一个 WAL 段的开头写入一种新类型的 WAL\n      记录，告知读取者这条不完整的 WAL 记录永远不会写完、必须忽略。\n     </p><p>      应用此更新时，最好先更新备库服务器再更新主库，这样一旦主库碰巧崩溃，备库就能准备好处理这种新 WAL 记录类型。\n     </p>", "text": "修复主库在传送了一个以不完整 WAL 记录结尾的 WAL 段之后崩溃时物理复制的问题（Álvaro Herrera） 如果主库没能存活到把不完整 WAL 记录的其余部分写完，原来的崩溃恢复逻辑会让它回退并从这条不完整 WAL 记录的开头开始覆盖 WAL。这是有问题的，因为备库服务器可能已经拥有该 WAL 段的副本。它们随后会看到不一致的下一个段，没有人工干预将无法恢复。为修复此问题，崩溃后重启时不再回退越过 WAL 段边界，而是在下一个 WAL 段的开头写入一种新类型的 WAL 记录，告知读取者这条不完整的 WAL 记录永远不会写完、必须忽略。 应用此更新时，最好先更新备库服务器再更新主库，这样一旦主库碰巧崩溃，备库就能准备好处理这种新 WAL 记录类型。", "title": "修复主库在传送了一个以不完整 WAL 记录结尾的 WAL 段之后崩溃时物理复制的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "da20249f869a9799b0fc24b0f2fa31e9c820a43926d050d05d65d4f65523f0f0", "section_path": ["变更"], "commit_groups": [["010e52337", "2cdf97fd1", "41cce2326", "4b7abbe48", "5ec87619b", "6287b8e19", "79c7fe1af"], ["0ce67bce0", "d186d233d"], ["148c6ee3b", "1d97d3d08", "1df0a914d", "64a8687a6", "cfedb279a", "d9fe2cc7d", "ff9f111bc"], ["17227825c", "494ec0037", "5ef210047", "656312c2a", "99197701e", "da782bc93"], ["d03bca4d7", "e3731bac5"]], "identity_text": "Fix physical replication for cases where the primary crashes after shipping a WAL segment that ends with a partial WAL record (Álvaro Herrera) If the primary did not survive long enough to finish writing the rest of the incomplete WAL record, then the previous crash-recovery logic had it back up and overwrite WAL starting from the beginning of the incomplete WAL record. This is problematic since standby servers may already have copies of that WAL segment. They will then see an inconsistent next segment, and will not be able to recover without manual intervention. To fix, do not back up over a WAL segment boundary when restarting after a crash. Instead write a new type of WAL record at the start of the next WAL segment, informing readers that the incomplete WAL record will never be finished and must be disregarded. When applying this update, it's best to update standby servers before the primary, so that they will be ready to handle this new WAL record type if the primary happens to crash.", "commit_aliases": ["010e52337", "0ce67bce0", "148c6ee3b", "17227825c", "1d97d3d08", "1df0a914d", "2cdf97fd1", "41cce2326", "494ec0037", "4b7abbe48", "5ec87619b", "5ef210047", "6287b8e19", "64a8687a6", "656312c2a", "79c7fe1af", "99197701e", "cfedb279a", "d03bca4d7", "d186d233d", "d9fe2cc7d", "da782bc93", "e3731bac5", "ff9f111bc"], "source_commits": ["148c6ee3b", "5ec87619b", "99197701e", "d03bca4d7", "d186d233d"], "source_entry_id": "9.6.24/changes/003", "db_id": "5c3b4b3569d336c307f9853e4ba2e79b", "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3", "relations": [{"rule": 2, "type": "equivalent", "target": "24e3cb4aab4eecfee00d72e62234bb5e", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}, {"rule": 2, "type": "equivalent", "target": "ad7b9b773525fc6f9c73b4c0868d1bfd", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}, {"rule": 2, "type": "equivalent", "target": "c1a28326739ee1ee5062116c49c68403", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}, {"rule": 2, "type": "equivalent", "target": "c98dc2039b40bbb53e21b4209589935a", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}, {"rule": 2, "type": "equivalent", "target": "ea07b13999ba4cf5a7ddb4c9e2a9676b", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ad7b9b773525fc6f9c73b4c0868d1bfd", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=14.1#14.1-0856b4e7843716b2", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "24e3cb4aab4eecfee00d72e62234bb5e", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=13.5#13.5-c9110b1993e1bb99", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "ea07b13999ba4cf5a7ddb4c9e2a9676b", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=12.9#12.9-9f693245653dd538", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "c1a28326739ee1ee5062116c49c68403", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=11.14#11.14-3a9d512092bb18b7", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "c98dc2039b40bbb53e21b4209589935a", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复在主库发送以不完整 WAL 记录结尾的 WAL 段后崩溃时的物理复制问题", "evidence": {"same_day": true, "patch_ids": ["5a041bda0416b43fed5b7177f81120b6", "6776064ebd56f375d436d696c2926b57", "7e98139f5a5a5baa75328d23aff0bd04", "ade871841ba852a69e56f184a2f56801", "fae65b80d4d1aa624cf408f89196e60a"], "statement_hash": "94322e9a52043b16e62cba90002e313ae11853b28a4df6c91303fa7d412f5fe3"}, "url": "/docs/compare/?release=10.19#10.19-3a9d512092bb18b7", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-35c0e2b5295528e8", "cves": [], "html": "<p>      修复 <code>CREATE INDEX CONCURRENTLY</code>，使其等待最新的预备事务（Andrey Borodin）\n     </p><p>      刚刚预备的事务所插入的行可能被遗漏在新索引之外，导致依赖该索引的查询漏掉这些行。此前针对此类问题的修复没有考虑到在\n      <code>CREATE INDEX CONCURRENTLY</code> 检查时尚在执行中的\n      <code>PREPARE TRANSACTION</code> 命令。与之前一样，在启用了预备事务的安装（<code>max_prepared_transactions</code> &gt; 0）中，如果并发构建索引时可能发生过此问题，建议对这些索引执行 REINDEX。\n     </p>", "text": "修复 CREATE INDEX CONCURRENTLY，使其等待最新的预备事务（Andrey Borodin） 刚刚预备的事务所插入的行可能被遗漏在新索引之外，导致依赖该索引的查询漏掉这些行。此前针对此类问题的修复没有考虑到在 CREATE INDEX CONCURRENTLY 检查时尚在执行中的 PREPARE TRANSACTION 命令。与之前一样，在启用了预备事务的安装（max_prepared_transactions > 0）中，如果并发构建索引时可能发生过此问题，建议对这些索引执行 REINDEX。", "title": "修复 CREATE INDEX CONCURRENTLY，使其等待最新的预备事务", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "a31d0601e33d34eb217d2bc86291b97ed5ff1cf2d54fa6063c51f4e00ecf6842", "section_path": ["变更"], "commit_groups": [["3cd9c3b92", "518493243", "560124a37", "a5b9a0000", "a9d0a5409", "df6158139", "fe5d44a1d"]], "identity_text": "Fix CREATE INDEX CONCURRENTLY to wait for the latest prepared transactions (Andrey Borodin) Rows inserted by just-prepared transactions might be omitted from the new index, causing queries relying on the index to miss such rows. The previous fix for this type of problem failed to account for PREPARE TRANSACTION commands that were still in progress when CREATE INDEX CONCURRENTLY checked for them. As before, in installations that have enabled prepared transactions (max_prepared_transactions > 0), it's recommended to reindex any concurrently-built indexes in case this problem occurred when they were built.", "commit_aliases": ["3cd9c3b92", "518493243", "560124a37", "a5b9a0000", "a9d0a5409", "df6158139", "fe5d44a1d"], "source_commits": ["518493243"], "source_entry_id": "9.6.24/changes/004", "db_id": "a7521435391a05f9d426c68191458f68", "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992", "relations": [{"rule": 2, "type": "equivalent", "target": "040865f25a25265641a31412866e5f31", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "326096d37352533242e31c4c828e4d26", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "4934600b9293e0f1f7f8f1e739af1119", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "6d5aa221c7204c3c6a575c9053ba8e7e", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}, {"rule": 2, "type": "equivalent", "target": "e351575955580f7ad7705e35eaa5b895", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4934600b9293e0f1f7f8f1e739af1119", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=14.1#14.1-7eff03da16984474", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "6d5aa221c7204c3c6a575c9053ba8e7e", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=13.5#13.5-a71726ee797fd35e", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "326096d37352533242e31c4c828e4d26", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=12.9#12.9-a8c2c5ba71fc66c2", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "e351575955580f7ad7705e35eaa5b895", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=11.14#11.14-746849b2def47430", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "040865f25a25265641a31412866e5f31", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 CREATE INDEX CONCURRENTLY 以等待最新的预备事务", "evidence": {"same_day": true, "patch_ids": ["e7e922f066d637ed7542d97705d0e58e"], "statement_hash": "a97c3c58f891e650cce9f2377301c7240733188fba587bda451e8848ec112992"}, "url": "/docs/compare/?release=10.19#10.19-746849b2def47430", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-e449c3889eb37b5b", "cves": [], "html": "<p>      避免可能导致后端进程无法把新行的条目加入正在并发构建的索引的竞态条件（Noah Misch、Andrey Borodin）\n     </p><p>      虽然这种情况在实际中显然很少见，但它有可能影响任何使用\n      <code>CONCURRENTLY</code> 选项构建或重建的索引。建议对所有这类索引执行 REINDEX 以确保其正确。\n     </p>", "text": "避免可能导致后端进程无法把新行的条目加入正在并发构建的索引的竞态条件（Noah Misch、Andrey Borodin） 虽然这种情况在实际中显然很少见，但它有可能影响任何使用 CONCURRENTLY 选项构建或重建的索引。建议对所有这类索引执行 REINDEX 以确保其正确。", "title": "避免可能导致后端进程无法把新行的条目加入正在并发构建的索引的竞态条件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "1e4ed19a215e4742b38b45d6cf7aeb93b777a212efbe27a31fa1962367b3dc01", "section_path": ["变更"], "commit_groups": [["0869e53d3", "2e33b4359", "5141e471b", "db86746fd", "dde966efb", "e428699cb", "fdd965d07"]], "identity_text": "Avoid race condition that can cause backends to fail to add entries for new rows to an index being built concurrently (Noah Misch, Andrey Borodin) While it's apparently rare in the field, this case could potentially affect any index built or reindexed with the CONCURRENTLY option. It is recommended to reindex any such indexes to make sure they are correct.", "commit_aliases": ["0869e53d3", "2e33b4359", "5141e471b", "db86746fd", "dde966efb", "e428699cb", "fdd965d07"], "source_commits": ["e428699cb"], "source_entry_id": "9.6.24/changes/005", "db_id": "4c7c7a71adee68fc5ead28fb2dc5d91f", "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151", "relations": [{"rule": 2, "type": "equivalent", "target": "59041055425166897c686055f788de4b", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}, {"rule": 2, "type": "equivalent", "target": "6168ef64a6eecee152d01ec40c1261be", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}, {"rule": 2, "type": "equivalent", "target": "7a0f55e9a3fb1e1b8de014af30fa21e1", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}, {"rule": 2, "type": "equivalent", "target": "bfb5691124f6d19bcde0e0b89c3cf102", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}, {"rule": 2, "type": "equivalent", "target": "d7a3416e3d836824c570371f9fd6e77e", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d7a3416e3d836824c570371f9fd6e77e", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=14.1#14.1-a2238e4d68b7f1ba", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "bfb5691124f6d19bcde0e0b89c3cf102", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=13.5#13.5-25f23f4cfd45f2d8", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "6168ef64a6eecee152d01ec40c1261be", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=12.9#12.9-9a8b07cd53df6529", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "59041055425166897c686055f788de4b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=11.14#11.14-9970d7c0403f586b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "7a0f55e9a3fb1e1b8de014af30fa21e1", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免竞态条件导致后端无法将新行的条目添加到正在并发构建的索引中", "evidence": {"same_day": true, "patch_ids": ["06ada9558d778cb9196213dbf810b9a5"], "statement_hash": "c1dbe4771c15b9d7359781661d1a9f002a1f14a590d651e5ed4a969337e12151"}, "url": "/docs/compare/?release=10.19#10.19-9970d7c0403f586b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-2a21bc572f40e144", "cves": [], "html": "<p>      修复 <code>float4</code> 和 <code>float8</code> 的哈希函数，使其对 NaN 产生一致的结果（Tom Lane）\n     </p><p>      由于 <span>PostgreSQL</span> 的浮点类型认为所有 NaN\n      彼此相等，哈希函数就必须对 IEEE 754 标准中所有表示 NaN 的位模式产生相同的哈希码。此前这一点没有做到，这意味着哈希索引和基于哈希的查询计划可能对非规范 NaN 值产生错误结果。（<code>'-NaN'::float8</code> 是在大多数机器上产生这种值的一种方式。）如果浮点列的哈希索引有可能包含这种值，建议对其执行\n      REINDEX。\n     </p>", "text": "修复 float4 和 float8 的哈希函数，使其对 NaN 产生一致的结果（Tom Lane） 由于 PostgreSQL 的浮点类型认为所有 NaN 彼此相等，哈希函数就必须对 IEEE 754 标准中所有表示 NaN 的位模式产生相同的哈希码。此前这一点没有做到，这意味着哈希索引和基于哈希的查询计划可能对非规范 NaN 值产生错误结果。（'-NaN'::float8 是在大多数机器上产生这种值的一种方式。）如果浮点列的哈希索引有可能包含这种值，建议对其执行 REINDEX。", "title": "修复 float4 和 float8 的哈希函数，使其对 NaN 产生一致的结果", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "cec5c955cd83867a2c6969d096797583c9671ce5ba4d49845405b71cd7daa1b5", "section_path": ["变更"], "commit_groups": [["08b96a2b5", "1fab33c0b", "2836d57e4", "9089f1543", "fd549145d"], ["23c6bc581", "2bb20e34c", "a3bf13673", "ad66373ea", "be2beadaf", "ce773f230", "dea212e24"], ["2c0dd669c", "70354dd56", "718978d9d", "8782a8452", "a5e8f7b37", "b30cc0fd6", "fd295d0c6"]], "identity_text": "Fix float4 and float8 hash functions to produce uniform results for NaNs (Tom Lane) Since PostgreSQL's floating-point types deem all NaNs to be equal, it's important for the hash functions to produce the same hash code for all bit-patterns that are NaNs according to the IEEE 754 standard. This failed to happen before, meaning that hash indexes and hash-based query plans might produce incorrect results for non-canonical NaN values. ('-NaN'::float8 is one way to produce such a value on most machines.) It is advisable to reindex hash indexes on floating-point columns, if there is any possibility that they might contain such values.", "commit_aliases": ["08b96a2b5", "1fab33c0b", "23c6bc581", "2836d57e4", "2bb20e34c", "2c0dd669c", "70354dd56", "718978d9d", "8782a8452", "9089f1543", "a3bf13673", "a5e8f7b37", "ad66373ea", "b30cc0fd6", "be2beadaf", "ce773f230", "dea212e24", "fd295d0c6", "fd549145d"], "source_commits": ["a5e8f7b37", "dea212e24", "fd549145d"], "source_entry_id": "9.6.24/changes/006", "db_id": "d85c062801bdaef5499a448bf5f441c1", "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9", "relations": [{"rule": 2, "type": "equivalent", "target": "2667b344491df1781fcab9e69afa3bb4", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}, {"rule": 2, "type": "equivalent", "target": "9b4b90715965ebe3a6b3002a3028a03d", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}, {"rule": 2, "type": "equivalent", "target": "b4a0bdf9f2a7379a065a113e6b85cf10", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}, {"rule": 2, "type": "equivalent", "target": "b8a49a4163bd28797df570a8bc632519", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b8a49a4163bd28797df570a8bc632519", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=13.5#13.5-f0c9db2b94e03c96", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "b4a0bdf9f2a7379a065a113e6b85cf10", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=12.9#12.9-cf2d607a598d13d4", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "2667b344491df1781fcab9e69afa3bb4", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=11.14#11.14-052ad8764346a5f0", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "9b4b90715965ebe3a6b3002a3028a03d", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 float4 和 float8 的 hash 函数，使其对 NaN 产生一致的结果", "evidence": {"same_day": true, "patch_ids": ["30cfd0f6b649670afb706aaa8226d303", "776c7e4303496d4e1418599c0ce4659e", "e39b999a143ca1af8a83a474ea4aa4d2"], "statement_hash": "e608c6dffc368dad42aabcbdbc4839981ab37bdbd7b7140498ceb3742fc551c9"}, "url": "/docs/compare/?release=10.19#10.19-052ad8764346a5f0", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-d33a57ba63c7df07", "cves": [], "html": "<p>      防止 <code>wal_level</code> = <code>minimal</code> 时\n      <code>CREATE TABLESPACE</code> 崩溃恢复期间的数据丢失（Noah Misch）\n     </p><p>      如果服务器在 <code>CREATE TABLESPACE</code> 与下一个检查点之间崩溃，重放会完全移除新表空间目录的内容，并依赖后续的 WAL 重放来恢复该目录中的一切。这与跳过写 WAL 的优化（例如向刚创建的表执行\n      <code>COPY</code>）配合不佳。这类优化只在\n      <code>wal_level</code> 为 <code>minimal</code> 时应用，而 v10 及之后版本中这不再是默认值。\n     </p>", "text": "防止 wal_level = minimal 时 CREATE TABLESPACE 崩溃恢复期间的数据丢失（Noah Misch） 如果服务器在 CREATE TABLESPACE 与下一个检查点之间崩溃，重放会完全移除新表空间目录的内容，并依赖后续的 WAL 重放来恢复该目录中的一切。这与跳过写 WAL 的优化（例如向刚创建的表执行 COPY）配合不佳。这类优化只在 wal_level 为 minimal 时应用，而 v10 及之后版本中这不再是默认值。", "title": "防止 wal_level = minimal 时 CREATE TABLESPACE 崩溃恢复期间的数据丢失", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b9c626803531b10c255f8883cefca285595d8e0222a02163bc3fb6cb7a506d85", "section_path": ["变更"], "commit_groups": [["5513c09c8", "6ebd2426b", "978998dbd", "97ddda8a8", "a494f1023", "b18669f5e", "f11c1bb17"]], "identity_text": "Prevent data loss during crash recovery of CREATE TABLESPACE, when wal_level = minimal (Noah Misch) If the server crashed between CREATE TABLESPACE and the next checkpoint, replay would fully remove the contents of the new tablespace's directory, relying on subsequent WAL replay to restore everything within that directory. This interacts badly with optimizations that skip writing WAL (one example is COPY into a just-created table). Such optimizations are applied only when wal_level is minimal, which is not the default in v10 and later.", "commit_aliases": ["5513c09c8", "6ebd2426b", "978998dbd", "97ddda8a8", "a494f1023", "b18669f5e", "f11c1bb17"], "source_commits": ["978998dbd"], "source_entry_id": "9.6.24/changes/007", "db_id": "ef8cbd3b7156273f62645800ddb07f6e", "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4", "relations": [{"rule": 2, "type": "equivalent", "target": "4ba2c2dc5ff0a53e36d75daf831f45fd", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}, {"rule": 2, "type": "equivalent", "target": "6eeef9462a17f4bb0443c35da2454aca", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}, {"rule": 2, "type": "equivalent", "target": "82015ca1a84ddaeb224d28aa6ea66fbc", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}, {"rule": 2, "type": "equivalent", "target": "ba23d3fe41bb0c2419dc2b5eb063cd04", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6eeef9462a17f4bb0443c35da2454aca", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=13.5#13.5-dba64f5c7b076050", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "82015ca1a84ddaeb224d28aa6ea66fbc", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=12.9#12.9-19f919b00208693e", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "ba23d3fe41bb0c2419dc2b5eb063cd04", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=11.14#11.14-4180f06a01ef7687", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "4ba2c2dc5ff0a53e36d75daf831f45fd", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "防止在 wal_level = minimal 时，对 CREATE TABLESPACE 进行崩溃恢复导致数据丢失", "evidence": {"same_day": true, "patch_ids": ["071a9a3d64f57150f87e7c8f4772aa09"], "statement_hash": "d4fce76833c843416eddd25d6b79bfe5e2055c4296ae2c53db75e83464c56dc4"}, "url": "/docs/compare/?release=10.19#10.19-4180f06a01ef7687", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-97a4177256564f2d", "cves": [], "html": "<p>      不要丢弃目标为未指定类型修饰符的同一类型的转换（Tom Lane）\n     </p><p>      例如，如果列 <code>f1</code> 的类型是\n      <code>numeric(18,3)</code>，分析器过去会以它不会产生运行时效果为由，直接丢弃 <code>f1::numeric</code> 这样的强制转换。这没错，但表达式呈现出的类型仍应被视为普通\n      <code>numeric</code>，而不是 <code>numeric(18,3)</code>。这对于正确解析更大的构造（例如递归 <code>UNION</code>）的类型很重要。\n     </p>", "text": "不要丢弃目标为未指定类型修饰符的同一类型的转换（Tom Lane） 例如，如果列 f1 的类型是 numeric(18,3)，分析器过去会以它不会产生运行时效果为由，直接丢弃 f1::numeric 这样的强制转换。这没错，但表达式呈现出的类型仍应被视为普通 numeric，而不是 numeric(18,3)。这对于正确解析更大的构造（例如递归 UNION）的类型很重要。", "title": "不要丢弃目标为未指定类型修饰符的同一类型的转换", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "2700aeb142e59cd2fc91d53c45c6bdea4d6b49efa519c042fb27d3d978fe398b", "section_path": ["变更"], "commit_groups": [["183b3aced", "5c056b0c2", "914e54501", "923b7efc2", "dede14399", "e5f6493e3", "f230614da"]], "identity_text": "Don't discard a cast to the same type with unspecified type modifier (Tom Lane) For example, if column f1 is of type numeric(18,3), the parser used to simply discard a cast like f1::numeric, on the grounds that it would have no run-time effect. That's true, but the exposed type of the expression should still be considered to be plain numeric, not numeric(18,3). This is important for correctly resolving the type of larger constructs, such as recursive UNIONs.", "commit_aliases": ["183b3aced", "5c056b0c2", "914e54501", "923b7efc2", "dede14399", "e5f6493e3", "f230614da"], "source_commits": ["183b3aced"], "source_entry_id": "9.6.24/changes/008", "db_id": "cab9f92a0cb611332bd820331c837ca3", "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf", "relations": [{"rule": 2, "type": "equivalent", "target": "3f481a78e4240bfe0f1b494d43b511f7", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}, {"rule": 2, "type": "equivalent", "target": "8c2dd14797b34df9a5afca02fff27580", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}, {"rule": 2, "type": "equivalent", "target": "c47bd83d49e6cf337d1e762efc2d200b", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}, {"rule": 2, "type": "equivalent", "target": "e2b3fcaa7b119d13883b60e8c073e671", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3f481a78e4240bfe0f1b494d43b511f7", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "不要丢弃未指定类型修饰符的同类型转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=13.5#13.5-7f47318a010ee73a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "8c2dd14797b34df9a5afca02fff27580", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "不要丢弃未指定类型修饰符的同类型转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=12.9#12.9-8d47e060f23f4654", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "e2b3fcaa7b119d13883b60e8c073e671", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "不要丢弃未指定类型修饰符的同类型转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=11.14#11.14-be49d2b4726f7bfe", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "c47bd83d49e6cf337d1e762efc2d200b", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "不要丢弃未指定类型修饰符的同类型转换", "evidence": {"same_day": true, "patch_ids": ["8c530bd13429d6aff93afbf940784143"], "statement_hash": "21051367e57f5955e6ece701ec7187090c34a78575c736140f01da30f0d30adf"}, "url": "/docs/compare/?release=10.19#10.19-be49d2b4726f7bfe", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-09db23914eb48ed2", "cves": [], "html": "<p>      修复 numeric <code>power()</code> 在边界情况下精度丢失的问题（Dean Rasheed）\n     </p><p>      当第一个参数非常接近 1 时，结果可能不准确。\n     </p>", "text": "修复 numeric power() 在边界情况下精度丢失的问题（Dean Rasheed） 当第一个参数非常接近 1 时，结果可能不准确。", "title": "修复 numeric power() 在边界情况下精度丢失的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "fb6297767301aac235ef0ce5e35e8fe32e65e26f7dd526ecc9d18adb747a8985", "section_path": ["变更"], "commit_groups": [["0de8f9bc8", "4853baaac", "676218034", "8e26b868d", "9ab94ccb1", "b2a0f1673", "e54a758d2"]], "identity_text": "Fix corner-case loss of precision in numeric power() (Dean Rasheed) The result could be inaccurate when the first argument is very close to 1.", "commit_aliases": ["0de8f9bc8", "4853baaac", "676218034", "8e26b868d", "9ab94ccb1", "b2a0f1673", "e54a758d2"], "source_commits": ["0de8f9bc8"], "source_entry_id": "9.6.24/changes/009", "db_id": "b0151959d488107ae648f8f155484246", "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e", "relations": [{"rule": 2, "type": "equivalent", "target": "030a2046e24b898c1430427f489eb485", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}, {"rule": 2, "type": "equivalent", "target": "27be00824a0ba04d07e8342cfa7a32d4", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}, {"rule": 2, "type": "equivalent", "target": "6491fe99ed8928515123587023572951", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}, {"rule": 2, "type": "equivalent", "target": "6c00cd1a9719b140cfc2aef71bb278b7", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}, {"rule": 2, "type": "equivalent", "target": "cd933cbfcf6d477b9f3b6c5701011026", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "030a2046e24b898c1430427f489eb485", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 numeric power() 在边界情况下的精度损失", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=14.1#14.1-241308668d1bbfbf", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "6491fe99ed8928515123587023572951", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 numeric power() 在边界情况下的精度损失", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=13.5#13.5-673ee8b61e23f79f", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "6c00cd1a9719b140cfc2aef71bb278b7", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 numeric power() 在边界情况下的精度损失", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=12.9#12.9-549a5c9fbc154743", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "27be00824a0ba04d07e8342cfa7a32d4", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 numeric power() 在边界情况下的精度损失", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=11.14#11.14-6420565bfd2d0564", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "cd933cbfcf6d477b9f3b6c5701011026", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 numeric power() 在边界情况下的精度损失", "evidence": {"same_day": true, "patch_ids": ["4b82febc4123016fe162fda896e5096a"], "statement_hash": "b0547be94ca14fba6bb5eadae168aa510a0a4e2d9df71fb7527ea9e3ef69899e"}, "url": "/docs/compare/?release=10.19#10.19-6420565bfd2d0564", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-daa46723b2831e41", "cves": [], "html": "<p>      避免捕获圆括号位于 <code>{0}</code> 内部时引发的正则表达式错误（Tom Lane）\n     </p><p>      形如 <code>(.){0}...\\1</code> 的正则表达式会报<span>“<span>invalid backreference number</span>”</span>。其他正则引擎（例如 TCL）在这里不报错，因此这种模式可能在应用中被使用。\n     </p>", "text": "避免捕获圆括号位于 {0} 内部时引发的正则表达式错误（Tom Lane） 形如 (.){0}...\\1 的正则表达式会报“invalid backreference number”。其他正则引擎（例如 TCL）在这里不报错，因此这种模式可能在应用中被使用。", "title": "避免捕获圆括号位于 {0} 内部时引发的正则表达式错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "421dcafa072ec4886a6774ca38f68b75a455aabe38c0aeef410757069c8229bd", "section_path": ["变更"], "commit_groups": [["062c4c791", "071146184", "244dd7992", "3ebd32e70", "65dc30ced", "7e75fe390", "92620e82f"]], "identity_text": "Avoid regular expression errors with capturing parentheses inside {0} (Tom Lane) Regular expressions like (.){0}...\\1 drew invalid backreference number. Other regexp engines such as Perl don't complain, though, and for that matter ours doesn't either in some closely related cases. Worse, it could throw an assertion failure instead. Fix it so that no error is thrown and instead the back-reference is silently deemed to never match.", "commit_aliases": ["062c4c791", "071146184", "244dd7992", "3ebd32e70", "65dc30ced", "7e75fe390", "92620e82f"], "source_commits": ["7e75fe390"], "source_entry_id": "9.6.24/changes/010", "db_id": "0851f9c822462108d03b12b8a676de26", "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5", "relations": [{"rule": 2, "type": "equivalent", "target": "6137a626b6ebdca900a21e159963b0e1", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}, {"rule": 2, "type": "equivalent", "target": "a2b6b5277ba16d3a7ac847e98f5f3c6c", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}, {"rule": 2, "type": "equivalent", "target": "c8719989d0e5fd9df8c5fff17f6bb8d1", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}, {"rule": 2, "type": "equivalent", "target": "d7e27d3c44914e575f270c53720f8215", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6137a626b6ebdca900a21e159963b0e1", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=13.5#13.5-f946ab4d4a4c4562", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "a2b6b5277ba16d3a7ac847e98f5f3c6c", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=12.9#12.9-40472a515c7bfd50", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "c8719989d0e5fd9df8c5fff17f6bb8d1", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=11.14#11.14-de4981f6ecebcdbe", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "d7e27d3c44914e575f270c53720f8215", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免 {0} 内部存在捕获括号时出现正则表达式错误", "evidence": {"same_day": true, "patch_ids": ["ac8072e63193fa4afb162f0fb61510c1"], "statement_hash": "73ee70b21091ad4b554e7d395f977e35d597a5579e85c713b18b83eb629733a5"}, "url": "/docs/compare/?release=10.19#10.19-de4981f6ecebcdbe", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-646116d0661b60f3", "cves": [], "html": "<p>      防止正则表达式反向引用在不应匹配时有时仍匹配（Tom Lane）\n     </p><p>      正则引擎在拒绝部分匹配后，没有认真清除捕获圆括号的匹配数据。这可能使后面的反向引用在因缺少被引用者而应当失败的地方匹配成功。\n     </p>", "text": "防止正则表达式反向引用在不应匹配时有时仍匹配（Tom Lane） 正则引擎在拒绝部分匹配后，没有认真清除捕获圆括号的匹配数据。这可能使后面的反向引用在因缺少被引用者而应当失败的地方匹配成功。", "title": "防止正则表达式反向引用在不应匹配时有时仍匹配", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b703da5f441b3815e1185d0d018dbd677d200ef89997675b5f58bde49671e19c", "section_path": ["变更"], "commit_groups": [["08e080756", "779557bd2", "9a327179c", "9bbf6f734", "b9521a1f9", "d90e14414", "df87b7c44"]], "identity_text": "Prevent regular expression back-references from sometimes matching when they shouldn't (Tom Lane) The regexp engine was careless about clearing match data for capturing parentheses after rejecting a partial match. This could allow a later back-reference to match in places where it should fail for lack of a defined referent.", "commit_aliases": ["08e080756", "779557bd2", "9a327179c", "9bbf6f734", "b9521a1f9", "d90e14414", "df87b7c44"], "source_commits": ["d90e14414"], "source_entry_id": "9.6.24/changes/011", "db_id": "db98f99b0d1f6903dbfc5e3be4d5387c", "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a", "relations": [{"rule": 2, "type": "equivalent", "target": "210ecd50c09b115e6bd2066d62f997f8", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}, {"rule": 2, "type": "equivalent", "target": "5a3f5610fed82ab625e04525006e0607", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}, {"rule": 2, "type": "equivalent", "target": "dde6640a815b7ab63041151f90246968", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}, {"rule": 2, "type": "equivalent", "target": "fd9076c2292385c1b7f2613b7dd2add3", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "210ecd50c09b115e6bd2066d62f997f8", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=13.5#13.5-b4fd8549fa48ccc0", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "fd9076c2292385c1b7f2613b7dd2add3", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=12.9#12.9-d7f665f17d71c527", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "5a3f5610fed82ab625e04525006e0607", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=11.14#11.14-bbc027e805c07736", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "dde6640a815b7ab63041151f90246968", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "防止正则表达式的反向引用有时在不应匹配的情况下匹配", "evidence": {"same_day": true, "patch_ids": ["b1c650c52b2231b4a4b21c0027689de7"], "statement_hash": "4e41689ff5ea5613f17239813c5f16672a3db2a03e4af9a0dbb5d1abbbf2d62a"}, "url": "/docs/compare/?release=10.19#10.19-bbc027e805c07736", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-502282f690b48a6b", "cves": [], "html": "<p>      修复反向引用位于迭代节点内部时正则表达式的性能问题（Tom Lane）\n     </p><p>      不正确的回溯逻辑可能导致寻找匹配的时间呈指数增长。幸运的是，该问题在大多数情况下被其他优化所掩盖。\n     </p>", "text": "修复反向引用位于迭代节点内部时正则表达式的性能问题（Tom Lane） 不正确的回溯逻辑可能导致寻找匹配的时间呈指数增长。幸运的是，该问题在大多数情况下被其他优化所掩盖。", "title": "修复反向引用位于迭代节点内部时正则表达式的性能问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "ecb9fe4ff5547810477aba35802718029a2a93a5b91508592eb655076d738b81", "section_path": ["变更"], "commit_groups": [["57a2d4a1b", "9610852ab", "adbfde3db", "b30f7f399", "cafebd663", "e0f2acf26", "facce1da9"]], "identity_text": "Fix regular expression performance bug with back-references inside iteration nodes (Tom Lane) Incorrect back-tracking logic could result in exponential time spent looking for a match. Fortunately the problem is masked in most cases by other optimizations.", "commit_aliases": ["57a2d4a1b", "9610852ab", "adbfde3db", "b30f7f399", "cafebd663", "e0f2acf26", "facce1da9"], "source_commits": ["cafebd663"], "source_entry_id": "9.6.24/changes/012", "db_id": "42e028519e0ba2febe6342873cebc1f7", "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7", "relations": [{"rule": 2, "type": "equivalent", "target": "4fced0b9275aaf74765209b7f904b28c", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}, {"rule": 2, "type": "equivalent", "target": "688ccbc9cb0855becfc0adcfaf70a154", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}, {"rule": 2, "type": "equivalent", "target": "e2a9330ca2af18a79c0bbb6006eabfad", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}, {"rule": 2, "type": "equivalent", "target": "fcda11b7a0efa290fbe039d6e34ab27d", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fcda11b7a0efa290fbe039d6e34ab27d", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=13.5#13.5-327417f31c652548", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "688ccbc9cb0855becfc0adcfaf70a154", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=12.9#12.9-446f89346a6d1c1d", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "e2a9330ca2af18a79c0bbb6006eabfad", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=11.14#11.14-acfd58a3252d574e", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "4fced0b9275aaf74765209b7f904b28c", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复迭代节点内部反向引用的正则表达式性能缺陷", "evidence": {"same_day": true, "patch_ids": ["ca995b6f0b4e12f4f5b3a9fbaac6d7cf"], "statement_hash": "d711e71fca443e4192f043832c6c67ca1bfc20ba5400281227f91b1c702608f7"}, "url": "/docs/compare/?release=10.19#10.19-acfd58a3252d574e", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-a39c99bea3f06bbd", "cves": [], "html": "<p>      修复对 <code>time with time zone</code> 值应用 <code>AT TIME\n      ZONE</code> 时结果错误的问题（Tom Lane）\n     </p><p>      如果目标时区是由动态时区缩写（即定义为等价于完整时区名而非固定 UTC\n      偏移量的缩写）指定的，则结果是错误的。\n     </p>", "text": "修复对 time with time zone 值应用 AT TIME ZONE 时结果错误的问题（Tom Lane） 如果目标时区是由动态时区缩写（即定义为等价于完整时区名而非固定 UTC 偏移量的缩写）指定的，则结果是错误的。", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时结果错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "6bdfa95485870ff0e928254fc2740fbd86101d1127f76dd8c99b267540a2886e", "section_path": ["变更"], "commit_groups": [["5907c3818", "599c73a91", "90b4647f6", "b28c862a6", "d8a266c5e", "eb3c8d248"]], "identity_text": "Fix incorrect results from AT TIME ZONE applied to a time with time zone value (Tom Lane) The results were incorrect if the target time zone was specified by a dynamic timezone abbreviation (that is, one that is defined as equivalent to a full time zone name, rather than a fixed UTC offset).", "commit_aliases": ["5907c3818", "599c73a91", "90b4647f6", "b28c862a6", "d8a266c5e", "eb3c8d248"], "source_commits": ["5907c3818"], "source_entry_id": "9.6.24/changes/013", "db_id": "1cbe7ac9a3e48112574b93b9c4337936", "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce", "relations": [{"rule": 2, "type": "equivalent", "target": "02ca028508a70046df9141999d0af648", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}, {"rule": 2, "type": "equivalent", "target": "1d98d253603f63b72170b1a21fa26ecb", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}, {"rule": 2, "type": "equivalent", "target": "873842f3b76c836d3d0b43d915bf20ff", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}, {"rule": 2, "type": "equivalent", "target": "fa17b8425ecd09a5d4c77915aacbe62f", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d98d253603f63b72170b1a21fa26ecb", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=13.5#13.5-5852d98035c78c4e", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "873842f3b76c836d3d0b43d915bf20ff", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=12.9#12.9-79e3fbdf7c3057f9", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "fa17b8425ecd09a5d4c77915aacbe62f", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=11.14#11.14-e53c6799b48f5e3b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "02ca028508a70046df9141999d0af648", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复对 time with time zone 值应用 AT TIME ZONE 时产生的错误结果", "evidence": {"same_day": true, "patch_ids": ["a8a2a6fdc53af4d8d9b4a60205364d39"], "statement_hash": "dfe689ee8ff08f4cb66de5ed4c6419781413d22556868301e734c823230de9ce"}, "url": "/docs/compare/?release=10.19#10.19-e53c6799b48f5e3b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-a6915ef6bfbcb58d", "cves": [], "html": "<p>      修复事务在导出快照后失败时的正确清理（Dilip Kumar）\n     </p><p>      这一疏漏只有当同一会话再次尝试导出快照时才会造成问题。最可能的场景是创建一个复制槽（随后回滚），然后再创建另一个复制槽。\n     </p>", "text": "修复事务在导出快照后失败时的正确清理（Dilip Kumar） 这一疏漏只有当同一会话再次尝试导出快照时才会造成问题。最可能的场景是创建一个复制槽（随后回滚），然后再创建另一个复制槽。", "title": "修复事务在导出快照后失败时的正确清理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "8787c9584db1a5273df78bb34d313c22d73698b97b885af9beb032c93dd1cb93", "section_path": ["变更"], "commit_groups": [["409f9ca44", "506aa1f71", "5b353aaff", "8f4fe8d7f", "a207b8521", "d1a6a08df", "f49bf8263"]], "identity_text": "Clean up correctly if a transaction fails after exporting its snapshot (Dilip Kumar) This oversight would only cause a problem if the same session attempted to export a snapshot again. The most likely scenario for that is creation of a replication slot (followed by rollback) and then creation of another replication slot.", "commit_aliases": ["409f9ca44", "506aa1f71", "5b353aaff", "8f4fe8d7f", "a207b8521", "d1a6a08df", "f49bf8263"], "source_commits": ["f49bf8263"], "source_entry_id": "9.6.24/changes/014", "db_id": "00ed973f66eee22cad354bd48bbcaac9", "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4", "relations": [{"rule": 2, "type": "equivalent", "target": "2a6d4610a6f5aae215be59292ae31f23", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}, {"rule": 2, "type": "equivalent", "target": "2cdb632e8ea189be5b2edfd5de9df713", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}, {"rule": 2, "type": "equivalent", "target": "7fd74714d89c82665748bdf2f6d7574b", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}, {"rule": 2, "type": "equivalent", "target": "cea2acf8b2beaa8c1eb10702b8eff1a0", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}, {"rule": 2, "type": "equivalent", "target": "d84d87ff6a70c047ba38c6f69e2653cd", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2a6d4610a6f5aae215be59292ae31f23", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保在事务导出快照后失败时正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=14.1#14.1-3e0b45737d95faa1", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "d84d87ff6a70c047ba38c6f69e2653cd", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保在事务导出快照后失败时正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=13.5#13.5-321ab322cdafb3a7", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "cea2acf8b2beaa8c1eb10702b8eff1a0", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保在事务导出快照后失败时正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=12.9#12.9-fa60923e993daf99", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "7fd74714d89c82665748bdf2f6d7574b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保在事务导出快照后失败时正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=11.14#11.14-e5ef99ca1548f8a2", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "2cdb632e8ea189be5b2edfd5de9df713", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保在事务导出快照后失败时正确清理", "evidence": {"same_day": true, "patch_ids": ["45c668a53c878aed7071046371c8a51e"], "statement_hash": "d2d52f4bd7de6ce5ae7f2bd29e6a6bf8cfc7153c31d5a525e30df178a6068df4"}, "url": "/docs/compare/?release=10.19#10.19-e5ef99ca1548f8a2", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-36216625593cacab", "cves": [], "html": "<p>      防止备库服务器上溢出子事务追踪的回卷（Kyotaro Horiguchi、Alexander Korotkov）\n     </p><p>      这一疏漏可能导致备库服务器显著的性能退化（表现为过多的 SubtransSLRU\n      流量）。\n     </p>", "text": "防止备库服务器上溢出子事务追踪的回卷（Kyotaro Horiguchi、Alexander Korotkov） 这一疏漏可能导致备库服务器显著的性能退化（表现为过多的 SubtransSLRU 流量）。", "title": "防止备库服务器上溢出子事务追踪的回卷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "6abd1e3c7f822d9f1b2794cec62735763771c547b0192ded6977190711009215", "section_path": ["变更"], "commit_groups": [["05e6e78c1", "691c0df73", "7381b79ad", "774d00573", "8f779a1a3", "b0f6bd48f", "e1fee28a0"]], "identity_text": "Prevent wraparound of overflowed-subtransaction tracking on standby servers (Kyotaro Horiguchi, Alexander Korotkov) This oversight could cause significant performance degradation (manifesting as excessive SubtransSLRU traffic) on standby servers.", "commit_aliases": ["05e6e78c1", "691c0df73", "7381b79ad", "774d00573", "8f779a1a3", "b0f6bd48f", "e1fee28a0"], "source_commits": ["7381b79ad"], "source_entry_id": "9.6.24/changes/015", "db_id": "8c7aa33bdc5e564c16f43b906dca889e", "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9", "relations": [{"rule": 2, "type": "equivalent", "target": "1b931f8fd7d6f996bd4ac4bdfc4c5936", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}}, {"rule": 2, "type": "equivalent", "target": "3a3a1a407a6152538920dd69792d6335", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}}, {"rule": 2, "type": "equivalent", "target": "5bf52cc052839206430aa6e4a5ab2257", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}}, {"rule": 2, "type": "equivalent", "target": "681fa4ef8a9b0916a317639eff1339e9", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}}, {"rule": 2, "type": "equivalent", "target": "f5f12fd70da2e82aa43c21d25bf6de44", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1b931f8fd7d6f996bd4ac4bdfc4c5936", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "防止备库上溢出子事务跟踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=14.1#14.1-145cfc88539998a5", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "3a3a1a407a6152538920dd69792d6335", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "防止备库上溢出子事务跟踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=13.5#13.5-6faf1363b8eb1c6a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "5bf52cc052839206430aa6e4a5ab2257", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "防止备库上溢出子事务跟踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=12.9#12.9-730d0abed4e714a4", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "f5f12fd70da2e82aa43c21d25bf6de44", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "防止备库上溢出子事务跟踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=11.14#11.14-206ba2128f9d77b0", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "681fa4ef8a9b0916a317639eff1339e9", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "防止备库上溢出子事务跟踪的回卷", "evidence": {"same_day": true, "patch_ids": ["656203a1b34aa6ac3e30a0af7b9da8e4"], "statement_hash": "1b1e81707766cb617666b1a2109e1ba23e865b8f9899d13da403ac12935235d9"}, "url": "/docs/compare/?release=10.19#10.19-206ba2128f9d77b0", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-249aeaa2b0e37e14", "cves": [], "html": "<p>      确保在备库服务器提升期间正确统计预备事务（Michael Paquier、Andres Freund）\n     </p><p>      在一个狭窄的时间窗口内，预备事务可能被并发运行会话所拍的快照遗漏。如果该会话随后使用该快照执行数据更新，可能导致错误结果或数据损坏。\n     </p>", "text": "确保在备库服务器提升期间正确统计预备事务（Michael Paquier、Andres Freund） 在一个狭窄的时间窗口内，预备事务可能被并发运行会话所拍的快照遗漏。如果该会话随后使用该快照执行数据更新，可能导致错误结果或数据损坏。", "title": "确保在备库服务器提升期间正确统计预备事务", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "e6cae4f13dd9878532e92dc57ef34923913ffada9b05f4c37b4b1c6b3d52051a", "section_path": ["变更"], "commit_groups": [["0a561d4d0", "194e535a0", "3c3f118d5", "828f7f000", "8a4237908", "8a6a1fe07", "e2b2a9e1c"]], "identity_text": "Ensure that prepared transactions are properly accounted for during promotion of a standby server (Michael Paquier, Andres Freund) There was a narrow window where a prepared transaction could be omitted from a snapshot taken by a concurrently-running session. If that session then used the snapshot to perform data updates, erroneous results or data corruption could occur.", "commit_aliases": ["0a561d4d0", "194e535a0", "3c3f118d5", "828f7f000", "8a4237908", "8a6a1fe07", "e2b2a9e1c"], "source_commits": ["e2b2a9e1c"], "source_entry_id": "9.6.24/changes/016", "db_id": "7b6a64f86be7d64af165898c7392b416", "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4", "relations": [{"rule": 2, "type": "equivalent", "target": "019600634a5a25a4a59c9231fe378ad5", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}, {"rule": 2, "type": "equivalent", "target": "477487d44f47e562b13d9d7f0906e5d9", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}, {"rule": 2, "type": "equivalent", "target": "574b9aff44b85a3689d0b0c052e479e2", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}, {"rule": 2, "type": "equivalent", "target": "6412f7045465fdb83a2ae55bfabca6d4", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}, {"rule": 2, "type": "equivalent", "target": "853b4815acddfd292720df231fbf9390", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "477487d44f47e562b13d9d7f0906e5d9", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=14.1#14.1-1a51cb18db7c3adb", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "019600634a5a25a4a59c9231fe378ad5", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=13.5#13.5-80dc5538a590895d", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "574b9aff44b85a3689d0b0c052e479e2", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=12.9#12.9-878b7036fa7841c3", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "853b4815acddfd292720df231fbf9390", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=11.14#11.14-061a5ba9c6e25e88", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "6412f7045465fdb83a2ae55bfabca6d4", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保在备库提升期间正确地将预备事务纳入考虑", "evidence": {"same_day": true, "patch_ids": ["861446997b59209e02076d80c8b3d9f3"], "statement_hash": "0088933441c7a2aabc4d1eb1312680708a5b883b1d0a53619d43944701aa41b4"}, "url": "/docs/compare/?release=10.19#10.19-061a5ba9c6e25e88", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-e2e50c835079a809", "cves": [], "html": "<p>      修复对已增长到最大允许长度的关系的检测（Tom Lane）\n     </p><p>      把表或索引扩展到 2^32-1 块上限的尝试会被拒绝，但拒绝得不够及时，未能阻止不一致的内部状态被创建。\n     </p>", "text": "修复对已增长到最大允许长度的关系的检测（Tom Lane） 把表或索引扩展到 2^32-1 块上限的尝试会被拒绝，但拒绝得不够及时，未能阻止不一致的内部状态被创建。", "title": "修复对已增长到最大允许长度的关系的检测", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "47d666192e00d3d171274f1c607b8c3cdf5a870122dd953b62c48dd88db0de7a", "section_path": ["变更"], "commit_groups": [["04118de78", "1a23b669d", "7430c7742", "8481f9989", "a7a73ce30", "ca1dd6234", "cc4de2bba"]], "identity_text": "Fix detection of a relation that has grown to the maximum allowed length (Tom Lane) An attempt to extend a table or index past the limit of 2^32-1 blocks was rejected, but not soon enough to prevent inconsistent internal state from being created.", "commit_aliases": ["04118de78", "1a23b669d", "7430c7742", "8481f9989", "a7a73ce30", "ca1dd6234", "cc4de2bba"], "source_commits": ["cc4de2bba"], "source_entry_id": "9.6.24/changes/017", "db_id": "68b7bde5631885e9119726942741ac7c", "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0", "relations": [{"rule": 2, "type": "equivalent", "target": "02620a82d9fe5a2e97b9aa2ab6ca0618", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}, {"rule": 2, "type": "equivalent", "target": "0cb33bedf43543570b1af1b969554aa1", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}, {"rule": 2, "type": "equivalent", "target": "4a9be823ec1a5ece64a803992b674622", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}, {"rule": 2, "type": "equivalent", "target": "9ad8ebd9b82c34b47199eabd351bcb79", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ad8ebd9b82c34b47199eabd351bcb79", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=13.5#13.5-8f5bff695c654adf", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "0cb33bedf43543570b1af1b969554aa1", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=12.9#12.9-cb626cd9aff10613", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "02620a82d9fe5a2e97b9aa2ab6ca0618", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=11.14#11.14-e2e50c835079a809", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "4a9be823ec1a5ece64a803992b674622", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复对已增长到最大允许长度的关系的检测", "evidence": {"same_day": true, "patch_ids": ["39895caf46f6f0b8460331ddc95767fc"], "statement_hash": "c49a6ab8b82ca7d0fcaa2d8e0c486b7368d7849cf2acf0523670c492fac747f0"}, "url": "/docs/compare/?release=10.19#10.19-e2e50c835079a809", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-9d403b0de29d5732", "cves": [], "html": "<p>      在扩展使用 <code>DO INSTEAD</code> 的规则时，正确跟踪存在数据修改 CTE 的情况（Greg Nancarrow、Tom Lane）\n     </p><p>      此前未能做到这一点可能导致诸如不安全地选择并行计划之类的问题。\n     </p>", "text": "在扩展使用 DO INSTEAD 的规则时，正确跟踪存在数据修改 CTE 的情况（Greg Nancarrow、Tom Lane） 此前未能做到这一点可能导致诸如不安全地选择并行计划之类的问题。", "title": "在扩展使用 DO INSTEAD 的规则时，正确跟踪存在数据修改 CTE 的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "9cfb6796b69dbe171fd42398ae2e81e9f9a8b2555d06dc63783fc8464ad2062f", "section_path": ["变更"], "commit_groups": [["03d01d746", "1fedbcc7a", "362e2dcc4", "595ab8a54", "882b7e728", "9de082399", "cbba6ba3a"]], "identity_text": "Correctly track the presence of data-modifying CTEs when expanding a DO INSTEAD rule (Greg Nancarrow, Tom Lane) The previous failure to do this could lead to problems such as unsafely choosing a parallel plan.", "commit_aliases": ["03d01d746", "1fedbcc7a", "362e2dcc4", "595ab8a54", "882b7e728", "9de082399", "cbba6ba3a"], "source_commits": ["595ab8a54"], "source_entry_id": "9.6.24/changes/018", "db_id": "0a4376a7c1aa202e64b47d72e3255bb3", "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf", "relations": [{"rule": 2, "type": "equivalent", "target": "564803e6c1db05d5ea401ac3487524e9", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}, {"rule": 2, "type": "equivalent", "target": "909e1f16e1911b23c664098f46c319d9", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}, {"rule": 2, "type": "equivalent", "target": "97b2e67152c79cd5cf728020b5a4bfc9", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}, {"rule": 2, "type": "equivalent", "target": "ea32fbf02af669812d61b1a2b53dfd4c", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ea32fbf02af669812d61b1a2b53dfd4c", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=13.5#13.5-ec01a885700fdb23", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "97b2e67152c79cd5cf728020b5a4bfc9", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=12.9#12.9-d816ab86053cc740", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "564803e6c1db05d5ea401ac3487524e9", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=11.14#11.14-3cecd7d848d6bee1", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "909e1f16e1911b23c664098f46c319d9", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "展开 DO INSTEAD 规则时，正确跟踪是否存在修改数据的 CTE", "evidence": {"same_day": true, "patch_ids": ["057c2b71b2f77868af92645fa0e1f763"], "statement_hash": "da8425ae36de94b338035839a37fef96979ca52b7f6b9f538d3f57a49451fbcf"}, "url": "/docs/compare/?release=10.19#10.19-3cecd7d848d6bee1", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-54eb6f8205fc3dd0", "cves": [], "html": "<p>      确保 walreceiver 进程在退出之前创建所有必需的归档通知文件（Fujii Masao）\n     </p><p>      如果 walreceiver 恰好在 WAL 段边界处退出，它不会为最后接收的段创建通知文件，从而延迟了该段在备库上的归档。\n     </p>", "text": "确保 walreceiver 进程在退出之前创建所有必需的归档通知文件（Fujii Masao） 如果 walreceiver 恰好在 WAL 段边界处退出，它不会为最后接收的段创建通知文件，从而延迟了该段在备库上的归档。", "title": "确保 walreceiver 进程在退出之前创建所有必需的归档通知文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b1bde61d84823f610c86ca56c8ef1e60a6c31b91a683bcbd3f0e268b384f5e8f", "section_path": ["变更"], "commit_groups": [["466535254", "596ba75cb", "61e2aa2db", "aacb3cfaf", "b5ec22bf5", "dd9b3fced", "f77489046"]], "identity_text": "Ensure that walreceiver processes create all required archive notification files before exiting (Fujii Masao) If a walreceiver exited exactly at a WAL segment boundary, it failed to make a notification file for the last-received segment, thus delaying archiving of that segment on the standby.", "commit_aliases": ["466535254", "596ba75cb", "61e2aa2db", "aacb3cfaf", "b5ec22bf5", "dd9b3fced", "f77489046"], "source_commits": ["61e2aa2db"], "source_entry_id": "9.6.24/changes/019", "db_id": "60eb726588a2a97005b0cbf8a9144c09", "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773", "relations": [{"rule": 2, "type": "equivalent", "target": "05e4a5dd4548e1babf402942954f6aec", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}, {"rule": 2, "type": "equivalent", "target": "570e6a7b74301e76effec9d7207286b2", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}, {"rule": 2, "type": "equivalent", "target": "5ecd1622713295afe5325e4bcfead745", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}, {"rule": 2, "type": "equivalent", "target": "65e3b6d584270d4556d9c65e10b466b0", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ecd1622713295afe5325e4bcfead745", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=13.5#13.5-8d321f3fc937a37f", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "05e4a5dd4548e1babf402942954f6aec", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=12.9#12.9-d6f6a0f8947bc443", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "65e3b6d584270d4556d9c65e10b466b0", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=11.14#11.14-e9ef48ebd8ccbc08", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "570e6a7b74301e76effec9d7207286b2", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保 WAL 接收进程进程在退出前创建所有必需的归档通知文件", "evidence": {"same_day": true, "patch_ids": ["e8d2e05147f585bd3aaa760507ab5018"], "statement_hash": "73cb1a8d17a8542a2087cdb32aafabff1eede07913ac86b919bb5a234c1c4773"}, "url": "/docs/compare/?release=10.19#10.19-e9ef48ebd8ccbc08", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-a6acd6c6780525b2", "cves": [], "html": "<p>      避免在使用 <code>SELECT FOR UPDATE</code> 的规则中尝试锁定\n      <code>OLD</code> 和 <code>NEW</code> 伪关系（Masahiko Sawada、Tom Lane）\n     </p>", "text": "避免在使用 SELECT FOR UPDATE 的规则中尝试锁定 OLD 和 NEW 伪关系（Masahiko Sawada、Tom Lane）", "title": "避免在使用 SELECT FOR UPDATE 的规则中尝试锁定 OLD 和 NEW 伪关系", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "431ed2e5964e1204881ab85e0fbe645f5aac4eb7f3f825839cbbc28d4736b248", "section_path": ["变更"], "commit_groups": [["0c13ee198", "2739a2810", "464900393", "7fa367d96", "8d2d6ec77", "cc7fae5c2", "fbc1eed8a"]], "identity_text": "Avoid trying to lock the OLD and NEW pseudo-relations in a rule that uses SELECT FOR UPDATE (Masahiko Sawada, Tom Lane)", "commit_aliases": ["0c13ee198", "2739a2810", "464900393", "7fa367d96", "8d2d6ec77", "cc7fae5c2", "fbc1eed8a"], "source_commits": ["cc7fae5c2"], "source_entry_id": "9.6.24/changes/020", "db_id": "6c7d070586d47d9e4ac0a14cda01b87f", "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7", "relations": [{"rule": 2, "type": "equivalent", "target": "14c7b3a2b8155f7e2820c0cc1e8dd18a", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}, {"rule": 2, "type": "equivalent", "target": "28165fbc6b3b9618c7b7111677dd97f7", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}, {"rule": 2, "type": "equivalent", "target": "39462c99ee92e6fbf700e8275c02d5f8", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}, {"rule": 2, "type": "equivalent", "target": "4f1b7383a2ae9a4d9d4ff94f8efcf494", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "39462c99ee92e6fbf700e8275c02d5f8", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=13.5#13.5-318f460d557a7048", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "4f1b7383a2ae9a4d9d4ff94f8efcf494", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=12.9#12.9-56669339e9e4b841", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "14c7b3a2b8155f7e2820c0cc1e8dd18a", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=11.14#11.14-935e0586b7b3777a", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "28165fbc6b3b9618c7b7111677dd97f7", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免尝试锁定使用 SELECT FOR UPDATE 的规则中的 OLD 和 NEW 伪关系", "evidence": {"same_day": true, "patch_ids": ["808cc76c073c17f5cc87b24e6af4b486"], "statement_hash": "087f976aae03c0b31b9c25d4859316badfa5fe09983f400876ce1b00b064ade7"}, "url": "/docs/compare/?release=10.19#10.19-935e0586b7b3777a", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-106e9180970765ca", "cves": [], "html": "<p>      修复分析器对聚合 <code>FILTER</code> 子句的处理（Tom Lane）\n     </p><p>      如果 <code>FILTER</code> 表达式是一个普通的布尔列，聚合的语义层级可能被错误判定，导致不符合规范的行为。如果\n      <code>FILTER</code> 表达式本身是返回布尔的聚合，本应抛出错误却没有抛出，很可能导致执行时崩溃。\n     </p>", "text": "修复分析器对聚合 FILTER 子句的处理（Tom Lane） 如果 FILTER 表达式是一个普通的布尔列，聚合的语义层级可能被错误判定，导致不符合规范的行为。如果 FILTER 表达式本身是返回布尔的聚合，本应抛出错误却没有抛出，很可能导致执行时崩溃。", "title": "修复分析器对聚合 FILTER 子句的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "c60f693c94f32a5042c233fd4388dbc49e2869161c7d5cee5e815c88005a8c65", "section_path": ["变更"], "commit_groups": [["2313dda9d", "61f9dae2c", "82ad7ecb4", "a65319f09", "c09f56fed", "eb2f59b34", "ecd4dd9f1"]], "identity_text": "Fix parser's processing of aggregate FILTER clauses (Tom Lane) If the FILTER expression is a plain boolean column, the semantic level of the aggregate could be mis-determined, leading to not-per-spec behavior. If the FILTER expression is itself a boolean-returning aggregate, an error should be thrown but was not, likely resulting in a crash at execution.", "commit_aliases": ["2313dda9d", "61f9dae2c", "82ad7ecb4", "a65319f09", "c09f56fed", "eb2f59b34", "ecd4dd9f1"], "source_commits": ["c09f56fed"], "source_entry_id": "9.6.24/changes/021", "db_id": "f45531e529dca8d85db9a46a9cbf39e3", "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d", "relations": [{"rule": 2, "type": "equivalent", "target": "37ee40c887d80b0d9873d3eab1f7a09e", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}, {"rule": 2, "type": "equivalent", "target": "60b81e312dd395c4c302758f033ae357", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}, {"rule": 2, "type": "equivalent", "target": "6dc94628aca27ac286ebe39f0461c9ff", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}, {"rule": 2, "type": "equivalent", "target": "bab3c9495a1ecfddebc528e663260838", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "60b81e312dd395c4c302758f033ae357", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复解析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=13.5#13.5-41bd70ef2b3eb66d", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "37ee40c887d80b0d9873d3eab1f7a09e", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复解析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=12.9#12.9-3b5a8c412fbb65ad", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "bab3c9495a1ecfddebc528e663260838", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复解析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=11.14#11.14-409f408bb5bfd268", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "6dc94628aca27ac286ebe39f0461c9ff", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复解析器对聚合 FILTER 子句的处理", "evidence": {"same_day": true, "patch_ids": ["87bea86b2d524f4921ff41241cfc1611"], "statement_hash": "03c04a32dc017ec2a84b5afa3e4611ca72cbc895f04adbde53f062c0ad2b104d"}, "url": "/docs/compare/?release=10.19#10.19-409f408bb5bfd268", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-2be55d1a273bcd84", "cves": [], "html": "<p>      避免删除一个拥有正被并发删除的对象的角色时出现空指针解引用崩溃（Álvaro Herrera）\n     </p>", "text": "避免删除一个拥有正被并发删除的对象的角色时出现空指针解引用崩溃（Álvaro Herrera）", "title": "避免删除一个拥有正被并发删除的对象的角色时出现空指针解引用崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b1c03fdc0a36f21c537cc7bcf2e9afeffc7d51cb62c26b22540340a21e01e159", "section_path": ["变更"], "commit_groups": [["02e20bb2d", "3eff168a2", "58b600f64", "92224e470", "bf5cdcfd5", "d74b54b3d", "e0eaeafd6"]], "identity_text": "Avoid null-pointer-dereference crash when dropping a role that owns objects being dropped concurrently (Álvaro Herrera)", "commit_aliases": ["02e20bb2d", "3eff168a2", "58b600f64", "92224e470", "bf5cdcfd5", "d74b54b3d", "e0eaeafd6"], "source_commits": ["e0eaeafd6"], "source_entry_id": "9.6.24/changes/022", "db_id": "25a21cb05a216d3801e7ffc008cd7002", "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b", "relations": [{"rule": 2, "type": "equivalent", "target": "35dd58209a52297928c71f083a337bce", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}, {"rule": 2, "type": "equivalent", "target": "6bf63f202bb26893963338516a1d04ce", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}, {"rule": 2, "type": "equivalent", "target": "7b0e5e8f2def578a594266b2344df121", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}, {"rule": 2, "type": "equivalent", "target": "8d7f7c8ab514055c493684736147c915", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}, {"rule": 2, "type": "equivalent", "target": "d415d54f26d7e6277ddb652d13db5914", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8d7f7c8ab514055c493684736147c915", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=14.1#14.1-fe52717b9f6be91d", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "d415d54f26d7e6277ddb652d13db5914", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=13.5#13.5-96d1210694672ff3", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "7b0e5e8f2def578a594266b2344df121", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=12.9#12.9-ac45c79408354298", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "6bf63f202bb26893963338516a1d04ce", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=11.14#11.14-ab408a77b5206eef", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "35dd58209a52297928c71f083a337bce", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免在删除拥有正在被并发删除的对象的角色时出现空指针解引用崩溃", "evidence": {"same_day": true, "patch_ids": ["0e891f46c956cb40b20f92bceb89e231"], "statement_hash": "a19826169aa5be0a3d3714197b9490bdda8aea3d34fb4dd833061dba1219126b"}, "url": "/docs/compare/?release=10.19#10.19-ab408a77b5206eef", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-9fc13e6681b127f7", "cves": [], "html": "<p>      防止 <code>lo_export()</code> 或相关函数失败时出现<span>“<span>snapshot reference leak</span>”</span>警告（Heikki Linnakangas）\n     </p>", "text": "防止 lo_export() 或相关函数失败时出现“snapshot reference leak”警告（Heikki Linnakangas）", "title": "防止 lo_export() 或相关函数失败时出现“snapshot reference leak”警告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "dfdbe98cf22a514a326e61bd2f02ebd81e964d0ceea922739817a28547ee7318", "section_path": ["变更"], "commit_groups": [["07070c008", "11a399f9c", "4ebd740cd", "6b1b405eb", "6bf00da11", "7b55bb892", "8f32afee0"], ["245799d39", "71aeaf245", "7dc9a310e", "b110af5f7", "b7299b664", "d5ab0681b", "f4e3b6271"]], "identity_text": "Prevent snapshot reference leak warning when lo_export() or a related function fails (Heikki Linnakangas)", "commit_aliases": ["07070c008", "11a399f9c", "245799d39", "4ebd740cd", "6b1b405eb", "6bf00da11", "71aeaf245", "7b55bb892", "7dc9a310e", "8f32afee0", "b110af5f7", "b7299b664", "d5ab0681b", "f4e3b6271"], "source_commits": ["71aeaf245", "8f32afee0"], "source_entry_id": "9.6.24/changes/023", "db_id": "8302c84eb949151a3485fe7a6a54d4ae", "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd", "relations": [{"rule": 2, "type": "equivalent", "target": "54f8f4cdbbab4d6977845dbc56c9ce67", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}}, {"rule": 2, "type": "equivalent", "target": "a8e81424cbf8168a7dabda0ea3ac2534", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}}, {"rule": 2, "type": "equivalent", "target": "c0209306d827d4e581002c9286a68081", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}}, {"rule": 2, "type": "equivalent", "target": "ee98526122ea424b62127fa9f635b2ca", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}}, {"rule": 2, "type": "equivalent", "target": "f00dbd2e17738a4cfc8eef18b79a1dd9", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "54f8f4cdbbab4d6977845dbc56c9ce67", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=14.1#14.1-32c0f62eebd60c3a", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "c0209306d827d4e581002c9286a68081", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=13.5#13.5-e1d4ba1245f74980", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "ee98526122ea424b62127fa9f635b2ca", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=12.9#12.9-e94010d773a8344b", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "a8e81424cbf8168a7dabda0ea3ac2534", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=11.14#11.14-49b17c1993933e28", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "f00dbd2e17738a4cfc8eef18b79a1dd9", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "防止当 lo_export() 或相关函数失败时出现 “snapshot reference leak” 警告", "evidence": {"same_day": true, "patch_ids": ["388f4319ba3198aaa4adf370e2540d2a", "40b9f758afbba18d444324510dabeadc"], "statement_hash": "4dd8ed80f97bb820b61086f0b1711e8ead07508f5f660bb99b7b9144d63df5dd"}, "url": "/docs/compare/?release=10.19#10.19-49b17c1993933e28", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-505dc93f466cfacb", "cves": [], "html": "<p>      确保 SP-GiST 索引的扫描被计入统计视图（Tom Lane）\n     </p><p>      SP-GiST 代码遗漏了递增索引扫描次数计数器的工作，不过逐元组计数器是正确前进的。\n     </p>", "text": "确保 SP-GiST 索引的扫描被计入统计视图（Tom Lane） SP-GiST 代码遗漏了递增索引扫描次数计数器的工作，不过逐元组计数器是正确前进的。", "title": "确保 SP-GiST 索引的扫描被计入统计视图", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "2fbc6acb4de64497a61114023553b3fe5933f9f4a917b5e7603043fa2cee9db0", "section_path": ["变更"], "commit_groups": [["187b5fea9", "3778bcb39", "6a787c83c", "7c1b0f4c3", "9e959f7ed", "dbb239d51", "e84d4810c"]], "identity_text": "Ensure that scans of SP-GiST indexes are counted in the statistics views (Tom Lane) Incrementing the number-of-index-scans counter was overlooked in the SP-GiST code, although per-tuple counters were advanced correctly.", "commit_aliases": ["187b5fea9", "3778bcb39", "6a787c83c", "7c1b0f4c3", "9e959f7ed", "dbb239d51", "e84d4810c"], "source_commits": ["9e959f7ed"], "source_entry_id": "9.6.24/changes/024", "db_id": "1ed381a09ab2673593aaf6a25c574db4", "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564", "relations": [{"rule": 2, "type": "equivalent", "target": "14b9ceb5caddd235bba393b75ded5652", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}, {"rule": 2, "type": "equivalent", "target": "877dd2a0338013867a07285282d7baf5", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}, {"rule": 2, "type": "equivalent", "target": "ce05ddfd43e3231b0aee2bf7ec3320dd", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}, {"rule": 2, "type": "equivalent", "target": "fb5ead0cfbecc7b79b44473cbaec8eda", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ce05ddfd43e3231b0aee2bf7ec3320dd", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=13.5#13.5-356c04282e59b8ee", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "877dd2a0338013867a07285282d7baf5", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=12.9#12.9-4acf5088ea8dfabe", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "14b9ceb5caddd235bba393b75ded5652", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=11.14#11.14-e97fe7a665dd0f08", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "fb5ead0cfbecc7b79b44473cbaec8eda", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保统计视图会计入对 SP-GiST 索引的扫描", "evidence": {"same_day": true, "patch_ids": ["a68dd889bb1db803c34027d3bc9856c3"], "statement_hash": "2554da20d760effb26e30d676363cbc7b6958aa7c85ca732b45046bc70b6e564"}, "url": "/docs/compare/?release=10.19#10.19-e97fe7a665dd0f08", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-5cb3861d83c7e02e", "cves": [], "html": "<p>      如果恢复期间更改了 <code>recovery_min_apply_delay</code>，重新计算相关的等待间隔（Soumyadeep Chakraborty、Ashwin Agrawal）\n     </p>", "text": "如果恢复期间更改了 recovery_min_apply_delay，重新计算相关的等待间隔（Soumyadeep Chakraborty、Ashwin Agrawal）", "title": "如果恢复期间更改了 recovery_min_apply_delay，重新计算相关的等待间隔", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "86138c6b5505b73d2de83274fa68aad4948b740e38ae9c0e819372d0b3312614", "section_path": ["变更"], "commit_groups": [["024fd44e0", "7f0873f32", "84c1bac57", "942416f4b", "d392e86fa", "e4ba1005c", "f83d80ea1"]], "identity_text": "Recalculate relevant wait intervals if recovery_min_apply_delay is changed during recovery (Soumyadeep Chakraborty, Ashwin Agrawal)", "commit_aliases": ["024fd44e0", "7f0873f32", "84c1bac57", "942416f4b", "d392e86fa", "e4ba1005c", "f83d80ea1"], "source_commits": ["942416f4b"], "source_entry_id": "9.6.24/changes/025", "db_id": "6fac8b5c87112931307fa495a23cc0e5", "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe", "relations": [{"rule": 2, "type": "equivalent", "target": "082bad8bae7c912abd9bc380d3c50dd7", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}, {"rule": 2, "type": "equivalent", "target": "3a609503e41f557ed818fd1a05265e4b", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}, {"rule": 2, "type": "equivalent", "target": "5ceda1b54fe8a64600b433abac805875", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}, {"rule": 2, "type": "equivalent", "target": "b25321b0e53c0862f3d2d36d1eaf0adb", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ceda1b54fe8a64600b433abac805875", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=13.5#13.5-95e96eb9b06aa0aa", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "082bad8bae7c912abd9bc380d3c50dd7", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=12.9#12.9-024ce04e4ac42538", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "3a609503e41f557ed818fd1a05265e4b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=11.14#11.14-ab35cad87ebb872b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "b25321b0e53c0862f3d2d36d1eaf0adb", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "如果在恢复期间修改 recovery_min_apply_delay，则重新计算相关等待间隔", "evidence": {"same_day": true, "patch_ids": ["343425a01758e791ea7ea61f73833910"], "statement_hash": "4d34bd4fb6d067dc102609c6c0497c271f953dece4b6a07b2053191e5a821fbe"}, "url": "/docs/compare/?release=10.19#10.19-ab35cad87ebb872b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-fffabbaca1a8c849", "cves": [], "html": "<p>      修复 <span>ecpg</span> 在建立连接期间\n      <code>malloc()</code> 失败后不能正确恢复的问题（Michael Paquier）\n     </p>", "text": "修复 ecpg 在建立连接期间 malloc() 失败后不能正确恢复的问题（Michael Paquier）", "title": "修复 ecpg 在建立连接期间 malloc() 失败后不能正确恢复的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "3fb98ebd2d3d75526969bdcb2804c4523e50a4414ce1577d59c597175c94dfc3", "section_path": ["变更"], "commit_groups": [["3768c468d", "83a3737a6", "b34dcf87f", "b589d212f", "b6a10ff4a", "cc057fb31", "fa703b317"]], "identity_text": "Fix ecpg to recover correctly after malloc() failure while establishing a connection (Michael Paquier)", "commit_aliases": ["3768c468d", "83a3737a6", "b34dcf87f", "b589d212f", "b6a10ff4a", "cc057fb31", "fa703b317"], "source_commits": ["3768c468d"], "source_entry_id": "9.6.24/changes/026", "db_id": "d53fb177e7d08ab01574498c67f0a370", "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888", "relations": [{"rule": 2, "type": "equivalent", "target": "70d957f7da6a0d4ff9a54196768faf98", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}, {"rule": 2, "type": "equivalent", "target": "76ef5811ec79e51e7476b872d7284aea", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}, {"rule": 2, "type": "equivalent", "target": "cfe3688e5f0c61eb1dd8b2914e6a061a", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}, {"rule": 2, "type": "equivalent", "target": "e860219fe57c764e16b8972133d2c395", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cfe3688e5f0c61eb1dd8b2914e6a061a", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=13.5#13.5-c7da596d7055c9dd", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "76ef5811ec79e51e7476b872d7284aea", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=12.9#12.9-51ed3abe86fc6d7c", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "e860219fe57c764e16b8972133d2c395", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=11.14#11.14-d649e65ae9bc38ea", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "70d957f7da6a0d4ff9a54196768faf98", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 ecpg，使其在建立连接期间 malloc() 失败后能够正确恢复", "evidence": {"same_day": true, "patch_ids": ["e8ceac7043127db3532858f4c3f4bfb9"], "statement_hash": "cba71cffc57df61a63cd75172ed57fcf29845b8479810cf70f9c4fc77775f888"}, "url": "/docs/compare/?release=10.19#10.19-d649e65ae9bc38ea", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-1e5a793ff70ec649", "cves": [], "html": "<p>      允许在 PL/pgSQL 例程最外层块中使用 <code>EXIT</code>（Tom Lane）\n     </p><p>      如果例程不要求显式 <code>RETURN</code>，这种用法应当是合法的，但过去被拒绝。\n     </p>", "text": "允许在 PL/pgSQL 例程最外层块中使用 EXIT（Tom Lane） 如果例程不要求显式 RETURN，这种用法应当是合法的，但过去被拒绝。", "title": "允许在 PL/pgSQL 例程最外层块中使用 EXIT", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "e94a4f34b11b8789f80890e474338af6cbce1cf3b64a7fe632f769a5b7dda19b", "section_path": ["变更"], "commit_groups": [["1bf2518dd", "4ffd3fe4d", "745abdd95", "a460f7eb3", "b1de90699", "bdd6ce48d", "fe70ec907"]], "identity_text": "Allow EXIT out of the outermost block in a PL/pgSQL routine (Tom Lane) If the routine does not require an explicit RETURN, this usage should be valid, but it was rejected.", "commit_aliases": ["1bf2518dd", "4ffd3fe4d", "745abdd95", "a460f7eb3", "b1de90699", "bdd6ce48d", "fe70ec907"], "source_commits": ["a460f7eb3"], "source_entry_id": "9.6.24/changes/027", "db_id": "e578063ab9393e8bdc2691d98c57740a", "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7", "relations": [{"rule": 2, "type": "equivalent", "target": "14abe7b7e21556c7c7795a1a20087b01", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}, {"rule": 2, "type": "equivalent", "target": "83e7cbfe3fc2dc3dcca0a59f573a0148", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}, {"rule": 2, "type": "equivalent", "target": "a3cad7263bc7b9df14dbb9c972495ac3", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}, {"rule": 2, "type": "equivalent", "target": "a4301c155d30eeb455f699c0c15edf08", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a4301c155d30eeb455f699c0c15edf08", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=13.5#13.5-69e6e3fb4131e872", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "83e7cbfe3fc2dc3dcca0a59f573a0148", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=12.9#12.9-b56ab44f211b84fe", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "14abe7b7e21556c7c7795a1a20087b01", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=11.14#11.14-49f72f4f8e93c522", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "a3cad7263bc7b9df14dbb9c972495ac3", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "允许使用 EXIT 退出 PL/pgSQL 例程的最外层块", "evidence": {"same_day": true, "patch_ids": ["da305d10ae63a0388a0fe4427a9c60ce"], "statement_hash": "37fbbb78024c5c5549edd40bd646b27bea0d48a33c3b92bfd44c3c61ee8c82c7"}, "url": "/docs/compare/?release=10.19#10.19-49f72f4f8e93c522", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-e8ae62da5ea549f8", "cves": [], "html": "<p>      移除 <span>pg_ctl</span> 对所生成命令总长度的硬编码限制（Phil Krylov）\n     </p><p>      例如，这解除了能传递给 postmaster 的命令行选项数量的限制。<span>pg_ctl</span> 处理的单个路径名（如 postmaster\n      可执行文件名或数据目录名）在大多数情况下仍限于\n      <code>MAXPGPATH</code> 字节。\n     </p>", "text": "移除 pg_ctl 对所生成命令总长度的硬编码限制（Phil Krylov） 例如，这解除了能传递给 postmaster 的命令行选项数量的限制。pg_ctl 处理的单个路径名（如 postmaster 可执行文件名或数据目录名）在大多数情况下仍限于 MAXPGPATH 字节。", "title": "移除 pg_ctl 对所生成命令总长度的硬编码限制", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "34cbd196d59ee73bd43fd3ee8c68a009fe1de843c8207302a2cbeff4844fc215", "section_path": ["变更"], "commit_groups": [["3b302eb1e", "69d670e68", "6e2f45817", "742b30cae", "87ad49147", "9a070c658", "beb404d3b"]], "identity_text": "Remove pg_ctl's hard-coded limits on the total length of generated commands (Phil Krylov) For example, this removes a restriction on how many command-line options can be passed through to the postmaster. Individual path names that pg_ctl deals with, such as the postmaster executable's name or the data directory name, are still limited to MAXPGPATH bytes in most cases.", "commit_aliases": ["3b302eb1e", "69d670e68", "6e2f45817", "742b30cae", "87ad49147", "9a070c658", "beb404d3b"], "source_commits": ["9a070c658"], "source_entry_id": "9.6.24/changes/028", "db_id": "aebee72ce9cc7ab76d8a4244e9560893", "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4", "relations": [{"rule": 2, "type": "equivalent", "target": "09c540f5a1f749ab99a994fc1278487f", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}, {"rule": 2, "type": "equivalent", "target": "2f31d2d697d825c4daffd6bedf18088a", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}, {"rule": 2, "type": "equivalent", "target": "d716cacb6c1dff50a74fa93ad2b2b02a", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}, {"rule": 2, "type": "equivalent", "target": "f37d036a60b3457a9f75717ac928433b", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "09c540f5a1f749ab99a994fc1278487f", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=13.5#13.5-5ce57ba729ac3ab2", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "f37d036a60b3457a9f75717ac928433b", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=12.9#12.9-85bbba180ce85be2", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "2f31d2d697d825c4daffd6bedf18088a", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=11.14#11.14-9aa6a3e1fa9ae8f3", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "d716cacb6c1dff50a74fa93ad2b2b02a", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "移除 pg_ctl 对生成命令总长度的硬编码限制", "evidence": {"same_day": true, "patch_ids": ["1161c449c320dcdf16bb7411ecd70c2c"], "statement_hash": "d0f1587cbc37e53ef232f1a4ab6c9df6f5b13580a7d5cb8a3e4b7846fe26b7b4"}, "url": "/docs/compare/?release=10.19#10.19-9aa6a3e1fa9ae8f3", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-062a44c48562f080", "cves": [], "html": "<p>      修复 <span>pg_dump</span> 正确转储非全局默认权限的问题（Neil Chen、Masahiko Sawada）\n     </p><p>      如果一条全局（无限制的）<code>ALTER DEFAULT PRIVILEGES</code>\n      命令撤销了某个默认存在的权限（例如函数的 <code>EXECUTE</code>），随后一条受限的 <code>ALTER DEFAULT PRIVILEGES</code> 命令又为选定的角色或模式重新授予了该权限，<span>pg_dump</span>\n      未能正确转储这条受限的权限授予。\n     </p>", "text": "修复 pg_dump 正确转储非全局默认权限的问题（Neil Chen、Masahiko Sawada） 如果一条全局（无限制的）ALTER DEFAULT PRIVILEGES 命令撤销了某个默认存在的权限（例如函数的 EXECUTE），随后一条受限的 ALTER DEFAULT PRIVILEGES 命令又为选定的角色或模式重新授予了该权限，pg_dump 未能正确转储这条受限的权限授予。", "title": "修复 pg_dump 正确转储非全局默认权限的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "76ecde99ae0102d2fff373a233d1e6fa411426b0e6cb983d376409c63fb55097", "section_path": ["变更"], "commit_groups": [["10f9faf6d", "2acc84c6f", "3ad2c2455", "476006023", "52b927a73", "871dfe4b7", "b1df061f7"]], "identity_text": "Fix pg_dump to dump non-global default privileges correctly (Neil Chen, Masahiko Sawada) If a global (unrestricted) ALTER DEFAULT PRIVILEGES command revoked some present-by-default privilege, for example EXECUTE for functions, and then a restricted ALTER DEFAULT PRIVILEGES command granted that privilege again for a selected role or schema, pg_dump failed to dump the restricted privilege grant correctly.", "commit_aliases": ["10f9faf6d", "2acc84c6f", "3ad2c2455", "476006023", "52b927a73", "871dfe4b7", "b1df061f7"], "source_commits": ["b1df061f7"], "source_entry_id": "9.6.24/changes/029", "db_id": "35361d936334db7ff40cdf174e511db8", "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e", "relations": [{"rule": 2, "type": "equivalent", "target": "2c8969cc65a4505ca714a5e7afab5ad7", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}, {"rule": 2, "type": "equivalent", "target": "5a099d974b3a124bcf385c238af571ae", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}, {"rule": 2, "type": "equivalent", "target": "607d4955a34c14d8019c8dce92b3c395", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}, {"rule": 2, "type": "equivalent", "target": "6261fdcceb679d2eda2b529e73c0ec7b", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}, {"rule": 2, "type": "equivalent", "target": "99ef75076fa5da565638b47bec18f7d4", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5a099d974b3a124bcf385c238af571ae", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 pg_dump 以正确导出非全局默认权限", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=14.1#14.1-a78af80f0cf2381e", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "99ef75076fa5da565638b47bec18f7d4", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 pg_dump 以正确导出非全局默认权限", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=13.5#13.5-5f6add66fa0fccbc", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "2c8969cc65a4505ca714a5e7afab5ad7", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 pg_dump 以正确导出非全局默认权限", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=12.9#12.9-6409426adfe002f8", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "6261fdcceb679d2eda2b529e73c0ec7b", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 pg_dump 以正确导出非全局默认权限", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=11.14#11.14-fb32ac137e8a275c", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "607d4955a34c14d8019c8dce92b3c395", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 pg_dump 以正确导出非全局默认权限", "evidence": {"same_day": true, "patch_ids": ["b8d45a081663ce8e16a869f7d93c5ba6"], "statement_hash": "b37735f0c3dcc052cac5bc5ecb280f05bf25545b28205786155c4d473605e75e"}, "url": "/docs/compare/?release=10.19#10.19-fb32ac137e8a275c", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-e10032a865f98c1a", "cves": [], "html": "<p>      通过避免为 RLS 策略逐表查询、避免重复调用\n      <code>format_type()</code> 来改进 <span>pg_dump</span>\n      的性能（Tom Lane）\n     </p><p>      从本地服务器转储时这些更改只有边际改进，但从远程服务器转储时，由于网络往返次数减少，可以获得显著的收益。\n     </p>", "text": "通过避免为 RLS 策略逐表查询、避免重复调用 format_type() 来改进 pg_dump 的性能（Tom Lane） 从本地服务器转储时这些更改只有边际改进，但从远程服务器转储时，由于网络往返次数减少，可以获得显著的收益。", "title": "通过避免为 RLS 策略逐表查询、避免重复调用 format_type() 来改进 pg_dump 的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "039b2b50b68b7f9f443fada30b0ce2aa60710181a315f0832b8e90709b932eeb", "section_path": ["变更"], "commit_groups": [["0e7bdc722", "2f1ed9d98", "4645997c8", "6c450a861", "904ce45bf", "9407dbbcb", "c4b298ee1"], ["6b9667392", "a20a9f26c", "a60860ff3", "ba8f1a0be", "bd3611db5", "db11b4a3d", "dd3105286"]], "identity_text": "Improve pg_dump's performance by avoiding making per-table queries for RLS policies, and by avoiding repetitive calls to format_type() (Tom Lane) These changes provide only marginal improvement when dumping from a local server, but a dump from a remote server can benefit substantially due to fewer network round-trips.", "commit_aliases": ["0e7bdc722", "2f1ed9d98", "4645997c8", "6b9667392", "6c450a861", "904ce45bf", "9407dbbcb", "a20a9f26c", "a60860ff3", "ba8f1a0be", "bd3611db5", "c4b298ee1", "db11b4a3d", "dd3105286"], "source_commits": ["4645997c8", "dd3105286"], "source_entry_id": "9.6.24/changes/030", "db_id": "4bb1a99cbb1ab871468c8b52b95761f4", "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727", "relations": [{"rule": 2, "type": "equivalent", "target": "49e26a2349adc919fcbfc71ae5ef1819", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}, {"rule": 2, "type": "equivalent", "target": "7de5c63a6642ca59d96fc43f2aefa6f5", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}, {"rule": 2, "type": "equivalent", "target": "cf23d26384b6b17f28b238f5dd0ab707", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}, {"rule": 2, "type": "equivalent", "target": "f7aaf4440b31954cb78e810b906616ec", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}}], "version": "9.6.24", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "49e26a2349adc919fcbfc71ae5ef1819", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=13.5#13.5-b877cfe07d784398", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "7de5c63a6642ca59d96fc43f2aefa6f5", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=12.9#12.9-b1b601699638c8f0", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "f7aaf4440b31954cb78e810b906616ec", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=11.14#11.14-2b9b86decb34541e", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "cf23d26384b6b17f28b238f5dd0ab707", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "避免逐表查询 RLS 策略和重复调用 format_type()，从而提高 pg_dump 的性能", "evidence": {"same_day": true, "patch_ids": ["9b352d2a5060186785c8552418848f6a", "e50536922b2a60dcf8c2f106042cdc02"], "statement_hash": "b9ba5244a6ec3237296f6745b47221f512a098745dc5b8a77e3ea0e1b0916727"}, "url": "/docs/compare/?release=10.19#10.19-2b9b86decb34541e", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-8ff294aa4e22fbd4", "cves": [], "html": "<p>      修复 <span>pg_restore</span> 关于无效大对象 TOC 文件的错误消息中的文件名错误（Daniel Gustafsson）\n     </p>", "text": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的文件名错误（Daniel Gustafsson）", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的文件名错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "1b8a9ff153980a2c31d3cfd38bcaee1f5c29afce30c9eda0868a66064add9d38", "section_path": ["变更"], "commit_groups": [["038892c81", "3e2f32b01", "4fda03b67", "687fe8a9d", "998d060f3", "e788883de", "ef1f15819"]], "identity_text": "Fix incorrect filename in pg_restore's error message about an invalid large object TOC file (Daniel Gustafsson)", "commit_aliases": ["038892c81", "3e2f32b01", "4fda03b67", "687fe8a9d", "998d060f3", "e788883de", "ef1f15819"], "source_commits": ["ef1f15819"], "source_entry_id": "9.6.24/changes/031", "db_id": "0b04801b2d8fe3c1be144e863b29b9fa", "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da", "relations": [{"rule": 2, "type": "equivalent", "target": "01c4d0a6e186cae7701eba66dd4c77c3", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}, {"rule": 2, "type": "equivalent", "target": "3e220fd2eeed7576866cb4ad7ab2422d", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}, {"rule": 2, "type": "equivalent", "target": "76ec7864d79d6c138df646918b4dfdb2", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}, {"rule": 2, "type": "equivalent", "target": "8e213c302cc546704d495ce7f76822c0", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}, {"rule": 2, "type": "equivalent", "target": "f07ae55bc247498a990b40534ac5f5e6", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f07ae55bc247498a990b40534ac5f5e6", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=14.1#14.1-cefd2ff84d51ec7d", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "76ec7864d79d6c138df646918b4dfdb2", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=13.5#13.5-9ab9db11dae894f4", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "3e220fd2eeed7576866cb4ad7ab2422d", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=12.9#12.9-382007779072be39", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "8e213c302cc546704d495ce7f76822c0", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=11.14#11.14-c02a79a9d493c758", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "01c4d0a6e186cae7701eba66dd4c77c3", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 pg_restore 关于无效大对象 TOC 文件的错误消息中的不正确文件名", "evidence": {"same_day": true, "patch_ids": ["86954b4e3c9ba2620169ea553f2abfe0"], "statement_hash": "91aaf4d827da3579004153a1fb8776a355617cf2467c340dcd525c72aec0d3da"}, "url": "/docs/compare/?release=10.19#10.19-c02a79a9d493c758", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-17cb13afaecadcf6", "cves": [], "html": "<p>      修复 <code>contrib/btree_gin</code> 在 <code>\"char\"</code>（而非 <code>char(<em><code>n</code></em>)</code>）列上的索引在执行使用 <code>&lt;</code> 或 <code>&lt;=</code> 操作符的索引扫描时失败的问题（Tom Lane）\n     </p><p>      这种索引扫描没有返回它本应返回的所有条目。\n     </p>", "text": "修复 contrib/btree_gin 在 \"char\"（而非 char(n)）列上的索引在执行使用 < 或 <= 操作符的索引扫描时失败的问题（Tom Lane） 这种索引扫描没有返回它本应返回的所有条目。", "title": "修复 contrib/btree_gin 在 \"char\"（而非 char(n)）列上的索引在执行使用 < 或 <= 操作符的索引扫描时失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "e21d0f34b24bef975bf5c9722157f032f324bb18fd3812b93359e10e062be84d", "section_path": ["变更"], "commit_groups": [["5a9df5d50", "7ba487cf9", "843d2879a", "a4957b5a7", "a6bd28beb", "cd7d9b6b6", "eefa4c2b5"]], "identity_text": "Fix failure of contrib/btree_gin indexes on \"char\" (not char(n)) columns, when an indexscan using the < or <= operator is performed (Tom Lane) Such an indexscan failed to return all the entries it should.", "commit_aliases": ["5a9df5d50", "7ba487cf9", "843d2879a", "a4957b5a7", "a6bd28beb", "cd7d9b6b6", "eefa4c2b5"], "source_commits": ["5a9df5d50"], "source_entry_id": "9.6.24/changes/032", "db_id": "13290d8e4bf294c76c577c844db6d78f", "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061", "relations": [{"rule": 2, "type": "equivalent", "target": "62f53af5ee09ff4b38cd4efb4239e4b9", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}, {"rule": 2, "type": "equivalent", "target": "a277177e17d860cc0e252a2f35807932", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}, {"rule": 2, "type": "equivalent", "target": "e327f3b4836ca3ec1c5e87574cf26437", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}, {"rule": 2, "type": "equivalent", "target": "f4025e04b5b9d94579bce89cb92e2d8c", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a277177e17d860cc0e252a2f35807932", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=13.5#13.5-53bf5ca130967d06", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "e327f3b4836ca3ec1c5e87574cf26437", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=12.9#12.9-eece66ff014231e4", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "62f53af5ee09ff4b38cd4efb4239e4b9", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=11.14#11.14-93270a3ee6a0cf07", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "f4025e04b5b9d94579bce89cb92e2d8c", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复对 \"char\" 列（而非 char(n) 列）的 contrib/btree_gin 索引使用 < 或 <= 操作符进行索引扫描时的失败", "evidence": {"same_day": true, "patch_ids": ["944d89dbd0867bc66b6da1aa7e01c33c"], "statement_hash": "32b71fde2d1784c534582d77a7973d7302a8d89efd7048afb20dbcf46d44b061"}, "url": "/docs/compare/?release=10.19#10.19-93270a3ee6a0cf07", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-da478d75489c9aa1", "cves": [], "html": "<p>      将 <code>contrib/pg_stat_statements</code> 改为以至多 1GB 为单位读取其<span>“<span>查询文本</span>”</span>文件（Tom Lane）\n     </p><p>      这么大的查询文本文件非常罕见，但一旦出现，原来的编码在 Windows 64 上会失败（该平台拒绝超过 2GB 的单次读取请求）。\n     </p>", "text": "将 contrib/pg_stat_statements 改为以至多 1GB 为单位读取其“查询文本”文件（Tom Lane） 这么大的查询文本文件非常罕见，但一旦出现，原来的编码在 Windows 64 上会失败（该平台拒绝超过 2GB 的单次读取请求）。", "title": "将 contrib/pg_stat_statements 改为以至多 1GB 为单位读取其“查询文本”文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "c8386c1815bd4f4a3e48bff4d4e331c1822f3251e2b154b675ddd9560a2df66a", "section_path": ["变更"], "commit_groups": [["16d0da5c8", "3a5b313ce", "5dd067430", "7104e0b24", "a667b0668", "d87d5f8d8", "fdb60ca83"]], "identity_text": "Change contrib/pg_stat_statements to read its query texts file in units of at most 1GB (Tom Lane) Such large query text files are very unusual, but if they do occur, the previous coding would fail on Windows 64 (which rejects individual read requests of more than 2GB).", "commit_aliases": ["16d0da5c8", "3a5b313ce", "5dd067430", "7104e0b24", "a667b0668", "d87d5f8d8", "fdb60ca83"], "source_commits": ["fdb60ca83"], "source_entry_id": "9.6.24/changes/033", "db_id": "6085b37daa5b09ebea485d926c991a03", "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e", "relations": [{"rule": 2, "type": "equivalent", "target": "5f6465bba0707d12b76fcb07963a01ca", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}, {"rule": 2, "type": "equivalent", "target": "84795ba9a04226ac48db09ecab62d8cf", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}, {"rule": 2, "type": "equivalent", "target": "9b774cab607faea6fac7ab9e23411b63", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}, {"rule": 2, "type": "equivalent", "target": "d43f2700cb72344d8146a3efd59b8ee1", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}, {"rule": 2, "type": "equivalent", "target": "f9b1bfa11b570618b6bcd18099dc3fad", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d43f2700cb72344d8146a3efd59b8ee1", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=14.1#14.1-68127bd965885596", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "f9b1bfa11b570618b6bcd18099dc3fad", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=13.5#13.5-5e4ad0da97a51a4d", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "84795ba9a04226ac48db09ecab62d8cf", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=12.9#12.9-ad73943d8c595d25", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "5f6465bba0707d12b76fcb07963a01ca", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=11.14#11.14-361fef5f9b6791fa", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "9b774cab607faea6fac7ab9e23411b63", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "改变 contrib/pg_stat_statements 以最大 1GB 为单位读取其“查询文本”文件", "evidence": {"same_day": true, "patch_ids": ["7666806f9fa0ed4138057a955d9a72df"], "statement_hash": "de5d710552a32634f3a4334946b9294f5b07c509b13fbb2317609dd46d1ff14e"}, "url": "/docs/compare/?release=10.19#10.19-361fef5f9b6791fa", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-28d5fcf453564806", "cves": [], "html": "<p>      修复 <code>contrib/postgres_fdw</code> 尝试报告数据转换错误时的空指针崩溃（Tom Lane）\n     </p>", "text": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃（Tom Lane）", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b3ffc0f91814e2483e752f32f6f86dc402c3de6453bf9a937ab88dcc418dc644", "section_path": ["变更"], "commit_groups": [["12ff678e1", "228897374", "2e33fbda1", "3071bbfe4", "36c9f7d96", "88807757d", "aee83f39a"]], "identity_text": "Fix null-pointer crash when contrib/postgres_fdw tries to report a data conversion error (Tom Lane)", "commit_aliases": ["12ff678e1", "228897374", "2e33fbda1", "3071bbfe4", "36c9f7d96", "88807757d", "aee83f39a"], "source_commits": ["36c9f7d96"], "source_entry_id": "9.6.24/changes/034", "db_id": "cda3957c847bee85448fcd3c997db0f4", "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477", "relations": [{"rule": 2, "type": "equivalent", "target": "4d82294c92694050c948b67c159dcc16", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}, {"rule": 2, "type": "equivalent", "target": "59724df9664a8909e68fab2ce8c42560", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}, {"rule": 2, "type": "equivalent", "target": "98290aab4ae48248ce3126dd259f8200", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}, {"rule": 2, "type": "equivalent", "target": "e7917bc5603100b3c9bce3e23ae83e7c", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}, {"rule": 2, "type": "equivalent", "target": "ea56ce70c9c40cdc0e56532c70478ccd", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "98290aab4ae48248ce3126dd259f8200", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=14.1#14.1-f2edcd70ca4ee95c", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "ea56ce70c9c40cdc0e56532c70478ccd", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=13.5#13.5-ce1c56a7475c246a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "4d82294c92694050c948b67c159dcc16", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=12.9#12.9-fab2df684636e3a9", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "59724df9664a8909e68fab2ce8c42560", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=11.14#11.14-28d5fcf453564806", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "e7917bc5603100b3c9bce3e23ae83e7c", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "修复 contrib/postgres_fdw 尝试报告数据转换错误时的空指针崩溃", "evidence": {"same_day": true, "patch_ids": ["3aed7d51ee30e9b770d3a313211076ea"], "statement_hash": "909a94706a0c54b3b41ccfa94b61e57387097687babbbfc789aede1b23e82477"}, "url": "/docs/compare/?release=10.19#10.19-28d5fcf453564806", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-22a8601426cbff71", "cves": [], "html": "<p>      为 RISC-V 架构添加自旋锁支持（Marek Szuba）\n     </p><p>      这对该平台上的合理性能必不可少。\n     </p>", "text": "为 RISC-V 架构添加自旋锁支持（Marek Szuba） 这对该平台上的合理性能必不可少。", "title": "为 RISC-V 架构添加自旋锁支持", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "2b7307b46aede7873c4c1469ddddb1dfb2cdbca87013950b875cb933a89a828f", "section_path": ["变更"], "commit_groups": [["48695decc", "4ffbd55d9", "582a2affa", "7915a9515", "8024ff478", "c32fcac56", "cdda2b247"]], "identity_text": "Add spinlock support for the RISC-V architecture (Marek Szuba) This is essential for reasonable performance on that platform.", "commit_aliases": ["48695decc", "4ffbd55d9", "582a2affa", "7915a9515", "8024ff478", "c32fcac56", "cdda2b247"], "source_commits": ["582a2affa"], "source_entry_id": "9.6.24/changes/035", "db_id": "c7a1c8b2a2351bf7e57d3d99aba772bb", "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918", "relations": [{"rule": 2, "type": "equivalent", "target": "0d4a6fd2ac04ba1b30b714d01c8fdef8", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}, {"rule": 2, "type": "equivalent", "target": "1dca9f29d9aedf9881fdfcdfc44afeb3", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}, {"rule": 2, "type": "equivalent", "target": "2b7f4d027ea6ac4feb2799ceecd23c03", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}, {"rule": 2, "type": "equivalent", "target": "ef4cdb9b434b444fb421ab654584badd", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2b7f4d027ea6ac4feb2799ceecd23c03", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "增加对 RISC-V 架构的自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=13.5#13.5-fd9f970d868cfb3e", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "0d4a6fd2ac04ba1b30b714d01c8fdef8", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "增加对 RISC-V 架构的自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=12.9#12.9-5466e34a4da721cc", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "1dca9f29d9aedf9881fdfcdfc44afeb3", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "增加对 RISC-V 架构的自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=11.14#11.14-8e98d7aed335dac4", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "ef4cdb9b434b444fb421ab654584badd", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "增加对 RISC-V 架构的自旋锁支持", "evidence": {"same_day": true, "patch_ids": ["0c02237615a439517e7fe27107d4e23d"], "statement_hash": "5af761b4322f38fc2de0efbae75438cb253a2dc6f8258e4e4dd62989e0012918"}, "url": "/docs/compare/?release=10.19#10.19-8e98d7aed335dac4", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-61720bef03799fbf", "cves": [], "html": "<p>      在 <span>PostgreSQL</span> 创建的 OpenSSL BIO（I/O 抽象）对象上设置正确的类型标识符（Itamar Gafni）\n     </p><p>      这一疏漏可能只对执行审计 OpenSSL 安装之类任务的代码有影响。但严格来说它违反了 OpenSSL API，因此予以修复。\n     </p>", "text": "在 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象上设置正确的类型标识符（Itamar Gafni） 这一疏漏可能只对执行审计 OpenSSL 安装之类任务的代码有影响。但严格来说它违反了 OpenSSL API，因此予以修复。", "title": "在 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象上设置正确的类型标识符", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "b1c3e9d280ee69d4e5f4ea0ec9cc833cbdf1ef1f6d0bb9c508047c6e14181db5", "section_path": ["变更"], "commit_groups": [["0a88d4ece", "31f860a52", "b88377ad6", "e15f32f0e", "ed209db77", "ef7e24ff7", "f1d5a94fc"]], "identity_text": "Set correct type identifier on OpenSSL BIO (I/O abstraction) objects created by PostgreSQL (Itamar Gafni) This oversight probably only matters for code that is doing tasks like auditing the OpenSSL installation. But it's nominally a violation of the OpenSSL API, so fix it.", "commit_aliases": ["0a88d4ece", "31f860a52", "b88377ad6", "e15f32f0e", "ed209db77", "ef7e24ff7", "f1d5a94fc"], "source_commits": ["0a88d4ece"], "source_entry_id": "9.6.24/changes/036", "db_id": "b327f51f9ad30f338a464dae3ed74562", "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4", "relations": [{"rule": 2, "type": "equivalent", "target": "20be44c65f15eb8c025ad176cf5f3735", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}, {"rule": 2, "type": "equivalent", "target": "296f6fe655a7ee0f15e069302e2d0938", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}, {"rule": 2, "type": "equivalent", "target": "adb6e090b3ec86a65b556eed193f865b", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}, {"rule": 2, "type": "equivalent", "target": "cfe81e4d3f5248f89cbfab2b8a20baaf", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}}], "version": "9.6.24", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "adb6e090b3ec86a65b556eed193f865b", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=13.5#13.5-0a4c57a269205cd5", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "20be44c65f15eb8c025ad176cf5f3735", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=12.9#12.9-2af3b8c42de17e12", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "cfe81e4d3f5248f89cbfab2b8a20baaf", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=11.14#11.14-189f6dab80ef402f", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "296f6fe655a7ee0f15e069302e2d0938", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "为 PostgreSQL 创建的 OpenSSL BIO（I/O 抽象）对象设置正确的类型标识符", "evidence": {"same_day": true, "patch_ids": ["ce19fa823bd0e909f62424bf1d77c89a"], "statement_hash": "3000820723ca4109d4a2428a9669ae3a105751ccf47ef9e47c468b70b9ba8bf4"}, "url": "/docs/compare/?release=10.19#10.19-189f6dab80ef402f", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-b33908c85cb84548", "cves": [], "html": "<p>      使 <code>pg_regexec()</code> 能够稳健处理越界的\n      <em><code>search_start</code></em> 参数（Tom Lane）\n     </p><p>      当 <em><code>search_start</code></em> 超出字符串末尾时返回\n      <code>REG_NOMATCH</code> 而非可能崩溃。这种情况在核心\n      <span>PostgreSQL</span> 中很可能无法达到，但扩展对参数值可能更不小心。\n     </p>", "text": "使 pg_regexec() 能够稳健处理越界的 search_start 参数（Tom Lane） 当 search_start 超出字符串末尾时返回 REG_NOMATCH 而非可能崩溃。这种情况在核心 PostgreSQL 中很可能无法达到，但扩展对参数值可能更不小心。", "title": "使 pg_regexec() 能够稳健处理越界的 search_start 参数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "90d976f0392d48ed7d863eca1f30126cafbb62b939e3e96da9c0bbf1f5327d3a", "section_path": ["变更"], "commit_groups": [["3adde7eb6", "3be381a90", "7e420072e", "b33283cbd", "daac97eb0", "e757080e0", "ec89d7ace"]], "identity_text": "Make pg_regexec() robust against an out-of-range search_start parameter (Tom Lane) Return REG_NOMATCH, instead of possibly crashing, when search_start is past the end of the string. This case is probably unreachable within core PostgreSQL, but extensions might be more careless about the parameter value.", "commit_aliases": ["3adde7eb6", "3be381a90", "7e420072e", "b33283cbd", "daac97eb0", "e757080e0", "ec89d7ace"], "source_commits": ["ec89d7ace"], "source_entry_id": "9.6.24/changes/037", "db_id": "28b7973785c0901fc917d0a6816008a1", "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a", "relations": [{"rule": 2, "type": "equivalent", "target": "68a0798944ef65f0b28e00c969a4deaf", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}, {"rule": 2, "type": "equivalent", "target": "719ea4027e846640130fb4a3bf1ad6f3", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}, {"rule": 2, "type": "equivalent", "target": "8fd53487c838cc0f99f3c02278840a26", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}, {"rule": 2, "type": "equivalent", "target": "cdf3f5a89ea1b3f50f4da0f944973dfd", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "68a0798944ef65f0b28e00c969a4deaf", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=13.5#13.5-b56d94eb5bb2ff1e", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "cdf3f5a89ea1b3f50f4da0f944973dfd", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=12.9#12.9-67d20da78a5ee8cd", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "8fd53487c838cc0f99f3c02278840a26", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=11.14#11.14-13e59272cdbe4a58", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "719ea4027e846640130fb4a3bf1ad6f3", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "使 pg_regexec() 能够稳健地处理超出范围的 search_start 参数", "evidence": {"same_day": true, "patch_ids": ["b04778661f96f386049f85e6852b72ef"], "statement_hash": "1b815160c40bf002cd295aadc0bcbb983370e60bd1d18f59817760d23bfcb93a"}, "url": "/docs/compare/?release=10.19#10.19-13e59272cdbe4a58", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-da7b9852d6a02836", "cves": [], "html": "<p>      确保 <code>GetSharedSecurityLabel()</code> 可以在尚未构建关键关系缓存条目的新启动会话中使用（Jeff Davis）\n     </p>", "text": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用（Jeff Davis）", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "448c18681012dacf8bd332db35ec035ba2d69521ed80a96ddc7395c8017a1f8a", "section_path": ["变更"], "commit_groups": [["0b90f1c4c", "20f785732", "3f5d481ef", "7821a0bf2", "9364f64a2", "ab11f6e46", "ae6abeb88"]], "identity_text": "Ensure that GetSharedSecurityLabel() can be used in a newly-started session that has not yet built its critical relation cache entries (Jeff Davis)", "commit_aliases": ["0b90f1c4c", "20f785732", "3f5d481ef", "7821a0bf2", "9364f64a2", "ab11f6e46", "ae6abeb88"], "source_commits": ["ae6abeb88"], "source_entry_id": "9.6.24/changes/038", "db_id": "10d48cfdbf4dec0caf4e02364220a7b0", "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc", "relations": [{"rule": 2, "type": "equivalent", "target": "3448a6d5c4fd9927bcbe9681a9258699", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}, {"rule": 2, "type": "equivalent", "target": "581bb9962efbe7d042b7db8ec51eb373", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}, {"rule": 2, "type": "equivalent", "target": "5bc4e0e3715ef1c44bfed0bc068ffd86", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}, {"rule": 2, "type": "equivalent", "target": "e47146af6b7c83064f7b512dee45f52d", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}, {"rule": 2, "type": "equivalent", "target": "ede201067cf500d822e8b273272c57fa", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "581bb9962efbe7d042b7db8ec51eb373", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=14.1#14.1-5fb5b1c0880a6789", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "ede201067cf500d822e8b273272c57fa", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=13.5#13.5-10f65a07a327751a", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "5bc4e0e3715ef1c44bfed0bc068ffd86", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=12.9#12.9-fda38891b4a2bcd2", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "3448a6d5c4fd9927bcbe9681a9258699", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=11.14#11.14-da7b9852d6a02836", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "e47146af6b7c83064f7b512dee45f52d", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "确保 GetSharedSecurityLabel() 可以在尚未构建关键关系缓存条目的新启动会话中使用", "evidence": {"same_day": true, "patch_ids": ["3023e41c529651a5ab2acf2a6b9415bd"], "statement_hash": "44e974fccbbe337670019da3976cd8d6dcda5a39b56af00c52cca2be9c3aa7bc"}, "url": "/docs/compare/?release=10.19#10.19-da7b9852d6a02836", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-15150c83c5e9a4c9", "cves": [], "html": "<p>      使用 CLDR 项目的数据把 Windows 时区名映射到 IANA 时区（Tom Lane）\n     </p><p>      在 Windows 上运行时，<span>initdb</span> 会尝试把新集簇的\n      <code>timezone</code> 参数设置为与系统当前时区相匹配的 IANA\n      时区。我们此前使用的是多年前生成、只偶尔更新的映射表；不出所料，它包含不少错误，也缺少新近添加的时区。事实证明 CLDR 一直在追踪最合适的映射，因此开始使用他们的数据。这一更改不影响任何现有安装，只影响新初始化的集簇。\n     </p>", "text": "使用 CLDR 项目的数据把 Windows 时区名映射到 IANA 时区（Tom Lane） 在 Windows 上运行时，initdb 会尝试把新集簇的 timezone 参数设置为与系统当前时区相匹配的 IANA 时区。我们此前使用的是多年前生成、只偶尔更新的映射表；不出所料，它包含不少错误，也缺少新近添加的时区。事实证明 CLDR 一直在追踪最合适的映射，因此开始使用他们的数据。这一更改不影响任何现有安装，只影响新初始化的集簇。", "title": "使用 CLDR 项目的数据把 Windows 时区名映射到 IANA 时区", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "ae1e18d85fc72388b1c0238d6878c8f406afac732920064d3e6c1ef8871426ec", "section_path": ["变更"], "commit_groups": [["07873a5dc", "919c08d90", "b5f34ae08", "c1aa3b3c0", "c53ff69e1", "cd2479142", "d0b0b70dc"], ["37cbe0f79", "4721e8aa6", "7ba8eb81f", "81464999b", "ad740067a", "bb6d42669", "cb0799db0"], ["9b8d68cc6", "9c76689de", "9cc919b51", "dbec5a2fe", "e323630cd", "e5b25f19b", "fa8db4879"]], "identity_text": "Use the CLDR project's data to map Windows time zone names to IANA time zones (Tom Lane) When running on Windows, initdb attempts to set the new cluster's timezone parameter to the IANA time zone matching the system's prevailing time zone. We were using a mapping table that we'd generated years ago and updated only fitfully; unsurprisingly, it contained a number of errors as well as omissions of recently-added zones. It turns out that CLDR has been tracking the most appropriate mappings, so start using their data. This change will not affect any existing installation, only newly-initialized clusters.", "commit_aliases": ["07873a5dc", "37cbe0f79", "4721e8aa6", "7ba8eb81f", "81464999b", "919c08d90", "9b8d68cc6", "9c76689de", "9cc919b51", "ad740067a", "b5f34ae08", "bb6d42669", "c1aa3b3c0", "c53ff69e1", "cb0799db0", "cd2479142", "d0b0b70dc", "dbec5a2fe", "e323630cd", "e5b25f19b", "fa8db4879"], "source_commits": ["37cbe0f79", "b5f34ae08", "dbec5a2fe"], "source_entry_id": "9.6.24/changes/039", "db_id": "c0b120c8a67c659dc93c7b89fb50097a", "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3", "relations": [{"rule": 2, "type": "equivalent", "target": "02801f915417448bd119e4259dd15cc4", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}}, {"rule": 2, "type": "equivalent", "target": "375480652fe26b512321b3cfc749af28", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}}, {"rule": 2, "type": "equivalent", "target": "9b790dfe98b1cde3059950dea643ea7f", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}}, {"rule": 2, "type": "equivalent", "target": "b0c088d69d60b2cde99897d93d01f9e2", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}}, {"rule": 2, "type": "equivalent", "target": "b31e5b75c3a44d2e3b7b0211ebd3532f", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b31e5b75c3a44d2e3b7b0211ebd3532f", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=14.1#14.1-4d7731400f0f4517", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "b0c088d69d60b2cde99897d93d01f9e2", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=13.5#13.5-89ec458ef613be1e", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "9b790dfe98b1cde3059950dea643ea7f", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=12.9#12.9-70b015f0cfffb653", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "02801f915417448bd119e4259dd15cc4", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=11.14#11.14-37f5640e6278922b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "375480652fe26b512321b3cfc749af28", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "使用 CLDR 项目的数据将 Windows 时区名称映射到 IANA 时区", "evidence": {"same_day": true, "patch_ids": ["16a31dff3df72e384a6e861945fd134e", "2af59b807b4d2238fb96a5fa92b00c04", "4d9bf6637815819e90ad750d7a0f6589"], "statement_hash": "bbf93354373a94c5bbcb82290d395c8288d046dc87afb2ba95aed85d1683bca3"}, "url": "/docs/compare/?release=10.19#10.19-37f5640e6278922b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}, {"id": "9.6.24-6ed029bc6b84961e", "cves": [], "html": "<p>      更新时区数据文件到 <span>tzdata</span> 版本 2021e，涉及斐济、约旦、巴勒斯坦和萨摩亚的夏令时法规变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史修正。\n     </p><p>      此外，Pacific/Enderbury 时区已更名为 Pacific/Kanton。同时，下列时区已被并入自 1970 年以来钟表一直与其一致的邻近人口更多时区：Africa/Accra、America/Atikokan、America/Blanc-Sablon、America/Creston、America/Curacao、America/Nassau、America/Port_of_Spain、Antarctica/DumontDUrville 和\n      Antarctica/Syowa。在所有这些情况下，原时区名仍作为别名保留。\n     </p>", "text": "更新时区数据文件到 tzdata 版本 2021e，涉及斐济、约旦、巴勒斯坦和萨摩亚的夏令时法规变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史修正。 此外，Pacific/Enderbury 时区已更名为 Pacific/Kanton。同时，下列时区已被并入自 1970 年以来钟表一直与其一致的邻近人口更多时区：Africa/Accra、America/Atikokan、America/Blanc-Sablon、America/Creston、America/Curacao、America/Nassau、America/Port_of_Spain、Antarctica/DumontDUrville 和 Antarctica/Syowa。在所有这些情况下，原时区名仍作为别名保留。", "title": "更新时区数据文件到 tzdata 版本 2021e，涉及斐济、约旦、巴勒斯坦和萨摩亚的夏令时法规变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.24/#id-1.11.6.5.6", "source_hash": "73974d9fe9b357e80b09903495fd60c06a566d67092fe7bd570a38ff4079de33", "section_path": ["变更"], "commit_groups": [["0c8a40b39", "14b8d25d6", "22a498b9b", "4cd72add0", "91455f7c6", "937aafd6d", "d0fe211ce"]], "identity_text": "Update time zone data files to tzdata release 2021e for DST law changes in Fiji, Jordan, Palestine, and Samoa, plus historical corrections for Barbados, Cook Islands, Guyana, Niue, Portugal, and Tonga. Also, the Pacific/Enderbury zone has been renamed to Pacific/Kanton. Also, the following zones have been merged into nearby, more-populous zones whose clocks have agreed with them since 1970: Africa/Accra, America/Atikokan, America/Blanc-Sablon, America/Creston, America/Curacao, America/Nassau, America/Port_of_Spain, Antarctica/DumontDUrville, and Antarctica/Syowa. In all these cases, the previous zone name remains as an alias.", "commit_aliases": ["0c8a40b39", "14b8d25d6", "22a498b9b", "4cd72add0", "91455f7c6", "937aafd6d", "d0fe211ce"], "source_commits": ["22a498b9b"], "source_entry_id": "9.6.24/changes/040", "db_id": "f1a086b3fdf5adab8ba5986bd0def2cc", "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "f4cb408e538e60d7453960e60cf73bf48c66de73c32ccd0334756e3d01c208a3", "relations": [{"rule": 2, "type": "equivalent", "target": "1423180b54f26b7322789f7e8c2706a9", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "f4cb408e538e60d7453960e60cf73bf48c66de73c32ccd0334756e3d01c208a3"}}, {"rule": 2, "type": "equivalent", "target": "6aa686bf99f85b7efa0e0917ff80bc55", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "f4cb408e538e60d7453960e60cf73bf48c66de73c32ccd0334756e3d01c208a3"}}, {"rule": 2, "type": "equivalent", "target": "9f598042f3d276143481ef2fb46b3aa0", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}}, {"rule": 2, "type": "equivalent", "target": "a3608b5016b21226b7fceb7f31e290fe", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}}, {"rule": 2, "type": "equivalent", "target": "a9acb6cdf72b4d976f76108f26cf4fe9", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}}], "version": "9.6.24", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9f598042f3d276143481ef2fb46b3aa0", "kind": "equivalent", "version": "14.1", "label": "14.1", "title": "将时区数据文件更新至 tzdata release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}, "url": "/docs/compare/?release=14.1#14.1-6fb0ad2f59adff81", "source_url": "/docs/release/14.1/#ZH-AUTO-RELEASE-14-SECT2-44"}, {"db_id": "a9acb6cdf72b4d976f76108f26cf4fe9", "kind": "equivalent", "version": "13.5", "label": "13.5", "title": "将时区数据文件更新至 tzdata release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}, "url": "/docs/compare/?release=13.5#13.5-3b4a31ead6939171", "source_url": "/docs/release/13.5/#id-1.11.6.24.5"}, {"db_id": "a3608b5016b21226b7fceb7f31e290fe", "kind": "equivalent", "version": "12.9", "label": "12.9", "title": "将时区数据文件更新至 tzdata release 2021e，包含斐济、约旦、巴勒斯坦和萨摩亚的夏令时法律变更，以及巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史更正。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"]}, "url": "/docs/compare/?release=12.9#12.9-21f14edb67e745bc", "source_url": "/docs/release/12.9/#id-1.11.6.19.5"}, {"db_id": "1423180b54f26b7322789f7e8c2706a9", "kind": "equivalent", "version": "11.14", "label": "11.14", "title": "将时区数据文件更新到 tzdata 2021e 版，以反映斐济、约旦、巴勒斯坦和萨摩亚的夏令时法规变更，并修正巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史数据。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "f4cb408e538e60d7453960e60cf73bf48c66de73c32ccd0334756e3d01c208a3"}, "url": "/docs/compare/?release=11.14#11.14-232f99613fa5aa2b", "source_url": "/docs/release/11.14/#id-1.11.6.13.5"}, {"db_id": "6aa686bf99f85b7efa0e0917ff80bc55", "kind": "equivalent", "version": "10.19", "label": "10.19", "title": "将时区数据文件更新到 tzdata 2021e 版，以反映斐济、约旦、巴勒斯坦和萨摩亚的夏令时法规变更，并修正巴巴多斯、库克群岛、圭亚那、纽埃、葡萄牙和汤加的历史数据。", "evidence": {"same_day": true, "patch_ids": ["ad6cdc9198fc5523331c95fb86aa0d71"], "statement_hash": "f4cb408e538e60d7453960e60cf73bf48c66de73c32ccd0334756e3d01c208a3"}, "url": "/docs/compare/?release=10.19#10.19-232f99613fa5aa2b", "source_url": "/docs/release/10.19/#id-1.11.6.9.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 40}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 18}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 1}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 19}], "total": 40, "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": "9.6.24"}, {"id": "CVE-2021-23222", "url": "https://www.postgresql.org/support/security/CVE-2021-23222/", "fixed": {"10": "10.19", "11": "11.14", "12": "12.9", "13": "13.5", "14": "14.1", "9.6": "9.6.24"}, "score": 3.7, "title": "让 libpq 拒绝 SSL 或 GSS 加密握手之后的多余数据", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "14": "14", "9.6": "9.6"}, "component": "client", "published": {"10": "2021-11-11", "11": "2021-11-11", "12": "2021-11-11", "13": "2021-11-11", "14": "2021-11-11", "9.6": "2021-11-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "A man-in-the-middle attacker can inject false responses to the client's first few queries, despite the use of SSL certificate verification and encryption.\n\nIf more preconditions hold, the attacker can exfiltrate the client's password or other confidential data that might be transmitted early in a session. The attacker must have a way to trick the client's intended server into making the confidential data accessible to the attacker. A known implementation having that property is a PostgreSQL configuration vulnerable to CVE-2021-23214 . As with any exploitation of CVE-2021-23214 , the server must be using trust authentication with a clientcert requirement or using cert authentication. To disclose a password, the client must be in possession of a password, which is atypical when using an authentication configuration vulnerable to CVE-2021-23214 . The attacker must have some other way to access the server to retrieve the exfiltrated data (a valid, unprivileged login account would be sufficient).\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "first_published": "2021-11-11", "fixed_version": "9.6.24"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 40, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}