{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2025-11-13", "build": "18.1", "major": "18", "minor": 1, "manual": "18", "status": "stable", "doc_git": "", "version": "18.1", "eol_date": "2030-11-14", "date_text": "2025-11-13", "supported": true, "manual_url": "/docs/18/release-18-1.html", "source_url": "/docs/release/18.1/", "entry_count": 53, "placeholder": false, "content_hash": "66700dac793fc044b8f7c2c102c994a4c8eb8d81241e1aaf34fc9723b5a51be4", "manual_build": "18.6", "source_as_of": "", "changes_count": 53, "doc_loaded_at": "2026-09-26T02:56:34.731814", "migration_html": "<p>对于运行 18.X 的用户，不需要执行导出/恢复。</p>", "compatibility_count": 0, "label": "18.1", "status_label": "受支持版本", "eol": "2030-11-14", "age_days": 317, "support_days": 1510}, "groups": [{"date": "2025-11-13", "build": "18.1", "major": "18", "minor": 1, "manual": "18", "status": "stable", "doc_git": "", "version": "18.1", "eol_date": "2030-11-14", "date_text": "2025-11-13", "supported": true, "manual_url": "/docs/18/release-18-1.html", "source_url": "/docs/release/18.1/", "entry_count": 53, "placeholder": false, "content_hash": "66700dac793fc044b8f7c2c102c994a4c8eb8d81241e1aaf34fc9723b5a51be4", "manual_build": "18.6", "source_as_of": "", "changes_count": 53, "doc_loaded_at": "2026-09-26T02:56:34.731814", "migration_html": "<p>对于运行 18.X 的用户，不需要执行导出/恢复。</p>", "compatibility_count": 0, "label": "18.1", "status_label": "受支持版本", "eol": "2030-11-14", "age_days": 317, "support_days": 1510, "entries": [{"id": "18.1-45bd7bfaea1c1e6c", "cves": ["CVE-2025-12817"], "html": "<p>检查 <code>CREATE STATISTICS</code> 中模式的 <code>CREATE</code> 权限（Jelte Fennema-Nio）<a href=\"https://postgr.es/c/00eb646ea\">§</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": ["00eb646ea"], "section": "变更", "category": "security", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "7c9fc98fd26352f2c8df8d62ef124c4a11c97ac338af1e68ad9300d406affc69", "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": ["00eb646ea"], "source_entry_id": "18.1/changes/001", "db_id": "0b1db4254a2e3444434b0ca4004ea84b", "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704", "relations": [{"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": "7a542e168dfd911c88c2817105ab4eb1", "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": "18.1", "category_label": "安全相关", "also_in": [], "variants": [], "related_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": "7a542e168dfd911c88c2817105ab4eb1", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "检查 CREATE STATISTICS 中模式的 CREATE 权限", "evidence": {"same_day": true, "patch_ids": ["99e1ddd8be3f2e70a07b173bce56eec6"], "statement_hash": "2fdab1083a50be24b1dca00ede9ffd5906a617c6df360497714a885f6ff9f704"}, "url": "/docs/compare/?release=14.20#14.20-1acfdd0cd4bbd28d", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-3a4a5ae84a44ca49", "cves": ["CVE-2025-12818"], "html": "<p>避免 <span>libpq</span> 中分配大小计算的整数溢出（Jacob Champion）<a href=\"https://postgr.es/c/7eb8fcad8\">§</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": ["7eb8fcad8"], "section": "变更", "category": "security", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "b45871c637865cee86198fd246cd8aabd5edf5df7efc227adeb36544fb4819da", "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": ["7eb8fcad8"], "source_entry_id": "18.1/changes/002", "db_id": "c53264df3df1081cfca59daebb417ae4", "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": "1f91b721b071de697f740c95cd556a9e", "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": "cf7417da3f5aaff52ed6398652b5cefb", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}}], "version": "18.1", "category_label": "安全相关", "also_in": [], "variants": [], "related_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": "1f91b721b071de697f740c95cd556a9e", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "避免 libpq 中分配大小计算的整数溢出", "evidence": {"same_day": true, "patch_ids": ["16e4d7f7cb99380bcadbeb1a4c45eac4"], "statement_hash": "42e2acf7dbacc3d12e55dc8cc3dc23c6a2afed82c46ae3bf37cba022acdca1bb"}, "url": "/docs/compare/?release=14.20#14.20-e2a95ddb7200c878", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-b921a1ea6f2b8ead", "cves": [], "html": "<p>防止当 <code>JSON_VALUE</code> 等 SQL/JSON 函数的 <code>DEFAULT</code> 子句包含 <code>COLLATE</code> 表达式时出现 <span>“<span>unrecognized node type</span>”</span> 错误（Jian He）<a href=\"https://postgr.es/c/dc9125111\">§</a> <a href=\"https://postgr.es/c/1baae827e\">§</a></p>", "text": "防止当 JSON_VALUE 等 SQL/JSON 函数的 DEFAULT 子句包含 COLLATE 表达式时出现 “unrecognized node type” 错误（Jian He）§ §", "title": "防止当 JSON_VALUE 等 SQL/JSON 函数的 DEFAULT 子句包含 COLLATE 表达式时出现 “unrecognized node type” 错误", "commits": ["1baae827e", "dc9125111"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "b8839fac421b0ed413869d4e000cad7d9a3ccfe9b3c3a11d9fafca5e41e7e8f0", "section_path": ["变更"], "commit_groups": [["09f86a42f", "dc9125111", "ef5e60a9d"], ["1baae827e", "1e6dfdaa0", "c09a06918"]], "identity_text": "Prevent unrecognized node type errors when a SQL/JSON function such as JSON_VALUE has a DEFAULT clause containing a COLLATE expression (Jian He)", "commit_aliases": ["09f86a42f", "1baae827e", "1e6dfdaa0", "c09a06918", "dc9125111", "ef5e60a9d"], "source_commits": ["1baae827e", "dc9125111"], "source_entry_id": "18.1/changes/003", "db_id": "4870df49130804d64e1e92d7f9d6f17f", "patch_ids": ["9aacced6a6f638f7d31013e87be76fac", "b716f15276c076fd364e99593404fc28"], "statement_hash": "3181f0e422077fb0af80285571b22222a84421d45cb3710f3ce56bbe5fc3852c", "relations": [{"rule": 2, "type": "equivalent", "target": "3387a44cfd06079d33247002758176c2", "evidence": {"same_day": true, "patch_ids": ["9aacced6a6f638f7d31013e87be76fac", "b716f15276c076fd364e99593404fc28"], "statement_hash": "3181f0e422077fb0af80285571b22222a84421d45cb3710f3ce56bbe5fc3852c"}}], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3387a44cfd06079d33247002758176c2", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "防止当 JSON_VALUE 等 SQL/JSON 函数的 DEFAULT 子句包含 COLLATE 表达式时出现 “unrecognized node type” 错误", "evidence": {"same_day": true, "patch_ids": ["9aacced6a6f638f7d31013e87be76fac", "b716f15276c076fd364e99593404fc28"], "statement_hash": "3181f0e422077fb0af80285571b22222a84421d45cb3710f3ce56bbe5fc3852c"}, "url": "/docs/compare/?release=17.7#17.7-7345a25f928001c5", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}]}, {"id": "18.1-3c477bf7c9a2885e", "cves": [], "html": "<p>避免对带有分组集的无变量 <code>HAVING</code> 子句进行错误优化（Richard Guo）<a href=\"https://postgr.es/c/40c242830\">§</a> <a href=\"https://postgr.es/c/ee49f2cf4\">§</a></p>", "text": "避免对带有分组集的无变量 HAVING 子句进行错误优化（Richard Guo）§ §", "title": "避免对带有分组集的无变量 HAVING 子句进行错误优化", "commits": ["40c242830", "ee49f2cf4"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "ad359f03b7b74d8a0a552d70b1b2cf5e247a06f8ad1e5b8356baf8e55e4d2baf", "section_path": ["变更"], "commit_groups": [["18d261409", "40c242830"], ["ee49f2cf4"]], "identity_text": "Avoid incorrect optimization of variable-free HAVING clauses with grouping sets (Richard Guo)", "commit_aliases": ["18d261409", "40c242830", "ee49f2cf4"], "source_commits": ["40c242830", "ee49f2cf4"], "source_entry_id": "18.1/changes/004", "db_id": "64d7741972b458081894d24da0374395", "patch_ids": ["2c0ae04ea0e784fc2d17c8ab38e5cd41", "50b322963c6b58d35aea2955fcfea34f"], "statement_hash": "40b106b47db0974b5bea1bdc63c90189e253c1958fd7ff025f370ad6794518ba", "relations": [], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-dbb02ab568ba9c9d", "cves": [], "html": "<p>不要在哈希右半连接中使用并行（Richard Guo）<a href=\"https://postgr.es/c/ef6168baf\">§</a></p>\n<p>由于在更新连接的共享 hash 表时存在竞态条件，该情况无法可靠工作。</p>", "text": "不要在哈希右半连接中使用并行（Richard Guo）§ 由于在更新连接的共享 hash 表时存在竞态条件，该情况无法可靠工作。", "title": "不要在哈希右半连接中使用并行", "commits": ["ef6168baf"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "39312baafff0331dc6e11307f7638efa4a10bda18328fc33401949b670dd2c7a", "section_path": ["变更"], "commit_groups": [["257ee7834", "ef6168baf"]], "identity_text": "Do not use parallelism in hash right semi joins (Richard Guo) The case does not work reliably due to a race condition in updating the join's shared hash table.", "commit_aliases": ["257ee7834", "ef6168baf"], "source_commits": ["ef6168baf"], "source_entry_id": "18.1/changes/005", "db_id": "ed09728e7057ba0bd58174091cf36572", "patch_ids": ["f3845afa0fdccbe6d8cbb30c204eadc5"], "statement_hash": "3f17b0b718491fbba177f4509a3ce7371c9be8208074eb0f788005239524f671", "relations": [], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-5ec2ebf5e9d409d9", "cves": [], "html": "<p>避免创建有序追加计划时可能发生的除零错误（Richard Guo）<a href=\"https://postgr.es/c/500f64636\">§</a></p>\n<p>这种错误可能导致错误选择最便宜的路径，或导致调试构建中的断言失败。</p>", "text": "避免创建有序追加计划时可能发生的除零错误（Richard Guo）§ 这种错误可能导致错误选择最便宜的路径，或导致调试构建中的断言失败。", "title": "避免创建有序追加计划时可能发生的除零错误", "commits": ["500f64636"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "05094dbe1a52e137262c79803f4a98e69d7150808221f3286b1687f51db2a39b", "section_path": ["变更"], "commit_groups": [["500f64636", "c1777f2d6"]], "identity_text": "Avoid possible division-by-zero when creating ordered-append plans (Richard Guo) This mistake could result in incorrect selection of the cheapest path, or in an assertion failure in debug builds.", "commit_aliases": ["500f64636", "c1777f2d6"], "source_commits": ["500f64636"], "source_entry_id": "18.1/changes/006", "db_id": "805d87830e137872aeddda00e5eb47fa", "patch_ids": ["9414b4063f9e09aec7dbfc033ff0d56c"], "statement_hash": "9ab1c92995e5dc19b2f8430a87e9fe9e0f7b8dac32500b13b471acc4c3e4632a", "relations": [], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-c0b31ef03ca6b8d1", "cves": [], "html": "<p>修复使用支持有序访问但不支持仅索引扫描的索引类型时发生的规划器失败（Maxime Schoemans）<a href=\"https://postgr.es/c/74197bdc8\">§</a></p>\n<p>这一疏漏会导致 <span>“<span>no data returned for index-only scan</span>”</span> 等错误。任何核心内置索引类型都不会出现这种情况，但一些扩展遇到了此问题。</p>", "text": "修复使用支持有序访问但不支持仅索引扫描的索引类型时发生的规划器失败（Maxime Schoemans）§ 这一疏漏会导致 “no data returned for index-only scan” 等错误。任何核心内置索引类型都不会出现这种情况，但一些扩展遇到了此问题。", "title": "修复使用支持有序访问但不支持仅索引扫描的索引类型时发生的规划器失败", "commits": ["74197bdc8"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "57874e5db38d38966d2b710cf21e5580b67abd8ab00c1e2cd67449f3d5a529a0", "section_path": ["变更"], "commit_groups": [["35e53b684", "74197bdc8"]], "identity_text": "Fix planner failure with index types that can do ordered access but not index-only scans (Maxime Schoemans) This oversight resulted in errors like no data returned for index-only scan. The case does not arise with any in-core index type, but some extensions encountered the problem.", "commit_aliases": ["35e53b684", "74197bdc8"], "source_commits": ["74197bdc8"], "source_entry_id": "18.1/changes/007", "db_id": "48e2cdd93edf3d7841847a6e50d6cef2", "patch_ids": ["cccb634623d2b8f1ee8f5067fca472e2"], "statement_hash": "24cae600a957284e060515856c041bc697d4b1ccf9e6f631f35d5bdbade1bc28", "relations": [], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-b879ef73b7e33cee", "cves": [], "html": "<p>移除 B-树索引清理中的错误断言（Peter Geoghegan）<a href=\"https://postgr.es/c/61de81a49\">§</a></p>", "text": "移除 B-树索引清理中的错误断言（Peter Geoghegan）§", "title": "移除 B-树索引清理中的错误断言", "commits": ["61de81a49"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "59bedcdf0405a0fdb81cbd2d57d7e60036379d06f239428467ffd59ad5ee4756", "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": ["61de81a49"], "source_entry_id": "18.1/changes/008", "db_id": "1a0e9b151c18103e9e44e0d5b065435e", "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": "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"}}, {"rule": 2, "type": "equivalent", "target": "9e457bb041db2cbeaeaf7995dafca323", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}}], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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": "9e457bb041db2cbeaeaf7995dafca323", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "移除 B-树索引清理中的错误断言", "evidence": {"same_day": true, "patch_ids": ["37c608f60096a634457e03ef403861d6"], "statement_hash": "10a7d45ffeb0f11200d10e8732198f5dd91b4ea27bc91850c29a64cd2e8239a1"}, "url": "/docs/compare/?release=14.20#14.20-5e29cf4287b439af", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-37c61345d3eacb08", "cves": [], "html": "<p>避免并行 GIN 索引构建期间可能发生的内存不足或 <span>“<span>invalid memory alloc request size</span>”</span> 失败（Tomas Vondra）<a href=\"https://postgr.es/c/a26b753a0\">§</a></p>", "text": "避免并行 GIN 索引构建期间可能发生的内存不足或 “invalid memory alloc request size” 失败（Tomas Vondra）§", "title": "避免并行 GIN 索引构建期间可能发生的内存不足或 “invalid memory alloc request size” 失败", "commits": ["a26b753a0"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "fb8079b2782c06b6778225c99b5fd0371cff81d513d4d0cff5381c5dacf27249", "section_path": ["变更"], "commit_groups": [["a26b753a0", "c98dffcb7"]], "identity_text": "Avoid possible out-of-memory or invalid memory alloc request size failures during parallel GIN index build (Tomas Vondra)", "commit_aliases": ["a26b753a0", "c98dffcb7"], "source_commits": ["a26b753a0"], "source_entry_id": "18.1/changes/009", "db_id": "e3a6863618f309db1f698b4f2fcc8973", "patch_ids": ["2cfdabaf231689f023ac206f2d6e0d32"], "statement_hash": "5743d4aa1ec81c0d062d02b160bfecf8805fd2e5abb8be2006065e2655b7797e", "relations": [], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-a00fe3bcec296ab2", "cves": [], "html": "<p>确保 BRIN 自动汇总为需要快照的索引表达式提供快照（Álvaro Herrera）<a href=\"https://postgr.es/c/419ffde23\">§</a> <a href=\"https://postgr.es/c/8733f0b54\">§</a></p>\n<p>以前，此类索引的自动汇总会失败，然后留下占位索引元组，导致索引随时间膨胀。</p>", "text": "确保 BRIN 自动汇总为需要快照的索引表达式提供快照（Álvaro Herrera）§ § 以前，此类索引的自动汇总会失败，然后留下占位索引元组，导致索引随时间膨胀。", "title": "确保 BRIN 自动汇总为需要快照的索引表达式提供快照", "commits": ["419ffde23", "8733f0b54"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "72084de464215059c3d1b5ad06a481c8d136be1b10eac24c155283ac177e3095", "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": ["419ffde23", "8733f0b54"], "source_entry_id": "18.1/changes/010", "db_id": "5e3ad415c950ddc874e527c528e4312f", "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": "721aeb1deeff7de3e90db706f730ab11", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}}, {"rule": 2, "type": "equivalent", "target": "7f0361a52a096ffc5b14904781aeb0bc", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}}], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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": "7f0361a52a096ffc5b14904781aeb0bc", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "确保 BRIN 自动汇总为需要快照的索引表达式提供快照", "evidence": {"same_day": true, "patch_ids": ["31ad60583179a46f035e6ca49acb5df0", "3fdff7630c20c4073bba1b6676191274"], "statement_hash": "62e341cf9b11ac9a64fec02e85a546e8c1574a3998b12b548653d69ab6270585"}, "url": "/docs/compare/?release=14.20#14.20-1c3a5c9cbab5b1ac", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-4d75a8abffa08925", "cves": [], "html": "<p>修复当表接近 2<sup>32</sup> 页时 BRIN 索引扫描中的整数溢出风险（Sunil S）<a href=\"https://postgr.es/c/715983a81\">§</a></p>\n<p>此疏忽可能导致无限循环或扫描不需要的表页面。</p>", "text": "修复当表接近 232 页时 BRIN 索引扫描中的整数溢出风险（Sunil S）§ 此疏忽可能导致无限循环或扫描不需要的表页面。", "title": "修复当表接近 232 页时 BRIN 索引扫描中的整数溢出风险", "commits": ["715983a81"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "a227f200daffb8d9736fdb106e7db525288805f9d039e2aed7b51c500b5e9285", "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": ["715983a81"], "source_entry_id": "18.1/changes/011", "db_id": "393a9b7eb2a54302a3bd8b2790808ca8", "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f", "relations": [{"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"}}, {"rule": 2, "type": "equivalent", "target": "cbb0ef9e07e346b9959c4a482b828973", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "cbb0ef9e07e346b9959c4a482b828973", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复当表接近 232 页时 BRIN 索引扫描中的整数溢出风险", "evidence": {"same_day": true, "patch_ids": ["e15f4df722672d015993ea819e9c3351"], "statement_hash": "45088b42382a6f8a5eb8dc651e95a4c956a04e585cd53f0e8247416c8d6fce3f"}, "url": "/docs/compare/?release=14.20#14.20-fc1c1f6d56fc4b89", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-d78511e9b384a86b", "cves": [], "html": "<p>修复 JIT 生成的元组解构代码中存储值的错误零扩展问题（David Rowley）<a href=\"https://postgr.es/c/ceb51d09b\">§</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": ["ceb51d09b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "e82cf8c36ee531c20dbe457691d6d17ef5a6a4de2b92f57fdcfdb5db66d65a3d", "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": ["ceb51d09b"], "source_entry_id": "18.1/changes/012", "db_id": "de262079624c4f7225fefc1938b4d6c4", "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb", "relations": [{"rule": 2, "type": "equivalent", "target": "7c81d67412977edb96996856917b1f9a", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}}, {"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": "e11c7ac708a333ed4eb5a375fef717d8", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "7c81d67412977edb96996856917b1f9a", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复 JIT 生成的元组解构代码中存储值的错误零扩展问题", "evidence": {"same_day": true, "patch_ids": ["55424639c609ad9b211ffd5ac10cc20b"], "statement_hash": "d62bd3e9007f7f090eba935ee43673f57b512e6913d636b18186f3f90712f8fb"}, "url": "/docs/compare/?release=14.20#14.20-f7c15c83384f177c", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-86469df42b03e324", "cves": [], "html": "<p>修复处理带 hash 的 <code>GROUPING SETS</code> 查询时罕见的崩溃（David Rowley）<a href=\"https://postgr.es/c/0b6a02f03\">§</a></p>", "text": "修复处理带 hash 的 GROUPING SETS 查询时罕见的崩溃（David Rowley）§", "title": "修复处理带 hash 的 GROUPING SETS 查询时罕见的崩溃", "commits": ["0b6a02f03"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "cc577384085b9efd2f083bd967ec65d06ee8023c468f527337a797ad834fcc5e", "section_path": ["变更"], "commit_groups": [["0b6a02f03", "5c0a20003"]], "identity_text": "Fix rare crash when processing hashed GROUPING SETS queries (David Rowley)", "commit_aliases": ["0b6a02f03", "5c0a20003"], "source_commits": ["0b6a02f03"], "source_entry_id": "18.1/changes/013", "db_id": "e70ede7bd5583f381bf465e783e34002", "patch_ids": ["1c5627dd3234f4c77c310d7fcec4806f"], "statement_hash": "aaf9819b0b8a5d95eaa44966037d6f0f416829e205ff02c52bbbbb49ed82e79b", "relations": [], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-595b80f1b57139d2", "cves": [], "html": "<p>修复哈希连接中有误的 hash 表大小选择逻辑（Tomas Vondra）<a href=\"https://postgr.es/c/aa151022e\">§</a></p>\n<p>哈希连接有时会使用比预期更多的内存，或者未能以高效的方式划分这些内存。</p>", "text": "修复哈希连接中有误的 hash 表大小选择逻辑（Tomas Vondra）§ 哈希连接有时会使用比预期更多的内存，或者未能以高效的方式划分这些内存。", "title": "修复哈希连接中有误的 hash 表大小选择逻辑", "commits": ["aa151022e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "2f1f77c5b58aad4080d3f53a2ed5a3111544020d333a1a2c3c94f1a0b67b0fff", "section_path": ["变更"], "commit_groups": [["aa151022e", "b85c4700f"]], "identity_text": "Repair faulty hash-table-size-choosing logic in hash joins (Tomas Vondra) Hash joins sometimes used more memory than intended, or failed to divide it in an efficient way.", "commit_aliases": ["aa151022e", "b85c4700f"], "source_commits": ["aa151022e"], "source_entry_id": "18.1/changes/014", "db_id": "a3653066758eab729f75956e87c77d7e", "patch_ids": ["e7109e998d0ab28d4a07d7656b59c540"], "statement_hash": "673e758ffe8bfaad06735b49302d3951f81c17011e37608c1152b407bc0c3e5b", "relations": [], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-db784857980e4eb2", "cves": [], "html": "<p>改进统计信息操纵函数中的关系查找逻辑（Nathan Bossart）<a href=\"https://postgr.es/c/c8af5019b\">§</a> <a href=\"https://postgr.es/c/15d7dded0\">§</a></p>\n<p>修复 <code>pg_restore_relation_stats()</code>、<code>pg_clear_relation_stats()</code>、<code>pg_restore_attribute_stats()</code> 和 <code>pg_clear_attribute_stats()</code>，使其在获取目标关系锁之前而不是之后检查权限。</p>", "text": "改进统计信息操纵函数中的关系查找逻辑（Nathan Bossart）§ § 修复 pg_restore_relation_stats()、pg_clear_relation_stats()、pg_restore_attribute_stats() 和 pg_clear_attribute_stats()，使其在获取目标关系锁之前而不是之后检查权限。", "title": "改进统计信息操纵函数中的关系查找逻辑", "commits": ["15d7dded0", "c8af5019b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "f8bd59218ac4b34b3ee565d68c5695004386bd084e04b43b9b6021087ca2e7ac", "section_path": ["变更"], "commit_groups": [["15d7dded0"], ["688dc6299", "c8af5019b"]], "identity_text": "Improve relation lookup logic in statistics manipulation functions (Nathan Bossart) Fix pg_restore_relation_stats(), pg_clear_relation_stats(), pg_restore_attribute_stats(), and pg_clear_attribute_stats() to check privileges before acquiring lock on the target relation rather than after.", "commit_aliases": ["15d7dded0", "688dc6299", "c8af5019b"], "source_commits": ["15d7dded0", "c8af5019b"], "source_entry_id": "18.1/changes/015", "db_id": "994046ec35e4309bd0a13d4c68e9f1d1", "patch_ids": ["4003c14332c687be30fc03d4af31da84", "4da2341fff5b72181492769ab6d6fa07"], "statement_hash": "44114a78e01aa87c025a8c38bf3fab478ad80fcca0d566de78a5c814a859cbd4", "relations": [], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-fa17262588de7970", "cves": [], "html": "<p>修复触发器结果关系信息缓存的错误逻辑（David Rowley，Amit Langote）<a href=\"https://postgr.es/c/a2387c32f\">§</a></p>\n<p>在分区的列集与其父分区表的列集在物理上不完全相同的情况下，此疏忽可能导致崩溃。</p>", "text": "修复触发器结果关系信息缓存的错误逻辑（David Rowley，Amit Langote）§ 在分区的列集与其父分区表的列集在物理上不完全相同的情况下，此疏忽可能导致崩溃。", "title": "修复触发器结果关系信息缓存的错误逻辑", "commits": ["a2387c32f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "7e6a20eac8e6a679bac5be291d65d4bde10ba300dbe130df9e3bc131f6fe1ef8", "section_path": ["变更"], "commit_groups": [["0d3074615", "2992b9a07", "39dcfda2d", "a2387c32f", "a546964db"]], "identity_text": "Fix incorrect logic for caching result-relation information for triggers (David Rowley, Amit Langote) In cases where partitions' column sets aren't physically identical to their parent partitioned tables' column sets, this oversight could lead to crashes.", "commit_aliases": ["0d3074615", "2992b9a07", "39dcfda2d", "a2387c32f", "a546964db"], "source_commits": ["a2387c32f"], "source_entry_id": "18.1/changes/016", "db_id": "13af7f30c1a66144a7c4729335ad6c55", "patch_ids": ["aceec90d9a86d1b6d642dda660eebd6f"], "statement_hash": "026782085dea5b1090d57d834e0d4c7d0bc778a784349b74f9ef89ce84fcfaef", "relations": [{"rule": 2, "type": "equivalent", "target": "7ba23c07eaeb399e352fe32a704464e6", "evidence": {"same_day": true, "patch_ids": ["aceec90d9a86d1b6d642dda660eebd6f"], "statement_hash": "026782085dea5b1090d57d834e0d4c7d0bc778a784349b74f9ef89ce84fcfaef"}}, {"rule": 2, "type": "equivalent", "target": "ba3b5897c3d85845178cb5eee8dfba01", "evidence": {"same_day": true, "patch_ids": ["aceec90d9a86d1b6d642dda660eebd6f"], "statement_hash": "026782085dea5b1090d57d834e0d4c7d0bc778a784349b74f9ef89ce84fcfaef"}}, {"rule": 2, "type": "equivalent", "target": "bb7f7a3657690f7a6c75d641dcc65860", "evidence": {"same_day": true, "patch_ids": ["aceec90d9a86d1b6d642dda660eebd6f"], "statement_hash": "026782085dea5b1090d57d834e0d4c7d0bc778a784349b74f9ef89ce84fcfaef"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ba3b5897c3d85845178cb5eee8dfba01", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复触发器结果关系信息缓存的错误逻辑", "evidence": {"same_day": true, "patch_ids": ["aceec90d9a86d1b6d642dda660eebd6f"], "statement_hash": "026782085dea5b1090d57d834e0d4c7d0bc778a784349b74f9ef89ce84fcfaef"}, "url": "/docs/compare/?release=17.7#17.7-6305949a00dd4b54", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "7ba23c07eaeb399e352fe32a704464e6", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复触发器结果关系信息缓存的错误逻辑", "evidence": {"same_day": true, "patch_ids": ["aceec90d9a86d1b6d642dda660eebd6f"], "statement_hash": "026782085dea5b1090d57d834e0d4c7d0bc778a784349b74f9ef89ce84fcfaef"}, "url": "/docs/compare/?release=16.11#16.11-b434454c9c408c94", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "bb7f7a3657690f7a6c75d641dcc65860", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复触发器结果关系信息缓存的错误逻辑", "evidence": {"same_day": true, "patch_ids": ["aceec90d9a86d1b6d642dda660eebd6f"], "statement_hash": "026782085dea5b1090d57d834e0d4c7d0bc778a784349b74f9ef89ce84fcfaef"}, "url": "/docs/compare/?release=15.15#15.15-c8e0a3ed2fb6c04a", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}]}, {"id": "18.1-4fabed399ac5f947", "cves": [], "html": "<p>修复在分区表上执行 EvalPlanQual 重新检查期间发生的崩溃（David Rowley、Amit Langote）<a href=\"https://postgr.es/c/1296dcf18\">§</a></p>", "text": "修复在分区表上执行 EvalPlanQual 重新检查期间发生的崩溃（David Rowley、Amit Langote）§", "title": "修复在分区表上执行 EvalPlanQual 重新检查期间发生的崩溃", "commits": ["1296dcf18"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "2bb2eab84c9d0aef8280d0f562760f0381fcab6030475f916b6ae62ee941d8c4", "section_path": ["变更"], "commit_groups": [["1296dcf18", "905e932f0"]], "identity_text": "Fix crash during EvalPlanQual rechecks on partitioned tables (David Rowley, Amit Langote)", "commit_aliases": ["1296dcf18", "905e932f0"], "source_commits": ["1296dcf18"], "source_entry_id": "18.1/changes/017", "db_id": "a0c4022eb806e7bff85e5e4f45d350da", "patch_ids": ["cfaa90e1fdcf18ac6f3f0eafaf77ada8"], "statement_hash": "9669bf1f77810bf9ebd51d3fc0ea281b8ca1e3a90f20cee99402fbc39242eea5", "relations": [], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-1ad36d259b8c4e29", "cves": [], "html": "<p>修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理（Masahiko Sawada，Etsuro Fujita）<a href=\"https://postgr.es/c/b14144325\">§</a></p>\n<p>在这种情况下，应该正常调用外部或自定义访问方法，但之前并未发生，通常会导致崩溃。</p>", "text": "修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理（Masahiko Sawada，Etsuro Fujita）§ 在这种情况下，应该正常调用外部或自定义访问方法，但之前并未发生，通常会导致崩溃。", "title": "修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理", "commits": ["b14144325"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "68bd82f61fd04a0e7bc6338db072a1418250c1160d5cc3607107def8305a4549", "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": ["b14144325"], "source_entry_id": "18.1/changes/018", "db_id": "3a7c71a715168a6fe003c04ad6530b01", "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": "a830cee6374ea38a3cf10eb53388b93d", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}}, {"rule": 2, "type": "equivalent", "target": "b4c88efd3c63eeaee70001c500504502", "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": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "b4c88efd3c63eeaee70001c500504502", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复没有准备替代本地连接计划用于 EPQ 的外部或自定义连接的 EvalPlanQual 处理", "evidence": {"same_day": true, "patch_ids": ["4bc4b3eb3e3195a1d0e412e0c9371242"], "statement_hash": "7701ad14c992b95ece421f86b54788df6de9143a62d4e7ff9ea0b08caf2163f5"}, "url": "/docs/compare/?release=14.20#14.20-9d1b9820ad3ea33d", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-570dc654ef6dd9a2", "cves": [], "html": "<p>避免在 <code>DETACH CONCURRENTLY</code> 期间重复 hash 分区约束（Haiyang Li）<a href=\"https://postgr.es/c/08c037dff\">§</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": ["08c037dff"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "7e59da2bb8190713c1b6aaecda2d276233b7a05b5210c8dcd12d3e20b33779f5", "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": ["08c037dff"], "source_entry_id": "18.1/changes/019", "db_id": "565728557128822df30c43191a2dbfad", "patch_ids": ["c7b7e5ea3577b3d900e06cd112a51878"], "statement_hash": "d5965bdd5734479eaa6212fe4307924b5fa45a4534d11494cdf8e41c2b84b97f", "relations": [{"rule": 2, "type": "equivalent", "target": "417982fb5fc35be16b96cd9dffae86f4", "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": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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"}, {"db_id": "417982fb5fc35be16b96cd9dffae86f4", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "避免在 DETACH CONCURRENTLY 期间重复 hash 分区约束", "evidence": {"same_day": true, "patch_ids": ["c7b7e5ea3577b3d900e06cd112a51878"], "statement_hash": "d5965bdd5734479eaa6212fe4307924b5fa45a4534d11494cdf8e41c2b84b97f"}, "url": "/docs/compare/?release=14.20#14.20-bf89a39228e4a4ca", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6"}]}, {"id": "18.1-6edf5c69ea4392a4", "cves": [], "html": "<p>禁止在分区键中使用生成列（Jian He，Ashutosh Bapat）<a href=\"https://postgr.es/c/ba99c9491\">§</a></p>\n<p>这本来已经不被允许，但检查遗漏了一些情况，例如列引用隐含在整行引用中的情况。</p>", "text": "禁止在分区键中使用生成列（Jian He，Ashutosh Bapat）§ 这本来已经不被允许，但检查遗漏了一些情况，例如列引用隐含在整行引用中的情况。", "title": "禁止在分区键中使用生成列", "commits": ["ba99c9491"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "c34ef2c7cbe47429ce0a76c1aa2caa7f267cdc4c1707565553f5dc4cd8576ddd", "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": ["ba99c9491"], "source_entry_id": "18.1/changes/020", "db_id": "a8595e24703e1deff3ce7b6fe56d02db", "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": "adb9f0cae7cdccc24195248ff3704b74", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}}], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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": "adb9f0cae7cdccc24195248ff3704b74", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "禁止在分区键中使用生成列", "evidence": {"same_day": true, "patch_ids": ["26b7dee3d5b5a82dd804a2b2e1ecd780"], "statement_hash": "5dded4849247ab37d7f44a8fd133cdab652ee07cbfab3751bd8d4ffcbdd7e99f"}, "url": "/docs/compare/?release=14.20#14.20-e39243838bbc984a", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-f93c705391287b77", "cves": [], "html": "<p>禁止在 <code>COPY ... FROM ... WHERE</code> 子句中使用生成列（Peter Eisentraut，Jian He）<a href=\"https://postgr.es/c/0f9e0068b\">§</a></p>\n<p>以前，尝试引用此类列会导致不正确的行为或晦涩的错误消息，因为在执行 <code>WHERE</code> 过滤时生成列尚未计算。</p>", "text": "禁止在 COPY ... FROM ... WHERE 子句中使用生成列（Peter Eisentraut，Jian He）§ 以前，尝试引用此类列会导致不正确的行为或晦涩的错误消息，因为在执行 WHERE 过滤时生成列尚未计算。", "title": "禁止在 COPY ... FROM ... WHERE 子句中使用生成列", "commits": ["0f9e0068b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "96a32620f5a6b43836e51a7fab983dad5c9aa7e9311a79e3a3119442e89844ac", "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": ["0f9e0068b"], "source_entry_id": "18.1/changes/021", "db_id": "476c1d31c3b2a4f231e061a533173538", "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6", "relations": [{"rule": 2, "type": "equivalent", "target": "688b8d0a8d86ff5dfc64586a1e76d364", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}}, {"rule": 2, "type": "equivalent", "target": "7910dd8ca51fdddfcd65a301d722ec44", "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": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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": "7910dd8ca51fdddfcd65a301d722ec44", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "禁止在 COPY ... FROM ... WHERE 子句中使用生成列", "evidence": {"same_day": true, "patch_ids": ["288ff18af81cea964c777c267d44976b"], "statement_hash": "3e3e53285ed4984ded0685482e76482c19c858ab07dd559f8421550b25cb5dc6"}, "url": "/docs/compare/?release=14.20#14.20-4a1e5b283bd94af8", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-8cabd69c2fc9923e", "cves": [], "html": "<p>如果某列带有标记为无效的非空约束，则禁止将其设置为 identity 列（Jian He）<a href=\"https://postgr.es/c/d9ffc2729\">§</a></p>\n<p>identity 列必须是非空的，但先前的检查漏掉了这一边界情况。</p>", "text": "如果某列带有标记为无效的非空约束，则禁止将其设置为 identity 列（Jian He）§ identity 列必须是非空的，但先前的检查漏掉了这一边界情况。", "title": "如果某列带有标记为无效的非空约束，则禁止将其设置为 identity 列", "commits": ["d9ffc2729"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "2363f4d7bfd86ce33ae953ccf4e4c56d7128d64840b12913cbbdb8adf4dc9418", "section_path": ["变更"], "commit_groups": [["cf8be0225", "d9ffc2729"]], "identity_text": "Prevent setting a column as identity if it has a not-null constraint but the constraint is marked as invalid (Jian He) Identity columns must be not-null, but the check for that missed this edge case.", "commit_aliases": ["cf8be0225", "d9ffc2729"], "source_commits": ["d9ffc2729"], "source_entry_id": "18.1/changes/022", "db_id": "1cc2ad2f1d77c84c94244519b7c21f49", "patch_ids": ["98b878ffaecd78024f87c7da5729ffae"], "statement_hash": "eb006304791e8ea1548b9c4a7928a374c1b1a1f0d2a2219dc90b3744065f5b53", "relations": [], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-546fe16e34bc5978", "cves": [], "html": "<p>避免并行清理中潜在的释放后使用问题（Kevin Oommen Anish）<a href=\"https://postgr.es/c/76613b539\">§</a></p>\n<p>该缺陷在标准构建中似乎没有实际后果，但理论上仍存在风险。</p>", "text": "避免并行清理中潜在的释放后使用问题（Kevin Oommen Anish）§ 该缺陷在标准构建中似乎没有实际后果，但理论上仍存在风险。", "title": "避免并行清理中潜在的释放后使用问题", "commits": ["76613b539"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "794966efecdda80a55b270d172d2da28726e6f70a5a5522d7467b5a2506ac2d1", "section_path": ["变更"], "commit_groups": [["3549ffb6a", "54ab74865", "76613b539"]], "identity_text": "Avoid potential use-after-free in parallel vacuum (Kevin Oommen Anish) This bug seems to have no consequences in standard builds, but it's theoretically a hazard.", "commit_aliases": ["3549ffb6a", "54ab74865", "76613b539"], "source_commits": ["76613b539"], "source_entry_id": "18.1/changes/023", "db_id": "65b586522e7240dd1f867d7850ea61db", "patch_ids": ["d0dc5f67240a1a53daeb03d7af4ee34b"], "statement_hash": "e224742c5033ba7b9e4b42ddebc1f168038cd08a476019b13fb8d75e3b5bc706", "relations": [{"rule": 2, "type": "equivalent", "target": "f0dbb32056abe3b3dfdd78472b7f273b", "evidence": {"same_day": true, "patch_ids": ["d0dc5f67240a1a53daeb03d7af4ee34b"], "statement_hash": "e224742c5033ba7b9e4b42ddebc1f168038cd08a476019b13fb8d75e3b5bc706"}}], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f0dbb32056abe3b3dfdd78472b7f273b", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免并行清理中潜在的释放后使用问题", "evidence": {"same_day": true, "patch_ids": ["d0dc5f67240a1a53daeb03d7af4ee34b"], "statement_hash": "e224742c5033ba7b9e4b42ddebc1f168038cd08a476019b13fb8d75e3b5bc706"}, "url": "/docs/compare/?release=17.7#17.7-8f2649a92990dc78", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}]}, {"id": "18.1-4356f370a232f620", "cves": [], "html": "<p>修复 <code>pg_temp</code> 中统计对象的可见性检查（Noah Misch）<a href=\"https://postgr.es/c/d024160ff\">§</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": ["d024160ff"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "af2707e6586fbda4dcfaf8a61041a506fb3f6863d0bde7c5e7db840d18aa8d33", "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": ["d024160ff"], "source_entry_id": "18.1/changes/024", "db_id": "20af10bca614d2e3d01c9b7d89ca87a3", "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": "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": "875f65c32c6f6827a1f949b0b14ab7c2", "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": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "875f65c32c6f6827a1f949b0b14ab7c2", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复 pg_temp 中统计对象的可见性检查", "evidence": {"same_day": true, "patch_ids": ["92d91f4ff61990d871fd5034eef653d7"], "statement_hash": "6ab2a16a11fdf9756b132b2aa3b08c0bc2821a0def25ca6fd133def84e610d24"}, "url": "/docs/compare/?release=14.20#14.20-a62bf543526a33a4", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-c10f4000798b8d9f", "cves": [], "html": "<p>修复 WAL 重放数据库创建过程中的轻微内存泄漏（Nathan Bossart）<a href=\"https://postgr.es/c/33e7b4a7c\">§</a></p>", "text": "修复 WAL 重放数据库创建过程中的轻微内存泄漏（Nathan Bossart）§", "title": "修复 WAL 重放数据库创建过程中的轻微内存泄漏", "commits": ["33e7b4a7c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "a381a6bd43d267b9f76ad047254634c9c95e037e775f93f4d28201deb4381cb1", "section_path": ["变更"], "commit_groups": [["23b316c36", "33e7b4a7c", "c72b5c536", "f9993ac64", "ff47f9c16"]], "identity_text": "Fix minor memory leak during WAL replay of database creation (Nathan Bossart)", "commit_aliases": ["23b316c36", "33e7b4a7c", "c72b5c536", "f9993ac64", "ff47f9c16"], "source_commits": ["33e7b4a7c"], "source_entry_id": "18.1/changes/025", "db_id": "0e7b5976bd913c25991a5ff549ac5f81", "patch_ids": ["7b3c9562820ec298d794a69d51573920"], "statement_hash": "aaf589db3ca0547c1138682c80ba4c30d7666e77fdcd70b3a9824de7014ad03c", "relations": [{"rule": 2, "type": "equivalent", "target": "07b0f2ed9748f2ad84f75138a8f693ab", "evidence": {"same_day": true, "patch_ids": ["7b3c9562820ec298d794a69d51573920"], "statement_hash": "aaf589db3ca0547c1138682c80ba4c30d7666e77fdcd70b3a9824de7014ad03c"}}, {"rule": 2, "type": "equivalent", "target": "4be639cfbce3dac014c7f3139f4beaa7", "evidence": {"same_day": true, "patch_ids": ["7b3c9562820ec298d794a69d51573920"], "statement_hash": "aaf589db3ca0547c1138682c80ba4c30d7666e77fdcd70b3a9824de7014ad03c"}}, {"rule": 2, "type": "equivalent", "target": "52d97c7cf8fbcce26fef4b0c910e4bf6", "evidence": {"same_day": true, "patch_ids": ["7b3c9562820ec298d794a69d51573920"], "statement_hash": "aaf589db3ca0547c1138682c80ba4c30d7666e77fdcd70b3a9824de7014ad03c"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4be639cfbce3dac014c7f3139f4beaa7", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 WAL 重放数据库创建过程中的轻微内存泄漏", "evidence": {"same_day": true, "patch_ids": ["7b3c9562820ec298d794a69d51573920"], "statement_hash": "aaf589db3ca0547c1138682c80ba4c30d7666e77fdcd70b3a9824de7014ad03c"}, "url": "/docs/compare/?release=17.7#17.7-200457c819df1105", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "07b0f2ed9748f2ad84f75138a8f693ab", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 WAL 重放数据库创建过程中的轻微内存泄漏", "evidence": {"same_day": true, "patch_ids": ["7b3c9562820ec298d794a69d51573920"], "statement_hash": "aaf589db3ca0547c1138682c80ba4c30d7666e77fdcd70b3a9824de7014ad03c"}, "url": "/docs/compare/?release=16.11#16.11-2e0c5a7298bb48a1", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "52d97c7cf8fbcce26fef4b0c910e4bf6", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 WAL 重放数据库创建过程中的轻微内存泄漏", "evidence": {"same_day": true, "patch_ids": ["7b3c9562820ec298d794a69d51573920"], "statement_hash": "aaf589db3ca0547c1138682c80ba4c30d7666e77fdcd70b3a9824de7014ad03c"}, "url": "/docs/compare/?release=15.15#15.15-e3961aff6d69ca4a", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}]}, {"id": "18.1-b311e5c7746f8633", "cves": [], "html": "<p>修复 <code>pg_stat_replication</code> 视图中复制延迟的错误报告（Fujii Masao）<a href=\"https://postgr.es/c/9670032cc\">§</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": ["9670032cc"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "4072bb158c7920b7b4bb50d95772901eb7bd28f35a45d14007539c13c9364213", "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": ["9670032cc"], "source_entry_id": "18.1/changes/026", "db_id": "a8414849a53aabf5dc53c77b1324c0d5", "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": "7ca4b40fd7ad687ba5827a90faa10c14", "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"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "7ca4b40fd7ad687ba5827a90faa10c14", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复 pg_stat_replication 视图中复制延迟的错误报告", "evidence": {"same_day": true, "patch_ids": ["8db46f90292912189aba63435360de0e"], "statement_hash": "64f01eee07baa6edbcfc9de58c6f4a1ee0e57ae42455a11de26eb55f15310c9b"}, "url": "/docs/compare/?release=14.20#14.20-e6ac77ccd9c8c250", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-f9c71c1aa9e41b8f", "cves": [], "html": "<p>避免关于无效 <code>primary_slot_name</code> 设置的重复日志消息（Fujii Masao）<a href=\"https://postgr.es/c/6ff7ba9fe\">§</a></p>", "text": "避免关于无效 primary_slot_name 设置的重复日志消息（Fujii Masao）§", "title": "避免关于无效 primary_slot_name 设置的重复日志消息", "commits": ["6ff7ba9fe"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "9a05fa4790b674064b1a98525583db56a4e66371c149f67d363856aaf68a29d3", "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": ["6ff7ba9fe"], "source_entry_id": "18.1/changes/027", "db_id": "d99230cf9e376e84d70ff48c950dfbd4", "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": "9c77ea90dcad71a57f74e096fec194cc", "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"}}], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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": "9c77ea90dcad71a57f74e096fec194cc", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "避免关于无效 primary_slot_name 设置的重复日志消息", "evidence": {"same_day": true, "patch_ids": ["9c341da983ece804e7edd31cc99a78ce"], "statement_hash": "0ffd9e32fd1eef45d9928e6dee3e2be177442a1dda1f90e9f7218a34bb08d146"}, "url": "/docs/compare/?release=14.20#14.20-329643b68626e90f", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-54c0160872575046", "cves": [], "html": "<p>当 <code>synchronized_standby_slots</code> 引用了不存在的复制槽时，避免发生故障（Shlok Kyal）<a href=\"https://postgr.es/c/b45a8d7d8\">§</a></p>", "text": "当 synchronized_standby_slots 引用了不存在的复制槽时，避免发生故障（Shlok Kyal）§", "title": "当 synchronized_standby_slots 引用了不存在的复制槽时，避免发生故障", "commits": ["b45a8d7d8"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "0f406430afac78443128876f868a55c777f0402b61818a0d607be1c70acbd2e0", "section_path": ["变更"], "commit_groups": [["0024f5a10", "b45a8d7d8", "e0dc4bbfb"]], "identity_text": "Avoid failures when synchronized_standby_slots references nonexistent replication slots (Shlok Kyal)", "commit_aliases": ["0024f5a10", "b45a8d7d8", "e0dc4bbfb"], "source_commits": ["b45a8d7d8"], "source_entry_id": "18.1/changes/028", "db_id": "b7ea92ca342575d1da32619d7a74920a", "patch_ids": ["d1630eb2f319a290f48352db21038c81"], "statement_hash": "1adb1692f54e8f619f583ed21023cf15f3e54cd145c1a48e863700b08b0c1d4a", "relations": [{"rule": 2, "type": "equivalent", "target": "e94415bf2bf6f74daabb0dd238831f93", "evidence": {"same_day": true, "patch_ids": ["d1630eb2f319a290f48352db21038c81"], "statement_hash": "1adb1692f54e8f619f583ed21023cf15f3e54cd145c1a48e863700b08b0c1d4a"}}], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e94415bf2bf6f74daabb0dd238831f93", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "当 synchronized_standby_slots 引用了不存在的复制槽时，避免发生故障", "evidence": {"same_day": true, "patch_ids": ["d1630eb2f319a290f48352db21038c81"], "statement_hash": "1adb1692f54e8f619f583ed21023cf15f3e54cd145c1a48e863700b08b0c1d4a"}, "url": "/docs/compare/?release=17.7#17.7-256c71c4a8bc7974", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}]}, {"id": "18.1-a601bee3c15f74a5", "cves": [], "html": "<p>在写入复制槽状态到磁盘失败后删除未完成的槽状态文件（Michael Paquier）<a href=\"https://postgr.es/c/9a6ea00ac\">§</a></p>\n<p>以前，磁盘空间不足等失败会留下一个临时 <code>state.tmp</code> 文件。这是有问题的，因为它会阻止所有后续写入状态的尝试，需要手动干预来清理。</p>", "text": "在写入复制槽状态到磁盘失败后删除未完成的槽状态文件（Michael Paquier）§ 以前，磁盘空间不足等失败会留下一个临时 state.tmp 文件。这是有问题的，因为它会阻止所有后续写入状态的尝试，需要手动干预来清理。", "title": "在写入复制槽状态到磁盘失败后删除未完成的槽状态文件", "commits": ["9a6ea00ac"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "9a2261e57d450c78d7ff2e36d822d6f24474a1f6410381427fd18ddb7cc75686", "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": ["9a6ea00ac"], "source_entry_id": "18.1/changes/029", "db_id": "88acef5002288cf26f90d74ea72f7dd0", "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": "8f6b3684b0c7ebef23c4baebfd451ab8", "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": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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": "8f6b3684b0c7ebef23c4baebfd451ab8", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "在写入复制槽状态到磁盘失败后删除未完成的槽状态文件", "evidence": {"same_day": true, "patch_ids": ["6f111c88b72506ba3e2d5c84c1b1cfcf"], "statement_hash": "c72e99f08db7312d40c0813e006b0820aa3bd77bf507b6561ee3def67607fe72"}, "url": "/docs/compare/?release=14.20#14.20-790adc94b2e3aa97", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-b4b351d19dc05865", "cves": [], "html": "<p>修复逻辑复制并行应用工作进程中锁超时信号的错误处理（Hayato Kuroda）<a href=\"https://postgr.es/c/37fc5de43\">§</a></p>\n<p>同一个信号编号被同时用于工作进程关闭和锁超时，导致混淆。</p>", "text": "修复逻辑复制并行应用工作进程中锁超时信号的错误处理（Hayato Kuroda）§ 同一个信号编号被同时用于工作进程关闭和锁超时，导致混淆。", "title": "修复逻辑复制并行应用工作进程中锁超时信号的错误处理", "commits": ["37fc5de43"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "714e58270e4ca5f91f9e2d91bc61604ea15cf638406700f413135f063d7942c8", "section_path": ["变更"], "commit_groups": [["2f6e1a490", "37fc5de43", "a54c7a113", "e41d954da"]], "identity_text": "Fix mishandling of lock timeout signals in parallel apply workers for logical replication (Hayato Kuroda) The same signal number was being used for both worker shutdown and lock timeout, leading to confusion.", "commit_aliases": ["2f6e1a490", "37fc5de43", "a54c7a113", "e41d954da"], "source_commits": ["37fc5de43"], "source_entry_id": "18.1/changes/030", "db_id": "943decff2b98c926290fdf650e4a0edc", "patch_ids": ["b3db903786744763190489d6bf47d765"], "statement_hash": "eeca05449e3cc33c400da91c2fe568d3d74ef1488cd64e05a219a1d4578a1575", "relations": [{"rule": 2, "type": "equivalent", "target": "50ee30b81e767311733d723cd36948c0", "evidence": {"same_day": true, "patch_ids": ["b3db903786744763190489d6bf47d765"], "statement_hash": "eeca05449e3cc33c400da91c2fe568d3d74ef1488cd64e05a219a1d4578a1575"}}, {"rule": 2, "type": "equivalent", "target": "b1d5f444628e0aea3eb678b0a2d29dfa", "evidence": {"same_day": true, "patch_ids": ["b3db903786744763190489d6bf47d765"], "statement_hash": "eeca05449e3cc33c400da91c2fe568d3d74ef1488cd64e05a219a1d4578a1575"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "50ee30b81e767311733d723cd36948c0", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复逻辑复制并行应用工作进程中锁超时信号的错误处理", "evidence": {"same_day": true, "patch_ids": ["b3db903786744763190489d6bf47d765"], "statement_hash": "eeca05449e3cc33c400da91c2fe568d3d74ef1488cd64e05a219a1d4578a1575"}, "url": "/docs/compare/?release=17.7#17.7-2f08c0b5ad93baa5", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "b1d5f444628e0aea3eb678b0a2d29dfa", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复逻辑复制并行应用工作进程中锁超时信号的错误处理", "evidence": {"same_day": true, "patch_ids": ["b3db903786744763190489d6bf47d765"], "statement_hash": "eeca05449e3cc33c400da91c2fe568d3d74ef1488cd64e05a219a1d4578a1575"}, "url": "/docs/compare/?release=16.11#16.11-acfdc23367087fb5", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}]}, {"id": "18.1-a20d69b97abaf6de", "cves": [], "html": "<p>避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭（Xuneng Zhou）<a href=\"https://postgr.es/c/a14201073\">§</a></p>\n<p>在时间线切换期间，备库的 WAL 接收进程应保持活动状态，等待新的 WAL 流式传输起始点。相反，它反复关闭并立即重新启动，这可能会混淆状态监控代码。</p>", "text": "避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭（Xuneng Zhou）§ 在时间线切换期间，备库的 WAL 接收进程应保持活动状态，等待新的 WAL 流式传输起始点。相反，它反复关闭并立即重新启动，这可能会混淆状态监控代码。", "title": "避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭", "commits": ["a14201073"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "1e48a276127802a798f2d83743e6434e202fd58ee0a2faa8438270cc38bed7ca", "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": ["a14201073"], "source_entry_id": "18.1/changes/031", "db_id": "5e6622b056fdeebae1797bcd6bab73d8", "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": "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"}}, {"rule": 2, "type": "equivalent", "target": "c392b0b8a9a1720a5f28a1d62993d15b", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}}], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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": "c392b0b8a9a1720a5f28a1d62993d15b", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "避免从流式传输切换到归档 WAL 源时不必要的 WAL 接收进程关闭", "evidence": {"same_day": true, "patch_ids": ["c329a1ce9ca7c1f3b46341c92f972ea9"], "statement_hash": "94e86829e542dbec362b5314cb0d0420170b66f94aea79d642bd1905c93f5d74"}, "url": "/docs/compare/?release=14.20#14.20-c26203a903d008e3", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-5ac1192568f3b470", "cves": [], "html": "<p>修复 <span>pgoutput</span> 逻辑解码插件维护的关系同步缓存中的释放后使用问题（Vignesh C，Masahiko Sawada）<a href=\"https://postgr.es/c/32b95fc71\">§</a></p>\n<p>逻辑解码期间的错误可能导致同一会话中后续逻辑解码尝试崩溃。此情况仅在通过 SQL 函数调用 <span>pgoutput</span> 时可以触发。</p>", "text": "修复 pgoutput 逻辑解码插件维护的关系同步缓存中的释放后使用问题（Vignesh C，Masahiko Sawada）§ 逻辑解码期间的错误可能导致同一会话中后续逻辑解码尝试崩溃。此情况仅在通过 SQL 函数调用 pgoutput 时可以触发。", "title": "修复 pgoutput 逻辑解码插件维护的关系同步缓存中的释放后使用问题", "commits": ["32b95fc71"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "5e0d3bf538ab0c71063d21857506abb59dbd382251a7f9371a0e85c8a0ca57f3", "section_path": ["变更"], "commit_groups": [["32b95fc71", "a61592253", "b07682bce", "b46efe904", "c40761759"]], "identity_text": "Fix use-after-free issue in the relation synchronization cache maintained by the pgoutput logical decoding plugin (Vignesh C, Masahiko Sawada) An error during logical decoding could result in crashes in subsequent logical decoding attempts in the same session. The case is only reachable when pgoutput is invoked via SQL functions.", "commit_aliases": ["32b95fc71", "a61592253", "b07682bce", "b46efe904", "c40761759"], "source_commits": ["32b95fc71"], "source_entry_id": "18.1/changes/032", "db_id": "01678f172fb01945bdf37dee98659abb", "patch_ids": ["f0d90b350350451bd966913a51e4879b"], "statement_hash": "a5100d60852834442dddf7c470eb3398c76e0d2de98829a3277bf107f97642fc", "relations": [{"rule": 2, "type": "equivalent", "target": "88eeed6b80c39786442df0b17dadee4a", "evidence": {"same_day": true, "patch_ids": ["f0d90b350350451bd966913a51e4879b"], "statement_hash": "a5100d60852834442dddf7c470eb3398c76e0d2de98829a3277bf107f97642fc"}}, {"rule": 2, "type": "equivalent", "target": "b5c5a46598eb51eef76d3c62dc981396", "evidence": {"same_day": true, "patch_ids": ["f0d90b350350451bd966913a51e4879b"], "statement_hash": "a5100d60852834442dddf7c470eb3398c76e0d2de98829a3277bf107f97642fc"}}, {"rule": 2, "type": "equivalent", "target": "bd8536eb35145d43f731406b08299135", "evidence": {"same_day": true, "patch_ids": ["f0d90b350350451bd966913a51e4879b"], "statement_hash": "a5100d60852834442dddf7c470eb3398c76e0d2de98829a3277bf107f97642fc"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b5c5a46598eb51eef76d3c62dc981396", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 pgoutput 逻辑解码插件维护的关系同步缓存中的释放后使用问题", "evidence": {"same_day": true, "patch_ids": ["f0d90b350350451bd966913a51e4879b"], "statement_hash": "a5100d60852834442dddf7c470eb3398c76e0d2de98829a3277bf107f97642fc"}, "url": "/docs/compare/?release=17.7#17.7-db1ad25a90aef00e", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "bd8536eb35145d43f731406b08299135", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "修复 pgoutput 逻辑解码插件维护的关系同步缓存中的释放后使用问题", "evidence": {"same_day": true, "patch_ids": ["f0d90b350350451bd966913a51e4879b"], "statement_hash": "a5100d60852834442dddf7c470eb3398c76e0d2de98829a3277bf107f97642fc"}, "url": "/docs/compare/?release=16.11#16.11-83edf36bdfedb497", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "88eeed6b80c39786442df0b17dadee4a", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "修复 pgoutput 逻辑解码插件维护的关系同步缓存中的释放后使用问题", "evidence": {"same_day": true, "patch_ids": ["f0d90b350350451bd966913a51e4879b"], "statement_hash": "a5100d60852834442dddf7c470eb3398c76e0d2de98829a3277bf107f97642fc"}, "url": "/docs/compare/?release=15.15#15.15-8b79db713221db62", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}]}, {"id": "18.1-11b960ad24efa0be", "cves": [], "html": "<p>避免不必要地失效逻辑复制槽（Bertrand Drouvot）<a href=\"https://postgr.es/c/bf3dba508\">§</a></p>", "text": "避免不必要地失效逻辑复制槽（Bertrand Drouvot）§", "title": "避免不必要地失效逻辑复制槽", "commits": ["bf3dba508"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "8314a67474fb2faf2aa29f6d4a6461256fd1f4b2de6a62e94ae410489e1838d1", "section_path": ["变更"], "commit_groups": [["bf3dba508", "d43209468", "e3714dc05", "f3fb6bc9f"]], "identity_text": "Avoid unnecessary invalidation of logical replication slots (Bertrand Drouvot)", "commit_aliases": ["bf3dba508", "d43209468", "e3714dc05", "f3fb6bc9f"], "source_commits": ["bf3dba508"], "source_entry_id": "18.1/changes/033", "db_id": "dbc091f15023788511302d163d035b51", "patch_ids": ["6ea9f1034627e064a66a9993eefe3326"], "statement_hash": "2258d0e5693992de151b50019fd28e9463cd70463c082a7437cf067dd3c0016c", "relations": [{"rule": 2, "type": "equivalent", "target": "cb9ea43000f5f0564c0ad169585ea59f", "evidence": {"same_day": true, "patch_ids": ["6ea9f1034627e064a66a9993eefe3326"], "statement_hash": "2258d0e5693992de151b50019fd28e9463cd70463c082a7437cf067dd3c0016c"}}, {"rule": 2, "type": "equivalent", "target": "d82a9dd65733472f8ceb24aa092ce2c1", "evidence": {"same_day": true, "patch_ids": ["6ea9f1034627e064a66a9993eefe3326"], "statement_hash": "2258d0e5693992de151b50019fd28e9463cd70463c082a7437cf067dd3c0016c"}}], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d82a9dd65733472f8ceb24aa092ce2c1", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免不必要地失效逻辑复制槽", "evidence": {"same_day": true, "patch_ids": ["6ea9f1034627e064a66a9993eefe3326"], "statement_hash": "2258d0e5693992de151b50019fd28e9463cd70463c082a7437cf067dd3c0016c"}, "url": "/docs/compare/?release=17.7#17.7-7503f801e6751f4a", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "cb9ea43000f5f0564c0ad169585ea59f", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "避免不必要地失效逻辑复制槽", "evidence": {"same_day": true, "patch_ids": ["6ea9f1034627e064a66a9993eefe3326"], "statement_hash": "2258d0e5693992de151b50019fd28e9463cd70463c082a7437cf067dd3c0016c"}, "url": "/docs/compare/?release=16.11#16.11-1bcfcc46772ad747", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}]}, {"id": "18.1-33661c84650917d0", "cves": [], "html": "<p>在区域设置中恢复对 <code>C</code> 排序规则的特殊处理（Jeff Davis）<a href=\"https://postgr.es/c/3ebea75f9\">§</a></p>\n<p>这修复了后端启动早期、尚未选择数据库之前访问共享系统目录时的一个回归问题。目前尚未发现这会影响 <span>PostgreSQL</span> 核心代码，但某些扩展已因此失效。</p>", "text": "在区域设置中恢复对 C 排序规则的特殊处理（Jeff Davis）§ 这修复了后端启动早期、尚未选择数据库之前访问共享系统目录时的一个回归问题。目前尚未发现这会影响 PostgreSQL 核心代码，但某些扩展已因此失效。", "title": "在区域设置中恢复对 C 排序规则的特殊处理", "commits": ["3ebea75f9"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "5967144f5a9ac390e5f43e37e44136126f8a69ddef70fa46672228f341690c6e", "section_path": ["变更"], "commit_groups": [["3ebea75f9", "d115de9d8"]], "identity_text": "Re-establish special case for C collation in locale setup (Jeff Davis) This fixes a regression in access to shared catalogs early in backend startup, before a database has been selected. It is not known to be a problem for any core PostgreSQL code, but some extensions were broken.", "commit_aliases": ["3ebea75f9", "d115de9d8"], "source_commits": ["3ebea75f9"], "source_entry_id": "18.1/changes/034", "db_id": "f3a09ba6d76319872cf3c57dfe3cbb7f", "patch_ids": ["8a35575852644cce7c43988f09a72271"], "statement_hash": "a7ae6078a0c5cd7c2be592c68fcd68fe554b04a4788ec782c9e11a5f99e01b1d", "relations": [], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-0bab432ae295bddb", "cves": [], "html": "<p>修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印（Bryan Green）<a href=\"https://postgr.es/c/b48ae226e\">§</a></p>\n<p>此代码本来会崩溃或至少打印乱码。但没有此类情况被报告过，这表明这些系统调用的失败极为罕见。</p>", "text": "修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印（Bryan Green）§ 此代码本来会崩溃或至少打印乱码。但没有此类情况被报告过，这表明这些系统调用的失败极为罕见。", "title": "修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印", "commits": ["b48ae226e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "5b3d2f02beb4e4207ef2adb44b13c503bb6ce3715b669e0353ee71a40523866b", "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": ["b48ae226e"], "source_entry_id": "18.1/changes/035", "db_id": "54e06bd3860e1bbda5ac887cf9128e18", "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": "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"}}, {"rule": 2, "type": "equivalent", "target": "fc910ae34d590e376c66274cf6b8087f", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "fc910ae34d590e376c66274cf6b8087f", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复关于检查用户是否具有 Windows 管理员权限时失败消息的错误打印", "evidence": {"same_day": true, "patch_ids": ["d55ac972fc177556ea4a0e974c012182"], "statement_hash": "eaba82bd3ddf1952b1b8d1f5d8eb79c610f601c3b23948c4873ea0e85ca0e1ef"}, "url": "/docs/compare/?release=14.20#14.20-1da5f9c55441affe", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-c00c424726e8c2ba", "cves": [], "html": "<p>避免在使用某些 libsanitizer 选项测试 <span>PostgreSQL</span> 时崩溃（Emmanuel Sibi，Jacob Champion）<a href=\"https://postgr.es/c/6d8acb777\">§</a></p>", "text": "避免在使用某些 libsanitizer 选项测试 PostgreSQL 时崩溃（Emmanuel Sibi，Jacob Champion）§", "title": "避免在使用某些 libsanitizer 选项测试 PostgreSQL 时崩溃", "commits": ["6d8acb777"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "02b71b367fa5b096a4d78c9500bb07dc328a3f881cd84ef6bb00ab944d1b7821", "section_path": ["变更"], "commit_groups": [["6d8acb777", "a9515f294", "c775bf048", "d4baa327a"]], "identity_text": "Avoid crash when attempting to test PostgreSQL with certain libsanitizer options (Emmanuel Sibi, Jacob Champion)", "commit_aliases": ["6d8acb777", "a9515f294", "c775bf048", "d4baa327a"], "source_commits": ["6d8acb777"], "source_entry_id": "18.1/changes/036", "db_id": "78099173e39c6c3e78fe3e6dbd3ae346", "patch_ids": ["0aa2e1766b342d485aa4d51817595af8"], "statement_hash": "8083d2803e957ae96e87e94e8d681a4e2bbd775e61d5de91ea925956e3a45ce9", "relations": [{"rule": 2, "type": "equivalent", "target": "1a27f92e7f186016d17a28e80fd6ba2a", "evidence": {"same_day": true, "patch_ids": ["0aa2e1766b342d485aa4d51817595af8"], "statement_hash": "8083d2803e957ae96e87e94e8d681a4e2bbd775e61d5de91ea925956e3a45ce9"}}, {"rule": 2, "type": "equivalent", "target": "3fe9f73cb5b5abb15f5187f203890f07", "evidence": {"same_day": true, "patch_ids": ["0aa2e1766b342d485aa4d51817595af8"], "statement_hash": "8083d2803e957ae96e87e94e8d681a4e2bbd775e61d5de91ea925956e3a45ce9"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3fe9f73cb5b5abb15f5187f203890f07", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "避免在使用某些 libsanitizer 选项测试 PostgreSQL 时崩溃", "evidence": {"same_day": true, "patch_ids": ["0aa2e1766b342d485aa4d51817595af8"], "statement_hash": "8083d2803e957ae96e87e94e8d681a4e2bbd775e61d5de91ea925956e3a45ce9"}, "url": "/docs/compare/?release=17.7#17.7-9ade7eda82977791", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "1a27f92e7f186016d17a28e80fd6ba2a", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "避免在使用某些 libsanitizer 选项测试 PostgreSQL 时崩溃", "evidence": {"same_day": true, "patch_ids": ["0aa2e1766b342d485aa4d51817595af8"], "statement_hash": "8083d2803e957ae96e87e94e8d681a4e2bbd775e61d5de91ea925956e3a45ce9"}, "url": "/docs/compare/?release=16.11#16.11-7de2c5088616a5bc", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}]}, {"id": "18.1-6ea24c894273b60d", "cves": [], "html": "<p>修复 64 位 Windows 调试构建中虚假的内存上下文检查警告（David Rowley）<a href=\"https://postgr.es/c/af3a79e08\">§</a></p>", "text": "修复 64 位 Windows 调试构建中虚假的内存上下文检查警告（David Rowley）§", "title": "修复 64 位 Windows 调试构建中虚假的内存上下文检查警告", "commits": ["af3a79e08"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "331b95d0ec60c21a82adc672dd67221a36a5f899be5338cdfc4a478771cdb3d1", "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": ["af3a79e08"], "source_entry_id": "18.1/changes/037", "db_id": "8df4cb56b5956e0bcfd2f6b1733b74cc", "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a", "relations": [{"rule": 2, "type": "equivalent", "target": "01aaa14579e082646793b4e27afbf21b", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}}, {"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": "fc378456b09d8aee7ced8ece43c87341", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "01aaa14579e082646793b4e27afbf21b", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复 64 位 Windows 调试构建中虚假的内存上下文检查警告", "evidence": {"same_day": true, "patch_ids": ["61b56c5fae6f5e9db534484ddd08ba36"], "statement_hash": "318257c40de6d58edd2102cd728c1f712d4472c110c6470d0b05fd6cea50be8a"}, "url": "/docs/compare/?release=14.20#14.20-30a0eb01d03d06bf", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-ea24cf69287cae1d", "cves": [], "html": "<p>正确处理 PL/pgSQL 赋值语句中的 <code>GROUP BY DISTINCT</code>（Tom Lane）<a href=\"https://postgr.es/c/78a284b0b\">§</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": ["78a284b0b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "ccb6d64adcdbf2c6e068be824161cde849fbbbabffc0fb6b594d3ca7fa507330", "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": ["78a284b0b"], "source_entry_id": "18.1/changes/038", "db_id": "f25c1bf3d1b0bc45940ba06662dd7fac", "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": "f4fe056566c9e56e900ccb3ae467d6d1", "evidence": {"same_day": true, "patch_ids": ["a73af4d4bc9077b2b6083baf3ae9afa7"], "statement_hash": "4b45bae1f781f46524306017d2565200da9a292424814416e43bb0c51c2b250a"}}], "version": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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"}, {"db_id": "f4fe056566c9e56e900ccb3ae467d6d1", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "正确处理 PL/pgSQL 赋值语句中的 GROUP BY DISTINCT", "evidence": {"same_day": true, "patch_ids": ["a73af4d4bc9077b2b6083baf3ae9afa7"], "statement_hash": "4b45bae1f781f46524306017d2565200da9a292424814416e43bb0c51c2b250a"}, "url": "/docs/compare/?release=14.20#14.20-ad9f2a1d2560df12", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6"}]}, {"id": "18.1-da9fd9dc692db55b", "cves": [], "html": "<p>避免在 PL/Python 中处理 SQL 错误时泄漏内存（Tom Lane）<a href=\"https://postgr.es/c/447a794f6\">§</a></p>\n<p>这修复了在我们之前的小版本中引入的会话生命周期内存泄漏。</p>", "text": "避免在 PL/Python 中处理 SQL 错误时泄漏内存（Tom Lane）§ 这修复了在我们之前的小版本中引入的会话生命周期内存泄漏。", "title": "避免在 PL/Python 中处理 SQL 错误时泄漏内存", "commits": ["447a794f6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "25faaa57d44fc2401c1508fc419ebddb55e64b28ada29d9926422d8ebd635ad6", "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": ["447a794f6"], "source_entry_id": "18.1/changes/039", "db_id": "8ed8073833432a5a8b59221fab2bfd05", "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0", "relations": [{"rule": 2, "type": "equivalent", "target": "1cc5187c2c4ae41cf3accaadaacb20c6", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}}, {"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": "f72d5243e6c8215039615db964cfa0bc", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "1cc5187c2c4ae41cf3accaadaacb20c6", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "避免在 PL/Python 中处理 SQL 错误时泄漏内存", "evidence": {"same_day": true, "patch_ids": ["304183406b9fbfa71ce70fb98dd02b07"], "statement_hash": "9ed1c89d3ad5eea0e6de5ada0081665e4f99165f891937f5603d7020851959b0"}, "url": "/docs/compare/?release=14.20#14.20-c5293fc1ca271610", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-476a2e50c1064c29", "cves": [], "html": "<p>修复 <span>libpq</span> 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题（Ning Wu，Tom Lane）<a href=\"https://postgr.es/c/d83879a32\">§</a></p>\n<p>使用 GSSAPI 加密/解密传输数据的代码未能正确识别连接套接字上的错误条件，因为 Windows 报告这些错误的方式与其他平台不同。这导致在 Windows 上无法建立此类连接。</p>", "text": "修复 libpq 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题（Ning Wu，Tom Lane）§ 使用 GSSAPI 加密/解密传输数据的代码未能正确识别连接套接字上的错误条件，因为 Windows 报告这些错误的方式与其他平台不同。这导致在 Windows 上无法建立此类连接。", "title": "修复 libpq 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题", "commits": ["d83879a32"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "4e01a398b7a3630fc13c41e6ed53709ed17ec704a2fa09b13e0ea903399baa0b", "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": ["d83879a32"], "source_entry_id": "18.1/changes/040", "db_id": "3832ee9d1af37cef22d9ed22d51db616", "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e", "relations": [{"rule": 2, "type": "equivalent", "target": "8a5e4771e1d3efc837da936303fe3e69", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}}, {"rule": 2, "type": "equivalent", "target": "8c6a6507bd4112a04aa052cc681036ab", "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": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "8c6a6507bd4112a04aa052cc681036ab", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复 libpq 在 Windows 上 GSSAPI 逻辑中处理套接字相关错误的问题", "evidence": {"same_day": true, "patch_ids": ["f0205fc96ae7aa099587d15ffc5b8b43"], "statement_hash": "a697933e21baa20247c447c1011997c652387adcb7183a91d2cc940f1de7888e"}, "url": "/docs/compare/?release=14.20#14.20-a0d51aea48560c38", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-3a4e23af29635f95", "cves": [], "html": "<p>修复继承表列上非继承而来的非空约束的转储问题（Dilip Kumar）<a href=\"https://postgr.es/c/0fe07fa11\">§</a></p>\n<p>从早于 v18 的服务器转储时，<span>pg_dump</span> 未能保留这类约束。</p>", "text": "修复继承表列上非继承而来的非空约束的转储问题（Dilip Kumar）§ 从早于 v18 的服务器转储时，pg_dump 未能保留这类约束。", "title": "修复继承表列上非继承而来的非空约束的转储问题", "commits": ["0fe07fa11"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "04f06ec63a25c2d1bf641d23a4aebcbc0991f4c4683b5a54880fd018960bbe46", "section_path": ["变更"], "commit_groups": [["0fe07fa11", "615ff828e", "c945b06d5"]], "identity_text": "Fix dumping of non-inherited not-null constraints on inherited table columns (Dilip Kumar) pg_dump failed to preserve such constraints when dumping from a pre-v18 server.", "commit_aliases": ["0fe07fa11", "615ff828e", "c945b06d5"], "source_commits": ["0fe07fa11"], "source_entry_id": "18.1/changes/041", "db_id": "85612db122ce32a9a8151af8dbfda6f6", "patch_ids": ["db74f7b93632cf3feac193a4a7cb92b1"], "statement_hash": "d1c264837bf2a17f1e917f30c81224f49f46e1a8e41803a62145abbe33b00e90", "relations": [{"rule": 2, "type": "equivalent", "target": "093d5c7edafa8bd73b4b72cdfe2bb656", "evidence": {"same_day": true, "patch_ids": ["db74f7b93632cf3feac193a4a7cb92b1"], "statement_hash": "d1c264837bf2a17f1e917f30c81224f49f46e1a8e41803a62145abbe33b00e90"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "093d5c7edafa8bd73b4b72cdfe2bb656", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复继承表列上非继承而来的非空约束的转储问题", "evidence": {"same_day": true, "patch_ids": ["db74f7b93632cf3feac193a4a7cb92b1"], "statement_hash": "d1c264837bf2a17f1e917f30c81224f49f46e1a8e41803a62145abbe33b00e90"}, "url": "/docs/compare/?release=17.7#17.7-ea1ba6103ffdb14f", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}]}, {"id": "18.1-596e4425a92cbba4", "cves": [], "html": "<p>修复 <span>pg_dump</span> 对外键约束的排序（Álvaro Herrera）<a href=\"https://postgr.es/c/162e70ea0\">§</a></p>\n<p>确保这些数据库对象的顺序一致，如对其他对象类型所做的那样。</p>", "text": "修复 pg_dump 对外键约束的排序（Álvaro Herrera）§ 确保这些数据库对象的顺序一致，如对其他对象类型所做的那样。", "title": "修复 pg_dump 对外键约束的排序", "commits": ["162e70ea0"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "00384e1f4ea3ef405d77d3d12ab30dfec35e04c99d3980730024aa6c0aeda8f8", "section_path": ["变更"], "commit_groups": [["06c1ee6b7", "162e70ea0", "4921a5972", "4cc3b4445", "6062c3db3", "7419c99a2", "d20df9590"]], "identity_text": "Fix pg_dump's sorting of foreign key constraints (Álvaro Herrera) Ensure consistent ordering of these database objects, as was already done for other object types.", "commit_aliases": ["06c1ee6b7", "162e70ea0", "4921a5972", "4cc3b4445", "6062c3db3", "7419c99a2", "d20df9590"], "source_commits": ["162e70ea0"], "source_entry_id": "18.1/changes/042", "db_id": "0e30416d744287728e67dfa91ecd903e", "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"], "statement_hash": "cdf4d041c1de8192b2513985b95aa43b724c20b0cabb65a8b86c1a98ee9fa82c", "relations": [{"rule": 2, "type": "related", "target": "5d051ea674aeb3f3b326a89ded32901f", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}}, {"rule": 2, "type": "related", "target": "5d200915f65582fc2484f8ef24cc008e", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}}, {"rule": 2, "type": "related", "target": "9bedf67fa0860d232401ec8b1b5b9bf5", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}}, {"rule": 2, "type": "related", "target": "9fe254aca98ebddd5297b74ffc1dfbb8", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}}, {"rule": 2, "type": "related", "target": "c1d4d17be6dfafe4eaeda5f8c6d009ad", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9fe254aca98ebddd5297b74ffc1dfbb8", "kind": "related", "version": "17.7", "label": "17.7", "title": "修复 pg_dump 中默认 ACL 和外键约束的排序", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}, "url": "/docs/compare/?release=17.7#17.7-6339fccd8bd64678", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "c1d4d17be6dfafe4eaeda5f8c6d009ad", "kind": "related", "version": "16.11", "label": "16.11", "title": "修复 pg_dump 中默认 ACL 和外键约束的排序", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}, "url": "/docs/compare/?release=16.11#16.11-498c398eb10cb9bf", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "5d200915f65582fc2484f8ef24cc008e", "kind": "related", "version": "15.15", "label": "15.15", "title": "修复 pg_dump 中默认 ACL 和外键约束的排序", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}, "url": "/docs/compare/?release=15.15#15.15-f62e7737dface522", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}, {"db_id": "9bedf67fa0860d232401ec8b1b5b9bf5", "kind": "related", "version": "14.20", "label": "14.20", "title": "修复 pg_dump 中默认 ACL 和外键约束的排序", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}, "url": "/docs/compare/?release=14.20#14.20-cb50539fbd7938eb", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-SECT2-6"}, {"db_id": "5d051ea674aeb3f3b326a89ded32901f", "kind": "related", "version": "13.23", "label": "13.23", "title": "修复 pg_dump 中默认 ACL 和外键约束的排序", "evidence": {"same_day": true, "patch_ids": ["754d79e483197bda5a8bed16ebe180ac"]}, "url": "/docs/compare/?release=13.23#13.23-9e5d6f5c6fe46680", "source_url": "/docs/release/13.23/#id-1.11.6.6.6"}]}, {"id": "18.1-939176032400286d", "cves": [], "html": "<p>修复 <span>pg_dump</span> 和 <span>pg_restore</span> 中数据压缩逻辑的各种错误（Daniel Gustafsson，Tom Lane）<a href=\"https://postgr.es/c/8980c724b\">§</a> <a href=\"https://postgr.es/c/6a4009747\">§</a> <a href=\"https://postgr.es/c/aa1fcd087\">§</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": ["6a4009747", "8980c724b", "aa1fcd087"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "00493561410c0849a110c594a3ee4af2d87a29dcfdfa2c25d12df8526aad92c2", "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": ["6a4009747", "8980c724b", "aa1fcd087"], "source_entry_id": "18.1/changes/043", "db_id": "db9de757f72a73bd069a8b786f5b8120", "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c", "relations": [{"rule": 2, "type": "equivalent", "target": "12b4dd9512e147889a0b739f2bbf5ade", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}}, {"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": "f2020f100f9176ff2a2e8a154fa90714", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "12b4dd9512e147889a0b739f2bbf5ade", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复 pg_dump 和 pg_restore 中数据压缩逻辑的各种错误", "evidence": {"same_day": true, "patch_ids": ["34d09b07f99c29b50cf53cc13100ea10", "4eef07986dd4d4d15a60a29e5a15998d", "c6e514b9bc3c0e05d2b6d2fc63af7a54"], "statement_hash": "e1d5e819c74cee28f2154059267d12fd8e6cfc4c9d5affbaf9861a9f4788798c"}, "url": "/docs/compare/?release=14.20#14.20-a3723630038b7a05", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-cccbae91c7612842", "cves": [], "html": "<p>修复 <span>pgbench</span> 以在启动 <code>COPY</code> 操作时妥善报告错误并退出（Anthonin Bonnefoy）<a href=\"https://postgr.es/c/c00637b5f\">§</a></p>\n<p><span>pgbench</span> 不打算支持这种情况，但之前会进入无限循环。</p>", "text": "修复 pgbench 以在启动 COPY 操作时妥善报告错误并退出（Anthonin Bonnefoy）§ pgbench 不打算支持这种情况，但之前会进入无限循环。", "title": "修复 pgbench 以在启动 COPY 操作时妥善报告错误并退出", "commits": ["c00637b5f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "aaf3614d26baed6713030ff063ec3b445c7c4ca96d13485a346fe73062aa4547", "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": ["c00637b5f"], "source_entry_id": "18.1/changes/044", "db_id": "9a22121acd6baa6a9fb3c0a600e6f745", "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": "69889021274de78f6f31d01dd2b4ab62", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "69889021274de78f6f31d01dd2b4ab62", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复 pgbench 以在启动 COPY 操作时妥善报告错误并退出", "evidence": {"same_day": true, "patch_ids": ["1d095caebd3e91308930c0f046a8615d"], "statement_hash": "b9c6e08e4a0d18e06d97c410e1ac9358f7012ae1718e6db0cee8ee8626b7d2eb"}, "url": "/docs/compare/?release=14.20#14.20-74d6b535346afc2b", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-1b36133d506932f3", "cves": [], "html": "<p>修复 <span>pgbench</span> 的多错误报告（Yugo Nagata）<a href=\"https://postgr.es/c/29aabbc43\">§</a></p>\n<p>在连续两次 <code>PQgetResult</code> 调用都失败的情况下， <span>pgbench</span> 可能报告错误的错误消息。</p>", "text": "修复 pgbench 的多错误报告（Yugo Nagata）§ 在连续两次 PQgetResult 调用都失败的情况下， pgbench 可能报告错误的错误消息。", "title": "修复 pgbench 的多错误报告", "commits": ["29aabbc43"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "0a9a79db7f564ffb66c19c925af523af67d17b9ae6e9af66f58e3de70a75edce", "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": ["29aabbc43"], "source_entry_id": "18.1/changes/045", "db_id": "1d96ae50e45c2122b3c99a80eb6187c3", "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604", "relations": [{"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": "a2a875aae536c9dfb223ec32572d4b63", "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": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "a2a875aae536c9dfb223ec32572d4b63", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复 pgbench 的多错误报告", "evidence": {"same_day": true, "patch_ids": ["a5b36b8efb6e0c7a3849524c97a420e5"], "statement_hash": "5a1e945c185bdfb836e9ed6ea3c7c6dcdc70d0b00e3add742a673cd7968eb604"}, "url": "/docs/compare/?release=14.20#14.20-a5c54ee7ce6a4f00", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-b61a0464e2059730", "cves": [], "html": "<p>在 <span>pgbench</span> 中，修复流水线模式下关于错误的错误断言（Yugo Nagata）<a href=\"https://postgr.es/c/c736808e0\">§</a></p>", "text": "在 pgbench 中，修复流水线模式下关于错误的错误断言（Yugo Nagata）§", "title": "在 pgbench 中，修复流水线模式下关于错误的错误断言", "commits": ["c736808e0"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "77b36d627e09dac6cd7488622db7fe44901325044109792211e10a5388426f46", "section_path": ["变更"], "commit_groups": [["704f51771", "8b2e290bd", "8bb174295", "c736808e0", "f39d9164b"]], "identity_text": "In pgbench, fix faulty assertion about errors in pipeline mode (Yugo Nagata)", "commit_aliases": ["704f51771", "8b2e290bd", "8bb174295", "c736808e0", "f39d9164b"], "source_commits": ["c736808e0"], "source_entry_id": "18.1/changes/046", "db_id": "43ed98fa322ca8711e3dbbd5e9dc0db8", "patch_ids": ["f0e6502c068cd0b05ad542efb11a232c"], "statement_hash": "c50d603a6fb129cae06cebd4c235fac3d99cea47d3329930dbc75796a0ec35f9", "relations": [{"rule": 2, "type": "equivalent", "target": "8c4b9756ea8e54675c2636e769219add", "evidence": {"same_day": true, "patch_ids": ["f0e6502c068cd0b05ad542efb11a232c"], "statement_hash": "c50d603a6fb129cae06cebd4c235fac3d99cea47d3329930dbc75796a0ec35f9"}}, {"rule": 2, "type": "equivalent", "target": "c29def4a30c507bcae5d3354625ab08e", "evidence": {"same_day": true, "patch_ids": ["f0e6502c068cd0b05ad542efb11a232c"], "statement_hash": "c50d603a6fb129cae06cebd4c235fac3d99cea47d3329930dbc75796a0ec35f9"}}, {"rule": 2, "type": "equivalent", "target": "fd360afbc940d89de171ce1ab0838f25", "evidence": {"same_day": true, "patch_ids": ["f0e6502c068cd0b05ad542efb11a232c"], "statement_hash": "c50d603a6fb129cae06cebd4c235fac3d99cea47d3329930dbc75796a0ec35f9"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c29def4a30c507bcae5d3354625ab08e", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "在 pgbench 中，修复流水线模式下关于错误的错误断言", "evidence": {"same_day": true, "patch_ids": ["f0e6502c068cd0b05ad542efb11a232c"], "statement_hash": "c50d603a6fb129cae06cebd4c235fac3d99cea47d3329930dbc75796a0ec35f9"}, "url": "/docs/compare/?release=17.7#17.7-f15c7a567546a9d4", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}, {"db_id": "8c4b9756ea8e54675c2636e769219add", "kind": "equivalent", "version": "16.11", "label": "16.11", "title": "在 pgbench 中，修复流水线模式下关于错误的错误断言", "evidence": {"same_day": true, "patch_ids": ["f0e6502c068cd0b05ad542efb11a232c"], "statement_hash": "c50d603a6fb129cae06cebd4c235fac3d99cea47d3329930dbc75796a0ec35f9"}, "url": "/docs/compare/?release=16.11#16.11-d2c2780bf07f8053", "source_url": "/docs/release/16.11/#RELEASE-16-11-CHANGES"}, {"db_id": "fd360afbc940d89de171ce1ab0838f25", "kind": "equivalent", "version": "15.15", "label": "15.15", "title": "在 pgbench 中，修复流水线模式下关于错误的错误断言", "evidence": {"same_day": true, "patch_ids": ["f0e6502c068cd0b05ad542efb11a232c"], "statement_hash": "c50d603a6fb129cae06cebd4c235fac3d99cea47d3329930dbc75796a0ec35f9"}, "url": "/docs/compare/?release=15.15#15.15-1f69c654f8307395", "source_url": "/docs/release/15.15/#ZH-AUTO-RELEASE-15-SECT2-6"}]}, {"id": "18.1-e9df74682a19abe9", "cves": [], "html": "<p>修复 <span>pg_combinebackup</span> 中每个文件的内存泄漏（Tom Lane）<a href=\"https://postgr.es/c/e2072b47b\">§</a></p>", "text": "修复 pg_combinebackup 中每个文件的内存泄漏（Tom Lane）§", "title": "修复 pg_combinebackup 中每个文件的内存泄漏", "commits": ["e2072b47b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "4beb5cc1ed2c64b638cb70a8db3931edfbd458d919a6d4634c21202e7b74ec70", "section_path": ["变更"], "commit_groups": [["4eb6992af", "9224c3025", "e2072b47b"]], "identity_text": "Fix per-file memory leakage in pg_combinebackup (Tom Lane)", "commit_aliases": ["4eb6992af", "9224c3025", "e2072b47b"], "source_commits": ["e2072b47b"], "source_entry_id": "18.1/changes/047", "db_id": "7e8fa99b0b4955f6b3cb8bd43181225f", "patch_ids": ["4adc1ba9937db7990ee1e4b0eed20095"], "statement_hash": "cfb0b2884d442379e85fa76d1328a0c95c85939f1727ad5b8efc4d89d3dd1b86", "relations": [{"rule": 2, "type": "equivalent", "target": "027928a265dc472699b9bfa81f7bcb4c", "evidence": {"same_day": true, "patch_ids": ["4adc1ba9937db7990ee1e4b0eed20095"], "statement_hash": "cfb0b2884d442379e85fa76d1328a0c95c85939f1727ad5b8efc4d89d3dd1b86"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "027928a265dc472699b9bfa81f7bcb4c", "kind": "equivalent", "version": "17.7", "label": "17.7", "title": "修复 pg_combinebackup 中每个文件的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["4adc1ba9937db7990ee1e4b0eed20095"], "statement_hash": "cfb0b2884d442379e85fa76d1328a0c95c85939f1727ad5b8efc4d89d3dd1b86"}, "url": "/docs/compare/?release=17.7#17.7-b1cf6e244790fd85", "source_url": "/docs/release/17.7/#RELEASE-17-7-CHANGES"}]}, {"id": "18.1-1f106ef831d50ecf", "cves": [], "html": "<p>确保 <code>contrib/pg_buffercache</code> 函数可以被取消（Satyanarayana Narlapuram，Yuhang Qiu）<a href=\"https://postgr.es/c/71aa2e114\">§</a> <a href=\"https://postgr.es/c/0beb7e933\">§</a></p>\n<p>某些代码路径能够长时间运行而不检查中断。</p>", "text": "确保 contrib/pg_buffercache 函数可以被取消（Satyanarayana Narlapuram，Yuhang Qiu）§ § 某些代码路径能够长时间运行而不检查中断。", "title": "确保 contrib/pg_buffercache 函数可以被取消", "commits": ["0beb7e933", "71aa2e114"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "c599c52708a4edefe8f956e7bf25970113653d3e96118a198d838931b6795ad9", "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": ["0beb7e933", "71aa2e114"], "source_entry_id": "18.1/changes/048", "db_id": "23b0ca06794cbfef601b73e5a2401894", "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5", "relations": [{"rule": 2, "type": "equivalent", "target": "3caee2c365e58c61931cc0a6fb332c39", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}}, {"rule": 2, "type": "equivalent", "target": "7400b4918533b966fb90032b2caf5c76", "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": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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": "7400b4918533b966fb90032b2caf5c76", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "确保 contrib/pg_buffercache 函数可以被取消", "evidence": {"same_day": true, "patch_ids": ["d2b70a45c15a7f7e00e59b3284c07ad6", "f86d6a1c7709338528c20336c0252405"], "statement_hash": "344e018da37d95afbc286749fed1e20d7328753b9e73f81484fee0e1e4996dc5"}, "url": "/docs/compare/?release=14.20#14.20-3713d982a4c25a06", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-f8e1ff87a5a4083e", "cves": [], "html": "<p>修复 <code>contrib/pg_prewarm</code> 对索引的权限检查（Ayush Vatsa，Nathan Bossart）<a href=\"https://postgr.es/c/3ccf8e9ac\">§</a> <a href=\"https://postgr.es/c/c29d32d27\">§</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": ["3ccf8e9ac", "c29d32d27"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "186023c491be0cd6fbbca12661f6e4129cfda922dee5307de13c526e36051b90", "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": ["3ccf8e9ac", "c29d32d27"], "source_entry_id": "18.1/changes/049", "db_id": "7129d623484df099235339952f193f4c", "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": "3560cbeb90a220549c8020a4c4e51a43", "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": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "3560cbeb90a220549c8020a4c4e51a43", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复 contrib/pg_prewarm 对索引的权限检查", "evidence": {"same_day": true, "patch_ids": ["593f9867c4bc16279f7375b5d5b7bfbf", "8c7292bf48a3ed03b018b065e91c99c2"], "statement_hash": "63d7be72922345e05e8da847c09e4ceabcc0c7cc62752dd3d2faf59e861df9ef"}, "url": "/docs/compare/?release=14.20#14.20-3c05d58cb93e93c6", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-a7e88dbb0ea69eea", "cves": [], "html": "<p>在 <code>contrib/pg_stat_statements</code> 中，避免当 SQL 语句文本中的两个或多个常量被标记为同一位置时发生崩溃（Sami Imseih、Dmitry Dolgov）<a href=\"https://postgr.es/c/b1635c166\">§</a></p>", "text": "在 contrib/pg_stat_statements 中，避免当 SQL 语句文本中的两个或多个常量被标记为同一位置时发生崩溃（Sami Imseih、Dmitry Dolgov）§", "title": "在 contrib/pg_stat_statements 中，避免当 SQL 语句文本中的两个或多个常量被标记为同一位置时发生崩溃", "commits": ["b1635c166"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "e65713e607c506b7563eb27872a7beba8b3701ef14558d32ca8b3bac3df1388e", "section_path": ["变更"], "commit_groups": [["16edc1b94", "b1635c166"]], "identity_text": "In contrib/pg_stat_statements, avoid crash when two or more constants are marked as having the same location in the SQL statement text (Sami Imseih, Dmitry Dolgov)", "commit_aliases": ["16edc1b94", "b1635c166"], "source_commits": ["b1635c166"], "source_entry_id": "18.1/changes/050", "db_id": "a68f0a28f777789fc34dd952b7f61778", "patch_ids": ["c4d097e6702d0a18bda4d1a8bbc618cf"], "statement_hash": "1bddbef944aed8861f456de07c83405980becf4c45f4baebf912d6a5864ba3ca", "relations": [], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "18.1-e14a404bd57c041c", "cves": [], "html": "<p>使 <code>contrib/pgstattuple</code> 更健壮地处理空页面或无效索引页面（Nitin Motiani）<a href=\"https://postgr.es/c/fc295beb7\">§</a></p>\n<p>将全零页面计为空闲空间，并忽略根据页面特殊空间大小检查判定为无效的页面。B-树索引的代码已经将全零页面计为空闲空间，但 hash 和 gist 的代码会报告错误并退出，这被发现对用户不太友好。同样，使这三种情况在忽略损坏页面而非抛出错误方面保持一致。</p>", "text": "使 contrib/pgstattuple 更健壮地处理空页面或无效索引页面（Nitin Motiani）§ 将全零页面计为空闲空间，并忽略根据页面特殊空间大小检查判定为无效的页面。B-树索引的代码已经将全零页面计为空闲空间，但 hash 和 gist 的代码会报告错误并退出，这被发现对用户不太友好。同样，使这三种情况在忽略损坏页面而非抛出错误方面保持一致。", "title": "使 contrib/pgstattuple 更健壮地处理空页面或无效索引页面", "commits": ["fc295beb7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "4a9c9202864842215eaa32a776e7fc7fc5d43dfb49b5a9dedc863dc9a43b240b", "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": ["fc295beb7"], "source_entry_id": "18.1/changes/051", "db_id": "7cf5a3928b0125574395c382ed52c5b1", "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": "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": "dbdca19037730dda97abc3c0ca87e248", "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": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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": "dbdca19037730dda97abc3c0ca87e248", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "使 contrib/pgstattuple 更健壮地处理空页面或无效索引页面", "evidence": {"same_day": true, "patch_ids": ["1ec2ccb4b684e5f57590aab9c7c2a444"], "statement_hash": "c02e1d95147e0120948e2eb5839f7964fb935bba934375858d2457ca4e09c98d"}, "url": "/docs/compare/?release=14.20#14.20-c4d40eb2b10eae53", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-01cf9fc9542209e8", "cves": [], "html": "<p>加固我们的读写屏障宏以满足 Clang 的要求（Thomas Munro）<a href=\"https://postgr.es/c/f8ccab0e9\">§</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": ["f8ccab0e9"], "section": "变更", "category": "improvement", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "4858e02470ee3ab0e8252521f5fdbd4155778d06053de4dea4a59a9b54e4feee", "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": ["f8ccab0e9"], "source_entry_id": "18.1/changes/052", "db_id": "9973d17e573aa27107b7da92a46de435", "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f", "relations": [{"rule": 2, "type": "equivalent", "target": "0f40c60d2dbfd4f861d301a4bd773172", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}}, {"rule": 2, "type": "equivalent", "target": "1fe492cfff8c21a99fc7f4ba788cd84a", "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": "18.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_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": "0f40c60d2dbfd4f861d301a4bd773172", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "加固我们的读写屏障宏以满足 Clang 的要求", "evidence": {"same_day": true, "patch_ids": ["b4a97942a0ea85e91703f83ee712a3fd"], "statement_hash": "c12ad45ebeb9c503935945a282e17d8d51255745e7eb3b429b9a388f273c231f"}, "url": "/docs/compare/?release=14.20#14.20-990f4af89a3a5329", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": "18.1-dd957d885d3cf6e3", "cves": [], "html": "<p>修复 PGXS 构建基础设施以支持为扩展构建 NLS <code>po</code> 文件（Ryo Matsumura）<a href=\"https://postgr.es/c/6aa04a60c\">§</a></p>", "text": "修复 PGXS 构建基础设施以支持为扩展构建 NLS po 文件（Ryo Matsumura）§", "title": "修复 PGXS 构建基础设施以支持为扩展构建 NLS po 文件", "commits": ["6aa04a60c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/18.1/#RELEASE-18-1-CHANGES", "source_hash": "788d09ad30c1fc302c5b1c881bcefc6dce6b9624c52973e7f3b26f0de16d8600", "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": ["6aa04a60c"], "source_entry_id": "18.1/changes/053", "db_id": "d67ac864844bc85b56699c92c83fc1da", "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": "7316bd641f6446319509fd69461d044f", "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"}}], "version": "18.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_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": "7316bd641f6446319509fd69461d044f", "kind": "equivalent", "version": "14.20", "label": "14.20", "title": "修复 PGXS 构建基础设施以支持为扩展构建 NLS po 文件", "evidence": {"same_day": true, "patch_ids": ["7ddf0a3958f313c5fa75ca694052c55e"], "statement_hash": "2ca0251a2ba28046a94807acfb884e8c62e152a0aff4d67baabf8f4a86329212"}, "url": "/docs/compare/?release=14.20#14.20-19fa9799ea217624", "source_url": "/docs/release/14.20/#ZH-AUTO-RELEASE-14-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": 53}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 28}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 23}], "total": 53, "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": "18.1"}, {"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": "18.1"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 53, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}