{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2026-02-12", "build": "17.8", "major": "17", "minor": 8, "manual": "17", "status": "stable", "doc_git": "", "version": "17.8", "eol_date": "2029-11-08", "date_text": "2026-02-12", "supported": true, "manual_url": "/docs/17/release-17-8.html", "source_url": "/docs/release/17.8/", "entry_count": 52, "placeholder": false, "content_hash": "78b21f57508b4a8378666f25a32e6811a2e3b72760f81f1e77b99432f7102a0d", "manual_build": "17.11", "source_as_of": "", "changes_count": 52, "doc_loaded_at": "2026-09-26T02:56:35.922301", "migration_html": "<p>对于运行 17.X 的用户，无需执行转储/恢复。</p>\n<p>但是，如果你从早于 17.6 的版本升级，请参见<a href=\"/docs/17/release-17-6.html\" title=\"E.6. 17.6 发布\">第 E.6 节</a>。</p>", "compatibility_count": 0, "label": "17.8", "status_label": "受支持版本", "eol": "2029-11-08", "age_days": 226, "support_days": 1139}, "groups": [{"date": "2026-02-12", "build": "17.8", "major": "17", "minor": 8, "manual": "17", "status": "stable", "doc_git": "", "version": "17.8", "eol_date": "2029-11-08", "date_text": "2026-02-12", "supported": true, "manual_url": "/docs/17/release-17-8.html", "source_url": "/docs/release/17.8/", "entry_count": 52, "placeholder": false, "content_hash": "78b21f57508b4a8378666f25a32e6811a2e3b72760f81f1e77b99432f7102a0d", "manual_build": "17.11", "source_as_of": "", "changes_count": 52, "doc_loaded_at": "2026-09-26T02:56:35.922301", "migration_html": "<p>对于运行 17.X 的用户，无需执行转储/恢复。</p>\n<p>但是，如果你从早于 17.6 的版本升级，请参见<a href=\"/docs/17/release-17-6.html\" title=\"E.6. 17.6 发布\">第 E.6 节</a>。</p>", "compatibility_count": 0, "label": "17.8", "status_label": "受支持版本", "eol": "2029-11-08", "age_days": 226, "support_days": 1139, "entries": [{"id": "17.8-a1109c4f32ae03d0", "cves": ["CVE-2026-2003"], "html": "<p>防止 <code>oidvector</code>/<code>int2vector</code> 出现意外的维度（Tom Lane）<a href=\"https://postgr.es/c/3d160401b\">§</a></p>\n<p>这些数据类型预期为不含空值的一维数组，但某些类型转换路径允许违背这些预期。现已为一些原本依赖这些预期却未加验证的函数补充检查，因为它们可能因此产生错误行为。</p>\n<p><span>PostgreSQL</span> 项目感谢 Altan Birler 报告此问题。（CVE-2026-2003）</p>", "text": "防止 oidvector/int2vector 出现意外的维度（Tom Lane）§ 这些数据类型预期为不含空值的一维数组，但某些类型转换路径允许违背这些预期。现已为一些原本依赖这些预期却未加验证的函数补充检查，因为它们可能因此产生错误行为。 PostgreSQL 项目感谢 Altan Birler 报告此问题。（CVE-2026-2003）", "title": "防止 oidvector/int2vector 出现意外的维度", "commits": ["3d160401b"], "section": "变更", "category": "security", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "d6f2ff312bd9c8c763279e53fb67886bc23756a9c53acaeff115450bf0778edc", "section_path": ["变更"], "commit_groups": [["3b6588cd9", "3d160401b", "429aeaebd", "595956fc7", "60e7ae41a", "b39d38139"]], "identity_text": "Guard against unexpected dimensions of oidvector/int2vector (Tom Lane) These data types are expected to be 1-dimensional arrays containing no nulls, but there are cast pathways that permit violating those expectations. Add checks to some functions that were depending on those expectations without verifying them, and could misbehave in consequence. The PostgreSQL Project thanks Altan Birler for reporting this problem. (CVE-2026-2003)", "commit_aliases": ["3b6588cd9", "3d160401b", "429aeaebd", "595956fc7", "60e7ae41a", "b39d38139"], "source_commits": ["3d160401b"], "source_entry_id": "17.8/changes/001", "db_id": "dadfe1bd35a127e4b2350a876ce5f39d", "patch_ids": ["e625ea93052fd4dfb5ad354c3e4c3569"], "statement_hash": "ce3b678bc249d2400e6f33b017d19a152d1f885b7690423e0e17ba0530a55787", "relations": [{"rule": 2, "type": "equivalent", "target": "020aec6d98ff35dcd4eca87ecb7d21fd", "evidence": {"same_day": true, "patch_ids": ["e625ea93052fd4dfb5ad354c3e4c3569"], "statement_hash": "ce3b678bc249d2400e6f33b017d19a152d1f885b7690423e0e17ba0530a55787"}}, {"rule": 2, "type": "equivalent", "target": "8db55cd2cacfbefb7d8380baee0440a5", "evidence": {"same_day": true, "patch_ids": ["e625ea93052fd4dfb5ad354c3e4c3569"], "statement_hash": "ce3b678bc249d2400e6f33b017d19a152d1f885b7690423e0e17ba0530a55787"}}, {"rule": 2, "type": "equivalent", "target": "93680dc2fc005fc9bc0a92b7d80ee23b", "evidence": {"same_day": true, "patch_ids": ["e625ea93052fd4dfb5ad354c3e4c3569"], "statement_hash": "ce3b678bc249d2400e6f33b017d19a152d1f885b7690423e0e17ba0530a55787"}}, {"rule": 2, "type": "equivalent", "target": "d474cd2cf9a4505bba396d502fe366fe", "evidence": {"same_day": true, "patch_ids": ["e625ea93052fd4dfb5ad354c3e4c3569"], "statement_hash": "ce3b678bc249d2400e6f33b017d19a152d1f885b7690423e0e17ba0530a55787"}}], "version": "17.8", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "020aec6d98ff35dcd4eca87ecb7d21fd", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "防止 oidvector/int2vector 出现意外的维度", "evidence": {"same_day": true, "patch_ids": ["e625ea93052fd4dfb5ad354c3e4c3569"], "statement_hash": "ce3b678bc249d2400e6f33b017d19a152d1f885b7690423e0e17ba0530a55787"}, "url": "/docs/compare/?release=18.2#18.2-5c52afa7301594c6", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "93680dc2fc005fc9bc0a92b7d80ee23b", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "防止 oidvector/int2vector 出现意外的维度", "evidence": {"same_day": true, "patch_ids": ["e625ea93052fd4dfb5ad354c3e4c3569"], "statement_hash": "ce3b678bc249d2400e6f33b017d19a152d1f885b7690423e0e17ba0530a55787"}, "url": "/docs/compare/?release=16.12#16.12-289361027e903f71", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "8db55cd2cacfbefb7d8380baee0440a5", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "防止 oidvector/int2vector 出现意外的维度", "evidence": {"same_day": true, "patch_ids": ["e625ea93052fd4dfb5ad354c3e4c3569"], "statement_hash": "ce3b678bc249d2400e6f33b017d19a152d1f885b7690423e0e17ba0530a55787"}, "url": "/docs/compare/?release=15.16#15.16-cffa85682917fc25", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "d474cd2cf9a4505bba396d502fe366fe", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "防止 oidvector/int2vector 出现意外的维度", "evidence": {"same_day": true, "patch_ids": ["e625ea93052fd4dfb5ad354c3e4c3569"], "statement_hash": "ce3b678bc249d2400e6f33b017d19a152d1f885b7690423e0e17ba0530a55787"}, "url": "/docs/compare/?release=14.21#14.21-182abf620be79725", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-66e960e22441cfaa", "cves": ["CVE-2026-2004"], "html": "<p>增强选择率估算器在被附加到接受非预期数据类型的操作符时的防护（Tom Lane）<a href=\"https://postgr.es/c/bbf5bcf58\">§</a> <a href=\"https://postgr.es/c/dd3ad2a4d\">§</a> <a href=\"https://postgr.es/c/dbb09fd8e\">§</a></p>\n<p><code>contrib/intarray</code> 包含一个选择率估算函数；由于它未检查输入是否为预期的数据类型，该函数可被滥用来执行任意代码。第三方扩展也应检查是否存在类似风险，并采用 intarray 现在使用的技术来增加防护。由于此类扩展的修复需要时间，我们现在要求具有超级用户权限，才能将非内置的选择率估算器附加到操作符上。</p>\n<p><span>PostgreSQL</span> 项目感谢 Daniel Firer（zeroday.cloud 成员）报告此问题。（CVE-2026-2004）</p>", "text": "增强选择率估算器在被附加到接受非预期数据类型的操作符时的防护（Tom Lane）§ § § contrib/intarray 包含一个选择率估算函数；由于它未检查输入是否为预期的数据类型，该函数可被滥用来执行任意代码。第三方扩展也应检查是否存在类似风险，并采用 intarray 现在使用的技术来增加防护。由于此类扩展的修复需要时间，我们现在要求具有超级用户权限，才能将非内置的选择率估算器附加到操作符上。 PostgreSQL 项目感谢 Daniel Firer（zeroday.cloud 成员）报告此问题。（CVE-2026-2004）", "title": "增强选择率估算器在被附加到接受非预期数据类型的操作符时的防护", "commits": ["bbf5bcf58", "dbb09fd8e", "dd3ad2a4d"], "section": "变更", "category": "security", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "a00d40efc8ae577ccc246661e137fe4f7abc81b3f58595861b4c47e8d4faa418", "section_path": ["变更"], "commit_groups": [["3ecc84cce", "9fa38c572", "d484bc260", "dbb09fd8e"], ["66ddac698", "841d42cc4", "91d7c0bfd", "b764b26f2", "bbf5bcf58", "ea3bf3498"], ["7e82d9a04", "8ebdf41c2", "b69af3dda", "c0887b39d", "dd3ad2a4d", "deb464a40"]], "identity_text": "Harden selectivity estimators against being attached to operators that accept unexpected data types (Tom Lane) contrib/intarray contained a selectivity estimation function that could be abused for arbitrary code execution, because it did not check that its input was of the expected data type. Third-party extensions should check for similar hazards and add defenses using the technique intarray now uses. Since such extension fixes will take time, we now require superuser privilege to attach a non-built-in selectivity estimator to an operator. The PostgreSQL Project thanks Daniel Firer, as part of zeroday.cloud, for reporting this problem. (CVE-2026-2004)", "commit_aliases": ["3ecc84cce", "66ddac698", "7e82d9a04", "841d42cc4", "8ebdf41c2", "91d7c0bfd", "9fa38c572", "b69af3dda", "b764b26f2", "bbf5bcf58", "c0887b39d", "d484bc260", "dbb09fd8e", "dd3ad2a4d", "deb464a40", "ea3bf3498"], "source_commits": ["bbf5bcf58", "dbb09fd8e", "dd3ad2a4d"], "source_entry_id": "17.8/changes/002", "db_id": "eb75ba70d74784578edba6ea18a6aaf9", "patch_ids": ["2f2e483656bae2dbe55158c3365123bd", "356a9ce59861f3c9318ff0c7fe53f540", "4bc40137a21f6b104cb7a2aaf123c445"], "statement_hash": "bf854d211c57f15bce3aa7bbb099f8690284afbf8188626b5fdf9bd083214cc4", "relations": [{"rule": 2, "type": "equivalent", "target": "184452363a4be8fbad69f06eb60df539", "evidence": {"same_day": true, "patch_ids": ["2f2e483656bae2dbe55158c3365123bd", "356a9ce59861f3c9318ff0c7fe53f540", "4bc40137a21f6b104cb7a2aaf123c445"], "statement_hash": "bf854d211c57f15bce3aa7bbb099f8690284afbf8188626b5fdf9bd083214cc4"}}, {"rule": 2, "type": "equivalent", "target": "3cfe051a6ace1086d9ff67af367a40f4", "evidence": {"same_day": true, "patch_ids": ["2f2e483656bae2dbe55158c3365123bd", "356a9ce59861f3c9318ff0c7fe53f540", "4bc40137a21f6b104cb7a2aaf123c445"], "statement_hash": "bf854d211c57f15bce3aa7bbb099f8690284afbf8188626b5fdf9bd083214cc4"}}, {"rule": 2, "type": "equivalent", "target": "853a0accddf2290afda1b4c5d74207ed", "evidence": {"same_day": true, "patch_ids": ["2f2e483656bae2dbe55158c3365123bd", "356a9ce59861f3c9318ff0c7fe53f540", "4bc40137a21f6b104cb7a2aaf123c445"], "statement_hash": "bf854d211c57f15bce3aa7bbb099f8690284afbf8188626b5fdf9bd083214cc4"}}, {"rule": 2, "type": "equivalent", "target": "b368f952921e7f029d36869bd2860743", "evidence": {"same_day": true, "patch_ids": ["2f2e483656bae2dbe55158c3365123bd", "356a9ce59861f3c9318ff0c7fe53f540", "4bc40137a21f6b104cb7a2aaf123c445"], "statement_hash": "bf854d211c57f15bce3aa7bbb099f8690284afbf8188626b5fdf9bd083214cc4"}}], "version": "17.8", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "853a0accddf2290afda1b4c5d74207ed", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "增强选择率估算器在被附加到接受非预期数据类型的操作符时的防护", "evidence": {"same_day": true, "patch_ids": ["2f2e483656bae2dbe55158c3365123bd", "356a9ce59861f3c9318ff0c7fe53f540", "4bc40137a21f6b104cb7a2aaf123c445"], "statement_hash": "bf854d211c57f15bce3aa7bbb099f8690284afbf8188626b5fdf9bd083214cc4"}, "url": "/docs/compare/?release=18.2#18.2-0a3add9d9f709ebd", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "184452363a4be8fbad69f06eb60df539", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "增强选择率估算器在被附加到接受非预期数据类型的操作符时的防护", "evidence": {"same_day": true, "patch_ids": ["2f2e483656bae2dbe55158c3365123bd", "356a9ce59861f3c9318ff0c7fe53f540", "4bc40137a21f6b104cb7a2aaf123c445"], "statement_hash": "bf854d211c57f15bce3aa7bbb099f8690284afbf8188626b5fdf9bd083214cc4"}, "url": "/docs/compare/?release=16.12#16.12-9d7c1c9d84e5292d", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "b368f952921e7f029d36869bd2860743", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "增强选择率估算器在被附加到接受非预期数据类型的操作符时的防护", "evidence": {"same_day": true, "patch_ids": ["2f2e483656bae2dbe55158c3365123bd", "356a9ce59861f3c9318ff0c7fe53f540", "4bc40137a21f6b104cb7a2aaf123c445"], "statement_hash": "bf854d211c57f15bce3aa7bbb099f8690284afbf8188626b5fdf9bd083214cc4"}, "url": "/docs/compare/?release=15.16#15.16-9ecdcfc6d990fa17", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "3cfe051a6ace1086d9ff67af367a40f4", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "增强选择率估算器在被附加到接受非预期数据类型的操作符时的防护", "evidence": {"same_day": true, "patch_ids": ["2f2e483656bae2dbe55158c3365123bd", "356a9ce59861f3c9318ff0c7fe53f540", "4bc40137a21f6b104cb7a2aaf123c445"], "statement_hash": "bf854d211c57f15bce3aa7bbb099f8690284afbf8188626b5fdf9bd083214cc4"}, "url": "/docs/compare/?release=14.21#14.21-4f1356e5a78a8982", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-ad02898fb1831e36", "cves": ["CVE-2026-2005"], "html": "<p>修复 <code>contrib/pgcrypto</code> PGP 解密函数中的缓冲区溢出问题（Michael Paquier）<a href=\"https://postgr.es/c/7a7d9693c\">§</a></p>\n<p>解密带有超长会话密钥的精心构造消息会导致缓冲区溢出，严重时甚至可能执行任意代码。</p>\n<p><span>PostgreSQL</span> 项目感谢 Team Xint Code（zeroday.cloud 成员）报告此问题。（CVE-2026-2005）</p>", "text": "修复 contrib/pgcrypto PGP 解密函数中的缓冲区溢出问题（Michael Paquier）§ 解密带有超长会话密钥的精心构造消息会导致缓冲区溢出，严重时甚至可能执行任意代码。 PostgreSQL 项目感谢 Team Xint Code（zeroday.cloud 成员）报告此问题。（CVE-2026-2005）", "title": "修复 contrib/pgcrypto PGP 解密函数中的缓冲区溢出问题", "commits": ["7a7d9693c"], "section": "变更", "category": "security", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "923d16f7f40f0f2013f149ad35364455b08193ae08e5a9c043f7a02700494a37", "section_path": ["变更"], "commit_groups": [["01de2e32d", "209f387b8", "379695d3c", "527b730f4", "7a7d9693c", "9a9982ec6"]], "identity_text": "Fix buffer overrun in contrib/pgcrypto's PGP decryption functions (Michael Paquier) Decrypting a crafted message with an overlength session key caused a buffer overrun, with consequences as bad as arbitrary code execution. The PostgreSQL Project thanks Team Xint Code, as part of zeroday.cloud, for reporting this problem. (CVE-2026-2005)", "commit_aliases": ["01de2e32d", "209f387b8", "379695d3c", "527b730f4", "7a7d9693c", "9a9982ec6"], "source_commits": ["7a7d9693c"], "source_entry_id": "17.8/changes/003", "db_id": "d0b0ce25a07e9ad598056180477520b6", "patch_ids": ["8812c5ce4844c4609945e75b3dad003d"], "statement_hash": "643330e49824e6c84ee06b67cc1febd73b94c839951a2861efc8c384a23e8307", "relations": [{"rule": 2, "type": "equivalent", "target": "bdd4104dfc3659a38e0f0389ee19b847", "evidence": {"same_day": true, "patch_ids": ["8812c5ce4844c4609945e75b3dad003d"], "statement_hash": "643330e49824e6c84ee06b67cc1febd73b94c839951a2861efc8c384a23e8307"}}, {"rule": 2, "type": "equivalent", "target": "e4dd47f240a98be34ae099044d8a2b56", "evidence": {"same_day": true, "patch_ids": ["8812c5ce4844c4609945e75b3dad003d"], "statement_hash": "643330e49824e6c84ee06b67cc1febd73b94c839951a2861efc8c384a23e8307"}}, {"rule": 2, "type": "equivalent", "target": "e7bf20473d33d5835462a40fa9fd5552", "evidence": {"same_day": true, "patch_ids": ["8812c5ce4844c4609945e75b3dad003d"], "statement_hash": "643330e49824e6c84ee06b67cc1febd73b94c839951a2861efc8c384a23e8307"}}, {"rule": 2, "type": "equivalent", "target": "ef4c4d388861428d41d8694448d1ec90", "evidence": {"same_day": true, "patch_ids": ["8812c5ce4844c4609945e75b3dad003d"], "statement_hash": "643330e49824e6c84ee06b67cc1febd73b94c839951a2861efc8c384a23e8307"}}], "version": "17.8", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "ef4c4d388861428d41d8694448d1ec90", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复 contrib/pgcrypto PGP 解密函数中的缓冲区溢出问题", "evidence": {"same_day": true, "patch_ids": ["8812c5ce4844c4609945e75b3dad003d"], "statement_hash": "643330e49824e6c84ee06b67cc1febd73b94c839951a2861efc8c384a23e8307"}, "url": "/docs/compare/?release=18.2#18.2-c6669984145bd55c", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "e7bf20473d33d5835462a40fa9fd5552", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复 contrib/pgcrypto PGP 解密函数中的缓冲区溢出问题", "evidence": {"same_day": true, "patch_ids": ["8812c5ce4844c4609945e75b3dad003d"], "statement_hash": "643330e49824e6c84ee06b67cc1febd73b94c839951a2861efc8c384a23e8307"}, "url": "/docs/compare/?release=16.12#16.12-a3ed183e10806004", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "e4dd47f240a98be34ae099044d8a2b56", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复 contrib/pgcrypto PGP 解密函数中的缓冲区溢出问题", "evidence": {"same_day": true, "patch_ids": ["8812c5ce4844c4609945e75b3dad003d"], "statement_hash": "643330e49824e6c84ee06b67cc1febd73b94c839951a2861efc8c384a23e8307"}, "url": "/docs/compare/?release=15.16#15.16-55f620c5255ec99f", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "bdd4104dfc3659a38e0f0389ee19b847", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复 contrib/pgcrypto PGP 解密函数中的缓冲区溢出问题", "evidence": {"same_day": true, "patch_ids": ["8812c5ce4844c4609945e75b3dad003d"], "statement_hash": "643330e49824e6c84ee06b67cc1febd73b94c839951a2861efc8c384a23e8307"}, "url": "/docs/compare/?release=14.21#14.21-8072e6858a1ccb57", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-0378679c62701a5e", "cves": ["CVE-2026-2006"], "html": "<p>修复多字节字符长度验证不充分的问题（Thomas Munro，Noah Misch）<a href=\"https://postgr.es/c/838248b1b\">§</a> <a href=\"https://postgr.es/c/7a522039f\">§</a> <a href=\"https://postgr.es/c/319e8a644\">§</a> <a href=\"https://postgr.es/c/10ebc4bd6\">§</a> <a href=\"https://postgr.es/c/dc072a09a\">§</a> <a href=\"https://postgr.es/c/955433ebd\">§</a></p>\n<p>多处漏洞使攻击者只要能够发出精心构造的 SQL，就可能溢出字符串缓冲区，严重时甚至可以执行任意代码。应用这些修复后，当字符串函数处理数据库中存储的无效文本时，应用程序可能会看到 <span>“<span>invalid byte sequence for encoding</span>”</span> 错误。</p>\n<p><span>PostgreSQL</span> 项目感谢 Paul Gerste 和 Moritz Sanft（zeroday.cloud 成员）报告此问题。（CVE-2026-2006）</p>", "text": "修复多字节字符长度验证不充分的问题（Thomas Munro，Noah Misch）§ § § § § § 多处漏洞使攻击者只要能够发出精心构造的 SQL，就可能溢出字符串缓冲区，严重时甚至可以执行任意代码。应用这些修复后，当字符串函数处理数据库中存储的无效文本时，应用程序可能会看到 “invalid byte sequence for encoding” 错误。 PostgreSQL 项目感谢 Paul Gerste 和 Moritz Sanft（zeroday.cloud 成员）报告此问题。（CVE-2026-2006）", "title": "修复多字节字符长度验证不充分的问题", "commits": ["10ebc4bd6", "319e8a644", "7a522039f", "838248b1b", "955433ebd", "dc072a09a"], "section": "变更", "category": "security", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "238f0fc4dda91173712b65ba74cb4edb0f612ba90410f7930399ed1efdd9b3b5", "section_path": ["变更"], "commit_groups": [["0c33d5608", "8373ed094", "8f8b1ffac", "b42709194", "d536aee55", "dc072a09a"], ["10ebc4bd6", "4c08960d9", "757bf8145", "b0f5d25bc", "c67bef3f3", "e7591254c"], ["1e7fe06c1", "319e8a644", "7b5fc85be", "cecedb912", "d837fb029", "fd82ddb67"], ["2a53db21e", "70ff9ede5", "838248b1b", "af79c30dc", "b2c81ac86", "df0852fe0"], ["4543b02af", "5301b2b7d", "6f741bcb6", "763671b74", "955433ebd", "c5dc75479"], ["50863be0b", "6ed116046", "74ee636cc", "7a522039f", "b0e3f5cf9", "efef05ba9"]], "identity_text": "Fix inadequate validation of multibyte character lengths (Thomas Munro, Noah Misch) Assorted bugs allowed an attacker able to issue crafted SQL to overrun string buffers, with consequences as bad as arbitrary code execution. After these fixes, applications may observe invalid byte sequence for encoding errors when string functions process invalid text that has been stored in the database. The PostgreSQL Project thanks Paul Gerste and Moritz Sanft, as part of zeroday.cloud, for reporting this problem. (CVE-2026-2006)", "commit_aliases": ["0c33d5608", "10ebc4bd6", "1e7fe06c1", "2a53db21e", "319e8a644", "4543b02af", "4c08960d9", "50863be0b", "5301b2b7d", "6ed116046", "6f741bcb6", "70ff9ede5", "74ee636cc", "757bf8145", "763671b74", "7a522039f", "7b5fc85be", "8373ed094", "838248b1b", "8f8b1ffac", "955433ebd", "af79c30dc", "b0e3f5cf9", "b0f5d25bc", "b2c81ac86", "b42709194", "c5dc75479", "c67bef3f3", "cecedb912", "d536aee55", "d837fb029", "dc072a09a", "df0852fe0", "e7591254c", "efef05ba9", "fd82ddb67"], "source_commits": ["10ebc4bd6", "319e8a644", "7a522039f", "838248b1b", "955433ebd", "dc072a09a"], "source_entry_id": "17.8/changes/004", "db_id": "2fee65050d60d6944038f5de1fd6e77f", "patch_ids": ["495ed616c5c9d01200b34ff986191d76", "8b94976f553df832eb256817e06f6e8e", "a8ccf4d965aea8d430069f2b4025b384", "b98e99e748716baf094e4d11553e19ae", "e1e546efb1e21ef2c167c052b7fc2c27", "ef48875931b707685e95ea56147ddbe5"], "statement_hash": "6c6e0d081c08625c5f6ce833f7e79f2bb277ec939453acd9d359f724272d34eb", "relations": [{"rule": 2, "type": "equivalent", "target": "25b98554e64d0842a180907318bd502a", "evidence": {"same_day": true, "patch_ids": ["495ed616c5c9d01200b34ff986191d76", "8b94976f553df832eb256817e06f6e8e", "a8ccf4d965aea8d430069f2b4025b384", "b98e99e748716baf094e4d11553e19ae", "e1e546efb1e21ef2c167c052b7fc2c27", "ef48875931b707685e95ea56147ddbe5"], "statement_hash": "6c6e0d081c08625c5f6ce833f7e79f2bb277ec939453acd9d359f724272d34eb"}}, {"rule": 2, "type": "equivalent", "target": "66ef8e4bb930ff6d7fb76f1509e60bdb", "evidence": {"same_day": true, "patch_ids": ["495ed616c5c9d01200b34ff986191d76", "8b94976f553df832eb256817e06f6e8e", "a8ccf4d965aea8d430069f2b4025b384", "b98e99e748716baf094e4d11553e19ae", "e1e546efb1e21ef2c167c052b7fc2c27", "ef48875931b707685e95ea56147ddbe5"], "statement_hash": "6c6e0d081c08625c5f6ce833f7e79f2bb277ec939453acd9d359f724272d34eb"}}, {"rule": 2, "type": "equivalent", "target": "c7f1c767af36d148849ecf12abc7b39c", "evidence": {"same_day": true, "patch_ids": ["495ed616c5c9d01200b34ff986191d76", "8b94976f553df832eb256817e06f6e8e", "a8ccf4d965aea8d430069f2b4025b384", "b98e99e748716baf094e4d11553e19ae", "e1e546efb1e21ef2c167c052b7fc2c27", "ef48875931b707685e95ea56147ddbe5"], "statement_hash": "6c6e0d081c08625c5f6ce833f7e79f2bb277ec939453acd9d359f724272d34eb"}}, {"rule": 2, "type": "equivalent", "target": "e5c2b929807dffd0fc80d18ac5ef27da", "evidence": {"same_day": true, "patch_ids": ["495ed616c5c9d01200b34ff986191d76", "8b94976f553df832eb256817e06f6e8e", "a8ccf4d965aea8d430069f2b4025b384", "b98e99e748716baf094e4d11553e19ae", "e1e546efb1e21ef2c167c052b7fc2c27", "ef48875931b707685e95ea56147ddbe5"], "statement_hash": "6c6e0d081c08625c5f6ce833f7e79f2bb277ec939453acd9d359f724272d34eb"}}], "version": "17.8", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "66ef8e4bb930ff6d7fb76f1509e60bdb", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复多字节字符长度验证不充分的问题", "evidence": {"same_day": true, "patch_ids": ["495ed616c5c9d01200b34ff986191d76", "8b94976f553df832eb256817e06f6e8e", "a8ccf4d965aea8d430069f2b4025b384", "b98e99e748716baf094e4d11553e19ae", "e1e546efb1e21ef2c167c052b7fc2c27", "ef48875931b707685e95ea56147ddbe5"], "statement_hash": "6c6e0d081c08625c5f6ce833f7e79f2bb277ec939453acd9d359f724272d34eb"}, "url": "/docs/compare/?release=18.2#18.2-b28dc0bb7dc6b053", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "c7f1c767af36d148849ecf12abc7b39c", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复多字节字符长度验证不充分的问题", "evidence": {"same_day": true, "patch_ids": ["495ed616c5c9d01200b34ff986191d76", "8b94976f553df832eb256817e06f6e8e", "a8ccf4d965aea8d430069f2b4025b384", "b98e99e748716baf094e4d11553e19ae", "e1e546efb1e21ef2c167c052b7fc2c27", "ef48875931b707685e95ea56147ddbe5"], "statement_hash": "6c6e0d081c08625c5f6ce833f7e79f2bb277ec939453acd9d359f724272d34eb"}, "url": "/docs/compare/?release=16.12#16.12-d657c6f02bbf824f", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "e5c2b929807dffd0fc80d18ac5ef27da", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复多字节字符长度验证不充分的问题", "evidence": {"same_day": true, "patch_ids": ["495ed616c5c9d01200b34ff986191d76", "8b94976f553df832eb256817e06f6e8e", "a8ccf4d965aea8d430069f2b4025b384", "b98e99e748716baf094e4d11553e19ae", "e1e546efb1e21ef2c167c052b7fc2c27", "ef48875931b707685e95ea56147ddbe5"], "statement_hash": "6c6e0d081c08625c5f6ce833f7e79f2bb277ec939453acd9d359f724272d34eb"}, "url": "/docs/compare/?release=15.16#15.16-62940c666c30fc8b", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "25b98554e64d0842a180907318bd502a", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复多字节字符长度验证不充分的问题", "evidence": {"same_day": true, "patch_ids": ["495ed616c5c9d01200b34ff986191d76", "8b94976f553df832eb256817e06f6e8e", "a8ccf4d965aea8d430069f2b4025b384", "b98e99e748716baf094e4d11553e19ae", "e1e546efb1e21ef2c167c052b7fc2c27", "ef48875931b707685e95ea56147ddbe5"], "statement_hash": "6c6e0d081c08625c5f6ce833f7e79f2bb277ec939453acd9d359f724272d34eb"}, "url": "/docs/compare/?release=14.21#14.21-0170b76fb58a4a02", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-69605b7e08548aa0", "cves": [], "html": "<p>不允许由子查询中的 CTE 引用决定聚合函数的语义层级（Tom Lane）<a href=\"https://postgr.es/c/075a763e2\">§</a></p>\n<p>此变更撤销了两个小版本之前引入的一项更改；现在，如果某个子查询引用的 CTE 所处层级低于按标准 SQL 规则依据其中的列引用和聚合所判定的聚合语义层级，将抛出错误。先前的修复方案本身也带来了问题，而且目前尚不清楚应如何处理。由于 SQL 标准本就完全不允许在聚合中包含子查询，将此类情况视为错误似乎已经足够。</p>", "text": "不允许由子查询中的 CTE 引用决定聚合函数的语义层级（Tom Lane）§ 此变更撤销了两个小版本之前引入的一项更改；现在，如果某个子查询引用的 CTE 所处层级低于按标准 SQL 规则依据其中的列引用和聚合所判定的聚合语义层级，将抛出错误。先前的修复方案本身也带来了问题，而且目前尚不清楚应如何处理。由于 SQL 标准本就完全不允许在聚合中包含子查询，将此类情况视为错误似乎已经足够。", "title": "不允许由子查询中的 CTE 引用决定聚合函数的语义层级", "commits": ["075a763e2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "366fd2104235cda7c6d90b71c0667bf4f55ec1bd9c380ea58391127dd4d40a05", "section_path": ["变更"], "commit_groups": [["075a763e2", "12bc32917", "1c8c3206f", "35b5c62c3", "9f5a58aac", "b85397481"]], "identity_text": "Don't allow CTE references in sub-selects to determine semantic levels of aggregate functions (Tom Lane) This change undoes a change made two minor releases ago, instead throwing an error if a sub-select references a CTE that's below the semantic level that standard SQL rules would assign to the aggregate based on contained column references and aggregates. The attempted fix turned out to cause problems of its own, and it's unclear what to do instead. Since sub-selects within aggregates are disallowed altogether by the SQL standard, treating such cases as errors seems sufficient.", "commit_aliases": ["075a763e2", "12bc32917", "1c8c3206f", "35b5c62c3", "9f5a58aac", "b85397481"], "source_commits": ["075a763e2"], "source_entry_id": "17.8/changes/005", "db_id": "128a16829eb01aeea2a683fa84040725", "patch_ids": ["b900772ffaf16070ad5c6f3ee9476799"], "statement_hash": "aca5184caeda78eb5d5b9152a6295b4c451d3d7324fcbaae36c120961950e059", "relations": [{"rule": 2, "type": "equivalent", "target": "4864352d8953061a7f3e2f942fd405e2", "evidence": {"same_day": true, "patch_ids": ["b900772ffaf16070ad5c6f3ee9476799"], "statement_hash": "aca5184caeda78eb5d5b9152a6295b4c451d3d7324fcbaae36c120961950e059"}}, {"rule": 2, "type": "equivalent", "target": "968c190ce539c030cfe3824a0cddc761", "evidence": {"same_day": true, "patch_ids": ["b900772ffaf16070ad5c6f3ee9476799"], "statement_hash": "aca5184caeda78eb5d5b9152a6295b4c451d3d7324fcbaae36c120961950e059"}}, {"rule": 2, "type": "equivalent", "target": "cc9e6465c86b962c0dda27e8afcac193", "evidence": {"same_day": true, "patch_ids": ["b900772ffaf16070ad5c6f3ee9476799"], "statement_hash": "aca5184caeda78eb5d5b9152a6295b4c451d3d7324fcbaae36c120961950e059"}}, {"rule": 2, "type": "equivalent", "target": "dcc6e6d85b35d0422b8e17422a731c4a", "evidence": {"same_day": true, "patch_ids": ["b900772ffaf16070ad5c6f3ee9476799"], "statement_hash": "aca5184caeda78eb5d5b9152a6295b4c451d3d7324fcbaae36c120961950e059"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "968c190ce539c030cfe3824a0cddc761", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "不允许由子查询中的 CTE 引用决定聚合函数的语义层级", "evidence": {"same_day": true, "patch_ids": ["b900772ffaf16070ad5c6f3ee9476799"], "statement_hash": "aca5184caeda78eb5d5b9152a6295b4c451d3d7324fcbaae36c120961950e059"}, "url": "/docs/compare/?release=18.2#18.2-d6f0ddb2f2597bb2", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "cc9e6465c86b962c0dda27e8afcac193", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "不允许由子查询中的 CTE 引用决定聚合函数的语义层级", "evidence": {"same_day": true, "patch_ids": ["b900772ffaf16070ad5c6f3ee9476799"], "statement_hash": "aca5184caeda78eb5d5b9152a6295b4c451d3d7324fcbaae36c120961950e059"}, "url": "/docs/compare/?release=16.12#16.12-e79313988f03e883", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "4864352d8953061a7f3e2f942fd405e2", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "不允许由子查询中的 CTE 引用决定聚合函数的语义层级", "evidence": {"same_day": true, "patch_ids": ["b900772ffaf16070ad5c6f3ee9476799"], "statement_hash": "aca5184caeda78eb5d5b9152a6295b4c451d3d7324fcbaae36c120961950e059"}, "url": "/docs/compare/?release=15.16#15.16-dc510262703bad79", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "dcc6e6d85b35d0422b8e17422a731c4a", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "不允许由子查询中的 CTE 引用决定聚合函数的语义层级", "evidence": {"same_day": true, "patch_ids": ["b900772ffaf16070ad5c6f3ee9476799"], "statement_hash": "aca5184caeda78eb5d5b9152a6295b4c451d3d7324fcbaae36c120961950e059"}, "url": "/docs/compare/?release=14.21#14.21-9f3dcc608f8165a8", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-a05a36b6df4c6b60", "cves": [], "html": "<p>修复 CTE 查询中 <code>MERGE</code> 的触发器过渡表捕获问题（Dean Rasheed）<a href=\"https://postgr.es/c/c5fc17dda\">§</a></p>\n<p>当执行包含 <code>MERGE</code> 和另一个对具有语句级 <code>AFTER</code> 触发器的表的 DML 操作的数据修改 CTE 查询时，传递给触发器的过渡表将不包含 <code>MERGE</code> 影响的行，而只包含其他操作影响的行。</p>", "text": "修复 CTE 查询中 MERGE 的触发器过渡表捕获问题（Dean Rasheed）§ 当执行包含 MERGE 和另一个对具有语句级 AFTER 触发器的表的 DML 操作的数据修改 CTE 查询时，传递给触发器的过渡表将不包含 MERGE 影响的行，而只包含其他操作影响的行。", "title": "修复 CTE 查询中 MERGE 的触发器过渡表捕获问题", "commits": ["c5fc17dda"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "9141fd3b786a170a4cd6879aeba6780530115622aba858799846e4e523ac9a77", "section_path": ["变更"], "commit_groups": [["b4307ae2e", "c5824536e", "c5fc17dda", "c6ce4dcf9", "e7391bbf1"]], "identity_text": "Fix trigger transition table capture for MERGE in CTE queries (Dean Rasheed) When executing a data-modifying CTE query containing both a MERGE and another DML operation on a table with statement-level AFTER triggers, the transition tables passed to the triggers would not include the rows affected by the MERGE, only those affected by the other operation(s).", "commit_aliases": ["b4307ae2e", "c5824536e", "c5fc17dda", "c6ce4dcf9", "e7391bbf1"], "source_commits": ["c5fc17dda"], "source_entry_id": "17.8/changes/006", "db_id": "d454fc992715ec69f11869ffab65efab", "patch_ids": ["9cb7a95ca83cc42e1b56a8fbc492d52e"], "statement_hash": "66d5665f7806451842ea09bab53ec96bcabb424e0cd66ec57fdd516b027ac4f9", "relations": [{"rule": 2, "type": "equivalent", "target": "67486d10436f31c845689f24645f975f", "evidence": {"same_day": true, "patch_ids": ["9cb7a95ca83cc42e1b56a8fbc492d52e"], "statement_hash": "66d5665f7806451842ea09bab53ec96bcabb424e0cd66ec57fdd516b027ac4f9"}}, {"rule": 2, "type": "equivalent", "target": "d4a6c61bfb31b9d9da04d2ea0c6cf39b", "evidence": {"same_day": true, "patch_ids": ["9cb7a95ca83cc42e1b56a8fbc492d52e"], "statement_hash": "66d5665f7806451842ea09bab53ec96bcabb424e0cd66ec57fdd516b027ac4f9"}}, {"rule": 2, "type": "equivalent", "target": "e753c6457f34a85baec08d989ba33d82", "evidence": {"same_day": true, "patch_ids": ["9cb7a95ca83cc42e1b56a8fbc492d52e"], "statement_hash": "66d5665f7806451842ea09bab53ec96bcabb424e0cd66ec57fdd516b027ac4f9"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e753c6457f34a85baec08d989ba33d82", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复 CTE 查询中 MERGE 的触发器过渡表捕获问题", "evidence": {"same_day": true, "patch_ids": ["9cb7a95ca83cc42e1b56a8fbc492d52e"], "statement_hash": "66d5665f7806451842ea09bab53ec96bcabb424e0cd66ec57fdd516b027ac4f9"}, "url": "/docs/compare/?release=18.2#18.2-449ed1ba9b72a08e", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "d4a6c61bfb31b9d9da04d2ea0c6cf39b", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复 CTE 查询中 MERGE 的触发器过渡表捕获问题", "evidence": {"same_day": true, "patch_ids": ["9cb7a95ca83cc42e1b56a8fbc492d52e"], "statement_hash": "66d5665f7806451842ea09bab53ec96bcabb424e0cd66ec57fdd516b027ac4f9"}, "url": "/docs/compare/?release=16.12#16.12-224692435a938225", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "67486d10436f31c845689f24645f975f", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复 CTE 查询中 MERGE 的触发器过渡表捕获问题", "evidence": {"same_day": true, "patch_ids": ["9cb7a95ca83cc42e1b56a8fbc492d52e"], "statement_hash": "66d5665f7806451842ea09bab53ec96bcabb424e0cd66ec57fdd516b027ac4f9"}, "url": "/docs/compare/?release=15.16#15.16-3bdf28daf1c8fa5a", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}]}, {"id": "17.8-47d93f8afe450b73", "cves": [], "html": "<p>修复当分区目标表的所有子表在 UPDATE 或 DELETE 操作中都被剪枝时的失败问题（Amit Langote）<a href=\"https://postgr.es/c/933f67fb6\">§</a></p>\n<p>在这种情况下，执行器可能报告 <span>“<span>could not find junk ctid column</span>”</span> 错误，即使实际上无需执行任何操作。</p>", "text": "修复当分区目标表的所有子表在 UPDATE 或 DELETE 操作中都被剪枝时的失败问题（Amit Langote）§ 在这种情况下，执行器可能报告 “could not find junk ctid column” 错误，即使实际上无需执行任何操作。", "title": "修复当分区目标表的所有子表在 UPDATE 或 DELETE 操作中都被剪枝时的失败问题", "commits": ["933f67fb6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "c083bbe031a95efa1c012a12bb38733aa4b659acfa9061e5f42389683b529c8e", "section_path": ["变更"], "commit_groups": [["687533b39", "6d2fa44d2", "933f67fb6", "9f4b7bfc5", "f9a468c66", "fab386f74"]], "identity_text": "Fix failure when all children of a partitioned target table of an update or delete have been pruned (Amit Langote) In such cases, the executor could report could not find junk ctid column errors, even though nothing needs to be done.", "commit_aliases": ["687533b39", "6d2fa44d2", "933f67fb6", "9f4b7bfc5", "f9a468c66", "fab386f74"], "source_commits": ["933f67fb6"], "source_entry_id": "17.8/changes/007", "db_id": "63da9c3d80fbdcaacf4a6c8e130df7a3", "patch_ids": ["9a0dd248bccac339f799f84ddd7d8025"], "statement_hash": "2d865ce2ec1c605811a5336cc6b79b917602006b9d88ed02a66f1499e94eb2b3", "relations": [{"rule": 2, "type": "equivalent", "target": "179b2113d34cec63f6ed7d3339773014", "evidence": {"same_day": true, "patch_ids": ["9a0dd248bccac339f799f84ddd7d8025"], "statement_hash": "2d865ce2ec1c605811a5336cc6b79b917602006b9d88ed02a66f1499e94eb2b3"}}, {"rule": 2, "type": "equivalent", "target": "4ced629daa2801c0202dec91097dd571", "evidence": {"same_day": true, "patch_ids": ["9a0dd248bccac339f799f84ddd7d8025"], "statement_hash": "2d865ce2ec1c605811a5336cc6b79b917602006b9d88ed02a66f1499e94eb2b3"}}, {"rule": 2, "type": "equivalent", "target": "7a4315af35989c84209f54d435f1bc39", "evidence": {"same_day": true, "patch_ids": ["9a0dd248bccac339f799f84ddd7d8025"], "statement_hash": "2d865ce2ec1c605811a5336cc6b79b917602006b9d88ed02a66f1499e94eb2b3"}}, {"rule": 2, "type": "equivalent", "target": "f4b5a0c770a80f36d1c78eef1f635128", "evidence": {"same_day": true, "patch_ids": ["9a0dd248bccac339f799f84ddd7d8025"], "statement_hash": "2d865ce2ec1c605811a5336cc6b79b917602006b9d88ed02a66f1499e94eb2b3"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f4b5a0c770a80f36d1c78eef1f635128", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复当分区目标表的所有子表在 UPDATE 或 DELETE 操作中都被剪枝时的失败问题", "evidence": {"same_day": true, "patch_ids": ["9a0dd248bccac339f799f84ddd7d8025"], "statement_hash": "2d865ce2ec1c605811a5336cc6b79b917602006b9d88ed02a66f1499e94eb2b3"}, "url": "/docs/compare/?release=18.2#18.2-6f5d6058ff3801ed", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "7a4315af35989c84209f54d435f1bc39", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复当分区目标表的所有子表在 UPDATE 或 DELETE 操作中都被剪枝时的失败问题", "evidence": {"same_day": true, "patch_ids": ["9a0dd248bccac339f799f84ddd7d8025"], "statement_hash": "2d865ce2ec1c605811a5336cc6b79b917602006b9d88ed02a66f1499e94eb2b3"}, "url": "/docs/compare/?release=16.12#16.12-4f022f27b3f533c3", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "179b2113d34cec63f6ed7d3339773014", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复当分区目标表的所有子表在 UPDATE 或 DELETE 操作中都被剪枝时的失败问题", "evidence": {"same_day": true, "patch_ids": ["9a0dd248bccac339f799f84ddd7d8025"], "statement_hash": "2d865ce2ec1c605811a5336cc6b79b917602006b9d88ed02a66f1499e94eb2b3"}, "url": "/docs/compare/?release=15.16#15.16-fc6e34c9815a3a0c", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "4ced629daa2801c0202dec91097dd571", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复当分区目标表的所有子表在 UPDATE 或 DELETE 操作中都被剪枝时的失败问题", "evidence": {"same_day": true, "patch_ids": ["9a0dd248bccac339f799f84ddd7d8025"], "statement_hash": "2d865ce2ec1c605811a5336cc6b79b917602006b9d88ed02a66f1499e94eb2b3"}, "url": "/docs/compare/?release=14.21#14.21-807fef0437b28900", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-a2c5213ddb6acb5c", "cves": [], "html": "<p>避免当查询包含重复的窗口函数调用时规划器可能出现的失败（Meng Zhang，David Rowley）<a href=\"https://postgr.es/c/cae812741\">§</a></p>\n<p>对此类调用去重时的混淆可能导致诸如 <span>“<span>WindowFunc with winref 2 assigned to WindowAgg with winref 1</span>”</span> 之类的错误。</p>", "text": "避免当查询包含重复的窗口函数调用时规划器可能出现的失败（Meng Zhang，David Rowley）§ 对此类调用去重时的混淆可能导致诸如 “WindowFunc with winref 2 assigned to WindowAgg with winref 1” 之类的错误。", "title": "避免当查询包含重复的窗口函数调用时规划器可能出现的失败", "commits": ["cae812741"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "6db7b46f8f3a3c462f30ed00c39f1a45bde1b455b14e3fa77cdb6fada2bca501", "section_path": ["变更"], "commit_groups": [["4297a3519", "7027dd499", "cae812741", "ccde5be68"]], "identity_text": "Avoid possible planner failure when a query contains duplicate window function calls (Meng Zhang, David Rowley) Confusion over de-duplication of such calls could result in errors like WindowFunc with winref 2 assigned to WindowAgg with winref 1.", "commit_aliases": ["4297a3519", "7027dd499", "cae812741", "ccde5be68"], "source_commits": ["cae812741"], "source_entry_id": "17.8/changes/008", "db_id": "7ac52809fbfe8babeb50e09de2f149dc", "patch_ids": ["fa4bfd3b1304bc4a95cf26b478914aab"], "statement_hash": "392afbf3348f0707bd8555b9a123869d33484aee1e6cef1a77967d81fcb6e73e", "relations": [{"rule": 2, "type": "equivalent", "target": "4b3957065e21f608944a30199fa8b0a3", "evidence": {"same_day": true, "patch_ids": ["fa4bfd3b1304bc4a95cf26b478914aab"], "statement_hash": "392afbf3348f0707bd8555b9a123869d33484aee1e6cef1a77967d81fcb6e73e"}}, {"rule": 2, "type": "equivalent", "target": "74b77b8e6ab0ea1bc12ae9243c478255", "evidence": {"same_day": true, "patch_ids": ["fa4bfd3b1304bc4a95cf26b478914aab"], "statement_hash": "392afbf3348f0707bd8555b9a123869d33484aee1e6cef1a77967d81fcb6e73e"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b3957065e21f608944a30199fa8b0a3", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "避免当查询包含重复的窗口函数调用时规划器可能出现的失败", "evidence": {"same_day": true, "patch_ids": ["fa4bfd3b1304bc4a95cf26b478914aab"], "statement_hash": "392afbf3348f0707bd8555b9a123869d33484aee1e6cef1a77967d81fcb6e73e"}, "url": "/docs/compare/?release=18.2#18.2-339f2dc7a8d3edca", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "74b77b8e6ab0ea1bc12ae9243c478255", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "避免当查询包含重复的窗口函数调用时规划器可能出现的失败", "evidence": {"same_day": true, "patch_ids": ["fa4bfd3b1304bc4a95cf26b478914aab"], "statement_hash": "392afbf3348f0707bd8555b9a123869d33484aee1e6cef1a77967d81fcb6e73e"}, "url": "/docs/compare/?release=16.12#16.12-8fbbc59398435d48", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}]}, {"id": "17.8-845083cdcffc5df5", "cves": [], "html": "<p>允许在部分 hash 索引上进行索引扫描，即使索引的谓词蕴含 WHERE 子句的真值（Tom Lane）<a href=\"https://postgr.es/c/e79b27662\">§</a></p>\n<p>通常我们会删除被谓词蕴含的 WHERE 子句，因为测试它没有意义——对于每个索引条目，该条件必然成立。然而，如果索引是需要在前导索引键上有 WHERE 子句的类型（如 hash 索引），这样做可能阻止创建索引扫描计划。在考虑此类索引时，不要删除被蕴含的子句。</p>", "text": "允许在部分 hash 索引上进行索引扫描，即使索引的谓词蕴含 WHERE 子句的真值（Tom Lane）§ 通常我们会删除被谓词蕴含的 WHERE 子句，因为测试它没有意义——对于每个索引条目，该条件必然成立。然而，如果索引是需要在前导索引键上有 WHERE 子句的类型（如 hash 索引），这样做可能阻止创建索引扫描计划。在考虑此类索引时，不要删除被蕴含的子句。", "title": "允许在部分 hash 索引上进行索引扫描，即使索引的谓词蕴含 WHERE 子句的真值", "commits": ["e79b27662"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "770c0f30e04264a1bf6777fad19f5cd3fe1a691284c7669cc3c4f98b06bcf061", "section_path": ["变更"], "commit_groups": [["5528e8d10", "9e77323fc", "a212877dc", "b497766a8", "e79b27662", "f19502f04"]], "identity_text": "Allow indexscans on partial hash indexes even when the index's predicate implies the truth of the WHERE clause (Tom Lane) Normally we drop a WHERE clause that is implied by the predicate, since it's pointless to test it; it must hold for every index entry. However that can prevent creation of an indexscan plan if the index is one that requires a WHERE clause on the leading index key, as hash indexes do. Don't drop implied clauses when considering such an index.", "commit_aliases": ["5528e8d10", "9e77323fc", "a212877dc", "b497766a8", "e79b27662", "f19502f04"], "source_commits": ["e79b27662"], "source_entry_id": "17.8/changes/009", "db_id": "46491fe43c6b06ae0b36463bb9ec508d", "patch_ids": ["371e0fb22b0b4c3ce7000e6e8780d0ab"], "statement_hash": "978f69342e3def3b8ca6380a3dacf1634fda30feb1db7c0f20d33cad5e6b4dac", "relations": [{"rule": 2, "type": "equivalent", "target": "b1cd37aac266a35b85d498fbf852a341", "evidence": {"same_day": true, "patch_ids": ["371e0fb22b0b4c3ce7000e6e8780d0ab"], "statement_hash": "978f69342e3def3b8ca6380a3dacf1634fda30feb1db7c0f20d33cad5e6b4dac"}}, {"rule": 2, "type": "equivalent", "target": "be90b044d06ac445fb5ba563113882da", "evidence": {"same_day": true, "patch_ids": ["371e0fb22b0b4c3ce7000e6e8780d0ab"], "statement_hash": "978f69342e3def3b8ca6380a3dacf1634fda30feb1db7c0f20d33cad5e6b4dac"}}, {"rule": 2, "type": "equivalent", "target": "ed2a57d1a47eb0ac687c6d995081429b", "evidence": {"same_day": true, "patch_ids": ["371e0fb22b0b4c3ce7000e6e8780d0ab"], "statement_hash": "978f69342e3def3b8ca6380a3dacf1634fda30feb1db7c0f20d33cad5e6b4dac"}}, {"rule": 2, "type": "equivalent", "target": "f2b4b6b2c2b28f97888464f6ce6ad3fa", "evidence": {"same_day": true, "patch_ids": ["371e0fb22b0b4c3ce7000e6e8780d0ab"], "statement_hash": "978f69342e3def3b8ca6380a3dacf1634fda30feb1db7c0f20d33cad5e6b4dac"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed2a57d1a47eb0ac687c6d995081429b", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "允许在部分 hash 索引上进行索引扫描，即使索引的谓词蕴含 WHERE 子句的真值", "evidence": {"same_day": true, "patch_ids": ["371e0fb22b0b4c3ce7000e6e8780d0ab"], "statement_hash": "978f69342e3def3b8ca6380a3dacf1634fda30feb1db7c0f20d33cad5e6b4dac"}, "url": "/docs/compare/?release=18.2#18.2-61e225cdb2ce1f36", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "be90b044d06ac445fb5ba563113882da", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "允许在部分 hash 索引上进行索引扫描，即使索引的谓词蕴含 WHERE 子句的真值", "evidence": {"same_day": true, "patch_ids": ["371e0fb22b0b4c3ce7000e6e8780d0ab"], "statement_hash": "978f69342e3def3b8ca6380a3dacf1634fda30feb1db7c0f20d33cad5e6b4dac"}, "url": "/docs/compare/?release=16.12#16.12-576930101da7e4de", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "b1cd37aac266a35b85d498fbf852a341", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "允许在部分 hash 索引上进行索引扫描，即使索引的谓词蕴含 WHERE 子句的真值", "evidence": {"same_day": true, "patch_ids": ["371e0fb22b0b4c3ce7000e6e8780d0ab"], "statement_hash": "978f69342e3def3b8ca6380a3dacf1634fda30feb1db7c0f20d33cad5e6b4dac"}, "url": "/docs/compare/?release=15.16#15.16-818eabd46b773ca1", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "f2b4b6b2c2b28f97888464f6ce6ad3fa", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "允许在部分 hash 索引上进行索引扫描，即使索引的谓词蕴含 WHERE 子句的真值", "evidence": {"same_day": true, "patch_ids": ["371e0fb22b0b4c3ce7000e6e8780d0ab"], "statement_hash": "978f69342e3def3b8ca6380a3dacf1634fda30feb1db7c0f20d33cad5e6b4dac"}, "url": "/docs/compare/?release=14.21#14.21-a5950a5bc8025cc6", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-91a20d38e502ab15", "cves": [], "html": "<p>不要为不记录 WAL 的 BRIN 索引生成 WAL（Kirill Reshke）<a href=\"https://postgr.es/c/4b6d096a0\">§</a></p>\n<p>一条很少执行到的代码路径错误地为 BRIN 索引生成了 WAL 记录，即使该索引被标记为不记录 WAL。崩溃恢复时将无法重放该记录，并报告文件已存在的错误。</p>", "text": "不要为不记录 WAL 的 BRIN 索引生成 WAL（Kirill Reshke）§ 一条很少执行到的代码路径错误地为 BRIN 索引生成了 WAL 记录，即使该索引被标记为不记录 WAL。崩溃恢复时将无法重放该记录，并报告文件已存在的错误。", "title": "不要为不记录 WAL 的 BRIN 索引生成 WAL", "commits": ["4b6d096a0"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "2ae64889251c756300604127ceb68d5d8fc0c912bce2f2ecc85e0814bb9bbc61", "section_path": ["变更"], "commit_groups": [["460d97020", "4b6d096a0", "951b60f7a", "a5277700e", "ab4256869", "d77a5f981"]], "identity_text": "Do not emit WAL for unlogged BRIN indexes (Kirill Reshke) One seldom-taken code path incorrectly emitted a WAL record relating to a BRIN index even if the index was marked unlogged. Crash recovery would then fail to replay that record, complaining that the file already exists.", "commit_aliases": ["460d97020", "4b6d096a0", "951b60f7a", "a5277700e", "ab4256869", "d77a5f981"], "source_commits": ["4b6d096a0"], "source_entry_id": "17.8/changes/010", "db_id": "293acf13040f24b30864b10bd699a3a0", "patch_ids": ["548b71793684eb7a3b4dc68f7e774931"], "statement_hash": "14bc5b9ab44a24425a2aaf5ae8e65539cd475fa7e779fdd338932c2bec859e4f", "relations": [{"rule": 2, "type": "equivalent", "target": "0937f4c4aaa8ff37a519ed8e315b4268", "evidence": {"same_day": true, "patch_ids": ["548b71793684eb7a3b4dc68f7e774931"], "statement_hash": "14bc5b9ab44a24425a2aaf5ae8e65539cd475fa7e779fdd338932c2bec859e4f"}}, {"rule": 2, "type": "equivalent", "target": "5e595f6d6c44016c34bfdd305d261a1f", "evidence": {"same_day": true, "patch_ids": ["548b71793684eb7a3b4dc68f7e774931"], "statement_hash": "14bc5b9ab44a24425a2aaf5ae8e65539cd475fa7e779fdd338932c2bec859e4f"}}, {"rule": 2, "type": "equivalent", "target": "a7d18f384393c9a111537f87704719de", "evidence": {"same_day": true, "patch_ids": ["548b71793684eb7a3b4dc68f7e774931"], "statement_hash": "14bc5b9ab44a24425a2aaf5ae8e65539cd475fa7e779fdd338932c2bec859e4f"}}, {"rule": 2, "type": "equivalent", "target": "e2905bab9de145b119d05715dee49169", "evidence": {"same_day": true, "patch_ids": ["548b71793684eb7a3b4dc68f7e774931"], "statement_hash": "14bc5b9ab44a24425a2aaf5ae8e65539cd475fa7e779fdd338932c2bec859e4f"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0937f4c4aaa8ff37a519ed8e315b4268", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "不要为不记录 WAL 的 BRIN 索引生成 WAL", "evidence": {"same_day": true, "patch_ids": ["548b71793684eb7a3b4dc68f7e774931"], "statement_hash": "14bc5b9ab44a24425a2aaf5ae8e65539cd475fa7e779fdd338932c2bec859e4f"}, "url": "/docs/compare/?release=18.2#18.2-569b26ba06e60ceb", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "a7d18f384393c9a111537f87704719de", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "不要为不记录 WAL 的 BRIN 索引生成 WAL", "evidence": {"same_day": true, "patch_ids": ["548b71793684eb7a3b4dc68f7e774931"], "statement_hash": "14bc5b9ab44a24425a2aaf5ae8e65539cd475fa7e779fdd338932c2bec859e4f"}, "url": "/docs/compare/?release=16.12#16.12-1d78fb1ed6b323ce", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "5e595f6d6c44016c34bfdd305d261a1f", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "不要为不记录 WAL 的 BRIN 索引生成 WAL", "evidence": {"same_day": true, "patch_ids": ["548b71793684eb7a3b4dc68f7e774931"], "statement_hash": "14bc5b9ab44a24425a2aaf5ae8e65539cd475fa7e779fdd338932c2bec859e4f"}, "url": "/docs/compare/?release=15.16#15.16-a50c7a9a9c1966f8", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "e2905bab9de145b119d05715dee49169", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "不要为不记录 WAL 的 BRIN 索引生成 WAL", "evidence": {"same_day": true, "patch_ids": ["548b71793684eb7a3b4dc68f7e774931"], "statement_hash": "14bc5b9ab44a24425a2aaf5ae8e65539cd475fa7e779fdd338932c2bec859e4f"}, "url": "/docs/compare/?release=14.21#14.21-7a0553ecbce106c9", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-4391ac8372980d16", "cves": [], "html": "<p>防止截断未读 <code>NOTIFY</code> 消息仍然需要的 CLOG（Joel Jacobson，Heikki Linnakangas）<a href=\"https://postgr.es/c/d02c03ddc\">§</a> <a href=\"https://postgr.es/c/c2682810a\">§</a> <a href=\"https://postgr.es/c/d80d5f099\">§</a></p>\n<p>此修复防止了当后端进程吸收 <code>NOTIFY</code> 消息较慢时出现的 <span>“<span>could not access status of transaction</span>”</span> 错误。</p>", "text": "防止截断未读 NOTIFY 消息仍然需要的 CLOG（Joel Jacobson，Heikki Linnakangas）§ § § 此修复防止了当后端进程吸收 NOTIFY 消息较慢时出现的 “could not access status of transaction” 错误。", "title": "防止截断未读 NOTIFY 消息仍然需要的 CLOG", "commits": ["c2682810a", "d02c03ddc", "d80d5f099"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "7b361574d422d1f5cfee07fb8ab79fb4d50a3380d79f38e7b57babb20b5328e3", "section_path": ["变更"], "commit_groups": [["053e1868b", "1a469d7b5", "321ec5462", "8eeb4a0f7", "d02c03ddc", "eba917d36"], ["0bdc777e8", "0e8eaa218", "21a9014cf", "82fa6b78d", "84f1bf4af", "d80d5f099"], ["0c862646c", "44e8c60be", "797e9ea6e", "7b069a187", "c2682810a", "c2e58c071"]], "identity_text": "Prevent truncation of CLOG that is still needed by unread NOTIFY messages (Joel Jacobson, Heikki Linnakangas) This fix prevents could not access status of transaction errors when a backend is slow to absorb NOTIFY messages.", "commit_aliases": ["053e1868b", "0bdc777e8", "0c862646c", "0e8eaa218", "1a469d7b5", "21a9014cf", "321ec5462", "44e8c60be", "797e9ea6e", "7b069a187", "82fa6b78d", "84f1bf4af", "8eeb4a0f7", "c2682810a", "c2e58c071", "d02c03ddc", "d80d5f099", "eba917d36"], "source_commits": ["c2682810a", "d02c03ddc", "d80d5f099"], "source_entry_id": "17.8/changes/011", "db_id": "b59bb775aaba7282f555785a3372d9b7", "patch_ids": ["049c4c1146a404bda2c88a886f6a54f5", "2e0dbedb2008ef722d72cb29c205b12b", "f451d1b52bfa95906c50f2afbd378177"], "statement_hash": "5649a8930d269e6b71be2eb73aebd23736ffad2e22f4acbfe83ddfebe1ce9f36", "relations": [{"rule": 2, "type": "equivalent", "target": "51e86dfcb154e6afc9dffcc36abdfb81", "evidence": {"same_day": true, "patch_ids": ["049c4c1146a404bda2c88a886f6a54f5", "2e0dbedb2008ef722d72cb29c205b12b", "f451d1b52bfa95906c50f2afbd378177"], "statement_hash": "5649a8930d269e6b71be2eb73aebd23736ffad2e22f4acbfe83ddfebe1ce9f36"}}, {"rule": 2, "type": "equivalent", "target": "9ff198dcfbb11c56f5a356cc045a2e21", "evidence": {"same_day": true, "patch_ids": ["049c4c1146a404bda2c88a886f6a54f5", "2e0dbedb2008ef722d72cb29c205b12b", "f451d1b52bfa95906c50f2afbd378177"], "statement_hash": "5649a8930d269e6b71be2eb73aebd23736ffad2e22f4acbfe83ddfebe1ce9f36"}}, {"rule": 2, "type": "equivalent", "target": "b91addf2aa923755ae6d33001e1ecedf", "evidence": {"same_day": true, "patch_ids": ["049c4c1146a404bda2c88a886f6a54f5", "2e0dbedb2008ef722d72cb29c205b12b", "f451d1b52bfa95906c50f2afbd378177"], "statement_hash": "5649a8930d269e6b71be2eb73aebd23736ffad2e22f4acbfe83ddfebe1ce9f36"}}, {"rule": 2, "type": "equivalent", "target": "fc6cc5e241bcf4f346b4c240b4ebb59c", "evidence": {"same_day": true, "patch_ids": ["049c4c1146a404bda2c88a886f6a54f5", "2e0dbedb2008ef722d72cb29c205b12b", "f451d1b52bfa95906c50f2afbd378177"], "statement_hash": "5649a8930d269e6b71be2eb73aebd23736ffad2e22f4acbfe83ddfebe1ce9f36"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ff198dcfbb11c56f5a356cc045a2e21", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "防止截断未读 NOTIFY 消息仍然需要的 CLOG", "evidence": {"same_day": true, "patch_ids": ["049c4c1146a404bda2c88a886f6a54f5", "2e0dbedb2008ef722d72cb29c205b12b", "f451d1b52bfa95906c50f2afbd378177"], "statement_hash": "5649a8930d269e6b71be2eb73aebd23736ffad2e22f4acbfe83ddfebe1ce9f36"}, "url": "/docs/compare/?release=18.2#18.2-0a2a82e68a475c0b", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "b91addf2aa923755ae6d33001e1ecedf", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "防止截断未读 NOTIFY 消息仍然需要的 CLOG", "evidence": {"same_day": true, "patch_ids": ["049c4c1146a404bda2c88a886f6a54f5", "2e0dbedb2008ef722d72cb29c205b12b", "f451d1b52bfa95906c50f2afbd378177"], "statement_hash": "5649a8930d269e6b71be2eb73aebd23736ffad2e22f4acbfe83ddfebe1ce9f36"}, "url": "/docs/compare/?release=16.12#16.12-c24c02cc9ffbeaa4", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "fc6cc5e241bcf4f346b4c240b4ebb59c", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "防止截断未读 NOTIFY 消息仍然需要的 CLOG", "evidence": {"same_day": true, "patch_ids": ["049c4c1146a404bda2c88a886f6a54f5", "2e0dbedb2008ef722d72cb29c205b12b", "f451d1b52bfa95906c50f2afbd378177"], "statement_hash": "5649a8930d269e6b71be2eb73aebd23736ffad2e22f4acbfe83ddfebe1ce9f36"}, "url": "/docs/compare/?release=15.16#15.16-33cc5dd7a3fa872f", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "51e86dfcb154e6afc9dffcc36abdfb81", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "防止截断未读 NOTIFY 消息仍然需要的 CLOG", "evidence": {"same_day": true, "patch_ids": ["049c4c1146a404bda2c88a886f6a54f5", "2e0dbedb2008ef722d72cb29c205b12b", "f451d1b52bfa95906c50f2afbd378177"], "statement_hash": "5649a8930d269e6b71be2eb73aebd23736ffad2e22f4acbfe83ddfebe1ce9f36"}, "url": "/docs/compare/?release=14.21#14.21-e468ab28720aedd2", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-9232f0a43f14d80d", "cves": [], "html": "<p>将 <code>NOTIFY</code> 消息处理期间发生的错误升级为 FATAL，即关闭连接（Heikki Linnakangas）<a href=\"https://postgr.es/c/b821c9292\">§</a></p>\n<p>以前，如果后端在吸收 <code>NOTIFY</code> 消息时遇到错误，它会跳过该消息，向客户端报告错误，然后继续运行。但这种行为存在很多问题。一个主要问题是，客户端没有好的方法来知道通知丢失了，更无法知道通知的内容是什么。根据应用逻辑的不同，错过一条通知可能导致应用程序卡在等待状态。此外，剩余的消息在有人发送新的 <code>NOTIFY</code> 之前不会被处理。</p>\n<p>另外，如果连接在接收到 <code>NOTIFY</code> 信号时处于空闲状态，由于无关的原因，任何 ERROR 都会被升级为 FATAL。因此，我们选择在所有情况下都这样做，以保持一致性，并向应用程序提供一个明确的信号，表明它可能错过了一些通知。</p>", "text": "将 NOTIFY 消息处理期间发生的错误升级为 FATAL，即关闭连接（Heikki Linnakangas）§ 以前，如果后端在吸收 NOTIFY 消息时遇到错误，它会跳过该消息，向客户端报告错误，然后继续运行。但这种行为存在很多问题。一个主要问题是，客户端没有好的方法来知道通知丢失了，更无法知道通知的内容是什么。根据应用逻辑的不同，错过一条通知可能导致应用程序卡在等待状态。此外，剩余的消息在有人发送新的 NOTIFY 之前不会被处理。 另外，如果连接在接收到 NOTIFY 信号时处于空闲状态，由于无关的原因，任何 ERROR 都会被升级为 FATAL。因此，我们选择在所有情况下都这样做，以保持一致性，并向应用程序提供一个明确的信号，表明它可能错过了一些通知。", "title": "将 NOTIFY 消息处理期间发生的错误升级为 FATAL，即关闭连接", "commits": ["b821c9292"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "e2aadfc7caeda819cb0a0a65b11f26b37f650ce072735a3204f7d7377ba91394", "section_path": ["变更"], "commit_groups": [["1b4699090", "7cb05dd2d", "aab4a84bb", "b1da37de2", "b821c9292", "c1a5bde00"]], "identity_text": "Escalate errors occurring during NOTIFY message processing to FATAL, i.e. close the connection (Heikki Linnakangas) Formerly, if a backend got an error while absorbing a NOTIFY message, it would advance past that message, report the error to the client, and move on. That behavior was fraught with problems though. One big concern is that the client has no good way to know that a notification was lost, and certainly no way to know what was in it. Depending on the application logic, missing a notification could cause the application to get stuck waiting, for example. Also, any remaining messages would not get processed until someone sent a new NOTIFY. Also, if the connection is idle at the time of receiving a NOTIFY signal, any ERROR would be escalated to FATAL anyway, due to unrelated concerns. Therefore, we've chosen to make that happen in all cases, for consistency and to provide a clear signal to the application that it might have missed some notifications.", "commit_aliases": ["1b4699090", "7cb05dd2d", "aab4a84bb", "b1da37de2", "b821c9292", "c1a5bde00"], "source_commits": ["b821c9292"], "source_entry_id": "17.8/changes/012", "db_id": "a44a10f8650876c478bd97a4096ffb22", "patch_ids": ["4e4c8262cf4b59a9a0c02b859c31ba93"], "statement_hash": "205197bc16f626c3fb09afea881f30f8da7d367c145557afffb3084d4cb8e343", "relations": [{"rule": 2, "type": "equivalent", "target": "2578b5de351f2e0a0f1cb1385293acf1", "evidence": {"same_day": true, "patch_ids": ["4e4c8262cf4b59a9a0c02b859c31ba93"], "statement_hash": "205197bc16f626c3fb09afea881f30f8da7d367c145557afffb3084d4cb8e343"}}, {"rule": 2, "type": "equivalent", "target": "2b671b11e767f32199661c5675739435", "evidence": {"same_day": true, "patch_ids": ["4e4c8262cf4b59a9a0c02b859c31ba93"], "statement_hash": "205197bc16f626c3fb09afea881f30f8da7d367c145557afffb3084d4cb8e343"}}, {"rule": 2, "type": "equivalent", "target": "340f3cdce36c643b1f14a964c498f497", "evidence": {"same_day": true, "patch_ids": ["4e4c8262cf4b59a9a0c02b859c31ba93"], "statement_hash": "205197bc16f626c3fb09afea881f30f8da7d367c145557afffb3084d4cb8e343"}}, {"rule": 2, "type": "equivalent", "target": "d4ce5365c9cfca02e6db88e5179af61a", "evidence": {"same_day": true, "patch_ids": ["4e4c8262cf4b59a9a0c02b859c31ba93"], "statement_hash": "205197bc16f626c3fb09afea881f30f8da7d367c145557afffb3084d4cb8e343"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2578b5de351f2e0a0f1cb1385293acf1", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "将 NOTIFY 消息处理期间发生的错误升级为 FATAL，即关闭连接", "evidence": {"same_day": true, "patch_ids": ["4e4c8262cf4b59a9a0c02b859c31ba93"], "statement_hash": "205197bc16f626c3fb09afea881f30f8da7d367c145557afffb3084d4cb8e343"}, "url": "/docs/compare/?release=18.2#18.2-073ea8d2455d251d", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "2b671b11e767f32199661c5675739435", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "将 NOTIFY 消息处理期间发生的错误升级为 FATAL，即关闭连接", "evidence": {"same_day": true, "patch_ids": ["4e4c8262cf4b59a9a0c02b859c31ba93"], "statement_hash": "205197bc16f626c3fb09afea881f30f8da7d367c145557afffb3084d4cb8e343"}, "url": "/docs/compare/?release=16.12#16.12-29d9c9d4dad68ed2", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "340f3cdce36c643b1f14a964c498f497", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "将 NOTIFY 消息处理期间发生的错误升级为 FATAL，即关闭连接", "evidence": {"same_day": true, "patch_ids": ["4e4c8262cf4b59a9a0c02b859c31ba93"], "statement_hash": "205197bc16f626c3fb09afea881f30f8da7d367c145557afffb3084d4cb8e343"}, "url": "/docs/compare/?release=15.16#15.16-46172f9fd6222d05", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "d4ce5365c9cfca02e6db88e5179af61a", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "将 NOTIFY 消息处理期间发生的错误升级为 FATAL，即关闭连接", "evidence": {"same_day": true, "patch_ids": ["4e4c8262cf4b59a9a0c02b859c31ba93"], "statement_hash": "205197bc16f626c3fb09afea881f30f8da7d367c145557afffb3084d4cb8e343"}, "url": "/docs/compare/?release=14.21#14.21-01ee61ebe13f940a", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-ebe5acebca0a9592", "cves": [], "html": "<p>修复在发生并发更新时 <code>EXPLAIN ANALYZE MERGE</code> 对更新计数错误的问题（Dean Rasheed）<a href=\"https://postgr.es/c/d6c415c4b\">§</a></p>\n<p>这种情况会导致 <code>EXPLAIN</code> 输出中的 <span>“<span>skipped</span>”</span> 元组计数错误，或者在启用断言的构建中引发断言失败。</p>", "text": "修复在发生并发更新时 EXPLAIN ANALYZE MERGE 对更新计数错误的问题（Dean Rasheed）§ 这种情况会导致 EXPLAIN 输出中的 “skipped” 元组计数错误，或者在启用断言的构建中引发断言失败。", "title": "修复在发生并发更新时 EXPLAIN ANALYZE MERGE 对更新计数错误的问题", "commits": ["d6c415c4b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "1c679b41a417e3a47fd80214230b70ecef4eda2a57625b8d338e49a0622680ab", "section_path": ["变更"], "commit_groups": [["1b92fe7bb", "5749d95d4", "d6c415c4b"]], "identity_text": "Fix erroneous counting of updates in EXPLAIN ANALYZE MERGE with a concurrent update (Dean Rasheed) This situation led to an incorrect count of skipped tuples in EXPLAIN's output, or to an assertion failure in an assert-enabled build.", "commit_aliases": ["1b92fe7bb", "5749d95d4", "d6c415c4b"], "source_commits": ["d6c415c4b"], "source_entry_id": "17.8/changes/013", "db_id": "0cbfe95ba5642b68cc4518c9e5648046", "patch_ids": ["2609b24658a7707034f782947e9967cc"], "statement_hash": "d84813ce8e9759afdcfc9b4a4e63c281f7b3b02a756d0a01e9e44928e95b9078", "relations": [{"rule": 2, "type": "equivalent", "target": "25fcb7323829da37f0ce18de95018eec", "evidence": {"same_day": true, "patch_ids": ["2609b24658a7707034f782947e9967cc"], "statement_hash": "d84813ce8e9759afdcfc9b4a4e63c281f7b3b02a756d0a01e9e44928e95b9078"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "25fcb7323829da37f0ce18de95018eec", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复在发生并发更新时 EXPLAIN ANALYZE MERGE 对更新计数错误的问题", "evidence": {"same_day": true, "patch_ids": ["2609b24658a7707034f782947e9967cc"], "statement_hash": "d84813ce8e9759afdcfc9b4a4e63c281f7b3b02a756d0a01e9e44928e95b9078"}, "url": "/docs/compare/?release=18.2#18.2-6bf24a3ded894f6c", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}]}, {"id": "17.8-50532778c9796546", "cves": [], "html": "<p>修复在锁定元组时跟踪更新链的错误（Jasper Smit）<a href=\"https://postgr.es/c/bb87d7fef\">§</a></p>\n<p>此代码路径忽略了检查更新链中第一个新元组的 xmin，使得在原始更新者中止且空间被 <code>VACUUM</code> 立即回收并重新使用的情况下，可能会锁定一个不相关的元组。这可能导致意外的事务延迟或死锁。与识别到错误元组相关的错误也已被观察到。</p>", "text": "修复在锁定元组时跟踪更新链的错误（Jasper Smit）§ 此代码路径忽略了检查更新链中第一个新元组的 xmin，使得在原始更新者中止且空间被 VACUUM 立即回收并重新使用的情况下，可能会锁定一个不相关的元组。这可能导致意外的事务延迟或死锁。与识别到错误元组相关的错误也已被观察到。", "title": "修复在锁定元组时跟踪更新链的错误", "commits": ["bb87d7fef"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "9dd6081ac40b2bcba76a6cc2a5b986e80bfd52b5162335f9cc5e6d08e4300a88", "section_path": ["变更"], "commit_groups": [["3e3a80f62", "5d5487cd2", "7efef18ff", "955f55068", "b6201c76e", "bb87d7fef"]], "identity_text": "Fix bug in following update chain when locking a tuple (Jasper Smit) This code path neglected to check the xmin of the first new tuple in the update chain, making it possible to lock an unrelated tuple if the original updater aborted and the space was immediately reclaimed by VACUUM and then re-used. That could cause unexpected transaction delays or deadlocks. Errors associated with having identified the wrong tuple have also been observed.", "commit_aliases": ["3e3a80f62", "5d5487cd2", "7efef18ff", "955f55068", "b6201c76e", "bb87d7fef"], "source_commits": ["bb87d7fef"], "source_entry_id": "17.8/changes/014", "db_id": "8954f19da0659a10c8106e76f12e9ccc", "patch_ids": ["e3dafdb5e648603a0ea08c3d21ee84d7"], "statement_hash": "ae47dc62dd8aef911c4966b610546ed3a91d32ad6ba6e73105bd7411263a30d1", "relations": [{"rule": 2, "type": "equivalent", "target": "4f4cdca5150cc29cfd55ff6bd60fa8f1", "evidence": {"same_day": true, "patch_ids": ["e3dafdb5e648603a0ea08c3d21ee84d7"], "statement_hash": "ae47dc62dd8aef911c4966b610546ed3a91d32ad6ba6e73105bd7411263a30d1"}}, {"rule": 2, "type": "equivalent", "target": "5ccdb2c39df1f114f475423eacc2efdd", "evidence": {"same_day": true, "patch_ids": ["e3dafdb5e648603a0ea08c3d21ee84d7"], "statement_hash": "ae47dc62dd8aef911c4966b610546ed3a91d32ad6ba6e73105bd7411263a30d1"}}, {"rule": 2, "type": "equivalent", "target": "814dec09a6214d7245a3c0e86beb4e1d", "evidence": {"same_day": true, "patch_ids": ["e3dafdb5e648603a0ea08c3d21ee84d7"], "statement_hash": "ae47dc62dd8aef911c4966b610546ed3a91d32ad6ba6e73105bd7411263a30d1"}}, {"rule": 2, "type": "equivalent", "target": "d4cc08cb8b81ba921b2e9bc0318b23a2", "evidence": {"same_day": true, "patch_ids": ["e3dafdb5e648603a0ea08c3d21ee84d7"], "statement_hash": "ae47dc62dd8aef911c4966b610546ed3a91d32ad6ba6e73105bd7411263a30d1"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d4cc08cb8b81ba921b2e9bc0318b23a2", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复在锁定元组时跟踪更新链的错误", "evidence": {"same_day": true, "patch_ids": ["e3dafdb5e648603a0ea08c3d21ee84d7"], "statement_hash": "ae47dc62dd8aef911c4966b610546ed3a91d32ad6ba6e73105bd7411263a30d1"}, "url": "/docs/compare/?release=18.2#18.2-96ad5c05e88ce8b6", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "5ccdb2c39df1f114f475423eacc2efdd", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复在锁定元组时跟踪更新链的错误", "evidence": {"same_day": true, "patch_ids": ["e3dafdb5e648603a0ea08c3d21ee84d7"], "statement_hash": "ae47dc62dd8aef911c4966b610546ed3a91d32ad6ba6e73105bd7411263a30d1"}, "url": "/docs/compare/?release=16.12#16.12-1952a802cdfdf415", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "814dec09a6214d7245a3c0e86beb4e1d", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复在锁定元组时跟踪更新链的错误", "evidence": {"same_day": true, "patch_ids": ["e3dafdb5e648603a0ea08c3d21ee84d7"], "statement_hash": "ae47dc62dd8aef911c4966b610546ed3a91d32ad6ba6e73105bd7411263a30d1"}, "url": "/docs/compare/?release=15.16#15.16-2115d7c9b8824ad6", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "4f4cdca5150cc29cfd55ff6bd60fa8f1", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复在锁定元组时跟踪更新链的错误", "evidence": {"same_day": true, "patch_ids": ["e3dafdb5e648603a0ea08c3d21ee84d7"], "statement_hash": "ae47dc62dd8aef911c4966b610546ed3a91d32ad6ba6e73105bd7411263a30d1"}, "url": "/docs/compare/?release=14.21#14.21-c0f9814f19f729ee", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-3bb47161eed5f310", "cves": [], "html": "<p>修复原地更新系统目录时的问题（Noah Misch）<a href=\"https://postgr.es/c/0f69bedde\">§</a> <a href=\"https://postgr.es/c/d3e5d8950\">§</a> <a href=\"https://postgr.es/c/bcb784e7d\">§</a></p>\n<p>对于原地更新，发送非事务性的失效消息，因为此类更新在事务回滚后仍会保留。同时，确保该更新在其他会话可见之前已经写入 WAL。这些修复主要防止关系的 frozen-XID 属性出现不一致，从而避免 CLOG 被过早截断并随后出现 <span>“<span>could not access status of transaction</span>”</span> 错误。</p>", "text": "修复原地更新系统目录时的问题（Noah Misch）§ § § 对于原地更新，发送非事务性的失效消息，因为此类更新在事务回滚后仍会保留。同时，确保该更新在其他会话可见之前已经写入 WAL。这些修复主要防止关系的 frozen-XID 属性出现不一致，从而避免 CLOG 被过早截断并随后出现 “could not access status of transaction” 错误。", "title": "修复原地更新系统目录时的问题", "commits": ["0f69bedde", "bcb784e7d", "d3e5d8950"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "af0dd5d9953146cdd38d153f968f4bcfb04abcf63b67128386f241a1a686902d", "section_path": ["变更"], "commit_groups": [["05d605b6c", "0f69bedde", "1d7b02711", "811422471"], ["0dfbd191a", "27e4fad98", "86091202a", "bcb784e7d"], ["20a48c156", "720e9304f", "d3e5d8950", "e4b1986b9"]], "identity_text": "Fix issues around in-place catalog updates (Noah Misch) Send a nontransactional invalidation message for an in-place update, since such an update will survive transaction rollback. Also ensure that the update is WAL-logged before other sessions can see it. These fixes primarily prevent scenarios in which relations' frozen-XID attributes become inconsistent, possibly allowing premature CLOG truncation and subsequent could not access status of transaction errors.", "commit_aliases": ["05d605b6c", "0dfbd191a", "0f69bedde", "1d7b02711", "20a48c156", "27e4fad98", "720e9304f", "811422471", "86091202a", "bcb784e7d", "d3e5d8950", "e4b1986b9"], "source_commits": ["0f69bedde", "bcb784e7d", "d3e5d8950"], "source_entry_id": "17.8/changes/015", "db_id": "577989fe6b9f208495ce6a7ab6b002c6", "patch_ids": ["1d2a4559a8d7276dbf544ec3c3139d64", "810b6ce6361bfec35a8994954d64ee9a", "eed66ab080408c0e6d006c6433746be2"], "statement_hash": "33139139d6db8add9f0014229fa4e27308c3f7fb8f4aeed7bb35cbc7df54153a", "relations": [{"rule": 2, "type": "equivalent", "target": "1a1ca89a6f8b8a26e2fdc5c3adffee40", "evidence": {"same_day": true, "patch_ids": ["1d2a4559a8d7276dbf544ec3c3139d64", "810b6ce6361bfec35a8994954d64ee9a", "eed66ab080408c0e6d006c6433746be2"], "statement_hash": "33139139d6db8add9f0014229fa4e27308c3f7fb8f4aeed7bb35cbc7df54153a"}}, {"rule": 2, "type": "equivalent", "target": "24d2c263d61d870ad15e04e37b9be312", "evidence": {"same_day": true, "patch_ids": ["1d2a4559a8d7276dbf544ec3c3139d64", "810b6ce6361bfec35a8994954d64ee9a", "eed66ab080408c0e6d006c6433746be2"], "statement_hash": "33139139d6db8add9f0014229fa4e27308c3f7fb8f4aeed7bb35cbc7df54153a"}}, {"rule": 2, "type": "equivalent", "target": "7e9c59cfc9b17218ff9e506d4b425a25", "evidence": {"same_day": true, "patch_ids": ["1d2a4559a8d7276dbf544ec3c3139d64", "810b6ce6361bfec35a8994954d64ee9a", "eed66ab080408c0e6d006c6433746be2"], "statement_hash": "33139139d6db8add9f0014229fa4e27308c3f7fb8f4aeed7bb35cbc7df54153a"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "24d2c263d61d870ad15e04e37b9be312", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复原地更新系统目录时的问题", "evidence": {"same_day": true, "patch_ids": ["1d2a4559a8d7276dbf544ec3c3139d64", "810b6ce6361bfec35a8994954d64ee9a", "eed66ab080408c0e6d006c6433746be2"], "statement_hash": "33139139d6db8add9f0014229fa4e27308c3f7fb8f4aeed7bb35cbc7df54153a"}, "url": "/docs/compare/?release=16.12#16.12-3bb47161eed5f310", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "1a1ca89a6f8b8a26e2fdc5c3adffee40", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复原地更新系统目录时的问题", "evidence": {"same_day": true, "patch_ids": ["1d2a4559a8d7276dbf544ec3c3139d64", "810b6ce6361bfec35a8994954d64ee9a", "eed66ab080408c0e6d006c6433746be2"], "statement_hash": "33139139d6db8add9f0014229fa4e27308c3f7fb8f4aeed7bb35cbc7df54153a"}, "url": "/docs/compare/?release=15.16#15.16-3bb47161eed5f310", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "7e9c59cfc9b17218ff9e506d4b425a25", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复原地更新系统目录时的问题", "evidence": {"same_day": true, "patch_ids": ["1d2a4559a8d7276dbf544ec3c3139d64", "810b6ce6361bfec35a8994954d64ee9a", "eed66ab080408c0e6d006c6433746be2"], "statement_hash": "33139139d6db8add9f0014229fa4e27308c3f7fb8f4aeed7bb35cbc7df54153a"}, "url": "/docs/compare/?release=14.21#14.21-3bb47161eed5f310", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-9171e2849738082f", "cves": [], "html": "<p>修复对大表增量备份处理不正确的问题（Robert Haas、Oleg Tkachenko）<a href=\"https://postgr.es/c/ad569b54a\">§</a></p>\n<p>如果一个超过 1GB 的表（更一般地说，超过安装的段大小的表）在基础备份和增量备份之间被 <code>VACUUM</code> 截断，<span>pg_combinebackup</span> 可能会因 <span>“<span>truncation block length in excess of segment size</span>”</span> 错误而失败，从而无法恢复该增量备份。</p>", "text": "修复对大表增量备份处理不正确的问题（Robert Haas、Oleg Tkachenko）§ 如果一个超过 1GB 的表（更一般地说，超过安装的段大小的表）在基础备份和增量备份之间被 VACUUM 截断，pg_combinebackup 可能会因 “truncation block length in excess of segment size” 错误而失败，从而无法恢复该增量备份。", "title": "修复对大表增量备份处理不正确的问题", "commits": ["ad569b54a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "95592690197d3a5c77bf3e58c27a9e322d57f0eea404da86000b542ea1b2858d", "section_path": ["变更"], "commit_groups": [["ad569b54a", "c80b0c9d6", "ecd275718"]], "identity_text": "Fix incorrect handling of incremental backups of large tables (Robert Haas, Oleg Tkachenko) If a table exceeding 1GB (or in general, the installation's segment size) is truncated by VACUUM between the base backup and the incremental backup, pg_combinebackup could fail with an error about truncation block length in excess of segment size. This prevented restoring the incremental backup.", "commit_aliases": ["ad569b54a", "c80b0c9d6", "ecd275718"], "source_commits": ["ad569b54a"], "source_entry_id": "17.8/changes/016", "db_id": "396235bc9daa1f15f99178df7bd67a76", "patch_ids": ["be976872554bd99653b2dd720a84a67c"], "statement_hash": "417141a765e5e572f0440e8e2d390439f63b06fcb081832123c771ab5f3c3769", "relations": [{"rule": 2, "type": "equivalent", "target": "5de4dbe75c947fa408b59b064069c0f4", "evidence": {"same_day": true, "patch_ids": ["be976872554bd99653b2dd720a84a67c"], "statement_hash": "417141a765e5e572f0440e8e2d390439f63b06fcb081832123c771ab5f3c3769"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5de4dbe75c947fa408b59b064069c0f4", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复对大表增量备份处理不正确的问题", "evidence": {"same_day": true, "patch_ids": ["be976872554bd99653b2dd720a84a67c"], "statement_hash": "417141a765e5e572f0440e8e2d390439f63b06fcb081832123c771ab5f3c3769"}, "url": "/docs/compare/?release=18.2#18.2-ac8dbfd270ee5d7f", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}]}, {"id": "17.8-ff65f3935e08be00", "cves": [], "html": "<p>修复后端进程在退出时由于尝试在已取消映射的共享内存段中释放锁而可能崩溃的问题（Rahila Syed）<a href=\"https://postgr.es/c/4071fe900\">§</a></p>", "text": "修复后端进程在退出时由于尝试在已取消映射的共享内存段中释放锁而可能崩溃的问题（Rahila Syed）§", "title": "修复后端进程在退出时由于尝试在已取消映射的共享内存段中释放锁而可能崩溃的问题", "commits": ["4071fe900"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "9083f4f6522b163b1b2786ae037c69cacbae890835a8a3956a2f58bbfd79f92f", "section_path": ["变更"], "commit_groups": [["1943ceb38", "4071fe900", "980b7c736", "9cbb1d21d", "b926ff137", "f6df78173"]], "identity_text": "Fix potential backend process crash at process exit due to trying to release a lock in an already-unmapped shared memory segment (Rahila Syed)", "commit_aliases": ["1943ceb38", "4071fe900", "980b7c736", "9cbb1d21d", "b926ff137", "f6df78173"], "source_commits": ["4071fe900"], "source_entry_id": "17.8/changes/017", "db_id": "d2811b8c558ee3336f69ce2dee648262", "patch_ids": ["126653f8f3297278586a3928c56e06f3"], "statement_hash": "92dcd4d1c3bd738dad9644948eb1cd6efd94bdefcd3219e424732f890c0bceb3", "relations": [{"rule": 2, "type": "equivalent", "target": "125f7282ee77b2dbf96db553539c22c4", "evidence": {"same_day": true, "patch_ids": ["126653f8f3297278586a3928c56e06f3"], "statement_hash": "92dcd4d1c3bd738dad9644948eb1cd6efd94bdefcd3219e424732f890c0bceb3"}}, {"rule": 2, "type": "equivalent", "target": "45af7190ae2808ef37392b8f701626cf", "evidence": {"same_day": true, "patch_ids": ["126653f8f3297278586a3928c56e06f3"], "statement_hash": "92dcd4d1c3bd738dad9644948eb1cd6efd94bdefcd3219e424732f890c0bceb3"}}, {"rule": 2, "type": "equivalent", "target": "5ad3db5c0edaa4934f3f9d9b4709c52d", "evidence": {"same_day": true, "patch_ids": ["126653f8f3297278586a3928c56e06f3"], "statement_hash": "92dcd4d1c3bd738dad9644948eb1cd6efd94bdefcd3219e424732f890c0bceb3"}}, {"rule": 2, "type": "equivalent", "target": "7be6eebc70de0b6a710a45541a4092f0", "evidence": {"same_day": true, "patch_ids": ["126653f8f3297278586a3928c56e06f3"], "statement_hash": "92dcd4d1c3bd738dad9644948eb1cd6efd94bdefcd3219e424732f890c0bceb3"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5ad3db5c0edaa4934f3f9d9b4709c52d", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复后端进程在退出时由于尝试在已取消映射的共享内存段中释放锁而可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": ["126653f8f3297278586a3928c56e06f3"], "statement_hash": "92dcd4d1c3bd738dad9644948eb1cd6efd94bdefcd3219e424732f890c0bceb3"}, "url": "/docs/compare/?release=18.2#18.2-c5a2be58244ca433", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "7be6eebc70de0b6a710a45541a4092f0", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复后端进程在退出时由于尝试在已取消映射的共享内存段中释放锁而可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": ["126653f8f3297278586a3928c56e06f3"], "statement_hash": "92dcd4d1c3bd738dad9644948eb1cd6efd94bdefcd3219e424732f890c0bceb3"}, "url": "/docs/compare/?release=16.12#16.12-a697dba42d12b45f", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "125f7282ee77b2dbf96db553539c22c4", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复后端进程在退出时由于尝试在已取消映射的共享内存段中释放锁而可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": ["126653f8f3297278586a3928c56e06f3"], "statement_hash": "92dcd4d1c3bd738dad9644948eb1cd6efd94bdefcd3219e424732f890c0bceb3"}, "url": "/docs/compare/?release=15.16#15.16-4db75c5b481234d4", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "45af7190ae2808ef37392b8f701626cf", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复后端进程在退出时由于尝试在已取消映射的共享内存段中释放锁而可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": ["126653f8f3297278586a3928c56e06f3"], "statement_hash": "92dcd4d1c3bd738dad9644948eb1cd6efd94bdefcd3219e424732f890c0bceb3"}, "url": "/docs/compare/?release=14.21#14.21-c6d749d8181b360c", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-9e854c237f5aabf9", "cves": [], "html": "<p>防止崩溃后多事务日志被错误截断（Heikki Linnakangas）<a href=\"https://postgr.es/c/d3ad4cef6\">§</a></p>", "text": "防止崩溃后多事务日志被错误截断（Heikki Linnakangas）§", "title": "防止崩溃后多事务日志被错误截断", "commits": ["d3ad4cef6"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "d15c1d0c5dc3e478fc6042712d9657566501a872a8b859a05e95e9e951f597b9", "section_path": ["变更"], "commit_groups": [["09532a78b", "102bdaa9b", "46be454ca", "a563ac619", "c7946e6f3", "d3ad4cef6"]], "identity_text": "Guard against incorrect truncation of the multixact log after a crash (Heikki Linnakangas)", "commit_aliases": ["09532a78b", "102bdaa9b", "46be454ca", "a563ac619", "c7946e6f3", "d3ad4cef6"], "source_commits": ["d3ad4cef6"], "source_entry_id": "17.8/changes/018", "db_id": "423a226c0afa155ba2f8b3bf4d809b9b", "patch_ids": ["67a73a4872f6b3f005ad7fe4e9077027"], "statement_hash": "dfecdaac190eb4e172c44ceae68abad6d5cc283f60c6a947351bcef843a944ad", "relations": [{"rule": 2, "type": "equivalent", "target": "06c8d0231b48925fde45dbbe5447711a", "evidence": {"same_day": true, "patch_ids": ["67a73a4872f6b3f005ad7fe4e9077027"], "statement_hash": "dfecdaac190eb4e172c44ceae68abad6d5cc283f60c6a947351bcef843a944ad"}}, {"rule": 2, "type": "equivalent", "target": "3a7694cde691f1c0a64647d256362d79", "evidence": {"same_day": true, "patch_ids": ["67a73a4872f6b3f005ad7fe4e9077027"], "statement_hash": "dfecdaac190eb4e172c44ceae68abad6d5cc283f60c6a947351bcef843a944ad"}}, {"rule": 2, "type": "equivalent", "target": "543d98a0d64e54acd061d5327cda0d92", "evidence": {"same_day": true, "patch_ids": ["67a73a4872f6b3f005ad7fe4e9077027"], "statement_hash": "dfecdaac190eb4e172c44ceae68abad6d5cc283f60c6a947351bcef843a944ad"}}, {"rule": 2, "type": "equivalent", "target": "98b43daf45e235647020ad11a022bebb", "evidence": {"same_day": true, "patch_ids": ["67a73a4872f6b3f005ad7fe4e9077027"], "statement_hash": "dfecdaac190eb4e172c44ceae68abad6d5cc283f60c6a947351bcef843a944ad"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3a7694cde691f1c0a64647d256362d79", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "防止崩溃后多事务日志被错误截断", "evidence": {"same_day": true, "patch_ids": ["67a73a4872f6b3f005ad7fe4e9077027"], "statement_hash": "dfecdaac190eb4e172c44ceae68abad6d5cc283f60c6a947351bcef843a944ad"}, "url": "/docs/compare/?release=18.2#18.2-8b23c352cad22240", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "543d98a0d64e54acd061d5327cda0d92", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "防止崩溃后多事务日志被错误截断", "evidence": {"same_day": true, "patch_ids": ["67a73a4872f6b3f005ad7fe4e9077027"], "statement_hash": "dfecdaac190eb4e172c44ceae68abad6d5cc283f60c6a947351bcef843a944ad"}, "url": "/docs/compare/?release=16.12#16.12-1dcc130cbed466e7", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "98b43daf45e235647020ad11a022bebb", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "防止崩溃后多事务日志被错误截断", "evidence": {"same_day": true, "patch_ids": ["67a73a4872f6b3f005ad7fe4e9077027"], "statement_hash": "dfecdaac190eb4e172c44ceae68abad6d5cc283f60c6a947351bcef843a944ad"}, "url": "/docs/compare/?release=15.16#15.16-1c33da61822d76af", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "06c8d0231b48925fde45dbbe5447711a", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "防止崩溃后多事务日志被错误截断", "evidence": {"same_day": true, "patch_ids": ["67a73a4872f6b3f005ad7fe4e9077027"], "statement_hash": "dfecdaac190eb4e172c44ceae68abad6d5cc283f60c6a947351bcef843a944ad"}, "url": "/docs/compare/?release=14.21#14.21-82a8e8c00098deab", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-5b4587fee1692efc", "cves": [], "html": "<p>修复 <code>pg_stat_get_backend_activity()</code> 可能返回编码错误的结果的问题（Chao Li）<a href=\"https://postgr.es/c/52b27f585\">§</a></p>\n<p>保存会话活动字符串的共享内存缓冲区末尾可能包含不完整的多字节字符。读取者应该截断掉任何此类不完整字符，但此函数未能做到这一点。</p>", "text": "修复 pg_stat_get_backend_activity() 可能返回编码错误的结果的问题（Chao Li）§ 保存会话活动字符串的共享内存缓冲区末尾可能包含不完整的多字节字符。读取者应该截断掉任何此类不完整字符，但此函数未能做到这一点。", "title": "修复 pg_stat_get_backend_activity() 可能返回编码错误的结果的问题", "commits": ["52b27f585"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "c376ee42551e0a693b2083038ef873dc7a6a3d36a88e15eb4c998682c33e7e83", "section_path": ["变更"], "commit_groups": [["06907e864", "300575fe2", "36b8f4974", "52b27f585", "c48829ed8", "ea3524cff"]], "identity_text": "Fix possibly mis-encoded result of pg_stat_get_backend_activity() (Chao Li) The shared-memory buffer holding a session's activity string can end with an incomplete multibyte character. Readers are supposed to truncate off any such incomplete character, but this function failed to do so.", "commit_aliases": ["06907e864", "300575fe2", "36b8f4974", "52b27f585", "c48829ed8", "ea3524cff"], "source_commits": ["52b27f585"], "source_entry_id": "17.8/changes/019", "db_id": "962171149258cdfb98c25d6f7cda03e4", "patch_ids": ["b809be4e7827182df22fb9f71f25cf1d"], "statement_hash": "18f9c2bfb3fe8f5033800a59729a09db060ed74ea247b46aee7ee09268737178", "relations": [{"rule": 2, "type": "equivalent", "target": "1d61f99b846c4ede8289346c443c6eab", "evidence": {"same_day": true, "patch_ids": ["b809be4e7827182df22fb9f71f25cf1d"], "statement_hash": "18f9c2bfb3fe8f5033800a59729a09db060ed74ea247b46aee7ee09268737178"}}, {"rule": 2, "type": "equivalent", "target": "2011af15ea6d97b67e6182e61860c8c7", "evidence": {"same_day": true, "patch_ids": ["b809be4e7827182df22fb9f71f25cf1d"], "statement_hash": "18f9c2bfb3fe8f5033800a59729a09db060ed74ea247b46aee7ee09268737178"}}, {"rule": 2, "type": "equivalent", "target": "3fc6fbb291fd58ddb3732e1040a55913", "evidence": {"same_day": true, "patch_ids": ["b809be4e7827182df22fb9f71f25cf1d"], "statement_hash": "18f9c2bfb3fe8f5033800a59729a09db060ed74ea247b46aee7ee09268737178"}}, {"rule": 2, "type": "equivalent", "target": "c6e97abc5a7f6b7dd2f4f8bbf960d054", "evidence": {"same_day": true, "patch_ids": ["b809be4e7827182df22fb9f71f25cf1d"], "statement_hash": "18f9c2bfb3fe8f5033800a59729a09db060ed74ea247b46aee7ee09268737178"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2011af15ea6d97b67e6182e61860c8c7", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复 pg_stat_get_backend_activity() 可能返回编码错误的结果的问题", "evidence": {"same_day": true, "patch_ids": ["b809be4e7827182df22fb9f71f25cf1d"], "statement_hash": "18f9c2bfb3fe8f5033800a59729a09db060ed74ea247b46aee7ee09268737178"}, "url": "/docs/compare/?release=18.2#18.2-08c685de487e23d3", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "3fc6fbb291fd58ddb3732e1040a55913", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复 pg_stat_get_backend_activity() 可能返回编码错误的结果的问题", "evidence": {"same_day": true, "patch_ids": ["b809be4e7827182df22fb9f71f25cf1d"], "statement_hash": "18f9c2bfb3fe8f5033800a59729a09db060ed74ea247b46aee7ee09268737178"}, "url": "/docs/compare/?release=16.12#16.12-5dda0d4807cb6225", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "c6e97abc5a7f6b7dd2f4f8bbf960d054", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复 pg_stat_get_backend_activity() 可能返回编码错误的结果的问题", "evidence": {"same_day": true, "patch_ids": ["b809be4e7827182df22fb9f71f25cf1d"], "statement_hash": "18f9c2bfb3fe8f5033800a59729a09db060ed74ea247b46aee7ee09268737178"}, "url": "/docs/compare/?release=15.16#15.16-cd833dd2d455a71f", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "1d61f99b846c4ede8289346c443c6eab", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复 pg_stat_get_backend_activity() 可能返回编码错误的结果的问题", "evidence": {"same_day": true, "patch_ids": ["b809be4e7827182df22fb9f71f25cf1d"], "statement_hash": "18f9c2bfb3fe8f5033800a59729a09db060ed74ea247b46aee7ee09268737178"}, "url": "/docs/compare/?release=14.21#14.21-e2ab71f43353e5cd", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-a1b611399d727246", "cves": [], "html": "<p>防止递归的内存上下文日志记录（Fujii Masao）<a href=\"https://postgr.es/c/699293d27\">§</a></p>\n<p>持续不断的请求内存上下文日志记录的信号流可能导致日志记录代码的递归执行，理论上可能导致栈溢出。</p>", "text": "防止递归的内存上下文日志记录（Fujii Masao）§ 持续不断的请求内存上下文日志记录的信号流可能导致日志记录代码的递归执行，理论上可能导致栈溢出。", "title": "防止递归的内存上下文日志记录", "commits": ["699293d27"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "61ee8bd74049d1cd9cd5af4917dece881e453c8083ec236ad57e047861176204", "section_path": ["变更"], "commit_groups": [["0fc2f533a", "1a9a49699", "3853f6168", "699293d27", "b3ccb0a2c", "b863d8d87"]], "identity_text": "Guard against recursive memory context logging (Fujii Masao) A constant flow of signals requesting memory context logging could cause recursive execution of the logging code, which in theory could lead to stack overflow.", "commit_aliases": ["0fc2f533a", "1a9a49699", "3853f6168", "699293d27", "b3ccb0a2c", "b863d8d87"], "source_commits": ["699293d27"], "source_entry_id": "17.8/changes/020", "db_id": "76d6a4cdde5956fd5fdf83af6a0f6953", "patch_ids": ["5f2e29ee0f0a335aba7ffbb8c5262c9e"], "statement_hash": "b5c2d3f4f692a615b47c23616523ca27bef0dcd03455868cfc0d756ea0575dd4", "relations": [{"rule": 2, "type": "equivalent", "target": "6911fcfb9b3a10c2cb527c328b7e80dd", "evidence": {"same_day": true, "patch_ids": ["5f2e29ee0f0a335aba7ffbb8c5262c9e"], "statement_hash": "b5c2d3f4f692a615b47c23616523ca27bef0dcd03455868cfc0d756ea0575dd4"}}, {"rule": 2, "type": "equivalent", "target": "69b5630e62f581864e385c3537959829", "evidence": {"same_day": true, "patch_ids": ["5f2e29ee0f0a335aba7ffbb8c5262c9e"], "statement_hash": "b5c2d3f4f692a615b47c23616523ca27bef0dcd03455868cfc0d756ea0575dd4"}}, {"rule": 2, "type": "equivalent", "target": "cdc054743d9f7923ca54a8a0dd5eba4d", "evidence": {"same_day": true, "patch_ids": ["5f2e29ee0f0a335aba7ffbb8c5262c9e"], "statement_hash": "b5c2d3f4f692a615b47c23616523ca27bef0dcd03455868cfc0d756ea0575dd4"}}, {"rule": 2, "type": "equivalent", "target": "e532d3e562a8bcd039083d7610c4fe02", "evidence": {"same_day": true, "patch_ids": ["5f2e29ee0f0a335aba7ffbb8c5262c9e"], "statement_hash": "b5c2d3f4f692a615b47c23616523ca27bef0dcd03455868cfc0d756ea0575dd4"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e532d3e562a8bcd039083d7610c4fe02", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "防止递归的内存上下文日志记录", "evidence": {"same_day": true, "patch_ids": ["5f2e29ee0f0a335aba7ffbb8c5262c9e"], "statement_hash": "b5c2d3f4f692a615b47c23616523ca27bef0dcd03455868cfc0d756ea0575dd4"}, "url": "/docs/compare/?release=18.2#18.2-92cabc87c606add7", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "cdc054743d9f7923ca54a8a0dd5eba4d", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "防止递归的内存上下文日志记录", "evidence": {"same_day": true, "patch_ids": ["5f2e29ee0f0a335aba7ffbb8c5262c9e"], "statement_hash": "b5c2d3f4f692a615b47c23616523ca27bef0dcd03455868cfc0d756ea0575dd4"}, "url": "/docs/compare/?release=16.12#16.12-2616fc2b052bb88f", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "6911fcfb9b3a10c2cb527c328b7e80dd", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "防止递归的内存上下文日志记录", "evidence": {"same_day": true, "patch_ids": ["5f2e29ee0f0a335aba7ffbb8c5262c9e"], "statement_hash": "b5c2d3f4f692a615b47c23616523ca27bef0dcd03455868cfc0d756ea0575dd4"}, "url": "/docs/compare/?release=15.16#15.16-c5eabf46f29ea686", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "69b5630e62f581864e385c3537959829", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "防止递归的内存上下文日志记录", "evidence": {"same_day": true, "patch_ids": ["5f2e29ee0f0a335aba7ffbb8c5262c9e"], "statement_hash": "b5c2d3f4f692a615b47c23616523ca27bef0dcd03455868cfc0d756ea0575dd4"}, "url": "/docs/compare/?release=14.21#14.21-0397158066e277a7", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-cdcf22c5f5200747", "cves": [], "html": "<p>修复重新初始化并行执行上下文时的内存上下文使用问题（Jakub Wartak，Jeevan Chalke）<a href=\"https://postgr.es/c/1d0fc2499\">§</a></p>\n<p>此错误可能由于附属数据结构的生命周期比并行上下文更短而导致崩溃。目前尚未发现仅使用 <span>PostgreSQL</span> 核心就能触发该问题的情况，但我们收到了扩展中出现问题的报告。</p>", "text": "修复重新初始化并行执行上下文时的内存上下文使用问题（Jakub Wartak，Jeevan Chalke）§ 此错误可能由于附属数据结构的生命周期比并行上下文更短而导致崩溃。目前尚未发现仅使用 PostgreSQL 核心就能触发该问题的情况，但我们收到了扩展中出现问题的报告。", "title": "修复重新初始化并行执行上下文时的内存上下文使用问题", "commits": ["1d0fc2499"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "bb5a62b2fb3bf6bbb4149b00fd387afd1a14c8c756e85bafee83092877bdb0df", "section_path": ["变更"], "commit_groups": [["12c2f843c", "1d0fc2499", "1d9f7fbba", "57df5ab80", "bd2726d3e", "f1a6e622b"]], "identity_text": "Fix memory context usage when reinitializing a parallel execution context (Jakub Wartak, Jeevan Chalke) This error could result in a crash due to a subsidiary data structure having a shorter lifespan than the parallel context. The problem is not known to be reachable using only core PostgreSQL, but we have reports of trouble in extensions.", "commit_aliases": ["12c2f843c", "1d0fc2499", "1d9f7fbba", "57df5ab80", "bd2726d3e", "f1a6e622b"], "source_commits": ["1d0fc2499"], "source_entry_id": "17.8/changes/021", "db_id": "c0e0fccdb1ff80df5a7c450903b3c742", "patch_ids": ["4c076010d0ab56e908326be07c1b73c6"], "statement_hash": "b3c3fe87f6d12f96eb766c99214c419b7d35f4a67646f0e2ac1a8abac3576cb0", "relations": [{"rule": 2, "type": "equivalent", "target": "0e538a4d4cac5aac8cab0d86cc46e6d8", "evidence": {"same_day": true, "patch_ids": ["4c076010d0ab56e908326be07c1b73c6"], "statement_hash": "b3c3fe87f6d12f96eb766c99214c419b7d35f4a67646f0e2ac1a8abac3576cb0"}}, {"rule": 2, "type": "equivalent", "target": "770932eb6650d49472c43e2db5c83969", "evidence": {"same_day": true, "patch_ids": ["4c076010d0ab56e908326be07c1b73c6"], "statement_hash": "b3c3fe87f6d12f96eb766c99214c419b7d35f4a67646f0e2ac1a8abac3576cb0"}}, {"rule": 2, "type": "equivalent", "target": "82f0fec30baf25cedac6f47fedd86a1a", "evidence": {"same_day": true, "patch_ids": ["4c076010d0ab56e908326be07c1b73c6"], "statement_hash": "b3c3fe87f6d12f96eb766c99214c419b7d35f4a67646f0e2ac1a8abac3576cb0"}}, {"rule": 2, "type": "equivalent", "target": "a0538505db5e86d813d403a8571068b8", "evidence": {"same_day": true, "patch_ids": ["4c076010d0ab56e908326be07c1b73c6"], "statement_hash": "b3c3fe87f6d12f96eb766c99214c419b7d35f4a67646f0e2ac1a8abac3576cb0"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a0538505db5e86d813d403a8571068b8", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复重新初始化并行执行上下文时的内存上下文使用问题", "evidence": {"same_day": true, "patch_ids": ["4c076010d0ab56e908326be07c1b73c6"], "statement_hash": "b3c3fe87f6d12f96eb766c99214c419b7d35f4a67646f0e2ac1a8abac3576cb0"}, "url": "/docs/compare/?release=18.2#18.2-f56daebc6196999a", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "0e538a4d4cac5aac8cab0d86cc46e6d8", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复重新初始化并行执行上下文时的内存上下文使用问题", "evidence": {"same_day": true, "patch_ids": ["4c076010d0ab56e908326be07c1b73c6"], "statement_hash": "b3c3fe87f6d12f96eb766c99214c419b7d35f4a67646f0e2ac1a8abac3576cb0"}, "url": "/docs/compare/?release=16.12#16.12-9d7bd150ce599d54", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "82f0fec30baf25cedac6f47fedd86a1a", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复重新初始化并行执行上下文时的内存上下文使用问题", "evidence": {"same_day": true, "patch_ids": ["4c076010d0ab56e908326be07c1b73c6"], "statement_hash": "b3c3fe87f6d12f96eb766c99214c419b7d35f4a67646f0e2ac1a8abac3576cb0"}, "url": "/docs/compare/?release=15.16#15.16-d2b6dee5909338ef", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "770932eb6650d49472c43e2db5c83969", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复重新初始化并行执行上下文时的内存上下文使用问题", "evidence": {"same_day": true, "patch_ids": ["4c076010d0ab56e908326be07c1b73c6"], "statement_hash": "b3c3fe87f6d12f96eb766c99214c419b7d35f4a67646f0e2ac1a8abac3576cb0"}, "url": "/docs/compare/?release=14.21#14.21-06477385d1974f88", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-351e263e26b0031c", "cves": [], "html": "<p>在创建新的多事务 ID 时设置下一个多事务 ID 的偏移量，以消除在边界情况下所需的等待循环（Andrey Borodin）<a href=\"https://postgr.es/c/8ba61bc06\">§</a> <a href=\"https://postgr.es/c/cad40cec2\">§</a></p>\n<p>之前的逻辑可能会卡在等待一个永远不会发生的更新上。</p>", "text": "在创建新的多事务 ID 时设置下一个多事务 ID 的偏移量，以消除在边界情况下所需的等待循环（Andrey Borodin）§ § 之前的逻辑可能会卡在等待一个永远不会发生的更新上。", "title": "在创建新的多事务 ID 时设置下一个多事务 ID 的偏移量，以消除在边界情况下所需的等待循环", "commits": ["8ba61bc06", "cad40cec2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "41903876420fbf0d3c0c6a1d2c9fcbade9301a3c6d178da35658b3f30eea0e94", "section_path": ["变更"], "commit_groups": [["02ba5e3be", "489695554", "4d689a176", "4d936c3ff", "b9a02b978", "cad40cec2"], ["635166913", "789d65364", "81416e101", "8ba61bc06", "8cfb174a6", "e46041fd9"]], "identity_text": "Set next multixid's offset when creating a new multixid, to remove the wait loop that was needed in corner cases (Andrey Borodin) The previous logic could get stuck waiting for an update that would never occur.", "commit_aliases": ["02ba5e3be", "489695554", "4d689a176", "4d936c3ff", "635166913", "789d65364", "81416e101", "8ba61bc06", "8cfb174a6", "b9a02b978", "cad40cec2", "e46041fd9"], "source_commits": ["8ba61bc06", "cad40cec2"], "source_entry_id": "17.8/changes/022", "db_id": "df073012abdc28126571ebecafb9c308", "patch_ids": ["7a935cadcf10c6b2317e3231e31323b6", "ee608729a6ebedc95a84b653d7e6f795"], "statement_hash": "3820414d3ddce5f6a358db922abd2d2d57a70d8990ca5c41a3b91f78a7e3261d", "relations": [{"rule": 2, "type": "equivalent", "target": "1d8beb2475d7ec3ee5619d442f62f4e4", "evidence": {"same_day": true, "patch_ids": ["7a935cadcf10c6b2317e3231e31323b6", "ee608729a6ebedc95a84b653d7e6f795"], "statement_hash": "3820414d3ddce5f6a358db922abd2d2d57a70d8990ca5c41a3b91f78a7e3261d"}}, {"rule": 2, "type": "equivalent", "target": "2b4c07606e0901ac70bb0fbb4680ebbe", "evidence": {"same_day": true, "patch_ids": ["7a935cadcf10c6b2317e3231e31323b6", "ee608729a6ebedc95a84b653d7e6f795"], "statement_hash": "3820414d3ddce5f6a358db922abd2d2d57a70d8990ca5c41a3b91f78a7e3261d"}}, {"rule": 2, "type": "equivalent", "target": "9d39be361a73eeb011b1508852d458c4", "evidence": {"same_day": true, "patch_ids": ["7a935cadcf10c6b2317e3231e31323b6", "ee608729a6ebedc95a84b653d7e6f795"], "statement_hash": "3820414d3ddce5f6a358db922abd2d2d57a70d8990ca5c41a3b91f78a7e3261d"}}, {"rule": 2, "type": "equivalent", "target": "fff819d80d05a70e4ebf82ab7f9c951a", "evidence": {"same_day": true, "patch_ids": ["7a935cadcf10c6b2317e3231e31323b6", "ee608729a6ebedc95a84b653d7e6f795"], "statement_hash": "3820414d3ddce5f6a358db922abd2d2d57a70d8990ca5c41a3b91f78a7e3261d"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d39be361a73eeb011b1508852d458c4", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "在创建新的多事务 ID 时设置下一个多事务 ID 的偏移量，以消除在边界情况下所需的等待循环", "evidence": {"same_day": true, "patch_ids": ["7a935cadcf10c6b2317e3231e31323b6", "ee608729a6ebedc95a84b653d7e6f795"], "statement_hash": "3820414d3ddce5f6a358db922abd2d2d57a70d8990ca5c41a3b91f78a7e3261d"}, "url": "/docs/compare/?release=18.2#18.2-0eb611cc5bc18380", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "1d8beb2475d7ec3ee5619d442f62f4e4", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "在创建新的多事务 ID 时设置下一个多事务 ID 的偏移量，以消除在边界情况下所需的等待循环", "evidence": {"same_day": true, "patch_ids": ["7a935cadcf10c6b2317e3231e31323b6", "ee608729a6ebedc95a84b653d7e6f795"], "statement_hash": "3820414d3ddce5f6a358db922abd2d2d57a70d8990ca5c41a3b91f78a7e3261d"}, "url": "/docs/compare/?release=16.12#16.12-90168bc8332f7a84", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "2b4c07606e0901ac70bb0fbb4680ebbe", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "在创建新的多事务 ID 时设置下一个多事务 ID 的偏移量，以消除在边界情况下所需的等待循环", "evidence": {"same_day": true, "patch_ids": ["7a935cadcf10c6b2317e3231e31323b6", "ee608729a6ebedc95a84b653d7e6f795"], "statement_hash": "3820414d3ddce5f6a358db922abd2d2d57a70d8990ca5c41a3b91f78a7e3261d"}, "url": "/docs/compare/?release=15.16#15.16-639bc1c588a62efb", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "fff819d80d05a70e4ebf82ab7f9c951a", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "在创建新的多事务 ID 时设置下一个多事务 ID 的偏移量，以消除在边界情况下所需的等待循环", "evidence": {"same_day": true, "patch_ids": ["7a935cadcf10c6b2317e3231e31323b6", "ee608729a6ebedc95a84b653d7e6f795"], "statement_hash": "3820414d3ddce5f6a358db922abd2d2d57a70d8990ca5c41a3b91f78a7e3261d"}, "url": "/docs/compare/?release=14.21#14.21-fc1711f590b7a7c5", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-fed0bc33b201283d", "cves": [], "html": "<p>避免多次重写数据修改 CTE（Bernice Southey，Dean Rasheed）<a href=\"https://postgr.es/c/c09096503\">§</a></p>\n<p>以前，在更新自动可更新视图或带规则的关系时，如果原始查询含有数据修改 CTE，重写器会由于递归而多次重写这些 CTE。这不仅低效，而且当 CTE 包含对GENERATED ALWAYS 列的更新时可能产生虚假错误。</p>", "text": "避免多次重写数据修改 CTE（Bernice Southey，Dean Rasheed）§ 以前，在更新自动可更新视图或带规则的关系时，如果原始查询含有数据修改 CTE，重写器会由于递归而多次重写这些 CTE。这不仅低效，而且当 CTE 包含对GENERATED ALWAYS 列的更新时可能产生虚假错误。", "title": "避免多次重写数据修改 CTE", "commits": ["c09096503"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "6aa5c8380dc37f7c77aa85c4927b090f4c3898d30a10bef390cb8f3d602459df", "section_path": ["变更"], "commit_groups": [["134a8ee22", "2d5b97b8c", "3881561d7", "4d288e33b", "b880d9a02", "c09096503"]], "identity_text": "Avoid rewriting data-modifying CTEs more than once (Bernice Southey, Dean Rasheed) Formerly, when updating an auto-updatable view or a relation with rules, if the original query had any data-modifying CTEs, the rewriter would rewrite those CTEs multiple times due to recursion. This was inefficient and could produce false errors if a CTE included an update of an always-generated column.", "commit_aliases": ["134a8ee22", "2d5b97b8c", "3881561d7", "4d288e33b", "b880d9a02", "c09096503"], "source_commits": ["c09096503"], "source_entry_id": "17.8/changes/023", "db_id": "f467408bfd650872bf1654f4ee4ec70d", "patch_ids": ["e0f79f9c321f69bef485ae997c61c414"], "statement_hash": "45d7e282599aa005c97ba4f77c0f61900b8c96a1633aa3b113857a26515155bb", "relations": [{"rule": 2, "type": "equivalent", "target": "6e6c8a0f6889fba17b9d4ea6308a8d7a", "evidence": {"same_day": true, "patch_ids": ["e0f79f9c321f69bef485ae997c61c414"], "statement_hash": "45d7e282599aa005c97ba4f77c0f61900b8c96a1633aa3b113857a26515155bb"}}, {"rule": 2, "type": "equivalent", "target": "b1252119d1b5ac0ac5230ba9b7fb844b", "evidence": {"same_day": true, "patch_ids": ["e0f79f9c321f69bef485ae997c61c414"], "statement_hash": "45d7e282599aa005c97ba4f77c0f61900b8c96a1633aa3b113857a26515155bb"}}, {"rule": 2, "type": "equivalent", "target": "c9710e1b97bbf384a5536e25246c2c1e", "evidence": {"same_day": true, "patch_ids": ["e0f79f9c321f69bef485ae997c61c414"], "statement_hash": "45d7e282599aa005c97ba4f77c0f61900b8c96a1633aa3b113857a26515155bb"}}, {"rule": 2, "type": "equivalent", "target": "fa9d76713707441eef7a725233377166", "evidence": {"same_day": true, "patch_ids": ["e0f79f9c321f69bef485ae997c61c414"], "statement_hash": "45d7e282599aa005c97ba4f77c0f61900b8c96a1633aa3b113857a26515155bb"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b1252119d1b5ac0ac5230ba9b7fb844b", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "避免多次重写数据修改 CTE", "evidence": {"same_day": true, "patch_ids": ["e0f79f9c321f69bef485ae997c61c414"], "statement_hash": "45d7e282599aa005c97ba4f77c0f61900b8c96a1633aa3b113857a26515155bb"}, "url": "/docs/compare/?release=18.2#18.2-598e6b46a303e445", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "c9710e1b97bbf384a5536e25246c2c1e", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "避免多次重写数据修改 CTE", "evidence": {"same_day": true, "patch_ids": ["e0f79f9c321f69bef485ae997c61c414"], "statement_hash": "45d7e282599aa005c97ba4f77c0f61900b8c96a1633aa3b113857a26515155bb"}, "url": "/docs/compare/?release=16.12#16.12-806ed942f9c5fd64", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "fa9d76713707441eef7a725233377166", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "避免多次重写数据修改 CTE", "evidence": {"same_day": true, "patch_ids": ["e0f79f9c321f69bef485ae997c61c414"], "statement_hash": "45d7e282599aa005c97ba4f77c0f61900b8c96a1633aa3b113857a26515155bb"}, "url": "/docs/compare/?release=15.16#15.16-fdb06078edbce9e9", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "6e6c8a0f6889fba17b9d4ea6308a8d7a", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "避免多次重写数据修改 CTE", "evidence": {"same_day": true, "patch_ids": ["e0f79f9c321f69bef485ae997c61c414"], "statement_hash": "45d7e282599aa005c97ba4f77c0f61900b8c96a1633aa3b113857a26515155bb"}, "url": "/docs/compare/?release=14.21#14.21-7e5820de57d7faff", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-be3128d810d25a5b", "cves": [], "html": "<p>允许重试 DSM 注册表条目的初始化（Nathan Bossart）<a href=\"https://postgr.es/c/2fc5c5062\">§</a></p>\n<p>如果动态共享内存条目的初始化进行到一半失败，允许下一次尝试使用该条目时重新初始化。此前，该条目会永久处于失败状态。</p>", "text": "允许重试 DSM 注册表条目的初始化（Nathan Bossart）§ 如果动态共享内存条目的初始化进行到一半失败，允许下一次尝试使用该条目时重新初始化。此前，该条目会永久处于失败状态。", "title": "允许重试 DSM 注册表条目的初始化", "commits": ["2fc5c5062"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "a45a73fcc752e430671563f43425e02dfb18c096961fc057ef86a9d32b6e112e", "section_path": ["变更"], "commit_groups": [["2fc5c5062", "b83bcc0df", "dbdc717ac"]], "identity_text": "Allow retrying initialization of a DSM registry entry (Nathan Bossart) If we fail partway through initialization of a dynamic shared memory entry, allow the next attempt to use that entry to retry initialization. Previously the entry was left in a permanently-failed state.", "commit_aliases": ["2fc5c5062", "b83bcc0df", "dbdc717ac"], "source_commits": ["2fc5c5062"], "source_entry_id": "17.8/changes/024", "db_id": "5039c49f944e0ea8e42e7eb5859d47f5", "patch_ids": ["e358cc1d91845e3da8aaed14c787dcd0"], "statement_hash": "6f8c9dfe61ba11aac117897b8a16e2c125090ad069d80ce5e2ebe812b2891a73", "relations": [{"rule": 2, "type": "equivalent", "target": "35cb139db6fcca1cb726591686762d5e", "evidence": {"same_day": true, "patch_ids": ["e358cc1d91845e3da8aaed14c787dcd0"], "statement_hash": "6f8c9dfe61ba11aac117897b8a16e2c125090ad069d80ce5e2ebe812b2891a73"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "35cb139db6fcca1cb726591686762d5e", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "允许重试 DSM 注册表条目的初始化", "evidence": {"same_day": true, "patch_ids": ["e358cc1d91845e3da8aaed14c787dcd0"], "statement_hash": "6f8c9dfe61ba11aac117897b8a16e2c125090ad069d80ce5e2ebe812b2891a73"}, "url": "/docs/compare/?release=18.2#18.2-44b11be419e13584", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}]}, {"id": "17.8-3d4d2474ea729f43", "cves": [], "html": "<p>如果 WAL 未涵盖检查点记录指示的重做点，则使恢复失败（Nitin Jadhav）<a href=\"https://postgr.es/c/f5927da4f\">§</a></p>\n<p>在开始恢复之前添加一个显式检查，以确保不会造成损害并提供有用的错误消息。以前，在这种情况下恢复可能会崩溃或损坏数据库。</p>", "text": "如果 WAL 未涵盖检查点记录指示的重做点，则使恢复失败（Nitin Jadhav）§ 在开始恢复之前添加一个显式检查，以确保不会造成损害并提供有用的错误消息。以前，在这种情况下恢复可能会崩溃或损坏数据库。", "title": "如果 WAL 未涵盖检查点记录指示的重做点，则使恢复失败", "commits": ["f5927da4f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "41c74c2b03ccb47c4645512c9e78a23ff51eb6579a036b5dd261ff4fe87b27fc", "section_path": ["变更"], "commit_groups": [["14161bca4", "1aa57e9ed", "68ebdf2b0", "95ef6f490", "dc7c77f82", "f5927da4f"]], "identity_text": "Fail recovery if WAL does not exist back to the redo point indicated by the checkpoint record (Nitin Jadhav) Add an explicit check for this before starting recovery, so that no harm is done and a useful error message is provided. Previously, recovery might crash or corrupt the database in this situation.", "commit_aliases": ["14161bca4", "1aa57e9ed", "68ebdf2b0", "95ef6f490", "dc7c77f82", "f5927da4f"], "source_commits": ["f5927da4f"], "source_entry_id": "17.8/changes/025", "db_id": "3f4035b04c1c0e9ba08acef72e76fc91", "patch_ids": ["4b87107464945d5170bed63f81ff3790"], "statement_hash": "3acaee6f8628ca0f43630afaa8799cc5ced91cfb215bf493f91ad515f4af1034", "relations": [{"rule": 2, "type": "equivalent", "target": "011195db7fe270680db938124518987b", "evidence": {"same_day": true, "patch_ids": ["4b87107464945d5170bed63f81ff3790"], "statement_hash": "3acaee6f8628ca0f43630afaa8799cc5ced91cfb215bf493f91ad515f4af1034"}}, {"rule": 2, "type": "equivalent", "target": "7e009c5e3ee2635f5a3f2d6750f1a823", "evidence": {"same_day": true, "patch_ids": ["4b87107464945d5170bed63f81ff3790"], "statement_hash": "3acaee6f8628ca0f43630afaa8799cc5ced91cfb215bf493f91ad515f4af1034"}}, {"rule": 2, "type": "equivalent", "target": "afebd143b96e516829ea82f80f213765", "evidence": {"same_day": true, "patch_ids": ["4b87107464945d5170bed63f81ff3790"], "statement_hash": "3acaee6f8628ca0f43630afaa8799cc5ced91cfb215bf493f91ad515f4af1034"}}, {"rule": 2, "type": "equivalent", "target": "ea5f140766dc7aa68dd175c861036247", "evidence": {"same_day": true, "patch_ids": ["4b87107464945d5170bed63f81ff3790"], "statement_hash": "3acaee6f8628ca0f43630afaa8799cc5ced91cfb215bf493f91ad515f4af1034"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "afebd143b96e516829ea82f80f213765", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "如果 WAL 未涵盖检查点记录指示的重做点，则使恢复失败", "evidence": {"same_day": true, "patch_ids": ["4b87107464945d5170bed63f81ff3790"], "statement_hash": "3acaee6f8628ca0f43630afaa8799cc5ced91cfb215bf493f91ad515f4af1034"}, "url": "/docs/compare/?release=18.2#18.2-48e29718af30085d", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "7e009c5e3ee2635f5a3f2d6750f1a823", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "如果 WAL 未涵盖检查点记录指示的重做点，则使恢复失败", "evidence": {"same_day": true, "patch_ids": ["4b87107464945d5170bed63f81ff3790"], "statement_hash": "3acaee6f8628ca0f43630afaa8799cc5ced91cfb215bf493f91ad515f4af1034"}, "url": "/docs/compare/?release=16.12#16.12-ac8c469b0c901db5", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "ea5f140766dc7aa68dd175c861036247", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "如果 WAL 未涵盖检查点记录指示的重做点，则使恢复失败", "evidence": {"same_day": true, "patch_ids": ["4b87107464945d5170bed63f81ff3790"], "statement_hash": "3acaee6f8628ca0f43630afaa8799cc5ced91cfb215bf493f91ad515f4af1034"}, "url": "/docs/compare/?release=15.16#15.16-61074b4b2db3b9f8", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "011195db7fe270680db938124518987b", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "如果 WAL 未涵盖检查点记录指示的重做点，则使恢复失败", "evidence": {"same_day": true, "patch_ids": ["4b87107464945d5170bed63f81ff3790"], "statement_hash": "3acaee6f8628ca0f43630afaa8799cc5ced91cfb215bf493f91ad515f4af1034"}, "url": "/docs/compare/?release=14.21#14.21-c97498907e799420", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-51768104ffbbb8b1", "cves": [], "html": "<p>避免在 <code>ALTER PUBLICATION</code> 期间修改源查询树（Sunil S）<a href=\"https://postgr.es/c/bb08ac7ac\">§</a></p>\n<p>此错误的可见效果是，为该查询触发的事件触发器只能看到第一个 <code>publish</code> 选项，即使指定了多个选项。如果此类查询被设置为预备语句，重新执行时也会出现错误行为。</p>", "text": "避免在 ALTER PUBLICATION 期间修改源查询树（Sunil S）§ 此错误的可见效果是，为该查询触发的事件触发器只能看到第一个 publish 选项，即使指定了多个选项。如果此类查询被设置为预备语句，重新执行时也会出现错误行为。", "title": "避免在 ALTER PUBLICATION 期间修改源查询树", "commits": ["bb08ac7ac"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "57c28f7273ce7c17ceaf75742340c88fe2345d86f04c79613c3419c16857086b", "section_path": ["变更"], "commit_groups": [["0687a6eb0", "6ca8506ea", "ae45c7296", "bb08ac7ac", "bea57a6b4", "f20b79059"]], "identity_text": "Avoid scribbling on the source query tree during ALTER PUBLICATION (Sunil S) This error had the visible effect that an event trigger fired for the query would see only the first publish option, even if several had been specified. If such a query were set up as a prepared statement, re-executions would misbehave too.", "commit_aliases": ["0687a6eb0", "6ca8506ea", "ae45c7296", "bb08ac7ac", "bea57a6b4", "f20b79059"], "source_commits": ["bb08ac7ac"], "source_entry_id": "17.8/changes/026", "db_id": "bb090370862ac9b9ba54fb93b71c4869", "patch_ids": ["27aaed0fd0399be3426c4d05cf88f583"], "statement_hash": "097d4d62aa891693f59702842928f93c4d533cb5aa5f4af54c5237246f6933dd", "relations": [{"rule": 2, "type": "equivalent", "target": "382e740a0f9f434506934984bfab5d72", "evidence": {"same_day": true, "patch_ids": ["27aaed0fd0399be3426c4d05cf88f583"], "statement_hash": "097d4d62aa891693f59702842928f93c4d533cb5aa5f4af54c5237246f6933dd"}}, {"rule": 2, "type": "equivalent", "target": "609a67b3d1e8a8770d3091b2429519a7", "evidence": {"same_day": true, "patch_ids": ["27aaed0fd0399be3426c4d05cf88f583"], "statement_hash": "097d4d62aa891693f59702842928f93c4d533cb5aa5f4af54c5237246f6933dd"}}, {"rule": 2, "type": "equivalent", "target": "7e3fc1d0791de552b876cdb2454f31d0", "evidence": {"same_day": true, "patch_ids": ["27aaed0fd0399be3426c4d05cf88f583"], "statement_hash": "097d4d62aa891693f59702842928f93c4d533cb5aa5f4af54c5237246f6933dd"}}, {"rule": 2, "type": "equivalent", "target": "ef85167b2646b7c7d896a19a6abb3509", "evidence": {"same_day": true, "patch_ids": ["27aaed0fd0399be3426c4d05cf88f583"], "statement_hash": "097d4d62aa891693f59702842928f93c4d533cb5aa5f4af54c5237246f6933dd"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7e3fc1d0791de552b876cdb2454f31d0", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "避免在 ALTER PUBLICATION 期间修改源查询树", "evidence": {"same_day": true, "patch_ids": ["27aaed0fd0399be3426c4d05cf88f583"], "statement_hash": "097d4d62aa891693f59702842928f93c4d533cb5aa5f4af54c5237246f6933dd"}, "url": "/docs/compare/?release=18.2#18.2-4ab1376a3267c027", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "609a67b3d1e8a8770d3091b2429519a7", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "避免在 ALTER PUBLICATION 期间修改源查询树", "evidence": {"same_day": true, "patch_ids": ["27aaed0fd0399be3426c4d05cf88f583"], "statement_hash": "097d4d62aa891693f59702842928f93c4d533cb5aa5f4af54c5237246f6933dd"}, "url": "/docs/compare/?release=16.12#16.12-0890dbb40db6c9be", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "ef85167b2646b7c7d896a19a6abb3509", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "避免在 ALTER PUBLICATION 期间修改源查询树", "evidence": {"same_day": true, "patch_ids": ["27aaed0fd0399be3426c4d05cf88f583"], "statement_hash": "097d4d62aa891693f59702842928f93c4d533cb5aa5f4af54c5237246f6933dd"}, "url": "/docs/compare/?release=15.16#15.16-a0b138a134556f43", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "382e740a0f9f434506934984bfab5d72", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "避免在 ALTER PUBLICATION 期间修改源查询树", "evidence": {"same_day": true, "patch_ids": ["27aaed0fd0399be3426c4d05cf88f583"], "statement_hash": "097d4d62aa891693f59702842928f93c4d533cb5aa5f4af54c5237246f6933dd"}, "url": "/docs/compare/?release=14.21#14.21-cf7993cc29f1125e", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-8dc05bb27f841a6c", "cves": [], "html": "<p>将 <code>CREATE SUBSCRIPTION ... CONNECTION</code> 中指定的连接选项传递给发布端的 walsender 进程（Fujii Masao）<a href=\"https://postgr.es/c/7a990e801\">§</a></p>\n<p>在此修复之前，<code>options</code> 连接选项（如果有的话）会被忽略，因此，例如无法在 walsender 会话中设置自定义服务器参数值。该功能本应正常工作；在 <span>PostgreSQL</span> 15 中的重构破坏它之前，它也确实一直是正常工作的，因此这里恢复了先前的行为。</p>", "text": "将 CREATE SUBSCRIPTION ... CONNECTION 中指定的连接选项传递给发布端的 walsender 进程（Fujii Masao）§ 在此修复之前，options 连接选项（如果有的话）会被忽略，因此，例如无法在 walsender 会话中设置自定义服务器参数值。该功能本应正常工作；在 PostgreSQL 15 中的重构破坏它之前，它也确实一直是正常工作的，因此这里恢复了先前的行为。", "title": "将 CREATE SUBSCRIPTION ... CONNECTION 中指定的连接选项传递给发布端的 walsender 进程", "commits": ["7a990e801"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "4b666f479002ecfb8dd29fc7f3485e06a6989bed3ff1080233746f3170f1aa10", "section_path": ["变更"], "commit_groups": [["75f3428f2", "797fc5d1b", "7a990e801", "d926462d8", "f7eb44e0f"]], "identity_text": "Pass connection options specified in CREATE SUBSCRIPTION ... CONNECTION to the publisher's walsender (Fujii Masao) Before this fix, the options connection option (if any) was ignored, thus for example preventing setting custom server parameter values in the walsender session. It was intended for that to work, and it did work before refactoring in PostgreSQL version 15 broke it, so restore the previous behavior.", "commit_aliases": ["75f3428f2", "797fc5d1b", "7a990e801", "d926462d8", "f7eb44e0f"], "source_commits": ["7a990e801"], "source_entry_id": "17.8/changes/027", "db_id": "e6adf36f29967b514be061f08ac43c83", "patch_ids": ["568bc4b03123c66fa5044fb184e67302"], "statement_hash": "943489b5b1d830bbee00976c647cb6322ea03fa5558af6ad16b83a9deefb106c", "relations": [{"rule": 2, "type": "equivalent", "target": "14350aa55158b13629c79743cee560e0", "evidence": {"same_day": true, "patch_ids": ["568bc4b03123c66fa5044fb184e67302"], "statement_hash": "943489b5b1d830bbee00976c647cb6322ea03fa5558af6ad16b83a9deefb106c"}}, {"rule": 2, "type": "equivalent", "target": "2854750f46ab8bd38a28c1cfd5ae77c9", "evidence": {"same_day": true, "patch_ids": ["568bc4b03123c66fa5044fb184e67302"], "statement_hash": "943489b5b1d830bbee00976c647cb6322ea03fa5558af6ad16b83a9deefb106c"}}, {"rule": 2, "type": "equivalent", "target": "88f8d8a25ce40f7bce801ec6d1ceb806", "evidence": {"same_day": true, "patch_ids": ["568bc4b03123c66fa5044fb184e67302"], "statement_hash": "943489b5b1d830bbee00976c647cb6322ea03fa5558af6ad16b83a9deefb106c"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "88f8d8a25ce40f7bce801ec6d1ceb806", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "将 CREATE SUBSCRIPTION ... CONNECTION 中指定的连接选项传递给发布端的 walsender 进程", "evidence": {"same_day": true, "patch_ids": ["568bc4b03123c66fa5044fb184e67302"], "statement_hash": "943489b5b1d830bbee00976c647cb6322ea03fa5558af6ad16b83a9deefb106c"}, "url": "/docs/compare/?release=18.2#18.2-a7e8eb1d775d340e", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "2854750f46ab8bd38a28c1cfd5ae77c9", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "将 CREATE SUBSCRIPTION ... CONNECTION 中指定的连接选项传递给发布端的 walsender 进程", "evidence": {"same_day": true, "patch_ids": ["568bc4b03123c66fa5044fb184e67302"], "statement_hash": "943489b5b1d830bbee00976c647cb6322ea03fa5558af6ad16b83a9deefb106c"}, "url": "/docs/compare/?release=16.12#16.12-856e665b12053097", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "14350aa55158b13629c79743cee560e0", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "将 CREATE SUBSCRIPTION ... CONNECTION 中指定的连接选项传递给发布端的 walsender 进程", "evidence": {"same_day": true, "patch_ids": ["568bc4b03123c66fa5044fb184e67302"], "statement_hash": "943489b5b1d830bbee00976c647cb6322ea03fa5558af6ad16b83a9deefb106c"}, "url": "/docs/compare/?release=15.16#15.16-572c337cdeda5be4", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}]}, {"id": "17.8-2ab0d69c3c8683d7", "cves": [], "html": "<p>防止新创建或新同步的复制槽被无效化（Zhijie Hou）<a href=\"https://postgr.es/c/3243c0177\">§</a> <a href=\"https://postgr.es/c/9649f1adf\">§</a> <a href=\"https://postgr.es/c/3510ebeb0\">§</a></p>\n<p>与并发检查点的竞争条件可能导致复制槽所需的 WAL 被删除，使得该槽立即被标记为无效。</p>", "text": "防止新创建或新同步的复制槽被无效化（Zhijie Hou）§ § § 与并发检查点的竞争条件可能导致复制槽所需的 WAL 被删除，使得该槽立即被标记为无效。", "title": "防止新创建或新同步的复制槽被无效化", "commits": ["3243c0177", "3510ebeb0", "9649f1adf"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "4b9986d9cec82ca0857c9c964b131d78f9e63d5b9a4ce921d592d9e7f82573bb", "section_path": ["变更"], "commit_groups": [["006dd4b2e", "24cce33c3", "3510ebeb0", "7406df605", "aae05622a", "d3ceb2084"], ["1c60f7236", "3a98f989e", "9649f1adf"], ["3243c0177", "851f6649c", "919c9fa13"]], "identity_text": "Prevent invalidation of newly created or newly synced replication slots (Zhijie Hou) A race condition with a concurrent checkpoint could allow WAL to be removed that is needed by the replication slot, causing the slot to immediately get marked invalid.", "commit_aliases": ["006dd4b2e", "1c60f7236", "24cce33c3", "3243c0177", "3510ebeb0", "3a98f989e", "7406df605", "851f6649c", "919c9fa13", "9649f1adf", "aae05622a", "d3ceb2084"], "source_commits": ["3243c0177", "3510ebeb0", "9649f1adf"], "source_entry_id": "17.8/changes/028", "db_id": "2e44c2dcd00ca731067ba5c1a7a9a31c", "patch_ids": ["52eeca007f2cc833bd086bea5398b6dd", "e27e8fc7ff675146f1b638a98637021e", "fd534fc2f99acb10d2ff04bf0f822f81"], "statement_hash": "a7634872b97f0a43a006c3dc4f9851bc65d8af6cd588b4009553b843b6ae22d9", "relations": [{"rule": 2, "type": "equivalent", "target": "54b2a393bc7cb86ab19eb7c660bb2004", "evidence": {"same_day": true, "patch_ids": ["52eeca007f2cc833bd086bea5398b6dd", "e27e8fc7ff675146f1b638a98637021e", "fd534fc2f99acb10d2ff04bf0f822f81"], "statement_hash": "a7634872b97f0a43a006c3dc4f9851bc65d8af6cd588b4009553b843b6ae22d9"}}, {"rule": 2, "type": "equivalent", "target": "7045b64c3c70e172ffa2ef8c1ae90896", "evidence": {"same_day": true, "patch_ids": ["52eeca007f2cc833bd086bea5398b6dd", "e27e8fc7ff675146f1b638a98637021e", "fd534fc2f99acb10d2ff04bf0f822f81"], "statement_hash": "a7634872b97f0a43a006c3dc4f9851bc65d8af6cd588b4009553b843b6ae22d9"}}, {"rule": 2, "type": "equivalent", "target": "cb75695174eb56fb419b9a98e09580cc", "evidence": {"same_day": true, "patch_ids": ["52eeca007f2cc833bd086bea5398b6dd", "e27e8fc7ff675146f1b638a98637021e", "fd534fc2f99acb10d2ff04bf0f822f81"], "statement_hash": "a7634872b97f0a43a006c3dc4f9851bc65d8af6cd588b4009553b843b6ae22d9"}}, {"rule": 2, "type": "equivalent", "target": "d1a860dc00a9dc81973d46ece96b0748", "evidence": {"same_day": true, "patch_ids": ["52eeca007f2cc833bd086bea5398b6dd", "e27e8fc7ff675146f1b638a98637021e", "fd534fc2f99acb10d2ff04bf0f822f81"], "statement_hash": "a7634872b97f0a43a006c3dc4f9851bc65d8af6cd588b4009553b843b6ae22d9"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cb75695174eb56fb419b9a98e09580cc", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "防止新创建或新同步的复制槽被无效化", "evidence": {"same_day": true, "patch_ids": ["52eeca007f2cc833bd086bea5398b6dd", "e27e8fc7ff675146f1b638a98637021e", "fd534fc2f99acb10d2ff04bf0f822f81"], "statement_hash": "a7634872b97f0a43a006c3dc4f9851bc65d8af6cd588b4009553b843b6ae22d9"}, "url": "/docs/compare/?release=18.2#18.2-882569f761ef0610", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "7045b64c3c70e172ffa2ef8c1ae90896", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "防止新创建或新同步的复制槽被无效化", "evidence": {"same_day": true, "patch_ids": ["52eeca007f2cc833bd086bea5398b6dd", "e27e8fc7ff675146f1b638a98637021e", "fd534fc2f99acb10d2ff04bf0f822f81"], "statement_hash": "a7634872b97f0a43a006c3dc4f9851bc65d8af6cd588b4009553b843b6ae22d9"}, "url": "/docs/compare/?release=16.12#16.12-2c0a03a7293625cd", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "54b2a393bc7cb86ab19eb7c660bb2004", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "防止新创建或新同步的复制槽被无效化", "evidence": {"same_day": true, "patch_ids": ["52eeca007f2cc833bd086bea5398b6dd", "e27e8fc7ff675146f1b638a98637021e", "fd534fc2f99acb10d2ff04bf0f822f81"], "statement_hash": "a7634872b97f0a43a006c3dc4f9851bc65d8af6cd588b4009553b843b6ae22d9"}, "url": "/docs/compare/?release=15.16#15.16-2523a9b1b515d26f", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "d1a860dc00a9dc81973d46ece96b0748", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "防止新创建或新同步的复制槽被无效化", "evidence": {"same_day": true, "patch_ids": ["52eeca007f2cc833bd086bea5398b6dd", "e27e8fc7ff675146f1b638a98637021e", "fd534fc2f99acb10d2ff04bf0f822f81"], "statement_hash": "a7634872b97f0a43a006c3dc4f9851bc65d8af6cd588b4009553b843b6ae22d9"}, "url": "/docs/compare/?release=14.21#14.21-39c6194420a5bf2b", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-73bf563728deef29", "cves": [], "html": "<p>修复计算复制槽所需 xmin 时的竞争条件（Zhijie Hou）<a href=\"https://postgr.es/c/123b851ab\">§</a></p>\n<p>这可能导致错误 <span>“<span>cannot build an initial slot snapshot as oldest safe xid follows snapshot's xmin</span>”</span>。</p>", "text": "修复计算复制槽所需 xmin 时的竞争条件（Zhijie Hou）§ 这可能导致错误 “cannot build an initial slot snapshot as oldest safe xid follows snapshot's xmin”。", "title": "修复计算复制槽所需 xmin 时的竞争条件", "commits": ["123b851ab"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "2885b065e4ca25c4575226e4cca7e6ae6728b31b6bf0c52ac355b07c8243b6c1", "section_path": ["变更"], "commit_groups": [["123b851ab", "2a5225b99", "57048d6e1", "821466722", "fa557d300", "fd7c86cfa"]], "identity_text": "Fix race condition in computing a replication slot's required xmin (Zhijie Hou) This could lead to the error cannot build an initial slot snapshot as oldest safe xid follows snapshot's xmin.", "commit_aliases": ["123b851ab", "2a5225b99", "57048d6e1", "821466722", "fa557d300", "fd7c86cfa"], "source_commits": ["123b851ab"], "source_entry_id": "17.8/changes/029", "db_id": "5b75bdc74484bae30e1e7fdc965c9335", "patch_ids": ["c967ad30d8508306bc9949d6c7504333"], "statement_hash": "8dd9f0879870a4299a9d543db5674a7348ed2b9228376a7028ea153ac3afb369", "relations": [{"rule": 2, "type": "equivalent", "target": "669fa902ee7eb1553fc960938aa0101f", "evidence": {"same_day": true, "patch_ids": ["c967ad30d8508306bc9949d6c7504333"], "statement_hash": "8dd9f0879870a4299a9d543db5674a7348ed2b9228376a7028ea153ac3afb369"}}, {"rule": 2, "type": "equivalent", "target": "8dfd1735c21afd64306b7ba15b0a34a0", "evidence": {"same_day": true, "patch_ids": ["c967ad30d8508306bc9949d6c7504333"], "statement_hash": "8dd9f0879870a4299a9d543db5674a7348ed2b9228376a7028ea153ac3afb369"}}, {"rule": 2, "type": "equivalent", "target": "97d0bb3c79bb34e32cf7ac9c088a6cc5", "evidence": {"same_day": true, "patch_ids": ["c967ad30d8508306bc9949d6c7504333"], "statement_hash": "8dd9f0879870a4299a9d543db5674a7348ed2b9228376a7028ea153ac3afb369"}}, {"rule": 2, "type": "equivalent", "target": "ed4968909e48309a69552757b02c2ad7", "evidence": {"same_day": true, "patch_ids": ["c967ad30d8508306bc9949d6c7504333"], "statement_hash": "8dd9f0879870a4299a9d543db5674a7348ed2b9228376a7028ea153ac3afb369"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "669fa902ee7eb1553fc960938aa0101f", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复计算复制槽所需 xmin 时的竞争条件", "evidence": {"same_day": true, "patch_ids": ["c967ad30d8508306bc9949d6c7504333"], "statement_hash": "8dd9f0879870a4299a9d543db5674a7348ed2b9228376a7028ea153ac3afb369"}, "url": "/docs/compare/?release=18.2#18.2-7907d70dfbb36d36", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "97d0bb3c79bb34e32cf7ac9c088a6cc5", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复计算复制槽所需 xmin 时的竞争条件", "evidence": {"same_day": true, "patch_ids": ["c967ad30d8508306bc9949d6c7504333"], "statement_hash": "8dd9f0879870a4299a9d543db5674a7348ed2b9228376a7028ea153ac3afb369"}, "url": "/docs/compare/?release=16.12#16.12-dc6c53055853a66a", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "8dfd1735c21afd64306b7ba15b0a34a0", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复计算复制槽所需 xmin 时的竞争条件", "evidence": {"same_day": true, "patch_ids": ["c967ad30d8508306bc9949d6c7504333"], "statement_hash": "8dd9f0879870a4299a9d543db5674a7348ed2b9228376a7028ea153ac3afb369"}, "url": "/docs/compare/?release=15.16#15.16-a49381efba5b11d0", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "ed4968909e48309a69552757b02c2ad7", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复计算复制槽所需 xmin 时的竞争条件", "evidence": {"same_day": true, "patch_ids": ["c967ad30d8508306bc9949d6c7504333"], "statement_hash": "8dd9f0879870a4299a9d543db5674a7348ed2b9228376a7028ea153ac3afb369"}, "url": "/docs/compare/?release=14.21#14.21-e0ac9a9b715f44f3", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-e95d66b2b17f79c5", "cves": [], "html": "<p>在逻辑复制订阅的初始同步期间，在开始复制数据之前提交 <code>pg_replication_origin</code> 条目的添加（Zhijie Hou）<a href=\"https://postgr.es/c/e063ccc72\">§</a></p>\n<p>以前，如果复制步骤失败，新的 <code>pg_replication_origin</code> 条目会因事务回滚而丢失，从而导致共享内存中的状态不一致。</p>", "text": "在逻辑复制订阅的初始同步期间，在开始复制数据之前提交 pg_replication_origin 条目的添加（Zhijie Hou）§ 以前，如果复制步骤失败，新的 pg_replication_origin 条目会因事务回滚而丢失，从而导致共享内存中的状态不一致。", "title": "在逻辑复制订阅的初始同步期间，在开始复制数据之前提交 pg_replication_origin 条目的添加", "commits": ["e063ccc72"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "78cbbfc2a5c824f382d88c2de9de9ad279befa9ee47afeedcaa2e8fdcdaab44a", "section_path": ["变更"], "commit_groups": [["25a04aa52", "8e0d32a4a", "90d1beef6", "b07c32619", "e063ccc72", "e22e9ab0c"]], "identity_text": "During initial synchronization of a logical replication subscription, commit the addition of a pg_replication_origin entry before starting to copy data (Zhijie Hou) Previously, if the copy step failed, the new pg_replication_origin entry would be lost due to transaction rollback. This led to inconsistent state in shared memory.", "commit_aliases": ["25a04aa52", "8e0d32a4a", "90d1beef6", "b07c32619", "e063ccc72", "e22e9ab0c"], "source_commits": ["e063ccc72"], "source_entry_id": "17.8/changes/030", "db_id": "eb4ae0a26d975941de9f63f06cf9d77f", "patch_ids": ["8e425bf3652841f2fadba06865081f6e"], "statement_hash": "7d150c67ee78399daa2e94cde2a4147e691fc12beccfdee6012621884edbcb26", "relations": [{"rule": 2, "type": "equivalent", "target": "0641edcbe436f507275b2cfe99e6bfe1", "evidence": {"same_day": true, "patch_ids": ["8e425bf3652841f2fadba06865081f6e"], "statement_hash": "7d150c67ee78399daa2e94cde2a4147e691fc12beccfdee6012621884edbcb26"}}, {"rule": 2, "type": "equivalent", "target": "5bdf0ada14933155ce231f2e53c4a971", "evidence": {"same_day": true, "patch_ids": ["8e425bf3652841f2fadba06865081f6e"], "statement_hash": "7d150c67ee78399daa2e94cde2a4147e691fc12beccfdee6012621884edbcb26"}}, {"rule": 2, "type": "equivalent", "target": "6868525096474e94a6c61c14b66bef91", "evidence": {"same_day": true, "patch_ids": ["8e425bf3652841f2fadba06865081f6e"], "statement_hash": "7d150c67ee78399daa2e94cde2a4147e691fc12beccfdee6012621884edbcb26"}}, {"rule": 2, "type": "equivalent", "target": "ca66bcb2ba08cd3e614c66d8cd512695", "evidence": {"same_day": true, "patch_ids": ["8e425bf3652841f2fadba06865081f6e"], "statement_hash": "7d150c67ee78399daa2e94cde2a4147e691fc12beccfdee6012621884edbcb26"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0641edcbe436f507275b2cfe99e6bfe1", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "在逻辑复制订阅的初始同步期间，在开始复制数据之前提交 pg_replication_origin 条目的添加", "evidence": {"same_day": true, "patch_ids": ["8e425bf3652841f2fadba06865081f6e"], "statement_hash": "7d150c67ee78399daa2e94cde2a4147e691fc12beccfdee6012621884edbcb26"}, "url": "/docs/compare/?release=18.2#18.2-2de557ccdda45f50", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "6868525096474e94a6c61c14b66bef91", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "在逻辑复制订阅的初始同步期间，在开始复制数据之前提交 pg_replication_origin 条目的添加", "evidence": {"same_day": true, "patch_ids": ["8e425bf3652841f2fadba06865081f6e"], "statement_hash": "7d150c67ee78399daa2e94cde2a4147e691fc12beccfdee6012621884edbcb26"}, "url": "/docs/compare/?release=16.12#16.12-986cc1721ba7e0ca", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "ca66bcb2ba08cd3e614c66d8cd512695", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "在逻辑复制订阅的初始同步期间，在开始复制数据之前提交 pg_replication_origin 条目的添加", "evidence": {"same_day": true, "patch_ids": ["8e425bf3652841f2fadba06865081f6e"], "statement_hash": "7d150c67ee78399daa2e94cde2a4147e691fc12beccfdee6012621884edbcb26"}, "url": "/docs/compare/?release=15.16#15.16-72eafe5fdeaf4699", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "5bdf0ada14933155ce231f2e53c4a971", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "在逻辑复制订阅的初始同步期间，在开始复制数据之前提交 pg_replication_origin 条目的添加", "evidence": {"same_day": true, "patch_ids": ["8e425bf3652841f2fadba06865081f6e"], "statement_hash": "7d150c67ee78399daa2e94cde2a4147e691fc12beccfdee6012621884edbcb26"}, "url": "/docs/compare/?release=14.21#14.21-3e55dd139a333f1e", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-e6867fece2c6f2d4", "cves": [], "html": "<p>在并行工作进程应用失败后不推进逻辑复制进度（Zhijie Hou）<a href=\"https://postgr.es/c/0ed8f1afb\">§</a></p>\n<p>之前的行为允许订阅者丢失事务。</p>", "text": "在并行工作进程应用失败后不推进逻辑复制进度（Zhijie Hou）§ 之前的行为允许订阅者丢失事务。", "title": "在并行工作进程应用失败后不推进逻辑复制进度", "commits": ["0ed8f1afb"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "28505f1fc0f067397ecf58c1b764b3f80fb61985841686e1336157a7dfbffd06", "section_path": ["变更"], "commit_groups": [["0ed8f1afb", "1528b0d89", "2f7ffe124", "63a65adf4"]], "identity_text": "Don't advance logical replication progress after a parallel worker apply failure (Zhijie Hou) The previous behavior allowed transactions to be lost by a subscriber.", "commit_aliases": ["0ed8f1afb", "1528b0d89", "2f7ffe124", "63a65adf4"], "source_commits": ["0ed8f1afb"], "source_entry_id": "17.8/changes/031", "db_id": "d3f0ce1d0627ffd85c57f5963d822b33", "patch_ids": ["9d8b1309e987cb63c5164f0ac19628f4"], "statement_hash": "843a95a8685d2abb66e22dcecb3ca218c807c27fb6410d57c5646106423458aa", "relations": [{"rule": 2, "type": "equivalent", "target": "0f5fb8d4e546a502c86c3683cd965e48", "evidence": {"same_day": true, "patch_ids": ["9d8b1309e987cb63c5164f0ac19628f4"], "statement_hash": "843a95a8685d2abb66e22dcecb3ca218c807c27fb6410d57c5646106423458aa"}}, {"rule": 2, "type": "equivalent", "target": "3e82f89211515507e8f8677f313d3799", "evidence": {"same_day": true, "patch_ids": ["9d8b1309e987cb63c5164f0ac19628f4"], "statement_hash": "843a95a8685d2abb66e22dcecb3ca218c807c27fb6410d57c5646106423458aa"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3e82f89211515507e8f8677f313d3799", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "在并行工作进程应用失败后不推进逻辑复制进度", "evidence": {"same_day": true, "patch_ids": ["9d8b1309e987cb63c5164f0ac19628f4"], "statement_hash": "843a95a8685d2abb66e22dcecb3ca218c807c27fb6410d57c5646106423458aa"}, "url": "/docs/compare/?release=18.2#18.2-434a2b6b0d42abc4", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "0f5fb8d4e546a502c86c3683cd965e48", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "在并行工作进程应用失败后不推进逻辑复制进度", "evidence": {"same_day": true, "patch_ids": ["9d8b1309e987cb63c5164f0ac19628f4"], "statement_hash": "843a95a8685d2abb66e22dcecb3ca218c807c27fb6410d57c5646106423458aa"}, "url": "/docs/compare/?release=16.12#16.12-3caf153e1345719c", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}]}, {"id": "17.8-f2b54a080f4d7fca", "cves": [], "html": "<p>修复逻辑复制 slotsync 工作进程对 LOCK_TIMEOUT 信号的处理（Zhijie Hou）<a href=\"https://postgr.es/c/f2818868a\">§</a></p>\n<p>以前，这类超时信号实际上会被忽略。</p>", "text": "修复逻辑复制 slotsync 工作进程对 LOCK_TIMEOUT 信号的处理（Zhijie Hou）§ 以前，这类超时信号实际上会被忽略。", "title": "修复逻辑复制 slotsync 工作进程对 LOCK_TIMEOUT 信号的处理", "commits": ["f2818868a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "ed3db420b3ce0538723c7fd80ca7c8d0dbb3e471a79ffa01895418c452543678", "section_path": ["变更"], "commit_groups": [["04396eacd", "6c61c69d5", "f2818868a"]], "identity_text": "Fix logical replication slotsync worker processes to handle LOCK_TIMEOUT signals correctly (Zhijie Hou) Previously, timeout signals were effectively ignored.", "commit_aliases": ["04396eacd", "6c61c69d5", "f2818868a"], "source_commits": ["f2818868a"], "source_entry_id": "17.8/changes/032", "db_id": "516169d81baba61d618e37237bc53276", "patch_ids": ["bdd6c0273fd3cdf835c31867877f6167"], "statement_hash": "f0b98267cefa8d08da7ffcca6c441a22dd2c4323a5763263e96b18dd48ae7fc5", "relations": [{"rule": 2, "type": "equivalent", "target": "b79cdfd53c29fdec5dd1d0dff7f08fee", "evidence": {"same_day": true, "patch_ids": ["bdd6c0273fd3cdf835c31867877f6167"], "statement_hash": "f0b98267cefa8d08da7ffcca6c441a22dd2c4323a5763263e96b18dd48ae7fc5"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b79cdfd53c29fdec5dd1d0dff7f08fee", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复逻辑复制 slotsync 工作进程对 LOCK_TIMEOUT 信号的处理", "evidence": {"same_day": true, "patch_ids": ["bdd6c0273fd3cdf835c31867877f6167"], "statement_hash": "f0b98267cefa8d08da7ffcca6c441a22dd2c4323a5763263e96b18dd48ae7fc5"}, "url": "/docs/compare/?release=18.2#18.2-2a6c1c4c27f67acd", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}]}, {"id": "17.8-ca1e290b0cb2dd09", "cves": [], "html": "<p>修复流复制副本服务器重启期间可能出现的 <span>“<span>unexpected data beyond EOF</span>”</span> 失败问题（Anthonin Bonnefoy）<a href=\"https://postgr.es/c/c3770181c\">§</a></p>", "text": "修复流复制副本服务器重启期间可能出现的 “unexpected data beyond EOF” 失败问题（Anthonin Bonnefoy）§", "title": "修复流复制副本服务器重启期间可能出现的 “unexpected data beyond EOF” 失败问题", "commits": ["c3770181c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "5c0dd5ed1b78782d221ab6b0b704ca55b5c886b82dd607f5477b02b815f39133", "section_path": ["变更"], "commit_groups": [["23b25586d", "2514f1c77", "9ed411e08", "a2eeb04f3", "c3770181c", "ef8465588"]], "identity_text": "Fix possible failure with unexpected data beyond EOF during restart of a streaming replica server (Anthonin Bonnefoy)", "commit_aliases": ["23b25586d", "2514f1c77", "9ed411e08", "a2eeb04f3", "c3770181c", "ef8465588"], "source_commits": ["c3770181c"], "source_entry_id": "17.8/changes/033", "db_id": "a79b7d220801497e224783e6369f7957", "patch_ids": ["5162c78b0f9af44ee53c5daf07030ba8"], "statement_hash": "6b8e19ac39d2a905a6b06a59a41de464bc6a62cc815b31c6e858ae96438db9ab", "relations": [{"rule": 2, "type": "equivalent", "target": "06594efa4344da118700b1c48988f5e4", "evidence": {"same_day": true, "patch_ids": ["5162c78b0f9af44ee53c5daf07030ba8"], "statement_hash": "6b8e19ac39d2a905a6b06a59a41de464bc6a62cc815b31c6e858ae96438db9ab"}}, {"rule": 2, "type": "equivalent", "target": "668c3f03c522a5db8d076f179e064027", "evidence": {"same_day": true, "patch_ids": ["5162c78b0f9af44ee53c5daf07030ba8"], "statement_hash": "6b8e19ac39d2a905a6b06a59a41de464bc6a62cc815b31c6e858ae96438db9ab"}}, {"rule": 2, "type": "equivalent", "target": "8d924571fb5bee478b47c49ff89fa7f5", "evidence": {"same_day": true, "patch_ids": ["5162c78b0f9af44ee53c5daf07030ba8"], "statement_hash": "6b8e19ac39d2a905a6b06a59a41de464bc6a62cc815b31c6e858ae96438db9ab"}}, {"rule": 2, "type": "equivalent", "target": "a321a63cf72d9e7f3afd2ff1e5a2c814", "evidence": {"same_day": true, "patch_ids": ["5162c78b0f9af44ee53c5daf07030ba8"], "statement_hash": "6b8e19ac39d2a905a6b06a59a41de464bc6a62cc815b31c6e858ae96438db9ab"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "06594efa4344da118700b1c48988f5e4", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复流复制副本服务器重启期间可能出现的 “unexpected data beyond EOF” 失败问题", "evidence": {"same_day": true, "patch_ids": ["5162c78b0f9af44ee53c5daf07030ba8"], "statement_hash": "6b8e19ac39d2a905a6b06a59a41de464bc6a62cc815b31c6e858ae96438db9ab"}, "url": "/docs/compare/?release=18.2#18.2-c52d288613257e1b", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "a321a63cf72d9e7f3afd2ff1e5a2c814", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复流复制副本服务器重启期间可能出现的 “unexpected data beyond EOF” 失败问题", "evidence": {"same_day": true, "patch_ids": ["5162c78b0f9af44ee53c5daf07030ba8"], "statement_hash": "6b8e19ac39d2a905a6b06a59a41de464bc6a62cc815b31c6e858ae96438db9ab"}, "url": "/docs/compare/?release=16.12#16.12-ce78056abed06c7f", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "668c3f03c522a5db8d076f179e064027", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复流复制副本服务器重启期间可能出现的 “unexpected data beyond EOF” 失败问题", "evidence": {"same_day": true, "patch_ids": ["5162c78b0f9af44ee53c5daf07030ba8"], "statement_hash": "6b8e19ac39d2a905a6b06a59a41de464bc6a62cc815b31c6e858ae96438db9ab"}, "url": "/docs/compare/?release=15.16#15.16-ba8bb5d9e4033d19", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "8d924571fb5bee478b47c49ff89fa7f5", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复流复制副本服务器重启期间可能出现的 “unexpected data beyond EOF” 失败问题", "evidence": {"same_day": true, "patch_ids": ["5162c78b0f9af44ee53c5daf07030ba8"], "statement_hash": "6b8e19ac39d2a905a6b06a59a41de464bc6a62cc815b31c6e858ae96438db9ab"}, "url": "/docs/compare/?release=14.21#14.21-56f9977d411ed1a0", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-2a0ef06d727eafaf", "cves": [], "html": "<p>修复 SQL/JSON 路径类型不匹配时的错误报告（Jian He）<a href=\"https://postgr.es/c/b5511fed5\">§</a></p>\n<p>该代码原本应报告路径表达式类型不正确，却可能产生 <span>“<span>cache lookup failed for type 0</span>”</span> 错误。</p>", "text": "修复 SQL/JSON 路径类型不匹配时的错误报告（Jian He）§ 该代码原本应报告路径表达式类型不正确，却可能产生 “cache lookup failed for type 0” 错误。", "title": "修复 SQL/JSON 路径类型不匹配时的错误报告", "commits": ["b5511fed5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "235cc3f3ee46b8fcd9023618e87cbc7250f3b9e0388ae165eddbd36b4ffd2582", "section_path": ["变更"], "commit_groups": [["15ba0702c", "519fa0433", "b5511fed5"]], "identity_text": "Fix error reporting for SQL/JSON path type mismatches (Jian He) The code could produce a cache lookup failed for type 0 error instead of the intended complaint about the path expression not being of the right type.", "commit_aliases": ["15ba0702c", "519fa0433", "b5511fed5"], "source_commits": ["b5511fed5"], "source_entry_id": "17.8/changes/034", "db_id": "8483ae615f87a4c8e095a563aecd48c8", "patch_ids": ["280990af5b3469c06fb7ff61c204b4ef"], "statement_hash": "125204f7b1e9d0130c0fb80a18be78fa7ce15ceea1fb46138ad538ba516556af", "relations": [{"rule": 2, "type": "equivalent", "target": "54166f9d89f4ebad4b6522ec9d70d5f6", "evidence": {"same_day": true, "patch_ids": ["280990af5b3469c06fb7ff61c204b4ef"], "statement_hash": "125204f7b1e9d0130c0fb80a18be78fa7ce15ceea1fb46138ad538ba516556af"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "54166f9d89f4ebad4b6522ec9d70d5f6", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复 SQL/JSON 路径类型不匹配时的错误报告", "evidence": {"same_day": true, "patch_ids": ["280990af5b3469c06fb7ff61c204b4ef"], "statement_hash": "125204f7b1e9d0130c0fb80a18be78fa7ce15ceea1fb46138ad538ba516556af"}, "url": "/docs/compare/?release=18.2#18.2-a3a0f5425174a83a", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}]}, {"id": "17.8-1ae71997df1c5c19", "cves": [], "html": "<p>修复解析分区范围边界时对列位置的错误跟踪（myzhen）<a href=\"https://postgr.es/c/84b787ae6\">§</a></p>\n<p>这可能导致在关于将分区边界值转换为列的数据类型的错误消息中引用错误的列名。</p>", "text": "修复解析分区范围边界时对列位置的错误跟踪（myzhen）§ 这可能导致在关于将分区边界值转换为列的数据类型的错误消息中引用错误的列名。", "title": "修复解析分区范围边界时对列位置的错误跟踪", "commits": ["84b787ae6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "3802c023fa767d9a7cc6c8d787ca6a68ed5663c8715e031f004110d8899b1bc3", "section_path": ["变更"], "commit_groups": [["349107537", "3ad05640b", "821c4d27b", "84b787ae6", "a65995947", "c35e5dd9a"]], "identity_text": "Fix erroneous tracking of column position when parsing partition range bounds (myzhen) This could, for example, lead to the wrong column name being cited in error messages about casting partition bound values to the column's data type.", "commit_aliases": ["349107537", "3ad05640b", "821c4d27b", "84b787ae6", "a65995947", "c35e5dd9a"], "source_commits": ["84b787ae6"], "source_entry_id": "17.8/changes/035", "db_id": "3d999c9c39b345cf00d6c149f77369bc", "patch_ids": ["6f0c6912e975c2e11453b9af7373ff2b"], "statement_hash": "99c55def0f9f50d97f55530e56d1c92347af0e9dedfe788a482bbfd2a5b86232", "relations": [{"rule": 2, "type": "equivalent", "target": "775ee6e8b3e233efe9c85fc527d0a5d4", "evidence": {"same_day": true, "patch_ids": ["6f0c6912e975c2e11453b9af7373ff2b"], "statement_hash": "99c55def0f9f50d97f55530e56d1c92347af0e9dedfe788a482bbfd2a5b86232"}}, {"rule": 2, "type": "equivalent", "target": "8da33c76c87cf129799d93a7efd47d96", "evidence": {"same_day": true, "patch_ids": ["6f0c6912e975c2e11453b9af7373ff2b"], "statement_hash": "99c55def0f9f50d97f55530e56d1c92347af0e9dedfe788a482bbfd2a5b86232"}}, {"rule": 2, "type": "equivalent", "target": "bb4e430870bc5f4909df899b3e4e6a47", "evidence": {"same_day": true, "patch_ids": ["6f0c6912e975c2e11453b9af7373ff2b"], "statement_hash": "99c55def0f9f50d97f55530e56d1c92347af0e9dedfe788a482bbfd2a5b86232"}}, {"rule": 2, "type": "equivalent", "target": "bcd807761d1a951aa85d661bf8df019c", "evidence": {"same_day": true, "patch_ids": ["6f0c6912e975c2e11453b9af7373ff2b"], "statement_hash": "99c55def0f9f50d97f55530e56d1c92347af0e9dedfe788a482bbfd2a5b86232"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bcd807761d1a951aa85d661bf8df019c", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复解析分区范围边界时对列位置的错误跟踪", "evidence": {"same_day": true, "patch_ids": ["6f0c6912e975c2e11453b9af7373ff2b"], "statement_hash": "99c55def0f9f50d97f55530e56d1c92347af0e9dedfe788a482bbfd2a5b86232"}, "url": "/docs/compare/?release=18.2#18.2-3915ae13b44752be", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "bb4e430870bc5f4909df899b3e4e6a47", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复解析分区范围边界时对列位置的错误跟踪", "evidence": {"same_day": true, "patch_ids": ["6f0c6912e975c2e11453b9af7373ff2b"], "statement_hash": "99c55def0f9f50d97f55530e56d1c92347af0e9dedfe788a482bbfd2a5b86232"}, "url": "/docs/compare/?release=16.12#16.12-cf6cf28e524760ac", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "775ee6e8b3e233efe9c85fc527d0a5d4", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复解析分区范围边界时对列位置的错误跟踪", "evidence": {"same_day": true, "patch_ids": ["6f0c6912e975c2e11453b9af7373ff2b"], "statement_hash": "99c55def0f9f50d97f55530e56d1c92347af0e9dedfe788a482bbfd2a5b86232"}, "url": "/docs/compare/?release=15.16#15.16-ed7528c4bca01a17", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "8da33c76c87cf129799d93a7efd47d96", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复解析分区范围边界时对列位置的错误跟踪", "evidence": {"same_day": true, "patch_ids": ["6f0c6912e975c2e11453b9af7373ff2b"], "statement_hash": "99c55def0f9f50d97f55530e56d1c92347af0e9dedfe788a482bbfd2a5b86232"}, "url": "/docs/compare/?release=14.21#14.21-cd4c9b00fed268c0", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-4eafc20a792cccfc", "cves": [], "html": "<p>修复错误消息中的各种小错误（Man Zeng，Tianchen Zhang）<a href=\"https://postgr.es/c/67ad4387b\">§</a> <a href=\"https://postgr.es/c/263af458e\">§</a> <a href=\"https://postgr.es/c/5995135f1\">§</a> <a href=\"https://postgr.es/c/05ef2371a\">§</a> <a href=\"https://postgr.es/c/5449fd261\">§</a></p>\n<p>例如，关于备份清单中时间线编号不匹配的错误报告在应该显示结束时间线编号的地方显示了起始时间线编号。</p>", "text": "修复错误消息中的各种小错误（Man Zeng，Tianchen Zhang）§ § § § § 例如，关于备份清单中时间线编号不匹配的错误报告在应该显示结束时间线编号的地方显示了起始时间线编号。", "title": "修复错误消息中的各种小错误", "commits": ["05ef2371a", "263af458e", "5449fd261", "5995135f1", "67ad4387b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "d11f9d44eb20229b3ccd2863975791a8da413af9512a0e257db9d5ece6aa6862", "section_path": ["变更"], "commit_groups": [["05ef2371a", "69ee81932", "6bca4b50d", "e8fd6c9fd", "f1dc7a5b7", "fbf8df580"], ["1653ce523", "3e7bb39df", "5449fd261", "9dcd0b3de", "a7bdbbada", "cff2ef984"], ["263af458e", "2ca4464b6", "c8ec74713"], ["4ec943f7d", "67ad4387b", "74a116a79", "977a17a3e", "acfa422c3", "d32e17160"], ["5995135f1", "a9afa021e", "ab61f0087"]], "identity_text": "Fix assorted minor errors in error messages (Man Zeng, Tianchen Zhang) For example, an error report about mismatched timeline number in a backup manifest showed the starting timeline number where it meant to show the ending timeline number.", "commit_aliases": ["05ef2371a", "1653ce523", "263af458e", "2ca4464b6", "3e7bb39df", "4ec943f7d", "5449fd261", "5995135f1", "67ad4387b", "69ee81932", "6bca4b50d", "74a116a79", "977a17a3e", "9dcd0b3de", "a7bdbbada", "a9afa021e", "ab61f0087", "acfa422c3", "c8ec74713", "cff2ef984", "d32e17160", "e8fd6c9fd", "f1dc7a5b7", "fbf8df580"], "source_commits": ["05ef2371a", "263af458e", "5449fd261", "5995135f1", "67ad4387b"], "source_entry_id": "17.8/changes/036", "db_id": "040254b8395148f9ed2820a7a9e7de75", "patch_ids": ["1b2d3003a616272db51c764aca05446f", "9747f7cd321d1b9a8c5ab680817d174b", "d322434f9f1579628716983e1ddfa411", "dafc2603cafe575939465f2fd551a6ac", "e9fdf560cb4a79421801e80c5b2933b7"], "statement_hash": "1c12bc1b49de92034a5abdd2caee35fcf65ab113a875838de01715e754830737", "relations": [{"rule": 2, "type": "equivalent", "target": "03e8508ea8a410388767d947c24e8eb3", "evidence": {"same_day": true, "patch_ids": ["1b2d3003a616272db51c764aca05446f", "9747f7cd321d1b9a8c5ab680817d174b", "d322434f9f1579628716983e1ddfa411", "dafc2603cafe575939465f2fd551a6ac", "e9fdf560cb4a79421801e80c5b2933b7"], "statement_hash": "1c12bc1b49de92034a5abdd2caee35fcf65ab113a875838de01715e754830737"}}, {"rule": 2, "type": "equivalent", "target": "6391fdf7551cb6b17994c91b76215a9f", "evidence": {"same_day": true, "patch_ids": ["1b2d3003a616272db51c764aca05446f", "9747f7cd321d1b9a8c5ab680817d174b", "d322434f9f1579628716983e1ddfa411", "dafc2603cafe575939465f2fd551a6ac", "e9fdf560cb4a79421801e80c5b2933b7"], "statement_hash": "1c12bc1b49de92034a5abdd2caee35fcf65ab113a875838de01715e754830737"}}, {"rule": 2, "type": "equivalent", "target": "c28d793705797c568ae351065c8bf92d", "evidence": {"same_day": true, "patch_ids": ["1b2d3003a616272db51c764aca05446f", "9747f7cd321d1b9a8c5ab680817d174b", "d322434f9f1579628716983e1ddfa411", "dafc2603cafe575939465f2fd551a6ac", "e9fdf560cb4a79421801e80c5b2933b7"], "statement_hash": "1c12bc1b49de92034a5abdd2caee35fcf65ab113a875838de01715e754830737"}}, {"rule": 2, "type": "equivalent", "target": "e4eecf733b283aee3b3d1c824dbc8e27", "evidence": {"same_day": true, "patch_ids": ["1b2d3003a616272db51c764aca05446f", "9747f7cd321d1b9a8c5ab680817d174b", "d322434f9f1579628716983e1ddfa411", "dafc2603cafe575939465f2fd551a6ac", "e9fdf560cb4a79421801e80c5b2933b7"], "statement_hash": "1c12bc1b49de92034a5abdd2caee35fcf65ab113a875838de01715e754830737"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c28d793705797c568ae351065c8bf92d", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复错误消息中的各种小错误", "evidence": {"same_day": true, "patch_ids": ["1b2d3003a616272db51c764aca05446f", "9747f7cd321d1b9a8c5ab680817d174b", "d322434f9f1579628716983e1ddfa411", "dafc2603cafe575939465f2fd551a6ac", "e9fdf560cb4a79421801e80c5b2933b7"], "statement_hash": "1c12bc1b49de92034a5abdd2caee35fcf65ab113a875838de01715e754830737"}, "url": "/docs/compare/?release=18.2#18.2-2eb9c2c4100a1830", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "e4eecf733b283aee3b3d1c824dbc8e27", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复错误消息中的各种小错误", "evidence": {"same_day": true, "patch_ids": ["1b2d3003a616272db51c764aca05446f", "9747f7cd321d1b9a8c5ab680817d174b", "d322434f9f1579628716983e1ddfa411", "dafc2603cafe575939465f2fd551a6ac", "e9fdf560cb4a79421801e80c5b2933b7"], "statement_hash": "1c12bc1b49de92034a5abdd2caee35fcf65ab113a875838de01715e754830737"}, "url": "/docs/compare/?release=16.12#16.12-3849a6578b12c6fe", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "6391fdf7551cb6b17994c91b76215a9f", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复错误消息中的各种小错误", "evidence": {"same_day": true, "patch_ids": ["1b2d3003a616272db51c764aca05446f", "9747f7cd321d1b9a8c5ab680817d174b", "d322434f9f1579628716983e1ddfa411", "dafc2603cafe575939465f2fd551a6ac", "e9fdf560cb4a79421801e80c5b2933b7"], "statement_hash": "1c12bc1b49de92034a5abdd2caee35fcf65ab113a875838de01715e754830737"}, "url": "/docs/compare/?release=15.16#15.16-3b76c2a636f3fe46", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "03e8508ea8a410388767d947c24e8eb3", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复错误消息中的各种小错误", "evidence": {"same_day": true, "patch_ids": ["1b2d3003a616272db51c764aca05446f", "9747f7cd321d1b9a8c5ab680817d174b", "d322434f9f1579628716983e1ddfa411", "dafc2603cafe575939465f2fd551a6ac", "e9fdf560cb4a79421801e80c5b2933b7"], "statement_hash": "1c12bc1b49de92034a5abdd2caee35fcf65ab113a875838de01715e754830737"}, "url": "/docs/compare/?release=14.21#14.21-2f6c908c2dcee449", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-c185802f4eacb2ea", "cves": [], "html": "<p>修复在使用 LLVM 17 或更高版本进行 JIT 编译时无法执行函数内联的问题（Anthonin Bonnefoy）<a href=\"https://postgr.es/c/d0bb0e5b3\">§</a></p>", "text": "修复在使用 LLVM 17 或更高版本进行 JIT 编译时无法执行函数内联的问题（Anthonin Bonnefoy）§", "title": "修复在使用 LLVM 17 或更高版本进行 JIT 编译时无法执行函数内联的问题", "commits": ["d0bb0e5b3"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "727f41759a85aa0a8faef9abb8a81964dfe299da3ead30da936799b9862e599b", "section_path": ["变更"], "commit_groups": [["7600dc79c", "cbdd09ae1", "d0bb0e5b3", "de8081c30", "e5d99b4d9", "f1c6b153c"]], "identity_text": "Fix failure to perform function inlining when doing JIT compilation with LLVM version 17 or later (Anthonin Bonnefoy)", "commit_aliases": ["7600dc79c", "cbdd09ae1", "d0bb0e5b3", "de8081c30", "e5d99b4d9", "f1c6b153c"], "source_commits": ["d0bb0e5b3"], "source_entry_id": "17.8/changes/037", "db_id": "23db3b0771d0b80deb078c18239bf311", "patch_ids": ["5add9e288aea8ead5625b1ab17f4b389"], "statement_hash": "d9b663cb80004c186d8a4f9af93bb5b74dc9a0534dcc279ee72325534d3c24af", "relations": [{"rule": 2, "type": "equivalent", "target": "1d826bf62f1c8707e84a00b08bca6cc2", "evidence": {"same_day": true, "patch_ids": ["5add9e288aea8ead5625b1ab17f4b389"], "statement_hash": "d9b663cb80004c186d8a4f9af93bb5b74dc9a0534dcc279ee72325534d3c24af"}}, {"rule": 2, "type": "equivalent", "target": "41aa0fa812e386b3bf111e16e5ca824b", "evidence": {"same_day": true, "patch_ids": ["5add9e288aea8ead5625b1ab17f4b389"], "statement_hash": "d9b663cb80004c186d8a4f9af93bb5b74dc9a0534dcc279ee72325534d3c24af"}}, {"rule": 2, "type": "equivalent", "target": "6c8a23f42fdf36b27a5c63a60ef638ee", "evidence": {"same_day": true, "patch_ids": ["5add9e288aea8ead5625b1ab17f4b389"], "statement_hash": "d9b663cb80004c186d8a4f9af93bb5b74dc9a0534dcc279ee72325534d3c24af"}}, {"rule": 2, "type": "equivalent", "target": "da5340b311cf457b0c8052e7119f6c5c", "evidence": {"same_day": true, "patch_ids": ["5add9e288aea8ead5625b1ab17f4b389"], "statement_hash": "d9b663cb80004c186d8a4f9af93bb5b74dc9a0534dcc279ee72325534d3c24af"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6c8a23f42fdf36b27a5c63a60ef638ee", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复在使用 LLVM 17 或更高版本进行 JIT 编译时无法执行函数内联的问题", "evidence": {"same_day": true, "patch_ids": ["5add9e288aea8ead5625b1ab17f4b389"], "statement_hash": "d9b663cb80004c186d8a4f9af93bb5b74dc9a0534dcc279ee72325534d3c24af"}, "url": "/docs/compare/?release=18.2#18.2-53f3b7ffe4f6fe06", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "1d826bf62f1c8707e84a00b08bca6cc2", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复在使用 LLVM 17 或更高版本进行 JIT 编译时无法执行函数内联的问题", "evidence": {"same_day": true, "patch_ids": ["5add9e288aea8ead5625b1ab17f4b389"], "statement_hash": "d9b663cb80004c186d8a4f9af93bb5b74dc9a0534dcc279ee72325534d3c24af"}, "url": "/docs/compare/?release=16.12#16.12-e61e367302b48095", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "da5340b311cf457b0c8052e7119f6c5c", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复在使用 LLVM 17 或更高版本进行 JIT 编译时无法执行函数内联的问题", "evidence": {"same_day": true, "patch_ids": ["5add9e288aea8ead5625b1ab17f4b389"], "statement_hash": "d9b663cb80004c186d8a4f9af93bb5b74dc9a0534dcc279ee72325534d3c24af"}, "url": "/docs/compare/?release=15.16#15.16-7077db49018d55b0", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "41aa0fa812e386b3bf111e16e5ca824b", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复在使用 LLVM 17 或更高版本进行 JIT 编译时无法执行函数内联的问题", "evidence": {"same_day": true, "patch_ids": ["5add9e288aea8ead5625b1ab17f4b389"], "statement_hash": "d9b663cb80004c186d8a4f9af93bb5b74dc9a0534dcc279ee72325534d3c24af"}, "url": "/docs/compare/?release=14.21#14.21-c9d25ce6f3b8c109", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-64e9296142cf419d", "cves": [], "html": "<p>调整我们的 JIT 代码以兼容 LLVM 21（Holger Hoffstätte）<a href=\"https://postgr.es/c/60215eae7\">§</a></p>\n<p>之前的代码在 aarch64 机器上编译失败。</p>", "text": "调整我们的 JIT 代码以兼容 LLVM 21（Holger Hoffstätte）§ 之前的代码在 aarch64 机器上编译失败。", "title": "调整我们的 JIT 代码以兼容 LLVM 21", "commits": ["60215eae7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "1cfecb4423eabcdda7f315770ea987859a452cfe33cad1cf4ec02ea170143171", "section_path": ["变更"], "commit_groups": [["035a1f5ac", "0dceba21d", "55164852d", "600acd34b", "60215eae7", "912cfa314"]], "identity_text": "Adjust our JIT code to work with LLVM 21 (Holger Hoffstätte) The previous coding failed to compile on aarch64 machines.", "commit_aliases": ["035a1f5ac", "0dceba21d", "55164852d", "600acd34b", "60215eae7", "912cfa314"], "source_commits": ["60215eae7"], "source_entry_id": "17.8/changes/038", "db_id": "c7ea32ba825d2c7140b0017b02f1a3ec", "patch_ids": ["66d712c94d1e5df73fed0dd65d77b242"], "statement_hash": "3c6749ca7e34ce305cd7020f2256a99d6e58f6a41cedef18deedef24299c3cdc", "relations": [{"rule": 2, "type": "equivalent", "target": "084e13baf0a1aaa1b6831e50a2e8b014", "evidence": {"same_day": true, "patch_ids": ["66d712c94d1e5df73fed0dd65d77b242"], "statement_hash": "3c6749ca7e34ce305cd7020f2256a99d6e58f6a41cedef18deedef24299c3cdc"}}, {"rule": 2, "type": "equivalent", "target": "51e665bd2f8466b41d80cf0223c7e413", "evidence": {"same_day": true, "patch_ids": ["66d712c94d1e5df73fed0dd65d77b242"], "statement_hash": "3c6749ca7e34ce305cd7020f2256a99d6e58f6a41cedef18deedef24299c3cdc"}}, {"rule": 2, "type": "equivalent", "target": "cff57c5be469c947c3ffe128e6ba5e35", "evidence": {"same_day": true, "patch_ids": ["66d712c94d1e5df73fed0dd65d77b242"], "statement_hash": "3c6749ca7e34ce305cd7020f2256a99d6e58f6a41cedef18deedef24299c3cdc"}}, {"rule": 2, "type": "equivalent", "target": "e7ed91f4e25921028767eb7d80e59575", "evidence": {"same_day": true, "patch_ids": ["66d712c94d1e5df73fed0dd65d77b242"], "statement_hash": "3c6749ca7e34ce305cd7020f2256a99d6e58f6a41cedef18deedef24299c3cdc"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e7ed91f4e25921028767eb7d80e59575", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "调整我们的 JIT 代码以兼容 LLVM 21", "evidence": {"same_day": true, "patch_ids": ["66d712c94d1e5df73fed0dd65d77b242"], "statement_hash": "3c6749ca7e34ce305cd7020f2256a99d6e58f6a41cedef18deedef24299c3cdc"}, "url": "/docs/compare/?release=18.2#18.2-bf063586f9119b1e", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "51e665bd2f8466b41d80cf0223c7e413", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "调整我们的 JIT 代码以兼容 LLVM 21", "evidence": {"same_day": true, "patch_ids": ["66d712c94d1e5df73fed0dd65d77b242"], "statement_hash": "3c6749ca7e34ce305cd7020f2256a99d6e58f6a41cedef18deedef24299c3cdc"}, "url": "/docs/compare/?release=16.12#16.12-f79746039ad9700e", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "084e13baf0a1aaa1b6831e50a2e8b014", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "调整我们的 JIT 代码以兼容 LLVM 21", "evidence": {"same_day": true, "patch_ids": ["66d712c94d1e5df73fed0dd65d77b242"], "statement_hash": "3c6749ca7e34ce305cd7020f2256a99d6e58f6a41cedef18deedef24299c3cdc"}, "url": "/docs/compare/?release=15.16#15.16-1709d5e654f518fa", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "cff57c5be469c947c3ffe128e6ba5e35", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "调整我们的 JIT 代码以兼容 LLVM 21", "evidence": {"same_day": true, "patch_ids": ["66d712c94d1e5df73fed0dd65d77b242"], "statement_hash": "3c6749ca7e34ce305cd7020f2256a99d6e58f6a41cedef18deedef24299c3cdc"}, "url": "/docs/compare/?release=14.21#14.21-cf7b1ea7a3d14458", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-3210c07692952f51", "cves": [], "html": "<p>增加新的服务器参数<a href=\"/docs/17/runtime-config-resource.html#GUC-FILE-EXTEND-METHOD\">file_extend_method</a>来控制 <code>posix_fallocate()</code> 的使用（Thomas Munro）<a href=\"https://postgr.es/c/4dac22aa1\">§</a></p>\n<p><span>PostgreSQL</span> 版本 16 及更高版本会使用 <code>posix_fallocate()</code>（如果平台提供的话）来扩展关系文件。然而，据报告这与某些文件系统交互不良：BTRFS 压缩会因使用 <code>posix_fallocate()</code> 而被禁用，而在较旧的 Linux 内核版本中 XFS 可能会产生虚假的 <code>ENOSPC</code> 错误。为提供一种解决方案，引入了这个新的服务器参数。将 <code>file_extend_method</code> 设置为 <code>write_zeros</code> 将使服务器回退到通过写入全零数据块来扩展文件的旧方法。</p>", "text": "增加新的服务器参数file_extend_method来控制 posix_fallocate() 的使用（Thomas Munro）§ PostgreSQL 版本 16 及更高版本会使用 posix_fallocate()（如果平台提供的话）来扩展关系文件。然而，据报告这与某些文件系统交互不良：BTRFS 压缩会因使用 posix_fallocate() 而被禁用，而在较旧的 Linux 内核版本中 XFS 可能会产生虚假的 ENOSPC 错误。为提供一种解决方案，引入了这个新的服务器参数。将 file_extend_method 设置为 write_zeros 将使服务器回退到通过写入全零数据块来扩展文件的旧方法。", "title": "增加新的服务器参数file_extend_method来控制 posix_fallocate() 的使用", "commits": ["4dac22aa1"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "297317c9ea99e1fdcf4741abd5bb218f589a8c56de8360627b5cc9663af09cde", "section_path": ["变更"], "commit_groups": [["33e3de6d7", "4dac22aa1", "e37b59802", "f94e9141a"]], "identity_text": "Add new server parameter guc-file-extend-method to control use of posix_fallocate() (Thomas Munro) PostgreSQL version 16 and later will use posix_fallocate(), if the platform provides it, to extend relation files. However, this has been reported to interact poorly with some file systems: BTRFS compression is disabled by the use of posix_fallocate(), and XFS could produce spurious ENOSPC errors in older Linux kernel versions. To provide a workaround, introduce this new server parameter. Setting file_extend_method to write_zeros will cause the server to return to the old method of extending files by writing blocks of zeroes.", "commit_aliases": ["33e3de6d7", "4dac22aa1", "e37b59802", "f94e9141a"], "source_commits": ["4dac22aa1"], "source_entry_id": "17.8/changes/039", "db_id": "831a2a1707eb5395bf41f9e7b4720b03", "patch_ids": ["a7b44dde4fd829d977d49b09a9e92844"], "statement_hash": "5c68aeb05030a49c506a17d2a099ad9d1dea4d8b209cb3fdb53b69f77666342f", "relations": [{"rule": 2, "type": "equivalent", "target": "1190447ef9e06df061dbd62c7fd05aa7", "evidence": {"same_day": true, "patch_ids": ["a7b44dde4fd829d977d49b09a9e92844"], "statement_hash": "5c68aeb05030a49c506a17d2a099ad9d1dea4d8b209cb3fdb53b69f77666342f"}}, {"rule": 2, "type": "equivalent", "target": "21858e94e3aeea81abfb43c5e1981b1c", "evidence": {"same_day": true, "patch_ids": ["a7b44dde4fd829d977d49b09a9e92844"], "statement_hash": "5c68aeb05030a49c506a17d2a099ad9d1dea4d8b209cb3fdb53b69f77666342f"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "21858e94e3aeea81abfb43c5e1981b1c", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "增加新的服务器参数file_extend_method来控制 posix_fallocate() 的使用", "evidence": {"same_day": true, "patch_ids": ["a7b44dde4fd829d977d49b09a9e92844"], "statement_hash": "5c68aeb05030a49c506a17d2a099ad9d1dea4d8b209cb3fdb53b69f77666342f"}, "url": "/docs/compare/?release=18.2#18.2-03a42dee6cc753ad", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "1190447ef9e06df061dbd62c7fd05aa7", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "增加新的服务器参数file_extend_method来控制 posix_fallocate() 的使用", "evidence": {"same_day": true, "patch_ids": ["a7b44dde4fd829d977d49b09a9e92844"], "statement_hash": "5c68aeb05030a49c506a17d2a099ad9d1dea4d8b209cb3fdb53b69f77666342f"}, "url": "/docs/compare/?release=16.12#16.12-06ed9c5b6b2f5f40", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}]}, {"id": "17.8-8c683b207dde44d9", "cves": [], "html": "<p>在 Windows 上遵守 <code>open()</code> 的 <code>O_CLOEXEC</code> 标志（Bryan Green，Thomas Munro）<a href=\"https://postgr.es/c/f24af0e04\">§</a> <a href=\"https://postgr.es/c/045185913\">§</a> <a href=\"https://postgr.es/c/b3c8119e2\">§</a></p>\n<p>使此标志像在 POSIX 平台上一样工作，以避免将文件句柄泄漏到子进程（如 <code>COPY TO/FROM PROGRAM</code>）中。虽然该泄漏没有造成太多问题，但它似乎是不可取的。</p>", "text": "在 Windows 上遵守 open() 的 O_CLOEXEC 标志（Bryan Green，Thomas Munro）§ § § 使此标志像在 POSIX 平台上一样工作，以避免将文件句柄泄漏到子进程（如 COPY TO/FROM PROGRAM）中。虽然该泄漏没有造成太多问题，但它似乎是不可取的。", "title": "在 Windows 上遵守 open() 的 O_CLOEXEC 标志", "commits": ["045185913", "b3c8119e2", "f24af0e04"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "c88b6468c490e137728cc33bf901a46b1e196bd67cf5c66bde1e8dc3c84f444a", "section_path": ["变更"], "commit_groups": [["045185913", "0666ccc16", "a7d06e74d", "bec2a0aa3"], ["45d92b76d", "4da5c33a3", "80e8ec772", "b3c8119e2"], ["bebb281b0", "c507ba55f", "d62a258cd", "f24af0e04"]], "identity_text": "Honor open()'s O_CLOEXEC flag on Windows (Bryan Green, Thomas Munro) Make this flag work like it does on POSIX platforms, so that we don't leak file handles into child processes such as COPY TO/FROM PROGRAM. While that leakage hasn't caused many problems, it seems undesirable.", "commit_aliases": ["045185913", "0666ccc16", "45d92b76d", "4da5c33a3", "80e8ec772", "a7d06e74d", "b3c8119e2", "bebb281b0", "bec2a0aa3", "c507ba55f", "d62a258cd", "f24af0e04"], "source_commits": ["045185913", "b3c8119e2", "f24af0e04"], "source_entry_id": "17.8/changes/040", "db_id": "6b80a0f86b8e07e750eef0cc17220a4a", "patch_ids": ["095b8a9ad1149ec7e6b384f86412045c", "16e4048c75704084d232d66835f3cf6e", "493ffab07cbb8d27c6dbcf9cf0a4cab6"], "statement_hash": "485d2888baf50e5c83a886ec0fc75091bea61287485912424715911ca20d90c7", "relations": [{"rule": 2, "type": "equivalent", "target": "003ad72554700873dc6210b7a5e54e84", "evidence": {"same_day": true, "patch_ids": ["095b8a9ad1149ec7e6b384f86412045c", "16e4048c75704084d232d66835f3cf6e", "493ffab07cbb8d27c6dbcf9cf0a4cab6"], "statement_hash": "485d2888baf50e5c83a886ec0fc75091bea61287485912424715911ca20d90c7"}}, {"rule": 2, "type": "equivalent", "target": "fa4848909b9ff58346d80a375d2238ce", "evidence": {"same_day": true, "patch_ids": ["095b8a9ad1149ec7e6b384f86412045c", "16e4048c75704084d232d66835f3cf6e", "493ffab07cbb8d27c6dbcf9cf0a4cab6"], "statement_hash": "485d2888baf50e5c83a886ec0fc75091bea61287485912424715911ca20d90c7"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa4848909b9ff58346d80a375d2238ce", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "在 Windows 上遵守 open() 的 O_CLOEXEC 标志", "evidence": {"same_day": true, "patch_ids": ["095b8a9ad1149ec7e6b384f86412045c", "16e4048c75704084d232d66835f3cf6e", "493ffab07cbb8d27c6dbcf9cf0a4cab6"], "statement_hash": "485d2888baf50e5c83a886ec0fc75091bea61287485912424715911ca20d90c7"}, "url": "/docs/compare/?release=18.2#18.2-10e49010a4ad318c", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "003ad72554700873dc6210b7a5e54e84", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "在 Windows 上遵守 open() 的 O_CLOEXEC 标志", "evidence": {"same_day": true, "patch_ids": ["095b8a9ad1149ec7e6b384f86412045c", "16e4048c75704084d232d66835f3cf6e", "493ffab07cbb8d27c6dbcf9cf0a4cab6"], "statement_hash": "485d2888baf50e5c83a886ec0fc75091bea61287485912424715911ca20d90c7"}, "url": "/docs/compare/?release=16.12#16.12-d83dcf4471c4e2b6", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}]}, {"id": "17.8-c28c500f08d6dda7", "cves": [], "html": "<p>修复在使用 meson 构建的 Solaris 可执行文件中无法解析服务器命令行长选项的问题（Tom Lane）<a href=\"https://postgr.es/c/59c2f7efa\">§</a></p>", "text": "修复在使用 meson 构建的 Solaris 可执行文件中无法解析服务器命令行长选项的问题（Tom Lane）§", "title": "修复在使用 meson 构建的 Solaris 可执行文件中无法解析服务器命令行长选项的问题", "commits": ["59c2f7efa"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "168ef6f4c1379c57415fe337baf76e5fa27b181eaafa28b0c3c17ae8fa4eb368", "section_path": ["变更"], "commit_groups": [["59c2f7efa", "5eac1d68f", "7369656fa", "c0bf15729"]], "identity_text": "Fix failure to parse long options on the server command line in Solaris executables built with meson (Tom Lane)", "commit_aliases": ["59c2f7efa", "5eac1d68f", "7369656fa", "c0bf15729"], "source_commits": ["59c2f7efa"], "source_entry_id": "17.8/changes/041", "db_id": "563cd6c38790a66a34d7d2cbdab27f36", "patch_ids": ["133a9f9fce49cbd34f1b9ba0b7dee391"], "statement_hash": "5ef581baf9ed7ef45975ff2c7d893c9da8f950d13c68cd98fea4606121f2a7ac", "relations": [{"rule": 2, "type": "equivalent", "target": "ae36e9e2da103cf26dac76edbf8412a6", "evidence": {"same_day": true, "patch_ids": ["133a9f9fce49cbd34f1b9ba0b7dee391"], "statement_hash": "5ef581baf9ed7ef45975ff2c7d893c9da8f950d13c68cd98fea4606121f2a7ac"}}, {"rule": 2, "type": "equivalent", "target": "c730bdc0e2bcae412d1b558e6989e803", "evidence": {"same_day": true, "patch_ids": ["133a9f9fce49cbd34f1b9ba0b7dee391"], "statement_hash": "5ef581baf9ed7ef45975ff2c7d893c9da8f950d13c68cd98fea4606121f2a7ac"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c730bdc0e2bcae412d1b558e6989e803", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复在使用 meson 构建的 Solaris 可执行文件中无法解析服务器命令行长选项的问题", "evidence": {"same_day": true, "patch_ids": ["133a9f9fce49cbd34f1b9ba0b7dee391"], "statement_hash": "5ef581baf9ed7ef45975ff2c7d893c9da8f950d13c68cd98fea4606121f2a7ac"}, "url": "/docs/compare/?release=18.2#18.2-ca3da398904bd780", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "ae36e9e2da103cf26dac76edbf8412a6", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复在使用 meson 构建的 Solaris 可执行文件中无法解析服务器命令行长选项的问题", "evidence": {"same_day": true, "patch_ids": ["133a9f9fce49cbd34f1b9ba0b7dee391"], "statement_hash": "5ef581baf9ed7ef45975ff2c7d893c9da8f950d13c68cd98fea4606121f2a7ac"}, "url": "/docs/compare/?release=16.12#16.12-19e3352e6e937b69", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}]}, {"id": "17.8-3cbfa3eb5e11672e", "cves": [], "html": "<p>支持在 GNU/Hurd 上更改进程标题（Michael Banck）<a href=\"https://postgr.es/c/d66a922f9\">§</a></p>", "text": "支持在 GNU/Hurd 上更改进程标题（Michael Banck）§", "title": "支持在 GNU/Hurd 上更改进程标题", "commits": ["d66a922f9"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "4ab9d090d0b782309a436d28963920b22c5aaf01b0cf8466091198d4684582ae", "section_path": ["变更"], "commit_groups": [["29a3e22f3", "32b236644", "3995e4a9d", "a1407dade", "bcfca332f", "d66a922f9"]], "identity_text": "Support process title changes on GNU/Hurd (Michael Banck)", "commit_aliases": ["29a3e22f3", "32b236644", "3995e4a9d", "a1407dade", "bcfca332f", "d66a922f9"], "source_commits": ["d66a922f9"], "source_entry_id": "17.8/changes/042", "db_id": "b14342e6824ed37b82078bd9a6cc21e1", "patch_ids": ["f27aa5a2659577ffa2455a4c94564743"], "statement_hash": "c996e792f260f0d512b6a6524e3b46eed7769d4f17a4584a012601680f44fc4f", "relations": [{"rule": 2, "type": "equivalent", "target": "45f431c4bd4cad50e4053b47f371bd3f", "evidence": {"same_day": true, "patch_ids": ["f27aa5a2659577ffa2455a4c94564743"], "statement_hash": "c996e792f260f0d512b6a6524e3b46eed7769d4f17a4584a012601680f44fc4f"}}, {"rule": 2, "type": "equivalent", "target": "465d44f8b93dc009feaa8d1fac573196", "evidence": {"same_day": true, "patch_ids": ["f27aa5a2659577ffa2455a4c94564743"], "statement_hash": "c996e792f260f0d512b6a6524e3b46eed7769d4f17a4584a012601680f44fc4f"}}, {"rule": 2, "type": "equivalent", "target": "92b88e55c652dfa1fcdde3f0953f3285", "evidence": {"same_day": true, "patch_ids": ["f27aa5a2659577ffa2455a4c94564743"], "statement_hash": "c996e792f260f0d512b6a6524e3b46eed7769d4f17a4584a012601680f44fc4f"}}, {"rule": 2, "type": "equivalent", "target": "d2f91f9760f28a721378c4e8d76ef619", "evidence": {"same_day": true, "patch_ids": ["f27aa5a2659577ffa2455a4c94564743"], "statement_hash": "c996e792f260f0d512b6a6524e3b46eed7769d4f17a4584a012601680f44fc4f"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "92b88e55c652dfa1fcdde3f0953f3285", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "支持在 GNU/Hurd 上更改进程标题", "evidence": {"same_day": true, "patch_ids": ["f27aa5a2659577ffa2455a4c94564743"], "statement_hash": "c996e792f260f0d512b6a6524e3b46eed7769d4f17a4584a012601680f44fc4f"}, "url": "/docs/compare/?release=18.2#18.2-e1336b6079ff8d5b", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "45f431c4bd4cad50e4053b47f371bd3f", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "支持在 GNU/Hurd 上更改进程标题", "evidence": {"same_day": true, "patch_ids": ["f27aa5a2659577ffa2455a4c94564743"], "statement_hash": "c996e792f260f0d512b6a6524e3b46eed7769d4f17a4584a012601680f44fc4f"}, "url": "/docs/compare/?release=16.12#16.12-518eec4d74a9bdf5", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "d2f91f9760f28a721378c4e8d76ef619", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "支持在 GNU/Hurd 上更改进程标题", "evidence": {"same_day": true, "patch_ids": ["f27aa5a2659577ffa2455a4c94564743"], "statement_hash": "c996e792f260f0d512b6a6524e3b46eed7769d4f17a4584a012601680f44fc4f"}, "url": "/docs/compare/?release=15.16#15.16-03e934debe8d5e92", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "465d44f8b93dc009feaa8d1fac573196", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "支持在 GNU/Hurd 上更改进程标题", "evidence": {"same_day": true, "patch_ids": ["f27aa5a2659577ffa2455a4c94564743"], "statement_hash": "c996e792f260f0d512b6a6524e3b46eed7769d4f17a4584a012601680f44fc4f"}, "url": "/docs/compare/?release=14.21#14.21-d81eba7f3eeb9460", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-fb87d1ddb8333f9e", "cves": [], "html": "<p>避免 <span>pg_dump</span> 在 binary-upgrade 模式下触发断言失败（Vignesh C）<a href=\"https://postgr.es/c/1cdc07ad5\">§</a></p>\n<p>对象排序代码未能处理订阅关系对象，从而触发断言，不过在生产构建中并未发现严重的实际影响。</p>", "text": "避免 pg_dump 在 binary-upgrade 模式下触发断言失败（Vignesh C）§ 对象排序代码未能处理订阅关系对象，从而触发断言，不过在生产构建中并未发现严重的实际影响。", "title": "避免 pg_dump 在 binary-upgrade 模式下触发断言失败", "commits": ["1cdc07ad5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "ed7d79cb9961b490e3f9ffbf38da15b1d7d990403424fa446a4c670c9f36c928", "section_path": ["变更"], "commit_groups": [["1cdc07ad5", "573e679a2", "d49936f30"]], "identity_text": "Avoid pg_dump assertion failure in binary-upgrade mode (Vignesh C) Failure to handle subscription-relation objects in the object sorting code triggered an assertion, though there were no serious ill effects in production builds.", "commit_aliases": ["1cdc07ad5", "573e679a2", "d49936f30"], "source_commits": ["1cdc07ad5"], "source_entry_id": "17.8/changes/043", "db_id": "4494339208c66bea624ef04f8e7162d7", "patch_ids": ["ed0dc1c369ce52f90f050a02c31cfe22"], "statement_hash": "305d4ecb2b90454723cac5826da3903c1efb32bfae398fdc085bfa0cabab291a", "relations": [{"rule": 2, "type": "equivalent", "target": "df5cb5704fef8f74897251fa0c3be081", "evidence": {"same_day": true, "patch_ids": ["ed0dc1c369ce52f90f050a02c31cfe22"], "statement_hash": "305d4ecb2b90454723cac5826da3903c1efb32bfae398fdc085bfa0cabab291a"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "df5cb5704fef8f74897251fa0c3be081", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "避免 pg_dump 在 binary-upgrade 模式下触发断言失败", "evidence": {"same_day": true, "patch_ids": ["ed0dc1c369ce52f90f050a02c31cfe22"], "statement_hash": "305d4ecb2b90454723cac5826da3903c1efb32bfae398fdc085bfa0cabab291a"}, "url": "/docs/compare/?release=18.2#18.2-ee37d4b2b910a503", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}]}, {"id": "17.8-db3cf1766c83bbad", "cves": [], "html": "<p>修复 pipeline 模式下 <span>pgbench</span> 在有多个 <code>\\syncpipeline</code> 命令时的错误处理问题（Yugo Nagata）<a href=\"https://postgr.es/c/5bc251b28\">§</a></p>\n<p>如果在查询错误之后又遇到多个 <code>\\syncpipeline</code> 命令，<span>pgbench</span> 会报告 <span>“<span>failed to exit pipeline mode</span>”</span>，或者在启用断言的构建中触发断言失败。</p>", "text": "修复 pipeline 模式下 pgbench 在有多个 \\syncpipeline 命令时的错误处理问题（Yugo Nagata）§ 如果在查询错误之后又遇到多个 \\syncpipeline 命令，pgbench 会报告 “failed to exit pipeline mode”，或者在启用断言的构建中触发断言失败。", "title": "修复 pipeline 模式下 pgbench 在有多个 \\syncpipeline 命令时的错误处理问题", "commits": ["5bc251b28"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "bfaf2c8f172a99c337c155eef0c5928ba8841bb0a6b87ac57b4ecb9dcf7b89b1", "section_path": ["变更"], "commit_groups": [["00e64e35c", "4aa0ac057", "5bc251b28"]], "identity_text": "Fix incorrect error handling in pgbench with multiple \\syncpipeline commands in pipeline mode (Yugo Nagata) If multiple \\syncpipeline commands are encountered after a query error, pgbench would report failed to exit pipeline mode, or get an assertion failure in an assert-enabled build.", "commit_aliases": ["00e64e35c", "4aa0ac057", "5bc251b28"], "source_commits": ["5bc251b28"], "source_entry_id": "17.8/changes/044", "db_id": "e6397b23168007fedda0f3f80287907f", "patch_ids": ["abe851e3d64606b4d1f39d5998d6d005"], "statement_hash": "1cdefe00c629d46dbeafbb68e1efcdba4901e90682edb67326771603d66f0385", "relations": [{"rule": 2, "type": "equivalent", "target": "110c54d4f77bbbf3b3cb5646c3d03270", "evidence": {"same_day": true, "patch_ids": ["abe851e3d64606b4d1f39d5998d6d005"], "statement_hash": "1cdefe00c629d46dbeafbb68e1efcdba4901e90682edb67326771603d66f0385"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "110c54d4f77bbbf3b3cb5646c3d03270", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复 pipeline 模式下 pgbench 在有多个 \\syncpipeline 命令时的错误处理问题", "evidence": {"same_day": true, "patch_ids": ["abe851e3d64606b4d1f39d5998d6d005"], "statement_hash": "1cdefe00c629d46dbeafbb68e1efcdba4901e90682edb67326771603d66f0385"}, "url": "/docs/compare/?release=18.2#18.2-e7bddef1f2dbe17d", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}]}, {"id": "17.8-0aca6daf3559b899", "cves": [], "html": "<p>使 <span>pg_resetwal</span> 在更改 OldestXID 时打印更新后的值（Heikki Linnakangas）<a href=\"https://postgr.es/c/f2e0ca0af\">§</a></p>\n<p>它对可以更改的其他每个变量都已经这样做了。</p>", "text": "使 pg_resetwal 在更改 OldestXID 时打印更新后的值（Heikki Linnakangas）§ 它对可以更改的其他每个变量都已经这样做了。", "title": "使 pg_resetwal 在更改 OldestXID 时打印更新后的值", "commits": ["f2e0ca0af"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "4e0a5cfd168653c353fcfc7dbe158becf92e7cc3ce67a1251d1309381b4e1964", "section_path": ["变更"], "commit_groups": [["11cc0f452", "19594271c", "7c494072b", "890cc81b6", "d5b4f3a6d", "f2e0ca0af"]], "identity_text": "Make pg_resetwal print the updated value when changing OldestXID (Heikki Linnakangas) It already did that for every other variable it can change.", "commit_aliases": ["11cc0f452", "19594271c", "7c494072b", "890cc81b6", "d5b4f3a6d", "f2e0ca0af"], "source_commits": ["f2e0ca0af"], "source_entry_id": "17.8/changes/045", "db_id": "500d9d80888f7caeb4b4801bee95301d", "patch_ids": ["f29e862445ceccbb303aaae2f778a19b"], "statement_hash": "7e00b6482e7aa0b9a1cb427214f076ddb806bf1fa199c1cf0ab023c54c2dd96a", "relations": [{"rule": 2, "type": "equivalent", "target": "22be50f61755ecf5187af28b01545b41", "evidence": {"same_day": true, "patch_ids": ["f29e862445ceccbb303aaae2f778a19b"], "statement_hash": "7e00b6482e7aa0b9a1cb427214f076ddb806bf1fa199c1cf0ab023c54c2dd96a"}}, {"rule": 2, "type": "equivalent", "target": "47e617ce37a58405cf4c7f033f26b641", "evidence": {"same_day": true, "patch_ids": ["f29e862445ceccbb303aaae2f778a19b"], "statement_hash": "7e00b6482e7aa0b9a1cb427214f076ddb806bf1fa199c1cf0ab023c54c2dd96a"}}, {"rule": 2, "type": "equivalent", "target": "5f928cd7f1a940e12cd51a8ce19d06f6", "evidence": {"same_day": true, "patch_ids": ["f29e862445ceccbb303aaae2f778a19b"], "statement_hash": "7e00b6482e7aa0b9a1cb427214f076ddb806bf1fa199c1cf0ab023c54c2dd96a"}}, {"rule": 2, "type": "equivalent", "target": "94c5ea9aed8ffadf4043f33f201ed4e5", "evidence": {"same_day": true, "patch_ids": ["f29e862445ceccbb303aaae2f778a19b"], "statement_hash": "7e00b6482e7aa0b9a1cb427214f076ddb806bf1fa199c1cf0ab023c54c2dd96a"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5f928cd7f1a940e12cd51a8ce19d06f6", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "使 pg_resetwal 在更改 OldestXID 时打印更新后的值", "evidence": {"same_day": true, "patch_ids": ["f29e862445ceccbb303aaae2f778a19b"], "statement_hash": "7e00b6482e7aa0b9a1cb427214f076ddb806bf1fa199c1cf0ab023c54c2dd96a"}, "url": "/docs/compare/?release=18.2#18.2-12ea46c5ca32b0f2", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "94c5ea9aed8ffadf4043f33f201ed4e5", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "使 pg_resetwal 在更改 OldestXID 时打印更新后的值", "evidence": {"same_day": true, "patch_ids": ["f29e862445ceccbb303aaae2f778a19b"], "statement_hash": "7e00b6482e7aa0b9a1cb427214f076ddb806bf1fa199c1cf0ab023c54c2dd96a"}, "url": "/docs/compare/?release=16.12#16.12-49d7c6db55fd3d90", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "47e617ce37a58405cf4c7f033f26b641", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "使 pg_resetwal 在更改 OldestXID 时打印更新后的值", "evidence": {"same_day": true, "patch_ids": ["f29e862445ceccbb303aaae2f778a19b"], "statement_hash": "7e00b6482e7aa0b9a1cb427214f076ddb806bf1fa199c1cf0ab023c54c2dd96a"}, "url": "/docs/compare/?release=15.16#15.16-3d69fa0131d029ba", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "22be50f61755ecf5187af28b01545b41", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "使 pg_resetwal 在更改 OldestXID 时打印更新后的值", "evidence": {"same_day": true, "patch_ids": ["f29e862445ceccbb303aaae2f778a19b"], "statement_hash": "7e00b6482e7aa0b9a1cb427214f076ddb806bf1fa199c1cf0ab023c54c2dd96a"}, "url": "/docs/compare/?release=14.21#14.21-cd08367401e4956d", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-6a1deb077e1799c1", "cves": [], "html": "<p>使 <span>pg_resetwal</span> 允许将下一个多事务 xid 设置为 0 或将下一个多事务偏移量设置为 UINT32_MAX（Maxim Orlov）<a href=\"https://postgr.es/c/cb2ef0e92\">§</a></p>\n<p>这些是有效的值，因此拒绝它们是不正确的。在最坏的情况下，如果恰好在多事务回卷点尝试 pg_upgrade，升级将失败。</p>", "text": "使 pg_resetwal 允许将下一个多事务 xid 设置为 0 或将下一个多事务偏移量设置为 UINT32_MAX（Maxim Orlov）§ 这些是有效的值，因此拒绝它们是不正确的。在最坏的情况下，如果恰好在多事务回卷点尝试 pg_upgrade，升级将失败。", "title": "使 pg_resetwal 允许将下一个多事务 xid 设置为 0 或将下一个多事务偏移量设置为 UINT32_MAX", "commits": ["cb2ef0e92"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "ca7ba490136c2a09fd21824920c582511406677ef84fee507c340ce1be3f83ac", "section_path": ["变更"], "commit_groups": [["8747b969f", "94939c5f3", "97cd4b65a", "cb2ef0e92", "e039b09f8"]], "identity_text": "Make pg_resetwal allow setting next multixact xid to 0 or next multixact offset to UINT32_MAX (Maxim Orlov) These are valid values, so rejecting them was incorrect. In the worst case, if a pg_upgrade is attempted when exactly at the point of multixact wraparound, the upgrade would fail.", "commit_aliases": ["8747b969f", "94939c5f3", "97cd4b65a", "cb2ef0e92", "e039b09f8"], "source_commits": ["cb2ef0e92"], "source_entry_id": "17.8/changes/046", "db_id": "ba56a98c48c3c98e929510554c2c7d1f", "patch_ids": ["0f6a9848b48d4b26e3e4691043d1c86b"], "statement_hash": "55f06afcc35f279a01bd7723ea6dc23f0393b803bcd2fbe9ea5c0600d99ed0ea", "relations": [{"rule": 2, "type": "equivalent", "target": "4da7f3aac2517d05e54bea6d3c1ab25e", "evidence": {"same_day": true, "patch_ids": ["0f6a9848b48d4b26e3e4691043d1c86b"], "statement_hash": "55f06afcc35f279a01bd7723ea6dc23f0393b803bcd2fbe9ea5c0600d99ed0ea"}}, {"rule": 2, "type": "equivalent", "target": "89127b250f2abea1a64f754f71c48c77", "evidence": {"same_day": true, "patch_ids": ["0f6a9848b48d4b26e3e4691043d1c86b"], "statement_hash": "55f06afcc35f279a01bd7723ea6dc23f0393b803bcd2fbe9ea5c0600d99ed0ea"}}, {"rule": 2, "type": "equivalent", "target": "a4ce7629005a43b316bb9b4fbdb478ad", "evidence": {"same_day": true, "patch_ids": ["0f6a9848b48d4b26e3e4691043d1c86b"], "statement_hash": "55f06afcc35f279a01bd7723ea6dc23f0393b803bcd2fbe9ea5c0600d99ed0ea"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a4ce7629005a43b316bb9b4fbdb478ad", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "使 pg_resetwal 允许将下一个多事务 xid 设置为 0 或将下一个多事务偏移量设置为 UINT32_MAX", "evidence": {"same_day": true, "patch_ids": ["0f6a9848b48d4b26e3e4691043d1c86b"], "statement_hash": "55f06afcc35f279a01bd7723ea6dc23f0393b803bcd2fbe9ea5c0600d99ed0ea"}, "url": "/docs/compare/?release=18.2#18.2-b3adbf7cc127bf87", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "89127b250f2abea1a64f754f71c48c77", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "使 pg_resetwal 允许将下一个多事务 xid 设置为 0 或将下一个多事务偏移量设置为 UINT32_MAX", "evidence": {"same_day": true, "patch_ids": ["0f6a9848b48d4b26e3e4691043d1c86b"], "statement_hash": "55f06afcc35f279a01bd7723ea6dc23f0393b803bcd2fbe9ea5c0600d99ed0ea"}, "url": "/docs/compare/?release=16.12#16.12-be4ccb27fcd54b62", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "4da7f3aac2517d05e54bea6d3c1ab25e", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "使 pg_resetwal 允许将下一个多事务 xid 设置为 0 或将下一个多事务偏移量设置为 UINT32_MAX", "evidence": {"same_day": true, "patch_ids": ["0f6a9848b48d4b26e3e4691043d1c86b"], "statement_hash": "55f06afcc35f279a01bd7723ea6dc23f0393b803bcd2fbe9ea5c0600d99ed0ea"}, "url": "/docs/compare/?release=15.16#15.16-fed3a8dfafe193ba", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}]}, {"id": "17.8-ab740b8bd4036a5f", "cves": [], "html": "<p>在 <code>contrib/amcheck</code> 中，为 B-树索引父节点检查使用正确的快照（Mihail Nikalayeu）<a href=\"https://postgr.es/c/ce2f575b7\">§</a> <a href=\"https://postgr.es/c/e1a327dc4\">§</a></p>\n<p>之前的代码在检查使用 <code>CREATE INDEX CONCURRENTLY</code> 创建的索引时会产生虚假错误。</p>", "text": "在 contrib/amcheck 中，为 B-树索引父节点检查使用正确的快照（Mihail Nikalayeu）§ § 之前的代码在检查使用 CREATE INDEX CONCURRENTLY 创建的索引时会产生虚假错误。", "title": "在 contrib/amcheck 中，为 B-树索引父节点检查使用正确的快照", "commits": ["ce2f575b7", "e1a327dc4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "e0d613c18457263fb886e2db266ef8e5b9c6fe3fadbb9b6e2748e55722a3374f", "section_path": ["变更"], "commit_groups": [["098a1fab8", "1f28982e4", "3c83a2a0a", "607a67c5e", "dcddd6987", "e1a327dc4"], ["6bd469d26", "ce2f575b7", "df93f94dd"]], "identity_text": "In contrib/amcheck, use the correct snapshot for btree index parent checks (Mihail Nikalayeu) The previous coding caused spurious errors when examining indexes created with CREATE INDEX CONCURRENTLY.", "commit_aliases": ["098a1fab8", "1f28982e4", "3c83a2a0a", "607a67c5e", "6bd469d26", "ce2f575b7", "dcddd6987", "df93f94dd", "e1a327dc4"], "source_commits": ["ce2f575b7", "e1a327dc4"], "source_entry_id": "17.8/changes/047", "db_id": "8c9e41f976444baa74aa90d4929a9857", "patch_ids": ["1e97ec2b7912c8b7c0ec7e7abd017428", "a29fe4baf41fba16dd4afb02acc16023"], "statement_hash": "087497339e462790a79c92291f5c2d4d3a17e08435df6c64e32dc876bc1de14d", "relations": [{"rule": 2, "type": "equivalent", "target": "493a72cf1959504f8641847b78bd08a1", "evidence": {"same_day": true, "patch_ids": ["1e97ec2b7912c8b7c0ec7e7abd017428", "a29fe4baf41fba16dd4afb02acc16023"], "statement_hash": "087497339e462790a79c92291f5c2d4d3a17e08435df6c64e32dc876bc1de14d"}}, {"rule": 2, "type": "equivalent", "target": "8bafe8c0e161e1a9a94a09493833d987", "evidence": {"same_day": true, "patch_ids": ["1e97ec2b7912c8b7c0ec7e7abd017428", "a29fe4baf41fba16dd4afb02acc16023"], "statement_hash": "087497339e462790a79c92291f5c2d4d3a17e08435df6c64e32dc876bc1de14d"}}, {"rule": 2, "type": "equivalent", "target": "955a03e6ef46153a22d64b4e82c47168", "evidence": {"same_day": true, "patch_ids": ["1e97ec2b7912c8b7c0ec7e7abd017428", "a29fe4baf41fba16dd4afb02acc16023"], "statement_hash": "087497339e462790a79c92291f5c2d4d3a17e08435df6c64e32dc876bc1de14d"}}, {"rule": 2, "type": "equivalent", "target": "d68c80f0e4be35945733a8602d932285", "evidence": {"same_day": true, "patch_ids": ["1e97ec2b7912c8b7c0ec7e7abd017428", "a29fe4baf41fba16dd4afb02acc16023"], "statement_hash": "087497339e462790a79c92291f5c2d4d3a17e08435df6c64e32dc876bc1de14d"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "955a03e6ef46153a22d64b4e82c47168", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "在 contrib/amcheck 中，为 B-树索引父节点检查使用正确的快照", "evidence": {"same_day": true, "patch_ids": ["1e97ec2b7912c8b7c0ec7e7abd017428", "a29fe4baf41fba16dd4afb02acc16023"], "statement_hash": "087497339e462790a79c92291f5c2d4d3a17e08435df6c64e32dc876bc1de14d"}, "url": "/docs/compare/?release=18.2#18.2-bbfcc39776d1a2a4", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "8bafe8c0e161e1a9a94a09493833d987", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "在 contrib/amcheck 中，为 B-树索引父节点检查使用正确的快照", "evidence": {"same_day": true, "patch_ids": ["1e97ec2b7912c8b7c0ec7e7abd017428", "a29fe4baf41fba16dd4afb02acc16023"], "statement_hash": "087497339e462790a79c92291f5c2d4d3a17e08435df6c64e32dc876bc1de14d"}, "url": "/docs/compare/?release=16.12#16.12-57cb8c5f86934ffc", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "d68c80f0e4be35945733a8602d932285", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "在 contrib/amcheck 中，为 B-树索引父节点检查使用正确的快照", "evidence": {"same_day": true, "patch_ids": ["1e97ec2b7912c8b7c0ec7e7abd017428", "a29fe4baf41fba16dd4afb02acc16023"], "statement_hash": "087497339e462790a79c92291f5c2d4d3a17e08435df6c64e32dc876bc1de14d"}, "url": "/docs/compare/?release=15.16#15.16-32e275050e59e4f0", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "493a72cf1959504f8641847b78bd08a1", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "在 contrib/amcheck 中，为 B-树索引父节点检查使用正确的快照", "evidence": {"same_day": true, "patch_ids": ["1e97ec2b7912c8b7c0ec7e7abd017428", "a29fe4baf41fba16dd4afb02acc16023"], "statement_hash": "087497339e462790a79c92291f5c2d4d3a17e08435df6c64e32dc876bc1de14d"}, "url": "/docs/compare/?release=14.21#14.21-823de0611d087fb4", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-9f60cb27b127637e", "cves": [], "html": "<p>修复 <code>contrib/amcheck</code> 以正确处理<span>“<span>半死亡</span>”</span> B-树索引页面（Heikki Linnakangas）<a href=\"https://postgr.es/c/e8ae59445\">§</a></p>\n<p><code>amcheck</code> 期望此类页面有一个父级下行链接，但实际上没有，导致关于 <span>“<span>mismatch between parent key and child high key</span>”</span> 的虚假错误报告。</p>", "text": "修复 contrib/amcheck 以正确处理“半死亡” B-树索引页面（Heikki Linnakangas）§ amcheck 期望此类页面有一个父级下行链接，但实际上没有，导致关于 “mismatch between parent key and child high key” 的虚假错误报告。", "title": "修复 contrib/amcheck 以正确处理“半死亡” B-树索引页面", "commits": ["e8ae59445"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "1c4493a5e61138eeaf2e6c687d7124f8888adad29015f4c0107594ab7cf198ff", "section_path": ["变更"], "commit_groups": [["182901626", "19e786727", "7792bdc45", "cbe04e5d7", "e8ae59445", "fbb4b6078"]], "identity_text": "Fix contrib/amcheck to handle half-dead btree index pages correctly (Heikki Linnakangas) amcheck expected such a page to have a parent downlink, but it does not, leading to a false error report about mismatch between parent key and child high key.", "commit_aliases": ["182901626", "19e786727", "7792bdc45", "cbe04e5d7", "e8ae59445", "fbb4b6078"], "source_commits": ["e8ae59445"], "source_entry_id": "17.8/changes/048", "db_id": "7d94ee89b853fd7d6f3bb697328e1fed", "patch_ids": ["f7e8ed321d6ed6ededda523198e8e879"], "statement_hash": "235569affe45bc821b8a939af4bf327951ad127f8ac6150fb4810ff7876efdc5", "relations": [{"rule": 2, "type": "equivalent", "target": "b0c422d1b24cdfdcd3828e41eecc8d38", "evidence": {"same_day": true, "patch_ids": ["f7e8ed321d6ed6ededda523198e8e879"], "statement_hash": "235569affe45bc821b8a939af4bf327951ad127f8ac6150fb4810ff7876efdc5"}}, {"rule": 2, "type": "equivalent", "target": "bb53eff1677e4a2b4b54e1dcbe8a077d", "evidence": {"same_day": true, "patch_ids": ["f7e8ed321d6ed6ededda523198e8e879"], "statement_hash": "235569affe45bc821b8a939af4bf327951ad127f8ac6150fb4810ff7876efdc5"}}, {"rule": 2, "type": "equivalent", "target": "c7f51c102edaf4e048fd2d187271f417", "evidence": {"same_day": true, "patch_ids": ["f7e8ed321d6ed6ededda523198e8e879"], "statement_hash": "235569affe45bc821b8a939af4bf327951ad127f8ac6150fb4810ff7876efdc5"}}, {"rule": 2, "type": "equivalent", "target": "cd3fba00555984ba827b4d51519989d9", "evidence": {"same_day": true, "patch_ids": ["f7e8ed321d6ed6ededda523198e8e879"], "statement_hash": "235569affe45bc821b8a939af4bf327951ad127f8ac6150fb4810ff7876efdc5"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cd3fba00555984ba827b4d51519989d9", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复 contrib/amcheck 以正确处理“半死亡” B-树索引页面", "evidence": {"same_day": true, "patch_ids": ["f7e8ed321d6ed6ededda523198e8e879"], "statement_hash": "235569affe45bc821b8a939af4bf327951ad127f8ac6150fb4810ff7876efdc5"}, "url": "/docs/compare/?release=18.2#18.2-cb9b48895e2b846c", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "bb53eff1677e4a2b4b54e1dcbe8a077d", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复 contrib/amcheck 以正确处理“半死亡” B-树索引页面", "evidence": {"same_day": true, "patch_ids": ["f7e8ed321d6ed6ededda523198e8e879"], "statement_hash": "235569affe45bc821b8a939af4bf327951ad127f8ac6150fb4810ff7876efdc5"}, "url": "/docs/compare/?release=16.12#16.12-8ce4eed0d5e06f12", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "b0c422d1b24cdfdcd3828e41eecc8d38", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复 contrib/amcheck 以正确处理“半死亡” B-树索引页面", "evidence": {"same_day": true, "patch_ids": ["f7e8ed321d6ed6ededda523198e8e879"], "statement_hash": "235569affe45bc821b8a939af4bf327951ad127f8ac6150fb4810ff7876efdc5"}, "url": "/docs/compare/?release=15.16#15.16-98501264b939d5f7", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "c7f51c102edaf4e048fd2d187271f417", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复 contrib/amcheck 以正确处理“半死亡” B-树索引页面", "evidence": {"same_day": true, "patch_ids": ["f7e8ed321d6ed6ededda523198e8e879"], "statement_hash": "235569affe45bc821b8a939af4bf327951ad127f8ac6150fb4810ff7876efdc5"}, "url": "/docs/compare/?release=14.21#14.21-36f7bc4e4927fff8", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-5b1a363a1650f076", "cves": [], "html": "<p>修复 <code>contrib/amcheck</code> 以正确处理不完整的 B-树根页面分裂（Heikki Linnakangas）<a href=\"https://postgr.es/c/5a2d1df00\">§</a></p>\n<p><code>amcheck</code> 可能会报告关于 <span>“<span>block is not true root</span>”</span> 的虚假错误。</p>", "text": "修复 contrib/amcheck 以正确处理不完整的 B-树根页面分裂（Heikki Linnakangas）§ amcheck 可能会报告关于 “block is not true root” 的虚假错误。", "title": "修复 contrib/amcheck 以正确处理不完整的 B-树根页面分裂", "commits": ["5a2d1df00"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "0d16e4dfa7be5ad366b97c0f6e2b6e0d21b06fa07cdfde555fd7388204fc75dc", "section_path": ["变更"], "commit_groups": [["50c63ebb0", "5a2d1df00", "6c05ef572", "721b58fbe", "a4cb21ea9", "f2a6df9fd"]], "identity_text": "Fix contrib/amcheck to handle incomplete btree root page splits correctly (Heikki Linnakangas) amcheck could report a false error about block is not true root.", "commit_aliases": ["50c63ebb0", "5a2d1df00", "6c05ef572", "721b58fbe", "a4cb21ea9", "f2a6df9fd"], "source_commits": ["5a2d1df00"], "source_entry_id": "17.8/changes/049", "db_id": "67e3b43981f7755a637c3f6f8538cf81", "patch_ids": ["bc0672786aac6981e442848cef632af7"], "statement_hash": "a09b91d29cb6145c6b4b8a47f79add91a36b52c7cd5b33ff456ebcbee2d174eb", "relations": [{"rule": 2, "type": "equivalent", "target": "0961927e1e1f17e976e1fe45d36dd9ce", "evidence": {"same_day": true, "patch_ids": ["bc0672786aac6981e442848cef632af7"], "statement_hash": "a09b91d29cb6145c6b4b8a47f79add91a36b52c7cd5b33ff456ebcbee2d174eb"}}, {"rule": 2, "type": "equivalent", "target": "36d6b9b121e09182786381bf1019a5a6", "evidence": {"same_day": true, "patch_ids": ["bc0672786aac6981e442848cef632af7"], "statement_hash": "a09b91d29cb6145c6b4b8a47f79add91a36b52c7cd5b33ff456ebcbee2d174eb"}}, {"rule": 2, "type": "equivalent", "target": "8501633eefd4ba0be52ed6a8edf74102", "evidence": {"same_day": true, "patch_ids": ["bc0672786aac6981e442848cef632af7"], "statement_hash": "a09b91d29cb6145c6b4b8a47f79add91a36b52c7cd5b33ff456ebcbee2d174eb"}}, {"rule": 2, "type": "equivalent", "target": "c098597887b2f2c2a2d33ae0dfbe3669", "evidence": {"same_day": true, "patch_ids": ["bc0672786aac6981e442848cef632af7"], "statement_hash": "a09b91d29cb6145c6b4b8a47f79add91a36b52c7cd5b33ff456ebcbee2d174eb"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8501633eefd4ba0be52ed6a8edf74102", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复 contrib/amcheck 以正确处理不完整的 B-树根页面分裂", "evidence": {"same_day": true, "patch_ids": ["bc0672786aac6981e442848cef632af7"], "statement_hash": "a09b91d29cb6145c6b4b8a47f79add91a36b52c7cd5b33ff456ebcbee2d174eb"}, "url": "/docs/compare/?release=18.2#18.2-9de86ea05d414299", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "0961927e1e1f17e976e1fe45d36dd9ce", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复 contrib/amcheck 以正确处理不完整的 B-树根页面分裂", "evidence": {"same_day": true, "patch_ids": ["bc0672786aac6981e442848cef632af7"], "statement_hash": "a09b91d29cb6145c6b4b8a47f79add91a36b52c7cd5b33ff456ebcbee2d174eb"}, "url": "/docs/compare/?release=16.12#16.12-c9fd4d380e654c76", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "c098597887b2f2c2a2d33ae0dfbe3669", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复 contrib/amcheck 以正确处理不完整的 B-树根页面分裂", "evidence": {"same_day": true, "patch_ids": ["bc0672786aac6981e442848cef632af7"], "statement_hash": "a09b91d29cb6145c6b4b8a47f79add91a36b52c7cd5b33ff456ebcbee2d174eb"}, "url": "/docs/compare/?release=15.16#15.16-fdcaabc9a4bd33b0", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "36d6b9b121e09182786381bf1019a5a6", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复 contrib/amcheck 以正确处理不完整的 B-树根页面分裂", "evidence": {"same_day": true, "patch_ids": ["bc0672786aac6981e442848cef632af7"], "statement_hash": "a09b91d29cb6145c6b4b8a47f79add91a36b52c7cd5b33ff456ebcbee2d174eb"}, "url": "/docs/compare/?release=14.21#14.21-fe04a8384b630984", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-ab6fdf5f76b2dd4a", "cves": [], "html": "<p>修复 <code>contrib/intarray</code> 中 <code>@@</code> 选择率估算器的边界情况整数溢出问题（Chao Li）<a href=\"https://postgr.es/c/a5f2dc421\">§</a></p>\n<p>这可能导致在涉及最大整数值的情况下产生不准确的选择率估算。</p>", "text": "修复 contrib/intarray 中 @@ 选择率估算器的边界情况整数溢出问题（Chao Li）§ 这可能导致在涉及最大整数值的情况下产生不准确的选择率估算。", "title": "修复 contrib/intarray 中 @@ 选择率估算器的边界情况整数溢出问题", "commits": ["a5f2dc421"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "c4c37e0f7a6e07f06d83e21ea456994fce6b45225bccff9bad2e6c7d7cdcc3ec", "section_path": ["变更"], "commit_groups": [["07c1c6ec5", "4f49e4b55", "54f82c4aa", "67a6fd507", "a5f2dc421", "c89510431"]], "identity_text": "Fix edge-case integer overflow in contrib/intarray's selectivity estimator for @@ (Chao Li) This could cause poor selectivity estimates to be produced for cases involving the maximum integer value.", "commit_aliases": ["07c1c6ec5", "4f49e4b55", "54f82c4aa", "67a6fd507", "a5f2dc421", "c89510431"], "source_commits": ["a5f2dc421"], "source_entry_id": "17.8/changes/050", "db_id": "8280d414e29b698e7a7b5bdab7d65a67", "patch_ids": ["6827108dafb7fb952c98263cf81bfb12"], "statement_hash": "15b336d5589f6d629fe8bb0549cd193d78524753cdd06cfede921f7dce003daf", "relations": [{"rule": 2, "type": "equivalent", "target": "1285579c66ecba8872eb8b17f3bc4e1b", "evidence": {"same_day": true, "patch_ids": ["6827108dafb7fb952c98263cf81bfb12"], "statement_hash": "15b336d5589f6d629fe8bb0549cd193d78524753cdd06cfede921f7dce003daf"}}, {"rule": 2, "type": "equivalent", "target": "59e2d3bf9637de09505f940988dcd182", "evidence": {"same_day": true, "patch_ids": ["6827108dafb7fb952c98263cf81bfb12"], "statement_hash": "15b336d5589f6d629fe8bb0549cd193d78524753cdd06cfede921f7dce003daf"}}, {"rule": 2, "type": "equivalent", "target": "81dbabd3964ac7d16575fec8b0e775d4", "evidence": {"same_day": true, "patch_ids": ["6827108dafb7fb952c98263cf81bfb12"], "statement_hash": "15b336d5589f6d629fe8bb0549cd193d78524753cdd06cfede921f7dce003daf"}}, {"rule": 2, "type": "equivalent", "target": "e129aabe6a0e432884befb054f303449", "evidence": {"same_day": true, "patch_ids": ["6827108dafb7fb952c98263cf81bfb12"], "statement_hash": "15b336d5589f6d629fe8bb0549cd193d78524753cdd06cfede921f7dce003daf"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e129aabe6a0e432884befb054f303449", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复 contrib/intarray 中 @@ 选择率估算器的边界情况整数溢出问题", "evidence": {"same_day": true, "patch_ids": ["6827108dafb7fb952c98263cf81bfb12"], "statement_hash": "15b336d5589f6d629fe8bb0549cd193d78524753cdd06cfede921f7dce003daf"}, "url": "/docs/compare/?release=18.2#18.2-a45188e655691d38", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "1285579c66ecba8872eb8b17f3bc4e1b", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复 contrib/intarray 中 @@ 选择率估算器的边界情况整数溢出问题", "evidence": {"same_day": true, "patch_ids": ["6827108dafb7fb952c98263cf81bfb12"], "statement_hash": "15b336d5589f6d629fe8bb0549cd193d78524753cdd06cfede921f7dce003daf"}, "url": "/docs/compare/?release=16.12#16.12-5a125ae178db396f", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "81dbabd3964ac7d16575fec8b0e775d4", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复 contrib/intarray 中 @@ 选择率估算器的边界情况整数溢出问题", "evidence": {"same_day": true, "patch_ids": ["6827108dafb7fb952c98263cf81bfb12"], "statement_hash": "15b336d5589f6d629fe8bb0549cd193d78524753cdd06cfede921f7dce003daf"}, "url": "/docs/compare/?release=15.16#15.16-f389445655314c8a", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "59e2d3bf9637de09505f940988dcd182", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复 contrib/intarray 中 @@ 选择率估算器的边界情况整数溢出问题", "evidence": {"same_day": true, "patch_ids": ["6827108dafb7fb952c98263cf81bfb12"], "statement_hash": "15b336d5589f6d629fe8bb0549cd193d78524753cdd06cfede921f7dce003daf"}, "url": "/docs/compare/?release=14.21#14.21-b90e49b89a9df63b", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-cb9f9359b4259ec9", "cves": [], "html": "<p>修复 <code>contrib/ltree</code> 中的多字节编码问题（Jeff Davis）<a href=\"https://postgr.es/c/b8cfe9dc2\">§</a></p>\n<p>之前的代码可能将不完整的多字节字符传递给 <code>lower()</code>，可能导致不正确的行为。</p>", "text": "修复 contrib/ltree 中的多字节编码问题（Jeff Davis）§ 之前的代码可能将不完整的多字节字符传递给 lower()，可能导致不正确的行为。", "title": "修复 contrib/ltree 中的多字节编码问题", "commits": ["b8cfe9dc2"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "f2ecb3c8b7d078c75034a08f73904b364169a84e7b58c65215d375099b5c0d5b", "section_path": ["变更"], "commit_groups": [["335b2f30b", "84d5efa7e", "898991966", "b80227c0a", "b8cfe9dc2", "f79e239e0"]], "identity_text": "Fix multibyte-encoding issue in contrib/ltree (Jeff Davis) The previous coding could pass an incomplete multibyte character to lower(), probably resulting in incorrect behavior.", "commit_aliases": ["335b2f30b", "84d5efa7e", "898991966", "b80227c0a", "b8cfe9dc2", "f79e239e0"], "source_commits": ["b8cfe9dc2"], "source_entry_id": "17.8/changes/051", "db_id": "d009a076d5863b0968962c0a478ad63c", "patch_ids": ["ce03709afde90a593822361bba7a645d"], "statement_hash": "df18b7dd23fc4a736b53dee8298de471bf4398537e381437dba5d40d41b4e8c8", "relations": [{"rule": 2, "type": "equivalent", "target": "68d5a5585afcd2453c96b9409ff4eb3e", "evidence": {"same_day": true, "patch_ids": ["ce03709afde90a593822361bba7a645d"], "statement_hash": "df18b7dd23fc4a736b53dee8298de471bf4398537e381437dba5d40d41b4e8c8"}}, {"rule": 2, "type": "equivalent", "target": "81f250eccec05588f1ee61ab46a58eef", "evidence": {"same_day": true, "patch_ids": ["ce03709afde90a593822361bba7a645d"], "statement_hash": "df18b7dd23fc4a736b53dee8298de471bf4398537e381437dba5d40d41b4e8c8"}}, {"rule": 2, "type": "equivalent", "target": "a7c924b73b0998bc9111869833cc9355", "evidence": {"same_day": true, "patch_ids": ["ce03709afde90a593822361bba7a645d"], "statement_hash": "df18b7dd23fc4a736b53dee8298de471bf4398537e381437dba5d40d41b4e8c8"}}, {"rule": 2, "type": "equivalent", "target": "d10631fe1ac5049f82fdf79ee53d5075", "evidence": {"same_day": true, "patch_ids": ["ce03709afde90a593822361bba7a645d"], "statement_hash": "df18b7dd23fc4a736b53dee8298de471bf4398537e381437dba5d40d41b4e8c8"}}], "version": "17.8", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a7c924b73b0998bc9111869833cc9355", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "修复 contrib/ltree 中的多字节编码问题", "evidence": {"same_day": true, "patch_ids": ["ce03709afde90a593822361bba7a645d"], "statement_hash": "df18b7dd23fc4a736b53dee8298de471bf4398537e381437dba5d40d41b4e8c8"}, "url": "/docs/compare/?release=18.2#18.2-4b1b9fbd0223faf3", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "81f250eccec05588f1ee61ab46a58eef", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "修复 contrib/ltree 中的多字节编码问题", "evidence": {"same_day": true, "patch_ids": ["ce03709afde90a593822361bba7a645d"], "statement_hash": "df18b7dd23fc4a736b53dee8298de471bf4398537e381437dba5d40d41b4e8c8"}, "url": "/docs/compare/?release=16.12#16.12-62d738484b043fb5", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "d10631fe1ac5049f82fdf79ee53d5075", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "修复 contrib/ltree 中的多字节编码问题", "evidence": {"same_day": true, "patch_ids": ["ce03709afde90a593822361bba7a645d"], "statement_hash": "df18b7dd23fc4a736b53dee8298de471bf4398537e381437dba5d40d41b4e8c8"}, "url": "/docs/compare/?release=15.16#15.16-a86dbc9d880920b4", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "68d5a5585afcd2453c96b9409ff4eb3e", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "修复 contrib/ltree 中的多字节编码问题", "evidence": {"same_day": true, "patch_ids": ["ce03709afde90a593822361bba7a645d"], "statement_hash": "df18b7dd23fc4a736b53dee8298de471bf4398537e381437dba5d40d41b4e8c8"}, "url": "/docs/compare/?release=14.21#14.21-16f0b9fef0baa13b", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}, {"id": "17.8-6f023224ced53b65", "cves": [], "html": "<p>将时区数据文件更新到 <span>tzdata</span> 2025c 版本（Tom Lane）<a href=\"https://postgr.es/c/f87c0b84e\">§</a></p>\n<p>唯一的变更是下加利福尼亚 1976 年之前时间戳的历史数据。</p>", "text": "将时区数据文件更新到 tzdata 2025c 版本（Tom Lane）§ 唯一的变更是下加利福尼亚 1976 年之前时间戳的历史数据。", "title": "将时区数据文件更新到 tzdata 2025c 版本", "commits": ["f87c0b84e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/17.8/#RELEASE-17-8-CHANGES", "source_hash": "4a4a5c14c16055f8cc102eae34ef59364d05a4f004b401d042290d4646ff609a", "section_path": ["变更"], "commit_groups": [["00410b76d", "228fe0c3e", "6574bee64", "8bbf28191", "d852d105e", "f87c0b84e"]], "identity_text": "Update time zone data files to tzdata release 2025c (Tom Lane) The only change is in historical data for pre-1976 timestamps in Baja California.", "commit_aliases": ["00410b76d", "228fe0c3e", "6574bee64", "8bbf28191", "d852d105e", "f87c0b84e"], "source_commits": ["f87c0b84e"], "source_entry_id": "17.8/changes/052", "db_id": "e11e7a4857357ba2a4255391b7eb4033", "patch_ids": ["248cd6c3eee33cd4c82f09ee1d6af621"], "statement_hash": "da0a28a77bd7a205873150e5d6559af4853f986168d43f9537c2dbe1b0158a5b", "relations": [{"rule": 2, "type": "equivalent", "target": "1e212940a15748de8b9d8f9f8a00221c", "evidence": {"same_day": true, "patch_ids": ["248cd6c3eee33cd4c82f09ee1d6af621"], "statement_hash": "da0a28a77bd7a205873150e5d6559af4853f986168d43f9537c2dbe1b0158a5b"}}, {"rule": 2, "type": "equivalent", "target": "6a2a6f129d457a35195c94f742bac1c7", "evidence": {"same_day": true, "patch_ids": ["248cd6c3eee33cd4c82f09ee1d6af621"], "statement_hash": "da0a28a77bd7a205873150e5d6559af4853f986168d43f9537c2dbe1b0158a5b"}}, {"rule": 2, "type": "equivalent", "target": "8fe4829a60aad3b491b6cf8cc56b6b67", "evidence": {"same_day": true, "patch_ids": ["248cd6c3eee33cd4c82f09ee1d6af621"], "statement_hash": "da0a28a77bd7a205873150e5d6559af4853f986168d43f9537c2dbe1b0158a5b"}}, {"rule": 2, "type": "equivalent", "target": "af6fece6fb7485ca9609d00ddf419b69", "evidence": {"same_day": true, "patch_ids": ["248cd6c3eee33cd4c82f09ee1d6af621"], "statement_hash": "da0a28a77bd7a205873150e5d6559af4853f986168d43f9537c2dbe1b0158a5b"}}], "version": "17.8", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e212940a15748de8b9d8f9f8a00221c", "kind": "equivalent", "version": "18.2", "label": "18.2", "title": "将时区数据文件更新到 tzdata 2025c 版本", "evidence": {"same_day": true, "patch_ids": ["248cd6c3eee33cd4c82f09ee1d6af621"], "statement_hash": "da0a28a77bd7a205873150e5d6559af4853f986168d43f9537c2dbe1b0158a5b"}, "url": "/docs/compare/?release=18.2#18.2-4cbf16ee6dc57970", "source_url": "/docs/release/18.2/#RELEASE-18-2-CHANGES"}, {"db_id": "6a2a6f129d457a35195c94f742bac1c7", "kind": "equivalent", "version": "16.12", "label": "16.12", "title": "将时区数据文件更新到 tzdata 2025c 版本", "evidence": {"same_day": true, "patch_ids": ["248cd6c3eee33cd4c82f09ee1d6af621"], "statement_hash": "da0a28a77bd7a205873150e5d6559af4853f986168d43f9537c2dbe1b0158a5b"}, "url": "/docs/compare/?release=16.12#16.12-6eb2ba686b659281", "source_url": "/docs/release/16.12/#RELEASE-16-12-CHANGES"}, {"db_id": "8fe4829a60aad3b491b6cf8cc56b6b67", "kind": "equivalent", "version": "15.16", "label": "15.16", "title": "将时区数据文件更新到 tzdata 2025c 版本", "evidence": {"same_day": true, "patch_ids": ["248cd6c3eee33cd4c82f09ee1d6af621"], "statement_hash": "da0a28a77bd7a205873150e5d6559af4853f986168d43f9537c2dbe1b0158a5b"}, "url": "/docs/compare/?release=15.16#15.16-c4e519f4ba92f2b8", "source_url": "/docs/release/15.16/#ZH-AUTO-RELEASE-15-SECT2-4"}, {"db_id": "af6fece6fb7485ca9609d00ddf419b69", "kind": "equivalent", "version": "14.21", "label": "14.21", "title": "将时区数据文件更新到 tzdata 2025c 版本", "evidence": {"same_day": true, "patch_ids": ["248cd6c3eee33cd4c82f09ee1d6af621"], "statement_hash": "da0a28a77bd7a205873150e5d6559af4853f986168d43f9537c2dbe1b0158a5b"}, "url": "/docs/compare/?release=14.21#14.21-af62fd071fbac039", "source_url": "/docs/release/14.21/#ZH-AUTO-RELEASE-14-SECT2-4"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 52}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 23}, {"key": "security", "label": "安全相关", "count": 4}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 25}], "total": 52, "release_count": 1, "cross_major": false, "cve_count": 4, "cves": [{"id": "CVE-2026-2006", "url": "https://www.postgresql.org/support/security/CVE-2026-2006/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "修复多字节字符长度验证不充分的问题", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2006", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing validation of multibyte character length in PostgreSQL text manipulation allows a database user to issue crafted queries that achieve a buffer overrun. That suffices to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "17.8"}, {"id": "CVE-2026-2005", "url": "https://www.postgresql.org/support/security/CVE-2026-2005/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "修复 contrib/pgcrypto PGP 解密函数中的缓冲区溢出问题", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2005", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Heap buffer overflow in PostgreSQL pgcrypto allows a ciphertext provider to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "17.8"}, {"id": "CVE-2026-2004", "url": "https://www.postgresql.org/support/security/CVE-2026-2004/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 8.8, "title": "增强选择率估算器在被附加到接受非预期数据类型的操作符时的防护", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2004", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "contrib module", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing validation of type of input in PostgreSQL intarray extension selectivity estimator function allows an object creator to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "17.8"}, {"id": "CVE-2026-2003", "url": "https://www.postgresql.org/support/security/CVE-2026-2003/", "fixed": {"14": "14.21", "15": "15.16", "16": "16.12", "17": "17.8", "18": "18.2"}, "score": 4.3, "title": "防止 oidvector/int2vector 出现意外的维度", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2026-2003", "affected": {"14": "14", "15": "15", "16": "16", "17": "17", "18": "18"}, "component": "core server", "published": {"14": "2026-02-12", "15": "2026-02-12", "16": "2026-02-12", "17": "2026-02-12", "18": "2026-02-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Improper validation of type \"oidvector\" in PostgreSQL allows a database user to disclose a few bytes of server memory. We have not ruled out viability of attacks that arrange for presence of confidential information in disclosed bytes, but they seem unlikely. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "affected_ranges": [{"from": "0", "until": "14.21"}, {"from": "15", "until": "15.16"}, {"from": "16", "until": "16.12"}, {"from": "17", "until": "17.8"}, {"from": "18", "until": "18.2"}], "first_published": "2026-02-12", "fixed_version": "17.8"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 52, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}