{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2025-11-13", "build": "14.20", "major": "14", "minor": 20, "manual": "14", "status": "stable", "doc_git": "", "version": "14.20", "eol_date": "2026-11-12", "date_text": "2025-11-13", "supported": true, "manual_url": "/docs/14/release-14-20.html", "source_url": "/docs/release/14.20/", "entry_count": 46, "placeholder": false, "content_hash": "bdae8bac0d9e6a175031a31e1c5f42e57369d27af82508a090da2c9a4003e52e", "manual_build": "14.24", "source_as_of": "", "changes_count": 46, "doc_loaded_at": "2026-09-26T02:56:39.341991", "migration_html": "<p>对于运行 14.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果是从早于 14.19 的版本升级，请参见<a href=\"/docs/14/release-14-19.html\" title=\"E.6. 发布版本 14.19\">第 E.6 节</a>。</p>", "compatibility_count": 0, "label": "14.20", "status_label": "受支持版本", "eol": "2026-11-12", "age_days": 317, "support_days": 47}, "groups": [{"date": "2025-11-13", "build": "14.20", "major": "14", "minor": 20, "manual": "14", "status": "stable", "doc_git": "", "version": "14.20", "eol_date": "2026-11-12", "date_text": "2025-11-13", "supported": true, "manual_url": "/docs/14/release-14-20.html", "source_url": "/docs/release/14.20/", "entry_count": 46, "placeholder": false, "content_hash": "bdae8bac0d9e6a175031a31e1c5f42e57369d27af82508a090da2c9a4003e52e", "manual_build": "14.24", "source_as_of": "", "changes_count": 46, "doc_loaded_at": "2026-09-26T02:56:39.341991", "migration_html": "<p>对于运行 14.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果是从早于 14.19 的版本升级，请参见<a href=\"/docs/14/release-14-19.html\" title=\"E.6. 发布版本 14.19\">第 E.6 节</a>。</p>", "compatibility_count": 0, "label": "14.20", "status_label": "受支持版本", "eol": "2026-11-12", "age_days": 317, "support_days": 47, "entries": [{"id": "14.20-1acfdd0cd4bbd28d", "cves": ["CVE-2025-12817"], "html": "<p>检查 <code>CREATE STATISTICS</code> 中模式的 <code>CREATE</code> 权限（Jelte Fennema-Nio）<a href=\"https://postgr.es/c/95cce5669\">§</a></p>\n<p>此遗漏允许表的所有者在任何模式中创建统计对象，可能导致意外的命名冲突。</p>\n<p><span>PostgreSQL</span> 项目感谢 Jelte Fennema-Nio 报告此问题。（CVE-2025-12817）</p>", "text": "检查 CREATE STATISTICS 中模式的 CREATE 权限（Jelte Fennema-Nio）§ 此遗漏允许表的所有者在任何模式中创建统计对象，可能导致意外的命名冲突。 PostgreSQL 项目感谢 Jelte Fennema-Nio 报告此问题。（CVE-2025-12817）", "title": "检查 CREATE STATISTICS 中模式的 CREATE 权限", "commits": ["95cce5669"], "section": "变更", "category": "security", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "baf7aad2e307d393c529cb835ec76d9ad3b77dec892c18c9a8b4e768a0c6f5e9", "section_path": ["变更"], "commit_groups": [["00eb646ea", "2393d374a", "5e4fcbe53", "8a2530ebc", "95cce5669", "d20abb587", "e2fb3dfa8"]], "identity_text": "Check for CREATE privileges on the schema in CREATE STATISTICS (Jelte Fennema-Nio) This omission allowed table owners to create statistics in any schema, potentially leading to unexpected naming conflicts. The PostgreSQL Project thanks Jelte Fennema-Nio for reporting this problem. (CVE-2025-12817)", "commit_aliases": ["00eb646ea", "2393d374a", "5e4fcbe53", "8a2530ebc", "95cce5669", "d20abb587", "e2fb3dfa8"], "source_commits": ["95cce5669"], "source_entry_id": "14.20/changes/001", "db_id": "7a542e168dfd911c88c2817105ab4eb1", "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704", "relations": [{"rule": 2, "type": "equivalent", "target": "0b1db4254a2e3444434b0ca4004ea84b", "evidence": {"same_day": true, "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704"}}, {"rule": 2, "type": "equivalent", "target": "3aabd99e8b497ed573a9c3988472f89b", "evidence": {"same_day": true, "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704"}}, {"rule": 2, "type": "equivalent", "target": "5434410099d24e095f2f3662e9b084be", "evidence": {"same_day": true, "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704"}}, {"rule": 2, "type": "equivalent", "target": "6167ff71ba63659939df7295a1784bd5", "evidence": {"same_day": true, "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704"}}, {"rule": 2, "type": "equivalent", "target": "fc4febff3c2281775597453f96dfd148", "evidence": {"same_day": true, "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704"}}], "version": "14.20", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "0b1db4254a2e3444434b0ca4004ea84b", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "检查 CREATE STATISTICS 中模式的 CREATE 权限", "evidence": {"same_day": true, "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704"}, "url": "/docs/compare/?release=18.1#18.1-45bd7bfaea1c1e6c", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "6167ff71ba63659939df7295a1784bd5", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "检查 CREATE STATISTICS 中模式的 CREATE 权限", "evidence": {"same_day": true, "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704"}, "url": "/docs/compare/?release=17.7#17.7-36aab10e5138d3d1", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "fc4febff3c2281775597453f96dfd148", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "检查 CREATE STATISTICS 中模式的 CREATE 权限", "evidence": {"same_day": true, "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704"}, "url": "/docs/compare/?release=16.11#16.11-de601249f8288957", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "3aabd99e8b497ed573a9c3988472f89b", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "检查 CREATE STATISTICS 中模式的 CREATE 权限", "evidence": {"same_day": true, "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704"}, "url": "/docs/compare/?release=15.15#15.15-41d0e2da68ae7d2f", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "5434410099d24e095f2f3662e9b084be", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "检查 CREATE STATISTICS 中模式的 CREATE 权限", "evidence": {"same_day": true, "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704"}, "url": "/docs/compare/?release=13.23#13.23-5bf870f01e021d82", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-e2a95ddb7200c878", "cves": ["CVE-2025-12818"], "html": "<p>避免 <span>libpq</span> 中分配大小计算的整数溢出（Jacob Champion）<a href=\"https://postgr.es/c/96d2c7e96\">§</a></p>\n<p><span>libpq</span> 中有多处对内存分配所需大小的计算不够谨慎。足够大的输入可能导致整数溢出，从而分配一个不够大的缓冲区，进而导致写入超出缓冲区的末尾。</p>\n<p><span>PostgreSQL</span> 项目感谢 Positive Technologies 的 Aleksey Solovev 报告此问题。（CVE-2025-12818）</p>", "text": "避免 libpq 中分配大小计算的整数溢出（Jacob Champion）§ libpq 中有多处对内存分配所需大小的计算不够谨慎。足够大的输入可能导致整数溢出，从而分配一个不够大的缓冲区，进而导致写入超出缓冲区的末尾。 PostgreSQL 项目感谢 Positive Technologies 的 Aleksey Solovev 报告此问题。（CVE-2025-12818）", "title": "避免 libpq 中分配大小计算的整数溢出", "commits": ["96d2c7e96"], "section": "变更", "category": "security", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "b00315771d5f38b4077d854a1792d828417b4fe311329cbdc6530bbf121fab06", "section_path": ["变更"], "commit_groups": [["585fd9b3c", "600086f47", "7eb8fcad8", "91421565f", "96d2c7e96", "d6f0c0d6d", "f5999f018"]], "identity_text": "Avoid integer overflow in allocation-size calculations within libpq (Jacob Champion) Several places in libpq were not sufficiently careful about computing the required size of a memory allocation. Sufficiently large inputs could cause integer overflow, resulting in an undersized buffer, which would then lead to writing past the end of the buffer. The PostgreSQL Project thanks Aleksey Solovev of Positive Technologies for reporting this problem. (CVE-2025-12818)", "commit_aliases": ["585fd9b3c", "600086f47", "7eb8fcad8", "91421565f", "96d2c7e96", "d6f0c0d6d", "f5999f018"], "source_commits": ["96d2c7e96"], "source_entry_id": "14.20/changes/002", "db_id": "1f91b721b071de697f740c95cd556a9e", "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb", "relations": [{"rule": 2, "type": "equivalent", "target": "10c3ef25a629d41429d514190a9f5584", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}}, {"rule": 2, "type": "equivalent", "target": "601fa44b8aa3f725f41f2320ba9cf51b", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}}, {"rule": 2, "type": "equivalent", "target": "9b1eafd982ad52573adf6f2d6ae70703", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}}, {"rule": 2, "type": "equivalent", "target": "c53264df3df1081cfca59daebb417ae4", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}}, {"rule": 2, "type": "equivalent", "target": "cf7417da3f5aaff52ed6398652b5cefb", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}}], "version": "14.20", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "c53264df3df1081cfca59daebb417ae4", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "避免 libpq 中分配大小计算的整数溢出", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}, "url": "/docs/compare/?release=18.1#18.1-3a4a5ae84a44ca49", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "cf7417da3f5aaff52ed6398652b5cefb", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免 libpq 中分配大小计算的整数溢出", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}, "url": "/docs/compare/?release=17.7#17.7-a326b8fad6479f02", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "10c3ef25a629d41429d514190a9f5584", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "避免 libpq 中分配大小计算的整数溢出", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}, "url": "/docs/compare/?release=16.11#16.11-c5f87912ec601f66", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "601fa44b8aa3f725f41f2320ba9cf51b", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "避免 libpq 中分配大小计算的整数溢出", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}, "url": "/docs/compare/?release=15.15#15.15-3568c624ba81b610", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "9b1eafd982ad52573adf6f2d6ae70703", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "避免 libpq 中分配大小计算的整数溢出", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}, "url": "/docs/compare/?release=13.23#13.23-d6bd7a2c0c48c3ad", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-927aa6d409a0735d", "cves": [], "html": "<p>进一步修复 <code>SIMILAR TO</code> 正则表达式中字符类的处理（Laurenz Albe）<a href=\"https://postgr.es/c/f75ff1b14\">§</a></p>\n<p>之前将 <code>SIMILAR TO</code> 模式匹配表达式转换为 POSIX 风格正则表达式的修复破坏了一个之前有效的边界情况：如果在左方括号之后紧接着一个转义字符，然后在转义序列之后紧接着一个右方括号（例如 <code>[\\w]</code>），右方括号将不再被视为字符类的终止符。</p>", "text": "进一步修复 SIMILAR TO 正则表达式中字符类的处理（Laurenz Albe）§ 之前将 SIMILAR TO 模式匹配表达式转换为 POSIX 风格正则表达式的修复破坏了一个之前有效的边界情况：如果在左方括号之后紧接着一个转义字符，然后在转义序列之后紧接着一个右方括号（例如 [\\w]），右方括号将不再被视为字符类的终止符。", "title": "进一步修复 SIMILAR TO 正则表达式中字符类的处理", "commits": ["f75ff1b14"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "c1f405ddc803cdfb5f92a1abed71bfb48f5e3b7647ca3d780fb0f83056c5832d", "section_path": ["变更"], "commit_groups": [["281ad4ed1", "308773617", "802308693", "9fd531534", "cdf7feb96", "e09adb5b9", "f75ff1b14"]], "identity_text": "Further fix processing of character classes within SIMILAR TO regular expressions (Laurenz Albe) The previous fix for translating SIMILAR TO pattern matching expressions to POSIX-style regular expressions broke a corner case that formerly worked: if there is an escape character right after the opening bracket and then a closing bracket right after the escape sequence (for example [\\w]), the closing bracket was no longer seen as terminating the character class.", "commit_aliases": ["281ad4ed1", "308773617", "802308693", "9fd531534", "cdf7feb96", "e09adb5b9", "f75ff1b14"], "source_commits": ["f75ff1b14"], "source_entry_id": "14.20/changes/003", "db_id": "fe6ec7aed3fe1febefdae85352d2c1cb", "patch_ids": ["880d2cb961218bd1733eaffa295f0519"], "statement_hash": "32047fa502a05a72395459014ad3aceb8f209cc185eb53ee1104d11634e73ffa", "relations": [{"rule": 2, "type": "equivalent", "target": "126d2565dd47a1a1ceedb71b239f90fd", "evidence": {"same_day": true, "patch_ids": ["880d2cb961218bd1733eaffa295f0519"], "statement_hash": "32047fa502a05a72395459014ad3aceb8f209cc185eb53ee1104d11634e73ffa"}}, {"rule": 2, "type": "equivalent", "target": "2285589ba0a843d5b4c36cb9771c9526", "evidence": {"same_day": true, "patch_ids": ["880d2cb961218bd1733eaffa295f0519"], "statement_hash": "32047fa502a05a72395459014ad3aceb8f209cc185eb53ee1104d11634e73ffa"}}, {"rule": 2, "type": "equivalent", "target": "6ee642c194aa66e31c3bd973bc661f4c", "evidence": {"same_day": true, "patch_ids": ["880d2cb961218bd1733eaffa295f0519"], "statement_hash": "32047fa502a05a72395459014ad3aceb8f209cc185eb53ee1104d11634e73ffa"}}, {"rule": 2, "type": "equivalent", "target": "7525a80f4f15bf961429501b52914fb6", "evidence": {"same_day": true, "patch_ids": ["880d2cb961218bd1733eaffa295f0519"], "statement_hash": "32047fa502a05a72395459014ad3aceb8f209cc185eb53ee1104d11634e73ffa"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2285589ba0a843d5b4c36cb9771c9526", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "进一步修复 SIMILAR TO 正则表达式中字符类的处理", "evidence": {"same_day": true, "patch_ids": ["880d2cb961218bd1733eaffa295f0519"], "statement_hash": "32047fa502a05a72395459014ad3aceb8f209cc185eb53ee1104d11634e73ffa"}, "url": "/docs/compare/?release=17.7#17.7-da7ba63a6535d5ee", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "6ee642c194aa66e31c3bd973bc661f4c", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "进一步修复 SIMILAR TO 正则表达式中字符类的处理", "evidence": {"same_day": true, "patch_ids": ["880d2cb961218bd1733eaffa295f0519"], "statement_hash": "32047fa502a05a72395459014ad3aceb8f209cc185eb53ee1104d11634e73ffa"}, "url": "/docs/compare/?release=16.11#16.11-ee72f5e10880d676", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "126d2565dd47a1a1ceedb71b239f90fd", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "进一步修复 SIMILAR TO 正则表达式中字符类的处理", "evidence": {"same_day": true, "patch_ids": ["880d2cb961218bd1733eaffa295f0519"], "statement_hash": "32047fa502a05a72395459014ad3aceb8f209cc185eb53ee1104d11634e73ffa"}, "url": "/docs/compare/?release=15.15#15.15-53275f7f0ec40834", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "7525a80f4f15bf961429501b52914fb6", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "进一步修复 SIMILAR TO 正则表达式中字符类的处理", "evidence": {"same_day": true, "patch_ids": ["880d2cb961218bd1733eaffa295f0519"], "statement_hash": "32047fa502a05a72395459014ad3aceb8f209cc185eb53ee1104d11634e73ffa"}, "url": "/docs/compare/?release=13.23#13.23-d06f6ff99ab435ef", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-86bc742902dd05d4", "cves": [], "html": "<p>修复对参数包含子查询且该子查询中有 <code>FROM</code> 引用聚合函数外部 CTE 的聚合函数的解析问题（Tom Lane）<a href=\"https://postgr.es/c/31bf09632\">§</a></p>\n<p>这样的 CTE 引用在确定聚合的语义层级时必须像外层列引用一样处理，但之前没有被考虑在内，导致了晦涩的规划器或执行器错误。</p>", "text": "修复对参数包含子查询且该子查询中有 FROM 引用聚合函数外部 CTE 的聚合函数的解析问题（Tom Lane）§ 这样的 CTE 引用在确定聚合的语义层级时必须像外层列引用一样处理，但之前没有被考虑在内，导致了晦涩的规划器或执行器错误。", "title": "修复对参数包含子查询且该子查询中有 FROM 引用聚合函数外部 CTE 的聚合函数的解析问题", "commits": ["31bf09632"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "2cb1be81b892fd8ee771e1b2b86cd16f6e0740fa21d06c11a0ec73031ba5e5d2", "section_path": ["变更"], "commit_groups": [["31bf09632", "4eab45649", "7df74e635", "afd18f276", "b0cc0a71e", "b649ef244", "e830896c1"]], "identity_text": "Fix parsing of aggregate functions whose arguments contain a sub-select with a FROM reference to a CTE outside the aggregate function (Tom Lane) Such a CTE reference must act like a outer-level column reference when determining the aggregate's semantic level; but it was not being accounted for, leading to obscure planner or executor errors.", "commit_aliases": ["31bf09632", "4eab45649", "7df74e635", "afd18f276", "b0cc0a71e", "b649ef244", "e830896c1"], "source_commits": ["31bf09632"], "source_entry_id": "14.20/changes/004", "db_id": "48bd01e91a13d4e5586eb1d5e90f7841", "patch_ids": ["764fe240bdd6c66a1ae1b512c5f9d9fa"], "statement_hash": "6c59c9afd476bfa04a78114953d6cd6ef60d44b7f7b6d29030c3250fc71c6e8f", "relations": [{"rule": 2, "type": "equivalent", "target": "496274d3f10dbd29bc080049d8d677b1", "evidence": {"same_day": true, "patch_ids": ["764fe240bdd6c66a1ae1b512c5f9d9fa"], "statement_hash": "6c59c9afd476bfa04a78114953d6cd6ef60d44b7f7b6d29030c3250fc71c6e8f"}}, {"rule": 2, "type": "equivalent", "target": "655b2c30e54df5842d2bbb82e898c78f", "evidence": {"same_day": true, "patch_ids": ["764fe240bdd6c66a1ae1b512c5f9d9fa"], "statement_hash": "6c59c9afd476bfa04a78114953d6cd6ef60d44b7f7b6d29030c3250fc71c6e8f"}}, {"rule": 2, "type": "equivalent", "target": "9b994a98438fd30222b16d67c861c04f", "evidence": {"same_day": true, "patch_ids": ["764fe240bdd6c66a1ae1b512c5f9d9fa"], "statement_hash": "6c59c9afd476bfa04a78114953d6cd6ef60d44b7f7b6d29030c3250fc71c6e8f"}}, {"rule": 2, "type": "equivalent", "target": "ea36580551561ed6223f1508f1946e4e", "evidence": {"same_day": true, "patch_ids": ["764fe240bdd6c66a1ae1b512c5f9d9fa"], "statement_hash": "6c59c9afd476bfa04a78114953d6cd6ef60d44b7f7b6d29030c3250fc71c6e8f"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9b994a98438fd30222b16d67c861c04f", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复对参数包含子查询且该子查询中有 FROM 引用聚合函数外部 CTE 的聚合函数的解析问题", "evidence": {"same_day": true, "patch_ids": ["764fe240bdd6c66a1ae1b512c5f9d9fa"], "statement_hash": "6c59c9afd476bfa04a78114953d6cd6ef60d44b7f7b6d29030c3250fc71c6e8f"}, "url": "/docs/compare/?release=17.7#17.7-ebbd81de208ea5bb", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "655b2c30e54df5842d2bbb82e898c78f", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复对参数包含子查询且该子查询中有 FROM 引用聚合函数外部 CTE 的聚合函数的解析问题", "evidence": {"same_day": true, "patch_ids": ["764fe240bdd6c66a1ae1b512c5f9d9fa"], "statement_hash": "6c59c9afd476bfa04a78114953d6cd6ef60d44b7f7b6d29030c3250fc71c6e8f"}, "url": "/docs/compare/?release=16.11#16.11-197cbe6bbef1cc79", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "496274d3f10dbd29bc080049d8d677b1", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复对参数包含子查询且该子查询中有 FROM 引用聚合函数外部 CTE 的聚合函数的解析问题", "evidence": {"same_day": true, "patch_ids": ["764fe240bdd6c66a1ae1b512c5f9d9fa"], "statement_hash": "6c59c9afd476bfa04a78114953d6cd6ef60d44b7f7b6d29030c3250fc71c6e8f"}, "url": "/docs/compare/?release=15.15#15.15-26debfeb7f98ef7e", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "ea36580551561ed6223f1508f1946e4e", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复对参数包含子查询且该子查询中有 FROM 引用聚合函数外部 CTE 的聚合函数的解析问题", "evidence": {"same_day": true, "patch_ids": ["764fe240bdd6c66a1ae1b512c5f9d9fa"], "statement_hash": "6c59c9afd476bfa04a78114953d6cd6ef60d44b7f7b6d29030c3250fc71c6e8f"}, "url": "/docs/compare/?release=13.23#13.23-601ca99d891c2e51", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-765079b0a221fb3b", "cves": [], "html": "<p>修复估算 SubPlan 代价时在边界情况下出现的 <span>“<span>no relation entry for relid</span>”</span> 错误（Richard Guo）<a href=\"https://postgr.es/c/160ef51c8\">§</a></p>", "text": "修复估算 SubPlan 代价时在边界情况下出现的 “no relation entry for relid” 错误（Richard Guo）§", "title": "修复估算 SubPlan 代价时在边界情况下出现的 “no relation entry for relid” 错误", "commits": ["160ef51c8"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "72d781648e67245651e4edf1a9791cdc91c9bf11412889d40d44ad006c222cfb", "section_path": ["变更"], "commit_groups": [["160ef51c8", "53e35fb56", "79ade5873", "8c02d92c6", "ab4a35b4e", "aba8f61c3", "f34202f51"]], "identity_text": "Fix no relation entry for relid errors in corner cases while estimating SubPlan costs (Richard Guo)", "commit_aliases": ["160ef51c8", "53e35fb56", "79ade5873", "8c02d92c6", "ab4a35b4e", "aba8f61c3", "f34202f51"], "source_commits": ["160ef51c8"], "source_entry_id": "14.20/changes/005", "db_id": "f05b18a5008769565327db41a4723345", "patch_ids": ["d8decfc9f5a72358b7840d271a5ac6a1"], "statement_hash": "cdd2abdad595de6306111fbaf218760c0f0a3957c324b42cbe4aae3519054969", "relations": [{"rule": 2, "type": "equivalent", "target": "304a5f5d1d97c55f6eb257f030200a63", "evidence": {"same_day": true, "patch_ids": ["d8decfc9f5a72358b7840d271a5ac6a1"], "statement_hash": "cdd2abdad595de6306111fbaf218760c0f0a3957c324b42cbe4aae3519054969"}}, {"rule": 2, "type": "equivalent", "target": "75260513242373459b8abd97a5fd39da", "evidence": {"same_day": true, "patch_ids": ["d8decfc9f5a72358b7840d271a5ac6a1"], "statement_hash": "cdd2abdad595de6306111fbaf218760c0f0a3957c324b42cbe4aae3519054969"}}, {"rule": 2, "type": "equivalent", "target": "d6a72085447f9bf689070d6ca738913a", "evidence": {"same_day": true, "patch_ids": ["d8decfc9f5a72358b7840d271a5ac6a1"], "statement_hash": "cdd2abdad595de6306111fbaf218760c0f0a3957c324b42cbe4aae3519054969"}}, {"rule": 2, "type": "equivalent", "target": "df536c487716b8451c39cf180217de1a", "evidence": {"same_day": true, "patch_ids": ["d8decfc9f5a72358b7840d271a5ac6a1"], "statement_hash": "cdd2abdad595de6306111fbaf218760c0f0a3957c324b42cbe4aae3519054969"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "304a5f5d1d97c55f6eb257f030200a63", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复估算 SubPlan 代价时在边界情况下出现的 “no relation entry for relid” 错误", "evidence": {"same_day": true, "patch_ids": ["d8decfc9f5a72358b7840d271a5ac6a1"], "statement_hash": "cdd2abdad595de6306111fbaf218760c0f0a3957c324b42cbe4aae3519054969"}, "url": "/docs/compare/?release=17.7#17.7-8b44b6089b2752d8", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "d6a72085447f9bf689070d6ca738913a", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复估算 SubPlan 代价时在边界情况下出现的 “no relation entry for relid” 错误", "evidence": {"same_day": true, "patch_ids": ["d8decfc9f5a72358b7840d271a5ac6a1"], "statement_hash": "cdd2abdad595de6306111fbaf218760c0f0a3957c324b42cbe4aae3519054969"}, "url": "/docs/compare/?release=16.11#16.11-085229346703afeb", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "df536c487716b8451c39cf180217de1a", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复估算 SubPlan 代价时在边界情况下出现的 “no relation entry for relid” 错误", "evidence": {"same_day": true, "patch_ids": ["d8decfc9f5a72358b7840d271a5ac6a1"], "statement_hash": "cdd2abdad595de6306111fbaf218760c0f0a3957c324b42cbe4aae3519054969"}, "url": "/docs/compare/?release=15.15#15.15-7cf40c4e16cb1fa3", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "75260513242373459b8abd97a5fd39da", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复估算 SubPlan 代价时在边界情况下出现的“no relation entry for relid”错误", "evidence": {"same_day": true, "patch_ids": ["d8decfc9f5a72358b7840d271a5ac6a1"], "statement_hash": "cdd2abdad595de6306111fbaf218760c0f0a3957c324b42cbe4aae3519054969"}, "url": "/docs/compare/?release=13.23#13.23-beef60f9007c0ef3", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-5e29cf4287b439af", "cves": [], "html": "<p>移除 B-树索引清理中的错误断言（Peter Geoghegan）<a href=\"https://postgr.es/c/314004021\">§</a></p>", "text": "移除 B-树索引清理中的错误断言（Peter Geoghegan）§", "title": "移除 B-树索引清理中的错误断言", "commits": ["314004021"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "f29265188ee4e5cf1a4e327367230c71971a804befef66f0766e224cbb6f6bf8", "section_path": ["变更"], "commit_groups": [["314004021", "61de81a49", "843e50208", "ae15cebc2", "af302ff6b", "c160fd469", "ca0c93908"]], "identity_text": "Remove faulty assertion in btree index cleanup (Peter Geoghegan)", "commit_aliases": ["314004021", "61de81a49", "843e50208", "ae15cebc2", "af302ff6b", "c160fd469", "ca0c93908"], "source_commits": ["314004021"], "source_entry_id": "14.20/changes/006", "db_id": "9e457bb041db2cbeaeaf7995dafca323", "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1", "relations": [{"rule": 2, "type": "equivalent", "target": "0a57a548c4b77cd7d910727d3c65b3a6", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}}, {"rule": 2, "type": "equivalent", "target": "1a0e9b151c18103e9e44e0d5b065435e", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}}, {"rule": 2, "type": "equivalent", "target": "3933929e20ae66e9831bcbabb992d203", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}}, {"rule": 2, "type": "equivalent", "target": "444038cce9bb99031a082f8098e1be72", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}}, {"rule": 2, "type": "equivalent", "target": "488141078c6f2db091ee11544337a811", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1a0e9b151c18103e9e44e0d5b065435e", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "移除 B-树索引清理中的错误断言", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}, "url": "/docs/compare/?release=18.1#18.1-b879ef73b7e33cee", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "488141078c6f2db091ee11544337a811", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "移除 B-树索引清理中的错误断言", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}, "url": "/docs/compare/?release=17.7#17.7-0a5a861bce4d8e04", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "3933929e20ae66e9831bcbabb992d203", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "移除 B-树索引清理中的错误断言", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}, "url": "/docs/compare/?release=16.11#16.11-d9b1b3d193f8b619", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "0a57a548c4b77cd7d910727d3c65b3a6", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "移除 B-树索引清理中的错误断言", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}, "url": "/docs/compare/?release=15.15#15.15-a04a5bb82b43a3d4", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "444038cce9bb99031a082f8098e1be72", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "移除 B-树索引清理中的错误断言", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}, "url": "/docs/compare/?release=13.23#13.23-14a74180f99d2672", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-4e2c8942f4b6e7b6", "cves": [], "html": "<p>修复在有多个扫描条件的 GIN 索引扫描中可能出现的无限循环（Tom Lane）<a href=\"https://postgr.es/c/4a593043e\">§</a></p>\n<p>GIN 可以处理能够拒绝不匹配条目但不适用于搜索相关条目的扫描条件，例如 <code>tsquery</code> 子句如 <code>!term</code>。但此类条件不能排在扫描条件数组的第一个位置。代码在所有情况下都未能确保这一点，导致包含此类条件与正常条件混合的查询可能根据查询中条件给出的顺序不同而正常工作或不工作。</p>", "text": "修复在有多个扫描条件的 GIN 索引扫描中可能出现的无限循环（Tom Lane）§ GIN 可以处理能够拒绝不匹配条目但不适用于搜索相关条目的扫描条件，例如 tsquery 子句如 !term。但此类条件不能排在扫描条件数组的第一个位置。代码在所有情况下都未能确保这一点，导致包含此类条件与正常条件混合的查询可能根据查询中条件给出的顺序不同而正常工作或不工作。", "title": "修复在有多个扫描条件的 GIN 索引扫描中可能出现的无限循环", "commits": ["4a593043e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "bc9639ba19b7f90a127d6ab5741d1da8b50c065ca4563a5f303246361b2fddc3", "section_path": ["变更"], "commit_groups": [["327b7324d", "34249b3b5", "3a7a3eaaf", "3e0f5f00b", "456c6a05d", "4a593043e", "d532069c3"]], "identity_text": "Fix possible infinite loop in GIN index scans with multiple scan conditions (Tom Lane) GIN can handle scan conditions that can reject non-matching entries but are not useful for searching for relevant entries, for example a tsquery clause like !term. But such a condition must not be first in the array of scan conditions. The code failed to ensure that in all cases, with the result that a query having a mix of such conditions with normal conditions might work or not depending on the order in which the conditions were given in the query.", "commit_aliases": ["327b7324d", "34249b3b5", "3a7a3eaaf", "3e0f5f00b", "456c6a05d", "4a593043e", "d532069c3"], "source_commits": ["4a593043e"], "source_entry_id": "14.20/changes/007", "db_id": "1116d0380d0933827af9edc84f00a437", "patch_ids": ["c7ccd83b73c3d597d778562314da09de"], "statement_hash": "a8907b51499c2b1e0161468a2af3e044ab914a05f87ff41296b18699ed393ed8", "relations": [{"rule": 2, "type": "equivalent", "target": "07731746a6ff9a7b9b008a27d072c367", "evidence": {"same_day": true, "patch_ids": ["c7ccd83b73c3d597d778562314da09de"], "statement_hash": "a8907b51499c2b1e0161468a2af3e044ab914a05f87ff41296b18699ed393ed8"}}, {"rule": 2, "type": "equivalent", "target": "5be491ba179504c2233d7625da61d2da", "evidence": {"same_day": true, "patch_ids": ["c7ccd83b73c3d597d778562314da09de"], "statement_hash": "a8907b51499c2b1e0161468a2af3e044ab914a05f87ff41296b18699ed393ed8"}}, {"rule": 2, "type": "equivalent", "target": "ada25ecf8ee38daa5fb081917d2948ee", "evidence": {"same_day": true, "patch_ids": ["c7ccd83b73c3d597d778562314da09de"], "statement_hash": "a8907b51499c2b1e0161468a2af3e044ab914a05f87ff41296b18699ed393ed8"}}, {"rule": 2, "type": "equivalent", "target": "bd5d4719bfe4d462348485d2df2fe33e", "evidence": {"same_day": true, "patch_ids": ["c7ccd83b73c3d597d778562314da09de"], "statement_hash": "a8907b51499c2b1e0161468a2af3e044ab914a05f87ff41296b18699ed393ed8"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5be491ba179504c2233d7625da61d2da", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复在有多个扫描条件的 GIN 索引扫描中可能出现的无限循环", "evidence": {"same_day": true, "patch_ids": ["c7ccd83b73c3d597d778562314da09de"], "statement_hash": "a8907b51499c2b1e0161468a2af3e044ab914a05f87ff41296b18699ed393ed8"}, "url": "/docs/compare/?release=17.7#17.7-90e7f7363f5668ce", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "07731746a6ff9a7b9b008a27d072c367", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复在有多个扫描条件的 GIN 索引扫描中可能出现的无限循环", "evidence": {"same_day": true, "patch_ids": ["c7ccd83b73c3d597d778562314da09de"], "statement_hash": "a8907b51499c2b1e0161468a2af3e044ab914a05f87ff41296b18699ed393ed8"}, "url": "/docs/compare/?release=16.11#16.11-b91c9d7c28e506b9", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "ada25ecf8ee38daa5fb081917d2948ee", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复在有多个扫描条件的 GIN 索引扫描中可能出现的无限循环", "evidence": {"same_day": true, "patch_ids": ["c7ccd83b73c3d597d778562314da09de"], "statement_hash": "a8907b51499c2b1e0161468a2af3e044ab914a05f87ff41296b18699ed393ed8"}, "url": "/docs/compare/?release=15.15#15.15-4727ad6ea5a12266", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "bd5d4719bfe4d462348485d2df2fe33e", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复在有多个扫描条件的 GIN 索引扫描中可能出现的无限循环", "evidence": {"same_day": true, "patch_ids": ["c7ccd83b73c3d597d778562314da09de"], "statement_hash": "a8907b51499c2b1e0161468a2af3e044ab914a05f87ff41296b18699ed393ed8"}, "url": "/docs/compare/?release=13.23#13.23-c0f995fb0474db85", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-ff0022457d5a07d4", "cves": [], "html": "<p>确保 GIN 索引扫描可以被取消（Tom Lane）<a href=\"https://postgr.es/c/a7da746c1\">§</a></p>\n<p>某些代码路径能够长时间运行而不检查中断。</p>", "text": "确保 GIN 索引扫描可以被取消（Tom Lane）§ 某些代码路径能够长时间运行而不检查中断。", "title": "确保 GIN 索引扫描可以被取消", "commits": ["a7da746c1"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "2ea21ebfb522d06f0d1947b1302a3498a3375c19e5bbc445be3eb6e4ac98f537", "section_path": ["变更"], "commit_groups": [["25eadfd0f", "44c2e5b76", "a7da746c1", "a9c1b9c1c", "b2d71c455", "b55068236", "d17abaea8"]], "identity_text": "Ensure that GIN index scans can be canceled (Tom Lane) Some code paths were capable of running for a long time without checking for interrupts.", "commit_aliases": ["25eadfd0f", "44c2e5b76", "a7da746c1", "a9c1b9c1c", "b2d71c455", "b55068236", "d17abaea8"], "source_commits": ["a7da746c1"], "source_entry_id": "14.20/changes/008", "db_id": "545ab4f44b41bb88f8388e57bbc5e753", "patch_ids": ["fec1a4bbceb6f21c116318b4726ea890"], "statement_hash": "63f0110202bb4e324f5e35e04d36c2e79a4b131ee03c7aaef9dfdd02a02eb601", "relations": [{"rule": 2, "type": "equivalent", "target": "9bf5b9f62848d9c4fbf7c451e24a7678", "evidence": {"same_day": true, "patch_ids": ["fec1a4bbceb6f21c116318b4726ea890"], "statement_hash": "63f0110202bb4e324f5e35e04d36c2e79a4b131ee03c7aaef9dfdd02a02eb601"}}, {"rule": 2, "type": "equivalent", "target": "bd1a8175f31114d3b4091952105cb89b", "evidence": {"same_day": true, "patch_ids": ["fec1a4bbceb6f21c116318b4726ea890"], "statement_hash": "63f0110202bb4e324f5e35e04d36c2e79a4b131ee03c7aaef9dfdd02a02eb601"}}, {"rule": 2, "type": "equivalent", "target": "c902c6da0be42d2eb7c8740866d6bba6", "evidence": {"same_day": true, "patch_ids": ["fec1a4bbceb6f21c116318b4726ea890"], "statement_hash": "63f0110202bb4e324f5e35e04d36c2e79a4b131ee03c7aaef9dfdd02a02eb601"}}, {"rule": 2, "type": "equivalent", "target": "ec300f825c44c3a251a22f92e910bb8c", "evidence": {"same_day": true, "patch_ids": ["fec1a4bbceb6f21c116318b4726ea890"], "statement_hash": "63f0110202bb4e324f5e35e04d36c2e79a4b131ee03c7aaef9dfdd02a02eb601"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c902c6da0be42d2eb7c8740866d6bba6", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "确保 GIN 索引扫描可以被取消", "evidence": {"same_day": true, "patch_ids": ["fec1a4bbceb6f21c116318b4726ea890"], "statement_hash": "63f0110202bb4e324f5e35e04d36c2e79a4b131ee03c7aaef9dfdd02a02eb601"}, "url": "/docs/compare/?release=17.7#17.7-15d8faabe675ae00", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "ec300f825c44c3a251a22f92e910bb8c", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "确保 GIN 索引扫描可以被取消", "evidence": {"same_day": true, "patch_ids": ["fec1a4bbceb6f21c116318b4726ea890"], "statement_hash": "63f0110202bb4e324f5e35e04d36c2e79a4b131ee03c7aaef9dfdd02a02eb601"}, "url": "/docs/compare/?release=16.11#16.11-0e47bb5c808391d4", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "9bf5b9f62848d9c4fbf7c451e24a7678", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "确保 GIN 索引扫描可以被取消", "evidence": {"same_day": true, "patch_ids": ["fec1a4bbceb6f21c116318b4726ea890"], "statement_hash": "63f0110202bb4e324f5e35e04d36c2e79a4b131ee03c7aaef9dfdd02a02eb601"}, "url": "/docs/compare/?release=15.15#15.15-d90fed169ad60200", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "bd1a8175f31114d3b4091952105cb89b", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "确保 GIN 索引扫描可以被取消", "evidence": {"same_day": true, "patch_ids": ["fec1a4bbceb6f21c116318b4726ea890"], "statement_hash": "63f0110202bb4e324f5e35e04d36c2e79a4b131ee03c7aaef9dfdd02a02eb601"}, "url": "/docs/compare/?release=13.23#13.23-cac6bf9a661f1a61", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-1c3a5c9cbab5b1ac", "cves": [], "html": "<p>确保 BRIN 自动汇总为需要快照的索引表达式提供快照（Álvaro Herrera）<a href=\"https://postgr.es/c/f0ad41716\">§</a> <a href=\"https://postgr.es/c/65b0d1f74\">§</a></p>\n<p>以前，此类索引的自动汇总会失败，然后留下占位索引元组，导致索引随时间膨胀。</p>", "text": "确保 BRIN 自动汇总为需要快照的索引表达式提供快照（Álvaro Herrera）§ § 以前，此类索引的自动汇总会失败，然后留下占位索引元组，导致索引随时间膨胀。", "title": "确保 BRIN 自动汇总为需要快照的索引表达式提供快照", "commits": ["65b0d1f74", "f0ad41716"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "ca2920ba6901c069243df0cfaa2fe71fb39973545221586eb225947a038c6598", "section_path": ["变更"], "commit_groups": [["0a3d27bfe", "20442cf50", "3b5007347", "65b0d1f74", "8733f0b54", "bcfbd3f74", "ef81697fe"], ["23ddadf68", "3c7b47974", "419ffde23", "6ef33c805", "a95e3d84c", "f0ad41716", "f4b68b033"]], "identity_text": "Ensure that BRIN autosummarization provides a snapshot for index expressions that need one (Álvaro Herrera) Previously, autosummarization would fail for such indexes, and then leave placeholder index tuples behind, causing the index to bloat over time.", "commit_aliases": ["0a3d27bfe", "20442cf50", "23ddadf68", "3b5007347", "3c7b47974", "419ffde23", "65b0d1f74", "6ef33c805", "8733f0b54", "a95e3d84c", "bcfbd3f74", "ef81697fe", "f0ad41716", "f4b68b033"], "source_commits": ["65b0d1f74", "f0ad41716"], "source_entry_id": "14.20/changes/009", "db_id": "7f0361a52a096ffc5b14904781aeb0bc", "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585", "relations": [{"rule": 2, "type": "equivalent", "target": "0cb94d7b769fa6011ab24dd8d4a5182f", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}}, {"rule": 2, "type": "equivalent", "target": "0dd09cb0d2d5f7d388110d5f734dee23", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}}, {"rule": 2, "type": "equivalent", "target": "3e8741d3d489044f4c55886a02fd1ca6", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}}, {"rule": 2, "type": "equivalent", "target": "5e3ad415c950ddc874e527c528e4312f", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}}, {"rule": 2, "type": "equivalent", "target": "721aeb1deeff7de3e90db706f730ab11", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e3ad415c950ddc874e527c528e4312f", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "确保 BRIN 自动汇总为需要快照的索引表达式提供快照", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}, "url": "/docs/compare/?release=18.1#18.1-a00fe3bcec296ab2", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "721aeb1deeff7de3e90db706f730ab11", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "确保 BRIN 自动汇总为需要快照的索引表达式提供快照", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}, "url": "/docs/compare/?release=17.7#17.7-a8f10736234e0b39", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "3e8741d3d489044f4c55886a02fd1ca6", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "确保 BRIN 自动汇总为需要快照的索引表达式提供快照", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}, "url": "/docs/compare/?release=16.11#16.11-fa68b622cb30fa75", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "0dd09cb0d2d5f7d388110d5f734dee23", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "确保 BRIN 自动汇总为需要快照的索引表达式提供快照", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}, "url": "/docs/compare/?release=15.15#15.15-fd7c1849f8c37f75", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "0cb94d7b769fa6011ab24dd8d4a5182f", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "确保 BRIN 自动汇总为需要快照的索引表达式提供快照", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}, "url": "/docs/compare/?release=13.23#13.23-de4921e0152423d8", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-fc1c1f6d56fc4b89", "cves": [], "html": "<p>修复当表接近 2<sup>32</sup> 页时 BRIN 索引扫描中的整数溢出风险（Sunil S）<a href=\"https://postgr.es/c/eea24eb0a\">§</a></p>\n<p>此疏忽可能导致无限循环或扫描不需要的表页面。</p>", "text": "修复当表接近 232 页时 BRIN 索引扫描中的整数溢出风险（Sunil S）§ 此疏忽可能导致无限循环或扫描不需要的表页面。", "title": "修复当表接近 232 页时 BRIN 索引扫描中的整数溢出风险", "commits": ["eea24eb0a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "50daccc4afac327429fedd890b6c84e97eded3728ec9fcd19c8d8a55fbfe2a90", "section_path": ["变更"], "commit_groups": [["715983a81", "810aaf7f2", "9fd29d7ff", "c28f8ca29", "c4f5a59ab", "eea24eb0a", "ef915bf93"]], "identity_text": "Fix integer-overflow hazard in BRIN index scans when the table contains close to 232 pages (Sunil S) This oversight could result in an infinite loop or scanning of unneeded table pages.", "commit_aliases": ["715983a81", "810aaf7f2", "9fd29d7ff", "c28f8ca29", "c4f5a59ab", "eea24eb0a", "ef915bf93"], "source_commits": ["eea24eb0a"], "source_entry_id": "14.20/changes/010", "db_id": "cbb0ef9e07e346b9959c4a482b828973", "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f", "relations": [{"rule": 2, "type": "equivalent", "target": "393a9b7eb2a54302a3bd8b2790808ca8", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}}, {"rule": 2, "type": "equivalent", "target": "3eee9fbd93044d08fe7b761285b4eef0", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}}, {"rule": 2, "type": "equivalent", "target": "41c5c1173ef259c7bb96b3467e9de919", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}}, {"rule": 2, "type": "equivalent", "target": "c0b6100e40d8b770ece9bacc3084ea91", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}}, {"rule": 2, "type": "equivalent", "target": "ca0d04f29eca7d84d81b300dc4107221", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "393a9b7eb2a54302a3bd8b2790808ca8", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复当表接近 232 页时 BRIN 索引扫描中的整数溢出风险", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}, "url": "/docs/compare/?release=18.1#18.1-4d75a8abffa08925", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "3eee9fbd93044d08fe7b761285b4eef0", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复当表接近 232 页时 BRIN 索引扫描中的整数溢出风险", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}, "url": "/docs/compare/?release=17.7#17.7-22b81d2b7991be50", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "41c5c1173ef259c7bb96b3467e9de919", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复当表接近 232 页时 BRIN 索引扫描中的整数溢出风险", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}, "url": "/docs/compare/?release=16.11#16.11-f239d80cd401413a", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "ca0d04f29eca7d84d81b300dc4107221", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复当表接近 232 页时 BRIN 索引扫描中的整数溢出风险", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}, "url": "/docs/compare/?release=15.15#15.15-b0a9c7b1bda7fbc4", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "c0b6100e40d8b770ece9bacc3084ea91", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复当表接近 232 页时 BRIN 索引扫描中的整数溢出风险", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}, "url": "/docs/compare/?release=13.23#13.23-6eae1200294c5fb3", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-f7c15c83384f177c", "cves": [], "html": "<p>修复 JIT 生成的元组解构代码中存储值的错误零扩展问题（David Rowley）<a href=\"https://postgr.es/c/e4316ec4d\">§</a></p>\n<p>不使用 JIT 时，等效代码执行的是符号扩展而非零扩展，导致小整数数据类型的 Datum 表示不同。这种不一致在大多数情况下被掩盖了，但已知在使用 Memoize 计划节点时会导致 <span>“<span>could not find memoization table entry</span>”</span> 错误，还可能存在其他症状。</p>", "text": "修复 JIT 生成的元组解构代码中存储值的错误零扩展问题（David Rowley）§ 不使用 JIT 时，等效代码执行的是符号扩展而非零扩展，导致小整数数据类型的 Datum 表示不同。这种不一致在大多数情况下被掩盖了，但已知在使用 Memoize 计划节点时会导致 “could not find memoization table entry” 错误，还可能存在其他症状。", "title": "修复 JIT 生成的元组解构代码中存储值的错误零扩展问题", "commits": ["e4316ec4d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "c88fdd4c317d3d7a7f83ee52fc57e182c36b4367ebf66573a4ccf3774be742a8", "section_path": ["变更"], "commit_groups": [["10945148e", "3398b0d02", "4afab175b", "6911f8037", "b8ecfbe5a", "ceb51d09b", "e4316ec4d"]], "identity_text": "Fix incorrect zero-extension of stored values in JIT-generated tuple deforming code (David Rowley) When not using JIT, the equivalent code does sign-extension not zero-extension, leading to a different Datum representation of small integer data types. This inconsistency was masked in most cases, but it is known to lead to could not find memoization table entry errors when using Memoize plan nodes, and there might be other symptoms.", "commit_aliases": ["10945148e", "3398b0d02", "4afab175b", "6911f8037", "b8ecfbe5a", "ceb51d09b", "e4316ec4d"], "source_commits": ["e4316ec4d"], "source_entry_id": "14.20/changes/011", "db_id": "7c81d67412977edb96996856917b1f9a", "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb", "relations": [{"rule": 2, "type": "equivalent", "target": "8411046717133be1fc919e915895664b", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}}, {"rule": 2, "type": "equivalent", "target": "9b610d9fca503412ae7e72eddc6e5502", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}}, {"rule": 2, "type": "equivalent", "target": "c520d8534b29d6a33acf98a0e9c4f0ef", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}}, {"rule": 2, "type": "equivalent", "target": "de262079624c4f7225fefc1938b4d6c4", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}}, {"rule": 2, "type": "equivalent", "target": "e11c7ac708a333ed4eb5a375fef717d8", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "de262079624c4f7225fefc1938b4d6c4", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复 JIT 生成的元组解构代码中存储值的错误零扩展问题", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}, "url": "/docs/compare/?release=18.1#18.1-d78511e9b384a86b", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "e11c7ac708a333ed4eb5a375fef717d8", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 JIT 生成的元组解构代码中存储值的错误零扩展问题", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}, "url": "/docs/compare/?release=17.7#17.7-aa1a9b53c515db45", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "8411046717133be1fc919e915895664b", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 JIT 生成的元组解构代码中存储值的错误零扩展问题", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}, "url": "/docs/compare/?release=16.11#16.11-92911a65af0fd193", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "c520d8534b29d6a33acf98a0e9c4f0ef", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 JIT 生成的元组解构代码中存储值的错误零扩展问题", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}, "url": "/docs/compare/?release=15.15#15.15-8fd4e4f59a5c06ab", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "9b610d9fca503412ae7e72eddc6e5502", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 JIT 生成的元组解构代码中存储值的错误零扩展问题", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}, "url": "/docs/compare/?release=13.23#13.23-d2c92bd0308b724e", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-da249ce39908a51f", "cves": [], "html": "<p>为 TID Scan 和 TID Range Scan 计划节点添加缺失的 EvalPlanQual 重检查（Sophie Alpert，David Rowley）<a href=\"https://postgr.es/c/f78a69034\">§</a> <a href=\"https://postgr.es/c/2eb7ea97d\">§</a></p>\n<p>此遗漏导致在并发更新情况下可能不会重新检查 <code>ctid</code> 上的条件，使得更新的行为取决于选择了哪种计划类型。</p>", "text": "为 TID Scan 和 TID Range Scan 计划节点添加缺失的 EvalPlanQual 重检查（Sophie Alpert，David Rowley）§ § 此遗漏导致在并发更新情况下可能不会重新检查 ctid 上的条件，使得更新的行为取决于选择了哪种计划类型。", "title": "为 TID Scan 和 TID Range Scan 计划节点添加缺失的 EvalPlanQual 重检查", "commits": ["2eb7ea97d", "f78a69034"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "c2069f29dbce41238a034c1cb1928c9263b4f2f9a82b357af34ee552713ff2c4", "section_path": ["变更"], "commit_groups": [["005770203", "2eb7ea97d", "3d939a9b1", "940f3cd5d", "bae6c74ba", "d6539f88b", "dee21ea6d"], ["0fb06e893", "78e6047dc", "ac06ea8f7", "ba0203880", "f00ad440a", "f78a69034"]], "identity_text": "Add missing EvalPlanQual rechecks for TID Scan and TID Range Scan plan nodes (Sophie Alpert, David Rowley) This omission led to possibly not rechecking a condition on ctid during concurrent-update situations, causing the update's behavior to vary depending on which plan type had been selected.", "commit_aliases": ["005770203", "0fb06e893", "2eb7ea97d", "3d939a9b1", "78e6047dc", "940f3cd5d", "ac06ea8f7", "ba0203880", "bae6c74ba", "d6539f88b", "dee21ea6d", "f00ad440a", "f78a69034"], "source_commits": ["2eb7ea97d", "f78a69034"], "source_entry_id": "14.20/changes/012", "db_id": "ecce2aaff9086305c96977bf0ef60d92", "patch_ids": ["e5f939f23311b15eb4c2128e866cd2ff", "e6deedc86606b08645454ddad75b214a"], "statement_hash": "a32898b724eb8e34e33be327f84fcb97a13f077fa6e040dfd715b42aeeaea021", "relations": [{"rule": 2, "type": "equivalent", "target": "90dcd7b9cab09a48352f77b31481288a", "evidence": {"same_day": true, "patch_ids": ["e5f939f23311b15eb4c2128e866cd2ff", "e6deedc86606b08645454ddad75b214a"], "statement_hash": "a32898b724eb8e34e33be327f84fcb97a13f077fa6e040dfd715b42aeeaea021"}}, {"rule": 2, "type": "equivalent", "target": "d3eedfb124dc2ce661f82df707b4315c", "evidence": {"same_day": true, "patch_ids": ["e5f939f23311b15eb4c2128e866cd2ff", "e6deedc86606b08645454ddad75b214a"], "statement_hash": "a32898b724eb8e34e33be327f84fcb97a13f077fa6e040dfd715b42aeeaea021"}}, {"rule": 2, "type": "equivalent", "target": "d96eb9865b0bf6d96daa3f60ddaa7189", "evidence": {"same_day": true, "patch_ids": ["e5f939f23311b15eb4c2128e866cd2ff", "e6deedc86606b08645454ddad75b214a"], "statement_hash": "a32898b724eb8e34e33be327f84fcb97a13f077fa6e040dfd715b42aeeaea021"}}, {"rule": 2, "type": "equivalent", "target": "de8ad943467d2756c0d1ed9a91236d50", "evidence": {"same_day": true, "patch_ids": ["e5f939f23311b15eb4c2128e866cd2ff", "e6deedc86606b08645454ddad75b214a"], "statement_hash": "a32898b724eb8e34e33be327f84fcb97a13f077fa6e040dfd715b42aeeaea021"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "de8ad943467d2756c0d1ed9a91236d50", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "为 TID Scan 和 TID Range Scan 计划节点添加缺失的 EvalPlanQual 重检查", "evidence": {"same_day": true, "patch_ids": ["e5f939f23311b15eb4c2128e866cd2ff", "e6deedc86606b08645454ddad75b214a"], "statement_hash": "a32898b724eb8e34e33be327f84fcb97a13f077fa6e040dfd715b42aeeaea021"}, "url": "/docs/compare/?release=17.7#17.7-a73aaf88aa7e95b3", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "d3eedfb124dc2ce661f82df707b4315c", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "为 TID Scan 和 TID Range Scan 计划节点添加缺失的 EvalPlanQual 重检查", "evidence": {"same_day": true, "patch_ids": ["e5f939f23311b15eb4c2128e866cd2ff", "e6deedc86606b08645454ddad75b214a"], "statement_hash": "a32898b724eb8e34e33be327f84fcb97a13f077fa6e040dfd715b42aeeaea021"}, "url": "/docs/compare/?release=16.11#16.11-e3e94f24a14cb90b", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "90dcd7b9cab09a48352f77b31481288a", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "为 TID Scan 和 TID Range Scan 计划节点添加缺失的 EvalPlanQual 重检查", "evidence": {"same_day": true, "patch_ids": ["e5f939f23311b15eb4c2128e866cd2ff", "e6deedc86606b08645454ddad75b214a"], "statement_hash": "a32898b724eb8e34e33be327f84fcb97a13f077fa6e040dfd715b42aeeaea021"}, "url": "/docs/compare/?release=15.15#15.15-486ee448380434dd", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "d96eb9865b0bf6d96daa3f60ddaa7189", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "为 TID Scan 和 TID Range Scan 计划节点添加缺失的 EvalPlanQual 重检查", "evidence": {"same_day": true, "patch_ids": ["e5f939f23311b15eb4c2128e866cd2ff", "e6deedc86606b08645454ddad75b214a"], "statement_hash": "a32898b724eb8e34e33be327f84fcb97a13f077fa6e040dfd715b42aeeaea021"}, "url": "/docs/compare/?release=13.23#13.23-6d5125a8a195ddcd", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-9d1b9820ad3ea33d", "cves": [], "html": "<p>修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理（Masahiko Sawada，Etsuro Fujita）<a href=\"https://postgr.es/c/24e74b962\">§</a></p>\n<p>在这种情况下，应该正常调用外部或自定义访问方法，但之前并未发生，通常会导致崩溃。</p>", "text": "修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理（Masahiko Sawada，Etsuro Fujita）§ 在这种情况下，应该正常调用外部或自定义访问方法，但之前并未发生，通常会导致崩溃。", "title": "修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理", "commits": ["24e74b962"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "da7d188e60991628451b1f8829da4c1f10bc04c4ee68bdbac0202df05004520f", "section_path": ["变更"], "commit_groups": [["12609fbac", "12b0c0e51", "24e74b962", "2bb84ea7e", "4a08603a2", "5a9af4868", "b14144325"]], "identity_text": "Fix EvalPlanQual handling of foreign or custom joins that do not have an alternative local-join plan prepared for EPQ (Masahiko Sawada, Etsuro Fujita) In such cases the foreign or custom access method should be invoked normally, but that did not happen, typically leading to a crash.", "commit_aliases": ["12609fbac", "12b0c0e51", "24e74b962", "2bb84ea7e", "4a08603a2", "5a9af4868", "b14144325"], "source_commits": ["24e74b962"], "source_entry_id": "14.20/changes/013", "db_id": "b4c88efd3c63eeaee70001c500504502", "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5", "relations": [{"rule": 2, "type": "equivalent", "target": "152497e1f56957947f79200f3011a52e", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}}, {"rule": 2, "type": "equivalent", "target": "3a7c71a715168a6fe003c04ad6530b01", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}}, {"rule": 2, "type": "equivalent", "target": "a830cee6374ea38a3cf10eb53388b93d", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}}, {"rule": 2, "type": "equivalent", "target": "d5c74a3284403534934e2ff5e453332e", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}}, {"rule": 2, "type": "equivalent", "target": "f8e7d0fe512da9f5e4221f5173c42a62", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3a7c71a715168a6fe003c04ad6530b01", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}, "url": "/docs/compare/?release=18.1#18.1-1ad36d259b8c4e29", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "d5c74a3284403534934e2ff5e453332e", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}, "url": "/docs/compare/?release=17.7#17.7-7d939e96432565c4", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "a830cee6374ea38a3cf10eb53388b93d", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}, "url": "/docs/compare/?release=16.11#16.11-071fb89b558772fa", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "f8e7d0fe512da9f5e4221f5173c42a62", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}, "url": "/docs/compare/?release=15.15#15.15-93fef6ea11e7fc81", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "152497e1f56957947f79200f3011a52e", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}, "url": "/docs/compare/?release=13.23#13.23-e3ce52e617ed9fef", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-bf89a39228e4a4ca", "cves": [], "html": "<p>避免在 <code>DETACH CONCURRENTLY</code> 期间重复 hash 分区约束（Haiyang Li）<a href=\"https://postgr.es/c/b753be38a\">§</a></p>\n<p><code>ALTER TABLE DETACH PARTITION CONCURRENTLY</code> 被编写为向现已分离的分区添加分区约束的副本。这是不恰当的，部分原因是非并发 <code>DETACH</code> 不会这样做，但主要原因是在 hash 分区的情况下，约束表达式包含对父表 OID 的引用。这在导出/恢复期间，或在 <code>DETACH</code> 之后父表被删除时会导致问题。在 v19 及更高版本中，我们将不再创建任何此类约束副本。在已发布的分支中，为了最大限度地降低不可预见后果的风险，仅在 hash 分区的情况下跳过添加复制约束。</p>", "text": "避免在 DETACH CONCURRENTLY 期间重复 hash 分区约束（Haiyang Li）§ ALTER TABLE DETACH PARTITION CONCURRENTLY 被编写为向现已分离的分区添加分区约束的副本。这是不恰当的，部分原因是非并发 DETACH 不会这样做，但主要原因是在 hash 分区的情况下，约束表达式包含对父表 OID 的引用。这在导出/恢复期间，或在 DETACH 之后父表被删除时会导致问题。在 v19 及更高版本中，我们将不再创建任何此类约束副本。在已发布的分支中，为了最大限度地降低不可预见后果的风险，仅在 hash 分区的情况下跳过添加复制约束。", "title": "避免在 DETACH CONCURRENTLY 期间重复 hash 分区约束", "commits": ["b753be38a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "614c037836fdd438ee4911f8d15b4af227b92bd26b0e24a9b0911eab320f01fa", "section_path": ["变更"], "commit_groups": [["08c037dff", "3231fd045", "b753be38a", "b835759ec", "bdae98495", "ea06f97ee"]], "identity_text": "Avoid duplicating hash partition constraints during DETACH CONCURRENTLY (Haiyang Li) ALTER TABLE DETACH PARTITION CONCURRENTLY was written to add a copy of the partitioning constraint to the now-detached partition. This was misguided, partially because non-concurrent DETACH doesn't do that, but mostly because in the case of hash partitioning the constraint expression contains references to the parent table's OID. That causes problems during dump/restore, or if the parent table is dropped after DETACH. In v19 and later, we'll no longer create any such copied constraints at all. In released branches, to minimize the risk of unforeseen consequences, only skip adding a copied constraint if it is for hash partitioning.", "commit_aliases": ["08c037dff", "3231fd045", "b753be38a", "b835759ec", "bdae98495", "ea06f97ee"], "source_commits": ["b753be38a"], "source_entry_id": "14.20/changes/014", "db_id": "417982fb5fc35be16b96cd9dffae86f4", "patch_ids": ["c7b7e5ea3577b3d900e06cd112a51878"], "statement_hash": "d5965bdd5734479eaa6212fe4307924b5fa45a4534d11494cdf8e41c2b84b97f", "relations": [{"rule": 2, "type": "equivalent", "target": "565728557128822df30c43191a2dbfad", "evidence": {"same_day": true, "patch_ids": ["c7b7e5ea3577b3d900e06cd112a51878"], "statement_hash": "d5965bdd5734479eaa6212fe4307924b5fa45a4534d11494cdf8e41c2b84b97f"}}, {"rule": 2, "type": "equivalent", "target": "71fe017c4d7b33e60357f0d6d3c24f44", "evidence": {"same_day": true, "patch_ids": ["c7b7e5ea3577b3d900e06cd112a51878"], "statement_hash": "d5965bdd5734479eaa6212fe4307924b5fa45a4534d11494cdf8e41c2b84b97f"}}, {"rule": 2, "type": "equivalent", "target": "cf6c332f29166e2669260e45b57ff0d2", "evidence": {"same_day": true, "patch_ids": ["c7b7e5ea3577b3d900e06cd112a51878"], "statement_hash": "d5965bdd5734479eaa6212fe4307924b5fa45a4534d11494cdf8e41c2b84b97f"}}, {"rule": 2, "type": "equivalent", "target": "d8002886e5e02df8376c5986e54462f2", "evidence": {"same_day": true, "patch_ids": ["c7b7e5ea3577b3d900e06cd112a51878"], "statement_hash": "d5965bdd5734479eaa6212fe4307924b5fa45a4534d11494cdf8e41c2b84b97f"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "565728557128822df30c43191a2dbfad", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "避免在 DETACH CONCURRENTLY 期间重复 hash 分区约束", "evidence": {"same_day": true, "patch_ids": ["c7b7e5ea3577b3d900e06cd112a51878"], "statement_hash": "d5965bdd5734479eaa6212fe4307924b5fa45a4534d11494cdf8e41c2b84b97f"}, "url": "/docs/compare/?release=18.1#18.1-570dc654ef6dd9a2", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "d8002886e5e02df8376c5986e54462f2", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免在 DETACH CONCURRENTLY 期间重复 hash 分区约束", "evidence": {"same_day": true, "patch_ids": ["c7b7e5ea3577b3d900e06cd112a51878"], "statement_hash": "d5965bdd5734479eaa6212fe4307924b5fa45a4534d11494cdf8e41c2b84b97f"}, "url": "/docs/compare/?release=17.7#17.7-7064942458440619", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "cf6c332f29166e2669260e45b57ff0d2", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "避免在 DETACH CONCURRENTLY 期间重复 hash 分区约束", "evidence": {"same_day": true, "patch_ids": ["c7b7e5ea3577b3d900e06cd112a51878"], "statement_hash": "d5965bdd5734479eaa6212fe4307924b5fa45a4534d11494cdf8e41c2b84b97f"}, "url": "/docs/compare/?release=16.11#16.11-fe3f70460c985c25", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "71fe017c4d7b33e60357f0d6d3c24f44", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "避免在 DETACH CONCURRENTLY 期间重复 hash 分区约束", "evidence": {"same_day": true, "patch_ids": ["c7b7e5ea3577b3d900e06cd112a51878"], "statement_hash": "d5965bdd5734479eaa6212fe4307924b5fa45a4534d11494cdf8e41c2b84b97f"}, "url": "/docs/compare/?release=15.15#15.15-9c9de66bf89091ff", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}]}, {"id": "14.20-e39243838bbc984a", "cves": [], "html": "<p>禁止在分区键中使用生成列（Jian He，Ashutosh Bapat）<a href=\"https://postgr.es/c/04345d7a4\">§</a></p>\n<p>这本来已经不被允许，但检查遗漏了一些情况，例如列引用隐含在整行引用中的情况。</p>", "text": "禁止在分区键中使用生成列（Jian He，Ashutosh Bapat）§ 这本来已经不被允许，但检查遗漏了一些情况，例如列引用隐含在整行引用中的情况。", "title": "禁止在分区键中使用生成列", "commits": ["04345d7a4"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "d11b57b8abb58e3f188c61c32e97d363e36d2c2ebff931370acc48aa9d1331ee", "section_path": ["变更"], "commit_groups": [["040cc5f3c", "04345d7a4", "0b44f2443", "643a5e96c", "7180d56c5", "7f239c72a", "ba99c9491"]], "identity_text": "Disallow generated columns in partition keys (Jian He, Ashutosh Bapat) This was already not allowed, but the check missed some cases, such as where the column reference is implicit in a whole-row reference.", "commit_aliases": ["040cc5f3c", "04345d7a4", "0b44f2443", "643a5e96c", "7180d56c5", "7f239c72a", "ba99c9491"], "source_commits": ["04345d7a4"], "source_entry_id": "14.20/changes/015", "db_id": "adb9f0cae7cdccc24195248ff3704b74", "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f", "relations": [{"rule": 2, "type": "equivalent", "target": "300cd459ecbe8f82fbe0665d8d6b47c5", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}}, {"rule": 2, "type": "equivalent", "target": "525dd26c2bb1d8a0169ce29cab95adac", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}}, {"rule": 2, "type": "equivalent", "target": "605ca6399f9aae142eb2f308e3d598fd", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}}, {"rule": 2, "type": "equivalent", "target": "8894dad53381cd45feb93c24e4fb14ba", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}}, {"rule": 2, "type": "equivalent", "target": "a8595e24703e1deff3ce7b6fe56d02db", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a8595e24703e1deff3ce7b6fe56d02db", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "禁止在分区键中使用生成列", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}, "url": "/docs/compare/?release=18.1#18.1-6edf5c69ea4392a4", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "8894dad53381cd45feb93c24e4fb14ba", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "禁止在分区键中使用生成列", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}, "url": "/docs/compare/?release=17.7#17.7-6b87f410ccf7eeba", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "300cd459ecbe8f82fbe0665d8d6b47c5", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "禁止在分区键中使用生成列", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}, "url": "/docs/compare/?release=16.11#16.11-2c9382bd25ce0f59", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "605ca6399f9aae142eb2f308e3d598fd", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "禁止在分区键中使用生成列", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}, "url": "/docs/compare/?release=15.15#15.15-7ad9c63c8b6e6da5", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "525dd26c2bb1d8a0169ce29cab95adac", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "禁止在分区键中使用生成列", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}, "url": "/docs/compare/?release=13.23#13.23-9b4ab32d62f672a8", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-4a1e5b283bd94af8", "cves": [], "html": "<p>禁止在 <code>COPY ... FROM ... WHERE</code> 子句中使用生成列（Peter Eisentraut，Jian He）<a href=\"https://postgr.es/c/ccfe28eb4\">§</a></p>\n<p>以前，尝试引用此类列会导致不正确的行为或晦涩的错误消息，因为在执行 <code>WHERE</code> 过滤时生成列尚未计算。</p>", "text": "禁止在 COPY ... FROM ... WHERE 子句中使用生成列（Peter Eisentraut，Jian He）§ 以前，尝试引用此类列会导致不正确的行为或晦涩的错误消息，因为在执行 WHERE 过滤时生成列尚未计算。", "title": "禁止在 COPY ... FROM ... WHERE 子句中使用生成列", "commits": ["ccfe28eb4"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "f89f2a9e8ce5ef2f48d67cefa70d486bb6186b9e9e579c11a570e28bae6043d5", "section_path": ["变更"], "commit_groups": [["07f787e57", "0f9e0068b", "26958f4d9", "3717849e6", "8278737bf", "aa606b931", "ccfe28eb4"]], "identity_text": "Disallow generated columns in COPY ... FROM ... WHERE clauses (Peter Eisentraut, Jian He) Previously, incorrect behavior or an obscure error message resulted from attempting to reference such a column, since generated columns have not yet been computed at the point where WHERE filtering is done.", "commit_aliases": ["07f787e57", "0f9e0068b", "26958f4d9", "3717849e6", "8278737bf", "aa606b931", "ccfe28eb4"], "source_commits": ["ccfe28eb4"], "source_entry_id": "14.20/changes/016", "db_id": "7910dd8ca51fdddfcd65a301d722ec44", "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6", "relations": [{"rule": 2, "type": "equivalent", "target": "476c1d31c3b2a4f231e061a533173538", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}}, {"rule": 2, "type": "equivalent", "target": "688b8d0a8d86ff5dfc64586a1e76d364", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}}, {"rule": 2, "type": "equivalent", "target": "7b8f833f1bd965ce518eb2d3e003a1dc", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}}, {"rule": 2, "type": "equivalent", "target": "9cbb9b53b5d6bb4acf6cc0063d8379f2", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}}, {"rule": 2, "type": "equivalent", "target": "d7b4a6585334f8e8aa07a327994e2043", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "476c1d31c3b2a4f231e061a533173538", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "禁止在 COPY ... FROM ... WHERE 子句中使用生成列", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}, "url": "/docs/compare/?release=18.1#18.1-f93c705391287b77", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "d7b4a6585334f8e8aa07a327994e2043", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "禁止在 COPY ... FROM ... WHERE 子句中使用生成列", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}, "url": "/docs/compare/?release=17.7#17.7-0707cf226664ba13", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "9cbb9b53b5d6bb4acf6cc0063d8379f2", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "禁止在 COPY ... FROM ... WHERE 子句中使用生成列", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}, "url": "/docs/compare/?release=16.11#16.11-954887ba5dd000ba", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "7b8f833f1bd965ce518eb2d3e003a1dc", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "禁止在 COPY ... FROM ... WHERE 子句中使用生成列", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}, "url": "/docs/compare/?release=15.15#15.15-076d57a3f0940e3d", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "688b8d0a8d86ff5dfc64586a1e76d364", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "禁止在 COPY ... FROM ... WHERE 子句中使用生成列", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}, "url": "/docs/compare/?release=13.23#13.23-27a4ac9e65339e2a", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-a62bf543526a33a4", "cves": [], "html": "<p>修复 <code>pg_temp</code> 中统计对象的可见性检查（Noah Misch）<a href=\"https://postgr.es/c/5816baa9b\">§</a></p>\n<p>位于临时模式中的统计对象如果不加模式限定就无法命名，但 <code>pg_statistics_obj_is_visible()</code> 遗漏了这一点，可能无论如何都返回 <span>“<span>true</span>”</span>。反过来，像 <code>pg_describe_object()</code> 这样的函数可能无法按预期对对象名称进行模式限定。</p>", "text": "修复 pg_temp 中统计对象的可见性检查（Noah Misch）§ 位于临时模式中的统计对象如果不加模式限定就无法命名，但 pg_statistics_obj_is_visible() 遗漏了这一点，可能无论如何都返回 “true”。反过来，像 pg_describe_object() 这样的函数可能无法按预期对对象名称进行模式限定。", "title": "修复 pg_temp 中统计对象的可见性检查", "commits": ["5816baa9b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "2c28155a7ddbced6aff8eeec3f4da3f24b3f48d13f90938c720aa6737d8c75ef", "section_path": ["变更"], "commit_groups": [["5816baa9b", "6778fbca6", "a95393ecd", "ab16418ee", "afb2cce74", "d024160ff", "d202ec1fb"]], "identity_text": "Fix visibility checking for statistics objects in pg_temp (Noah Misch) A statistics object located in a temporary schema cannot be named without schema qualification, but pg_statistics_obj_is_visible() missed that memo and could return true regardless. In turn, functions such as pg_describe_object() could fail to schema-qualify the object's name as expected.", "commit_aliases": ["5816baa9b", "6778fbca6", "a95393ecd", "ab16418ee", "afb2cce74", "d024160ff", "d202ec1fb"], "source_commits": ["5816baa9b"], "source_entry_id": "14.20/changes/017", "db_id": "875f65c32c6f6827a1f949b0b14ab7c2", "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24", "relations": [{"rule": 2, "type": "equivalent", "target": "12fee3df0b5233b7e8135e949ea2f87f", "evidence": {"same_day": true, "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24"}}, {"rule": 2, "type": "equivalent", "target": "20af10bca614d2e3d01c9b7d89ca87a3", "evidence": {"same_day": true, "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24"}}, {"rule": 2, "type": "equivalent", "target": "7e832b26c5667abdcb7da1479c2627cc", "evidence": {"same_day": true, "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24"}}, {"rule": 2, "type": "equivalent", "target": "8294c317781f8f709b7133dfce95b792", "evidence": {"same_day": true, "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24"}}, {"rule": 2, "type": "equivalent", "target": "9ba9c2385da1c0904fac8dc3ed1373f9", "evidence": {"same_day": true, "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "20af10bca614d2e3d01c9b7d89ca87a3", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复 pg_temp 中统计对象的可见性检查", "evidence": {"same_day": true, "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24"}, "url": "/docs/compare/?release=18.1#18.1-4356f370a232f620", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "7e832b26c5667abdcb7da1479c2627cc", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 pg_temp 中统计对象的可见性检查", "evidence": {"same_day": true, "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24"}, "url": "/docs/compare/?release=17.7#17.7-542a921308709f1a", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "8294c317781f8f709b7133dfce95b792", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 pg_temp 中统计对象的可见性检查", "evidence": {"same_day": true, "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24"}, "url": "/docs/compare/?release=16.11#16.11-8fadc4c9437a4ca4", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "12fee3df0b5233b7e8135e949ea2f87f", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 pg_temp 中统计对象的可见性检查", "evidence": {"same_day": true, "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24"}, "url": "/docs/compare/?release=15.15#15.15-2b35c01425341c9d", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "9ba9c2385da1c0904fac8dc3ed1373f9", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 pg_temp 中统计对象的可见性检查", "evidence": {"same_day": true, "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24"}, "url": "/docs/compare/?release=13.23#13.23-2dee3974fb706ea9", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-33e44d7312fadeff", "cves": [], "html": "<p>修复 hash 子计划中的内存泄漏（Haiyang Li）<a href=\"https://postgr.es/c/5eab9b0a4\">§</a></p>\n<p>用于对元组进行 hash 运算的 hash 函数所消耗的任何内存都构成了查询生命周期的内存泄漏。这种情况的一种发生方式是参与 hash 运算的值需要 de-toast。</p>", "text": "修复 hash 子计划中的内存泄漏（Haiyang Li）§ 用于对元组进行 hash 运算的 hash 函数所消耗的任何内存都构成了查询生命周期的内存泄漏。这种情况的一种发生方式是参与 hash 运算的值需要 de-toast。", "title": "修复 hash 子计划中的内存泄漏", "commits": ["5eab9b0a4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "220cce47a7dffdac307a27cdd411c157a5f6edbc08f391944f859950929fe9d2", "section_path": ["变更"], "commit_groups": [["5ac973892", "5eab9b0a4", "862980f92", "8b6c29afd", "abdeacdb0", "bc865ff6d", "e1da9c072"]], "identity_text": "Fix memory leakage in hashed subplans (Haiyang Li) Any memory consumed by the hash functions used for hashing tuples constituted a query-lifespan memory leak. One way that could happen is if the values being hashed require de-toasting.", "commit_aliases": ["5ac973892", "5eab9b0a4", "862980f92", "8b6c29afd", "abdeacdb0", "bc865ff6d", "e1da9c072"], "source_commits": ["5eab9b0a4"], "source_entry_id": "14.20/changes/018", "db_id": "caf35b0c52d2f2d7be09e47941e76dee", "patch_ids": ["a2bb67b75f354f5dabcb71fadb21152b"], "statement_hash": "cdba0b2e8608b306f2792e48f6e19e37fcda5c115bfca2f87ba1928523ed4b96", "relations": [{"rule": 2, "type": "equivalent", "target": "66d28945048365b27caabd86520573af", "evidence": {"same_day": true, "patch_ids": ["a2bb67b75f354f5dabcb71fadb21152b"], "statement_hash": "cdba0b2e8608b306f2792e48f6e19e37fcda5c115bfca2f87ba1928523ed4b96"}}, {"rule": 2, "type": "equivalent", "target": "716c8f69dbded655fabcf097344a2b29", "evidence": {"same_day": true, "patch_ids": ["a2bb67b75f354f5dabcb71fadb21152b"], "statement_hash": "cdba0b2e8608b306f2792e48f6e19e37fcda5c115bfca2f87ba1928523ed4b96"}}, {"rule": 2, "type": "equivalent", "target": "a023f6ed4b374eb0dc96609493ee88eb", "evidence": {"same_day": true, "patch_ids": ["a2bb67b75f354f5dabcb71fadb21152b"], "statement_hash": "cdba0b2e8608b306f2792e48f6e19e37fcda5c115bfca2f87ba1928523ed4b96"}}, {"rule": 2, "type": "equivalent", "target": "f0d430aa11163b42d6790f75f65289ab", "evidence": {"same_day": true, "patch_ids": ["a2bb67b75f354f5dabcb71fadb21152b"], "statement_hash": "cdba0b2e8608b306f2792e48f6e19e37fcda5c115bfca2f87ba1928523ed4b96"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a023f6ed4b374eb0dc96609493ee88eb", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 hash 子计划中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["a2bb67b75f354f5dabcb71fadb21152b"], "statement_hash": "cdba0b2e8608b306f2792e48f6e19e37fcda5c115bfca2f87ba1928523ed4b96"}, "url": "/docs/compare/?release=17.7#17.7-e2424f99d2f437b5", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "716c8f69dbded655fabcf097344a2b29", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 hash 子计划中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["a2bb67b75f354f5dabcb71fadb21152b"], "statement_hash": "cdba0b2e8608b306f2792e48f6e19e37fcda5c115bfca2f87ba1928523ed4b96"}, "url": "/docs/compare/?release=16.11#16.11-690bb3133c148d74", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "f0d430aa11163b42d6790f75f65289ab", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 hash 子计划中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["a2bb67b75f354f5dabcb71fadb21152b"], "statement_hash": "cdba0b2e8608b306f2792e48f6e19e37fcda5c115bfca2f87ba1928523ed4b96"}, "url": "/docs/compare/?release=15.15#15.15-7f29140debd89f20", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "66d28945048365b27caabd86520573af", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 hash 子计划中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["a2bb67b75f354f5dabcb71fadb21152b"], "statement_hash": "cdba0b2e8608b306f2792e48f6e19e37fcda5c115bfca2f87ba1928523ed4b96"}, "url": "/docs/compare/?release=13.23#13.23-7cc556201553018b", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-54a839033290b57a", "cves": [], "html": "<p>为 <code>MERGE</code> 和 <code>INSERT ... ON CONFLICT DO UPDATE</code> 添加缺失的副本标识检查（Zhijie Hou）<a href=\"https://postgr.es/c/5fd569ef2\">§</a> <a href=\"https://postgr.es/c/ea65c8823\">§</a></p>\n<p>如果 <code>MERGE</code> 可能需要执行更新或删除操作，且目标表发布更新或删除，则要求该表定义了 <code>REPLICA IDENTITY</code>。未能要求这一点可能会静默地破坏复制。同样，带有 <code>UPDATE</code> 选项的 <code>INSERT</code> 如果目标表发布插入或更新，也必须要求 <code>REPLICA IDENTITY</code>。</p>", "text": "为 MERGE 和 INSERT ... ON CONFLICT DO UPDATE 添加缺失的副本标识检查（Zhijie Hou）§ § 如果 MERGE 可能需要执行更新或删除操作，且目标表发布更新或删除，则要求该表定义了 REPLICA IDENTITY。未能要求这一点可能会静默地破坏复制。同样，带有 UPDATE 选项的 INSERT 如果目标表发布插入或更新，也必须要求 REPLICA IDENTITY。", "title": "为 MERGE 和 INSERT ... ON CONFLICT DO UPDATE 添加缺失的副本标识检查", "commits": ["5fd569ef2", "ea65c8823"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "14d0793a731d2e97e4dce14d1cd887b9a17bdcd8494ff648279c0607b9b2256d", "section_path": ["变更"], "commit_groups": [["0610b843c", "0b934d399", "0c4d5a45d", "344662848", "451b22efd", "5386bfb9c", "5fd569ef2"], ["311340f17", "421d7a157", "5481cc332", "76f45be93", "fc6600fc1"], ["57dfb64ec", "a4624929d", "d37694b97", "dbef9cbaa", "ea65c8823"]], "identity_text": "Add missing replica identity checks in MERGE and INSERT ... ON CONFLICT DO UPDATE (Zhijie Hou) If MERGE may require update or delete actions, and the target table publishes updates or deletes, insist that it have a REPLICA IDENTITY defined. Failing to require this can silently break replication. Likewise, INSERT with an UPDATE option must require REPLICA IDENTITY if the target table publishes either inserts or updates.", "commit_aliases": ["0610b843c", "0b934d399", "0c4d5a45d", "311340f17", "344662848", "421d7a157", "451b22efd", "5386bfb9c", "5481cc332", "57dfb64ec", "5fd569ef2", "76f45be93", "a4624929d", "d37694b97", "dbef9cbaa", "ea65c8823", "fc6600fc1"], "source_commits": ["5fd569ef2", "ea65c8823", "fc6600fc1"], "source_entry_id": "14.20/changes/019", "db_id": "071ee53e7ebf4e0865b3c9742c53ae92", "patch_ids": ["41ee6a4bd62de46dfbfc7a6ddd4cb297", "5054fd144dc33d242b428fcbc35aa6f9", "5777968be0f595dccbab4ce1dc762000"], "statement_hash": "a94ceb41a466e11a9e90840ccd42da886f417721f5dd37b512bd85d7ef0b7ee9", "relations": [{"rule": 2, "type": "equivalent", "target": "4ba5d1a335cfc88f589ce9d68406318f", "evidence": {"same_day": true, "patch_ids": ["41ee6a4bd62de46dfbfc7a6ddd4cb297", "5054fd144dc33d242b428fcbc35aa6f9", "5777968be0f595dccbab4ce1dc762000"], "statement_hash": "a94ceb41a466e11a9e90840ccd42da886f417721f5dd37b512bd85d7ef0b7ee9"}}, {"rule": 2, "type": "equivalent", "target": "9317ea883bca2553ac7aa956597e3295", "evidence": {"same_day": true, "patch_ids": ["41ee6a4bd62de46dfbfc7a6ddd4cb297", "5054fd144dc33d242b428fcbc35aa6f9", "5777968be0f595dccbab4ce1dc762000"], "statement_hash": "a94ceb41a466e11a9e90840ccd42da886f417721f5dd37b512bd85d7ef0b7ee9"}}, {"rule": 2, "type": "equivalent", "target": "da6b608252d96b3762138806147866f9", "evidence": {"same_day": true, "patch_ids": ["41ee6a4bd62de46dfbfc7a6ddd4cb297", "5054fd144dc33d242b428fcbc35aa6f9", "5777968be0f595dccbab4ce1dc762000"], "statement_hash": "a94ceb41a466e11a9e90840ccd42da886f417721f5dd37b512bd85d7ef0b7ee9"}}, {"rule": 2, "type": "equivalent", "target": "ef9b4eaf4ec5746d0b09b506aebf812d", "evidence": {"same_day": true, "patch_ids": ["41ee6a4bd62de46dfbfc7a6ddd4cb297", "5054fd144dc33d242b428fcbc35aa6f9", "5777968be0f595dccbab4ce1dc762000"], "statement_hash": "a94ceb41a466e11a9e90840ccd42da886f417721f5dd37b512bd85d7ef0b7ee9"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "da6b608252d96b3762138806147866f9", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "为 MERGE 和 INSERT ... ON CONFLICT DO UPDATE 添加缺失的副本标识检查", "evidence": {"same_day": true, "patch_ids": ["41ee6a4bd62de46dfbfc7a6ddd4cb297", "5054fd144dc33d242b428fcbc35aa6f9", "5777968be0f595dccbab4ce1dc762000"], "statement_hash": "a94ceb41a466e11a9e90840ccd42da886f417721f5dd37b512bd85d7ef0b7ee9"}, "url": "/docs/compare/?release=17.7#17.7-0cadf99ab5da1a04", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "9317ea883bca2553ac7aa956597e3295", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "为 MERGE 和 INSERT ... ON CONFLICT DO UPDATE 添加缺失的副本标识检查", "evidence": {"same_day": true, "patch_ids": ["41ee6a4bd62de46dfbfc7a6ddd4cb297", "5054fd144dc33d242b428fcbc35aa6f9", "5777968be0f595dccbab4ce1dc762000"], "statement_hash": "a94ceb41a466e11a9e90840ccd42da886f417721f5dd37b512bd85d7ef0b7ee9"}, "url": "/docs/compare/?release=16.11#16.11-265f0792e4a648f1", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "4ba5d1a335cfc88f589ce9d68406318f", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "为 MERGE 和 INSERT ... ON CONFLICT DO UPDATE 添加缺失的副本标识检查", "evidence": {"same_day": true, "patch_ids": ["41ee6a4bd62de46dfbfc7a6ddd4cb297", "5054fd144dc33d242b428fcbc35aa6f9", "5777968be0f595dccbab4ce1dc762000"], "statement_hash": "a94ceb41a466e11a9e90840ccd42da886f417721f5dd37b512bd85d7ef0b7ee9"}, "url": "/docs/compare/?release=15.15#15.15-e12989606d02564d", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "ef9b4eaf4ec5746d0b09b506aebf812d", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "为 MERGE 和 INSERT ... ON CONFLICT DO UPDATE 添加缺失的副本标识检查", "evidence": {"same_day": true, "patch_ids": ["41ee6a4bd62de46dfbfc7a6ddd4cb297", "5054fd144dc33d242b428fcbc35aa6f9", "5777968be0f595dccbab4ce1dc762000"], "statement_hash": "a94ceb41a466e11a9e90840ccd42da886f417721f5dd37b512bd85d7ef0b7ee9"}, "url": "/docs/compare/?release=13.23#13.23-c9a646cf829a7aa4", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-a667df23ea5307ac", "cves": [], "html": "<p>避免当发布者与订阅者在同一服务器上时，<code>DROP SUBSCRIPTION</code> 期间的死锁（Dilip Kumar）<a href=\"https://postgr.es/c/ef7750274\">§</a></p>", "text": "避免当发布者与订阅者在同一服务器上时，DROP SUBSCRIPTION 期间的死锁（Dilip Kumar）§", "title": "避免当发布者与订阅者在同一服务器上时，DROP SUBSCRIPTION 期间的死锁", "commits": ["ef7750274"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "5a781337a44d1372e791c8a314373c2ef9478f10fcfcd2b717b4b6d6c27cedb1", "section_path": ["变更"], "commit_groups": [["0a98f24a6", "288a817bc", "7ece76129", "a5d4c0415", "aa21e4922", "e41137155", "ef7750274"]], "identity_text": "Avoid deadlock during DROP SUBSCRIPTION when publisher is on the same server as subscriber (Dilip Kumar)", "commit_aliases": ["0a98f24a6", "288a817bc", "7ece76129", "a5d4c0415", "aa21e4922", "e41137155", "ef7750274"], "source_commits": ["ef7750274"], "source_entry_id": "14.20/changes/020", "db_id": "43d27e9f743f0a98a23410ab06b13d1d", "patch_ids": ["1c494a25ebf018053142296bdd84c730"], "statement_hash": "a5e43e275418b0e325d4e0bcf72e0e70d1e3c3f936bbb0c308609ddc6965ab61", "relations": [{"rule": 2, "type": "equivalent", "target": "2b5651aa7ca7bc1226597109b5eed7ac", "evidence": {"same_day": true, "patch_ids": ["1c494a25ebf018053142296bdd84c730"], "statement_hash": "a5e43e275418b0e325d4e0bcf72e0e70d1e3c3f936bbb0c308609ddc6965ab61"}}, {"rule": 2, "type": "equivalent", "target": "37942ef2cbf08085298ca32af3615104", "evidence": {"same_day": true, "patch_ids": ["1c494a25ebf018053142296bdd84c730"], "statement_hash": "a5e43e275418b0e325d4e0bcf72e0e70d1e3c3f936bbb0c308609ddc6965ab61"}}, {"rule": 2, "type": "equivalent", "target": "b2c73de226cf9cdebc1cf4094ee2864d", "evidence": {"same_day": true, "patch_ids": ["1c494a25ebf018053142296bdd84c730"], "statement_hash": "a5e43e275418b0e325d4e0bcf72e0e70d1e3c3f936bbb0c308609ddc6965ab61"}}, {"rule": 2, "type": "equivalent", "target": "d9cac4cdcf37cb17fa4b6504cfffe203", "evidence": {"same_day": true, "patch_ids": ["1c494a25ebf018053142296bdd84c730"], "statement_hash": "a5e43e275418b0e325d4e0bcf72e0e70d1e3c3f936bbb0c308609ddc6965ab61"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d9cac4cdcf37cb17fa4b6504cfffe203", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免当发布者与订阅者在同一服务器上时，DROP SUBSCRIPTION 期间的死锁", "evidence": {"same_day": true, "patch_ids": ["1c494a25ebf018053142296bdd84c730"], "statement_hash": "a5e43e275418b0e325d4e0bcf72e0e70d1e3c3f936bbb0c308609ddc6965ab61"}, "url": "/docs/compare/?release=17.7#17.7-27e2062ed1a85246", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "b2c73de226cf9cdebc1cf4094ee2864d", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "避免当发布者与订阅者在同一服务器上时，DROP SUBSCRIPTION 期间的死锁", "evidence": {"same_day": true, "patch_ids": ["1c494a25ebf018053142296bdd84c730"], "statement_hash": "a5e43e275418b0e325d4e0bcf72e0e70d1e3c3f936bbb0c308609ddc6965ab61"}, "url": "/docs/compare/?release=16.11#16.11-8ccaf041b640c1f0", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "37942ef2cbf08085298ca32af3615104", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "避免当发布者与订阅者在同一服务器上时，DROP SUBSCRIPTION 期间的死锁", "evidence": {"same_day": true, "patch_ids": ["1c494a25ebf018053142296bdd84c730"], "statement_hash": "a5e43e275418b0e325d4e0bcf72e0e70d1e3c3f936bbb0c308609ddc6965ab61"}, "url": "/docs/compare/?release=15.15#15.15-97fc88876fe935e7", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "2b5651aa7ca7bc1226597109b5eed7ac", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "避免当发布者与订阅者在同一服务器上时，DROP SUBSCRIPTION 期间的死锁", "evidence": {"same_day": true, "patch_ids": ["1c494a25ebf018053142296bdd84c730"], "statement_hash": "a5e43e275418b0e325d4e0bcf72e0e70d1e3c3f936bbb0c308609ddc6965ab61"}, "url": "/docs/compare/?release=13.23#13.23-e99c96781a144e49", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-e6ac77ccd9c8c250", "cves": [], "html": "<p>修复 <code>pg_stat_replication</code> 视图中复制延迟的错误报告（Fujii Masao）<a href=\"https://postgr.es/c/a7ab6ce6a\">§</a></p>\n<p>如果任何备库的重放 LSN 停止前进，<code>write_lag</code> 和 <code>flush_lag</code> 列最终将停止更新。</p>", "text": "修复 pg_stat_replication 视图中复制延迟的错误报告（Fujii Masao）§ 如果任何备库的重放 LSN 停止前进，write_lag 和 flush_lag 列最终将停止更新。", "title": "修复 pg_stat_replication 视图中复制延迟的错误报告", "commits": ["a7ab6ce6a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "fbf5dd64832a4387dd5247ed2460929e06cc27f198d734f6b93c5bec9949e6c3", "section_path": ["变更"], "commit_groups": [["2e55cf4ef", "59b215f72", "62d5ee75b", "7d7ebdb80", "883a95646", "9670032cc", "a7ab6ce6a"]], "identity_text": "Fix incorrect reporting of replication lag in pg_stat_replication view (Fujii Masao) If any standby server's replay LSN stopped advancing, the write_lag and flush_lag columns would eventually stop updating.", "commit_aliases": ["2e55cf4ef", "59b215f72", "62d5ee75b", "7d7ebdb80", "883a95646", "9670032cc", "a7ab6ce6a"], "source_commits": ["a7ab6ce6a"], "source_entry_id": "14.20/changes/021", "db_id": "7ca4b40fd7ad687ba5827a90faa10c14", "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b", "relations": [{"rule": 2, "type": "equivalent", "target": "73705651f9a3f30d44ed83016f7ac1b4", "evidence": {"same_day": true, "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b"}}, {"rule": 2, "type": "equivalent", "target": "791fcff31a58ed212a423b5a722b6f4f", "evidence": {"same_day": true, "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b"}}, {"rule": 2, "type": "equivalent", "target": "81b53885fae1691a0cea71be2e9b050a", "evidence": {"same_day": true, "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b"}}, {"rule": 2, "type": "equivalent", "target": "905cf5ba46c020ac69b28eb9f2785b5c", "evidence": {"same_day": true, "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b"}}, {"rule": 2, "type": "equivalent", "target": "a8414849a53aabf5dc53c77b1324c0d5", "evidence": {"same_day": true, "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a8414849a53aabf5dc53c77b1324c0d5", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复 pg_stat_replication 视图中复制延迟的错误报告", "evidence": {"same_day": true, "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b"}, "url": "/docs/compare/?release=18.1#18.1-b311e5c7746f8633", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "905cf5ba46c020ac69b28eb9f2785b5c", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 pg_stat_replication 视图中复制延迟的错误报告", "evidence": {"same_day": true, "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b"}, "url": "/docs/compare/?release=17.7#17.7-fbae455a9f86efab", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "73705651f9a3f30d44ed83016f7ac1b4", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 pg_stat_replication 视图中复制延迟的错误报告", "evidence": {"same_day": true, "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b"}, "url": "/docs/compare/?release=16.11#16.11-6fd1b6c4fcd3c179", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "791fcff31a58ed212a423b5a722b6f4f", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 pg_stat_replication 视图中复制延迟的错误报告", "evidence": {"same_day": true, "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b"}, "url": "/docs/compare/?release=15.15#15.15-0b86e1265303e925", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "81b53885fae1691a0cea71be2e9b050a", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 pg_stat_replication 视图中复制延迟的错误报告", "evidence": {"same_day": true, "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b"}, "url": "/docs/compare/?release=13.23#13.23-3107d28e63120415", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-329643b68626e90f", "cves": [], "html": "<p>避免关于无效 <code>primary_slot_name</code> 设置的重复日志消息（Fujii Masao）<a href=\"https://postgr.es/c/f106f53df\">§</a></p>", "text": "避免关于无效 primary_slot_name 设置的重复日志消息（Fujii Masao）§", "title": "避免关于无效 primary_slot_name 设置的重复日志消息", "commits": ["f106f53df"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "7657f24fec10c51f17868aeb01ac614017ab0fef620af1497818894c861c72a0", "section_path": ["变更"], "commit_groups": [["1db2870bb", "4fd916eab", "6ff7ba9fe", "b00a16bae", "caf529aba", "f106f53df", "f33e60a53"]], "identity_text": "Avoid duplicative log messages about invalid primary_slot_name settings (Fujii Masao)", "commit_aliases": ["1db2870bb", "4fd916eab", "6ff7ba9fe", "b00a16bae", "caf529aba", "f106f53df", "f33e60a53"], "source_commits": ["f106f53df"], "source_entry_id": "14.20/changes/022", "db_id": "9c77ea90dcad71a57f74e096fec194cc", "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146", "relations": [{"rule": 2, "type": "equivalent", "target": "5c7937a41540430a37c6313f454afd47", "evidence": {"same_day": true, "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146"}}, {"rule": 2, "type": "equivalent", "target": "5d244383e118ee187bdf1d544ea5c57a", "evidence": {"same_day": true, "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146"}}, {"rule": 2, "type": "equivalent", "target": "cf1cf0980c4a8fd8a92c2de26d804a18", "evidence": {"same_day": true, "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146"}}, {"rule": 2, "type": "equivalent", "target": "d5025bddb4b7e773a31ef5a7852fa818", "evidence": {"same_day": true, "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146"}}, {"rule": 2, "type": "equivalent", "target": "d99230cf9e376e84d70ff48c950dfbd4", "evidence": {"same_day": true, "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d99230cf9e376e84d70ff48c950dfbd4", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "避免关于无效 primary_slot_name 设置的重复日志消息", "evidence": {"same_day": true, "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146"}, "url": "/docs/compare/?release=18.1#18.1-f9c71c1aa9e41b8f", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "5c7937a41540430a37c6313f454afd47", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免关于无效 primary_slot_name 设置的重复日志消息", "evidence": {"same_day": true, "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146"}, "url": "/docs/compare/?release=17.7#17.7-a02e0c2e2b41cb37", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "5d244383e118ee187bdf1d544ea5c57a", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "避免关于无效 primary_slot_name 设置的重复日志消息", "evidence": {"same_day": true, "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146"}, "url": "/docs/compare/?release=16.11#16.11-ee0cf1e6bc6716c9", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "d5025bddb4b7e773a31ef5a7852fa818", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "避免关于无效 primary_slot_name 设置的重复日志消息", "evidence": {"same_day": true, "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146"}, "url": "/docs/compare/?release=15.15#15.15-06f80d83cff8e2e7", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "cf1cf0980c4a8fd8a92c2de26d804a18", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "避免关于无效 primary_slot_name 设置的重复日志消息", "evidence": {"same_day": true, "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146"}, "url": "/docs/compare/?release=13.23#13.23-e92cb908f7177984", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-790adc94b2e3aa97", "cves": [], "html": "<p>在写入复制槽状态到磁盘失败后删除未完成的槽状态文件（Michael Paquier）<a href=\"https://postgr.es/c/f57f2760e\">§</a></p>\n<p>以前，磁盘空间不足等失败会留下一个临时 <code>state.tmp</code> 文件。这是有问题的，因为它会阻止所有后续写入状态的尝试，需要手动干预来清理。</p>", "text": "在写入复制槽状态到磁盘失败后删除未完成的槽状态文件（Michael Paquier）§ 以前，磁盘空间不足等失败会留下一个临时 state.tmp 文件。这是有问题的，因为它会阻止所有后续写入状态的尝试，需要手动干预来清理。", "title": "在写入复制槽状态到磁盘失败后删除未完成的槽状态文件", "commits": ["f57f2760e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "e7b5e5795319003e9356a5f5465e01cc51c532742efd5faad2d364c07459f87b", "section_path": ["变更"], "commit_groups": [["0adf424b4", "42348839d", "912af1c7e", "9a6ea00ac", "bfdd1a12d", "c878d9808", "f57f2760e"]], "identity_text": "Remove the unfinished slot state file after failing to write a replication slot's state to disk (Michael Paquier) Previously, a failure such as out-of-disk-space resulted in leaving a temporary state.tmp file behind. That's problematic because it would block all subsequent attempts to write the state, requiring manual intervention to clean up.", "commit_aliases": ["0adf424b4", "42348839d", "912af1c7e", "9a6ea00ac", "bfdd1a12d", "c878d9808", "f57f2760e"], "source_commits": ["f57f2760e"], "source_entry_id": "14.20/changes/023", "db_id": "8f6b3684b0c7ebef23c4baebfd451ab8", "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72", "relations": [{"rule": 2, "type": "equivalent", "target": "0620bfd126e45a7fb30310413dd82566", "evidence": {"same_day": true, "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72"}}, {"rule": 2, "type": "equivalent", "target": "4f476f781039e87ea8de4907a56dfba2", "evidence": {"same_day": true, "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72"}}, {"rule": 2, "type": "equivalent", "target": "5f4978515e70467b8cd476a8782b3741", "evidence": {"same_day": true, "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72"}}, {"rule": 2, "type": "equivalent", "target": "88acef5002288cf26f90d74ea72f7dd0", "evidence": {"same_day": true, "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72"}}, {"rule": 2, "type": "equivalent", "target": "d3ba6564e6c91003b631012ed6405fc2", "evidence": {"same_day": true, "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "88acef5002288cf26f90d74ea72f7dd0", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "在写入复制槽状态到磁盘失败后删除未完成的槽状态文件", "evidence": {"same_day": true, "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72"}, "url": "/docs/compare/?release=18.1#18.1-a601bee3c15f74a5", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "d3ba6564e6c91003b631012ed6405fc2", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "在写入复制槽状态到磁盘失败后删除未完成的槽状态文件", "evidence": {"same_day": true, "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72"}, "url": "/docs/compare/?release=17.7#17.7-fa4d518d83f33a49", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "0620bfd126e45a7fb30310413dd82566", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "在写入复制槽状态到磁盘失败后删除未完成的槽状态文件", "evidence": {"same_day": true, "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72"}, "url": "/docs/compare/?release=16.11#16.11-f777cd18de1f53b2", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "4f476f781039e87ea8de4907a56dfba2", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "在写入复制槽状态到磁盘失败后删除未完成的槽状态文件", "evidence": {"same_day": true, "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72"}, "url": "/docs/compare/?release=15.15#15.15-783a22b01672c5c1", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "5f4978515e70467b8cd476a8782b3741", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "在写入复制槽状态到磁盘失败后删除未完成的槽状态文件", "evidence": {"same_day": true, "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72"}, "url": "/docs/compare/?release=13.23#13.23-c506ff43f09b181c", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-c26203a903d008e3", "cves": [], "html": "<p>避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭（Xuneng Zhou）<a href=\"https://postgr.es/c/a1b8b3b2e\">§</a></p>\n<p>在时间线切换期间，备库的 WAL 接收进程应保持活动状态，等待新的 WAL 流式传输起始点。相反，它反复关闭并立即重新启动，这可能会混淆状态监控代码。</p>", "text": "避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭（Xuneng Zhou）§ 在时间线切换期间，备库的 WAL 接收进程应保持活动状态，等待新的 WAL 流式传输起始点。相反，它反复关闭并立即重新启动，这可能会混淆状态监控代码。", "title": "避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭", "commits": ["a1b8b3b2e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "fe3c9b74ba279c12e646af2a94660aa40d3ccbcbc5cfd5c3caf8c14a9d2bef18", "section_path": ["变更"], "commit_groups": [["17b2d5ec7", "25b484080", "9b6109607", "a14201073", "a1b8b3b2e", "da5ea6c70", "e7340b484"]], "identity_text": "Avoid unwanted WAL receiver shutdown when switching from streaming to archive WAL source (Xuneng Zhou) During a timeline change, a standby server's WAL receiver should remain alive, waiting for a new WAL streaming start point. Instead it was repeatedly shutting down and immediately getting restarted, which could confuse status monitoring code.", "commit_aliases": ["17b2d5ec7", "25b484080", "9b6109607", "a14201073", "a1b8b3b2e", "da5ea6c70", "e7340b484"], "source_commits": ["a1b8b3b2e"], "source_entry_id": "14.20/changes/024", "db_id": "c392b0b8a9a1720a5f28a1d62993d15b", "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74", "relations": [{"rule": 2, "type": "equivalent", "target": "186f1aca8e166170a7cedbb47670ed32", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}}, {"rule": 2, "type": "equivalent", "target": "5e6622b056fdeebae1797bcd6bab73d8", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}}, {"rule": 2, "type": "equivalent", "target": "74dc0b8668a34ee86a69e81b07977ac3", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}}, {"rule": 2, "type": "equivalent", "target": "7e82176acdf9327aca4da62b00d1400a", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}}, {"rule": 2, "type": "equivalent", "target": "b76ca1acc7d0e06651b84c05d5298bb5", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e6622b056fdeebae1797bcd6bab73d8", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}, "url": "/docs/compare/?release=18.1#18.1-a20d69b97abaf6de", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "b76ca1acc7d0e06651b84c05d5298bb5", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}, "url": "/docs/compare/?release=17.7#17.7-0a048ec34f6d4d74", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "74dc0b8668a34ee86a69e81b07977ac3", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}, "url": "/docs/compare/?release=16.11#16.11-5e20452104432165", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "186f1aca8e166170a7cedbb47670ed32", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}, "url": "/docs/compare/?release=15.15#15.15-96abfce14575540c", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "7e82176acdf9327aca4da62b00d1400a", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}, "url": "/docs/compare/?release=13.23#13.23-4af8775ea855af94", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-f1d487bb5f4ee9e8", "cves": [], "html": "<p>避免由于常规表和临时表之间文件编号偶然冲突导致的逻辑复制失败（Vignesh C）<a href=\"https://postgr.es/c/222130edd\">§</a></p>\n<p>这一低概率问题表现为像 <span>“<span>unexpected duplicate for tablespace <em><code>X</code></em>, relfilenode <em><code>Y</code></em></span>”</span> 这样的瞬态错误。<code>contrib/autoprewarm</code> 也受到影响。此修复的一个副作用是 SQL 函数 <code>pg_filenode_relation()</code> 现在将忽略临时表。</p>", "text": "避免由于常规表和临时表之间文件编号偶然冲突导致的逻辑复制失败（Vignesh C）§ 这一低概率问题表现为像 “unexpected duplicate for tablespace X, relfilenode Y” 这样的瞬态错误。contrib/autoprewarm 也受到影响。此修复的一个副作用是 SQL 函数 pg_filenode_relation() 现在将忽略临时表。", "title": "避免由于常规表和临时表之间文件编号偶然冲突导致的逻辑复制失败", "commits": ["222130edd"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "f6fca3f0f0c278e6b0f3fc27f0177b263174ba9f298c784ff9e3f8fc71f73fcb", "section_path": ["变更"], "commit_groups": [["222130edd", "30b32b08c", "86831952a", "ab874faaa", "dcdc95cb4", "ec471008c", "ef03ea01f"]], "identity_text": "Avoid failures in logical replication due to chance collisions of file numbers between regular and temporary tables (Vignesh C) This low-probability problem manifested as transient errors like unexpected duplicate for tablespace X, relfilenode Y. contrib/autoprewarm was also affected. A side-effect of the fix is that the SQL function pg_filenode_relation() will now ignore temporary tables.", "commit_aliases": ["222130edd", "30b32b08c", "86831952a", "ab874faaa", "dcdc95cb4", "ec471008c", "ef03ea01f"], "source_commits": ["222130edd"], "source_entry_id": "14.20/changes/025", "db_id": "8886c7f460c4649615d13e4962403446", "patch_ids": ["d265695322c58c8a1e5ca04997ee9496"], "statement_hash": "04b9ffeee2369b31322f5eea62789a37890a2193fcacef9c2e927fb298a7fc5f", "relations": [{"rule": 2, "type": "equivalent", "target": "11ad74d6dea65323db09217ad750f31d", "evidence": {"same_day": true, "patch_ids": ["d265695322c58c8a1e5ca04997ee9496"], "statement_hash": "04b9ffeee2369b31322f5eea62789a37890a2193fcacef9c2e927fb298a7fc5f"}}, {"rule": 2, "type": "equivalent", "target": "790f557d3482d3ad48c84b44d04e5790", "evidence": {"same_day": true, "patch_ids": ["d265695322c58c8a1e5ca04997ee9496"], "statement_hash": "04b9ffeee2369b31322f5eea62789a37890a2193fcacef9c2e927fb298a7fc5f"}}, {"rule": 2, "type": "equivalent", "target": "b0fde9fde33b01c432f43c639f299763", "evidence": {"same_day": true, "patch_ids": ["d265695322c58c8a1e5ca04997ee9496"], "statement_hash": "04b9ffeee2369b31322f5eea62789a37890a2193fcacef9c2e927fb298a7fc5f"}}, {"rule": 2, "type": "equivalent", "target": "bd97bf5443b5c5904700919137f15a3d", "evidence": {"same_day": true, "patch_ids": ["d265695322c58c8a1e5ca04997ee9496"], "statement_hash": "04b9ffeee2369b31322f5eea62789a37890a2193fcacef9c2e927fb298a7fc5f"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "790f557d3482d3ad48c84b44d04e5790", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免由于常规表和临时表之间文件编号偶然冲突导致的逻辑复制失败", "evidence": {"same_day": true, "patch_ids": ["d265695322c58c8a1e5ca04997ee9496"], "statement_hash": "04b9ffeee2369b31322f5eea62789a37890a2193fcacef9c2e927fb298a7fc5f"}, "url": "/docs/compare/?release=17.7#17.7-34081f9b2520d7c3", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "bd97bf5443b5c5904700919137f15a3d", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "避免由于常规表和临时表之间文件编号偶然冲突导致的逻辑复制失败", "evidence": {"same_day": true, "patch_ids": ["d265695322c58c8a1e5ca04997ee9496"], "statement_hash": "04b9ffeee2369b31322f5eea62789a37890a2193fcacef9c2e927fb298a7fc5f"}, "url": "/docs/compare/?release=16.11#16.11-3b076275e28daee2", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "11ad74d6dea65323db09217ad750f31d", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "避免由于常规表和临时表之间文件编号偶然冲突导致的逻辑复制失败", "evidence": {"same_day": true, "patch_ids": ["d265695322c58c8a1e5ca04997ee9496"], "statement_hash": "04b9ffeee2369b31322f5eea62789a37890a2193fcacef9c2e927fb298a7fc5f"}, "url": "/docs/compare/?release=15.15#15.15-6948defe42ec0a80", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "b0fde9fde33b01c432f43c639f299763", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "避免由于常规表和临时表之间文件编号偶然冲突导致的逻辑复制失败", "evidence": {"same_day": true, "patch_ids": ["d265695322c58c8a1e5ca04997ee9496"], "statement_hash": "04b9ffeee2369b31322f5eea62789a37890a2193fcacef9c2e927fb298a7fc5f"}, "url": "/docs/compare/?release=13.23#13.23-192360a548fa511f", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-9705fe16844c36d5", "cves": [], "html": "<p>避免在单用户模式下尝试释放复制槽时出现断言失败（Hayato Kuroda）<a href=\"https://postgr.es/c/32d388d00\">§</a></p>", "text": "避免在单用户模式下尝试释放复制槽时出现断言失败（Hayato Kuroda）§", "title": "避免在单用户模式下尝试释放复制槽时出现断言失败", "commits": ["32d388d00"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "796f000839ed6922f083cdbeb9815319a98182e8e43c0f6ef0e3556ae88f865b", "section_path": ["变更"], "commit_groups": [["07a302387", "1f2e51e3c", "32d388d00", "818be9b73", "8ed079cad", "ea1c6b0b0", "fea1cc3f7"]], "identity_text": "Avoid assertion failure when trying to release a replication slot in single-user mode (Hayato Kuroda)", "commit_aliases": ["07a302387", "1f2e51e3c", "32d388d00", "818be9b73", "8ed079cad", "ea1c6b0b0", "fea1cc3f7"], "source_commits": ["32d388d00"], "source_entry_id": "14.20/changes/026", "db_id": "d34086d1fe427aeb87fe1279cbb0e3aa", "patch_ids": ["7b2185203259c603e6d78f085a1045bc"], "statement_hash": "2468355887b9e010462f5614f48ed7eadb6c466164c77ab2abf9d3bf8b96b808", "relations": [{"rule": 2, "type": "equivalent", "target": "30a06a2280e72a1b60773e025f859760", "evidence": {"same_day": true, "patch_ids": ["7b2185203259c603e6d78f085a1045bc"], "statement_hash": "2468355887b9e010462f5614f48ed7eadb6c466164c77ab2abf9d3bf8b96b808"}}, {"rule": 2, "type": "equivalent", "target": "7501877a970413767bfe48037312b451", "evidence": {"same_day": true, "patch_ids": ["7b2185203259c603e6d78f085a1045bc"], "statement_hash": "2468355887b9e010462f5614f48ed7eadb6c466164c77ab2abf9d3bf8b96b808"}}, {"rule": 2, "type": "equivalent", "target": "cc9955f9e8237d7746a550f90028d0a7", "evidence": {"same_day": true, "patch_ids": ["7b2185203259c603e6d78f085a1045bc"], "statement_hash": "2468355887b9e010462f5614f48ed7eadb6c466164c77ab2abf9d3bf8b96b808"}}, {"rule": 2, "type": "equivalent", "target": "dfa8bf1ea824bfb259ce58d54f3974b9", "evidence": {"same_day": true, "patch_ids": ["7b2185203259c603e6d78f085a1045bc"], "statement_hash": "2468355887b9e010462f5614f48ed7eadb6c466164c77ab2abf9d3bf8b96b808"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "dfa8bf1ea824bfb259ce58d54f3974b9", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免在单用户模式下尝试释放复制槽时出现断言失败", "evidence": {"same_day": true, "patch_ids": ["7b2185203259c603e6d78f085a1045bc"], "statement_hash": "2468355887b9e010462f5614f48ed7eadb6c466164c77ab2abf9d3bf8b96b808"}, "url": "/docs/compare/?release=17.7#17.7-caf55981ca48e8d9", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "cc9955f9e8237d7746a550f90028d0a7", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "避免在单用户模式下尝试释放复制槽时出现断言失败", "evidence": {"same_day": true, "patch_ids": ["7b2185203259c603e6d78f085a1045bc"], "statement_hash": "2468355887b9e010462f5614f48ed7eadb6c466164c77ab2abf9d3bf8b96b808"}, "url": "/docs/compare/?release=16.11#16.11-05187515625d4370", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "30a06a2280e72a1b60773e025f859760", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "避免在单用户模式下尝试释放复制槽时出现断言失败", "evidence": {"same_day": true, "patch_ids": ["7b2185203259c603e6d78f085a1045bc"], "statement_hash": "2468355887b9e010462f5614f48ed7eadb6c466164c77ab2abf9d3bf8b96b808"}, "url": "/docs/compare/?release=15.15#15.15-e163943680bf0745", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "7501877a970413767bfe48037312b451", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "避免在单用户模式下尝试释放复制槽时出现断言失败", "evidence": {"same_day": true, "patch_ids": ["7b2185203259c603e6d78f085a1045bc"], "statement_hash": "2468355887b9e010462f5614f48ed7eadb6c466164c77ab2abf9d3bf8b96b808"}, "url": "/docs/compare/?release=13.23#13.23-dfd343f1e3c46d29", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-1da5f9c55441affe", "cves": [], "html": "<p>修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印（Bryan Green）<a href=\"https://postgr.es/c/e91eb4ad6\">§</a></p>\n<p>此代码本来会崩溃或至少打印乱码。但没有此类情况被报告过，这表明这些系统调用的失败极为罕见。</p>", "text": "修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印（Bryan Green）§ 此代码本来会崩溃或至少打印乱码。但没有此类情况被报告过，这表明这些系统调用的失败极为罕见。", "title": "修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印", "commits": ["e91eb4ad6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "3c8729558ecb47bb9ab38b2a14293c3b102aed03bb062f7780041dbecc26441b", "section_path": ["变更"], "commit_groups": [["03bf7a12c", "4c53519e1", "75a555d61", "9883e3cd1", "b48ae226e", "e91eb4ad6", "f91666c83"]], "identity_text": "Fix incorrect printing of messages about failures in checking whether the user has Windows administrator privilege (Bryan Green) This code would have crashed or at least printed garbage. No such cases have been reported though, indicating that failure of these system calls is extremely rare.", "commit_aliases": ["03bf7a12c", "4c53519e1", "75a555d61", "9883e3cd1", "b48ae226e", "e91eb4ad6", "f91666c83"], "source_commits": ["e91eb4ad6"], "source_entry_id": "14.20/changes/027", "db_id": "fc910ae34d590e376c66274cf6b8087f", "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef", "relations": [{"rule": 2, "type": "equivalent", "target": "1bce0a6531645bd3f70523a4fd591cf3", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}}, {"rule": 2, "type": "equivalent", "target": "27ca4eb718e79592fec76dc7fda731c1", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}}, {"rule": 2, "type": "equivalent", "target": "54e06bd3860e1bbda5ac887cf9128e18", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}}, {"rule": 2, "type": "equivalent", "target": "92380498a4385f5ba77ddf5e840497f2", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}}, {"rule": 2, "type": "equivalent", "target": "bf9e24f2b769f783785421c6c4666a0a", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "54e06bd3860e1bbda5ac887cf9128e18", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}, "url": "/docs/compare/?release=18.1#18.1-0bab432ae295bddb", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "1bce0a6531645bd3f70523a4fd591cf3", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}, "url": "/docs/compare/?release=17.7#17.7-6554bc7b77289e22", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "92380498a4385f5ba77ddf5e840497f2", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}, "url": "/docs/compare/?release=16.11#16.11-713a970c4e1b104e", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "27ca4eb718e79592fec76dc7fda731c1", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}, "url": "/docs/compare/?release=15.15#15.15-c16c9322537a1ada", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "bf9e24f2b769f783785421c6c4666a0a", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}, "url": "/docs/compare/?release=13.23#13.23-f44c9122c79014ab", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-ad8587c169ea5995", "cves": [], "html": "<p>避免在 macOS 和 BSD 平台上与预先存在的信号量集冲突时启动失败（Tom Lane）<a href=\"https://postgr.es/c/b3d6e8b63\">§</a></p>\n<p>如果预先存在的信号量集的信号量数量少于我们请求的数量，这些平台返回 <span>EINVAL</span> 而不是我们代码所预期的 <span>EEXIST</span>，导致数据库启动失败。</p>", "text": "避免在 macOS 和 BSD 平台上与预先存在的信号量集冲突时启动失败（Tom Lane）§ 如果预先存在的信号量集的信号量数量少于我们请求的数量，这些平台返回 EINVAL 而不是我们代码所预期的 EEXIST，导致数据库启动失败。", "title": "避免在 macOS 和 BSD 平台上与预先存在的信号量集冲突时启动失败", "commits": ["b3d6e8b63"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "442327ecd4bb6797abbe88dcc688d4a0119a64d06dfaf3562c37429e26bdabb2", "section_path": ["变更"], "commit_groups": [["21fddb3d7", "787cd2b7d", "ab92f0e7f", "b3d6e8b63", "e3b3fa863", "e67d5f7ba", "f4c088344"]], "identity_text": "Avoid startup failure on macOS and BSD platforms when there is a collision with a pre-existing semaphore set (Tom Lane) If the pre-existing set has fewer semaphores than we asked for, these platforms return EINVAL not EEXIST as our code expected, resulting in failure to start the database.", "commit_aliases": ["21fddb3d7", "787cd2b7d", "ab92f0e7f", "b3d6e8b63", "e3b3fa863", "e67d5f7ba", "f4c088344"], "source_commits": ["b3d6e8b63"], "source_entry_id": "14.20/changes/028", "db_id": "eac1fcf2446013ff95c3a1c8688d80d5", "patch_ids": ["809cffd6cd01bbf1882821d21af69bda"], "statement_hash": "def4159b79d4b5b3884779b9edcbd6ddc22a9643377b01246dac52c614a47ac7", "relations": [{"rule": 2, "type": "equivalent", "target": "6a1e72e978f21321445f26d7eb52c623", "evidence": {"same_day": true, "patch_ids": ["809cffd6cd01bbf1882821d21af69bda"], "statement_hash": "def4159b79d4b5b3884779b9edcbd6ddc22a9643377b01246dac52c614a47ac7"}}, {"rule": 2, "type": "equivalent", "target": "d253254086f78eb0895ee9447ad2ad07", "evidence": {"same_day": true, "patch_ids": ["809cffd6cd01bbf1882821d21af69bda"], "statement_hash": "def4159b79d4b5b3884779b9edcbd6ddc22a9643377b01246dac52c614a47ac7"}}, {"rule": 2, "type": "equivalent", "target": "de586ed7dc58ace31efe89cde3a0c519", "evidence": {"same_day": true, "patch_ids": ["809cffd6cd01bbf1882821d21af69bda"], "statement_hash": "def4159b79d4b5b3884779b9edcbd6ddc22a9643377b01246dac52c614a47ac7"}}, {"rule": 2, "type": "equivalent", "target": "fb53ff81eba82caa82519fcf89ffe49b", "evidence": {"same_day": true, "patch_ids": ["809cffd6cd01bbf1882821d21af69bda"], "statement_hash": "def4159b79d4b5b3884779b9edcbd6ddc22a9643377b01246dac52c614a47ac7"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fb53ff81eba82caa82519fcf89ffe49b", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免在 macOS 和 BSD 平台上与预先存在的信号量集冲突时启动失败", "evidence": {"same_day": true, "patch_ids": ["809cffd6cd01bbf1882821d21af69bda"], "statement_hash": "def4159b79d4b5b3884779b9edcbd6ddc22a9643377b01246dac52c614a47ac7"}, "url": "/docs/compare/?release=17.7#17.7-760eb90cba89a23d", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "de586ed7dc58ace31efe89cde3a0c519", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "避免在 macOS 和 BSD 平台上与预先存在的信号量集冲突时启动失败", "evidence": {"same_day": true, "patch_ids": ["809cffd6cd01bbf1882821d21af69bda"], "statement_hash": "def4159b79d4b5b3884779b9edcbd6ddc22a9643377b01246dac52c614a47ac7"}, "url": "/docs/compare/?release=16.11#16.11-1a63b5b954b27999", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "6a1e72e978f21321445f26d7eb52c623", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "避免在 macOS 和 BSD 平台上与预先存在的信号量集冲突时启动失败", "evidence": {"same_day": true, "patch_ids": ["809cffd6cd01bbf1882821d21af69bda"], "statement_hash": "def4159b79d4b5b3884779b9edcbd6ddc22a9643377b01246dac52c614a47ac7"}, "url": "/docs/compare/?release=15.15#15.15-d3131249798dfe83", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "d253254086f78eb0895ee9447ad2ad07", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "避免在 macOS 和 BSD 平台上与预先存在的信号量集冲突时启动失败", "evidence": {"same_day": true, "patch_ids": ["809cffd6cd01bbf1882821d21af69bda"], "statement_hash": "def4159b79d4b5b3884779b9edcbd6ddc22a9643377b01246dac52c614a47ac7"}, "url": "/docs/compare/?release=13.23#13.23-3c67470c239fb563", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-30a0eb01d03d06bf", "cves": [], "html": "<p>修复 64 位 Windows 调试构建中虚假的内存上下文检查警告（David Rowley）<a href=\"https://postgr.es/c/86bd9497f\">§</a></p>", "text": "修复 64 位 Windows 调试构建中虚假的内存上下文检查警告（David Rowley）§", "title": "修复 64 位 Windows 调试构建中虚假的内存上下文检查警告", "commits": ["86bd9497f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "342d717dc834717ef7c1f22bf50f7ffd39a7135cb90ee2ec1c3f5cbec5ce378b", "section_path": ["变更"], "commit_groups": [["50eb4e118", "7b955c227", "86bd9497f", "af3a79e08", "bd6f986c9", "cdc04a6c3", "f3420e006"]], "identity_text": "Fix false memory-context-checking warnings in debug builds on 64-bit Windows (David Rowley)", "commit_aliases": ["50eb4e118", "7b955c227", "86bd9497f", "af3a79e08", "bd6f986c9", "cdc04a6c3", "f3420e006"], "source_commits": ["86bd9497f"], "source_entry_id": "14.20/changes/029", "db_id": "01aaa14579e082646793b4e27afbf21b", "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a", "relations": [{"rule": 2, "type": "equivalent", "target": "0acaf19cbd02c251f9c72a3566ceafd2", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}}, {"rule": 2, "type": "equivalent", "target": "801cc326322f22aa573edf2c98d1162f", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}}, {"rule": 2, "type": "equivalent", "target": "84067ed8a3ba1028de01b8a46f2000b9", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}}, {"rule": 2, "type": "equivalent", "target": "8df4cb56b5956e0bcfd2f6b1733b74cc", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}}, {"rule": 2, "type": "equivalent", "target": "fc378456b09d8aee7ced8ece43c87341", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8df4cb56b5956e0bcfd2f6b1733b74cc", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复 64 位 Windows 调试构建中虚假的内存上下文检查警告", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}, "url": "/docs/compare/?release=18.1#18.1-6ea24c894273b60d", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "84067ed8a3ba1028de01b8a46f2000b9", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 64 位 Windows 调试构建中虚假的内存上下文检查警告", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}, "url": "/docs/compare/?release=17.7#17.7-a455f9dd0199fe9d", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "801cc326322f22aa573edf2c98d1162f", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 64 位 Windows 调试构建中虚假的内存上下文检查警告", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}, "url": "/docs/compare/?release=16.11#16.11-44cfa1596c4b914f", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "0acaf19cbd02c251f9c72a3566ceafd2", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 64 位 Windows 调试构建中虚假的内存上下文检查警告", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}, "url": "/docs/compare/?release=15.15#15.15-3fd801b6ac3f82a6", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "fc378456b09d8aee7ced8ece43c87341", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 64 位 Windows 调试构建中虚假的内存上下文检查警告", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}, "url": "/docs/compare/?release=13.23#13.23-5134dab5d7fbe159", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-ad9f2a1d2560df12", "cves": [], "html": "<p>正确处理 PL/pgSQL 赋值语句中的 <code>GROUP BY DISTINCT</code>（Tom Lane）<a href=\"https://postgr.es/c/0be39b4b1\">§</a></p>\n<p>解析器在此上下文中未能记录 <code>DISTINCT</code> 选项，导致命令的行为就像是普通的 <code>GROUP BY</code>。</p>", "text": "正确处理 PL/pgSQL 赋值语句中的 GROUP BY DISTINCT（Tom Lane）§ 解析器在此上下文中未能记录 DISTINCT 选项，导致命令的行为就像是普通的 GROUP BY。", "title": "正确处理 PL/pgSQL 赋值语句中的 GROUP BY DISTINCT", "commits": ["0be39b4b1"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "228f167d2e4edd429b5a98bb0e46aa729266cb31249db7d8962575403f6e53f2", "section_path": ["变更"], "commit_groups": [["0be39b4b1", "3fc9aa5b0", "7504d2be9", "78a284b0b", "9ca79896a", "b7f6798c0"]], "identity_text": "Correctly handle GROUP BY DISTINCT in PL/pgSQL assignment statements (Tom Lane) The parser failed to record the DISTINCT option in this context, so that the command would act as if it were plain GROUP BY.", "commit_aliases": ["0be39b4b1", "3fc9aa5b0", "7504d2be9", "78a284b0b", "9ca79896a", "b7f6798c0"], "source_commits": ["0be39b4b1"], "source_entry_id": "14.20/changes/030", "db_id": "f4fe056566c9e56e900ccb3ae467d6d1", "patch_ids": ["a73af4d4bc9077b2b6083baf3ae9afa7"], "statement_hash": "4b45bae1f781f46524306017d2565200da9a292424814416e43bb0c51c2b250a", "relations": [{"rule": 2, "type": "equivalent", "target": "5d72fc4fde390c5d9153f30aa3ce32f6", "evidence": {"same_day": true, "patch_ids": ["a73af4d4bc9077b2b6083baf3ae9afa7"], "statement_hash": "4b45bae1f781f46524306017d2565200da9a292424814416e43bb0c51c2b250a"}}, {"rule": 2, "type": "equivalent", "target": "bed9ac21d6b5104de301b89d80efe413", "evidence": {"same_day": true, "patch_ids": ["a73af4d4bc9077b2b6083baf3ae9afa7"], "statement_hash": "4b45bae1f781f46524306017d2565200da9a292424814416e43bb0c51c2b250a"}}, {"rule": 2, "type": "equivalent", "target": "c4e592f337961adba07d32ea163af2ef", "evidence": {"same_day": true, "patch_ids": ["a73af4d4bc9077b2b6083baf3ae9afa7"], "statement_hash": "4b45bae1f781f46524306017d2565200da9a292424814416e43bb0c51c2b250a"}}, {"rule": 2, "type": "equivalent", "target": "f25c1bf3d1b0bc45940ba06662dd7fac", "evidence": {"same_day": true, "patch_ids": ["a73af4d4bc9077b2b6083baf3ae9afa7"], "statement_hash": "4b45bae1f781f46524306017d2565200da9a292424814416e43bb0c51c2b250a"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f25c1bf3d1b0bc45940ba06662dd7fac", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "正确处理 PL/pgSQL 赋值语句中的 GROUP BY DISTINCT", "evidence": {"same_day": true, "patch_ids": ["a73af4d4bc9077b2b6083baf3ae9afa7"], "statement_hash": "4b45bae1f781f46524306017d2565200da9a292424814416e43bb0c51c2b250a"}, "url": "/docs/compare/?release=18.1#18.1-ea24cf69287cae1d", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "5d72fc4fde390c5d9153f30aa3ce32f6", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "正确处理 PL/pgSQL 赋值语句中的 GROUP BY DISTINCT", "evidence": {"same_day": true, "patch_ids": ["a73af4d4bc9077b2b6083baf3ae9afa7"], "statement_hash": "4b45bae1f781f46524306017d2565200da9a292424814416e43bb0c51c2b250a"}, "url": "/docs/compare/?release=17.7#17.7-da35b615699d0e38", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "bed9ac21d6b5104de301b89d80efe413", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "正确处理 PL/pgSQL 赋值语句中的 GROUP BY DISTINCT", "evidence": {"same_day": true, "patch_ids": ["a73af4d4bc9077b2b6083baf3ae9afa7"], "statement_hash": "4b45bae1f781f46524306017d2565200da9a292424814416e43bb0c51c2b250a"}, "url": "/docs/compare/?release=16.11#16.11-3a01429c605940e7", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "c4e592f337961adba07d32ea163af2ef", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "正确处理 PL/pgSQL 赋值语句中的 GROUP BY DISTINCT", "evidence": {"same_day": true, "patch_ids": ["a73af4d4bc9077b2b6083baf3ae9afa7"], "statement_hash": "4b45bae1f781f46524306017d2565200da9a292424814416e43bb0c51c2b250a"}, "url": "/docs/compare/?release=15.15#15.15-eeed0366b039f82d", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}]}, {"id": "14.20-c5293fc1ca271610", "cves": [], "html": "<p>避免在 PL/Python 中处理 SQL 错误时泄漏内存（Tom Lane）<a href=\"https://postgr.es/c/7fb8c9240\">§</a></p>\n<p>这修复了在我们之前的小版本中引入的会话生命周期内存泄漏。</p>", "text": "避免在 PL/Python 中处理 SQL 错误时泄漏内存（Tom Lane）§ 这修复了在我们之前的小版本中引入的会话生命周期内存泄漏。", "title": "避免在 PL/Python 中处理 SQL 错误时泄漏内存", "commits": ["7fb8c9240"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "db0b5164ea7883444950f36a9a8ff53f3fde17b149d9175206c989627dfdb266", "section_path": ["变更"], "commit_groups": [["447a794f6", "4cde73259", "798b19d27", "7fb8c9240", "cbfd4d0f8", "d90c92d1c", "fbc41a145"]], "identity_text": "Avoid leaking memory when handling a SQL error within PL/Python (Tom Lane) This fixes a session-lifespan memory leak introduced in our previous minor releases.", "commit_aliases": ["447a794f6", "4cde73259", "798b19d27", "7fb8c9240", "cbfd4d0f8", "d90c92d1c", "fbc41a145"], "source_commits": ["7fb8c9240"], "source_entry_id": "14.20/changes/031", "db_id": "1cc5187c2c4ae41cf3accaadaacb20c6", "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0", "relations": [{"rule": 2, "type": "equivalent", "target": "21e26aeb99c1f4efef5ee4d427588817", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}}, {"rule": 2, "type": "equivalent", "target": "4567a5ad601fcfb6e367a0d5788654f3", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}}, {"rule": 2, "type": "equivalent", "target": "6e6104594627174dfaa8204ac54cf50d", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}}, {"rule": 2, "type": "equivalent", "target": "8ed8073833432a5a8b59221fab2bfd05", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}}, {"rule": 2, "type": "equivalent", "target": "f72d5243e6c8215039615db964cfa0bc", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8ed8073833432a5a8b59221fab2bfd05", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "避免在 PL/Python 中处理 SQL 错误时泄漏内存", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}, "url": "/docs/compare/?release=18.1#18.1-da9fd9dc692db55b", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "4567a5ad601fcfb6e367a0d5788654f3", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免在 PL/Python 中处理 SQL 错误时泄漏内存", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}, "url": "/docs/compare/?release=17.7#17.7-518a9f7a9e8762ea", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "21e26aeb99c1f4efef5ee4d427588817", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "避免在 PL/Python 中处理 SQL 错误时泄漏内存", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}, "url": "/docs/compare/?release=16.11#16.11-459f76577a275299", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "f72d5243e6c8215039615db964cfa0bc", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "避免在 PL/Python 中处理 SQL 错误时泄漏内存", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}, "url": "/docs/compare/?release=15.15#15.15-221591e26f573b0b", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "6e6104594627174dfaa8204ac54cf50d", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "避免在 PL/Python 中处理 SQL 错误时泄漏内存", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}, "url": "/docs/compare/?release=13.23#13.23-92a4c4e07d0dc6be", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-93426fb27560b5e5", "cves": [], "html": "<p>修复 <span>libpq</span> 对高位设置字符的跟踪输出（Ran Benita）<a href=\"https://postgr.es/c/0cc540f0d\">§</a></p>\n<p>在 <code>char</code> 被视为有符号类型的平台上，输出包含难看的 <code>\\xffffff</code> 装饰。</p>", "text": "修复 libpq 对高位设置字符的跟踪输出（Ran Benita）§ 在 char 被视为有符号类型的平台上，输出包含难看的 \\xffffff 装饰。", "title": "修复 libpq 对高位设置字符的跟踪输出", "commits": ["0cc540f0d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "d39d4ea85299d44c9cc8cee2b53cb4dd79784461afe3a50d417e819932ac39ad", "section_path": ["变更"], "commit_groups": [["0b274c475", "0cc540f0d", "0fedb3a27", "701a0bd56", "ae53537e2", "db9405493"]], "identity_text": "Fix libpq's trace output of characters with the high bit set (Ran Benita) On platforms where char is considered signed, the output included unsightly \\xffffff decoration.", "commit_aliases": ["0b274c475", "0cc540f0d", "0fedb3a27", "701a0bd56", "ae53537e2", "db9405493"], "source_commits": ["0cc540f0d"], "source_entry_id": "14.20/changes/032", "db_id": "e1f76def11aea8f159506dfe71889b8a", "patch_ids": ["7222fe16981e529f65bb49eb1e199a8a"], "statement_hash": "9b85db1137c14ec5656bf0fc485a2943ab34a9fefc0f3c81ef6534e4cd12a1b9", "relations": [{"rule": 2, "type": "equivalent", "target": "3bc51d3cbf29233eb5a2902869262931", "evidence": {"same_day": true, "patch_ids": ["7222fe16981e529f65bb49eb1e199a8a"], "statement_hash": "9b85db1137c14ec5656bf0fc485a2943ab34a9fefc0f3c81ef6534e4cd12a1b9"}}, {"rule": 2, "type": "equivalent", "target": "87931fc83b65dbf519e06fa94b8c1eb9", "evidence": {"same_day": true, "patch_ids": ["7222fe16981e529f65bb49eb1e199a8a"], "statement_hash": "9b85db1137c14ec5656bf0fc485a2943ab34a9fefc0f3c81ef6534e4cd12a1b9"}}, {"rule": 2, "type": "equivalent", "target": "d029b2954a7358bcafe9b5191abd9403", "evidence": {"same_day": true, "patch_ids": ["7222fe16981e529f65bb49eb1e199a8a"], "statement_hash": "9b85db1137c14ec5656bf0fc485a2943ab34a9fefc0f3c81ef6534e4cd12a1b9"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "87931fc83b65dbf519e06fa94b8c1eb9", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 libpq 对高位设置字符的跟踪输出", "evidence": {"same_day": true, "patch_ids": ["7222fe16981e529f65bb49eb1e199a8a"], "statement_hash": "9b85db1137c14ec5656bf0fc485a2943ab34a9fefc0f3c81ef6534e4cd12a1b9"}, "url": "/docs/compare/?release=17.7#17.7-ed5219393ef57bc7", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "3bc51d3cbf29233eb5a2902869262931", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 libpq 对高位设置字符的跟踪输出", "evidence": {"same_day": true, "patch_ids": ["7222fe16981e529f65bb49eb1e199a8a"], "statement_hash": "9b85db1137c14ec5656bf0fc485a2943ab34a9fefc0f3c81ef6534e4cd12a1b9"}, "url": "/docs/compare/?release=16.11#16.11-4c6d56806b038a85", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "d029b2954a7358bcafe9b5191abd9403", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 libpq 对高位设置字符的跟踪输出", "evidence": {"same_day": true, "patch_ids": ["7222fe16981e529f65bb49eb1e199a8a"], "statement_hash": "9b85db1137c14ec5656bf0fc485a2943ab34a9fefc0f3c81ef6534e4cd12a1b9"}, "url": "/docs/compare/?release=15.15#15.15-743e8f7b66bbb3b9", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}]}, {"id": "14.20-a0d51aea48560c38", "cves": [], "html": "<p>修复 <span>libpq</span> 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题（Ning Wu，Tom Lane）<a href=\"https://postgr.es/c/f46d77377\">§</a></p>\n<p>使用 GSSAPI 加密/解密传输数据的代码未能正确识别连接套接字上的错误条件，因为 Windows 报告这些错误的方式与其他平台不同。这导致在 Windows 上无法建立此类连接。</p>", "text": "修复 libpq 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题（Ning Wu，Tom Lane）§ 使用 GSSAPI 加密/解密传输数据的代码未能正确识别连接套接字上的错误条件，因为 Windows 报告这些错误的方式与其他平台不同。这导致在 Windows 上无法建立此类连接。", "title": "修复 libpq 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题", "commits": ["f46d77377"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "8fcc131bd9bd749fb930cf510c187589465b172cbcbcf4b102a9f747c0eae777", "section_path": ["变更"], "commit_groups": [["1c4671f7b", "46c4478db", "771b106d1", "d83879a32", "ea78bd6d5", "f46d77377", "fc287cf3c"]], "identity_text": "Fix libpq's handling of socket-related errors on Windows within its GSSAPI logic (Ning Wu, Tom Lane) The code for encrypting/decrypting transmitted data using GSSAPI did not correctly recognize error conditions on the connection socket, since Windows reports those differently than other platforms. This led to failure to make such connections on Windows.", "commit_aliases": ["1c4671f7b", "46c4478db", "771b106d1", "d83879a32", "ea78bd6d5", "f46d77377", "fc287cf3c"], "source_commits": ["f46d77377"], "source_entry_id": "14.20/changes/033", "db_id": "8c6a6507bd4112a04aa052cc681036ab", "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e", "relations": [{"rule": 2, "type": "equivalent", "target": "3832ee9d1af37cef22d9ed22d51db616", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}}, {"rule": 2, "type": "equivalent", "target": "8a5e4771e1d3efc837da936303fe3e69", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}}, {"rule": 2, "type": "equivalent", "target": "9d30ea675f07706c069fc213482c9a49", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}}, {"rule": 2, "type": "equivalent", "target": "a676ca60cf7c395fb8962ab60a474d3e", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}}, {"rule": 2, "type": "equivalent", "target": "f5be3f6b8947f88fed54b1476ce5d760", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3832ee9d1af37cef22d9ed22d51db616", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复 libpq 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}, "url": "/docs/compare/?release=18.1#18.1-476a2e50c1064c29", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "a676ca60cf7c395fb8962ab60a474d3e", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 libpq 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}, "url": "/docs/compare/?release=17.7#17.7-b2fb5b95a8bca3b8", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "f5be3f6b8947f88fed54b1476ce5d760", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 libpq 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}, "url": "/docs/compare/?release=16.11#16.11-2e085f41052447e2", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "9d30ea675f07706c069fc213482c9a49", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 libpq 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}, "url": "/docs/compare/?release=15.15#15.15-576782cfd326c037", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "8a5e4771e1d3efc837da936303fe3e69", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 libpq 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}, "url": "/docs/compare/?release=13.23#13.23-cf1d927f2b0b8cf3", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-d67d714c9bc3b202", "cves": [], "html": "<p>在 <span>pg_dump</span> 中，导出订阅和事件触发器上的安全标签（Jian He，Fujii Masao）<a href=\"https://postgr.es/c/295c0a644\">§</a></p>\n<p>这些类型对象上的标签之前被遗漏了。</p>", "text": "在 pg_dump 中，导出订阅和事件触发器上的安全标签（Jian He，Fujii Masao）§ 这些类型对象上的标签之前被遗漏了。", "title": "在 pg_dump 中，导出订阅和事件触发器上的安全标签", "commits": ["295c0a644"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "21413b2ce0f3a9fd36fdc2df7c7577886db480e893a9e28a620b51016c105c58", "section_path": ["变更"], "commit_groups": [["165b07efe", "176002c5b", "20b23784f", "295c0a644", "8e5b92928", "968141898", "dff7591a7"]], "identity_text": "In pg_dump, dump security labels on subscriptions and event triggers (Jian He, Fujii Masao) Labels on these types of objects were previously missed.", "commit_aliases": ["165b07efe", "176002c5b", "20b23784f", "295c0a644", "8e5b92928", "968141898", "dff7591a7"], "source_commits": ["295c0a644"], "source_entry_id": "14.20/changes/034", "db_id": "a803d4701bd4f8354ba10f02b18df27e", "patch_ids": ["50f3cb3b1bf425b80336cf780a8c577e"], "statement_hash": "d645a8cad88937b71cd73ff9934bfcc39fde4f22df7c653beb1408cf5201a509", "relations": [{"rule": 2, "type": "equivalent", "target": "50a7eeaa4f31aad8bd17e15808635950", "evidence": {"same_day": true, "patch_ids": ["50f3cb3b1bf425b80336cf780a8c577e"], "statement_hash": "d645a8cad88937b71cd73ff9934bfcc39fde4f22df7c653beb1408cf5201a509"}}, {"rule": 2, "type": "equivalent", "target": "b38f7c6dc9500352199759c881c4807f", "evidence": {"same_day": true, "patch_ids": ["50f3cb3b1bf425b80336cf780a8c577e"], "statement_hash": "d645a8cad88937b71cd73ff9934bfcc39fde4f22df7c653beb1408cf5201a509"}}, {"rule": 2, "type": "equivalent", "target": "c6a6d9711c2c58d53b08a2a9891a8a9a", "evidence": {"same_day": true, "patch_ids": ["50f3cb3b1bf425b80336cf780a8c577e"], "statement_hash": "d645a8cad88937b71cd73ff9934bfcc39fde4f22df7c653beb1408cf5201a509"}}, {"rule": 2, "type": "equivalent", "target": "e13ed7ef67353401115ce525a24fc966", "evidence": {"same_day": true, "patch_ids": ["50f3cb3b1bf425b80336cf780a8c577e"], "statement_hash": "d645a8cad88937b71cd73ff9934bfcc39fde4f22df7c653beb1408cf5201a509"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b38f7c6dc9500352199759c881c4807f", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "在 pg_dump 中，导出订阅和事件触发器上的安全标签", "evidence": {"same_day": true, "patch_ids": ["50f3cb3b1bf425b80336cf780a8c577e"], "statement_hash": "d645a8cad88937b71cd73ff9934bfcc39fde4f22df7c653beb1408cf5201a509"}, "url": "/docs/compare/?release=17.7#17.7-562a0711918ab4f5", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "c6a6d9711c2c58d53b08a2a9891a8a9a", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "在 pg_dump 中，导出订阅和事件触发器上的安全标签", "evidence": {"same_day": true, "patch_ids": ["50f3cb3b1bf425b80336cf780a8c577e"], "statement_hash": "d645a8cad88937b71cd73ff9934bfcc39fde4f22df7c653beb1408cf5201a509"}, "url": "/docs/compare/?release=16.11#16.11-6c2aa84d4024a0e3", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "e13ed7ef67353401115ce525a24fc966", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "在 pg_dump 中，导出订阅和事件触发器上的安全标签", "evidence": {"same_day": true, "patch_ids": ["50f3cb3b1bf425b80336cf780a8c577e"], "statement_hash": "d645a8cad88937b71cd73ff9934bfcc39fde4f22df7c653beb1408cf5201a509"}, "url": "/docs/compare/?release=15.15#15.15-23ef2f7cfaa90f74", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "50a7eeaa4f31aad8bd17e15808635950", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "在 pg_dump 中，导出订阅和事件触发器上的安全标签", "evidence": {"same_day": true, "patch_ids": ["50f3cb3b1bf425b80336cf780a8c577e"], "statement_hash": "d645a8cad88937b71cd73ff9934bfcc39fde4f22df7c653beb1408cf5201a509"}, "url": "/docs/compare/?release=13.23#13.23-4d6dd7514f9f0b0b", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-cb50539fbd7938eb", "cves": [], "html": "<p>修复 <span>pg_dump</span> 中默认 ACL 和外键约束的排序（Kirill Reshke，Álvaro Herrera）<a href=\"https://postgr.es/c/4948bb9df\">§</a> <a href=\"https://postgr.es/c/22c6a44f0\">§</a> <a href=\"https://postgr.es/c/6062c3db3\">§</a></p>\n<p>确保这些数据库对象类型的排序一致，就像已经对其他对象类型所做的那样。</p>", "text": "修复 pg_dump 中默认 ACL 和外键约束的排序（Kirill Reshke，Álvaro Herrera）§ § § 确保这些数据库对象类型的排序一致，就像已经对其他对象类型所做的那样。", "title": "修复 pg_dump 中默认 ACL 和外键约束的排序", "commits": ["22c6a44f0", "4948bb9df", "6062c3db3"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "bd8efa54b54634332837120902a6788737240534aedb53ef69079577ed6b2b42", "section_path": ["变更"], "commit_groups": [["05341b2e9", "4948bb9df", "7652142f4", "b61a5c4be", "e68fa9a83", "e8d22095e", "fbf967e99"], ["06c1ee6b7", "162e70ea0", "4921a5972", "4cc3b4445", "6062c3db3", "7419c99a2", "d20df9590"], ["090c9c960", "22c6a44f0", "412d29fd2", "49a09c6c5", "ad4412480", "c6dca7c3d", "fb75e1ef7"]], "identity_text": "Fix pg_dump's sorting of default ACLs and foreign key constraints (Kirill Reshke, Álvaro Herrera) Ensure consistent ordering of these database object types, as was already done for other object types.", "commit_aliases": ["05341b2e9", "06c1ee6b7", "090c9c960", "162e70ea0", "22c6a44f0", "412d29fd2", "4921a5972", "4948bb9df", "49a09c6c5", "4cc3b4445", "6062c3db3", "7419c99a2", "7652142f4", "ad4412480", "b61a5c4be", "c6dca7c3d", "d20df9590", "e68fa9a83", "e8d22095e", "fb75e1ef7", "fbf967e99"], "source_commits": ["22c6a44f0", "4948bb9df", "6062c3db3"], "source_entry_id": "14.20/changes/035", "db_id": "9bedf67fa0860d232401ec8b1b5b9bf5", "patch_ids": ["1679aedbe4ad8389b89513ef7a8e82cb", "754d79e483197bda5a8bed16ebe180ac", "be31a2f210d7f22eae421e92aa4b1823"], "statement_hash": "88506846a424a77491ecd66026cec373544e59cfae9f2c596f71a0926fbfb8ea", "relations": [{"rule": 2, "type": "related", "target": "0e30416d744287728e67dfa91ecd903e", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}}, {"rule": 2, "type": "equivalent", "target": "5d051ea674aeb3f3b326a89ded32901f", "evidence": {"same_day": true, "patch_ids": ["1679aedbe4ad8389b89513ef7a8e82cb", "754d79e483197bda5a8bed16ebe180ac", "be31a2f210d7f22eae421e92aa4b1823"], "statement_hash": "88506846a424a77491ecd66026cec373544e59cfae9f2c596f71a0926fbfb8ea"}}, {"rule": 2, "type": "equivalent", "target": "5d200915f65582fc2484f8ef24cc008e", "evidence": {"same_day": true, "patch_ids": ["1679aedbe4ad8389b89513ef7a8e82cb", "754d79e483197bda5a8bed16ebe180ac", "be31a2f210d7f22eae421e92aa4b1823"], "statement_hash": "88506846a424a77491ecd66026cec373544e59cfae9f2c596f71a0926fbfb8ea"}}, {"rule": 2, "type": "equivalent", "target": "9fe254aca98ebddd5297b74ffc1dfbb8", "evidence": {"same_day": true, "patch_ids": ["1679aedbe4ad8389b89513ef7a8e82cb", "754d79e483197bda5a8bed16ebe180ac", "be31a2f210d7f22eae421e92aa4b1823"], "statement_hash": "88506846a424a77491ecd66026cec373544e59cfae9f2c596f71a0926fbfb8ea"}}, {"rule": 2, "type": "equivalent", "target": "c1d4d17be6dfafe4eaeda5f8c6d009ad", "evidence": {"same_day": true, "patch_ids": ["1679aedbe4ad8389b89513ef7a8e82cb", "754d79e483197bda5a8bed16ebe180ac", "be31a2f210d7f22eae421e92aa4b1823"], "statement_hash": "88506846a424a77491ecd66026cec373544e59cfae9f2c596f71a0926fbfb8ea"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e30416d744287728e67dfa91ecd903e", "kind": "related", "version": "18.1", "label": "18.1", "title": "修复 pg_dump 对外键约束的排序", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}, "url": "/docs/compare/?release=18.1#18.1-596e4425a92cbba4", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "9fe254aca98ebddd5297b74ffc1dfbb8", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 pg_dump 中默认 ACL 和外键约束的排序", "evidence": {"same_day": true, "patch_ids": ["1679aedbe4ad8389b89513ef7a8e82cb", "754d79e483197bda5a8bed16ebe180ac", "be31a2f210d7f22eae421e92aa4b1823"], "statement_hash": "88506846a424a77491ecd66026cec373544e59cfae9f2c596f71a0926fbfb8ea"}, "url": "/docs/compare/?release=17.7#17.7-6339fccd8bd64678", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "c1d4d17be6dfafe4eaeda5f8c6d009ad", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 pg_dump 中默认 ACL 和外键约束的排序", "evidence": {"same_day": true, "patch_ids": ["1679aedbe4ad8389b89513ef7a8e82cb", "754d79e483197bda5a8bed16ebe180ac", "be31a2f210d7f22eae421e92aa4b1823"], "statement_hash": "88506846a424a77491ecd66026cec373544e59cfae9f2c596f71a0926fbfb8ea"}, "url": "/docs/compare/?release=16.11#16.11-498c398eb10cb9bf", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "5d200915f65582fc2484f8ef24cc008e", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 pg_dump 中默认 ACL 和外键约束的排序", "evidence": {"same_day": true, "patch_ids": ["1679aedbe4ad8389b89513ef7a8e82cb", "754d79e483197bda5a8bed16ebe180ac", "be31a2f210d7f22eae421e92aa4b1823"], "statement_hash": "88506846a424a77491ecd66026cec373544e59cfae9f2c596f71a0926fbfb8ea"}, "url": "/docs/compare/?release=15.15#15.15-f62e7737dface522", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "5d051ea674aeb3f3b326a89ded32901f", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 pg_dump 中默认 ACL 和外键约束的排序", "evidence": {"same_day": true, "patch_ids": ["1679aedbe4ad8389b89513ef7a8e82cb", "754d79e483197bda5a8bed16ebe180ac", "be31a2f210d7f22eae421e92aa4b1823"], "statement_hash": "88506846a424a77491ecd66026cec373544e59cfae9f2c596f71a0926fbfb8ea"}, "url": "/docs/compare/?release=13.23#13.23-9e5d6f5c6fe46680", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-4a74c2ab484b5e15", "cves": [], "html": "<p>在 <span>pg_dump</span> 中，为单独导出的域约束的注释标记正确的依赖关系（Noah Misch）<a href=\"https://postgr.es/c/85d6ed31f\">§</a></p>\n<p>此错误可能导致并行 <span>pg_restore</span> 在约束本身恢复之前就尝试创建注释。</p>", "text": "在 pg_dump 中，为单独导出的域约束的注释标记正确的依赖关系（Noah Misch）§ 此错误可能导致并行 pg_restore 在约束本身恢复之前就尝试创建注释。", "title": "在 pg_dump 中，为单独导出的域约束的注释标记正确的依赖关系", "commits": ["85d6ed31f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "eeec9c8363afadc142a7761d6446b642163eaa314f89c78ac87f00cf563fbd6a", "section_path": ["变更"], "commit_groups": [["0773f3a87", "3cf328eca", "4ad846445", "85d6ed31f", "a685c057a", "c044b50d1", "e127764b6"]], "identity_text": "In pg_dump, label comments for separately-dumped domain constraints with the proper dependency (Noah Misch) This error could lead to parallel pg_restore attempting to create the comment before the constraint itself has been restored.", "commit_aliases": ["0773f3a87", "3cf328eca", "4ad846445", "85d6ed31f", "a685c057a", "c044b50d1", "e127764b6"], "source_commits": ["85d6ed31f"], "source_entry_id": "14.20/changes/036", "db_id": "57770ce46bea4407a1c3d56a9de88c89", "patch_ids": ["f5ee4fcdb9591dfab45e16d82b5778a9"], "statement_hash": "1f7f6f21e0a04820a9643f0abe96793463cd605b1750756f5826907a3cae8419", "relations": [{"rule": 2, "type": "equivalent", "target": "5212881b90e8e1e9551fbe13b95d0ebe", "evidence": {"same_day": true, "patch_ids": ["f5ee4fcdb9591dfab45e16d82b5778a9"], "statement_hash": "1f7f6f21e0a04820a9643f0abe96793463cd605b1750756f5826907a3cae8419"}}, {"rule": 2, "type": "equivalent", "target": "6d2ebbc7bf31a2fbcaaa5897ad5b55a9", "evidence": {"same_day": true, "patch_ids": ["f5ee4fcdb9591dfab45e16d82b5778a9"], "statement_hash": "1f7f6f21e0a04820a9643f0abe96793463cd605b1750756f5826907a3cae8419"}}, {"rule": 2, "type": "equivalent", "target": "829eff490d670b365e978ff8d767ec0b", "evidence": {"same_day": true, "patch_ids": ["f5ee4fcdb9591dfab45e16d82b5778a9"], "statement_hash": "1f7f6f21e0a04820a9643f0abe96793463cd605b1750756f5826907a3cae8419"}}, {"rule": 2, "type": "equivalent", "target": "c6f339abde1f188511906bff28c51578", "evidence": {"same_day": true, "patch_ids": ["f5ee4fcdb9591dfab45e16d82b5778a9"], "statement_hash": "1f7f6f21e0a04820a9643f0abe96793463cd605b1750756f5826907a3cae8419"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6d2ebbc7bf31a2fbcaaa5897ad5b55a9", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "在 pg_dump 中，为单独导出的域约束的注释标记正确的依赖关系", "evidence": {"same_day": true, "patch_ids": ["f5ee4fcdb9591dfab45e16d82b5778a9"], "statement_hash": "1f7f6f21e0a04820a9643f0abe96793463cd605b1750756f5826907a3cae8419"}, "url": "/docs/compare/?release=17.7#17.7-0d2ff278f612b143", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "c6f339abde1f188511906bff28c51578", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "在 pg_dump 中，为单独导出的域约束的注释标记正确的依赖关系", "evidence": {"same_day": true, "patch_ids": ["f5ee4fcdb9591dfab45e16d82b5778a9"], "statement_hash": "1f7f6f21e0a04820a9643f0abe96793463cd605b1750756f5826907a3cae8419"}, "url": "/docs/compare/?release=16.11#16.11-8bdbdcce891001b0", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "5212881b90e8e1e9551fbe13b95d0ebe", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "在 pg_dump 中，为单独导出的域约束的注释标记正确的依赖关系", "evidence": {"same_day": true, "patch_ids": ["f5ee4fcdb9591dfab45e16d82b5778a9"], "statement_hash": "1f7f6f21e0a04820a9643f0abe96793463cd605b1750756f5826907a3cae8419"}, "url": "/docs/compare/?release=15.15#15.15-ff1fe39cc66dc574", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "829eff490d670b365e978ff8d767ec0b", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "在 pg_dump 中，为单独导出的域约束的注释标记正确的依赖关系", "evidence": {"same_day": true, "patch_ids": ["f5ee4fcdb9591dfab45e16d82b5778a9"], "statement_hash": "1f7f6f21e0a04820a9643f0abe96793463cd605b1750756f5826907a3cae8419"}, "url": "/docs/compare/?release=13.23#13.23-bf93dd5cf806538c", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-76f716601e5da019", "cves": [], "html": "<p>在 <span>pg_restore</span> 中，跳过未被恢复的发布和订阅的注释和安全标签（Jian He，Fujii Masao）<a href=\"https://postgr.es/c/db900ec35\">§</a> <a href=\"https://postgr.es/c/bc476f8b8\">§</a></p>\n<p>当指定 <code>--no-publications</code> 或 <code>--no-subscriptions</code> 时，不要为这些对象发出 <code>COMMENT</code> 或 <code>SECURITY LABEL</code> 命令。</p>", "text": "在 pg_restore 中，跳过未被恢复的发布和订阅的注释和安全标签（Jian He，Fujii Masao）§ § 当指定 --no-publications 或 --no-subscriptions 时，不要为这些对象发出 COMMENT 或 SECURITY LABEL 命令。", "title": "在 pg_restore 中，跳过未被恢复的发布和订阅的注释和安全标签", "commits": ["bc476f8b8", "db900ec35"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "ad466d0691619fda49ca7f021277372ea07e63df2753f65ece0c0958e40ad584", "section_path": ["变更"], "commit_groups": [["0870397cc", "45f50c995", "5f42008f9", "7aecc00b3", "a4dbb11bb", "bc476f8b8", "dc8aa2f58"], ["77d2b155c", "8fbd1f8ea", "97527a5e6", "b54e8dbfe", "c8ed16050", "db900ec35", "f7f9c5d65"]], "identity_text": "In pg_restore, skip comments and security labels for publications and subscriptions that are not being restored (Jian He, Fujii Masao) Do not emit COMMENT or SECURITY LABEL commands for these objects when --no-publications or --no-subscriptions is specified.", "commit_aliases": ["0870397cc", "45f50c995", "5f42008f9", "77d2b155c", "7aecc00b3", "8fbd1f8ea", "97527a5e6", "a4dbb11bb", "b54e8dbfe", "bc476f8b8", "c8ed16050", "db900ec35", "dc8aa2f58", "f7f9c5d65"], "source_commits": ["bc476f8b8", "db900ec35"], "source_entry_id": "14.20/changes/037", "db_id": "a9c9a0e07839d2badf998df5894b4d5f", "patch_ids": ["b00e0d3d5b5c7accc291166eb79e6779", "c78160dcc18e275f1af7bef62bd392b3"], "statement_hash": "13c9f3d900186c385d309baab51ef957ad186df62425a49a15054c10d707ffdd", "relations": [{"rule": 2, "type": "equivalent", "target": "73000c025552fa1fccb057306989e471", "evidence": {"same_day": true, "patch_ids": ["b00e0d3d5b5c7accc291166eb79e6779", "c78160dcc18e275f1af7bef62bd392b3"], "statement_hash": "13c9f3d900186c385d309baab51ef957ad186df62425a49a15054c10d707ffdd"}}, {"rule": 2, "type": "equivalent", "target": "8c75b52b2c1a02a7bd09497bb056910a", "evidence": {"same_day": true, "patch_ids": ["b00e0d3d5b5c7accc291166eb79e6779", "c78160dcc18e275f1af7bef62bd392b3"], "statement_hash": "13c9f3d900186c385d309baab51ef957ad186df62425a49a15054c10d707ffdd"}}, {"rule": 2, "type": "equivalent", "target": "992fe32f696a3670a51ae4da2ac52324", "evidence": {"same_day": true, "patch_ids": ["b00e0d3d5b5c7accc291166eb79e6779", "c78160dcc18e275f1af7bef62bd392b3"], "statement_hash": "13c9f3d900186c385d309baab51ef957ad186df62425a49a15054c10d707ffdd"}}, {"rule": 2, "type": "equivalent", "target": "9e482564728f473f21c7b6e2b60cda0e", "evidence": {"same_day": true, "patch_ids": ["b00e0d3d5b5c7accc291166eb79e6779", "c78160dcc18e275f1af7bef62bd392b3"], "statement_hash": "13c9f3d900186c385d309baab51ef957ad186df62425a49a15054c10d707ffdd"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8c75b52b2c1a02a7bd09497bb056910a", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "在 pg_restore 中，跳过未被恢复的发布和订阅的注释和安全标签", "evidence": {"same_day": true, "patch_ids": ["b00e0d3d5b5c7accc291166eb79e6779", "c78160dcc18e275f1af7bef62bd392b3"], "statement_hash": "13c9f3d900186c385d309baab51ef957ad186df62425a49a15054c10d707ffdd"}, "url": "/docs/compare/?release=17.7#17.7-746daa75c18338eb", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "992fe32f696a3670a51ae4da2ac52324", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "在 pg_restore 中，跳过未被恢复的发布和订阅的注释和安全标签", "evidence": {"same_day": true, "patch_ids": ["b00e0d3d5b5c7accc291166eb79e6779", "c78160dcc18e275f1af7bef62bd392b3"], "statement_hash": "13c9f3d900186c385d309baab51ef957ad186df62425a49a15054c10d707ffdd"}, "url": "/docs/compare/?release=16.11#16.11-c9a713c822bed049", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "73000c025552fa1fccb057306989e471", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "在 pg_restore 中，跳过未被恢复的发布和订阅的注释和安全标签", "evidence": {"same_day": true, "patch_ids": ["b00e0d3d5b5c7accc291166eb79e6779", "c78160dcc18e275f1af7bef62bd392b3"], "statement_hash": "13c9f3d900186c385d309baab51ef957ad186df62425a49a15054c10d707ffdd"}, "url": "/docs/compare/?release=15.15#15.15-8108f66965f91937", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "9e482564728f473f21c7b6e2b60cda0e", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "在 pg_restore 中，跳过未被恢复的发布和订阅的注释和安全标签", "evidence": {"same_day": true, "patch_ids": ["b00e0d3d5b5c7accc291166eb79e6779", "c78160dcc18e275f1af7bef62bd392b3"], "statement_hash": "13c9f3d900186c385d309baab51ef957ad186df62425a49a15054c10d707ffdd"}, "url": "/docs/compare/?release=13.23#13.23-e41dd4a1625a9c64", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-a3723630038b7a05", "cves": [], "html": "<p>修复 <span>pg_dump</span> 和 <span>pg_restore</span> 中数据压缩逻辑的各种错误（Daniel Gustafsson，Tom Lane）<a href=\"https://postgr.es/c/40dc710a6\">§</a></p>\n<p>多处缺少或不正确的错误检查，还存在会在大端硬件上出现的可移植性问题。这些问题一直未被发现，因为此代码仅用于读取目录格式导出中压缩的 TOC 文件。 <span>pg_dump</span> 不会生成这样的导出；该情况只有在事后手动压缩 TOC 文件时才会出现，这是一种受支持但非常罕见的操作。</p>", "text": "修复 pg_dump 和 pg_restore 中数据压缩逻辑的各种错误（Daniel Gustafsson，Tom Lane）§ 多处缺少或不正确的错误检查，还存在会在大端硬件上出现的可移植性问题。这些问题一直未被发现，因为此代码仅用于读取目录格式导出中压缩的 TOC 文件。 pg_dump 不会生成这样的导出；该情况只有在事后手动压缩 TOC 文件时才会出现，这是一种受支持但非常罕见的操作。", "title": "修复 pg_dump 和 pg_restore 中数据压缩逻辑的各种错误", "commits": ["40dc710a6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "66acbc8e83050395207151c5c64e35451736cf87194e8f5a8eaf2edd38e09782", "section_path": ["变更"], "commit_groups": [["1518b7d76", "6a4009747", "a239c4a0c", "bf18e9bd7"], ["277dec651", "2efca1633", "33276cd02", "40dc710a6", "8b9924bce", "aa1fcd087", "c865f5b9f"], ["8980c724b", "92268b35d", "e686010c5", "ec017a305"]], "identity_text": "Fix assorted errors in the data compression logic in pg_dump and pg_restore (Daniel Gustafsson, Tom Lane) Error checking was missing or incorrect in several places, and there were also portability issues that would manifest on big-endian hardware. These problems had been missed because this code is only used to read compressed TOC files within directory-format dumps. pg_dump never produces such a dump; the case can be reached only by manually compressing the TOC file after the fact, which is a supported thing to do but very uncommon.", "commit_aliases": ["1518b7d76", "277dec651", "2efca1633", "33276cd02", "40dc710a6", "6a4009747", "8980c724b", "8b9924bce", "92268b35d", "a239c4a0c", "aa1fcd087", "bf18e9bd7", "c865f5b9f", "e686010c5", "ec017a305"], "source_commits": ["40dc710a6", "a239c4a0c", "e686010c5"], "source_entry_id": "14.20/changes/038", "db_id": "12b4dd9512e147889a0b739f2bbf5ade", "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c", "relations": [{"rule": 2, "type": "equivalent", "target": "2cc366c16ddf487970d4c1a069ddef4d", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}}, {"rule": 2, "type": "equivalent", "target": "94448a696df6dbc1fc249f870067647a", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}}, {"rule": 2, "type": "equivalent", "target": "d6f9f1f62ddef6d134088a2d74e99a56", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}}, {"rule": 2, "type": "equivalent", "target": "db9de757f72a73bd069a8b786f5b8120", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}}, {"rule": 2, "type": "equivalent", "target": "f2020f100f9176ff2a2e8a154fa90714", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "db9de757f72a73bd069a8b786f5b8120", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复 pg_dump 和 pg_restore 中数据压缩逻辑的各种错误", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}, "url": "/docs/compare/?release=18.1#18.1-939176032400286d", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "f2020f100f9176ff2a2e8a154fa90714", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 pg_dump 和 pg_restore 中数据压缩逻辑的各种错误", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}, "url": "/docs/compare/?release=17.7#17.7-2c512121eb50a880", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "d6f9f1f62ddef6d134088a2d74e99a56", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 pg_dump 和 pg_restore 中数据压缩逻辑的各种错误", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}, "url": "/docs/compare/?release=16.11#16.11-a90bb8c2778d1037", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "2cc366c16ddf487970d4c1a069ddef4d", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 pg_dump 和 pg_restore 中数据压缩逻辑的各种错误", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}, "url": "/docs/compare/?release=15.15#15.15-1f4cb2ccb58f17bc", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "94448a696df6dbc1fc249f870067647a", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 pg_dump 和 pg_restore 中数据压缩逻辑的各种错误", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}, "url": "/docs/compare/?release=13.23#13.23-a2ad4ad5a1ae99e4", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-74d6b535346afc2b", "cves": [], "html": "<p>修复 <span>pgbench</span> 以在启动 <code>COPY</code> 操作时妥善报告错误并退出（Anthonin Bonnefoy）<a href=\"https://postgr.es/c/9b3beb7c6\">§</a></p>\n<p><span>pgbench</span> 不打算支持这种情况，但之前会进入无限循环。</p>", "text": "修复 pgbench 以在启动 COPY 操作时妥善报告错误并退出（Anthonin Bonnefoy）§ pgbench 不打算支持这种情况，但之前会进入无限循环。", "title": "修复 pgbench 以在启动 COPY 操作时妥善报告错误并退出", "commits": ["9b3beb7c6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "a5b4f6b4340c254fc0b5fca58d1fd4521f7b696ac42ed2a7649becc41d255dbd", "section_path": ["变更"], "commit_groups": [["640590bb4", "902c08887", "9b3beb7c6", "b5cefc197", "c00637b5f", "de6de069d", "f1a2f3a0c"]], "identity_text": "Fix pgbench to error out cleanly if a COPY operation is started (Anthonin Bonnefoy) pgbench doesn't intend to support this case, but previously it went into an infinite loop.", "commit_aliases": ["640590bb4", "902c08887", "9b3beb7c6", "b5cefc197", "c00637b5f", "de6de069d", "f1a2f3a0c"], "source_commits": ["9b3beb7c6"], "source_entry_id": "14.20/changes/039", "db_id": "69889021274de78f6f31d01dd2b4ab62", "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb", "relations": [{"rule": 2, "type": "equivalent", "target": "0ab8c685f0a9c83205700ee9f16ec69d", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}}, {"rule": 2, "type": "equivalent", "target": "37f3a4ecb0a18fd8795547a2f62aa746", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}}, {"rule": 2, "type": "equivalent", "target": "4fdb075299b2c8dbb29b9dd63ffefa18", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}}, {"rule": 2, "type": "equivalent", "target": "5e3a31a811c1f52525f624d8ce076894", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}}, {"rule": 2, "type": "equivalent", "target": "9a22121acd6baa6a9fb3c0a600e6f745", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9a22121acd6baa6a9fb3c0a600e6f745", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复 pgbench 以在启动 COPY 操作时妥善报告错误并退出", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}, "url": "/docs/compare/?release=18.1#18.1-cccbae91c7612842", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "0ab8c685f0a9c83205700ee9f16ec69d", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 pgbench 以在启动 COPY 操作时妥善报告错误并退出", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}, "url": "/docs/compare/?release=17.7#17.7-be37552c2ac3a78e", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "37f3a4ecb0a18fd8795547a2f62aa746", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 pgbench 以在启动 COPY 操作时妥善报告错误并退出", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}, "url": "/docs/compare/?release=16.11#16.11-f7261b248bcb61f8", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "5e3a31a811c1f52525f624d8ce076894", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 pgbench 以在启动 COPY 操作时妥善报告错误并退出", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}, "url": "/docs/compare/?release=15.15#15.15-76b0085c675f6b37", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "4fdb075299b2c8dbb29b9dd63ffefa18", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 pgbench 以在启动 COPY 操作时妥善报告错误并退出", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}, "url": "/docs/compare/?release=13.23#13.23-32d242ed4771d849", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-a5c54ee7ce6a4f00", "cves": [], "html": "<p>修复 <span>pgbench</span> 的多错误报告（Yugo Nagata）<a href=\"https://postgr.es/c/cb21e1f92\">§</a></p>\n<p>在连续两次 <code>PQgetResult</code> 调用都失败的情况下， <span>pgbench</span> 可能报告错误的错误消息。</p>", "text": "修复 pgbench 的多错误报告（Yugo Nagata）§ 在连续两次 PQgetResult 调用都失败的情况下， pgbench 可能报告错误的错误消息。", "title": "修复 pgbench 的多错误报告", "commits": ["cb21e1f92"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "02bff65ea8f736320fb41bd68806578bacd3c01aa1cd0e14a8f544e46b8ee3d7", "section_path": ["变更"], "commit_groups": [["19d4f9ffc", "29aabbc43", "36c4d30c8", "7d7e81d1e", "a912118c6", "bdccb6302", "cb21e1f92"]], "identity_text": "Fix pgbench's reporting of multiple errors (Yugo Nagata) In cases where two successive PQgetResult calls both fail, pgbench might report the wrong error message.", "commit_aliases": ["19d4f9ffc", "29aabbc43", "36c4d30c8", "7d7e81d1e", "a912118c6", "bdccb6302", "cb21e1f92"], "source_commits": ["cb21e1f92"], "source_entry_id": "14.20/changes/040", "db_id": "a2a875aae536c9dfb223ec32572d4b63", "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604", "relations": [{"rule": 2, "type": "equivalent", "target": "1d96ae50e45c2122b3c99a80eb6187c3", "evidence": {"same_day": true, "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604"}}, {"rule": 2, "type": "equivalent", "target": "66d73925f2523f78c99a3eab09ad1adf", "evidence": {"same_day": true, "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604"}}, {"rule": 2, "type": "equivalent", "target": "89b980f6be2175b2b8c7c6d55f591881", "evidence": {"same_day": true, "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604"}}, {"rule": 2, "type": "equivalent", "target": "ac7703f3c51d491b3572192678a5d998", "evidence": {"same_day": true, "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604"}}, {"rule": 2, "type": "equivalent", "target": "e0ccdf500bb8f7ee5932c7d3db2e536e", "evidence": {"same_day": true, "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d96ae50e45c2122b3c99a80eb6187c3", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复 pgbench 的多错误报告", "evidence": {"same_day": true, "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604"}, "url": "/docs/compare/?release=18.1#18.1-1b36133d506932f3", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "ac7703f3c51d491b3572192678a5d998", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 pgbench 的多错误报告", "evidence": {"same_day": true, "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604"}, "url": "/docs/compare/?release=17.7#17.7-180d8349ffb479b3", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "66d73925f2523f78c99a3eab09ad1adf", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 pgbench 的多错误报告", "evidence": {"same_day": true, "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604"}, "url": "/docs/compare/?release=16.11#16.11-3bb865abdd991c8c", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "e0ccdf500bb8f7ee5932c7d3db2e536e", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 pgbench 的多错误报告", "evidence": {"same_day": true, "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604"}, "url": "/docs/compare/?release=15.15#15.15-0c7d8a673115c847", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "89b980f6be2175b2b8c7c6d55f591881", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 pgbench 的多错误报告", "evidence": {"same_day": true, "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604"}, "url": "/docs/compare/?release=13.23#13.23-7f805041aaf13b6f", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-3713d982a4c25a06", "cves": [], "html": "<p>确保 <code>contrib/pg_buffercache</code> 函数可以被取消（Satyanarayana Narlapuram，Yuhang Qiu）<a href=\"https://postgr.es/c/79643105a\">§</a></p>\n<p>某些代码路径能够长时间运行而不检查中断。</p>", "text": "确保 contrib/pg_buffercache 函数可以被取消（Satyanarayana Narlapuram，Yuhang Qiu）§ 某些代码路径能够长时间运行而不检查中断。", "title": "确保 contrib/pg_buffercache 函数可以被取消", "commits": ["79643105a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "45c5c8324e8dbd082040d3aefa43fd019e0932bff1ba4252b26e427051c94da0", "section_path": ["变更"], "commit_groups": [["0beb7e933", "79643105a", "7d8d36289", "815fcfb20", "b6090ed96", "eab9e4e27", "eb9ee4d18"], ["71aa2e114", "8ae0f6a0c"]], "identity_text": "Ensure that contrib/pg_buffercache functions can be canceled (Satyanarayana Narlapuram, Yuhang Qiu) Some code paths were capable of running for a long time without checking for interrupts.", "commit_aliases": ["0beb7e933", "71aa2e114", "79643105a", "7d8d36289", "815fcfb20", "8ae0f6a0c", "b6090ed96", "eab9e4e27", "eb9ee4d18"], "source_commits": ["79643105a", "8ae0f6a0c"], "source_entry_id": "14.20/changes/041", "db_id": "7400b4918533b966fb90032b2caf5c76", "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5", "relations": [{"rule": 2, "type": "equivalent", "target": "23b0ca06794cbfef601b73e5a2401894", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}}, {"rule": 2, "type": "equivalent", "target": "3caee2c365e58c61931cc0a6fb332c39", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}}, {"rule": 2, "type": "equivalent", "target": "79d155685a49b3acf32f431174e9c679", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}}, {"rule": 2, "type": "equivalent", "target": "b091d219fb5bea6297016707e7154f0e", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}}, {"rule": 2, "type": "equivalent", "target": "ee81b22deb19121826702e15ee5489ea", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "23b0ca06794cbfef601b73e5a2401894", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "确保 contrib/pg_buffercache 函数可以被取消", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}, "url": "/docs/compare/?release=18.1#18.1-1f106ef831d50ecf", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "ee81b22deb19121826702e15ee5489ea", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "确保 contrib/pg_buffercache 函数可以被取消", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}, "url": "/docs/compare/?release=17.7#17.7-f96cf4298c654962", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "3caee2c365e58c61931cc0a6fb332c39", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "确保 contrib/pg_buffercache 函数可以被取消", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}, "url": "/docs/compare/?release=16.11#16.11-0c0a61c7bcef9fe6", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "79d155685a49b3acf32f431174e9c679", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "确保 contrib/pg_buffercache 函数可以被取消", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}, "url": "/docs/compare/?release=15.15#15.15-b82ab8179ce6ffa2", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "b091d219fb5bea6297016707e7154f0e", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "确保 contrib/pg_buffercache 函数可以被取消", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}, "url": "/docs/compare/?release=13.23#13.23-2afa2a1778983a41", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-3c05d58cb93e93c6", "cves": [], "html": "<p>修复 <code>contrib/pg_prewarm</code> 对索引的权限检查（Ayush Vatsa，Nathan Bossart）<a href=\"https://postgr.es/c/f146eb45c\">§</a></p>\n<p><code>pg_prewarm()</code> 要求对要预热的关系具有 <code>SELECT</code> 权限。但由于索引没有自己的 SQL 权限，这导致非超级用户无法预热索引。改为检查索引所属表的 <code>SELECT</code> 权限。</p>", "text": "修复 contrib/pg_prewarm 对索引的权限检查（Ayush Vatsa，Nathan Bossart）§ pg_prewarm() 要求对要预热的关系具有 SELECT 权限。但由于索引没有自己的 SQL 权限，这导致非超级用户无法预热索引。改为检查索引所属表的 SELECT 权限。", "title": "修复 contrib/pg_prewarm 对索引的权限检查", "commits": ["f146eb45c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "76a3d6ceaef153b3ffcde531ac0a82a999d471ba8b70ac721d478515a483ab35", "section_path": ["变更"], "commit_groups": [["19a64f567", "208927e65", "3ccf8e9ac", "6c03ae8d6", "a0551bc57", "f146eb45c", "fae0ce5e3"], ["c26a8eaf6", "c29d32d27", "d4e8c37cc", "da44d71e7"]], "identity_text": "Fix contrib/pg_prewarm's privilege checks for indexes (Ayush Vatsa, Nathan Bossart) pg_prewarm() requires SELECT privilege on relations to be prewarmed. However, since indexes have no SQL privileges of their own, this resulted in non-superusers being unable to prewarm indexes. Instead, check for SELECT privilege on the index's table.", "commit_aliases": ["19a64f567", "208927e65", "3ccf8e9ac", "6c03ae8d6", "a0551bc57", "c26a8eaf6", "c29d32d27", "d4e8c37cc", "da44d71e7", "f146eb45c", "fae0ce5e3"], "source_commits": ["da44d71e7", "f146eb45c"], "source_entry_id": "14.20/changes/042", "db_id": "3560cbeb90a220549c8020a4c4e51a43", "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef", "relations": [{"rule": 2, "type": "equivalent", "target": "1d5915ef7928256380a928b89822c11e", "evidence": {"same_day": true, "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef"}}, {"rule": 2, "type": "equivalent", "target": "2c079e365c3426a6ab1ebdaac4390c79", "evidence": {"same_day": true, "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef"}}, {"rule": 2, "type": "equivalent", "target": "31eace56fdb35b76792ceb947abcef9f", "evidence": {"same_day": true, "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef"}}, {"rule": 2, "type": "equivalent", "target": "7129d623484df099235339952f193f4c", "evidence": {"same_day": true, "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef"}}, {"rule": 2, "type": "equivalent", "target": "a09e1c9f229a62cef60e445720a79b1c", "evidence": {"same_day": true, "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7129d623484df099235339952f193f4c", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复 contrib/pg_prewarm 对索引的权限检查", "evidence": {"same_day": true, "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef"}, "url": "/docs/compare/?release=18.1#18.1-f8e1ff87a5a4083e", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "2c079e365c3426a6ab1ebdaac4390c79", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 contrib/pg_prewarm 对索引的权限检查", "evidence": {"same_day": true, "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef"}, "url": "/docs/compare/?release=17.7#17.7-56eb4d27523e9522", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "31eace56fdb35b76792ceb947abcef9f", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 contrib/pg_prewarm 对索引的权限检查", "evidence": {"same_day": true, "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef"}, "url": "/docs/compare/?release=16.11#16.11-83183d1755d62a81", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "1d5915ef7928256380a928b89822c11e", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 contrib/pg_prewarm 对索引的权限检查", "evidence": {"same_day": true, "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef"}, "url": "/docs/compare/?release=15.15#15.15-e8abdf46510773be", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "a09e1c9f229a62cef60e445720a79b1c", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 contrib/pg_prewarm 对索引的权限检查", "evidence": {"same_day": true, "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef"}, "url": "/docs/compare/?release=13.23#13.23-bb299578f9dad51d", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-c4d40eb2b10eae53", "cves": [], "html": "<p>使 <code>contrib/pgstattuple</code> 更健壮地处理空页面或无效索引页面（Nitin Motiani）<a href=\"https://postgr.es/c/ee2dbcad0\">§</a></p>\n<p>将全零页面计为空闲空间，并忽略根据页面特殊空间大小检查判定为无效的页面。B-树索引的代码已经将全零页面计为空闲空间，但 hash 和 gist 的代码会报告错误并退出，这被发现对用户不太友好。同样，使这三种情况在忽略损坏页面而非抛出错误方面保持一致。</p>", "text": "使 contrib/pgstattuple 更健壮地处理空页面或无效索引页面（Nitin Motiani）§ 将全零页面计为空闲空间，并忽略根据页面特殊空间大小检查判定为无效的页面。B-树索引的代码已经将全零页面计为空闲空间，但 hash 和 gist 的代码会报告错误并退出，这被发现对用户不太友好。同样，使这三种情况在忽略损坏页面而非抛出错误方面保持一致。", "title": "使 contrib/pgstattuple 更健壮地处理空页面或无效索引页面", "commits": ["ee2dbcad0"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "92b904e98672aed7a38c714d0cf46d204b258fde06aee9cb954895523f865e60", "section_path": ["变更"], "commit_groups": [["036decbba", "49b5f0b53", "684a745f5", "c0f9fe877", "c207bf473", "ee2dbcad0", "fc295beb7"]], "identity_text": "Make contrib/pgstattuple more robust about empty or invalid index pages (Nitin Motiani) Count all-zero pages as free space, and ignore pages that are invalid according to a check of the page's special-space size. The code for btree indexes already counted all-zero pages as free, but the hash and gist code would error out, which has been found to be much less user-friendly. Similarly, make all three cases agree on ignoring corrupted pages rather than throwing errors.", "commit_aliases": ["036decbba", "49b5f0b53", "684a745f5", "c0f9fe877", "c207bf473", "ee2dbcad0", "fc295beb7"], "source_commits": ["ee2dbcad0"], "source_entry_id": "14.20/changes/043", "db_id": "dbdca19037730dda97abc3c0ca87e248", "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d", "relations": [{"rule": 2, "type": "equivalent", "target": "3be631a7028f49faa7a328c190d249c2", "evidence": {"same_day": true, "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d"}}, {"rule": 2, "type": "equivalent", "target": "7cf5a3928b0125574395c382ed52c5b1", "evidence": {"same_day": true, "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d"}}, {"rule": 2, "type": "equivalent", "target": "a6ec20ccdb529fbc57070c204bf73a7c", "evidence": {"same_day": true, "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d"}}, {"rule": 2, "type": "equivalent", "target": "bd4e2931635023fef1578e6a6ef3185b", "evidence": {"same_day": true, "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d"}}, {"rule": 2, "type": "equivalent", "target": "e2d3ae73f7d42937b9fa7746740e86a5", "evidence": {"same_day": true, "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7cf5a3928b0125574395c382ed52c5b1", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "使 contrib/pgstattuple 更健壮地处理空页面或无效索引页面", "evidence": {"same_day": true, "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d"}, "url": "/docs/compare/?release=18.1#18.1-e14a404bd57c041c", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "3be631a7028f49faa7a328c190d249c2", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "使 contrib/pgstattuple 更健壮地处理空页面或无效索引页面", "evidence": {"same_day": true, "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d"}, "url": "/docs/compare/?release=17.7#17.7-a0ddb7978278cea0", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "a6ec20ccdb529fbc57070c204bf73a7c", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "使 contrib/pgstattuple 更健壮地处理空页面或无效索引页面", "evidence": {"same_day": true, "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d"}, "url": "/docs/compare/?release=16.11#16.11-4975417d9448e20f", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "e2d3ae73f7d42937b9fa7746740e86a5", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "使 contrib/pgstattuple 更健壮地处理空页面或无效索引页面", "evidence": {"same_day": true, "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d"}, "url": "/docs/compare/?release=15.15#15.15-dc5d3ccafec57b41", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "bd4e2931635023fef1578e6a6ef3185b", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "使 contrib/pgstattuple 更健壮地处理空页面或无效索引页面", "evidence": {"same_day": true, "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d"}, "url": "/docs/compare/?release=13.23#13.23-12ea4dfe533f710f", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-990f4af89a3a5329", "cves": [], "html": "<p>加固我们的读写屏障宏以满足 Clang 的要求（Thomas Munro）<a href=\"https://postgr.es/c/d8ba910b0\">§</a></p>\n<p>我们假设 <code>__atomic_thread_fence()</code> 是防止 C 编译器在其周围重排内存访问的充分屏障，但似乎对于 Clang 来说并非如此，导致它至少为 RISC-V、MIPS 和 LoongArch 机器生成不正确的代码。添加显式编译器屏障来修复此问题。</p>", "text": "加固我们的读写屏障宏以满足 Clang 的要求（Thomas Munro）§ 我们假设 __atomic_thread_fence() 是防止 C 编译器在其周围重排内存访问的充分屏障，但似乎对于 Clang 来说并非如此，导致它至少为 RISC-V、MIPS 和 LoongArch 机器生成不正确的代码。添加显式编译器屏障来修复此问题。", "title": "加固我们的读写屏障宏以满足 Clang 的要求", "commits": ["d8ba910b0"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "e56352513d70c5e78d926373b5fc18867d1e51da9776a01a04a8f7f1e516dee7", "section_path": ["变更"], "commit_groups": [["03d9140cb", "1c7cba4c5", "2f76ffe5e", "77b5b2c6f", "c5d34f4a5", "d8ba910b0", "f8ccab0e9"]], "identity_text": "Harden our read and write barrier macros to satisfy Clang (Thomas Munro) We supposed that __atomic_thread_fence() is a sufficient barrier to prevent the C compiler from re-ordering memory accesses around it, but it appears that that's not true for Clang, allowing it to generate incorrect code for at least RISC-V, MIPS, and LoongArch machines. Add explicit compiler barriers to fix that.", "commit_aliases": ["03d9140cb", "1c7cba4c5", "2f76ffe5e", "77b5b2c6f", "c5d34f4a5", "d8ba910b0", "f8ccab0e9"], "source_commits": ["d8ba910b0"], "source_entry_id": "14.20/changes/044", "db_id": "0f40c60d2dbfd4f861d301a4bd773172", "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f", "relations": [{"rule": 2, "type": "equivalent", "target": "1fe492cfff8c21a99fc7f4ba788cd84a", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}}, {"rule": 2, "type": "equivalent", "target": "9973d17e573aa27107b7da92a46de435", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}}, {"rule": 2, "type": "equivalent", "target": "b638f0acce8b684dfe425af564feddc5", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}}, {"rule": 2, "type": "equivalent", "target": "c4e42b13aa01ac375f66b2a5c94f5042", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}}, {"rule": 2, "type": "equivalent", "target": "e3b76d3ec7d1f519b67e8ae7478d0aaf", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}}], "version": "14.20", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9973d17e573aa27107b7da92a46de435", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "加固我们的读写屏障宏以满足 Clang 的要求", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}, "url": "/docs/compare/?release=18.1#18.1-01cf9fc9542209e8", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "e3b76d3ec7d1f519b67e8ae7478d0aaf", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "加固我们的读写屏障宏以满足 Clang 的要求", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}, "url": "/docs/compare/?release=17.7#17.7-a358469faddcaf65", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "b638f0acce8b684dfe425af564feddc5", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "加固我们的读写屏障宏以满足 Clang 的要求", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}, "url": "/docs/compare/?release=16.11#16.11-5eeead814be0846e", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "1fe492cfff8c21a99fc7f4ba788cd84a", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "加固我们的读写屏障宏以满足 Clang 的要求", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}, "url": "/docs/compare/?release=15.15#15.15-82d836f7de563b25", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "c4e42b13aa01ac375f66b2a5c94f5042", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "加固我们的读写屏障宏以满足 Clang 的要求", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}, "url": "/docs/compare/?release=13.23#13.23-389f6204c3092e7f", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-78426d970b4ba2fa", "cves": [], "html": "<p>修复使用 LLVM 21 及更高版本的构建（Holger Hoffstätte）<a href=\"https://postgr.es/c/fbfc36e94\">§</a></p>", "text": "修复使用 LLVM 21 及更高版本的构建（Holger Hoffstätte）§", "title": "修复使用 LLVM 21 及更高版本的构建", "commits": ["fbfc36e94"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "e2baefb3ad9adfe04fe8c7540268ad639c5776ae7417a3dd7953c04892873678", "section_path": ["变更"], "commit_groups": [["2670881af", "282d0bdee", "59d6e843e", "72a24bebc", "755f01ad7", "c11ac811a", "fbfc36e94"]], "identity_text": "Fix building with LLVM version 21 and later (Holger Hoffstätte)", "commit_aliases": ["2670881af", "282d0bdee", "59d6e843e", "72a24bebc", "755f01ad7", "c11ac811a", "fbfc36e94"], "source_commits": ["fbfc36e94"], "source_entry_id": "14.20/changes/045", "db_id": "fcb8805d652dd1509e939426bac8ece8", "patch_ids": ["63496bd581c70532b905b77339cefed9"], "statement_hash": "ecfa565a92ce16d10367034784e04bdc340da125574863a7c980e80e24ec746c", "relations": [{"rule": 2, "type": "equivalent", "target": "152565dd357e9e4fcba3b2d002b2b0c7", "evidence": {"same_day": true, "patch_ids": ["63496bd581c70532b905b77339cefed9"], "statement_hash": "ecfa565a92ce16d10367034784e04bdc340da125574863a7c980e80e24ec746c"}}, {"rule": 2, "type": "equivalent", "target": "24b4031db588e6778d74612aa49172b2", "evidence": {"same_day": true, "patch_ids": ["63496bd581c70532b905b77339cefed9"], "statement_hash": "ecfa565a92ce16d10367034784e04bdc340da125574863a7c980e80e24ec746c"}}, {"rule": 2, "type": "equivalent", "target": "aab0b53feda88c49c8d1c8ccdd1a6349", "evidence": {"same_day": true, "patch_ids": ["63496bd581c70532b905b77339cefed9"], "statement_hash": "ecfa565a92ce16d10367034784e04bdc340da125574863a7c980e80e24ec746c"}}, {"rule": 2, "type": "equivalent", "target": "da5c567c128753d27a14a732c1480620", "evidence": {"same_day": true, "patch_ids": ["63496bd581c70532b905b77339cefed9"], "statement_hash": "ecfa565a92ce16d10367034784e04bdc340da125574863a7c980e80e24ec746c"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "24b4031db588e6778d74612aa49172b2", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复使用 LLVM 21 及更高版本的构建", "evidence": {"same_day": true, "patch_ids": ["63496bd581c70532b905b77339cefed9"], "statement_hash": "ecfa565a92ce16d10367034784e04bdc340da125574863a7c980e80e24ec746c"}, "url": "/docs/compare/?release=17.7#17.7-b8ab60aa2bde35d9", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "aab0b53feda88c49c8d1c8ccdd1a6349", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复使用 LLVM 21 及更高版本的构建", "evidence": {"same_day": true, "patch_ids": ["63496bd581c70532b905b77339cefed9"], "statement_hash": "ecfa565a92ce16d10367034784e04bdc340da125574863a7c980e80e24ec746c"}, "url": "/docs/compare/?release=16.11#16.11-1c0eb680df6b12a9", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "da5c567c128753d27a14a732c1480620", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复使用 LLVM 21 及更高版本的构建", "evidence": {"same_day": true, "patch_ids": ["63496bd581c70532b905b77339cefed9"], "statement_hash": "ecfa565a92ce16d10367034784e04bdc340da125574863a7c980e80e24ec746c"}, "url": "/docs/compare/?release=15.15#15.15-655605b314358213", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "152565dd357e9e4fcba3b2d002b2b0c7", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复使用 LLVM 21 及更高版本的构建", "evidence": {"same_day": true, "patch_ids": ["63496bd581c70532b905b77339cefed9"], "statement_hash": "ecfa565a92ce16d10367034784e04bdc340da125574863a7c980e80e24ec746c"}, "url": "/docs/compare/?release=13.23#13.23-b3c435bdb8475244", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "14.20-19fa9799ea217624", "cves": [], "html": "<p>修复 PGXS 构建基础设施以支持为扩展构建 NLS <code>po</code> 文件（Ryo Matsumura）<a href=\"https://postgr.es/c/56cd332f8\">§</a></p>", "text": "修复 PGXS 构建基础设施以支持为扩展构建 NLS po 文件（Ryo Matsumura）§", "title": "修复 PGXS 构建基础设施以支持为扩展构建 NLS po 文件", "commits": ["56cd332f8"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6", "source_hash": "58e4a205383c7c26b6647707904856b5cb0042804eb3b1ecfb959be55458c9bc", "section_path": ["变更"], "commit_groups": [["33202cba8", "56cd332f8", "6aa04a60c", "6ad9378c9", "a506b0c0a", "a8933194e", "f768f5a7d"]], "identity_text": "Fix PGXS build infrastructure to support building NLS po files for extensions (Ryo Matsumura)", "commit_aliases": ["33202cba8", "56cd332f8", "6aa04a60c", "6ad9378c9", "a506b0c0a", "a8933194e", "f768f5a7d"], "source_commits": ["56cd332f8"], "source_entry_id": "14.20/changes/046", "db_id": "7316bd641f6446319509fd69461d044f", "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212", "relations": [{"rule": 2, "type": "equivalent", "target": "21f7ae374d258cb2db45f49e1739fb36", "evidence": {"same_day": true, "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212"}}, {"rule": 2, "type": "equivalent", "target": "48d2bb2f625a9045a6c2a66786680255", "evidence": {"same_day": true, "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212"}}, {"rule": 2, "type": "equivalent", "target": "711c7248f36605616eeeb824bcc65676", "evidence": {"same_day": true, "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212"}}, {"rule": 2, "type": "equivalent", "target": "af5e130f17b3c07e10f7f34dc42b2531", "evidence": {"same_day": true, "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212"}}, {"rule": 2, "type": "equivalent", "target": "d67ac864844bc85b56699c92c83fc1da", "evidence": {"same_day": true, "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212"}}], "version": "14.20", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d67ac864844bc85b56699c92c83fc1da", "kind": "equivalent", "version": "18.1", "label": "18.1", "title": "修复 PGXS 构建基础设施以支持为扩展构建 NLS po 文件", "evidence": {"same_day": true, "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212"}, "url": "/docs/compare/?release=18.1#18.1-dd957d885d3cf6e3", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES"}, {"db_id": "711c7248f36605616eeeb824bcc65676", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 PGXS 构建基础设施以支持为扩展构建 NLS po 文件", "evidence": {"same_day": true, "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212"}, "url": "/docs/compare/?release=17.7#17.7-5aeee6b10815f848", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "af5e130f17b3c07e10f7f34dc42b2531", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 PGXS 构建基础设施以支持为扩展构建 NLS po 文件", "evidence": {"same_day": true, "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212"}, "url": "/docs/compare/?release=16.11#16.11-d544a36b4bf61b26", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "48d2bb2f625a9045a6c2a66786680255", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 PGXS 构建基础设施以支持为扩展构建 NLS po 文件", "evidence": {"same_day": true, "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212"}, "url": "/docs/compare/?release=15.15#15.15-a6c2aa90b217412c", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "21f7ae374d258cb2db45f49e1739fb36", "kind": "equivalent", "version": "13.23", "label": "13.23", "title": "修复 PGXS 构建基础设施以支持为扩展构建 NLS po 文件", "evidence": {"same_day": true, "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212"}, "url": "/docs/compare/?release=13.23#13.23-84d4f2ceac81de22", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 46}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 23}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 21}], "total": 46, "release_count": 1, "cross_major": false, "cve_count": 2, "cves": [{"id": "CVE-2025-12818", "url": "https://www.postgresql.org/support/security/CVE-2025-12818/", "fixed": {"13": "13.23", "14": "14.20", "15": "15.15", "16": "16.11", "17": "17.7", "18": "18.1"}, "score": 5.9, "title": "避免 libpq 中分配大小计算的整数溢出", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-12818", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"13": "2025-11-13", "14": "2025-11-13", "15": "2025-11-13", "16": "2025-11-13", "17": "2025-11-13", "18": "2025-11-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Integer wraparound in multiple PostgreSQL libpq client library functions allows an application input provider or network peer to cause libpq to undersize an allocation and write out-of-bounds by hundreds of megabytes. This results in a segmentation fault for the application using libpq. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "affected_ranges": [{"from": "0", "until": "13.23"}, {"from": "14", "until": "14.20"}, {"from": "15", "until": "15.15"}, {"from": "16", "until": "16.11"}, {"from": "17", "until": "17.7"}, {"from": "18", "until": "18.1"}], "first_published": "2025-11-13", "fixed_version": "14.20"}, {"id": "CVE-2025-12817", "url": "https://www.postgresql.org/support/security/CVE-2025-12817/", "fixed": {"13": "13.23", "14": "14.20", "15": "15.15", "16": "16.11", "17": "17.7", "18": "18.1"}, "score": 3.1, "title": "检查 CREATE STATISTICS 中模式的 CREATE 权限", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2025-12817", "affected": {"13": "13", "14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"13": "2025-11-13", "14": "2025-11-13", "15": "2025-11-13", "16": "2025-11-13", "17": "2025-11-13", "18": "2025-11-13"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL CREATE STATISTICS command allows a table owner to achieve denial of service against other CREATE STATISTICS users by creating in any schema. A later CREATE STATISTICS for the same name, from a user having the CREATE privilege, would then fail. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "affected_ranges": [{"from": "0", "until": "13.23"}, {"from": "14", "until": "14.20"}, {"from": "15", "until": "15.15"}, {"from": "16", "until": "16.11"}, {"from": "17", "until": "17.7"}, {"from": "18", "until": "18.1"}], "first_published": "2025-11-13", "fixed_version": "14.20"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 46, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}