{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2023-05-11", "build": "15.3", "major": "15", "minor": 3, "manual": "15", "status": "stable", "doc_git": "", "version": "15.3", "eol_date": "2027-11-11", "date_text": "2023-05-11", "supported": true, "manual_url": "/docs/15/release-15-3.html", "source_url": "/docs/release/15.3/", "entry_count": 83, "placeholder": false, "content_hash": "be49d10832bc24ef10d32346107729f816936636d1a3bf643c36641d7ebfaf70", "manual_build": "15.19", "source_as_of": "", "changes_count": 83, "doc_loaded_at": "2026-09-26T02:56:38.228564", "migration_html": "<p>对于运行 15.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果你从早于 15.1 的版本升级，请参见<a href=\"/docs/15/release-15-1.html\" title=\"E.19. 发布版本 15.1\">第 E.19 节</a>。</p>", "compatibility_count": 0, "label": "15.3", "status_label": "受支持版本", "eol": "2027-11-11", "age_days": 1238, "support_days": 407}, "groups": [{"date": "2023-05-11", "build": "15.3", "major": "15", "minor": 3, "manual": "15", "status": "stable", "doc_git": "", "version": "15.3", "eol_date": "2027-11-11", "date_text": "2023-05-11", "supported": true, "manual_url": "/docs/15/release-15-3.html", "source_url": "/docs/release/15.3/", "entry_count": 83, "placeholder": false, "content_hash": "be49d10832bc24ef10d32346107729f816936636d1a3bf643c36641d7ebfaf70", "manual_build": "15.19", "source_as_of": "", "changes_count": 83, "doc_loaded_at": "2026-09-26T02:56:38.228564", "migration_html": "<p>对于运行 15.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果你从早于 15.1 的版本升级，请参见<a href=\"/docs/15/release-15-1.html\" title=\"E.19. 发布版本 15.1\">第 E.19 节</a>。</p>", "compatibility_count": 0, "label": "15.3", "status_label": "受支持版本", "eol": "2027-11-11", "age_days": 1238, "support_days": 407, "entries": [{"id": "15.3-a287358dd4e8c698", "cves": ["CVE-2023-2454"], "html": "<p>防止 <code>CREATE SCHEMA</code> 绕过 <code>search_path</code> 的更改（Alexander Lakhin）<a href=\"https://postgr.es/c/dbd5795e7\">§</a> <a href=\"https://postgr.es/c/1b761d896\">§</a></p>\n<p>在 <code>CREATE SCHEMA</code> 命令中，当前 <code>search_path</code> 中的对象以及新创建模式中的对象，即使在调用了试图设置安全 <code>search_path</code> 的函数或脚本中也是可见的。这可能允许任何有权创建模式的用户劫持安全定义函数或扩展脚本的权限。</p>\n<p><span>PostgreSQL</span> 项目感谢 Alexander Lakhin 报告此问题。（CVE-2023-2454）</p>", "text": "防止 CREATE SCHEMA 绕过 search_path 的更改（Alexander Lakhin）§ § 在 CREATE SCHEMA 命令中，当前 search_path 中的对象以及新创建模式中的对象，即使在调用了试图设置安全 search_path 的函数或脚本中也是可见的。这可能允许任何有权创建模式的用户劫持安全定义函数或扩展脚本的权限。 PostgreSQL 项目感谢 Alexander Lakhin 报告此问题。（CVE-2023-2454）", "title": "防止 CREATE SCHEMA 绕过 search_path 的更改", "commits": ["1b761d896", "dbd5795e7"], "section": "变更", "category": "security", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "5900ab957e3fade6653af7c723999cee397928e5cf0ec31597cdfdf8bde00ebf", "section_path": ["变更"], "commit_groups": [["01e8182c7", "2212f7db8", "23cb8eaeb", "681d9e462", "78119a0bf", "dbd5795e7"], ["1913f63dc", "1b761d896", "2cd843cc9", "766e06140", "8d525d7b9", "feb9e7fbb"]], "identity_text": "Prevent CREATE SCHEMA from defeating changes in search_path (Alexander Lakhin) Within a CREATE SCHEMA command, objects in the prevailing search_path, as well as those in the newly-created schema, would be visible even within a called function or script that attempted to set a secure search_path. This could allow any user having permission to create a schema to hijack the privileges of a security definer function or extension script. The PostgreSQL Project thanks Alexander Lakhin for reporting this problem. (CVE-2023-2454)", "commit_aliases": ["01e8182c7", "1913f63dc", "1b761d896", "2212f7db8", "23cb8eaeb", "2cd843cc9", "681d9e462", "766e06140", "78119a0bf", "8d525d7b9", "dbd5795e7", "feb9e7fbb"], "source_commits": ["1b761d896", "dbd5795e7"], "source_entry_id": "15.3/changes/001", "db_id": "51066c7c39cb8d27b3588e709b7b0a36", "patch_ids": ["7aca3fd28f1cbb6b12d72aba94d39b05", "e65e1912bd0e737dfa8684efd92f9178"], "statement_hash": "0d67be77611d4b8c314cc1ef9aa277186e4a851d2d18997390d92386c1f9cfd1", "relations": [{"rule": 2, "type": "equivalent", "target": "777c71b0430288029e585e0fa8057bda", "evidence": {"same_day": true, "patch_ids": ["7aca3fd28f1cbb6b12d72aba94d39b05", "e65e1912bd0e737dfa8684efd92f9178"], "statement_hash": "0d67be77611d4b8c314cc1ef9aa277186e4a851d2d18997390d92386c1f9cfd1"}}, {"rule": 2, "type": "equivalent", "target": "a38910fed8b0d917f611849974f58182", "evidence": {"same_day": true, "patch_ids": ["7aca3fd28f1cbb6b12d72aba94d39b05", "e65e1912bd0e737dfa8684efd92f9178"], "statement_hash": "0d67be77611d4b8c314cc1ef9aa277186e4a851d2d18997390d92386c1f9cfd1"}}, {"rule": 2, "type": "equivalent", "target": "c1769dec8d09b480c0a31eb54323bc12", "evidence": {"same_day": true, "patch_ids": ["7aca3fd28f1cbb6b12d72aba94d39b05", "e65e1912bd0e737dfa8684efd92f9178"], "statement_hash": "0d67be77611d4b8c314cc1ef9aa277186e4a851d2d18997390d92386c1f9cfd1"}}, {"rule": 2, "type": "equivalent", "target": "e3ed2eaa445214c4867d26cbc0666475", "evidence": {"same_day": true, "patch_ids": ["7aca3fd28f1cbb6b12d72aba94d39b05", "e65e1912bd0e737dfa8684efd92f9178"], "statement_hash": "0d67be77611d4b8c314cc1ef9aa277186e4a851d2d18997390d92386c1f9cfd1"}}], "version": "15.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "a38910fed8b0d917f611849974f58182", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "防止 CREATE SCHEMA 绕过 search_path 的更改", "evidence": {"same_day": true, "patch_ids": ["7aca3fd28f1cbb6b12d72aba94d39b05", "e65e1912bd0e737dfa8684efd92f9178"], "statement_hash": "0d67be77611d4b8c314cc1ef9aa277186e4a851d2d18997390d92386c1f9cfd1"}, "url": "/docs/compare/?release=14.8#14.8-64bbc83a26f3e0e4", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "e3ed2eaa445214c4867d26cbc0666475", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "防止 CREATE SCHEMA 绕过 search_path 的更改", "evidence": {"same_day": true, "patch_ids": ["7aca3fd28f1cbb6b12d72aba94d39b05", "e65e1912bd0e737dfa8684efd92f9178"], "statement_hash": "0d67be77611d4b8c314cc1ef9aa277186e4a851d2d18997390d92386c1f9cfd1"}, "url": "/docs/compare/?release=13.11#13.11-960180571a622bb8", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "c1769dec8d09b480c0a31eb54323bc12", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "防止 CREATE SCHEMA 绕过 search_path 的更改", "evidence": {"same_day": true, "patch_ids": ["7aca3fd28f1cbb6b12d72aba94d39b05", "e65e1912bd0e737dfa8684efd92f9178"], "statement_hash": "0d67be77611d4b8c314cc1ef9aa277186e4a851d2d18997390d92386c1f9cfd1"}, "url": "/docs/compare/?release=12.15#12.15-c11ec7acdcc3d380", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "777c71b0430288029e585e0fa8057bda", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "防止 CREATE SCHEMA 绕过 search_path 的更改", "evidence": {"same_day": true, "patch_ids": ["7aca3fd28f1cbb6b12d72aba94d39b05", "e65e1912bd0e737dfa8684efd92f9178"], "statement_hash": "0d67be77611d4b8c314cc1ef9aa277186e4a851d2d18997390d92386c1f9cfd1"}, "url": "/docs/compare/?release=11.20#11.20-0e81dd6144dfdd75", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-e3062d4fe1bdb369", "cves": ["CVE-2023-2455"], "html": "<p>在内联集合返回函数后正确执行行级安全策略（Stephen Frost，Tom Lane）<a href=\"https://postgr.es/c/04e560604\">§</a></p>\n<p>如果一个集合返回的 SQL 语言函数引用了具有行级安全策略的表，且该函数可以被内联到调用查询中，在某些涉及在不同角色下重用缓存计划的情况下，这些 RLS 策略将不会被正确执行。这可能允许用户查看或修改本应不可见的行。</p>\n<p><span>PostgreSQL</span> 项目感谢 Wolfgang Walther 报告此问题。（CVE-2023-2455）</p>", "text": "在内联集合返回函数后正确执行行级安全策略（Stephen Frost，Tom Lane）§ 如果一个集合返回的 SQL 语言函数引用了具有行级安全策略的表，且该函数可以被内联到调用查询中，在某些涉及在不同角色下重用缓存计划的情况下，这些 RLS 策略将不会被正确执行。这可能允许用户查看或修改本应不可见的行。 PostgreSQL 项目感谢 Wolfgang Walther 报告此问题。（CVE-2023-2455）", "title": "在内联集合返回函数后正确执行行级安全策略", "commits": ["04e560604"], "section": "变更", "category": "security", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "3d834627027abd3c2975576bee1fa8b8a64fa8823a6a80be395191bfe674b431", "section_path": ["变更"], "commit_groups": [["04e560604", "473626cf0", "b8e28f04f", "ca73753b0", "ee87b482c", "f8d799eda"]], "identity_text": "Enforce row-level security policies correctly after inlining a set-returning function (Stephen Frost, Tom Lane) If a set-returning SQL-language function refers to a table having row-level security policies, and it can be inlined into a calling query, those RLS policies would not get enforced properly in some cases involving re-using a cached plan under a different role. This could allow a user to see or modify rows that should have been invisible. The PostgreSQL Project thanks Wolfgang Walther for reporting this problem. (CVE-2023-2455)", "commit_aliases": ["04e560604", "473626cf0", "b8e28f04f", "ca73753b0", "ee87b482c", "f8d799eda"], "source_commits": ["04e560604"], "source_entry_id": "15.3/changes/002", "db_id": "dd2ddc6e82a946def7a3caba9afd1173", "patch_ids": ["f251614e67673b492d74946d7ce53215"], "statement_hash": "f929a0696fdb402d52d0b45f9446c58bf74691a014be129e2b77df3ff381e69d", "relations": [{"rule": 2, "type": "equivalent", "target": "175c37292cf50bc4869bbfb5e9472d2a", "evidence": {"same_day": true, "patch_ids": ["f251614e67673b492d74946d7ce53215"], "statement_hash": "f929a0696fdb402d52d0b45f9446c58bf74691a014be129e2b77df3ff381e69d"}}, {"rule": 2, "type": "equivalent", "target": "56a82fdaa488d4b22300876173295c83", "evidence": {"same_day": true, "patch_ids": ["f251614e67673b492d74946d7ce53215"], "statement_hash": "f929a0696fdb402d52d0b45f9446c58bf74691a014be129e2b77df3ff381e69d"}}, {"rule": 2, "type": "equivalent", "target": "a054b6ea9d929ddee95eed6d01b8afc0", "evidence": {"same_day": true, "patch_ids": ["f251614e67673b492d74946d7ce53215"], "statement_hash": "f929a0696fdb402d52d0b45f9446c58bf74691a014be129e2b77df3ff381e69d"}}, {"rule": 2, "type": "equivalent", "target": "c22d180d4b2a5043a0ec0be716169dd5", "evidence": {"same_day": true, "patch_ids": ["f251614e67673b492d74946d7ce53215"], "statement_hash": "f929a0696fdb402d52d0b45f9446c58bf74691a014be129e2b77df3ff381e69d"}}], "version": "15.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "175c37292cf50bc4869bbfb5e9472d2a", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在内联集合返回函数后正确执行行级安全策略", "evidence": {"same_day": true, "patch_ids": ["f251614e67673b492d74946d7ce53215"], "statement_hash": "f929a0696fdb402d52d0b45f9446c58bf74691a014be129e2b77df3ff381e69d"}, "url": "/docs/compare/?release=14.8#14.8-59120cdbb1e5d2b1", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "56a82fdaa488d4b22300876173295c83", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "在内联集合返回函数后正确执行行级安全策略", "evidence": {"same_day": true, "patch_ids": ["f251614e67673b492d74946d7ce53215"], "statement_hash": "f929a0696fdb402d52d0b45f9446c58bf74691a014be129e2b77df3ff381e69d"}, "url": "/docs/compare/?release=13.11#13.11-dceb56ebe5dfd791", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "c22d180d4b2a5043a0ec0be716169dd5", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "在内联集合返回函数后正确执行行级安全策略", "evidence": {"same_day": true, "patch_ids": ["f251614e67673b492d74946d7ce53215"], "statement_hash": "f929a0696fdb402d52d0b45f9446c58bf74691a014be129e2b77df3ff381e69d"}, "url": "/docs/compare/?release=12.15#12.15-9415a6aefb232162", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "a054b6ea9d929ddee95eed6d01b8afc0", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "在内联集合返回函数后正确执行行级安全策略", "evidence": {"same_day": true, "patch_ids": ["f251614e67673b492d74946d7ce53215"], "statement_hash": "f929a0696fdb402d52d0b45f9446c58bf74691a014be129e2b77df3ff381e69d"}, "url": "/docs/compare/?release=11.20#11.20-af3fa580e8ec8498", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-03cc9614e2c13f3e", "cves": [], "html": "<p>修复使用 <code>STRATEGY WAL_LOG</code> 选项执行 <code>CREATE DATABASE</code> 后模板（源）数据库可能损坏的问题（Nathan Bossart，Ryo Matsumura）<a href=\"https://postgr.es/c/fa5dd460c\">§</a></p>\n<p>不正确的缓冲区处理带来了风险：之后对模板的 <code>pg_class</code> 目录的任何修改都可能丢失。</p>", "text": "修复使用 STRATEGY WAL_LOG 选项执行 CREATE DATABASE 后模板（源）数据库可能损坏的问题（Nathan Bossart，Ryo Matsumura）§ 不正确的缓冲区处理带来了风险：之后对模板的 pg_class 目录的任何修改都可能丢失。", "title": "修复使用 STRATEGY WAL_LOG 选项执行 CREATE DATABASE 后模板（源）数据库可能损坏的问题", "commits": ["fa5dd460c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "d5f01f0d8b1e498db9cbdc793cc5d7df74a5740d7e2ce914093b609f017c22d0", "section_path": ["变更"], "commit_groups": [["8a8661828", "fa5dd460c"]], "identity_text": "Fix potential corruption of the template (source) database after CREATE DATABASE with the STRATEGY WAL_LOG option (Nathan Bossart, Ryo Matsumura) Improper buffer handling created a risk that any later modification of the template's pg_class catalog would be lost.", "commit_aliases": ["8a8661828", "fa5dd460c"], "source_commits": ["fa5dd460c"], "source_entry_id": "15.3/changes/003", "db_id": "b93d461804a0c93bc8e63312f59aa17e", "patch_ids": ["a7883c4599d497b9a4fa325f13be2581"], "statement_hash": "a6fa8ae426011d1f5d7f5afedb8a8ff6bceaa7e0c80e08ef89d480c38b996079", "relations": [], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-bdf1b0953d9be03f", "cves": [], "html": "<p>修复使用 <code>STRATEGY WAL_LOG</code> 选项执行 <code>CREATE DATABASE</code> 时的内存泄漏和不必要的磁盘读取（Andres Freund）<a href=\"https://postgr.es/c/560bb56c6\">§</a></p>", "text": "修复使用 STRATEGY WAL_LOG 选项执行 CREATE DATABASE 时的内存泄漏和不必要的磁盘读取（Andres Freund）§", "title": "修复使用 STRATEGY WAL_LOG 选项执行 CREATE DATABASE 时的内存泄漏和不必要的磁盘读取", "commits": ["560bb56c6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "1931e444f5c76c6440a2614e1b69107c39c262fe7261679c70d01a47862ba91e", "section_path": ["变更"], "commit_groups": [["560bb56c6", "5df319f3d"]], "identity_text": "Fix memory leakage and unnecessary disk reads during CREATE DATABASE with the STRATEGY WAL_LOG option (Andres Freund)", "commit_aliases": ["560bb56c6", "5df319f3d"], "source_commits": ["560bb56c6"], "source_entry_id": "15.3/changes/004", "db_id": "36e7a204b3113d8a066a55b54e5df6b6", "patch_ids": ["abd12a4e9d249b7441123151277a0b67"], "statement_hash": "21e9e248ead0d64a77bbe3d1aa83c5b448b911a3f28413ac4820af9d6a0ca96a", "relations": [], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-488a064f8c8fc817", "cves": [], "html": "<p>避免在 <code>CREATE SCHEMA</code> 中省略新模式名称时发生崩溃（Michael Paquier）<a href=\"https://postgr.es/c/b9ad73ad2\">§</a></p>\n<p>SQL 标准允许编写 <code>CREATE SCHEMA AUTHORIZATION <em><code>owner_name</code></em></code>，其中模式名称默认为 <em><code>owner_name</code></em>。然而某些代码路径期望模式名称存在，因此会失败。</p>", "text": "避免在 CREATE SCHEMA 中省略新模式名称时发生崩溃（Michael Paquier）§ SQL 标准允许编写 CREATE SCHEMA AUTHORIZATION owner_name，其中模式名称默认为 owner_name。然而某些代码路径期望模式名称存在，因此会失败。", "title": "避免在 CREATE SCHEMA 中省略新模式名称时发生崩溃", "commits": ["b9ad73ad2"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "d8ff293f18aff4cdcb3bdd5a5516430d22c2f5d6f5c70924e4dc2c13cebc0e15", "section_path": ["变更"], "commit_groups": [["4dadd660f", "63f7e91ec", "7e95a33b4", "a9212716b", "b9ad73ad2", "d29eba198"]], "identity_text": "Avoid crash when the new schema name is omitted in CREATE SCHEMA (Michael Paquier) The SQL standard allows writing CREATE SCHEMA AUTHORIZATION owner_name, with the schema name defaulting to owner_name. However some code paths expected the schema name to be present and would fail.", "commit_aliases": ["4dadd660f", "63f7e91ec", "7e95a33b4", "a9212716b", "b9ad73ad2", "d29eba198"], "source_commits": ["b9ad73ad2"], "source_entry_id": "15.3/changes/005", "db_id": "e0d9f4fac5297992ef4320af0797837f", "patch_ids": ["90cdb37da890d53961eefcf9dddc51fc"], "statement_hash": "b866a37cea087aa7d82cedeaf11e558199658a6b85ef32a4705653555f4b3e3d", "relations": [{"rule": 2, "type": "equivalent", "target": "2f3c9c775aff906858a9fc0c4acab8a2", "evidence": {"same_day": true, "patch_ids": ["90cdb37da890d53961eefcf9dddc51fc"], "statement_hash": "b866a37cea087aa7d82cedeaf11e558199658a6b85ef32a4705653555f4b3e3d"}}, {"rule": 2, "type": "equivalent", "target": "4e91f327bf9b27698e13f4c403ee77ad", "evidence": {"same_day": true, "patch_ids": ["90cdb37da890d53961eefcf9dddc51fc"], "statement_hash": "b866a37cea087aa7d82cedeaf11e558199658a6b85ef32a4705653555f4b3e3d"}}, {"rule": 2, "type": "equivalent", "target": "607dbbd67a2995ee0c31a78c4b439af9", "evidence": {"same_day": true, "patch_ids": ["90cdb37da890d53961eefcf9dddc51fc"], "statement_hash": "b866a37cea087aa7d82cedeaf11e558199658a6b85ef32a4705653555f4b3e3d"}}, {"rule": 2, "type": "equivalent", "target": "b56c9bac73b0f1aeeca82b33803f3926", "evidence": {"same_day": true, "patch_ids": ["90cdb37da890d53961eefcf9dddc51fc"], "statement_hash": "b866a37cea087aa7d82cedeaf11e558199658a6b85ef32a4705653555f4b3e3d"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2f3c9c775aff906858a9fc0c4acab8a2", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免在 CREATE SCHEMA 中省略新模式名称时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["90cdb37da890d53961eefcf9dddc51fc"], "statement_hash": "b866a37cea087aa7d82cedeaf11e558199658a6b85ef32a4705653555f4b3e3d"}, "url": "/docs/compare/?release=14.8#14.8-9f80249ee906965b", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "607dbbd67a2995ee0c31a78c4b439af9", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "避免在 CREATE SCHEMA 中省略新模式名称时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["90cdb37da890d53961eefcf9dddc51fc"], "statement_hash": "b866a37cea087aa7d82cedeaf11e558199658a6b85ef32a4705653555f4b3e3d"}, "url": "/docs/compare/?release=13.11#13.11-bc6cf9f9ffa2bd32", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "b56c9bac73b0f1aeeca82b33803f3926", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "避免在 CREATE SCHEMA 中省略新模式名称时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["90cdb37da890d53961eefcf9dddc51fc"], "statement_hash": "b866a37cea087aa7d82cedeaf11e558199658a6b85ef32a4705653555f4b3e3d"}, "url": "/docs/compare/?release=12.15#12.15-a5a2e3d992c40a47", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "4e91f327bf9b27698e13f4c403ee77ad", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "避免在 CREATE SCHEMA 中省略新模式名称时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["90cdb37da890d53961eefcf9dddc51fc"], "statement_hash": "b866a37cea087aa7d82cedeaf11e558199658a6b85ef32a4705653555f4b3e3d"}, "url": "/docs/compare/?release=11.20#11.20-cff0471b69b2ef33", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-a898f6cecc6b788e", "cves": [], "html": "<p>修复 <code>MERGE</code> 命令的各种规划器故障（Tom Lane）<a href=\"https://postgr.es/c/bf5c4b3d9\">§</a> <a href=\"https://postgr.es/c/3908d6ae1\">§</a></p>\n<p>规划可能会失败，并报告诸如 <span>“<span>variable not found in subplan target list</span>”</span> 或 <span>“<span>PlaceHolderVar found where not expected</span>”</span> 之类的错误。</p>", "text": "修复 MERGE 命令的各种规划器故障（Tom Lane）§ § 规划可能会失败，并报告诸如 “variable not found in subplan target list” 或 “PlaceHolderVar found where not expected” 之类的错误。", "title": "修复 MERGE 命令的各种规划器故障", "commits": ["3908d6ae1", "bf5c4b3d9"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "7fe4901cad4fcca6c43fbc77c1b2ce76be272864ce8bf981c1af6e4f5f9c6cd3", "section_path": ["变更"], "commit_groups": [["326a33a28", "bf5c4b3d9"], ["3908d6ae1", "e3ac85014"]], "identity_text": "Fix various planner failures with MERGE commands (Tom Lane) Planning could fail with errors like variable not found in subplan target list or PlaceHolderVar found where not expected.", "commit_aliases": ["326a33a28", "3908d6ae1", "bf5c4b3d9", "e3ac85014"], "source_commits": ["3908d6ae1", "bf5c4b3d9"], "source_entry_id": "15.3/changes/006", "db_id": "997b49fce97281b571fdea604bdf6cc6", "patch_ids": ["5186d4b3c28f326c0cd43f1ae5c0e1d6", "8f8a333266e69374c2ceeb2d13eda1d4"], "statement_hash": "c2c3b8d05824e1d2523289224b152fbeb3dabd1deac9db7163a236ece1742d4a", "relations": [], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-1a20010073b6a685", "cves": [], "html": "<p>修复 <code>MERGE</code> 在某些边界情况下报告的行数（Dean Rasheed）<a href=\"https://postgr.es/c/da6257eee\">§</a> <a href=\"https://postgr.es/c/018af1cc1\">§</a></p>\n<p>命令标签中报告的行数计入了实际上由于 <code>BEFORE ROW</code> 触发器返回 NULL 而未被修改的行。这与普通 <code>UPDATE</code> 或 <code>DELETE</code> 中的行为不一致，因此将其改为不计算此类行。此外，避免在 <code>MERGE</code> 将行移到分区表的不同分区时重复计数。</p>", "text": "修复 MERGE 在某些边界情况下报告的行数（Dean Rasheed）§ § 命令标签中报告的行数计入了实际上由于 BEFORE ROW 触发器返回 NULL 而未被修改的行。这与普通 UPDATE 或 DELETE 中的行为不一致，因此将其改为不计算此类行。此外，避免在 MERGE 将行移到分区表的不同分区时重复计数。", "title": "修复 MERGE 在某些边界情况下报告的行数", "commits": ["018af1cc1", "da6257eee"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "d26fa281c638be266a6d1132023c48f269fcd875a67ca4ac8629d8b64c471365", "section_path": ["变更"], "commit_groups": [["018af1cc1", "80a48e0f2"], ["7b14e20b1", "da6257eee"]], "identity_text": "Fix the row count reported by MERGE for some corner cases (Dean Rasheed) The row count reported in the command tag counted rows that actually hadn't been modified due to a BEFORE ROW trigger returning NULL. This is inconsistent with what happens in plain UPDATE or DELETE, so change it to not count such rows. Also, avoid counting a row twice when MERGE moves it into a different partition of a partitioned table.", "commit_aliases": ["018af1cc1", "7b14e20b1", "80a48e0f2", "da6257eee"], "source_commits": ["018af1cc1", "da6257eee"], "source_entry_id": "15.3/changes/007", "db_id": "2a0f9e6c69d56c068383dcaf4fdbf21f", "patch_ids": ["82929ac9367dbe9bc26a65925c866a3b", "f0613904acd75bfa9aefb9d97c32198c"], "statement_hash": "51b4b36a454f21ce6c71cb75379d69e0972d616752cfbb266f1ada06f39b6bfd", "relations": [], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-307faac87b001703", "cves": [], "html": "<p>修复 <code>MERGE</code> 在并发更新时的问题（Dean Rasheed，Álvaro Herrera）<a href=\"https://postgr.es/c/7d9a75713\">§</a> <a href=\"https://postgr.es/c/5d8ec1b9f\">§</a></p>\n<p>如果 <code>MERGE</code> 要更新或删除的行刚刚被并发事务更新，某些情况下会出现异常行为。这可能导致崩溃、执行了错误的合并操作，或者完全不执行任何操作。</p>", "text": "修复 MERGE 在并发更新时的问题（Dean Rasheed，Álvaro Herrera）§ § 如果 MERGE 要更新或删除的行刚刚被并发事务更新，某些情况下会出现异常行为。这可能导致崩溃、执行了错误的合并操作，或者完全不执行任何操作。", "title": "修复 MERGE 在并发更新时的问题", "commits": ["5d8ec1b9f", "7d9a75713"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "9b84c346125ec82c40f5272388309da536f1b54f725bff350ba144b153280972", "section_path": ["变更"], "commit_groups": [["5d8ec1b9f", "fd923b5de"], ["7d9a75713", "9321c79c8"]], "identity_text": "Fix MERGE problems with concurrent updates (Dean Rasheed, Álvaro Herrera) Some cases misbehaved if a row to be updated or deleted by MERGE had just been updated by a concurrent transaction. This could lead to a crash, or the wrong merge action being executed, or no action at all.", "commit_aliases": ["5d8ec1b9f", "7d9a75713", "9321c79c8", "fd923b5de"], "source_commits": ["5d8ec1b9f", "7d9a75713"], "source_entry_id": "15.3/changes/008", "db_id": "c680dc1bf632e6500f8bb43a6ba58975", "patch_ids": ["48cda40d0d70962ab9e2840d7fee81a8", "74c4821b91d66bee7fa4ca444e2f5550"], "statement_hash": "e130d4edd9f1883bbc601b9b74176b1b19287445bd96f81a736412218dd9e23d", "relations": [], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-72666c879c807558", "cves": [], "html": "<p>增加对 <code>MERGE</code> 命令反编译的支持（Álvaro Herrera）<a href=\"https://postgr.es/c/f200b9695\">§</a></p>\n<p>这在添加 <code>MERGE</code> 时被遗漏了，但它是在新式 SQL 函数中支持 <code>MERGE</code> 所必需的。</p>", "text": "增加对 MERGE 命令反编译的支持（Álvaro Herrera）§ 这在添加 MERGE 时被遗漏了，但它是在新式 SQL 函数中支持 MERGE 所必需的。", "title": "增加对 MERGE 命令反编译的支持", "commits": ["f200b9695"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "c1623e6b3533655bc4955712f80e3f19494f5d8a2d08cbfcee2d5267004a7c33", "section_path": ["变更"], "commit_groups": [["41e2c52fd", "f200b9695"]], "identity_text": "Add support for decompiling MERGE commands (Álvaro Herrera) This was overlooked when MERGE was added, but it's essential support for MERGE in new-style SQL functions.", "commit_aliases": ["41e2c52fd", "f200b9695"], "source_commits": ["f200b9695"], "source_entry_id": "15.3/changes/009", "db_id": "25e74dbcc4e3c5ab05738c450a46dbdf", "patch_ids": ["54fa1465442016e0d10a9afda9c7fafa"], "statement_hash": "675b6345e3efb149acbe20cd8ca6d2e45408244b7c11ab8f2f91aaa39b69ea5f", "relations": [], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-11689e6cf200cbfa", "cves": [], "html": "<p>修复分区表中外键触发器的启用/禁用问题（Tom Lane）<a href=\"https://postgr.es/c/f61e60102\">§</a></p>\n<p><code>ALTER TABLE ... ENABLE/DISABLE TRIGGER</code> 在应用于分区表的外键约束触发器时会失败，因为它试图按名称定位分区的克隆触发器，而它们的名称并不相同。改为按父触发器 OID 定位。</p>", "text": "修复分区表中外键触发器的启用/禁用问题（Tom Lane）§ ALTER TABLE ... ENABLE/DISABLE TRIGGER 在应用于分区表的外键约束触发器时会失败，因为它试图按名称定位分区的克隆触发器，而它们的名称并不相同。改为按父触发器 OID 定位。", "title": "修复分区表中外键触发器的启用/禁用问题", "commits": ["f61e60102"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "e459afae27571f55d1331f2d9dac4ee87bac9a5e210463277e3109faa4a0168f", "section_path": ["变更"], "commit_groups": [["6949b921d", "f61e60102"]], "identity_text": "Fix enabling/disabling of foreign-key triggers in partitioned tables (Tom Lane) ALTER TABLE ... ENABLE/DISABLE TRIGGER failed if applied to a partitioned table's foreign-key enforcement triggers, because it tried to locate the clone triggers for the partitions by name, and they do not have the same name. Locate them by parent-trigger OID instead.", "commit_aliases": ["6949b921d", "f61e60102"], "source_commits": ["f61e60102"], "source_entry_id": "15.3/changes/010", "db_id": "68a290accc3960ff883fc14458e77eaf", "patch_ids": ["5a657ed50961d63ba01e8c401784aa3c"], "statement_hash": "3d7a1fe76ac5fe02e65ed3d7e21c75591842e98c6ba299e195277535ed5f47cd", "relations": [], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-bcfd338201368766", "cves": [], "html": "<p>禁止修改存储在索引中的复合类型（Tom Lane）<a href=\"https://postgr.es/c/d90d59e25\">§</a></p>\n<p><code>ALTER TYPE</code> 不允许对存储在任何表列中的复合类型进行非二进制兼容的修改。（也许将来会允许，但目前还没有实现；重写大量表的锁定影响令人生畏。）我们忽略了索引可能包含不在其所属表中出现的复合类型的情况。</p>", "text": "禁止修改存储在索引中的复合类型（Tom Lane）§ ALTER TYPE 不允许对存储在任何表列中的复合类型进行非二进制兼容的修改。（也许将来会允许，但目前还没有实现；重写大量表的锁定影响令人生畏。）我们忽略了索引可能包含不在其所属表中出现的复合类型的情况。", "title": "禁止修改存储在索引中的复合类型", "commits": ["d90d59e25"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "0548008fe6e59d7166f91c824fae3be4f5680e9e9e34f07ffe88cad1a00a3573", "section_path": ["变更"], "commit_groups": [["29a20ff06", "334cc4c96", "78838bc3d", "a3c9d35ae", "cd07163c0", "d90d59e25"]], "identity_text": "Disallow altering composite types that are stored in indexes (Tom Lane) ALTER TYPE disallows non-binary-compatible modifications of composite types if they are stored in any table columns. (Perhaps that will be allowed someday, but it hasn't happened yet; the locking implications of rewriting many tables are daunting.) We overlooked the possibility that an index might contain a composite type that doesn't also appear in its table.", "commit_aliases": ["29a20ff06", "334cc4c96", "78838bc3d", "a3c9d35ae", "cd07163c0", "d90d59e25"], "source_commits": ["d90d59e25"], "source_entry_id": "15.3/changes/011", "db_id": "09785e790eac4d8c31599b11decb37f4", "patch_ids": ["d5096a5b2de0675e309fce6587e3f306"], "statement_hash": "e9accc9651c5e9624d00e4da614e44016555483442f133348701b7378f7e3815", "relations": [{"rule": 2, "type": "equivalent", "target": "3544b09ee09c6a59f50de64e5417a3e1", "evidence": {"same_day": true, "patch_ids": ["d5096a5b2de0675e309fce6587e3f306"], "statement_hash": "e9accc9651c5e9624d00e4da614e44016555483442f133348701b7378f7e3815"}}, {"rule": 2, "type": "equivalent", "target": "59d1b95de4fca624930599d603e8665e", "evidence": {"same_day": true, "patch_ids": ["d5096a5b2de0675e309fce6587e3f306"], "statement_hash": "e9accc9651c5e9624d00e4da614e44016555483442f133348701b7378f7e3815"}}, {"rule": 2, "type": "equivalent", "target": "b5e4fd9f4830ba867784da6da5a9ab60", "evidence": {"same_day": true, "patch_ids": ["d5096a5b2de0675e309fce6587e3f306"], "statement_hash": "e9accc9651c5e9624d00e4da614e44016555483442f133348701b7378f7e3815"}}, {"rule": 2, "type": "equivalent", "target": "f02d252a47d2a5a8559b294914857b9c", "evidence": {"same_day": true, "patch_ids": ["d5096a5b2de0675e309fce6587e3f306"], "statement_hash": "e9accc9651c5e9624d00e4da614e44016555483442f133348701b7378f7e3815"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "59d1b95de4fca624930599d603e8665e", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "禁止修改存储在索引中的复合类型", "evidence": {"same_day": true, "patch_ids": ["d5096a5b2de0675e309fce6587e3f306"], "statement_hash": "e9accc9651c5e9624d00e4da614e44016555483442f133348701b7378f7e3815"}, "url": "/docs/compare/?release=14.8#14.8-6836e83bdafa8f40", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "f02d252a47d2a5a8559b294914857b9c", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "禁止修改存储在索引中的复合类型", "evidence": {"same_day": true, "patch_ids": ["d5096a5b2de0675e309fce6587e3f306"], "statement_hash": "e9accc9651c5e9624d00e4da614e44016555483442f133348701b7378f7e3815"}, "url": "/docs/compare/?release=13.11#13.11-6927283766444cdd", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "3544b09ee09c6a59f50de64e5417a3e1", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "禁止修改存储在索引中的复合类型", "evidence": {"same_day": true, "patch_ids": ["d5096a5b2de0675e309fce6587e3f306"], "statement_hash": "e9accc9651c5e9624d00e4da614e44016555483442f133348701b7378f7e3815"}, "url": "/docs/compare/?release=12.15#12.15-97f29767c3ab1282", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "b5e4fd9f4830ba867784da6da5a9ab60", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "禁止修改存储在索引中的复合类型", "evidence": {"same_day": true, "patch_ids": ["d5096a5b2de0675e309fce6587e3f306"], "statement_hash": "e9accc9651c5e9624d00e4da614e44016555483442f133348701b7378f7e3815"}, "url": "/docs/compare/?release=11.20#11.20-5710006fbe9b8488", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-e53ab162251acc3b", "cves": [], "html": "<p>禁止将系统列作为外键的元素（Tom Lane）<a href=\"https://postgr.es/c/6e3698173\">§</a></p>\n<p>自从 OID 被移除作为系统列以来，这样做没有合理的使用场景，并且各种代码不再支持它。与其试图修复所有情况，不如直接禁止。</p>", "text": "禁止将系统列作为外键的元素（Tom Lane）§ 自从 OID 被移除作为系统列以来，这样做没有合理的使用场景，并且各种代码不再支持它。与其试图修复所有情况，不如直接禁止。", "title": "禁止将系统列作为外键的元素", "commits": ["6e3698173"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "dcc7db2a8c0cfb93f5459b2b0e24162a6093e2e4b15673965dd30d3683a7eebe", "section_path": ["变更"], "commit_groups": [["6e3698173", "b0b55d8b8", "bfb993b1b", "e8d74aac5", "f0d65c0ea"]], "identity_text": "Disallow system columns as elements of foreign keys (Tom Lane) Since the removal of OID as a system column, there is no plausible use-case for this, and various bits of code no longer support it. Disallow it rather than trying to fix all the cases.", "commit_aliases": ["6e3698173", "b0b55d8b8", "bfb993b1b", "e8d74aac5", "f0d65c0ea"], "source_commits": ["6e3698173"], "source_entry_id": "15.3/changes/012", "db_id": "680f0ffa8d5cec0d2b1dc53adeab8941", "patch_ids": ["7b03a73452f64a03835eb73c8a744379"], "statement_hash": "8c2c0004eee1c4e22834db32a72e488ed277334a2a8a65442b23c854046d57ae", "relations": [{"rule": 2, "type": "equivalent", "target": "4f04e046ee4a22c37e3f3e878bc32bc9", "evidence": {"same_day": true, "patch_ids": ["7b03a73452f64a03835eb73c8a744379"], "statement_hash": "8c2c0004eee1c4e22834db32a72e488ed277334a2a8a65442b23c854046d57ae"}}, {"rule": 2, "type": "equivalent", "target": "8c15f1f28959a899a767d4a1e12bc9dc", "evidence": {"same_day": true, "patch_ids": ["7b03a73452f64a03835eb73c8a744379"], "statement_hash": "8c2c0004eee1c4e22834db32a72e488ed277334a2a8a65442b23c854046d57ae"}}, {"rule": 2, "type": "equivalent", "target": "cdb15c892dc70a1f810ff950f8aeb1d2", "evidence": {"same_day": true, "patch_ids": ["7b03a73452f64a03835eb73c8a744379"], "statement_hash": "8c2c0004eee1c4e22834db32a72e488ed277334a2a8a65442b23c854046d57ae"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8c15f1f28959a899a767d4a1e12bc9dc", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "禁止将系统列作为外键的元素", "evidence": {"same_day": true, "patch_ids": ["7b03a73452f64a03835eb73c8a744379"], "statement_hash": "8c2c0004eee1c4e22834db32a72e488ed277334a2a8a65442b23c854046d57ae"}, "url": "/docs/compare/?release=14.8#14.8-e53ab162251acc3b", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "cdb15c892dc70a1f810ff950f8aeb1d2", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "禁止将系统列用作外键的元素", "evidence": {"same_day": true, "patch_ids": ["7b03a73452f64a03835eb73c8a744379"], "statement_hash": "8c2c0004eee1c4e22834db32a72e488ed277334a2a8a65442b23c854046d57ae"}, "url": "/docs/compare/?release=13.11#13.11-136f461b916e50cf", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "4f04e046ee4a22c37e3f3e878bc32bc9", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "禁止将系统列用作外键的元素", "evidence": {"same_day": true, "patch_ids": ["7b03a73452f64a03835eb73c8a744379"], "statement_hash": "8c2c0004eee1c4e22834db32a72e488ed277334a2a8a65442b23c854046d57ae"}, "url": "/docs/compare/?release=12.15#12.15-d48691f44539193f", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}]}, {"id": "15.3-5063694f08784fde", "cves": [], "html": "<p>确保对启用了 RLS 的父表执行 <code>COPY TO</code> 时不会从子表中复制任何行（Antonin Houska）<a href=\"https://postgr.es/c/59947bac7\">§</a></p>\n<p>文档明确说明 <code>COPY TO</code> 仅从指定的表中复制行，不包括它可能拥有的任何继承子表。然而，如果该表启用了行级安全，则此行为将不再成立。</p>", "text": "确保对启用了 RLS 的父表执行 COPY TO 时不会从子表中复制任何行（Antonin Houska）§ 文档明确说明 COPY TO 仅从指定的表中复制行，不包括它可能拥有的任何继承子表。然而，如果该表启用了行级安全，则此行为将不再成立。", "title": "确保对启用了 RLS 的父表执行 COPY TO 时不会从子表中复制任何行", "commits": ["59947bac7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "57456b0909bcad787b7241a2681a4f0b84bc92468d4ecaa127d814337de56a69", "section_path": ["变更"], "commit_groups": [["53a53ea33", "59947bac7", "6e2674d77", "866fd004d", "a30310833", "d66bb048c"]], "identity_text": "Ensure that COPY TO from an RLS-enabled parent table does not copy any rows from child tables (Antonin Houska) The documentation is quite clear that COPY TO copies rows from only the named table, not any inheritance children it may have. However, if row-level security was enabled on the table then this stopped being true.", "commit_aliases": ["53a53ea33", "59947bac7", "6e2674d77", "866fd004d", "a30310833", "d66bb048c"], "source_commits": ["59947bac7"], "source_entry_id": "15.3/changes/013", "db_id": "271420b1f9bb71c12e24ffbd2519a369", "patch_ids": ["ea17e42f1e5c013f19df86ab5dd5bbd3"], "statement_hash": "1b8762d7a8854db667b38eb263cede7da41b8bbc88da6ea9b1f221dfb17c0984", "relations": [{"rule": 2, "type": "equivalent", "target": "2d1a06763cb4208ac96eb34b3355726e", "evidence": {"same_day": true, "patch_ids": ["ea17e42f1e5c013f19df86ab5dd5bbd3"], "statement_hash": "1b8762d7a8854db667b38eb263cede7da41b8bbc88da6ea9b1f221dfb17c0984"}}, {"rule": 2, "type": "equivalent", "target": "449946c8d62b40b481baae738d1e69e8", "evidence": {"same_day": true, "patch_ids": ["ea17e42f1e5c013f19df86ab5dd5bbd3"], "statement_hash": "1b8762d7a8854db667b38eb263cede7da41b8bbc88da6ea9b1f221dfb17c0984"}}, {"rule": 2, "type": "equivalent", "target": "cbb5216f1f2e2ea274d78d328d30fa6e", "evidence": {"same_day": true, "patch_ids": ["ea17e42f1e5c013f19df86ab5dd5bbd3"], "statement_hash": "1b8762d7a8854db667b38eb263cede7da41b8bbc88da6ea9b1f221dfb17c0984"}}, {"rule": 2, "type": "equivalent", "target": "ce7c03f6cfdbf40d14e4117cea7377cc", "evidence": {"same_day": true, "patch_ids": ["ea17e42f1e5c013f19df86ab5dd5bbd3"], "statement_hash": "1b8762d7a8854db667b38eb263cede7da41b8bbc88da6ea9b1f221dfb17c0984"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cbb5216f1f2e2ea274d78d328d30fa6e", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "确保对启用了 RLS 的父表执行 COPY TO 时不会从子表中复制任何行", "evidence": {"same_day": true, "patch_ids": ["ea17e42f1e5c013f19df86ab5dd5bbd3"], "statement_hash": "1b8762d7a8854db667b38eb263cede7da41b8bbc88da6ea9b1f221dfb17c0984"}, "url": "/docs/compare/?release=14.8#14.8-6d35fdbe764472e7", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "449946c8d62b40b481baae738d1e69e8", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "确保对启用了 RLS 的父表执行 COPY TO 时不会从子表中复制任何行", "evidence": {"same_day": true, "patch_ids": ["ea17e42f1e5c013f19df86ab5dd5bbd3"], "statement_hash": "1b8762d7a8854db667b38eb263cede7da41b8bbc88da6ea9b1f221dfb17c0984"}, "url": "/docs/compare/?release=13.11#13.11-b881758ed0578d13", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "2d1a06763cb4208ac96eb34b3355726e", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "确保对启用了 RLS 的父表执行 COPY TO 时不会从子表中复制任何行", "evidence": {"same_day": true, "patch_ids": ["ea17e42f1e5c013f19df86ab5dd5bbd3"], "statement_hash": "1b8762d7a8854db667b38eb263cede7da41b8bbc88da6ea9b1f221dfb17c0984"}, "url": "/docs/compare/?release=12.15#12.15-d8c75b8b52c46d6b", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "ce7c03f6cfdbf40d14e4117cea7377cc", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "确保对启用了 RLS 的父表执行 COPY TO 时不会从子表中复制任何行", "evidence": {"same_day": true, "patch_ids": ["ea17e42f1e5c013f19df86ab5dd5bbd3"], "statement_hash": "1b8762d7a8854db667b38eb263cede7da41b8bbc88da6ea9b1f221dfb17c0984"}, "url": "/docs/compare/?release=11.20#11.20-f3f047bda3e6f3d7", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-dabf7008d74a2857", "cves": [], "html": "<p>避免在向 <code>array_position()</code> 或 <code>array_positions()</code> 传递空数组时可能发生的崩溃（Tom Lane）<a href=\"https://postgr.es/c/ccb479e76\">§</a></p>", "text": "避免在向 array_position() 或 array_positions() 传递空数组时可能发生的崩溃（Tom Lane）§", "title": "避免在向 array_position() 或 array_positions() 传递空数组时可能发生的崩溃", "commits": ["ccb479e76"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "db7cb24e4169e1035ae5ce897de64fee5412a8f3f66202e797856199b55ed6a6", "section_path": ["变更"], "commit_groups": [["4624aad61", "4c40995f6", "580df5078", "9a72f499a", "ccb479e76", "d5de344a5"]], "identity_text": "Avoid possible crash when array_position() or array_positions() is passed an empty array (Tom Lane)", "commit_aliases": ["4624aad61", "4c40995f6", "580df5078", "9a72f499a", "ccb479e76", "d5de344a5"], "source_commits": ["ccb479e76"], "source_entry_id": "15.3/changes/014", "db_id": "973e4ae19d041324caa626c89d40c211", "patch_ids": ["4455c8e523a7db204d3fc7106f9506fd"], "statement_hash": "b67c92a26ae8fe45e899e483d86e351fc85979b4b5030f6cdbe01ae9242c7e7b", "relations": [{"rule": 2, "type": "equivalent", "target": "23ad29df09bf08b99e55b59b1587cd7b", "evidence": {"same_day": true, "patch_ids": ["4455c8e523a7db204d3fc7106f9506fd"], "statement_hash": "b67c92a26ae8fe45e899e483d86e351fc85979b4b5030f6cdbe01ae9242c7e7b"}}, {"rule": 2, "type": "equivalent", "target": "35b705956aaa0d3b76a4b6acc9f02265", "evidence": {"same_day": true, "patch_ids": ["4455c8e523a7db204d3fc7106f9506fd"], "statement_hash": "b67c92a26ae8fe45e899e483d86e351fc85979b4b5030f6cdbe01ae9242c7e7b"}}, {"rule": 2, "type": "equivalent", "target": "687ffa770da8af0beca0970c5eef0259", "evidence": {"same_day": true, "patch_ids": ["4455c8e523a7db204d3fc7106f9506fd"], "statement_hash": "b67c92a26ae8fe45e899e483d86e351fc85979b4b5030f6cdbe01ae9242c7e7b"}}, {"rule": 2, "type": "equivalent", "target": "ae8e329011c9f784b3503e90fba6ba29", "evidence": {"same_day": true, "patch_ids": ["4455c8e523a7db204d3fc7106f9506fd"], "statement_hash": "b67c92a26ae8fe45e899e483d86e351fc85979b4b5030f6cdbe01ae9242c7e7b"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "23ad29df09bf08b99e55b59b1587cd7b", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免在向 array_position() 或 array_positions() 传递空数组时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["4455c8e523a7db204d3fc7106f9506fd"], "statement_hash": "b67c92a26ae8fe45e899e483d86e351fc85979b4b5030f6cdbe01ae9242c7e7b"}, "url": "/docs/compare/?release=14.8#14.8-9b8697d58cdd38a4", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "35b705956aaa0d3b76a4b6acc9f02265", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "避免在向 array_position() 或 array_positions() 传递空数组时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["4455c8e523a7db204d3fc7106f9506fd"], "statement_hash": "b67c92a26ae8fe45e899e483d86e351fc85979b4b5030f6cdbe01ae9242c7e7b"}, "url": "/docs/compare/?release=13.11#13.11-9d6d92a9362be8fb", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "ae8e329011c9f784b3503e90fba6ba29", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "避免在向 array_position() 或 array_positions() 传递空数组时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["4455c8e523a7db204d3fc7106f9506fd"], "statement_hash": "b67c92a26ae8fe45e899e483d86e351fc85979b4b5030f6cdbe01ae9242c7e7b"}, "url": "/docs/compare/?release=12.15#12.15-2aedc72f15621e7e", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "687ffa770da8af0beca0970c5eef0259", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "避免在向 array_position() 或 array_positions() 传递空数组时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["4455c8e523a7db204d3fc7106f9506fd"], "statement_hash": "b67c92a26ae8fe45e899e483d86e351fc85979b4b5030f6cdbe01ae9242c7e7b"}, "url": "/docs/compare/?release=11.20#11.20-8f7845f98ab352f0", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-5c0d9dcdec13e6a2", "cves": [], "html": "<p>修复 <code>to_char()</code> 中可能的越界读取问题（Tom Lane）<a href=\"https://postgr.es/c/a67c75f82\">§</a></p>\n<p>运气不好的情况下，这可能导致服务器崩溃。</p>", "text": "修复 to_char() 中可能的越界读取问题（Tom Lane）§ 运气不好的情况下，这可能导致服务器崩溃。", "title": "修复 to_char() 中可能的越界读取问题", "commits": ["a67c75f82"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "0fd7f52b696a34392ce8ead0114cc61005cb0d7eb9ab7e9b7c22da01ae973c77", "section_path": ["变更"], "commit_groups": [["386a26023", "6d3a9a60f", "7cac19105", "8e33fb9ef", "a67c75f82", "b081fe419"]], "identity_text": "Fix possible out-of-bounds fetch in to_char() (Tom Lane) With bad luck this could have resulted in a server crash.", "commit_aliases": ["386a26023", "6d3a9a60f", "7cac19105", "8e33fb9ef", "a67c75f82", "b081fe419"], "source_commits": ["a67c75f82"], "source_entry_id": "15.3/changes/015", "db_id": "42ba019016698c769bb250dee594a7e0", "patch_ids": ["83d04b0a28fd2fc694f76f488cd7da9e"], "statement_hash": "7bc935959f77f68b172e7eb458aeeea0747d4974184870152adee44d23e91e9a", "relations": [{"rule": 2, "type": "equivalent", "target": "20dfa9dc183926770815330b4aa5faf8", "evidence": {"same_day": true, "patch_ids": ["83d04b0a28fd2fc694f76f488cd7da9e"], "statement_hash": "7bc935959f77f68b172e7eb458aeeea0747d4974184870152adee44d23e91e9a"}}, {"rule": 2, "type": "equivalent", "target": "796e34e4912d7246340ca061a7556409", "evidence": {"same_day": true, "patch_ids": ["83d04b0a28fd2fc694f76f488cd7da9e"], "statement_hash": "7bc935959f77f68b172e7eb458aeeea0747d4974184870152adee44d23e91e9a"}}, {"rule": 2, "type": "equivalent", "target": "827b035a1381bf1e58cb6854bc638f58", "evidence": {"same_day": true, "patch_ids": ["83d04b0a28fd2fc694f76f488cd7da9e"], "statement_hash": "7bc935959f77f68b172e7eb458aeeea0747d4974184870152adee44d23e91e9a"}}, {"rule": 2, "type": "equivalent", "target": "d93e8b82ca536ee3ddfff831e47aced5", "evidence": {"same_day": true, "patch_ids": ["83d04b0a28fd2fc694f76f488cd7da9e"], "statement_hash": "7bc935959f77f68b172e7eb458aeeea0747d4974184870152adee44d23e91e9a"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d93e8b82ca536ee3ddfff831e47aced5", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复 to_char() 中可能的越界读取问题", "evidence": {"same_day": true, "patch_ids": ["83d04b0a28fd2fc694f76f488cd7da9e"], "statement_hash": "7bc935959f77f68b172e7eb458aeeea0747d4974184870152adee44d23e91e9a"}, "url": "/docs/compare/?release=14.8#14.8-f43d81003d16e898", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "827b035a1381bf1e58cb6854bc638f58", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复 to_char() 中可能的越界读取问题", "evidence": {"same_day": true, "patch_ids": ["83d04b0a28fd2fc694f76f488cd7da9e"], "statement_hash": "7bc935959f77f68b172e7eb458aeeea0747d4974184870152adee44d23e91e9a"}, "url": "/docs/compare/?release=13.11#13.11-51d458a3466ac845", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "796e34e4912d7246340ca061a7556409", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复 to_char() 中可能的越界读取问题", "evidence": {"same_day": true, "patch_ids": ["83d04b0a28fd2fc694f76f488cd7da9e"], "statement_hash": "7bc935959f77f68b172e7eb458aeeea0747d4974184870152adee44d23e91e9a"}, "url": "/docs/compare/?release=12.15#12.15-70991f3d92aa5be4", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "20dfa9dc183926770815330b4aa5faf8", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复 to_char() 中可能的越界读取问题", "evidence": {"same_day": true, "patch_ids": ["83d04b0a28fd2fc694f76f488cd7da9e"], "statement_hash": "7bc935959f77f68b172e7eb458aeeea0747d4974184870152adee44d23e91e9a"}, "url": "/docs/compare/?release=11.20#11.20-ed515097c408b626", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-082c0c1843541fb5", "cves": [], "html": "<p>避免 <code>translate()</code> 函数中的缓冲区越界读取（Daniil Anisimov）<a href=\"https://postgr.es/c/eae09137d\">§</a></p>\n<p>使用删除功能时，该函数可能会读取输入字符串之后的一个字节，从而产生少量崩溃风险。</p>", "text": "避免 translate() 函数中的缓冲区越界读取（Daniil Anisimov）§ 使用删除功能时，该函数可能会读取输入字符串之后的一个字节，从而产生少量崩溃风险。", "title": "避免 translate() 函数中的缓冲区越界读取", "commits": ["eae09137d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "3f52e105a4f7d4ebe4e051be6025a06b7e6050f8eb23fb5b241db5497011e894", "section_path": ["变更"], "commit_groups": [["1a9356f65", "3b37e8442", "b162660d3", "b1a9d8ef2", "d7056bc1c", "eae09137d"]], "identity_text": "Avoid buffer overread in translate() function (Daniil Anisimov) When using the deletion feature, the function might fetch the byte just after the input string, creating a small risk of crash.", "commit_aliases": ["1a9356f65", "3b37e8442", "b162660d3", "b1a9d8ef2", "d7056bc1c", "eae09137d"], "source_commits": ["eae09137d"], "source_entry_id": "15.3/changes/016", "db_id": "2765df33c378089f5b28ee5fce002ddb", "patch_ids": ["deb5c0456d728fddb238e37ce17fd180"], "statement_hash": "5042a154d65850f7697380651a938309e5decb7bcb057cc91bc56689825f84e7", "relations": [{"rule": 2, "type": "equivalent", "target": "17f660047a1a09494be5fc3da930508b", "evidence": {"same_day": true, "patch_ids": ["deb5c0456d728fddb238e37ce17fd180"], "statement_hash": "5042a154d65850f7697380651a938309e5decb7bcb057cc91bc56689825f84e7"}}, {"rule": 2, "type": "equivalent", "target": "38d375e0426a748c5f71658e410e489f", "evidence": {"same_day": true, "patch_ids": ["deb5c0456d728fddb238e37ce17fd180"], "statement_hash": "5042a154d65850f7697380651a938309e5decb7bcb057cc91bc56689825f84e7"}}, {"rule": 2, "type": "equivalent", "target": "96e4ac2e25f7ba95aa4affe03528f2a6", "evidence": {"same_day": true, "patch_ids": ["deb5c0456d728fddb238e37ce17fd180"], "statement_hash": "5042a154d65850f7697380651a938309e5decb7bcb057cc91bc56689825f84e7"}}, {"rule": 2, "type": "equivalent", "target": "cbd5a0460f97cc6201f037c9435f7600", "evidence": {"same_day": true, "patch_ids": ["deb5c0456d728fddb238e37ce17fd180"], "statement_hash": "5042a154d65850f7697380651a938309e5decb7bcb057cc91bc56689825f84e7"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cbd5a0460f97cc6201f037c9435f7600", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免 translate() 函数中的缓冲区越界读取", "evidence": {"same_day": true, "patch_ids": ["deb5c0456d728fddb238e37ce17fd180"], "statement_hash": "5042a154d65850f7697380651a938309e5decb7bcb057cc91bc56689825f84e7"}, "url": "/docs/compare/?release=14.8#14.8-72731c80332d3b00", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "17f660047a1a09494be5fc3da930508b", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "避免 translate() 函数中的缓冲区越界读取", "evidence": {"same_day": true, "patch_ids": ["deb5c0456d728fddb238e37ce17fd180"], "statement_hash": "5042a154d65850f7697380651a938309e5decb7bcb057cc91bc56689825f84e7"}, "url": "/docs/compare/?release=13.11#13.11-a561dbb220cd5c3a", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "96e4ac2e25f7ba95aa4affe03528f2a6", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "避免 translate() 函数中的缓冲区越界读取", "evidence": {"same_day": true, "patch_ids": ["deb5c0456d728fddb238e37ce17fd180"], "statement_hash": "5042a154d65850f7697380651a938309e5decb7bcb057cc91bc56689825f84e7"}, "url": "/docs/compare/?release=12.15#12.15-02d9d93e2133a6b3", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "38d375e0426a748c5f71658e410e489f", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "避免 translate() 函数中的缓冲区越界读取", "evidence": {"same_day": true, "patch_ids": ["deb5c0456d728fddb238e37ce17fd180"], "statement_hash": "5042a154d65850f7697380651a938309e5decb7bcb057cc91bc56689825f84e7"}, "url": "/docs/compare/?release=11.20#11.20-be0392ce3d1d6e39", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-a9fef064e4e779cc", "cves": [], "html": "<p>调整文本检索相关的字符分类逻辑，以正确检测当前区域设置是否为 <code>C</code>（Jeff Davis）<a href=\"https://postgr.es/c/8b87e9291\">§</a></p>\n<p>当数据库的默认排序规则使用 ICU 时，此代码会出现混乱。</p>", "text": "调整文本检索相关的字符分类逻辑，以正确检测当前区域设置是否为 C（Jeff Davis）§ 当数据库的默认排序规则使用 ICU 时，此代码会出现混乱。", "title": "调整文本检索相关的字符分类逻辑，以正确检测当前区域设置是否为 C", "commits": ["8b87e9291"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "6f27bf0f727152f29d258209c26d5c6bfc8029c3a60e8f0b4286b9e23e511c04", "section_path": ["变更"], "commit_groups": [["8b87e9291", "f413941f4"]], "identity_text": "Adjust text-search-related character classification logic to correctly detect whether the prevailing locale is C (Jeff Davis) This code got confused if the database's default collation uses ICU.", "commit_aliases": ["8b87e9291", "f413941f4"], "source_commits": ["8b87e9291"], "source_entry_id": "15.3/changes/017", "db_id": "f67b8a3bbd439a14e8b3a832aa34af29", "patch_ids": ["e0520b62386fba91b3f251044b666a8d"], "statement_hash": "3df0e2ec51ead27ba65abb9a67d9e4a5305e808ba24a052e01e0fdf053bfa700", "relations": [], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-e4694af72e99c38b", "cves": [], "html": "<p>避免在 <code>interval</code> 类型输入为空时可能发生的崩溃（Tom Lane）<a href=\"https://postgr.es/c/0ef65d0f5\">§</a></p>", "text": "避免在 interval 类型输入为空时可能发生的崩溃（Tom Lane）§", "title": "避免在 interval 类型输入为空时可能发生的崩溃", "commits": ["0ef65d0f5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "2f6a8a0b7d9d3e3ad1d13730ca75d445d7ffb3855b21fdc7b9e50b27dea97705", "section_path": ["变更"], "commit_groups": [["0ef65d0f5", "5e80d3515"]], "identity_text": "Avoid possible crash on empty input for type interval (Tom Lane)", "commit_aliases": ["0ef65d0f5", "5e80d3515"], "source_commits": ["0ef65d0f5"], "source_entry_id": "15.3/changes/018", "db_id": "ec1e66b73ef8a7fe42c939bdc9e14ffb", "patch_ids": ["18c9ef370e9680a199ab750221bf38a9"], "statement_hash": "0952497ed8c308c94133808990d90f6e8acba579456d3383a06545da777c0d85", "relations": [], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-96637ec50c5cafdd", "cves": [], "html": "<p>重新允许 ISO-8601 时间间隔字段中的指数表示法（Tom Lane）<a href=\"https://postgr.es/c/ded5ede27\">§</a></p>\n<p>像 <code>P0.1e10D</code> 这样的时间间隔输入并未被 ISO-8601 正式认可，但在版本 15 之前我们长期接受它，因此重新允许它。</p>", "text": "重新允许 ISO-8601 时间间隔字段中的指数表示法（Tom Lane）§ 像 P0.1e10D 这样的时间间隔输入并未被 ISO-8601 正式认可，但在版本 15 之前我们长期接受它，因此重新允许它。", "title": "重新允许 ISO-8601 时间间隔字段中的指数表示法", "commits": ["ded5ede27"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "5b48076cb9f6c74d30df3daa0d07c58d2d5de78cfb2e697735e13fdc4c8f1043", "section_path": ["变更"], "commit_groups": [["ded5ede27", "f0d0394e8"]], "identity_text": "Re-allow exponential notation in ISO-8601 interval fields (Tom Lane) Interval input like P0.1e10D isn't officially sanctioned by ISO-8601, but we accepted it for a long time before version 15, so re-allow it.", "commit_aliases": ["ded5ede27", "f0d0394e8"], "source_commits": ["ded5ede27"], "source_entry_id": "15.3/changes/019", "db_id": "fbd1b9a2c25a208c9c8082dd501c4a84", "patch_ids": ["dfa126705160f3a618066eb2d7fdaf74"], "statement_hash": "d6c039547411c35770c523415aeb2c4fd37ea901a08189f854600b5a4c46e43b", "relations": [], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-de4d189c7a073f93", "cves": [], "html": "<p>修复 JSON 字符串字面量中解析错误时的错误光标设置（Tom Lane）<a href=\"https://postgr.es/c/74a1a36d7\">§</a></p>\n<p>在 JSON 值中的字符串字面量中检测到语法错误的大多数情况下，未能正确设置错误光标。这至少会导致无用的错误消息（指向字符串之前的标记，而不是实际的问题位置），在 v14 及更高版本中甚至可能导致崩溃。</p>", "text": "修复 JSON 字符串字面量中解析错误时的错误光标设置（Tom Lane）§ 在 JSON 值中的字符串字面量中检测到语法错误的大多数情况下，未能正确设置错误光标。这至少会导致无用的错误消息（指向字符串之前的标记，而不是实际的问题位置），在 v14 及更高版本中甚至可能导致崩溃。", "title": "修复 JSON 字符串字面量中解析错误时的错误光标设置", "commits": ["74a1a36d7"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "58eb2067f28868a75bf8c1c6b59b5aeff063e743f45c8a8519c0e89dff5a64b0", "section_path": ["变更"], "commit_groups": [["0ee9d685d", "234941a3b", "25a7812cd", "52e9a7816", "74a1a36d7", "c25a929a6"]], "identity_text": "Fix error cursor setting for parse errors in JSON string literals (Tom Lane) Most cases in which a syntax error is detected in a string literal within a JSON value failed to set the error cursor appropriately. This led at least to an unhelpful error message (pointing to the token before the string, rather than the actual trouble spot), and could even result in a crash in v14 and later.", "commit_aliases": ["0ee9d685d", "234941a3b", "25a7812cd", "52e9a7816", "74a1a36d7", "c25a929a6"], "source_commits": ["74a1a36d7"], "source_entry_id": "15.3/changes/020", "db_id": "c06a74fd4edfe6b239665114b4479916", "patch_ids": ["3f2a73e9dc7dea963f44fcd6bf094317"], "statement_hash": "759d274dea4e87558dfd892bf07be6fba3b2a5cc22f07e6e541a6b439a516b9d", "relations": [{"rule": 2, "type": "equivalent", "target": "011f7040c014189a42164f343d31b3f8", "evidence": {"same_day": true, "patch_ids": ["3f2a73e9dc7dea963f44fcd6bf094317"], "statement_hash": "759d274dea4e87558dfd892bf07be6fba3b2a5cc22f07e6e541a6b439a516b9d"}}, {"rule": 2, "type": "equivalent", "target": "2175f0c6ed74b7a1a10f561f87bb703f", "evidence": {"same_day": true, "patch_ids": ["3f2a73e9dc7dea963f44fcd6bf094317"], "statement_hash": "759d274dea4e87558dfd892bf07be6fba3b2a5cc22f07e6e541a6b439a516b9d"}}, {"rule": 2, "type": "equivalent", "target": "93224a9aa64813edfe967e815740f49b", "evidence": {"same_day": true, "patch_ids": ["3f2a73e9dc7dea963f44fcd6bf094317"], "statement_hash": "759d274dea4e87558dfd892bf07be6fba3b2a5cc22f07e6e541a6b439a516b9d"}}, {"rule": 2, "type": "equivalent", "target": "ec18aa6893185a53716843926df09a2b", "evidence": {"same_day": true, "patch_ids": ["3f2a73e9dc7dea963f44fcd6bf094317"], "statement_hash": "759d274dea4e87558dfd892bf07be6fba3b2a5cc22f07e6e541a6b439a516b9d"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec18aa6893185a53716843926df09a2b", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复 JSON 字符串字面量中解析错误时的错误光标设置", "evidence": {"same_day": true, "patch_ids": ["3f2a73e9dc7dea963f44fcd6bf094317"], "statement_hash": "759d274dea4e87558dfd892bf07be6fba3b2a5cc22f07e6e541a6b439a516b9d"}, "url": "/docs/compare/?release=14.8#14.8-bca48db8726a99c0", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "011f7040c014189a42164f343d31b3f8", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复 JSON 字符串字面量中解析错误时的错误光标设置", "evidence": {"same_day": true, "patch_ids": ["3f2a73e9dc7dea963f44fcd6bf094317"], "statement_hash": "759d274dea4e87558dfd892bf07be6fba3b2a5cc22f07e6e541a6b439a516b9d"}, "url": "/docs/compare/?release=13.11#13.11-b8d4de91aa0b6768", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "2175f0c6ed74b7a1a10f561f87bb703f", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复 JSON 字符串字面量中解析错误时的错误光标设置", "evidence": {"same_day": true, "patch_ids": ["3f2a73e9dc7dea963f44fcd6bf094317"], "statement_hash": "759d274dea4e87558dfd892bf07be6fba3b2a5cc22f07e6e541a6b439a516b9d"}, "url": "/docs/compare/?release=12.15#12.15-f036166bdbd3cf03", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "93224a9aa64813edfe967e815740f49b", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复 JSON 字符串字面量中解析错误时的错误光标设置", "evidence": {"same_day": true, "patch_ids": ["3f2a73e9dc7dea963f44fcd6bf094317"], "statement_hash": "759d274dea4e87558dfd892bf07be6fba3b2a5cc22f07e6e541a6b439a516b9d"}, "url": "/docs/compare/?release=11.20#11.20-a6c8283774720574", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-f8d2e15008d51d0e", "cves": [], "html": "<p>修复由于 <code>vacuum_defer_cleanup_age</code> 大于当前 64 位 xid 而导致的数据损坏（Andres Freund）<a href=\"https://postgr.es/c/391f08fd6\">§</a></p>\n<p>在 v14 及更高版本中，使用非默认的 <code>vacuum_defer_cleanup_age</code> 设置时，可能会计算出一个非常大的 vacuum 清理范围 xid，导致 vacuum 删除仍然存活的行。v12 和 v13 存在同一问题的较轻形式，仅影响 GiST 索引，可能导致索引页被过早回收。</p>", "text": "修复由于 vacuum_defer_cleanup_age 大于当前 64 位 xid 而导致的数据损坏（Andres Freund）§ 在 v14 及更高版本中，使用非默认的 vacuum_defer_cleanup_age 设置时，可能会计算出一个非常大的 vacuum 清理范围 xid，导致 vacuum 删除仍然存活的行。v12 和 v13 存在同一问题的较轻形式，仅影响 GiST 索引，可能导致索引页被过早回收。", "title": "修复由于 vacuum_defer_cleanup_age 大于当前 64 位 xid 而导致的数据损坏", "commits": ["391f08fd6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "50bdfcc13809aa1b9dad019ca357ad0c6ce3a9ae8efc40b2d2ef5fe877182aa3", "section_path": ["变更"], "commit_groups": [["324281fd5", "391f08fd6", "3c92f7e9d", "be504a3e9", "e6d77f22c"]], "identity_text": "Fix data corruption due to vacuum_defer_cleanup_age being larger than the current 64-bit xid (Andres Freund) In v14 and later with non-default settings of vacuum_defer_cleanup_age, it was possible to compute a very large vacuum cleanup horizon xid, leading to vacuum removing rows that are still live. v12 and v13 have a lesser form of the same problem affecting only GiST indexes, which could lead to index pages getting recycled too early.", "commit_aliases": ["324281fd5", "391f08fd6", "3c92f7e9d", "be504a3e9", "e6d77f22c"], "source_commits": ["391f08fd6"], "source_entry_id": "15.3/changes/021", "db_id": "6b0cd3e6e2ce5e6dbc89609f87dc55a3", "patch_ids": ["5f113475de7f4cbeb15dd9744b0efdde"], "statement_hash": "22c997ba9ebf90a77bfbf02fc866b871405f0093e6018bb2a02b4857046f1aea", "relations": [{"rule": 2, "type": "equivalent", "target": "30355cf11a126489db8adee1759e41b4", "evidence": {"same_day": true, "patch_ids": ["5f113475de7f4cbeb15dd9744b0efdde"], "statement_hash": "22c997ba9ebf90a77bfbf02fc866b871405f0093e6018bb2a02b4857046f1aea"}}, {"rule": 2, "type": "equivalent", "target": "cf9db7a4fae117db38523e5806386977", "evidence": {"same_day": true, "patch_ids": ["5f113475de7f4cbeb15dd9744b0efdde"], "statement_hash": "22c997ba9ebf90a77bfbf02fc866b871405f0093e6018bb2a02b4857046f1aea"}}, {"rule": 2, "type": "equivalent", "target": "dcbc1306a22190afdf4b00ce5d7d5f0c", "evidence": {"same_day": true, "patch_ids": ["5f113475de7f4cbeb15dd9744b0efdde"], "statement_hash": "22c997ba9ebf90a77bfbf02fc866b871405f0093e6018bb2a02b4857046f1aea"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cf9db7a4fae117db38523e5806386977", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复由于 vacuum_defer_cleanup_age 大于当前 64 位 xid 而导致的数据损坏", "evidence": {"same_day": true, "patch_ids": ["5f113475de7f4cbeb15dd9744b0efdde"], "statement_hash": "22c997ba9ebf90a77bfbf02fc866b871405f0093e6018bb2a02b4857046f1aea"}, "url": "/docs/compare/?release=14.8#14.8-3e23bbb684394808", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "dcbc1306a22190afdf4b00ce5d7d5f0c", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复由于 vacuum_defer_cleanup_age 大于当前 64 位 xid 而导致的数据损坏", "evidence": {"same_day": true, "patch_ids": ["5f113475de7f4cbeb15dd9744b0efdde"], "statement_hash": "22c997ba9ebf90a77bfbf02fc866b871405f0093e6018bb2a02b4857046f1aea"}, "url": "/docs/compare/?release=13.11#13.11-f86cb6242b6e4a15", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "30355cf11a126489db8adee1759e41b4", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复由于 vacuum_defer_cleanup_age 大于当前 64 位 xid 而导致的数据损坏", "evidence": {"same_day": true, "patch_ids": ["5f113475de7f4cbeb15dd9744b0efdde"], "statement_hash": "22c997ba9ebf90a77bfbf02fc866b871405f0093e6018bb2a02b4857046f1aea"}, "url": "/docs/compare/?release=12.15#12.15-96172e8ada871f19", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}]}, {"id": "15.3-eda89d5629c34d44", "cves": [], "html": "<p>修复解析器在某些不正确嵌套聚合的情况下未能检测到的问题（Tom Lane）<a href=\"https://postgr.es/c/5fd61bdc1\">§</a></p>\n<p>这一疏忽可能导致执行器对本应作为无效查询被拒绝的查询执行失败。</p>", "text": "修复解析器在某些不正确嵌套聚合的情况下未能检测到的问题（Tom Lane）§ 这一疏忽可能导致执行器对本应作为无效查询被拒绝的查询执行失败。", "title": "修复解析器在某些不正确嵌套聚合的情况下未能检测到的问题", "commits": ["5fd61bdc1"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "e275a1b17adba9d177f2801b01bc203f4bc77c8ed6bf957aa2755ee8b015f876", "section_path": ["变更"], "commit_groups": [["0736b1131", "096e70805", "30dbdbe75", "5fd61bdc1", "62a91a1b0", "bc0bcce2e"]], "identity_text": "Fix parser's failure to detect some cases of improperly-nested aggregates (Tom Lane) This oversight could lead to executor failures for queries that should have been rejected as invalid.", "commit_aliases": ["0736b1131", "096e70805", "30dbdbe75", "5fd61bdc1", "62a91a1b0", "bc0bcce2e"], "source_commits": ["5fd61bdc1"], "source_entry_id": "15.3/changes/022", "db_id": "d53402b8e1e3e40e5e4319d7c6f6ca3e", "patch_ids": ["d6300fa481c7320270d2d5cab603dcea"], "statement_hash": "3f66fa7198ac5e6bcc36bdca2defb55ce3ce138b5cc552c85144a5c227d8021a", "relations": [{"rule": 2, "type": "equivalent", "target": "06b1816db70f004403e95cef0d5495a0", "evidence": {"same_day": true, "patch_ids": ["d6300fa481c7320270d2d5cab603dcea"], "statement_hash": "3f66fa7198ac5e6bcc36bdca2defb55ce3ce138b5cc552c85144a5c227d8021a"}}, {"rule": 2, "type": "equivalent", "target": "53c3980b660c6fb5ee80c0f166bd4d5f", "evidence": {"same_day": true, "patch_ids": ["d6300fa481c7320270d2d5cab603dcea"], "statement_hash": "3f66fa7198ac5e6bcc36bdca2defb55ce3ce138b5cc552c85144a5c227d8021a"}}, {"rule": 2, "type": "equivalent", "target": "7c89d7515cfedcaba7ba08164641ea3c", "evidence": {"same_day": true, "patch_ids": ["d6300fa481c7320270d2d5cab603dcea"], "statement_hash": "3f66fa7198ac5e6bcc36bdca2defb55ce3ce138b5cc552c85144a5c227d8021a"}}, {"rule": 2, "type": "equivalent", "target": "c3af7b2b882ac753f95ed9a581fb1e8d", "evidence": {"same_day": true, "patch_ids": ["d6300fa481c7320270d2d5cab603dcea"], "statement_hash": "3f66fa7198ac5e6bcc36bdca2defb55ce3ce138b5cc552c85144a5c227d8021a"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "53c3980b660c6fb5ee80c0f166bd4d5f", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复解析器在某些不正确嵌套聚合的情况下未能检测到的问题", "evidence": {"same_day": true, "patch_ids": ["d6300fa481c7320270d2d5cab603dcea"], "statement_hash": "3f66fa7198ac5e6bcc36bdca2defb55ce3ce138b5cc552c85144a5c227d8021a"}, "url": "/docs/compare/?release=14.8#14.8-ad7e9bd34599bbe2", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "06b1816db70f004403e95cef0d5495a0", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复解析器在某些不正确嵌套聚合的情况下未能检测到的问题", "evidence": {"same_day": true, "patch_ids": ["d6300fa481c7320270d2d5cab603dcea"], "statement_hash": "3f66fa7198ac5e6bcc36bdca2defb55ce3ce138b5cc552c85144a5c227d8021a"}, "url": "/docs/compare/?release=13.11#13.11-2d6c63818866ee99", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "c3af7b2b882ac753f95ed9a581fb1e8d", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复解析器在某些不正确嵌套聚合的情况下未能检测到的问题", "evidence": {"same_day": true, "patch_ids": ["d6300fa481c7320270d2d5cab603dcea"], "statement_hash": "3f66fa7198ac5e6bcc36bdca2defb55ce3ce138b5cc552c85144a5c227d8021a"}, "url": "/docs/compare/?release=12.15#12.15-a6fbad69d79500d7", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "7c89d7515cfedcaba7ba08164641ea3c", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复解析器在某些不正确嵌套聚合的情况下未能检测到的问题", "evidence": {"same_day": true, "patch_ids": ["d6300fa481c7320270d2d5cab603dcea"], "statement_hash": "3f66fa7198ac5e6bcc36bdca2defb55ce3ce138b5cc552c85144a5c227d8021a"}, "url": "/docs/compare/?release=11.20#11.20-552e5b060afe758a", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-a77638db60d565bb", "cves": [], "html": "<p>修复解析序列 <code>SEQUENCE NAME</code> 选项时的数据结构损坏（David Rowley）<a href=\"https://postgr.es/c/df567fbf6\">§</a></p>\n<p>如果事件触发器捕获了损坏的解析树，可能会导致问题。</p>", "text": "修复解析序列 SEQUENCE NAME 选项时的数据结构损坏（David Rowley）§ 如果事件触发器捕获了损坏的解析树，可能会导致问题。", "title": "修复解析序列 SEQUENCE NAME 选项时的数据结构损坏", "commits": ["df567fbf6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "73183d1aa1d0bb9d27d9d8f0deef50f94689fd37d6744e690afb6b91cc4b1521", "section_path": ["变更"], "commit_groups": [["07554c99d", "211016220", "33510bc64", "6c3b697b1", "8d684c445", "df567fbf6"]], "identity_text": "Fix data structure corruption during parsing of serial SEQUENCE NAME options (David Rowley) This can lead to trouble if an event trigger captures the corrupted parse tree.", "commit_aliases": ["07554c99d", "211016220", "33510bc64", "6c3b697b1", "8d684c445", "df567fbf6"], "source_commits": ["df567fbf6"], "source_entry_id": "15.3/changes/023", "db_id": "6e011e7f447811f62a240a5927735ef5", "patch_ids": ["20577bb544a78999e26c794c19aa22ee"], "statement_hash": "4da82752739994322857b57352eba94ec3179c3c5a8a7c35eda08c77e54b0688", "relations": [{"rule": 2, "type": "equivalent", "target": "089a89b2fe390283655ab9db44f908d1", "evidence": {"same_day": true, "patch_ids": ["20577bb544a78999e26c794c19aa22ee"], "statement_hash": "4da82752739994322857b57352eba94ec3179c3c5a8a7c35eda08c77e54b0688"}}, {"rule": 2, "type": "equivalent", "target": "239cb2b80a009ce791eaccbc53335e69", "evidence": {"same_day": true, "patch_ids": ["20577bb544a78999e26c794c19aa22ee"], "statement_hash": "4da82752739994322857b57352eba94ec3179c3c5a8a7c35eda08c77e54b0688"}}, {"rule": 2, "type": "equivalent", "target": "d48924d31fc38bc6deb76edcc5982ce2", "evidence": {"same_day": true, "patch_ids": ["20577bb544a78999e26c794c19aa22ee"], "statement_hash": "4da82752739994322857b57352eba94ec3179c3c5a8a7c35eda08c77e54b0688"}}, {"rule": 2, "type": "equivalent", "target": "d5de8c99c811408c416a392b8b155680", "evidence": {"same_day": true, "patch_ids": ["20577bb544a78999e26c794c19aa22ee"], "statement_hash": "4da82752739994322857b57352eba94ec3179c3c5a8a7c35eda08c77e54b0688"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d48924d31fc38bc6deb76edcc5982ce2", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复解析序列 SEQUENCE NAME 选项时的数据结构损坏", "evidence": {"same_day": true, "patch_ids": ["20577bb544a78999e26c794c19aa22ee"], "statement_hash": "4da82752739994322857b57352eba94ec3179c3c5a8a7c35eda08c77e54b0688"}, "url": "/docs/compare/?release=14.8#14.8-e336f640f84c70ef", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "d5de8c99c811408c416a392b8b155680", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复解析序列 SEQUENCE NAME 选项时的数据结构损坏", "evidence": {"same_day": true, "patch_ids": ["20577bb544a78999e26c794c19aa22ee"], "statement_hash": "4da82752739994322857b57352eba94ec3179c3c5a8a7c35eda08c77e54b0688"}, "url": "/docs/compare/?release=13.11#13.11-5747c907ccf1b36b", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "089a89b2fe390283655ab9db44f908d1", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复解析序列 SEQUENCE NAME 选项时的数据结构损坏", "evidence": {"same_day": true, "patch_ids": ["20577bb544a78999e26c794c19aa22ee"], "statement_hash": "4da82752739994322857b57352eba94ec3179c3c5a8a7c35eda08c77e54b0688"}, "url": "/docs/compare/?release=12.15#12.15-897e30472cca2329", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "239cb2b80a009ce791eaccbc53335e69", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复解析序列 SEQUENCE NAME 选项时的数据结构损坏", "evidence": {"same_day": true, "patch_ids": ["20577bb544a78999e26c794c19aa22ee"], "statement_hash": "4da82752739994322857b57352eba94ec3179c3c5a8a7c35eda08c77e54b0688"}, "url": "/docs/compare/?release=11.20#11.20-6e073e5213cd1a62", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-e5d2b98510c80c3a", "cves": [], "html": "<p>在将初始计划从一个节点移动到另一个节点时，正确更新计划节点的并行安全标记（Tom Lane）<a href=\"https://postgr.es/c/f4badbcf4\">§</a></p>\n<p>这一规划器疏忽可能导致运行时出现 <span>“<span>subplan was not initialized</span>”</span> 错误。</p>", "text": "在将初始计划从一个节点移动到另一个节点时，正确更新计划节点的并行安全标记（Tom Lane）§ 这一规划器疏忽可能导致运行时出现 “subplan was not initialized” 错误。", "title": "在将初始计划从一个节点移动到另一个节点时，正确更新计划节点的并行安全标记", "commits": ["f4badbcf4"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "cb641ecfa56925a229d7a47feb8a965b290e7e62e81054fec5b18ba7c0cd4358", "section_path": ["变更"], "commit_groups": [["0dd55ef9b", "60c8aeaf6", "88ceac5d7", "953ff99c2", "96c698e3f", "f4badbcf4"]], "identity_text": "Correctly update plan nodes' parallel-safety markings when moving initplans from one node to another (Tom Lane) This planner oversight could lead to subplan was not initialized errors at runtime.", "commit_aliases": ["0dd55ef9b", "60c8aeaf6", "88ceac5d7", "953ff99c2", "96c698e3f", "f4badbcf4"], "source_commits": ["f4badbcf4"], "source_entry_id": "15.3/changes/024", "db_id": "ffaf89064b0f0871ae314fa8e0ed2e36", "patch_ids": ["727e0090a5adf7c806e2df6d4a1eeb8a"], "statement_hash": "e984bb1d244554025881cdd30fa86bd1ed09185d7ad5c06efe4ea361189b0680", "relations": [{"rule": 2, "type": "equivalent", "target": "7fb3732885b8881b4fa8d8a7f2bcdd87", "evidence": {"same_day": true, "patch_ids": ["727e0090a5adf7c806e2df6d4a1eeb8a"], "statement_hash": "e984bb1d244554025881cdd30fa86bd1ed09185d7ad5c06efe4ea361189b0680"}}, {"rule": 2, "type": "equivalent", "target": "849f96b596b858da1e946fe0da532fcd", "evidence": {"same_day": true, "patch_ids": ["727e0090a5adf7c806e2df6d4a1eeb8a"], "statement_hash": "e984bb1d244554025881cdd30fa86bd1ed09185d7ad5c06efe4ea361189b0680"}}, {"rule": 2, "type": "equivalent", "target": "a7e9d9a1c47e43432d348c24d75f082d", "evidence": {"same_day": true, "patch_ids": ["727e0090a5adf7c806e2df6d4a1eeb8a"], "statement_hash": "e984bb1d244554025881cdd30fa86bd1ed09185d7ad5c06efe4ea361189b0680"}}, {"rule": 2, "type": "equivalent", "target": "d02b415218230b7698383e11674196ef", "evidence": {"same_day": true, "patch_ids": ["727e0090a5adf7c806e2df6d4a1eeb8a"], "statement_hash": "e984bb1d244554025881cdd30fa86bd1ed09185d7ad5c06efe4ea361189b0680"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a7e9d9a1c47e43432d348c24d75f082d", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在将初始计划从一个节点移动到另一个节点时，正确更新计划节点的并行安全标记", "evidence": {"same_day": true, "patch_ids": ["727e0090a5adf7c806e2df6d4a1eeb8a"], "statement_hash": "e984bb1d244554025881cdd30fa86bd1ed09185d7ad5c06efe4ea361189b0680"}, "url": "/docs/compare/?release=14.8#14.8-19a5ad6343a5a707", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "d02b415218230b7698383e11674196ef", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "在将初始计划从一个节点移动到另一个节点时，正确更新计划节点的并行安全标记", "evidence": {"same_day": true, "patch_ids": ["727e0090a5adf7c806e2df6d4a1eeb8a"], "statement_hash": "e984bb1d244554025881cdd30fa86bd1ed09185d7ad5c06efe4ea361189b0680"}, "url": "/docs/compare/?release=13.11#13.11-e3cf8629692290b9", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "849f96b596b858da1e946fe0da532fcd", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "在将初始计划从一个节点移动到另一个节点时，正确更新计划节点的并行安全标记", "evidence": {"same_day": true, "patch_ids": ["727e0090a5adf7c806e2df6d4a1eeb8a"], "statement_hash": "e984bb1d244554025881cdd30fa86bd1ed09185d7ad5c06efe4ea361189b0680"}, "url": "/docs/compare/?release=12.15#12.15-2a9d6e920f773d19", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "7fb3732885b8881b4fa8d8a7f2bcdd87", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "在将初始计划从一个节点移动到另一个节点时，正确更新计划节点的并行安全标记", "evidence": {"same_day": true, "patch_ids": ["727e0090a5adf7c806e2df6d4a1eeb8a"], "statement_hash": "e984bb1d244554025881cdd30fa86bd1ed09185d7ad5c06efe4ea361189b0680"}, "url": "/docs/compare/?release=11.20#11.20-97732aa49c8f8bf7", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-5ceafe3194abf4b5", "cves": [], "html": "<p>避免扩展统计代码中 PlaceHolderVar 的处理失败（Tom Lane）<a href=\"https://postgr.es/c/3b4594443\">§</a></p>\n<p>使用依赖类型的扩展统计可能会失败，并出现 <span>“<span>PlaceHolderVar found where not expected</span>”</span> 错误。</p>", "text": "避免扩展统计代码中 PlaceHolderVar 的处理失败（Tom Lane）§ 使用依赖类型的扩展统计可能会失败，并出现 “PlaceHolderVar found where not expected” 错误。", "title": "避免扩展统计代码中 PlaceHolderVar 的处理失败", "commits": ["3b4594443"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "45077bea69d8230c27bd48d9fa044a5aa76ab78757f61d85e2f59ebaf9a06a0b", "section_path": ["变更"], "commit_groups": [["3b4594443", "684ffac8c", "7c509f7e5"]], "identity_text": "Avoid failure with PlaceHolderVars in extended-statistics code (Tom Lane) Use of dependency-type extended statistics could fail with PlaceHolderVar found where not expected.", "commit_aliases": ["3b4594443", "684ffac8c", "7c509f7e5"], "source_commits": ["3b4594443"], "source_entry_id": "15.3/changes/025", "db_id": "84c82bf8f4505cc7c204d97ac9301986", "patch_ids": ["308e7562c55d1be3b31ab961ad2c56e6"], "statement_hash": "2d7f0ebccef22fc30a9ec2f8a48c1e8504a294b3d2e271ca83d6b2c0c8018678", "relations": [{"rule": 2, "type": "equivalent", "target": "68d2771e456199a6c43c5d4b254d8b75", "evidence": {"same_day": true, "patch_ids": ["308e7562c55d1be3b31ab961ad2c56e6"], "statement_hash": "2d7f0ebccef22fc30a9ec2f8a48c1e8504a294b3d2e271ca83d6b2c0c8018678"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "68d2771e456199a6c43c5d4b254d8b75", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免扩展统计代码中 PlaceHolderVar 的处理失败", "evidence": {"same_day": true, "patch_ids": ["308e7562c55d1be3b31ab961ad2c56e6"], "statement_hash": "2d7f0ebccef22fc30a9ec2f8a48c1e8504a294b3d2e271ca83d6b2c0c8018678"}, "url": "/docs/compare/?release=14.8#14.8-88669ebe3c10c2c9", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-7278d4c3e13bc5da", "cves": [], "html": "<p>修复对应用于子查询的 qual 子句能否在子查询内转换为窗口聚合<span>“<span>运行条件</span>”</span>的不正确测试（David Rowley）<a href=\"https://postgr.es/c/371e3daaa\">§</a></p>\n<p>此类子句中的 SubPlan 会导致断言失败或不正确的结果，其他一些不常见的情况也会如此。</p>", "text": "修复对应用于子查询的 qual 子句能否在子查询内转换为窗口聚合“运行条件”的不正确测试（David Rowley）§ 此类子句中的 SubPlan 会导致断言失败或不正确的结果，其他一些不常见的情况也会如此。", "title": "修复对应用于子查询的 qual 子句能否在子查询内转换为窗口聚合“运行条件”的不正确测试", "commits": ["371e3daaa"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "d2501aac553173fa5b18ee1f8ae083f4dc841154342653feb02346ca5d9e76bd", "section_path": ["变更"], "commit_groups": [["371e3daaa", "eb7d043c9"]], "identity_text": "Fix incorrect tests for whether a qual clause applied to a subquery can be transformed into a window aggregate run condition within the subquery (David Rowley) A SubPlan within such a clause would cause assertion failures or incorrect answers, as would some other unusual cases.", "commit_aliases": ["371e3daaa", "eb7d043c9"], "source_commits": ["371e3daaa"], "source_entry_id": "15.3/changes/026", "db_id": "d97844ccad78a1dfe07b473b0367b1b6", "patch_ids": ["7b3b07deec2ad0953353363c7f5a9cc2"], "statement_hash": "e2e42c04fea6e35894b27ac1c6de23807686b2058615f7d9573d80f80fce404b", "relations": [], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-1f4abf954dec8ba9", "cves": [], "html": "<p>当调用包含子查询时，禁用窗口聚合的逆转换优化（David Rowley）<a href=\"https://postgr.es/c/a9fa6d79a\">§</a></p>\n<p>此优化要求聚合的参数表达式具有可重复的结果，而子查询可能不满足此条件。</p>", "text": "当调用包含子查询时，禁用窗口聚合的逆转换优化（David Rowley）§ 此优化要求聚合的参数表达式具有可重复的结果，而子查询可能不满足此条件。", "title": "当调用包含子查询时，禁用窗口聚合的逆转换优化", "commits": ["a9fa6d79a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "436c555743dc70519f08948cd5ab2566e8fd721a67be5e52527370be091e934e", "section_path": ["变更"], "commit_groups": [["301eb3ee4", "4aa43ba21", "836c31ba5", "8d2a8581b", "a9fa6d79a", "ac55abd33"]], "identity_text": "Disable the inverse-transition optimization for window aggregates when the call contains sub-SELECTs (David Rowley) This optimization requires that the aggregate's argument expressions have repeatable results, which might not hold for a sub-SELECT.", "commit_aliases": ["301eb3ee4", "4aa43ba21", "836c31ba5", "8d2a8581b", "a9fa6d79a", "ac55abd33"], "source_commits": ["a9fa6d79a"], "source_entry_id": "15.3/changes/027", "db_id": "cb82550afe913d90eb17db3b8586927c", "patch_ids": ["cccfbcedb74d9ef5a5b8771bd7bcaec4"], "statement_hash": "f33c0e107621ba1344a8ab0b4fe36dd18f77cc3021f2241a682e748c4bab5b7a", "relations": [{"rule": 2, "type": "equivalent", "target": "1d8f4e5f70533c5e027042359d52b485", "evidence": {"same_day": true, "patch_ids": ["cccfbcedb74d9ef5a5b8771bd7bcaec4"], "statement_hash": "f33c0e107621ba1344a8ab0b4fe36dd18f77cc3021f2241a682e748c4bab5b7a"}}, {"rule": 2, "type": "equivalent", "target": "9deb05bc7f9d716eca3029fd98a60756", "evidence": {"same_day": true, "patch_ids": ["cccfbcedb74d9ef5a5b8771bd7bcaec4"], "statement_hash": "f33c0e107621ba1344a8ab0b4fe36dd18f77cc3021f2241a682e748c4bab5b7a"}}, {"rule": 2, "type": "equivalent", "target": "a5558058a3e10f9e68af8764a041cccc", "evidence": {"same_day": true, "patch_ids": ["cccfbcedb74d9ef5a5b8771bd7bcaec4"], "statement_hash": "f33c0e107621ba1344a8ab0b4fe36dd18f77cc3021f2241a682e748c4bab5b7a"}}, {"rule": 2, "type": "equivalent", "target": "e62b695b11f9e24e1ea0c66c4a7ae8e7", "evidence": {"same_day": true, "patch_ids": ["cccfbcedb74d9ef5a5b8771bd7bcaec4"], "statement_hash": "f33c0e107621ba1344a8ab0b4fe36dd18f77cc3021f2241a682e748c4bab5b7a"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a5558058a3e10f9e68af8764a041cccc", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "当调用包含子查询时，禁用窗口聚合的逆转换优化", "evidence": {"same_day": true, "patch_ids": ["cccfbcedb74d9ef5a5b8771bd7bcaec4"], "statement_hash": "f33c0e107621ba1344a8ab0b4fe36dd18f77cc3021f2241a682e748c4bab5b7a"}, "url": "/docs/compare/?release=14.8#14.8-083b42b9618c7d0e", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "1d8f4e5f70533c5e027042359d52b485", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "当调用包含子查询时，禁用窗口聚合的逆转换优化", "evidence": {"same_day": true, "patch_ids": ["cccfbcedb74d9ef5a5b8771bd7bcaec4"], "statement_hash": "f33c0e107621ba1344a8ab0b4fe36dd18f77cc3021f2241a682e748c4bab5b7a"}, "url": "/docs/compare/?release=13.11#13.11-c6bfd57aa9016f23", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "e62b695b11f9e24e1ea0c66c4a7ae8e7", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "当调用包含子查询时，禁用窗口聚合的逆转换优化", "evidence": {"same_day": true, "patch_ids": ["cccfbcedb74d9ef5a5b8771bd7bcaec4"], "statement_hash": "f33c0e107621ba1344a8ab0b4fe36dd18f77cc3021f2241a682e748c4bab5b7a"}, "url": "/docs/compare/?release=12.15#12.15-900b70983fa1cd80", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "9deb05bc7f9d716eca3029fd98a60756", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "当调用包含子查询时，禁用窗口聚合的逆转换优化", "evidence": {"same_day": true, "patch_ids": ["cccfbcedb74d9ef5a5b8771bd7bcaec4"], "statement_hash": "f33c0e107621ba1344a8ab0b4fe36dd18f77cc3021f2241a682e748c4bab5b7a"}, "url": "/docs/compare/?release=11.20#11.20-dbc7abcf4e4acb6a", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-7fa257be8b41ff34", "cves": [], "html": "<p>修复嵌套 <code>ARRAY[]</code> 构造在执行中的疏忽（Alexander Lakhin，Tom Lane）<a href=\"https://postgr.es/c/7c4873438\">§</a></p>\n<p>正确检测结果数组所需总空间的溢出，避免因输出分配不足而可能导致的崩溃。同时确保结果数组中任何尾部填充空间被清零；虽然在大多数情况下留下垃圾数据是无害的，但可能会导致后续出现奇怪的行为。</p>", "text": "修复嵌套 ARRAY[] 构造在执行中的疏忽（Alexander Lakhin，Tom Lane）§ 正确检测结果数组所需总空间的溢出，避免因输出分配不足而可能导致的崩溃。同时确保结果数组中任何尾部填充空间被清零；虽然在大多数情况下留下垃圾数据是无害的，但可能会导致后续出现奇怪的行为。", "title": "修复嵌套 ARRAY[] 构造在执行中的疏忽", "commits": ["7c4873438"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "88336cb5000bac24c47913b279dacd71d72aba3b265e02394bd3105432332acc", "section_path": ["变更"], "commit_groups": [["11213d446", "1bbbe1460", "554841699", "7c4873438", "ad5fe7420", "ae320fc21"]], "identity_text": "Fix oversights in execution of nested ARRAY[] constructs (Alexander Lakhin, Tom Lane) Correctly detect overflow of the total space needed for the result array, avoiding a possible crash due to undersized output allocation. Also ensure that any trailing padding space in the result array is zeroed; while leaving garbage there is harmless for most purposes, it can result in odd behavior later.", "commit_aliases": ["11213d446", "1bbbe1460", "554841699", "7c4873438", "ad5fe7420", "ae320fc21"], "source_commits": ["7c4873438"], "source_entry_id": "15.3/changes/028", "db_id": "27ebf66e713fcbf5eaa899f1015b9cad", "patch_ids": ["d2c06da49e0e8d9f89c7dc0b579f04e5"], "statement_hash": "905aa2e24b2b961fe3ad28165dfc3707f3d1424c7cf450a462cf3766b36c76e6", "relations": [{"rule": 2, "type": "equivalent", "target": "25a6fbbdfcda6ad855122714015c53fb", "evidence": {"same_day": true, "patch_ids": ["d2c06da49e0e8d9f89c7dc0b579f04e5"], "statement_hash": "905aa2e24b2b961fe3ad28165dfc3707f3d1424c7cf450a462cf3766b36c76e6"}}, {"rule": 2, "type": "equivalent", "target": "4cbe6ebd610dfb820758ffd174eb8a42", "evidence": {"same_day": true, "patch_ids": ["d2c06da49e0e8d9f89c7dc0b579f04e5"], "statement_hash": "905aa2e24b2b961fe3ad28165dfc3707f3d1424c7cf450a462cf3766b36c76e6"}}, {"rule": 2, "type": "equivalent", "target": "960f8904ef3ba00666d465ce6b396456", "evidence": {"same_day": true, "patch_ids": ["d2c06da49e0e8d9f89c7dc0b579f04e5"], "statement_hash": "905aa2e24b2b961fe3ad28165dfc3707f3d1424c7cf450a462cf3766b36c76e6"}}, {"rule": 2, "type": "equivalent", "target": "982406d3827f5ef6b90775d657656ffc", "evidence": {"same_day": true, "patch_ids": ["d2c06da49e0e8d9f89c7dc0b579f04e5"], "statement_hash": "905aa2e24b2b961fe3ad28165dfc3707f3d1424c7cf450a462cf3766b36c76e6"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "982406d3827f5ef6b90775d657656ffc", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复嵌套 ARRAY[] 构造在执行中的疏忽", "evidence": {"same_day": true, "patch_ids": ["d2c06da49e0e8d9f89c7dc0b579f04e5"], "statement_hash": "905aa2e24b2b961fe3ad28165dfc3707f3d1424c7cf450a462cf3766b36c76e6"}, "url": "/docs/compare/?release=14.8#14.8-6f817e07d77157d3", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "25a6fbbdfcda6ad855122714015c53fb", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复嵌套 ARRAY[] 构造在执行中的疏忽", "evidence": {"same_day": true, "patch_ids": ["d2c06da49e0e8d9f89c7dc0b579f04e5"], "statement_hash": "905aa2e24b2b961fe3ad28165dfc3707f3d1424c7cf450a462cf3766b36c76e6"}, "url": "/docs/compare/?release=13.11#13.11-f363ddbf6f327f97", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "960f8904ef3ba00666d465ce6b396456", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复嵌套 ARRAY[] 构造在执行中的疏忽", "evidence": {"same_day": true, "patch_ids": ["d2c06da49e0e8d9f89c7dc0b579f04e5"], "statement_hash": "905aa2e24b2b961fe3ad28165dfc3707f3d1424c7cf450a462cf3766b36c76e6"}, "url": "/docs/compare/?release=12.15#12.15-09c2359bd6f7f78e", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "4cbe6ebd610dfb820758ffd174eb8a42", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复嵌套 ARRAY[] 构造在执行中的疏忽", "evidence": {"same_day": true, "patch_ids": ["d2c06da49e0e8d9f89c7dc0b579f04e5"], "statement_hash": "905aa2e24b2b961fe3ad28165dfc3707f3d1424c7cf450a462cf3766b36c76e6"}, "url": "/docs/compare/?release=11.20#11.20-eb92a9cbdb67efe2", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-23c94eb425f6fbc2", "cves": [], "html": "<p>防止在更新复合类型域数组列中的字段时发生崩溃（Dmitry Dolgov）<a href=\"https://postgr.es/c/c53ed26ea\">§</a></p>", "text": "防止在更新复合类型域数组列中的字段时发生崩溃（Dmitry Dolgov）§", "title": "防止在更新复合类型域数组列中的字段时发生崩溃", "commits": ["c53ed26ea"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "56edb09b9b04b389fbcf7a78cfe6528e233bc4559485ce44d722d3a856046b82", "section_path": ["变更"], "commit_groups": [["048caf8d7", "064eb89e8", "7428aecdd", "9b104a27c", "c53ed26ea"]], "identity_text": "Prevent crash when updating a field within an array-of-domain-over-composite-type column (Dmitry Dolgov)", "commit_aliases": ["048caf8d7", "064eb89e8", "7428aecdd", "9b104a27c", "c53ed26ea"], "source_commits": ["c53ed26ea"], "source_entry_id": "15.3/changes/029", "db_id": "f645bf4b32e97cdd6adbc59a1f698958", "patch_ids": ["e0f95683d974853e9312af0c52c66fe2"], "statement_hash": "07016b2fd3d12cfefe697ebc5edea90338796d1ba02c54109cb2fd89cd7c1042", "relations": [{"rule": 2, "type": "equivalent", "target": "549ef11122850bb599962a74575704ca", "evidence": {"same_day": true, "patch_ids": ["e0f95683d974853e9312af0c52c66fe2"], "statement_hash": "07016b2fd3d12cfefe697ebc5edea90338796d1ba02c54109cb2fd89cd7c1042"}}, {"rule": 2, "type": "equivalent", "target": "6bddca695ecef1fb20790d6aafc3cf02", "evidence": {"same_day": true, "patch_ids": ["e0f95683d974853e9312af0c52c66fe2"], "statement_hash": "07016b2fd3d12cfefe697ebc5edea90338796d1ba02c54109cb2fd89cd7c1042"}}, {"rule": 2, "type": "equivalent", "target": "869674182a839c1702b68511b17ecf7b", "evidence": {"same_day": true, "patch_ids": ["e0f95683d974853e9312af0c52c66fe2"], "statement_hash": "07016b2fd3d12cfefe697ebc5edea90338796d1ba02c54109cb2fd89cd7c1042"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "869674182a839c1702b68511b17ecf7b", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "防止在更新复合类型域数组列中的字段时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["e0f95683d974853e9312af0c52c66fe2"], "statement_hash": "07016b2fd3d12cfefe697ebc5edea90338796d1ba02c54109cb2fd89cd7c1042"}, "url": "/docs/compare/?release=14.8#14.8-81433c79ab4ce58c", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "6bddca695ecef1fb20790d6aafc3cf02", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "防止在更新复合类型域数组列中的字段时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["e0f95683d974853e9312af0c52c66fe2"], "statement_hash": "07016b2fd3d12cfefe697ebc5edea90338796d1ba02c54109cb2fd89cd7c1042"}, "url": "/docs/compare/?release=13.11#13.11-1468e06691537dd7", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "549ef11122850bb599962a74575704ca", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "防止在更新复合类型域数组列中的字段时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["e0f95683d974853e9312af0c52c66fe2"], "statement_hash": "07016b2fd3d12cfefe697ebc5edea90338796d1ba02c54109cb2fd89cd7c1042"}, "url": "/docs/compare/?release=12.15#12.15-a6aa37832cc5f3ad", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}]}, {"id": "15.3-4db050b84ff5b624", "cves": [], "html": "<p>修复布尔列分区剪枝逻辑（David Rowley）<a href=\"https://postgr.es/c/0c09160e1\">§</a></p>\n<p>使用 <code>boolcol IS NOT TRUE</code> 条件进行裁剪时处理不正确，可能导致不返回 <code>boolcol</code> 为 NULL 的行。此外，按 <code>NOT boolcol</code> 进行分区这种不太可能的情况也处理不正确。</p>", "text": "修复布尔列分区剪枝逻辑（David Rowley）§ 使用 boolcol IS NOT TRUE 条件进行裁剪时处理不正确，可能导致不返回 boolcol 为 NULL 的行。此外，按 NOT boolcol 进行分区这种不太可能的情况也处理不正确。", "title": "修复布尔列分区剪枝逻辑", "commits": ["0c09160e1"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "0d80b663ec9b2f3a03efd6ad612474276f11710b5351565d0b902a9c4f920e60", "section_path": ["变更"], "commit_groups": [["0b2e77ce2", "0c09160e1", "1c19e2863", "6848f0c67", "ae85fb828", "e0693faf7"]], "identity_text": "Fix partition pruning logic for partitioning on boolean columns (David Rowley) Pruning with a condition like boolcol IS NOT TRUE was done incorrectly, leading to possibly not returning rows in which boolcol is NULL. Also, the rather unlikely case of partitioning on NOT boolcol was handled incorrectly.", "commit_aliases": ["0b2e77ce2", "0c09160e1", "1c19e2863", "6848f0c67", "ae85fb828", "e0693faf7"], "source_commits": ["0c09160e1"], "source_entry_id": "15.3/changes/030", "db_id": "6d65c1f40a967d0d2b940293a8421050", "patch_ids": ["afb6db5085d7c069569f3eb622a3044e"], "statement_hash": "eb093634d0788d67a7309dce4b3c41f6fd0725d390dcab449c144882997fe449", "relations": [{"rule": 2, "type": "equivalent", "target": "92f615053436eb4195c3550db98e38cd", "evidence": {"same_day": true, "patch_ids": ["afb6db5085d7c069569f3eb622a3044e"], "statement_hash": "eb093634d0788d67a7309dce4b3c41f6fd0725d390dcab449c144882997fe449"}}, {"rule": 2, "type": "equivalent", "target": "9bd939b184bce88135141189e00dc7cc", "evidence": {"same_day": true, "patch_ids": ["afb6db5085d7c069569f3eb622a3044e"], "statement_hash": "eb093634d0788d67a7309dce4b3c41f6fd0725d390dcab449c144882997fe449"}}, {"rule": 2, "type": "equivalent", "target": "c58e0fbfe9febc3a4f369aac5956281e", "evidence": {"same_day": true, "patch_ids": ["afb6db5085d7c069569f3eb622a3044e"], "statement_hash": "eb093634d0788d67a7309dce4b3c41f6fd0725d390dcab449c144882997fe449"}}, {"rule": 2, "type": "equivalent", "target": "fd67cf90d3fcb7e458421cafa43eafc4", "evidence": {"same_day": true, "patch_ids": ["afb6db5085d7c069569f3eb622a3044e"], "statement_hash": "eb093634d0788d67a7309dce4b3c41f6fd0725d390dcab449c144882997fe449"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9bd939b184bce88135141189e00dc7cc", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复布尔列分区剪枝逻辑", "evidence": {"same_day": true, "patch_ids": ["afb6db5085d7c069569f3eb622a3044e"], "statement_hash": "eb093634d0788d67a7309dce4b3c41f6fd0725d390dcab449c144882997fe449"}, "url": "/docs/compare/?release=14.8#14.8-fa6d5f71e4ef61c4", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "92f615053436eb4195c3550db98e38cd", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复布尔列分区剪枝逻辑", "evidence": {"same_day": true, "patch_ids": ["afb6db5085d7c069569f3eb622a3044e"], "statement_hash": "eb093634d0788d67a7309dce4b3c41f6fd0725d390dcab449c144882997fe449"}, "url": "/docs/compare/?release=13.11#13.11-134a682cce50402e", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "fd67cf90d3fcb7e458421cafa43eafc4", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复布尔列分区剪枝逻辑", "evidence": {"same_day": true, "patch_ids": ["afb6db5085d7c069569f3eb622a3044e"], "statement_hash": "eb093634d0788d67a7309dce4b3c41f6fd0725d390dcab449c144882997fe449"}, "url": "/docs/compare/?release=12.15#12.15-2ab0035d4b6ef2c9", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "c58e0fbfe9febc3a4f369aac5956281e", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复布尔列分区剪枝逻辑", "evidence": {"same_day": true, "patch_ids": ["afb6db5085d7c069569f3eb622a3044e"], "statement_hash": "eb093634d0788d67a7309dce4b3c41f6fd0725d390dcab449c144882997fe449"}, "url": "/docs/compare/?release=11.20#11.20-0ca3827fa30ae1bf", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-b7aa7199233c8c54", "cves": [], "html": "<p>修复并行哈希连接中每批次清理时的竞态条件（Thomas Munro，Melanie Plageman）<a href=\"https://postgr.es/c/c03c6e8cf\">§</a></p>\n<p>在时机不巧且 <code>parallel_leader_participation</code> = <code>off</code>（非默认值）的情况下，可能发生崩溃。</p>", "text": "修复并行哈希连接中每批次清理时的竞态条件（Thomas Munro，Melanie Plageman）§ 在时机不巧且 parallel_leader_participation = off（非默认值）的情况下，可能发生崩溃。", "title": "修复并行哈希连接中每批次清理时的竞态条件", "commits": ["c03c6e8cf"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "688fc0fb9d2db02855627c3f2657a9791950e5a1214e975214ee34251be53586", "section_path": ["变更"], "commit_groups": [["1b9e42e82", "44d44aa97", "6e94d62e3", "8d578b9b2", "c03c6e8cf", "ef16d2724"]], "identity_text": "Fix race condition in per-batch cleanup during parallel hash join (Thomas Munro, Melanie Plageman) A crash was possible given unlucky timing and parallel_leader_participation = off (which is not the default).", "commit_aliases": ["1b9e42e82", "44d44aa97", "6e94d62e3", "8d578b9b2", "c03c6e8cf", "ef16d2724"], "source_commits": ["c03c6e8cf"], "source_entry_id": "15.3/changes/031", "db_id": "7fdf09fa6adf54819f91c07d7aa02b6b", "patch_ids": ["a19f0df9788b771ee1f8b103c1441c26"], "statement_hash": "9cbd2c361b7a0b18b8f98d529c719b2cfd44cdc57934b2a35c414cde1ca58f89", "relations": [{"rule": 2, "type": "equivalent", "target": "411ea7caf9e313b814dd38d89c5b90d3", "evidence": {"same_day": true, "patch_ids": ["a19f0df9788b771ee1f8b103c1441c26"], "statement_hash": "9cbd2c361b7a0b18b8f98d529c719b2cfd44cdc57934b2a35c414cde1ca58f89"}}, {"rule": 2, "type": "equivalent", "target": "4483d8fbb61ea580cc454030eb5b9e4b", "evidence": {"same_day": true, "patch_ids": ["a19f0df9788b771ee1f8b103c1441c26"], "statement_hash": "9cbd2c361b7a0b18b8f98d529c719b2cfd44cdc57934b2a35c414cde1ca58f89"}}, {"rule": 2, "type": "equivalent", "target": "8827bf667cb77dab33bd4bcbb650d846", "evidence": {"same_day": true, "patch_ids": ["a19f0df9788b771ee1f8b103c1441c26"], "statement_hash": "9cbd2c361b7a0b18b8f98d529c719b2cfd44cdc57934b2a35c414cde1ca58f89"}}, {"rule": 2, "type": "equivalent", "target": "8ad49ab3009fe3f92288a824df5716a2", "evidence": {"same_day": true, "patch_ids": ["a19f0df9788b771ee1f8b103c1441c26"], "statement_hash": "9cbd2c361b7a0b18b8f98d529c719b2cfd44cdc57934b2a35c414cde1ca58f89"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4483d8fbb61ea580cc454030eb5b9e4b", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复并行哈希连接中每批次清理时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["a19f0df9788b771ee1f8b103c1441c26"], "statement_hash": "9cbd2c361b7a0b18b8f98d529c719b2cfd44cdc57934b2a35c414cde1ca58f89"}, "url": "/docs/compare/?release=14.8#14.8-a045491d72ad7f72", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "411ea7caf9e313b814dd38d89c5b90d3", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复并行哈希连接中每批次清理时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["a19f0df9788b771ee1f8b103c1441c26"], "statement_hash": "9cbd2c361b7a0b18b8f98d529c719b2cfd44cdc57934b2a35c414cde1ca58f89"}, "url": "/docs/compare/?release=13.11#13.11-19b9385f6fe60579", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "8827bf667cb77dab33bd4bcbb650d846", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复并行哈希连接中每批次清理时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["a19f0df9788b771ee1f8b103c1441c26"], "statement_hash": "9cbd2c361b7a0b18b8f98d529c719b2cfd44cdc57934b2a35c414cde1ca58f89"}, "url": "/docs/compare/?release=12.15#12.15-7dfdac1112788700", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "8ad49ab3009fe3f92288a824df5716a2", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复并行哈希连接中每批次清理时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["a19f0df9788b771ee1f8b103c1441c26"], "statement_hash": "9cbd2c361b7a0b18b8f98d529c719b2cfd44cdc57934b2a35c414cde1ca58f89"}, "url": "/docs/compare/?release=11.20#11.20-6538693e0b99f1a8", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-e6b819f4dfe2fc45", "cves": [], "html": "<p>在 EvalPlanQual 检查后重新计算 <code>GENERATED</code> 列（Tom Lane）<a href=\"https://postgr.es/c/70ef50954\">§</a></p>\n<p>在 <code>READ COMMITTED</code> 隔离模式下，行更新的效果可能需要重新应用到比查询最初找到的更新版本的行上。如果是这样，我们需要重新计算任何 <code>GENERATED</code> 列，以防它们依赖于被并发更新所更改的列。</p>", "text": "在 EvalPlanQual 检查后重新计算 GENERATED 列（Tom Lane）§ 在 READ COMMITTED 隔离模式下，行更新的效果可能需要重新应用到比查询最初找到的更新版本的行上。如果是这样，我们需要重新计算任何 GENERATED 列，以防它们依赖于被并发更新所更改的列。", "title": "在 EvalPlanQual 检查后重新计算 GENERATED 列", "commits": ["70ef50954"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "df89cdcc9424a63e9a781dd261d90ef68950b48fe3f30c4aa9e3aec6120fa9f0", "section_path": ["变更"], "commit_groups": [["1e05ea51d", "23b75dd03", "4a94cbd02", "70ef50954", "7fee7871b"]], "identity_text": "Recalculate GENERATED columns after an EvalPlanQual check (Tom Lane) In READ COMMITTED isolation mode, the effects of a row update might need to get reapplied to a newer version of the row than the query found originally. If so, we need to recompute any GENERATED columns, in case they depend on columns that were changed by the concurrent update.", "commit_aliases": ["1e05ea51d", "23b75dd03", "4a94cbd02", "70ef50954", "7fee7871b"], "source_commits": ["70ef50954"], "source_entry_id": "15.3/changes/032", "db_id": "e72a9e01843fadf2ffe8d51228443fcc", "patch_ids": ["5abe26ef9572cad007033e56e9a5c8b8"], "statement_hash": "b9fe4bbd4c63e626c8ef3afe56a61f0bddb94a0e8dc48838950feea89b9ffd8e", "relations": [{"rule": 2, "type": "equivalent", "target": "2556994c00aaaa9d6f338359b441473b", "evidence": {"same_day": true, "patch_ids": ["5abe26ef9572cad007033e56e9a5c8b8"], "statement_hash": "b9fe4bbd4c63e626c8ef3afe56a61f0bddb94a0e8dc48838950feea89b9ffd8e"}}, {"rule": 2, "type": "equivalent", "target": "501efc84cd518451fa9a96f6ac7e1c16", "evidence": {"same_day": true, "patch_ids": ["5abe26ef9572cad007033e56e9a5c8b8"], "statement_hash": "b9fe4bbd4c63e626c8ef3afe56a61f0bddb94a0e8dc48838950feea89b9ffd8e"}}, {"rule": 2, "type": "equivalent", "target": "634a91bd38203595af01b8e83ad05159", "evidence": {"same_day": true, "patch_ids": ["5abe26ef9572cad007033e56e9a5c8b8"], "statement_hash": "b9fe4bbd4c63e626c8ef3afe56a61f0bddb94a0e8dc48838950feea89b9ffd8e"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "634a91bd38203595af01b8e83ad05159", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在 EvalPlanQual 检查后重新计算 GENERATED 列", "evidence": {"same_day": true, "patch_ids": ["5abe26ef9572cad007033e56e9a5c8b8"], "statement_hash": "b9fe4bbd4c63e626c8ef3afe56a61f0bddb94a0e8dc48838950feea89b9ffd8e"}, "url": "/docs/compare/?release=14.8#14.8-4729910e033e6744", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "501efc84cd518451fa9a96f6ac7e1c16", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "在 EvalPlanQual 检查后重新计算 GENERATED 列", "evidence": {"same_day": true, "patch_ids": ["5abe26ef9572cad007033e56e9a5c8b8"], "statement_hash": "b9fe4bbd4c63e626c8ef3afe56a61f0bddb94a0e8dc48838950feea89b9ffd8e"}, "url": "/docs/compare/?release=13.11#13.11-b720c5828b073cdd", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "2556994c00aaaa9d6f338359b441473b", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "在 EvalPlanQual 检查后重新计算 GENERATED 列", "evidence": {"same_day": true, "patch_ids": ["5abe26ef9572cad007033e56e9a5c8b8"], "statement_hash": "b9fe4bbd4c63e626c8ef3afe56a61f0bddb94a0e8dc48838950feea89b9ffd8e"}, "url": "/docs/compare/?release=12.15#12.15-68b30b91dcb5eca4", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}]}, {"id": "15.3-1ceb7e545eb65151", "cves": [], "html": "<p>修复 Memoize 计划执行中的内存泄漏（David Rowley）<a href=\"https://postgr.es/c/8de4660a5\">§</a></p>", "text": "修复 Memoize 计划执行中的内存泄漏（David Rowley）§", "title": "修复 Memoize 计划执行中的内存泄漏", "commits": ["8de4660a5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "951e4aefb82ab825b9146f12a5d1416088300377a6feb0eb336fb421e75eed43", "section_path": ["变更"], "commit_groups": [["579ee5df1", "8de4660a5", "f654f343c"]], "identity_text": "Fix memory leak in Memoize plan execution (David Rowley)", "commit_aliases": ["579ee5df1", "8de4660a5", "f654f343c"], "source_commits": ["8de4660a5"], "source_entry_id": "15.3/changes/033", "db_id": "e3287bb9df811c70f941ae4c39e1f7b7", "patch_ids": ["5860de6ad0b9c460020f171c54f8d473"], "statement_hash": "a0978be6881756d6c8eced4bcaab7607e33c072c4729587b9deae21a9ec11b8b", "relations": [{"rule": 2, "type": "equivalent", "target": "6c38630bc27a088957766c87ba016477", "evidence": {"same_day": true, "patch_ids": ["5860de6ad0b9c460020f171c54f8d473"], "statement_hash": "a0978be6881756d6c8eced4bcaab7607e33c072c4729587b9deae21a9ec11b8b"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6c38630bc27a088957766c87ba016477", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复 Memoize 计划执行中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["5860de6ad0b9c460020f171c54f8d473"], "statement_hash": "a0978be6881756d6c8eced4bcaab7607e33c072c4729587b9deae21a9ec11b8b"}, "url": "/docs/compare/?release=14.8#14.8-8c3b3edac7d97d64", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-e941f1dddbe850f2", "cves": [], "html": "<p>修复在分区树中包含的外部表使用批量插入时的缓冲区钉住计数泄漏（Alexander Pyhalov）<a href=\"https://postgr.es/c/aa6177c88\">§</a></p>", "text": "修复在分区树中包含的外部表使用批量插入时的缓冲区钉住计数泄漏（Alexander Pyhalov）§", "title": "修复在分区树中包含的外部表使用批量插入时的缓冲区钉住计数泄漏", "commits": ["aa6177c88"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "39704cb32b23baa71c9667766a9659fed4b16a32c93979ad3ae03b773f90df20", "section_path": ["变更"], "commit_groups": [["4cc56f8ed", "806fad757", "aa6177c88"]], "identity_text": "Fix buffer refcount leak when using batched inserts for a foreign table included in a partitioned tree (Alexander Pyhalov)", "commit_aliases": ["4cc56f8ed", "806fad757", "aa6177c88"], "source_commits": ["aa6177c88"], "source_entry_id": "15.3/changes/034", "db_id": "14f367a73e1a6683bc759d1dbf854b86", "patch_ids": ["a2e0c92c1163a3ad50761fa97b82cbbb"], "statement_hash": "51da26fb60af83639dba412545d4edd53f893539a611ff26b0896796eef53c3b", "relations": [{"rule": 2, "type": "equivalent", "target": "e98321c4bcbfa54a3c444da60d8006ed", "evidence": {"same_day": true, "patch_ids": ["a2e0c92c1163a3ad50761fa97b82cbbb"], "statement_hash": "51da26fb60af83639dba412545d4edd53f893539a611ff26b0896796eef53c3b"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e98321c4bcbfa54a3c444da60d8006ed", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复在分区树中包含的外部表使用批量插入时的缓冲区钉住计数泄漏", "evidence": {"same_day": true, "patch_ids": ["a2e0c92c1163a3ad50761fa97b82cbbb"], "statement_hash": "51da26fb60af83639dba412545d4edd53f893539a611ff26b0896796eef53c3b"}, "url": "/docs/compare/?release=14.8#14.8-5b447ba9314887ce", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-9a13db4ff619024e", "cves": [], "html": "<p>恢复对亚毫秒级 <code>vacuum_cost_delay</code> 设置的支持（Thomas Munro）<a href=\"https://postgr.es/c/d9c9c43af\">§</a></p>", "text": "恢复对亚毫秒级 vacuum_cost_delay 设置的支持（Thomas Munro）§", "title": "恢复对亚毫秒级 vacuum_cost_delay 设置的支持", "commits": ["d9c9c43af"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "a2d322c79e4ea1172e7f0f0b88d7fc04857bb1406bf797a74cd08a151f60056b", "section_path": ["变更"], "commit_groups": [["2bef57ee8", "720de00af", "d9c9c43af"]], "identity_text": "Restore support for sub-millisecond vacuum_cost_delay settings (Thomas Munro)", "commit_aliases": ["2bef57ee8", "720de00af", "d9c9c43af"], "source_commits": ["d9c9c43af"], "source_entry_id": "15.3/changes/035", "db_id": "e7810a3317acd35f71b30b46ff2e4a82", "patch_ids": ["d32087ccc661889b34e8bb8fddbed92c"], "statement_hash": "7b3944151c7805498c0114c5d63932c434a30016ab637a9e43792f468a37c831", "relations": [{"rule": 2, "type": "equivalent", "target": "297dab3d1f219cc5d93307d88c074d21", "evidence": {"same_day": true, "patch_ids": ["d32087ccc661889b34e8bb8fddbed92c"], "statement_hash": "7b3944151c7805498c0114c5d63932c434a30016ab637a9e43792f468a37c831"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "297dab3d1f219cc5d93307d88c074d21", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "恢复对亚毫秒级 vacuum_cost_delay 设置的支持", "evidence": {"same_day": true, "patch_ids": ["d32087ccc661889b34e8bb8fddbed92c"], "statement_hash": "7b3944151c7805498c0114c5d63932c434a30016ab637a9e43792f468a37c831"}, "url": "/docs/compare/?release=14.8#14.8-3d9ddfbce573787e", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-062bf7ca615eba85", "cves": [], "html": "<p>当表具有值为零的每表 <code>vacuum_cost_delay</code> 设置时，不进行 vacuum 代价延迟均衡（Masahiko Sawada）<a href=\"https://postgr.es/c/0319b306e\">§</a></p>\n<p>延迟均衡应该在 autovacuum 处理具有每表 <code>vacuum_cost_delay</code> 设置的表时被禁用，但这仅对正值生效，而不对零值生效。</p>", "text": "当表具有值为零的每表 vacuum_cost_delay 设置时，不进行 vacuum 代价延迟均衡（Masahiko Sawada）§ 延迟均衡应该在 autovacuum 处理具有每表 vacuum_cost_delay 设置的表时被禁用，但这仅对正值生效，而不对零值生效。", "title": "当表具有值为零的每表 vacuum_cost_delay 设置时，不进行 vacuum 代价延迟均衡", "commits": ["0319b306e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "1785c780cc7fc5242518d9c8fb95574c389291b2fb6053d3205598d89ff19781", "section_path": ["变更"], "commit_groups": [["0151d2c5f", "0319b306e", "0e8e5e856", "b95f36f86", "bfac8f8bc", "cba3c8f6d"]], "identity_text": "Don't balance vacuum cost delay when a table has a per-relation vacuum_cost_delay setting of zero (Masahiko Sawada) Delay balancing is supposed to be disabled whenever autovacuum is processing a table with a per-relation vacuum_cost_delay setting, but this was done only for positive settings, not zero.", "commit_aliases": ["0151d2c5f", "0319b306e", "0e8e5e856", "b95f36f86", "bfac8f8bc", "cba3c8f6d"], "source_commits": ["0319b306e"], "source_entry_id": "15.3/changes/036", "db_id": "57849542986c76922334777f514101c0", "patch_ids": ["36007201571e6c5f47fc743db59a9338"], "statement_hash": "56de4596bc4a0ba9f4529a989183cdfba500b763b507794e847bf2352540c68b", "relations": [{"rule": 2, "type": "equivalent", "target": "11b5abda64473516190db7cf367e69bd", "evidence": {"same_day": true, "patch_ids": ["36007201571e6c5f47fc743db59a9338"], "statement_hash": "56de4596bc4a0ba9f4529a989183cdfba500b763b507794e847bf2352540c68b"}}, {"rule": 2, "type": "equivalent", "target": "16a85dc98f67b0a0e4c239b5c37e8010", "evidence": {"same_day": true, "patch_ids": ["36007201571e6c5f47fc743db59a9338"], "statement_hash": "56de4596bc4a0ba9f4529a989183cdfba500b763b507794e847bf2352540c68b"}}, {"rule": 2, "type": "equivalent", "target": "82f93720144d725e9605e9f6e0731626", "evidence": {"same_day": true, "patch_ids": ["36007201571e6c5f47fc743db59a9338"], "statement_hash": "56de4596bc4a0ba9f4529a989183cdfba500b763b507794e847bf2352540c68b"}}, {"rule": 2, "type": "equivalent", "target": "8aa69741529ffbc8e937f33a0328b411", "evidence": {"same_day": true, "patch_ids": ["36007201571e6c5f47fc743db59a9338"], "statement_hash": "56de4596bc4a0ba9f4529a989183cdfba500b763b507794e847bf2352540c68b"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "82f93720144d725e9605e9f6e0731626", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "当表具有值为零的每表 vacuum_cost_delay 设置时，不进行 vacuum 代价延迟均衡", "evidence": {"same_day": true, "patch_ids": ["36007201571e6c5f47fc743db59a9338"], "statement_hash": "56de4596bc4a0ba9f4529a989183cdfba500b763b507794e847bf2352540c68b"}, "url": "/docs/compare/?release=14.8#14.8-4b20de92eb7d03c1", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "11b5abda64473516190db7cf367e69bd", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "当表具有值为零的每表 vacuum_cost_delay 设置时，不进行 vacuum 代价延迟均衡", "evidence": {"same_day": true, "patch_ids": ["36007201571e6c5f47fc743db59a9338"], "statement_hash": "56de4596bc4a0ba9f4529a989183cdfba500b763b507794e847bf2352540c68b"}, "url": "/docs/compare/?release=13.11#13.11-b2ec495e1aff0f0e", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "8aa69741529ffbc8e937f33a0328b411", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "当表具有值为零的每表 vacuum_cost_delay 设置时，不进行 vacuum 代价延迟均衡", "evidence": {"same_day": true, "patch_ids": ["36007201571e6c5f47fc743db59a9338"], "statement_hash": "56de4596bc4a0ba9f4529a989183cdfba500b763b507794e847bf2352540c68b"}, "url": "/docs/compare/?release=12.15#12.15-c818cdb17d2b208c", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "16a85dc98f67b0a0e4c239b5c37e8010", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "当表具有值为零的每表 vacuum_cost_delay 设置时，不进行 vacuum 代价延迟均衡", "evidence": {"same_day": true, "patch_ids": ["36007201571e6c5f47fc743db59a9338"], "statement_hash": "56de4596bc4a0ba9f4529a989183cdfba500b763b507794e847bf2352540c68b"}, "url": "/docs/compare/?release=11.20#11.20-f2ccca68b340d6cf", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-26747a65312c5319", "cves": [], "html": "<p>修复在视图末尾添加列时的极端情况崩溃（Tom Lane）<a href=\"https://postgr.es/c/76d2177fb\">§</a></p>", "text": "修复在视图末尾添加列时的极端情况崩溃（Tom Lane）§", "title": "修复在视图末尾添加列时的极端情况崩溃", "commits": ["76d2177fb"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "4250fad5b5f27b96e91c9e7854a44351072ec2587ff77a1222f43048ef90f59b", "section_path": ["变更"], "commit_groups": [["5a19da58e", "695b34ab3", "721626cb5", "76d2177fb", "99be6feec", "9f1e51b59"]], "identity_text": "Fix corner-case crashes when columns have been added to the end of a view (Tom Lane)", "commit_aliases": ["5a19da58e", "695b34ab3", "721626cb5", "76d2177fb", "99be6feec", "9f1e51b59"], "source_commits": ["76d2177fb"], "source_entry_id": "15.3/changes/037", "db_id": "bae92bd172180b1caef0e912d952de11", "patch_ids": ["5b2c05b4c8b8b04abcb00ba6e084bb46"], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf", "relations": [{"rule": 2, "type": "equivalent", "target": "4fa61fcefc25a0e39188467c2842238e", "evidence": {"same_day": true, "patch_ids": ["5b2c05b4c8b8b04abcb00ba6e084bb46"], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"rule": 2, "type": "equivalent", "target": "6ef291b296d9e97689caad4a4376d0b2", "evidence": {"same_day": true, "patch_ids": ["5b2c05b4c8b8b04abcb00ba6e084bb46"], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"rule": 2, "type": "equivalent", "target": "8d5fa0926b0672767bd4e14890ebf9fc", "evidence": {"same_day": true, "patch_ids": ["5b2c05b4c8b8b04abcb00ba6e084bb46"], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}, {"rule": 2, "type": "equivalent", "target": "dc44034eaccc2b7d07e80a2cf40152bb", "evidence": {"same_day": true, "patch_ids": ["5b2c05b4c8b8b04abcb00ba6e084bb46"], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4fa61fcefc25a0e39188467c2842238e", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复在视图末尾添加列时的极端情况崩溃", "evidence": {"same_day": true, "patch_ids": ["5b2c05b4c8b8b04abcb00ba6e084bb46"], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=14.8#14.8-d5ecc70ef6a76b4b", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "6ef291b296d9e97689caad4a4376d0b2", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复在视图末尾添加列时的极端情况崩溃", "evidence": {"same_day": true, "patch_ids": ["5b2c05b4c8b8b04abcb00ba6e084bb46"], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=13.11#13.11-2949c165f7a8e02b", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "dc44034eaccc2b7d07e80a2cf40152bb", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复在视图末尾添加列时的极端情况崩溃", "evidence": {"same_day": true, "patch_ids": ["5b2c05b4c8b8b04abcb00ba6e084bb46"], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=12.15#12.15-19d4df2834e8aac9", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "8d5fa0926b0672767bd4e14890ebf9fc", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复在视图末尾添加列时的极端情况崩溃", "evidence": {"same_day": true, "patch_ids": ["5b2c05b4c8b8b04abcb00ba6e084bb46"], "statement_hash": "bc202eac201ec2d89727efc9ffc5da3f77abe288bd9c4cc36aebb013c0eb2adf"}, "url": "/docs/compare/?release=11.20#11.20-6025f14bd0231868", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-552a2b536b114826", "cves": [], "html": "<p>修复分区更新中 MULTIEXPR_SUBLINK 子计划的罕见失败（Andres Freund，Tom Lane）<a href=\"https://postgr.es/c/a033f9165\">§</a></p>\n<p>使用语法 <code>INSERT ... ON CONFLICT DO UPDATE SET (c1, ...) = (SELECT ...)</code> 并以分区表作为目标表时，如果任何子表与父表不一致（例如，物理列顺序不同），可能导致失败。这通常表现为执行器中一致性检查的失败；但也可能导致崩溃或不正确的数据更新。</p>", "text": "修复分区更新中 MULTIEXPR_SUBLINK 子计划的罕见失败（Andres Freund，Tom Lane）§ 使用语法 INSERT ... ON CONFLICT DO UPDATE SET (c1, ...) = (SELECT ...) 并以分区表作为目标表时，如果任何子表与父表不一致（例如，物理列顺序不同），可能导致失败。这通常表现为执行器中一致性检查的失败；但也可能导致崩溃或不正确的数据更新。", "title": "修复分区更新中 MULTIEXPR_SUBLINK 子计划的罕见失败", "commits": ["a033f9165"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "034290300cb3f6c905dc4f6b9809cb050c1ec3d2a148b16d1e137559a9f8a7eb", "section_path": ["变更"], "commit_groups": [["1e199c259", "87f3667ec", "904b171a4", "9eaba0602", "a033f9165", "ffec64ba8"]], "identity_text": "Repair rare failure of MULTIEXPR_SUBLINK subplans in partitioned updates (Andres Freund, Tom Lane) Use of the syntax INSERT ... ON CONFLICT DO UPDATE SET (c1, ...) = (SELECT ...) with a partitioned target table could result in failure if any child table is dissimilar from the parent (for example, different physical column order). This typically manifested as failure of consistency checks in the executor; but a crash or incorrect data updates are also possible.", "commit_aliases": ["1e199c259", "87f3667ec", "904b171a4", "9eaba0602", "a033f9165", "ffec64ba8"], "source_commits": ["a033f9165"], "source_entry_id": "15.3/changes/038", "db_id": "068b5099130a57e202e4ebf0e38aa748", "patch_ids": ["6bcaae61748c47aa426e8545238b6ea5"], "statement_hash": "9f113bc003ca98e9828b76d9b8b23591db998e5df346b4fe9a6f6e45751cf0a1", "relations": [{"rule": 2, "type": "equivalent", "target": "213acca734fd58897f9e5e2b36b56ba0", "evidence": {"same_day": true, "patch_ids": ["6bcaae61748c47aa426e8545238b6ea5"], "statement_hash": "9f113bc003ca98e9828b76d9b8b23591db998e5df346b4fe9a6f6e45751cf0a1"}}, {"rule": 2, "type": "equivalent", "target": "5da55029ea6201a9acc4c7246bed3b7e", "evidence": {"same_day": true, "patch_ids": ["6bcaae61748c47aa426e8545238b6ea5"], "statement_hash": "9f113bc003ca98e9828b76d9b8b23591db998e5df346b4fe9a6f6e45751cf0a1"}}, {"rule": 2, "type": "equivalent", "target": "e524f3e5c9bb7603bd42d6ee212edf19", "evidence": {"same_day": true, "patch_ids": ["6bcaae61748c47aa426e8545238b6ea5"], "statement_hash": "9f113bc003ca98e9828b76d9b8b23591db998e5df346b4fe9a6f6e45751cf0a1"}}, {"rule": 2, "type": "equivalent", "target": "f79699b81b408ea0bca70fa54c6db16d", "evidence": {"same_day": true, "patch_ids": ["6bcaae61748c47aa426e8545238b6ea5"], "statement_hash": "9f113bc003ca98e9828b76d9b8b23591db998e5df346b4fe9a6f6e45751cf0a1"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "213acca734fd58897f9e5e2b36b56ba0", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复分区更新中 MULTIEXPR_SUBLINK 子计划的罕见失败", "evidence": {"same_day": true, "patch_ids": ["6bcaae61748c47aa426e8545238b6ea5"], "statement_hash": "9f113bc003ca98e9828b76d9b8b23591db998e5df346b4fe9a6f6e45751cf0a1"}, "url": "/docs/compare/?release=14.8#14.8-7b6b22eb2d4233d7", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "e524f3e5c9bb7603bd42d6ee212edf19", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复分区更新中 MULTIEXPR_SUBLINK 子计划的罕见失败", "evidence": {"same_day": true, "patch_ids": ["6bcaae61748c47aa426e8545238b6ea5"], "statement_hash": "9f113bc003ca98e9828b76d9b8b23591db998e5df346b4fe9a6f6e45751cf0a1"}, "url": "/docs/compare/?release=13.11#13.11-0947c0212cb54c89", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "f79699b81b408ea0bca70fa54c6db16d", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复分区更新中 MULTIEXPR_SUBLINK 子计划的罕见失败", "evidence": {"same_day": true, "patch_ids": ["6bcaae61748c47aa426e8545238b6ea5"], "statement_hash": "9f113bc003ca98e9828b76d9b8b23591db998e5df346b4fe9a6f6e45751cf0a1"}, "url": "/docs/compare/?release=12.15#12.15-67403188781d209b", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "5da55029ea6201a9acc4c7246bed3b7e", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复分区更新中 MULTIEXPR_SUBLINK 子计划的罕见失败", "evidence": {"same_day": true, "patch_ids": ["6bcaae61748c47aa426e8545238b6ea5"], "statement_hash": "9f113bc003ca98e9828b76d9b8b23591db998e5df346b4fe9a6f6e45751cf0a1"}, "url": "/docs/compare/?release=11.20#11.20-bf9f8933b2539f63", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-312fd010d84d4716", "cves": [], "html": "<p>修复在具有 <code>DO ALSO INSERT ... SELECT</code> 规则的视图上执行多行 <code>INSERT ... VALUES</code> 查询时 <code>DEFAULT</code> 标记的处理（Dean Rasheed）<a href=\"https://postgr.es/c/940b54743\">§</a></p>\n<p>此类情况通常会出现 <span>“<span>unrecognized node type</span>”</span> 错误或断言失败。</p>", "text": "修复在具有 DO ALSO INSERT ... SELECT 规则的视图上执行多行 INSERT ... VALUES 查询时 DEFAULT 标记的处理（Dean Rasheed）§ 此类情况通常会出现 “unrecognized node type” 错误或断言失败。", "title": "修复在具有 DO ALSO INSERT ... SELECT 规则的视图上执行多行 INSERT ... VALUES 查询时 DEFAULT 标记的处理", "commits": ["940b54743"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "8534c9d48ca006e72b643730897428339e53c18dd591478cbd5ee816e647237d", "section_path": ["变更"], "commit_groups": [["226da3d47", "75c737636", "940b54743", "98b83b734", "e68b133c3", "f0423bea7"]], "identity_text": "Fix handling of DEFAULT markers within a multi-row INSERT ... VALUES query on a view that has a DO ALSO INSERT ... SELECT rule (Dean Rasheed) Such cases typically failed with unrecognized node type errors or assertion failures.", "commit_aliases": ["226da3d47", "75c737636", "940b54743", "98b83b734", "e68b133c3", "f0423bea7"], "source_commits": ["940b54743"], "source_entry_id": "15.3/changes/039", "db_id": "fb077e618ddc11ef571eb88941f6dcf9", "patch_ids": ["e4f097604b69de4e1901dd8c13e71386"], "statement_hash": "4c3875d32738a77321dcfea6549f88bb34ef9d38a3b48d437434a36d053fe1c4", "relations": [{"rule": 2, "type": "equivalent", "target": "0360909758f1050df325466601676161", "evidence": {"same_day": true, "patch_ids": ["e4f097604b69de4e1901dd8c13e71386"], "statement_hash": "4c3875d32738a77321dcfea6549f88bb34ef9d38a3b48d437434a36d053fe1c4"}}, {"rule": 2, "type": "equivalent", "target": "286af72d75446c44360c32392e2481af", "evidence": {"same_day": true, "patch_ids": ["e4f097604b69de4e1901dd8c13e71386"], "statement_hash": "4c3875d32738a77321dcfea6549f88bb34ef9d38a3b48d437434a36d053fe1c4"}}, {"rule": 2, "type": "equivalent", "target": "4a1e70d50815c66ffff6270920784cc2", "evidence": {"same_day": true, "patch_ids": ["e4f097604b69de4e1901dd8c13e71386"], "statement_hash": "4c3875d32738a77321dcfea6549f88bb34ef9d38a3b48d437434a36d053fe1c4"}}, {"rule": 2, "type": "equivalent", "target": "7a2f6aad0f1c899655ebf10ef36ff88c", "evidence": {"same_day": true, "patch_ids": ["e4f097604b69de4e1901dd8c13e71386"], "statement_hash": "4c3875d32738a77321dcfea6549f88bb34ef9d38a3b48d437434a36d053fe1c4"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7a2f6aad0f1c899655ebf10ef36ff88c", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复在具有 DO ALSO INSERT ... SELECT 规则的视图上执行多行 INSERT ... VALUES 查询时 DEFAULT 标记的处理", "evidence": {"same_day": true, "patch_ids": ["e4f097604b69de4e1901dd8c13e71386"], "statement_hash": "4c3875d32738a77321dcfea6549f88bb34ef9d38a3b48d437434a36d053fe1c4"}, "url": "/docs/compare/?release=14.8#14.8-ad8a56bde4268946", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "0360909758f1050df325466601676161", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复在具有 DO ALSO INSERT ... SELECT 规则的视图上执行多行 INSERT ... VALUES 查询时 DEFAULT 标记的处理", "evidence": {"same_day": true, "patch_ids": ["e4f097604b69de4e1901dd8c13e71386"], "statement_hash": "4c3875d32738a77321dcfea6549f88bb34ef9d38a3b48d437434a36d053fe1c4"}, "url": "/docs/compare/?release=13.11#13.11-83846ee239973d01", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "286af72d75446c44360c32392e2481af", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复在具有 DO ALSO INSERT ... SELECT 规则的视图上执行多行 INSERT ... VALUES 查询时 DEFAULT 标记的处理", "evidence": {"same_day": true, "patch_ids": ["e4f097604b69de4e1901dd8c13e71386"], "statement_hash": "4c3875d32738a77321dcfea6549f88bb34ef9d38a3b48d437434a36d053fe1c4"}, "url": "/docs/compare/?release=12.15#12.15-8d25e024ac33a32a", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "4a1e70d50815c66ffff6270920784cc2", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复在具有 DO ALSO INSERT ... SELECT 规则的视图上执行多行 INSERT ... VALUES 查询时 DEFAULT 标记的处理", "evidence": {"same_day": true, "patch_ids": ["e4f097604b69de4e1901dd8c13e71386"], "statement_hash": "4c3875d32738a77321dcfea6549f88bb34ef9d38a3b48d437434a36d053fe1c4"}, "url": "/docs/compare/?release=11.20#11.20-15d1c4cd2ad810e7", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-aab96222be87a71b", "cves": [], "html": "<p>支持在规则动作的子查询中引用 <code>OLD</code> 和 <code>NEW</code>（Dean Rasheed，Tom Lane）<a href=\"https://postgr.es/c/8e5b4e001\">§</a></p>\n<p>此类引用实际上是横向引用，但如果子查询没有显式标记 <code>LATERAL</code>，服务器可能会崩溃。安排在必要时隐式添加该标记。</p>", "text": "支持在规则动作的子查询中引用 OLD 和 NEW（Dean Rasheed，Tom Lane）§ 此类引用实际上是横向引用，但如果子查询没有显式标记 LATERAL，服务器可能会崩溃。安排在必要时隐式添加该标记。", "title": "支持在规则动作的子查询中引用 OLD 和 NEW", "commits": ["8e5b4e001"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "d3bda3e890d30ac7517c66e9ed3eabf96347a3e3f0ff6c9f479e90ea64514daf", "section_path": ["变更"], "commit_groups": [["27ff93d18", "39ad791e8", "4fd093af7", "79f194cc0", "8e5b4e001", "a7d71c41d"]], "identity_text": "Support references to OLD and NEW within subqueries in rule actions (Dean Rasheed, Tom Lane) Such references are really lateral references, but the server could crash if the subquery wasn't explicitly marked with LATERAL. Arrange to do that implicitly when necessary.", "commit_aliases": ["27ff93d18", "39ad791e8", "4fd093af7", "79f194cc0", "8e5b4e001", "a7d71c41d"], "source_commits": ["8e5b4e001"], "source_entry_id": "15.3/changes/040", "db_id": "66cbcf8559f9b06ff338b14ce12f0c87", "patch_ids": ["9dbaf5c8ad44556e2242b28f8aa30f69"], "statement_hash": "b6960c5d5fcfa695ce170e7d7d9f181345a1d598c55b698a1f307265cc7cc798", "relations": [{"rule": 2, "type": "equivalent", "target": "0b010dab09f8947b33ac9d3425904264", "evidence": {"same_day": true, "patch_ids": ["9dbaf5c8ad44556e2242b28f8aa30f69"], "statement_hash": "b6960c5d5fcfa695ce170e7d7d9f181345a1d598c55b698a1f307265cc7cc798"}}, {"rule": 2, "type": "equivalent", "target": "36219fa8c604eb8f2568750a50cb91c0", "evidence": {"same_day": true, "patch_ids": ["9dbaf5c8ad44556e2242b28f8aa30f69"], "statement_hash": "b6960c5d5fcfa695ce170e7d7d9f181345a1d598c55b698a1f307265cc7cc798"}}, {"rule": 2, "type": "equivalent", "target": "7c1f9dd4dfb30ead368e8c50ad996d7e", "evidence": {"same_day": true, "patch_ids": ["9dbaf5c8ad44556e2242b28f8aa30f69"], "statement_hash": "b6960c5d5fcfa695ce170e7d7d9f181345a1d598c55b698a1f307265cc7cc798"}}, {"rule": 2, "type": "equivalent", "target": "b2023a719c4de48cd6f201d3974d45b5", "evidence": {"same_day": true, "patch_ids": ["9dbaf5c8ad44556e2242b28f8aa30f69"], "statement_hash": "b6960c5d5fcfa695ce170e7d7d9f181345a1d598c55b698a1f307265cc7cc798"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "36219fa8c604eb8f2568750a50cb91c0", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "支持在规则动作的子查询中引用 OLD 和 NEW", "evidence": {"same_day": true, "patch_ids": ["9dbaf5c8ad44556e2242b28f8aa30f69"], "statement_hash": "b6960c5d5fcfa695ce170e7d7d9f181345a1d598c55b698a1f307265cc7cc798"}, "url": "/docs/compare/?release=14.8#14.8-9c5a12052c5d6b1d", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "b2023a719c4de48cd6f201d3974d45b5", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "支持在规则动作的子查询中引用 OLD 和 NEW", "evidence": {"same_day": true, "patch_ids": ["9dbaf5c8ad44556e2242b28f8aa30f69"], "statement_hash": "b6960c5d5fcfa695ce170e7d7d9f181345a1d598c55b698a1f307265cc7cc798"}, "url": "/docs/compare/?release=13.11#13.11-bb95f1f3123313a0", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "7c1f9dd4dfb30ead368e8c50ad996d7e", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "支持在规则动作的子查询中引用 OLD 和 NEW", "evidence": {"same_day": true, "patch_ids": ["9dbaf5c8ad44556e2242b28f8aa30f69"], "statement_hash": "b6960c5d5fcfa695ce170e7d7d9f181345a1d598c55b698a1f307265cc7cc798"}, "url": "/docs/compare/?release=12.15#12.15-0c2abb52e5e65e89", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "0b010dab09f8947b33ac9d3425904264", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "支持在规则动作的子查询中引用 OLD 和 NEW", "evidence": {"same_day": true, "patch_ids": ["9dbaf5c8ad44556e2242b28f8aa30f69"], "statement_hash": "b6960c5d5fcfa695ce170e7d7d9f181345a1d598c55b698a1f307265cc7cc798"}, "url": "/docs/compare/?release=11.20#11.20-d420d7d4ddffe31c", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-a08e4a919a568604", "cves": [], "html": "<p>在反编译包含 <code>WITH</code> 中 <code>INSERT</code>/<code>UPDATE</code>/<code>DELETE</code> 的规则或 SQL 函数体时，注意打印目标表的正确别名（Tom Lane）<a href=\"https://postgr.es/c/c8a5f1685\">§</a></p>", "text": "在反编译包含 WITH 中 INSERT/UPDATE/DELETE 的规则或 SQL 函数体时，注意打印目标表的正确别名（Tom Lane）§", "title": "在反编译包含 WITH 中 INSERT/UPDATE/DELETE 的规则或 SQL 函数体时，注意打印目标表的正确别名", "commits": ["c8a5f1685"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "45bbea22a56ec8b3dd1eb91e1bbfb96107a5e613104ffcba5e860e3aa236f80a", "section_path": ["变更"], "commit_groups": [["14345f3c6", "393430f57", "3dd287c14", "4efb4f0d4", "c8a5f1685", "df931e9ab"]], "identity_text": "When decompiling a rule or SQL function body containing INSERT/UPDATE/DELETE within WITH, take care to print the correct alias for the target table (Tom Lane)", "commit_aliases": ["14345f3c6", "393430f57", "3dd287c14", "4efb4f0d4", "c8a5f1685", "df931e9ab"], "source_commits": ["c8a5f1685"], "source_entry_id": "15.3/changes/041", "db_id": "01457b8f0ffb1b64d56b9203b6325e0e", "patch_ids": ["e8ce91fe29c8fe0db80948f7fda76921"], "statement_hash": "ba163af43b5afffc441b426c89c8ef6607c9e0e0b151962c1aba7a302eaad2a1", "relations": [{"rule": 2, "type": "equivalent", "target": "29f695de8c65482f28c0720be8cb7e92", "evidence": {"same_day": true, "patch_ids": ["e8ce91fe29c8fe0db80948f7fda76921"], "statement_hash": "ba163af43b5afffc441b426c89c8ef6607c9e0e0b151962c1aba7a302eaad2a1"}}, {"rule": 2, "type": "equivalent", "target": "5a62547791a24e36103baca5ad33ce1f", "evidence": {"same_day": true, "patch_ids": ["e8ce91fe29c8fe0db80948f7fda76921"], "statement_hash": "ba163af43b5afffc441b426c89c8ef6607c9e0e0b151962c1aba7a302eaad2a1"}}, {"rule": 2, "type": "equivalent", "target": "784675131d0d5725759df24581787937", "evidence": {"same_day": true, "patch_ids": ["e8ce91fe29c8fe0db80948f7fda76921"], "statement_hash": "ba163af43b5afffc441b426c89c8ef6607c9e0e0b151962c1aba7a302eaad2a1"}}, {"rule": 2, "type": "equivalent", "target": "8e28e1c21d5627de698a70d5005872ed", "evidence": {"same_day": true, "patch_ids": ["e8ce91fe29c8fe0db80948f7fda76921"], "statement_hash": "ba163af43b5afffc441b426c89c8ef6607c9e0e0b151962c1aba7a302eaad2a1"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "784675131d0d5725759df24581787937", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在反编译包含 WITH 中 INSERT/UPDATE/DELETE 的规则或 SQL 函数体时，注意打印目标表的正确别名", "evidence": {"same_day": true, "patch_ids": ["e8ce91fe29c8fe0db80948f7fda76921"], "statement_hash": "ba163af43b5afffc441b426c89c8ef6607c9e0e0b151962c1aba7a302eaad2a1"}, "url": "/docs/compare/?release=14.8#14.8-0ac9dbe114775d93", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "5a62547791a24e36103baca5ad33ce1f", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "在反编译包含 WITH 中 INSERT/UPDATE/DELETE 的规则或 SQL 函数体时，注意打印目标表的正确别名", "evidence": {"same_day": true, "patch_ids": ["e8ce91fe29c8fe0db80948f7fda76921"], "statement_hash": "ba163af43b5afffc441b426c89c8ef6607c9e0e0b151962c1aba7a302eaad2a1"}, "url": "/docs/compare/?release=13.11#13.11-1fa5b2516b691d14", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "29f695de8c65482f28c0720be8cb7e92", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "在反编译包含 WITH 中 INSERT/UPDATE/DELETE 的规则或 SQL 函数体时，注意打印目标表的正确别名", "evidence": {"same_day": true, "patch_ids": ["e8ce91fe29c8fe0db80948f7fda76921"], "statement_hash": "ba163af43b5afffc441b426c89c8ef6607c9e0e0b151962c1aba7a302eaad2a1"}, "url": "/docs/compare/?release=12.15#12.15-7ede57aa6eab0f21", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "8e28e1c21d5627de698a70d5005872ed", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "在反编译包含 WITH 中 INSERT/UPDATE/DELETE 的规则或 SQL 函数体时，注意打印目标表的正确别名", "evidence": {"same_day": true, "patch_ids": ["e8ce91fe29c8fe0db80948f7fda76921"], "statement_hash": "ba163af43b5afffc441b426c89c8ef6607c9e0e0b151962c1aba7a302eaad2a1"}, "url": "/docs/compare/?release=11.20#11.20-4a00f33acfd88b53", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-5d2243e587208477", "cves": [], "html": "<p>修复 <code>SERIALIZABLE READ ONLY</code> 优化中的问题（Thomas Munro）<a href=\"https://postgr.es/c/055990904\">§</a> <a href=\"https://postgr.es/c/af397c6c2\">§</a></p>\n<p>已标记为 <span>“<span>doomed</span>”</span> 的事务干扰了 <code>SERIALIZABLE READ ONLY</code> 事务的安全快照优化。在某些情况下该优化被不必要地跳过。在其他情况下会发生断言失败（但在非断言构建中没有问题）。</p>", "text": "修复 SERIALIZABLE READ ONLY 优化中的问题（Thomas Munro）§ § 已标记为 “doomed” 的事务干扰了 SERIALIZABLE READ ONLY 事务的安全快照优化。在某些情况下该优化被不必要地跳过。在其他情况下会发生断言失败（但在非断言构建中没有问题）。", "title": "修复 SERIALIZABLE READ ONLY 优化中的问题", "commits": ["055990904", "af397c6c2"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "53e8a94f19d10d30b4d263f5ab79adc2647609c35eba8db8deb29742515e1ecf", "section_path": ["变更"], "commit_groups": [["055990904", "47c0accbe", "a0f55fc86", "afa122e41", "e9051ecd5"], ["65e388d41", "ae632f7a3", "af397c6c2", "d1c0f81e7", "d811d74be", "e30fd0942"]], "identity_text": "Fix glitches in SERIALIZABLE READ ONLY optimization (Thomas Munro) Transactions already marked as doomed confused the safe-snapshot optimization for SERIALIZABLE READ ONLY transactions. The optimization was unnecessarily skipped in some cases. In other cases an assertion failure occurred (but there was no problem in non-assert builds).", "commit_aliases": ["055990904", "47c0accbe", "65e388d41", "a0f55fc86", "ae632f7a3", "af397c6c2", "afa122e41", "d1c0f81e7", "d811d74be", "e30fd0942", "e9051ecd5"], "source_commits": ["055990904", "af397c6c2"], "source_entry_id": "15.3/changes/042", "db_id": "f0cff51aea3380743b990d87a9c9bb77", "patch_ids": ["606cc287946e3d5d2a8e16d171dadb97", "7ed98b7f6285e09dfd1419325a697515"], "statement_hash": "7781e9321baea7f1490eeffce3b262c2db4f4d5bb6ed762ac67343c249d8dcf4", "relations": [{"rule": 2, "type": "equivalent", "target": "03a16269863dee7e2d51cb14bf632bb5", "evidence": {"same_day": true, "patch_ids": ["606cc287946e3d5d2a8e16d171dadb97", "7ed98b7f6285e09dfd1419325a697515"], "statement_hash": "7781e9321baea7f1490eeffce3b262c2db4f4d5bb6ed762ac67343c249d8dcf4"}}, {"rule": 2, "type": "equivalent", "target": "503d99c115efc82959c0f0331193002a", "evidence": {"same_day": true, "patch_ids": ["606cc287946e3d5d2a8e16d171dadb97", "7ed98b7f6285e09dfd1419325a697515"], "statement_hash": "7781e9321baea7f1490eeffce3b262c2db4f4d5bb6ed762ac67343c249d8dcf4"}}, {"rule": 2, "type": "equivalent", "target": "69ca5f068d24e8a34abea36233cbd728", "evidence": {"same_day": true, "patch_ids": ["606cc287946e3d5d2a8e16d171dadb97", "7ed98b7f6285e09dfd1419325a697515"], "statement_hash": "7781e9321baea7f1490eeffce3b262c2db4f4d5bb6ed762ac67343c249d8dcf4"}}, {"rule": 2, "type": "equivalent", "target": "6a9efcfa5299c8751f2b1c20590fa314", "evidence": {"same_day": true, "patch_ids": ["606cc287946e3d5d2a8e16d171dadb97", "7ed98b7f6285e09dfd1419325a697515"], "statement_hash": "7781e9321baea7f1490eeffce3b262c2db4f4d5bb6ed762ac67343c249d8dcf4"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "03a16269863dee7e2d51cb14bf632bb5", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复 SERIALIZABLE READ ONLY 优化中的问题", "evidence": {"same_day": true, "patch_ids": ["606cc287946e3d5d2a8e16d171dadb97", "7ed98b7f6285e09dfd1419325a697515"], "statement_hash": "7781e9321baea7f1490eeffce3b262c2db4f4d5bb6ed762ac67343c249d8dcf4"}, "url": "/docs/compare/?release=14.8#14.8-b09f813f3143555d", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "503d99c115efc82959c0f0331193002a", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复 SERIALIZABLE READ ONLY 优化中的问题", "evidence": {"same_day": true, "patch_ids": ["606cc287946e3d5d2a8e16d171dadb97", "7ed98b7f6285e09dfd1419325a697515"], "statement_hash": "7781e9321baea7f1490eeffce3b262c2db4f4d5bb6ed762ac67343c249d8dcf4"}, "url": "/docs/compare/?release=13.11#13.11-0fb266d01909a90e", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "6a9efcfa5299c8751f2b1c20590fa314", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复 SERIALIZABLE READ ONLY 优化中的问题", "evidence": {"same_day": true, "patch_ids": ["606cc287946e3d5d2a8e16d171dadb97", "7ed98b7f6285e09dfd1419325a697515"], "statement_hash": "7781e9321baea7f1490eeffce3b262c2db4f4d5bb6ed762ac67343c249d8dcf4"}, "url": "/docs/compare/?release=12.15#12.15-f98c185f49bdfc8b", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "69ca5f068d24e8a34abea36233cbd728", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复 SERIALIZABLE READ ONLY 优化中的问题", "evidence": {"same_day": true, "patch_ids": ["606cc287946e3d5d2a8e16d171dadb97", "7ed98b7f6285e09dfd1419325a697515"], "statement_hash": "7781e9321baea7f1490eeffce3b262c2db4f4d5bb6ed762ac67343c249d8dcf4"}, "url": "/docs/compare/?release=11.20#11.20-e3c9b15792a22ce6", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-27b20671c8aec495", "cves": [], "html": "<p>避免 <code>pgoutput</code> 逻辑解码插件中的缓存回调槽泄漏（Shi Yu）<a href=\"https://postgr.es/c/cef1c9c0c\">§</a></p>\n<p>在单个会话中多次启动和关闭该插件最终会导致 <span>“<span>out of relcache_callback_list slots</span>”</span> 错误。</p>", "text": "避免 pgoutput 逻辑解码插件中的缓存回调槽泄漏（Shi Yu）§ 在单个会话中多次启动和关闭该插件最终会导致 “out of relcache_callback_list slots” 错误。", "title": "避免 pgoutput 逻辑解码插件中的缓存回调槽泄漏", "commits": ["cef1c9c0c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "703953a9b28852464459fd136e72b226c9434093aacf975afcf469223b251716", "section_path": ["变更"], "commit_groups": [["05172f1f3", "0f78df719", "44dbc960f", "861e9e486", "95558bc8f", "cef1c9c0c"]], "identity_text": "Avoid leaking cache callback slots in the pgoutput logical decoding plugin (Shi Yu) Multiple cycles of starting up and shutting down the plugin within a single session would eventually lead to an out of relcache_callback_list slots error.", "commit_aliases": ["05172f1f3", "0f78df719", "44dbc960f", "861e9e486", "95558bc8f", "cef1c9c0c"], "source_commits": ["cef1c9c0c"], "source_entry_id": "15.3/changes/043", "db_id": "dc7de41de607f9fef62354473cf323c8", "patch_ids": ["ac48d229348309f4eef1c3f9f4620b52"], "statement_hash": "7b69037bd49694d51be9e49223daf3c31673eec85a1d98cb0c9dc29a55d914a2", "relations": [{"rule": 2, "type": "equivalent", "target": "3974db0885e46f2853d8960f304340e7", "evidence": {"same_day": true, "patch_ids": ["ac48d229348309f4eef1c3f9f4620b52"], "statement_hash": "7b69037bd49694d51be9e49223daf3c31673eec85a1d98cb0c9dc29a55d914a2"}}, {"rule": 2, "type": "equivalent", "target": "aa8a5d2b69926d22c32cb695e7a328bd", "evidence": {"same_day": true, "patch_ids": ["ac48d229348309f4eef1c3f9f4620b52"], "statement_hash": "7b69037bd49694d51be9e49223daf3c31673eec85a1d98cb0c9dc29a55d914a2"}}, {"rule": 2, "type": "equivalent", "target": "bead6c3d2c8c8b5ea9f3b02cff0b070e", "evidence": {"same_day": true, "patch_ids": ["ac48d229348309f4eef1c3f9f4620b52"], "statement_hash": "7b69037bd49694d51be9e49223daf3c31673eec85a1d98cb0c9dc29a55d914a2"}}, {"rule": 2, "type": "equivalent", "target": "c645361986094cf454b9c2cc3c25c8c7", "evidence": {"same_day": true, "patch_ids": ["ac48d229348309f4eef1c3f9f4620b52"], "statement_hash": "7b69037bd49694d51be9e49223daf3c31673eec85a1d98cb0c9dc29a55d914a2"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c645361986094cf454b9c2cc3c25c8c7", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免 pgoutput 逻辑解码插件中的缓存回调槽泄漏", "evidence": {"same_day": true, "patch_ids": ["ac48d229348309f4eef1c3f9f4620b52"], "statement_hash": "7b69037bd49694d51be9e49223daf3c31673eec85a1d98cb0c9dc29a55d914a2"}, "url": "/docs/compare/?release=14.8#14.8-bf6f48da00caafb9", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "bead6c3d2c8c8b5ea9f3b02cff0b070e", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "避免 pgoutput 逻辑解码插件中的缓存回调槽泄漏", "evidence": {"same_day": true, "patch_ids": ["ac48d229348309f4eef1c3f9f4620b52"], "statement_hash": "7b69037bd49694d51be9e49223daf3c31673eec85a1d98cb0c9dc29a55d914a2"}, "url": "/docs/compare/?release=13.11#13.11-34feb70753ee4930", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "aa8a5d2b69926d22c32cb695e7a328bd", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "避免 pgoutput 逻辑解码插件中的缓存回调槽泄漏", "evidence": {"same_day": true, "patch_ids": ["ac48d229348309f4eef1c3f9f4620b52"], "statement_hash": "7b69037bd49694d51be9e49223daf3c31673eec85a1d98cb0c9dc29a55d914a2"}, "url": "/docs/compare/?release=12.15#12.15-8d38b8192362f07a", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "3974db0885e46f2853d8960f304340e7", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "避免 pgoutput 逻辑解码插件中的缓存回调槽泄漏", "evidence": {"same_day": true, "patch_ids": ["ac48d229348309f4eef1c3f9f4620b52"], "statement_hash": "7b69037bd49694d51be9e49223daf3c31673eec85a1d98cb0c9dc29a55d914a2"}, "url": "/docs/compare/?release=11.20#11.20-aa4c225f9ea9524d", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-d9ecdcbdfbdaac97", "cves": [], "html": "<p>避免对索引操作符类选项的自定义验证器进行不必要的调用（Alexander Korotkov）<a href=\"https://postgr.es/c/6e7361c85\">§</a></p>\n<p>此更改修复了某些情况下抛出意外错误的问题。</p>", "text": "避免对索引操作符类选项的自定义验证器进行不必要的调用（Alexander Korotkov）§ 此更改修复了某些情况下抛出意外错误的问题。", "title": "避免对索引操作符类选项的自定义验证器进行不必要的调用", "commits": ["6e7361c85"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "fc8c1ca008fdb091f01f7eadc8b13189a04cefc4d22eafc63d8d4117010c683c", "section_path": ["变更"], "commit_groups": [["02191136c", "6e7361c85", "9ef5a3583", "cd115c353"]], "identity_text": "Avoid unnecessary calls to custom validators for index operator class options (Alexander Korotkov) This change fixes some cases where an unexpected error was thrown.", "commit_aliases": ["02191136c", "6e7361c85", "9ef5a3583", "cd115c353"], "source_commits": ["6e7361c85"], "source_entry_id": "15.3/changes/044", "db_id": "fab631771576a05345dfde2d2b91b0c1", "patch_ids": ["30e6037bf79dafe21ade20e221bb0237"], "statement_hash": "35d5cb2cc1d15a99580d9683a72f230e09d0c063263e594cdb93ecfa27ef1e83", "relations": [{"rule": 2, "type": "equivalent", "target": "11add981bff76ae646b9e06f53d4744d", "evidence": {"same_day": true, "patch_ids": ["30e6037bf79dafe21ade20e221bb0237"], "statement_hash": "35d5cb2cc1d15a99580d9683a72f230e09d0c063263e594cdb93ecfa27ef1e83"}}, {"rule": 2, "type": "equivalent", "target": "d7439c5bf561cba69bc6dac6c54a4016", "evidence": {"same_day": true, "patch_ids": ["30e6037bf79dafe21ade20e221bb0237"], "statement_hash": "35d5cb2cc1d15a99580d9683a72f230e09d0c063263e594cdb93ecfa27ef1e83"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "11add981bff76ae646b9e06f53d4744d", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免对索引操作符类选项的自定义验证器进行不必要的调用", "evidence": {"same_day": true, "patch_ids": ["30e6037bf79dafe21ade20e221bb0237"], "statement_hash": "35d5cb2cc1d15a99580d9683a72f230e09d0c063263e594cdb93ecfa27ef1e83"}, "url": "/docs/compare/?release=14.8#14.8-7471a65012ef2761", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "d7439c5bf561cba69bc6dac6c54a4016", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "避免对索引操作符类选项的自定义验证器进行不必要的调用", "evidence": {"same_day": true, "patch_ids": ["30e6037bf79dafe21ade20e221bb0237"], "statement_hash": "35d5cb2cc1d15a99580d9683a72f230e09d0c063263e594cdb93ecfa27ef1e83"}, "url": "/docs/compare/?release=13.11#13.11-dff2feae3064a8bb", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}]}, {"id": "15.3-67e0883e23e1a071", "cves": [], "html": "<p>避免在使用多个扫描键扫描多列 BRIN 索引时进行无用的工作（Tomas Vondra）<a href=\"https://postgr.es/c/305d89ad9\">§</a></p>\n<p>现有代码在决定范围是否匹配时实际上只考虑了最后一个扫描键，因此通常扫描的索引范围比实际需要的多。</p>", "text": "避免在使用多个扫描键扫描多列 BRIN 索引时进行无用的工作（Tomas Vondra）§ 现有代码在决定范围是否匹配时实际上只考虑了最后一个扫描键，因此通常扫描的索引范围比实际需要的多。", "title": "避免在使用多个扫描键扫描多列 BRIN 索引时进行无用的工作", "commits": ["305d89ad9"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "24b9da443e4f4ac29a9a4d9db1acb6f17514dfb46073f6968182b6c63cc63f33", "section_path": ["变更"], "commit_groups": [["305d89ad9", "e72910f80", "f3daa3116"]], "identity_text": "Avoid useless work while scanning a multi-column BRIN index with multiple scan keys (Tomas Vondra) The existing code effectively considered only the last scan key while deciding whether a range matched, thus usually scanning more of the index than it needed to.", "commit_aliases": ["305d89ad9", "e72910f80", "f3daa3116"], "source_commits": ["305d89ad9"], "source_entry_id": "15.3/changes/045", "db_id": "b00444c6ca71997e5ace852cd381d691", "patch_ids": ["63aaea1a334669c9cc10af684ebba40a"], "statement_hash": "932cb1154ad429a63b044a4a4f7e41c5ff193a52d601e1ad7d84541c379b3090", "relations": [{"rule": 2, "type": "equivalent", "target": "ab8f7d3bca0ae59cbc4ff17074b7d699", "evidence": {"same_day": true, "patch_ids": ["63aaea1a334669c9cc10af684ebba40a"], "statement_hash": "932cb1154ad429a63b044a4a4f7e41c5ff193a52d601e1ad7d84541c379b3090"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ab8f7d3bca0ae59cbc4ff17074b7d699", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免在使用多个扫描键扫描多列 BRIN 索引时进行无用的工作", "evidence": {"same_day": true, "patch_ids": ["63aaea1a334669c9cc10af684ebba40a"], "statement_hash": "932cb1154ad429a63b044a4a4f7e41c5ff193a52d601e1ad7d84541c379b3090"}, "url": "/docs/compare/?release=14.8#14.8-aa5f6c4a9b8c97e6", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-169d5198ab9e9c35", "cves": [], "html": "<p>修复 BRIN inet_minmax_multi_ops 操作符类中的网络掩码处理（Tomas Vondra）<a href=\"https://postgr.es/c/0c7726c28\">§</a></p>\n<p>此错误在启用断言的构建中会触发断言失败，但在生产构建中基本无害。</p>", "text": "修复 BRIN inet_minmax_multi_ops 操作符类中的网络掩码处理（Tomas Vondra）§ 此错误在启用断言的构建中会触发断言失败，但在生产构建中基本无害。", "title": "修复 BRIN inet_minmax_multi_ops 操作符类中的网络掩码处理", "commits": ["0c7726c28"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "4371c9b1cddc952c3d89fe5cd049301c7766e961ed1f4bea6917201ae626f7ef", "section_path": ["变更"], "commit_groups": [["0c7726c28", "6a78a42fe", "e85831268"]], "identity_text": "Fix netmask handling in BRIN inet_minmax_multi_ops opclass (Tomas Vondra) This error triggered an assertion failure in assert-enabled builds, but is mostly harmless in production builds.", "commit_aliases": ["0c7726c28", "6a78a42fe", "e85831268"], "source_commits": ["0c7726c28"], "source_entry_id": "15.3/changes/046", "db_id": "5f683383582b2a2cef965d9c98f6c090", "patch_ids": ["358477a1cec264a432d027cbcee185b5"], "statement_hash": "fa7bede16d9a590a4165a6bf0c8da1a0a4691027503f7153bbc30dac90612882", "relations": [{"rule": 2, "type": "equivalent", "target": "6ae8e56cf51a87521180f61084eb7bcf", "evidence": {"same_day": true, "patch_ids": ["358477a1cec264a432d027cbcee185b5"], "statement_hash": "fa7bede16d9a590a4165a6bf0c8da1a0a4691027503f7153bbc30dac90612882"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6ae8e56cf51a87521180f61084eb7bcf", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复 BRIN inet_minmax_multi_ops 操作符类中的网络掩码处理", "evidence": {"same_day": true, "patch_ids": ["358477a1cec264a432d027cbcee185b5"], "statement_hash": "fa7bede16d9a590a4165a6bf0c8da1a0a4691027503f7153bbc30dac90612882"}, "url": "/docs/compare/?release=14.8#14.8-699e47fb1424b3e7", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-e5bb441c311ceb8e", "cves": [], "html": "<p>修复在缓冲构建 GiST 索引期间对悬空指针的解引用（Alexander Lakhin）<a href=\"https://postgr.es/c/2dc77adc7\">§</a></p>\n<p>此错误在生产构建中通常是无害的，因为获取的值并不关键；但原则上可能导致服务器崩溃。</p>", "text": "修复在缓冲构建 GiST 索引期间对悬空指针的解引用（Alexander Lakhin）§ 此错误在生产构建中通常是无害的，因为获取的值并不关键；但原则上可能导致服务器崩溃。", "title": "修复在缓冲构建 GiST 索引期间对悬空指针的解引用", "commits": ["2dc77adc7"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "5cd22dc87b751270662bd2deb3600e10a6c0eea488ce437daa2a64168e9edff1", "section_path": ["变更"], "commit_groups": [["2adb6adad", "2dc77adc7", "8e5eef50c", "a1904c9ce", "b5c6776c1", "d2a1d4b19"]], "identity_text": "Fix dereference of dangling pointer during buffering build of a GiST index (Alexander Lakhin) This error seems to usually be harmless in production builds, as the fetched value is noncritical; but in principle it could cause a server crash.", "commit_aliases": ["2adb6adad", "2dc77adc7", "8e5eef50c", "a1904c9ce", "b5c6776c1", "d2a1d4b19"], "source_commits": ["2dc77adc7"], "source_entry_id": "15.3/changes/047", "db_id": "881b37bc3d35b49cc2a3e6f1a38e1a51", "patch_ids": ["250793eea519ee59e68b3d331296ef85"], "statement_hash": "eb7aef17b1330d1ca2cd4839c95f2c34d97c4ca5ae6a237407e85838dead6cfd", "relations": [{"rule": 2, "type": "equivalent", "target": "00515e00999afa5301d374d3aba7a4e6", "evidence": {"same_day": true, "patch_ids": ["250793eea519ee59e68b3d331296ef85"], "statement_hash": "eb7aef17b1330d1ca2cd4839c95f2c34d97c4ca5ae6a237407e85838dead6cfd"}}, {"rule": 2, "type": "equivalent", "target": "07609b27e921f3f4e7e25ea3fd1cbe7a", "evidence": {"same_day": true, "patch_ids": ["250793eea519ee59e68b3d331296ef85"], "statement_hash": "eb7aef17b1330d1ca2cd4839c95f2c34d97c4ca5ae6a237407e85838dead6cfd"}}, {"rule": 2, "type": "equivalent", "target": "95ddab1c9756f7501e7be634124a0b7a", "evidence": {"same_day": true, "patch_ids": ["250793eea519ee59e68b3d331296ef85"], "statement_hash": "eb7aef17b1330d1ca2cd4839c95f2c34d97c4ca5ae6a237407e85838dead6cfd"}}, {"rule": 2, "type": "equivalent", "target": "c924ce7f45f4f00ace0d04c0dfc9b995", "evidence": {"same_day": true, "patch_ids": ["250793eea519ee59e68b3d331296ef85"], "statement_hash": "eb7aef17b1330d1ca2cd4839c95f2c34d97c4ca5ae6a237407e85838dead6cfd"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c924ce7f45f4f00ace0d04c0dfc9b995", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复在缓冲构建 GiST 索引期间对悬空指针的解引用", "evidence": {"same_day": true, "patch_ids": ["250793eea519ee59e68b3d331296ef85"], "statement_hash": "eb7aef17b1330d1ca2cd4839c95f2c34d97c4ca5ae6a237407e85838dead6cfd"}, "url": "/docs/compare/?release=14.8#14.8-d0fc7bedd359c03a", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "00515e00999afa5301d374d3aba7a4e6", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复在缓冲构建 GiST 索引期间对悬空指针的解引用", "evidence": {"same_day": true, "patch_ids": ["250793eea519ee59e68b3d331296ef85"], "statement_hash": "eb7aef17b1330d1ca2cd4839c95f2c34d97c4ca5ae6a237407e85838dead6cfd"}, "url": "/docs/compare/?release=13.11#13.11-eff54d94b9550cbd", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "95ddab1c9756f7501e7be634124a0b7a", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复在缓冲构建 GiST 索引期间对悬空指针的解引用", "evidence": {"same_day": true, "patch_ids": ["250793eea519ee59e68b3d331296ef85"], "statement_hash": "eb7aef17b1330d1ca2cd4839c95f2c34d97c4ca5ae6a237407e85838dead6cfd"}, "url": "/docs/compare/?release=12.15#12.15-0fd0868865e20308", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "07609b27e921f3f4e7e25ea3fd1cbe7a", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复在缓冲构建 GiST 索引期间对悬空指针的解引用", "evidence": {"same_day": true, "patch_ids": ["250793eea519ee59e68b3d331296ef85"], "statement_hash": "eb7aef17b1330d1ca2cd4839c95f2c34d97c4ca5ae6a237407e85838dead6cfd"}, "url": "/docs/compare/?release=11.20#11.20-8b798413943b0712", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-ab36669c32091e61", "cves": [], "html": "<p>在逻辑复制更新或删除操作期间忽略已删除列和生成列（Onder Kalaci，Shi Yu）<a href=\"https://postgr.es/c/b6bf90edc\">§</a> <a href=\"https://postgr.es/c/3c12407f4\">§</a></p>\n<p>使用 <code>REPLICA IDENTITY FULL</code> 选项进行复制时，如果表包含此类列则会失败。</p>", "text": "在逻辑复制更新或删除操作期间忽略已删除列和生成列（Onder Kalaci，Shi Yu）§ § 使用 REPLICA IDENTITY FULL 选项进行复制时，如果表包含此类列则会失败。", "title": "在逻辑复制更新或删除操作期间忽略已删除列和生成列", "commits": ["3c12407f4", "b6bf90edc"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "61034a2e5c0cf5968a9f1721f14e0772f3cb5b417cefd8c4ec1db7cb35f51e4b", "section_path": ["变更"], "commit_groups": [["0f2d4adbf", "9dac02c77", "adedf54e6", "b6bf90edc", "be52fff91"], ["3c12407f4", "4cdaea7a2", "65ead7696", "751d6676d", "b797def59", "fc63e6ba8"]], "identity_text": "Ignore dropped columns and generated columns during logical replication of an update or delete action (Onder Kalaci, Shi Yu) Replication with the REPLICA IDENTITY FULL option failed if the table contained such columns.", "commit_aliases": ["0f2d4adbf", "3c12407f4", "4cdaea7a2", "65ead7696", "751d6676d", "9dac02c77", "adedf54e6", "b6bf90edc", "b797def59", "be52fff91", "fc63e6ba8"], "source_commits": ["3c12407f4", "b6bf90edc"], "source_entry_id": "15.3/changes/048", "db_id": "ded97d11de1d053427eefa34ef4589ea", "patch_ids": ["75deb6c46eb1ddc46d11db763118a10c", "ffe8cef9b55308208eabab205c2e8b29"], "statement_hash": "99d8049e91334411c8973f20602280dcde0375058db00e9cf740be9db7b8af41", "relations": [{"rule": 2, "type": "related", "target": "117a9c137b5d93999e49ba76ec4049a8", "evidence": {"same_day": true, "patch_ids": ["ffe8cef9b55308208eabab205c2e8b29"]}}, {"rule": 2, "type": "equivalent", "target": "74476bb8b536dc1cbf09cdec2745b33a", "evidence": {"same_day": true, "patch_ids": ["75deb6c46eb1ddc46d11db763118a10c", "ffe8cef9b55308208eabab205c2e8b29"], "statement_hash": "99d8049e91334411c8973f20602280dcde0375058db00e9cf740be9db7b8af41"}}, {"rule": 2, "type": "equivalent", "target": "b4925a516901aa6e98e9e6ac71fb9d47", "evidence": {"same_day": true, "patch_ids": ["75deb6c46eb1ddc46d11db763118a10c", "ffe8cef9b55308208eabab205c2e8b29"], "statement_hash": "99d8049e91334411c8973f20602280dcde0375058db00e9cf740be9db7b8af41"}}, {"rule": 2, "type": "equivalent", "target": "f341b1d10ddc07b4edc9242fc2de1b78", "evidence": {"same_day": true, "patch_ids": ["75deb6c46eb1ddc46d11db763118a10c", "ffe8cef9b55308208eabab205c2e8b29"], "statement_hash": "99d8049e91334411c8973f20602280dcde0375058db00e9cf740be9db7b8af41"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "74476bb8b536dc1cbf09cdec2745b33a", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在逻辑复制更新或删除操作期间忽略已删除列和生成列", "evidence": {"same_day": true, "patch_ids": ["75deb6c46eb1ddc46d11db763118a10c", "ffe8cef9b55308208eabab205c2e8b29"], "statement_hash": "99d8049e91334411c8973f20602280dcde0375058db00e9cf740be9db7b8af41"}, "url": "/docs/compare/?release=14.8#14.8-a8e2de180c233e47", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "b4925a516901aa6e98e9e6ac71fb9d47", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "在逻辑复制更新或删除操作期间忽略已删除列和生成列", "evidence": {"same_day": true, "patch_ids": ["75deb6c46eb1ddc46d11db763118a10c", "ffe8cef9b55308208eabab205c2e8b29"], "statement_hash": "99d8049e91334411c8973f20602280dcde0375058db00e9cf740be9db7b8af41"}, "url": "/docs/compare/?release=13.11#13.11-cc587dcb86fff15b", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "f341b1d10ddc07b4edc9242fc2de1b78", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "在逻辑复制更新或删除操作期间忽略已删除列和生成列", "evidence": {"same_day": true, "patch_ids": ["75deb6c46eb1ddc46d11db763118a10c", "ffe8cef9b55308208eabab205c2e8b29"], "statement_hash": "99d8049e91334411c8973f20602280dcde0375058db00e9cf740be9db7b8af41"}, "url": "/docs/compare/?release=12.15#12.15-d4a2033a7d8a115f", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "117a9c137b5d93999e49ba76ec4049a8", "kind": "related", "version": "11.20", "label": "11.20", "title": "逻辑复制更新或删除操作时忽略已删除列", "evidence": {"same_day": true, "patch_ids": ["ffe8cef9b55308208eabab205c2e8b29"]}, "url": "/docs/compare/?release=11.20#11.20-916ef8d470ffe1e8", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-11a3977e6d7a8c90", "cves": [], "html": "<p>修正提交时间戳的 SLRU 缓冲区 I/O 等待事件的名称（Alexander Lakhin）<a href=\"https://postgr.es/c/d31dab9a5\">§</a></p>\n<p>根据文档，此等待事件名为 <code>CommitTsBuffer</code>，但代码中为 <code>CommitTSBuffer</code>。将代码改为与文档一致，因为这样与相关等待事件的命名更加一致。</p>", "text": "修正提交时间戳的 SLRU 缓冲区 I/O 等待事件的名称（Alexander Lakhin）§ 根据文档，此等待事件名为 CommitTsBuffer，但代码中为 CommitTSBuffer。将代码改为与文档一致，因为这样与相关等待事件的命名更加一致。", "title": "修正提交时间戳的 SLRU 缓冲区 I/O 等待事件的名称", "commits": ["d31dab9a5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "e9e69847e38a1e679552f2726a636f582f5c40a7f15a13fa10c45151bdabba97", "section_path": ["变更"], "commit_groups": [["58f5edf84", "ae4ffa722", "cedcc4191", "d31dab9a5"]], "identity_text": "Correct the name of the wait event for SLRU buffer I/O for commit timestamps (Alexander Lakhin) This wait event is named CommitTsBuffer according to the documentation, but the code had it as CommitTSBuffer. Change the code to match the documentation, as that way is more consistent with the naming of related wait events.", "commit_aliases": ["58f5edf84", "ae4ffa722", "cedcc4191", "d31dab9a5"], "source_commits": ["d31dab9a5"], "source_entry_id": "15.3/changes/049", "db_id": "671c924b1c88eee7ebe085224c0ee8e4", "patch_ids": ["19ce485d499b61c33a3fff5496b09422"], "statement_hash": "6e771037a6df3ec2a83c14d68fe4cf2096326a3997994bc503836b03c959e9ca", "relations": [{"rule": 2, "type": "equivalent", "target": "3bc6520f994a816c451bd36ec375b881", "evidence": {"same_day": true, "patch_ids": ["19ce485d499b61c33a3fff5496b09422"], "statement_hash": "6e771037a6df3ec2a83c14d68fe4cf2096326a3997994bc503836b03c959e9ca"}}, {"rule": 2, "type": "equivalent", "target": "edc96a4db844bfe347d8a7e7581b5837", "evidence": {"same_day": true, "patch_ids": ["19ce485d499b61c33a3fff5496b09422"], "statement_hash": "6e771037a6df3ec2a83c14d68fe4cf2096326a3997994bc503836b03c959e9ca"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "edc96a4db844bfe347d8a7e7581b5837", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修正提交时间戳的 SLRU 缓冲区 I/O 等待事件的名称", "evidence": {"same_day": true, "patch_ids": ["19ce485d499b61c33a3fff5496b09422"], "statement_hash": "6e771037a6df3ec2a83c14d68fe4cf2096326a3997994bc503836b03c959e9ca"}, "url": "/docs/compare/?release=14.8#14.8-04f98ccc2569d401", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "3bc6520f994a816c451bd36ec375b881", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修正提交时间戳的 SLRU 缓冲区 I/O 等待事件的名称", "evidence": {"same_day": true, "patch_ids": ["19ce485d499b61c33a3fff5496b09422"], "statement_hash": "6e771037a6df3ec2a83c14d68fe4cf2096326a3997994bc503836b03c959e9ca"}, "url": "/docs/compare/?release=13.11#13.11-c4fd169858e16419", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}]}, {"id": "15.3-bb07c2f4198bb9cb", "cves": [], "html": "<p>重新激活等待事件 <code>SLRUFlushSync</code> 的报告（Thomas Munro）<a href=\"https://postgr.es/c/1ed1b84bd\">§</a></p>\n<p>此类等待的报告在代码重构中被意外移除。</p>", "text": "重新激活等待事件 SLRUFlushSync 的报告（Thomas Munro）§ 此类等待的报告在代码重构中被意外移除。", "title": "重新激活等待事件 SLRUFlushSync 的报告", "commits": ["1ed1b84bd"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "b4d330ab904ddd6e81cc1a7a470c26fdd81ec3e81706d0193b41da33fa820563", "section_path": ["变更"], "commit_groups": [["1ed1b84bd", "84cc14267", "aeb6f4b3b"]], "identity_text": "Re-activate reporting of wait event SLRUFlushSync (Thomas Munro) Reporting of this type of wait was accidentally removed in code refactoring.", "commit_aliases": ["1ed1b84bd", "84cc14267", "aeb6f4b3b"], "source_commits": ["1ed1b84bd"], "source_entry_id": "15.3/changes/050", "db_id": "77aa7d397ddb7609bd2ffb3293daa71d", "patch_ids": ["ad9c04718f041257b5af5e656db3c6e8"], "statement_hash": "a2db45b6292b10a345fc640de42d026cd2062ed528b7b2783c2b6eb11af1174b", "relations": [{"rule": 2, "type": "equivalent", "target": "06aa4d2c4c9e8b03a0b87db6fca34681", "evidence": {"same_day": true, "patch_ids": ["ad9c04718f041257b5af5e656db3c6e8"], "statement_hash": "a2db45b6292b10a345fc640de42d026cd2062ed528b7b2783c2b6eb11af1174b"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "06aa4d2c4c9e8b03a0b87db6fca34681", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "重新激活等待事件 SLRUFlushSync 的报告", "evidence": {"same_day": true, "patch_ids": ["ad9c04718f041257b5af5e656db3c6e8"], "statement_hash": "a2db45b6292b10a345fc640de42d026cd2062ed528b7b2783c2b6eb11af1174b"}, "url": "/docs/compare/?release=14.8#14.8-d256c8b2a396bca2", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-2f5c34f4c33f35c5", "cves": [], "html": "<p>避免在计算要保留多少 WAL 段时可能发生的下溢（Kyotaro Horiguchi）<a href=\"https://postgr.es/c/c98b06e2f\">§</a></p>\n<p>这可能导致无法准确遵守 <code>wal_keep_size</code> 设置。</p>", "text": "避免在计算要保留多少 WAL 段时可能发生的下溢（Kyotaro Horiguchi）§ 这可能导致无法准确遵守 wal_keep_size 设置。", "title": "避免在计算要保留多少 WAL 段时可能发生的下溢", "commits": ["c98b06e2f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "5700459801b8980f2ad1d9157e30dfb4b665f6279c6a8cfdb033449f9b11d65f", "section_path": ["变更"], "commit_groups": [["137003036", "b72623671", "be40dd63e", "c98b06e2f"]], "identity_text": "Avoid possible underflow when calculating how many WAL segments to keep (Kyotaro Horiguchi) This could result in not honoring wal_keep_size accurately.", "commit_aliases": ["137003036", "b72623671", "be40dd63e", "c98b06e2f"], "source_commits": ["c98b06e2f"], "source_entry_id": "15.3/changes/051", "db_id": "d6742159e3b68f82bd02cbe4d8fcc4c5", "patch_ids": ["c191b1d7fb8c0ef0b7c9c5a2d152ea17"], "statement_hash": "4fd331ffcdfe9404b698caafec8c8b098c724e925671936a26ff246786c7cab1", "relations": [{"rule": 2, "type": "equivalent", "target": "634a1e10add9e1b4339c8120f026cfc2", "evidence": {"same_day": true, "patch_ids": ["c191b1d7fb8c0ef0b7c9c5a2d152ea17"], "statement_hash": "4fd331ffcdfe9404b698caafec8c8b098c724e925671936a26ff246786c7cab1"}}, {"rule": 2, "type": "equivalent", "target": "b47062be4de3c88be06587f8676f339d", "evidence": {"same_day": true, "patch_ids": ["c191b1d7fb8c0ef0b7c9c5a2d152ea17"], "statement_hash": "4fd331ffcdfe9404b698caafec8c8b098c724e925671936a26ff246786c7cab1"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "634a1e10add9e1b4339c8120f026cfc2", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免在计算要保留多少 WAL 段时可能发生的下溢", "evidence": {"same_day": true, "patch_ids": ["c191b1d7fb8c0ef0b7c9c5a2d152ea17"], "statement_hash": "4fd331ffcdfe9404b698caafec8c8b098c724e925671936a26ff246786c7cab1"}, "url": "/docs/compare/?release=14.8#14.8-bf7363e0ff3a5c58", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "b47062be4de3c88be06587f8676f339d", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "避免在计算要保留多少 WAL 段时可能发生的下溢", "evidence": {"same_day": true, "patch_ids": ["c191b1d7fb8c0ef0b7c9c5a2d152ea17"], "statement_hash": "4fd331ffcdfe9404b698caafec8c8b098c724e925671936a26ff246786c7cab1"}, "url": "/docs/compare/?release=13.11#13.11-3d864dd8df6e0fbf", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}]}, {"id": "15.3-6d9d3e9d70aabbbc", "cves": [], "html": "<p>在备库模式下禁用启动进度报告的开销（Bharath Rupireddy）<a href=\"https://postgr.es/c/ecb01e6eb\">§</a></p>\n<p>在备库模式下，我们实际上不报告恢复进度，但却仍在做跟踪工作。</p>", "text": "在备库模式下禁用启动进度报告的开销（Bharath Rupireddy）§ 在备库模式下，我们实际上不报告恢复进度，但却仍在做跟踪工作。", "title": "在备库模式下禁用启动进度报告的开销", "commits": ["ecb01e6eb"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "0e10d1b9dafe839bbb0de4d101b5d2e2cf435bc60788e1be966eac64a95badf7", "section_path": ["变更"], "commit_groups": [["8a2f783cc", "ecb01e6eb"]], "identity_text": "Disable startup progress reporting overhead in standby mode (Bharath Rupireddy) In standby mode, we don't actually report progress of recovery, but we were doing work to track it anyway.", "commit_aliases": ["8a2f783cc", "ecb01e6eb"], "source_commits": ["ecb01e6eb"], "source_entry_id": "15.3/changes/052", "db_id": "97da372c3f14a09e7c321b9c587a0d83", "patch_ids": ["c6243601ca9b8232ba74d836d8c62eaa"], "statement_hash": "b543ad074e5f11d684f640c0c2f57a1d3cf899c6e45bb37c724ddd5881153f0d", "relations": [], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-fbdbc4aaeb8bc997", "cves": [], "html": "<p>支持使用 SCRAM-SHA-256 通道绑定的 RSA-PSS 证书（Jacob Champion，Heikki Linnakangas）<a href=\"https://postgr.es/c/5fd61055e\">§</a></p>\n<p>此功能需要使用 OpenSSL 1.1.1 或更新版本构建。服务器和 <span>libpq</span> 都受到影响。</p>", "text": "支持使用 SCRAM-SHA-256 通道绑定的 RSA-PSS 证书（Jacob Champion，Heikki Linnakangas）§ 此功能需要使用 OpenSSL 1.1.1 或更新版本构建。服务器和 libpq 都受到影响。", "title": "支持使用 SCRAM-SHA-256 通道绑定的 RSA-PSS 证书", "commits": ["5fd61055e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "51441d15f5a2dee6115aab6e516e95ec13cc422f16bd5e96b3bbd7d875affa80", "section_path": ["变更"], "commit_groups": [["2eb8e54cc", "5fd61055e", "864f80fea", "88d606f7c", "9244c11af", "a40e7b75e"]], "identity_text": "Support RSA-PSS certificates with SCRAM-SHA-256 channel binding (Jacob Champion, Heikki Linnakangas) This feature requires building with OpenSSL 1.1.1 or newer. Both the server and libpq are affected.", "commit_aliases": ["2eb8e54cc", "5fd61055e", "864f80fea", "88d606f7c", "9244c11af", "a40e7b75e"], "source_commits": ["5fd61055e"], "source_entry_id": "15.3/changes/053", "db_id": "274fd28c4afae7b51249ee4a2a182f2b", "patch_ids": ["e625d04fba2f9773fd82292dca496176"], "statement_hash": "6e0ea294a72b506c7492c78b696add61a2c1dbfe268a4ec59291ddd16cbc8799", "relations": [{"rule": 2, "type": "equivalent", "target": "25ae38a0354e4efd861018a0558a5ac3", "evidence": {"same_day": true, "patch_ids": ["e625d04fba2f9773fd82292dca496176"], "statement_hash": "6e0ea294a72b506c7492c78b696add61a2c1dbfe268a4ec59291ddd16cbc8799"}}, {"rule": 2, "type": "equivalent", "target": "6515808f7b93d1277d699d08dd44b8a3", "evidence": {"same_day": true, "patch_ids": ["e625d04fba2f9773fd82292dca496176"], "statement_hash": "6e0ea294a72b506c7492c78b696add61a2c1dbfe268a4ec59291ddd16cbc8799"}}, {"rule": 2, "type": "equivalent", "target": "bcb72efca17b9b4ee75a511a2677741c", "evidence": {"same_day": true, "patch_ids": ["e625d04fba2f9773fd82292dca496176"], "statement_hash": "6e0ea294a72b506c7492c78b696add61a2c1dbfe268a4ec59291ddd16cbc8799"}}, {"rule": 2, "type": "equivalent", "target": "f96883c34f8ace29d25f5834e111ca45", "evidence": {"same_day": true, "patch_ids": ["e625d04fba2f9773fd82292dca496176"], "statement_hash": "6e0ea294a72b506c7492c78b696add61a2c1dbfe268a4ec59291ddd16cbc8799"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6515808f7b93d1277d699d08dd44b8a3", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "支持使用 SCRAM-SHA-256 通道绑定的 RSA-PSS 证书", "evidence": {"same_day": true, "patch_ids": ["e625d04fba2f9773fd82292dca496176"], "statement_hash": "6e0ea294a72b506c7492c78b696add61a2c1dbfe268a4ec59291ddd16cbc8799"}, "url": "/docs/compare/?release=14.8#14.8-b2fab1d96a3dd1c8", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "f96883c34f8ace29d25f5834e111ca45", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "支持使用 SCRAM-SHA-256 通道绑定的 RSA-PSS 证书", "evidence": {"same_day": true, "patch_ids": ["e625d04fba2f9773fd82292dca496176"], "statement_hash": "6e0ea294a72b506c7492c78b696add61a2c1dbfe268a4ec59291ddd16cbc8799"}, "url": "/docs/compare/?release=13.11#13.11-001e065630fe3631", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "bcb72efca17b9b4ee75a511a2677741c", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "支持使用 SCRAM-SHA-256 通道绑定的 RSA-PSS 证书", "evidence": {"same_day": true, "patch_ids": ["e625d04fba2f9773fd82292dca496176"], "statement_hash": "6e0ea294a72b506c7492c78b696add61a2c1dbfe268a4ec59291ddd16cbc8799"}, "url": "/docs/compare/?release=12.15#12.15-25f07c72c0f4339f", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "25ae38a0354e4efd861018a0558a5ac3", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "支持使用 SCRAM-SHA-256 通道绑定的 RSA-PSS 证书", "evidence": {"same_day": true, "patch_ids": ["e625d04fba2f9773fd82292dca496176"], "statement_hash": "6e0ea294a72b506c7492c78b696add61a2c1dbfe268a4ec59291ddd16cbc8799"}, "url": "/docs/compare/?release=11.20#11.20-cdc488b09da6dca2", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-59ce68c0da01c1a9", "cves": [], "html": "<p>避免在 Windows 上进程 ID 跟踪的竞态条件（Thomas Munro）<a href=\"https://postgr.es/c/06066915d\">§</a> <a href=\"https://postgr.es/c/75e7378f6\">§</a> <a href=\"https://postgr.es/c/e8a774d00\">§</a></p>\n<p>操作系统可能在 postmaster 观察到子进程已退出之前回收其 PID。这可能导致使用相同的 PID 跟踪多个子进程，从而造成混乱。</p>", "text": "避免在 Windows 上进程 ID 跟踪的竞态条件（Thomas Munro）§ § § 操作系统可能在 postmaster 观察到子进程已退出之前回收其 PID。这可能导致使用相同的 PID 跟踪多个子进程，从而造成混乱。", "title": "避免在 Windows 上进程 ID 跟踪的竞态条件", "commits": ["06066915d", "75e7378f6", "e8a774d00"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "e43265f0a6333098468084d75f8580afb139103a66590da0fa158ffd4eff66be", "section_path": ["变更"], "commit_groups": [["00fc4b3a3", "6a9229da6", "6f508b8bc", "75e7378f6", "798dae9f6", "9d6c34397"], ["06066915d", "5ff8e69d8", "836288427", "9b6e0b9c3", "9f1c64018", "d41a178b3"], ["10b6745d3", "1c0d4affa", "77a8133c9", "8fcd1517f", "b23f2a729", "e8a774d00"]], "identity_text": "Avoid race condition with process ID tracking on Windows (Thomas Munro) The operating system could recycle a PID before the postmaster observed that that child process was gone. This could lead to tracking more than one child with the same PID, resulting in confusion.", "commit_aliases": ["00fc4b3a3", "06066915d", "10b6745d3", "1c0d4affa", "5ff8e69d8", "6a9229da6", "6f508b8bc", "75e7378f6", "77a8133c9", "798dae9f6", "836288427", "8fcd1517f", "9b6e0b9c3", "9d6c34397", "9f1c64018", "b23f2a729", "d41a178b3", "e8a774d00"], "source_commits": ["06066915d", "75e7378f6", "e8a774d00"], "source_entry_id": "15.3/changes/054", "db_id": "da157455ca2f3ede8613fab58a954458", "patch_ids": ["561b45d1485e6223a2347af903e432f3", "a11e2eab7889510b33e84adb63d31ac0", "ad8a451c23bcf7a46b52d14218673c41"], "statement_hash": "700f8424fbc8241245d75f502fff18eb26ffe07b073fb0f9f632aebd88f8ac1a", "relations": [{"rule": 2, "type": "equivalent", "target": "7d133fdb98b079ee08a8863aac3cea2f", "evidence": {"same_day": true, "patch_ids": ["561b45d1485e6223a2347af903e432f3", "a11e2eab7889510b33e84adb63d31ac0", "ad8a451c23bcf7a46b52d14218673c41"], "statement_hash": "700f8424fbc8241245d75f502fff18eb26ffe07b073fb0f9f632aebd88f8ac1a"}}, {"rule": 2, "type": "equivalent", "target": "835abdd4d1833272a86deabf78c20ea8", "evidence": {"same_day": true, "patch_ids": ["561b45d1485e6223a2347af903e432f3", "a11e2eab7889510b33e84adb63d31ac0", "ad8a451c23bcf7a46b52d14218673c41"], "statement_hash": "700f8424fbc8241245d75f502fff18eb26ffe07b073fb0f9f632aebd88f8ac1a"}}, {"rule": 2, "type": "equivalent", "target": "941cc3924aa28115fb8d3b90fad01b1a", "evidence": {"same_day": true, "patch_ids": ["561b45d1485e6223a2347af903e432f3", "a11e2eab7889510b33e84adb63d31ac0", "ad8a451c23bcf7a46b52d14218673c41"], "statement_hash": "700f8424fbc8241245d75f502fff18eb26ffe07b073fb0f9f632aebd88f8ac1a"}}, {"rule": 2, "type": "equivalent", "target": "afddbe5adbc25b46d06d46d3a625bc85", "evidence": {"same_day": true, "patch_ids": ["561b45d1485e6223a2347af903e432f3", "a11e2eab7889510b33e84adb63d31ac0", "ad8a451c23bcf7a46b52d14218673c41"], "statement_hash": "700f8424fbc8241245d75f502fff18eb26ffe07b073fb0f9f632aebd88f8ac1a"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "941cc3924aa28115fb8d3b90fad01b1a", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免在 Windows 上进程 ID 跟踪的竞态条件", "evidence": {"same_day": true, "patch_ids": ["561b45d1485e6223a2347af903e432f3", "a11e2eab7889510b33e84adb63d31ac0", "ad8a451c23bcf7a46b52d14218673c41"], "statement_hash": "700f8424fbc8241245d75f502fff18eb26ffe07b073fb0f9f632aebd88f8ac1a"}, "url": "/docs/compare/?release=14.8#14.8-d5859304019e1b9e", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "7d133fdb98b079ee08a8863aac3cea2f", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "避免在 Windows 上进程 ID 跟踪的竞态条件", "evidence": {"same_day": true, "patch_ids": ["561b45d1485e6223a2347af903e432f3", "a11e2eab7889510b33e84adb63d31ac0", "ad8a451c23bcf7a46b52d14218673c41"], "statement_hash": "700f8424fbc8241245d75f502fff18eb26ffe07b073fb0f9f632aebd88f8ac1a"}, "url": "/docs/compare/?release=13.11#13.11-463bc15c20676fea", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "afddbe5adbc25b46d06d46d3a625bc85", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "避免在 Windows 上进程 ID 跟踪的竞态条件", "evidence": {"same_day": true, "patch_ids": ["561b45d1485e6223a2347af903e432f3", "a11e2eab7889510b33e84adb63d31ac0", "ad8a451c23bcf7a46b52d14218673c41"], "statement_hash": "700f8424fbc8241245d75f502fff18eb26ffe07b073fb0f9f632aebd88f8ac1a"}, "url": "/docs/compare/?release=12.15#12.15-b7de5cc82401da7a", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "835abdd4d1833272a86deabf78c20ea8", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "避免在 Windows 上进程 ID 跟踪的竞态条件", "evidence": {"same_day": true, "patch_ids": ["561b45d1485e6223a2347af903e432f3", "a11e2eab7889510b33e84adb63d31ac0", "ad8a451c23bcf7a46b52d14218673c41"], "statement_hash": "700f8424fbc8241245d75f502fff18eb26ffe07b073fb0f9f632aebd88f8ac1a"}, "url": "/docs/compare/?release=11.20#11.20-5a983a6a3080363e", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-5bc7a23997278d7c", "cves": [], "html": "<p>修复 <code>list_copy_head()</code> 在空 List 上的正确工作（David Rowley）<a href=\"https://postgr.es/c/63a03aea6\">§</a></p>\n<p>目前没有已知的 <span>PostgreSQL</span> 核心代码会触发此情况，但扩展可能依赖于它的正确工作。</p>", "text": "修复 list_copy_head() 在空 List 上的正确工作（David Rowley）§ 目前没有已知的 PostgreSQL 核心代码会触发此情况，但扩展可能依赖于它的正确工作。", "title": "修复 list_copy_head() 在空 List 上的正确工作", "commits": ["63a03aea6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "47ff3069694b2f57654b2b9a186e738bb41269c950fd8a9e361f28db3702a788", "section_path": ["变更"], "commit_groups": [["63a03aea6", "e35ded295"]], "identity_text": "Fix list_copy_head() to work correctly on an empty List (David Rowley) This case is not known to be reached by any core PostgreSQL code, but extensions might rely on it working.", "commit_aliases": ["63a03aea6", "e35ded295"], "source_commits": ["63a03aea6"], "source_entry_id": "15.3/changes/055", "db_id": "20bce44c2189257bd812d128b779c824", "patch_ids": ["adaf527efe844e7305cd6c7683fe0ede"], "statement_hash": "d0ecc9b5a64f496a1d4c96be92e3d1a2a869472bf385581aac57b354d48a1dc3", "relations": [], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-4edfeeaf7b996f6c", "cves": [], "html": "<p>为 <code>SPI_result_code_string()</code> 添加缺失的分支（Dean Rasheed）<a href=\"https://postgr.es/c/576b25bfd\">§</a></p>", "text": "为 SPI_result_code_string() 添加缺失的分支（Dean Rasheed）§", "title": "为 SPI_result_code_string() 添加缺失的分支", "commits": ["576b25bfd"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "ce76f34a1d9ee2bbecfbc7987ed7c50587cf96d36c87621f07764c384c3f1fb2", "section_path": ["变更"], "commit_groups": [["482ab3e4f", "52dbd9f84", "576b25bfd", "83a54d966", "906356cf6", "d0460a31d"]], "identity_text": "Add missing cases to SPI_result_code_string() (Dean Rasheed)", "commit_aliases": ["482ab3e4f", "52dbd9f84", "576b25bfd", "83a54d966", "906356cf6", "d0460a31d"], "source_commits": ["576b25bfd"], "source_entry_id": "15.3/changes/056", "db_id": "d4441003a82a5de0b62c43f61a9366ac", "patch_ids": ["888323790e045d647ae6f0b3a0590620"], "statement_hash": "f0c756681470ce057d3943270ae9052fe1c712dac31c34fc1183355ed408ad38", "relations": [{"rule": 2, "type": "equivalent", "target": "3cc7cc774eaa1435fd93bb6a4c6d7da2", "evidence": {"same_day": true, "patch_ids": ["888323790e045d647ae6f0b3a0590620"], "statement_hash": "f0c756681470ce057d3943270ae9052fe1c712dac31c34fc1183355ed408ad38"}}, {"rule": 2, "type": "equivalent", "target": "5d864daed6a674af9c1348226b3c7b6d", "evidence": {"same_day": true, "patch_ids": ["888323790e045d647ae6f0b3a0590620"], "statement_hash": "f0c756681470ce057d3943270ae9052fe1c712dac31c34fc1183355ed408ad38"}}, {"rule": 2, "type": "equivalent", "target": "81c2f556dba03dd91163ae39c00c383d", "evidence": {"same_day": true, "patch_ids": ["888323790e045d647ae6f0b3a0590620"], "statement_hash": "f0c756681470ce057d3943270ae9052fe1c712dac31c34fc1183355ed408ad38"}}, {"rule": 2, "type": "equivalent", "target": "f3654d5c67a3c7952eb4fbe1a4326cb2", "evidence": {"same_day": true, "patch_ids": ["888323790e045d647ae6f0b3a0590620"], "statement_hash": "f0c756681470ce057d3943270ae9052fe1c712dac31c34fc1183355ed408ad38"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "81c2f556dba03dd91163ae39c00c383d", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "为 SPI_result_code_string() 添加缺失的分支", "evidence": {"same_day": true, "patch_ids": ["888323790e045d647ae6f0b3a0590620"], "statement_hash": "f0c756681470ce057d3943270ae9052fe1c712dac31c34fc1183355ed408ad38"}, "url": "/docs/compare/?release=14.8#14.8-3fc5b74d497a9c3c", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "5d864daed6a674af9c1348226b3c7b6d", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "为 SPI_result_code_string() 添加缺失的分支", "evidence": {"same_day": true, "patch_ids": ["888323790e045d647ae6f0b3a0590620"], "statement_hash": "f0c756681470ce057d3943270ae9052fe1c712dac31c34fc1183355ed408ad38"}, "url": "/docs/compare/?release=13.11#13.11-34e2335a91a630d3", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "3cc7cc774eaa1435fd93bb6a4c6d7da2", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "为 SPI_result_code_string() 添加缺失的分支", "evidence": {"same_day": true, "patch_ids": ["888323790e045d647ae6f0b3a0590620"], "statement_hash": "f0c756681470ce057d3943270ae9052fe1c712dac31c34fc1183355ed408ad38"}, "url": "/docs/compare/?release=12.15#12.15-63f42e9f86f48a03", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "f3654d5c67a3c7952eb4fbe1a4326cb2", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "为 SPI_result_code_string() 添加缺失的分支", "evidence": {"same_day": true, "patch_ids": ["888323790e045d647ae6f0b3a0590620"], "statement_hash": "f0c756681470ce057d3943270ae9052fe1c712dac31c34fc1183355ed408ad38"}, "url": "/docs/compare/?release=11.20#11.20-7a7171a457a340c5", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-a4a75b10881514d3", "cves": [], "html": "<p>修复 <code>AllocSetRealloc()</code> 中错误的 Valgrind 标记（Karina Litskevich）<a href=\"https://postgr.es/c/f6a55c1d5\">§</a></p>\n<p>在大型（&gt;8kB）palloc 块的大小被减小这种不常见的情况下，启用 Valgrind 的构建会错误标记从块中释放的内存的已定义状态，可能在 Valgrind 测试期间导致不正确的结果。</p>", "text": "修复 AllocSetRealloc() 中错误的 Valgrind 标记（Karina Litskevich）§ 在大型（>8kB）palloc 块的大小被减小这种不常见的情况下，启用 Valgrind 的构建会错误标记从块中释放的内存的已定义状态，可能在 Valgrind 测试期间导致不正确的结果。", "title": "修复 AllocSetRealloc() 中错误的 Valgrind 标记", "commits": ["f6a55c1d5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "93c1b1a216a4ff4f82dcc47deb6f6884d0ea17292a43ab20dac68f7a363043b7", "section_path": ["变更"], "commit_groups": [["21bd818d0", "463bef383", "99e74cd23", "b3e184a5d", "dc44180f6", "f6a55c1d5"]], "identity_text": "Fix erroneous Valgrind markings in AllocSetRealloc() (Karina Litskevich) In the unusual case where the size of a large (>8kB) palloc chunk is decreased, a Valgrind-aware build would mismark the defined-ness state of the memory released from the chunk, possibly causing incorrect results during Valgrind testing.", "commit_aliases": ["21bd818d0", "463bef383", "99e74cd23", "b3e184a5d", "dc44180f6", "f6a55c1d5"], "source_commits": ["f6a55c1d5"], "source_entry_id": "15.3/changes/057", "db_id": "6c3250ca649c5365a383d87266b2160b", "patch_ids": ["f9e487f9a94295b41af49c4abe56b413"], "statement_hash": "17e5eff1e4cad9485f0ba3877a93b00181e211db8b14ae6d52612b62f3b22e67", "relations": [{"rule": 2, "type": "equivalent", "target": "2f33ed2911e1668c83cb6378af127213", "evidence": {"same_day": true, "patch_ids": ["f9e487f9a94295b41af49c4abe56b413"], "statement_hash": "17e5eff1e4cad9485f0ba3877a93b00181e211db8b14ae6d52612b62f3b22e67"}}, {"rule": 2, "type": "equivalent", "target": "86a04d1232e534a3dcaf18c2cab4efbe", "evidence": {"same_day": true, "patch_ids": ["f9e487f9a94295b41af49c4abe56b413"], "statement_hash": "17e5eff1e4cad9485f0ba3877a93b00181e211db8b14ae6d52612b62f3b22e67"}}, {"rule": 2, "type": "equivalent", "target": "b801549b497440a3eb5a01f48673526b", "evidence": {"same_day": true, "patch_ids": ["f9e487f9a94295b41af49c4abe56b413"], "statement_hash": "17e5eff1e4cad9485f0ba3877a93b00181e211db8b14ae6d52612b62f3b22e67"}}, {"rule": 2, "type": "equivalent", "target": "c87e0797e562177e33441575c530de58", "evidence": {"same_day": true, "patch_ids": ["f9e487f9a94295b41af49c4abe56b413"], "statement_hash": "17e5eff1e4cad9485f0ba3877a93b00181e211db8b14ae6d52612b62f3b22e67"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "86a04d1232e534a3dcaf18c2cab4efbe", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复 AllocSetRealloc() 中错误的 Valgrind 标记", "evidence": {"same_day": true, "patch_ids": ["f9e487f9a94295b41af49c4abe56b413"], "statement_hash": "17e5eff1e4cad9485f0ba3877a93b00181e211db8b14ae6d52612b62f3b22e67"}, "url": "/docs/compare/?release=14.8#14.8-fde642aed0693bde", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "c87e0797e562177e33441575c530de58", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复 AllocSetRealloc() 中错误的 Valgrind 标记", "evidence": {"same_day": true, "patch_ids": ["f9e487f9a94295b41af49c4abe56b413"], "statement_hash": "17e5eff1e4cad9485f0ba3877a93b00181e211db8b14ae6d52612b62f3b22e67"}, "url": "/docs/compare/?release=13.11#13.11-3fd1dba5d25cd708", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "2f33ed2911e1668c83cb6378af127213", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复 AllocSetRealloc() 中错误的 Valgrind 标记", "evidence": {"same_day": true, "patch_ids": ["f9e487f9a94295b41af49c4abe56b413"], "statement_hash": "17e5eff1e4cad9485f0ba3877a93b00181e211db8b14ae6d52612b62f3b22e67"}, "url": "/docs/compare/?release=12.15#12.15-95101f1f3db8eb26", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "b801549b497440a3eb5a01f48673526b", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复 AllocSetRealloc() 中错误的 Valgrind 标记", "evidence": {"same_day": true, "patch_ids": ["f9e487f9a94295b41af49c4abe56b413"], "statement_hash": "17e5eff1e4cad9485f0ba3877a93b00181e211db8b14ae6d52612b62f3b22e67"}, "url": "/docs/compare/?release=11.20#11.20-ed93ac4e093eee3d", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-4b03172331cac6bc", "cves": [], "html": "<p>修复对启用了行级安全的分区表执行 <code>MERGE</code> 时的断言失败（Dean Rasheed）<a href=\"https://postgr.es/c/d8c3b65db\">§</a></p>", "text": "修复对启用了行级安全的分区表执行 MERGE 时的断言失败（Dean Rasheed）§", "title": "修复对启用了行级安全的分区表执行 MERGE 时的断言失败", "commits": ["d8c3b65db"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "3bb204588f311e6b81672821838dd4f92db67a82410ed73b174beeaca2cfb010", "section_path": ["变更"], "commit_groups": [["0d3b49d4a", "d8c3b65db"]], "identity_text": "Fix assertion failure for MERGE into a partitioned table with row-level security enabled (Dean Rasheed)", "commit_aliases": ["0d3b49d4a", "d8c3b65db"], "source_commits": ["d8c3b65db"], "source_entry_id": "15.3/changes/058", "db_id": "af72fcf2bdc0353b02a1c44f35a3f9aa", "patch_ids": ["1be420b5cbc594a145721f168ed0c6cc"], "statement_hash": "6416f458f5abdcc41f2e65c5cb834fccb3d13bf38ad8236b861f6681ff6fbbd6", "relations": [], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-bd7a6e650dd474d0", "cves": [], "html": "<p>避免在解码事务性逻辑复制消息时发生断言失败（Tomas Vondra）<a href=\"https://postgr.es/c/949ac32e1\">§</a></p>", "text": "避免在解码事务性逻辑复制消息时发生断言失败（Tomas Vondra）§", "title": "避免在解码事务性逻辑复制消息时发生断言失败", "commits": ["949ac32e1"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "c3573e5ab6ecd176d7e0bcaf74b9d4eef7b684b968baca0322b877432e29b358", "section_path": ["变更"], "commit_groups": [["497f863f0", "4df581fa0", "7fe1aa991", "8b9cbd42b", "8de91ebf2", "949ac32e1"]], "identity_text": "Avoid assertion failure when decoding a transactional logical replication message (Tomas Vondra)", "commit_aliases": ["497f863f0", "4df581fa0", "7fe1aa991", "8b9cbd42b", "8de91ebf2", "949ac32e1"], "source_commits": ["949ac32e1"], "source_entry_id": "15.3/changes/059", "db_id": "b75a7a5c8e82f65f120d5761a8a3bcf7", "patch_ids": ["993c0e51a0c890c0eb8d2798725b3f6f"], "statement_hash": "2421bb227dde85cb11eac1d49fb6ddbffec3e49bbd31c0eb0f41ae2e233d6d5f", "relations": [{"rule": 2, "type": "equivalent", "target": "62f6368c37e45cb0c364636899380e1d", "evidence": {"same_day": true, "patch_ids": ["993c0e51a0c890c0eb8d2798725b3f6f"], "statement_hash": "2421bb227dde85cb11eac1d49fb6ddbffec3e49bbd31c0eb0f41ae2e233d6d5f"}}, {"rule": 2, "type": "equivalent", "target": "872e5bdf1aa4ee25aafda473352e755f", "evidence": {"same_day": true, "patch_ids": ["993c0e51a0c890c0eb8d2798725b3f6f"], "statement_hash": "2421bb227dde85cb11eac1d49fb6ddbffec3e49bbd31c0eb0f41ae2e233d6d5f"}}, {"rule": 2, "type": "equivalent", "target": "e772971c4aa74c5dc78910f9da822a27", "evidence": {"same_day": true, "patch_ids": ["993c0e51a0c890c0eb8d2798725b3f6f"], "statement_hash": "2421bb227dde85cb11eac1d49fb6ddbffec3e49bbd31c0eb0f41ae2e233d6d5f"}}, {"rule": 2, "type": "equivalent", "target": "f1aa7dddefc6d34bb88bcb947cce2ff8", "evidence": {"same_day": true, "patch_ids": ["993c0e51a0c890c0eb8d2798725b3f6f"], "statement_hash": "2421bb227dde85cb11eac1d49fb6ddbffec3e49bbd31c0eb0f41ae2e233d6d5f"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f1aa7dddefc6d34bb88bcb947cce2ff8", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免在解码事务性逻辑复制消息时发生断言失败", "evidence": {"same_day": true, "patch_ids": ["993c0e51a0c890c0eb8d2798725b3f6f"], "statement_hash": "2421bb227dde85cb11eac1d49fb6ddbffec3e49bbd31c0eb0f41ae2e233d6d5f"}, "url": "/docs/compare/?release=14.8#14.8-4b1cf656968eba14", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "62f6368c37e45cb0c364636899380e1d", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "避免在解码事务性逻辑复制消息时发生断言失败", "evidence": {"same_day": true, "patch_ids": ["993c0e51a0c890c0eb8d2798725b3f6f"], "statement_hash": "2421bb227dde85cb11eac1d49fb6ddbffec3e49bbd31c0eb0f41ae2e233d6d5f"}, "url": "/docs/compare/?release=13.11#13.11-84dd90180a7b9edc", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "872e5bdf1aa4ee25aafda473352e755f", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "避免在解码事务性逻辑复制消息时发生断言失败", "evidence": {"same_day": true, "patch_ids": ["993c0e51a0c890c0eb8d2798725b3f6f"], "statement_hash": "2421bb227dde85cb11eac1d49fb6ddbffec3e49bbd31c0eb0f41ae2e233d6d5f"}, "url": "/docs/compare/?release=12.15#12.15-a57786561dc35b2d", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "e772971c4aa74c5dc78910f9da822a27", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "避免在解码事务性逻辑复制消息时发生断言失败", "evidence": {"same_day": true, "patch_ids": ["993c0e51a0c890c0eb8d2798725b3f6f"], "statement_hash": "2421bb227dde85cb11eac1d49fb6ddbffec3e49bbd31c0eb0f41ae2e233d6d5f"}, "url": "/docs/compare/?release=11.20#11.20-05323aa8fb879445", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-80d8a40b762f8280", "cves": [], "html": "<p>避免在处理正则表达式转义时的区域设置敏感性（Jeff Davis）<a href=\"https://postgr.es/c/109363de0\">§</a></p>\n<p>反斜杠后跟非 ASCII 字符有时会导致断言失败，具体取决于当前的区域设置。</p>", "text": "避免在处理正则表达式转义时的区域设置敏感性（Jeff Davis）§ 反斜杠后跟非 ASCII 字符有时会导致断言失败，具体取决于当前的区域设置。", "title": "避免在处理正则表达式转义时的区域设置敏感性", "commits": ["109363de0"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "99fa701c6b550a36d089b4e73aa51027f634eb2e726b84886f7c3e66fb5c4381", "section_path": ["变更"], "commit_groups": [["106a1bf82", "109363de0", "5bcb15b81", "79a66c617", "c04c6c5d6", "dde926b0f"]], "identity_text": "Avoid locale sensitivity when processing regular expression escapes (Jeff Davis) A backslash followed by a non-ASCII character could sometimes cause an assertion failure, depending on the prevailing locale.", "commit_aliases": ["106a1bf82", "109363de0", "5bcb15b81", "79a66c617", "c04c6c5d6", "dde926b0f"], "source_commits": ["109363de0"], "source_entry_id": "15.3/changes/060", "db_id": "c1b9e9a32e8cc1ab562071f9b1fc1e8b", "patch_ids": ["3184841dac8c63ee6413d82d8fbaaef5"], "statement_hash": "29c2c96dc946c034a32a13439bafa9ed862cb5263ccb0af5151986eff8cef285", "relations": [{"rule": 2, "type": "equivalent", "target": "5cb554f28da3262f81d95b26e3313e1a", "evidence": {"same_day": true, "patch_ids": ["3184841dac8c63ee6413d82d8fbaaef5"], "statement_hash": "29c2c96dc946c034a32a13439bafa9ed862cb5263ccb0af5151986eff8cef285"}}, {"rule": 2, "type": "equivalent", "target": "76dc55d85eeba20b836339c8a1e5f037", "evidence": {"same_day": true, "patch_ids": ["3184841dac8c63ee6413d82d8fbaaef5"], "statement_hash": "29c2c96dc946c034a32a13439bafa9ed862cb5263ccb0af5151986eff8cef285"}}, {"rule": 2, "type": "equivalent", "target": "772ff31a8cc00370cdf5c2eead9804e7", "evidence": {"same_day": true, "patch_ids": ["3184841dac8c63ee6413d82d8fbaaef5"], "statement_hash": "29c2c96dc946c034a32a13439bafa9ed862cb5263ccb0af5151986eff8cef285"}}, {"rule": 2, "type": "equivalent", "target": "f0c4ad68d7af58b7cdae4cad906542d9", "evidence": {"same_day": true, "patch_ids": ["3184841dac8c63ee6413d82d8fbaaef5"], "statement_hash": "29c2c96dc946c034a32a13439bafa9ed862cb5263ccb0af5151986eff8cef285"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f0c4ad68d7af58b7cdae4cad906542d9", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免在处理正则表达式转义时的区域设置敏感性", "evidence": {"same_day": true, "patch_ids": ["3184841dac8c63ee6413d82d8fbaaef5"], "statement_hash": "29c2c96dc946c034a32a13439bafa9ed862cb5263ccb0af5151986eff8cef285"}, "url": "/docs/compare/?release=14.8#14.8-3cab91ee4d9e72b1", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "772ff31a8cc00370cdf5c2eead9804e7", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "避免在处理正则表达式转义时的区域设置敏感性", "evidence": {"same_day": true, "patch_ids": ["3184841dac8c63ee6413d82d8fbaaef5"], "statement_hash": "29c2c96dc946c034a32a13439bafa9ed862cb5263ccb0af5151986eff8cef285"}, "url": "/docs/compare/?release=13.11#13.11-843d7b9454d1891d", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "76dc55d85eeba20b836339c8a1e5f037", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "避免在处理正则表达式转义时的区域设置敏感性", "evidence": {"same_day": true, "patch_ids": ["3184841dac8c63ee6413d82d8fbaaef5"], "statement_hash": "29c2c96dc946c034a32a13439bafa9ed862cb5263ccb0af5151986eff8cef285"}, "url": "/docs/compare/?release=12.15#12.15-6a7caf301669dd2a", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "5cb554f28da3262f81d95b26e3313e1a", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "避免在处理正则表达式转义时的区域设置敏感性", "evidence": {"same_day": true, "patch_ids": ["3184841dac8c63ee6413d82d8fbaaef5"], "statement_hash": "29c2c96dc946c034a32a13439bafa9ed862cb5263ccb0af5151986eff8cef285"}, "url": "/docs/compare/?release=11.20#11.20-9ecbe44e1b8a2225", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-91f4111110e1d31c", "cves": [], "html": "<p>避免在 <code>log_newpage_range()</code> 中当指定范围内最后几个页面为空时尝试写入空 WAL 记录（Matthias van de Meent）<a href=\"https://postgr.es/c/2207df7c3\">§</a></p>\n<p>目前尚不完全清楚此情况在已发布的分支中是否可达，但如果可达则可能发生断言失败。</p>", "text": "避免在 log_newpage_range() 中当指定范围内最后几个页面为空时尝试写入空 WAL 记录（Matthias van de Meent）§ 目前尚不完全清楚此情况在已发布的分支中是否可达，但如果可达则可能发生断言失败。", "title": "避免在 log_newpage_range() 中当指定范围内最后几个页面为空时尝试写入空 WAL 记录", "commits": ["2207df7c3"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "a0d6995eafea7b2603c795da8cc3cc64c22e023d1c8b95c6717f0c0dbcdd97ff", "section_path": ["变更"], "commit_groups": [["2207df7c3", "3e383f9b6", "72a914e9f", "86874a6df", "9b0c1f213", "c796d7296"]], "identity_text": "Avoid trying to write an empty WAL record in log_newpage_range() when the last few pages in the specified range are empty (Matthias van de Meent) It is not entirely clear whether this case is reachable in released branches, but if it is then an assertion failure could occur.", "commit_aliases": ["2207df7c3", "3e383f9b6", "72a914e9f", "86874a6df", "9b0c1f213", "c796d7296"], "source_commits": ["2207df7c3"], "source_entry_id": "15.3/changes/061", "db_id": "20d83ba734dc67f2ebbc09032b169728", "patch_ids": ["a9e3126268dd991df0f44682654c43df"], "statement_hash": "b935512ace838061c3cbdd9abc99496e95d9b86de27b4bd384fb0cfbf63803fa", "relations": [{"rule": 2, "type": "equivalent", "target": "76395854055edebe1b5e5a126c37ae52", "evidence": {"same_day": true, "patch_ids": ["a9e3126268dd991df0f44682654c43df"], "statement_hash": "b935512ace838061c3cbdd9abc99496e95d9b86de27b4bd384fb0cfbf63803fa"}}, {"rule": 2, "type": "equivalent", "target": "791195a76e9295191729f6e107ba9dee", "evidence": {"same_day": true, "patch_ids": ["a9e3126268dd991df0f44682654c43df"], "statement_hash": "b935512ace838061c3cbdd9abc99496e95d9b86de27b4bd384fb0cfbf63803fa"}}, {"rule": 2, "type": "equivalent", "target": "b3a36563036f90146e2143bc55ad9161", "evidence": {"same_day": true, "patch_ids": ["a9e3126268dd991df0f44682654c43df"], "statement_hash": "b935512ace838061c3cbdd9abc99496e95d9b86de27b4bd384fb0cfbf63803fa"}}, {"rule": 2, "type": "equivalent", "target": "f11029d0f24175b2656cb22df81041dc", "evidence": {"same_day": true, "patch_ids": ["a9e3126268dd991df0f44682654c43df"], "statement_hash": "b935512ace838061c3cbdd9abc99496e95d9b86de27b4bd384fb0cfbf63803fa"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "791195a76e9295191729f6e107ba9dee", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "避免在 log_newpage_range() 中当指定范围内最后几个页面为空时尝试写入空 WAL 记录", "evidence": {"same_day": true, "patch_ids": ["a9e3126268dd991df0f44682654c43df"], "statement_hash": "b935512ace838061c3cbdd9abc99496e95d9b86de27b4bd384fb0cfbf63803fa"}, "url": "/docs/compare/?release=14.8#14.8-5a045a2593009886", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "76395854055edebe1b5e5a126c37ae52", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "避免在 log_newpage_range() 中当指定范围内最后几个页面为空时尝试写入空 WAL 记录", "evidence": {"same_day": true, "patch_ids": ["a9e3126268dd991df0f44682654c43df"], "statement_hash": "b935512ace838061c3cbdd9abc99496e95d9b86de27b4bd384fb0cfbf63803fa"}, "url": "/docs/compare/?release=13.11#13.11-9e5832ab5406dc96", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "b3a36563036f90146e2143bc55ad9161", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "避免在 log_newpage_range() 中当指定范围内最后几个页面为空时尝试写入空 WAL 记录", "evidence": {"same_day": true, "patch_ids": ["a9e3126268dd991df0f44682654c43df"], "statement_hash": "b935512ace838061c3cbdd9abc99496e95d9b86de27b4bd384fb0cfbf63803fa"}, "url": "/docs/compare/?release=12.15#12.15-c49d2e23734f03f3", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "f11029d0f24175b2656cb22df81041dc", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "避免在 log_newpage_range() 中当指定范围内最后几个页面为空时尝试写入空 WAL 记录", "evidence": {"same_day": true, "patch_ids": ["a9e3126268dd991df0f44682654c43df"], "statement_hash": "b935512ace838061c3cbdd9abc99496e95d9b86de27b4bd384fb0cfbf63803fa"}, "url": "/docs/compare/?release=11.20#11.20-a4b493b052ae987a", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-7767349447a268bd", "cves": [], "html": "<p>修复使用类型转换表达式的 <span>plpgsql</span> <code>DO</code> 块中的会话生命周期内存泄漏（Ajit Awekar，Tom Lane）<a href=\"https://postgr.es/c/c1598d85f\">§</a></p>", "text": "修复使用类型转换表达式的 plpgsql DO 块中的会话生命周期内存泄漏（Ajit Awekar，Tom Lane）§", "title": "修复使用类型转换表达式的 plpgsql DO 块中的会话生命周期内存泄漏", "commits": ["c1598d85f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "ba85bef0b3fc35b3c8cd76a71686b247d17fe7e47eeafdd4f408fe26459239b7", "section_path": ["变更"], "commit_groups": [["2ba890ce7", "441ee1677", "bfa691087", "c1598d85f", "ee71cad9a"]], "identity_text": "Fix session-lifespan memory leakage in plpgsql DO blocks that use cast expressions (Ajit Awekar, Tom Lane)", "commit_aliases": ["2ba890ce7", "441ee1677", "bfa691087", "c1598d85f", "ee71cad9a"], "source_commits": ["c1598d85f"], "source_entry_id": "15.3/changes/062", "db_id": "dc63e7d63cbc38ef737b855a851c92ce", "patch_ids": ["c3ea3cbabb1b503e9bb6ce56d5da94d3"], "statement_hash": "353fdddb07921a8ca30313599e0673ccbd0f39628f60b0afefe9a80d76dd56de", "relations": [{"rule": 2, "type": "equivalent", "target": "705aaa1822357f1336ac8304f7902ccf", "evidence": {"same_day": true, "patch_ids": ["c3ea3cbabb1b503e9bb6ce56d5da94d3"], "statement_hash": "353fdddb07921a8ca30313599e0673ccbd0f39628f60b0afefe9a80d76dd56de"}}, {"rule": 2, "type": "equivalent", "target": "970e770560656a9d9136dae77599cf4a", "evidence": {"same_day": true, "patch_ids": ["c3ea3cbabb1b503e9bb6ce56d5da94d3"], "statement_hash": "353fdddb07921a8ca30313599e0673ccbd0f39628f60b0afefe9a80d76dd56de"}}, {"rule": 2, "type": "equivalent", "target": "b462e8d0c3c61bf8cbcf5c3ed552ef68", "evidence": {"same_day": true, "patch_ids": ["c3ea3cbabb1b503e9bb6ce56d5da94d3"], "statement_hash": "353fdddb07921a8ca30313599e0673ccbd0f39628f60b0afefe9a80d76dd56de"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "970e770560656a9d9136dae77599cf4a", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复使用类型转换表达式的 plpgsql DO 块中的会话生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c3ea3cbabb1b503e9bb6ce56d5da94d3"], "statement_hash": "353fdddb07921a8ca30313599e0673ccbd0f39628f60b0afefe9a80d76dd56de"}, "url": "/docs/compare/?release=14.8#14.8-adbf6112b465d3ca", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "b462e8d0c3c61bf8cbcf5c3ed552ef68", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复使用类型转换表达式的 plpgsql DO 块中的会话生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c3ea3cbabb1b503e9bb6ce56d5da94d3"], "statement_hash": "353fdddb07921a8ca30313599e0673ccbd0f39628f60b0afefe9a80d76dd56de"}, "url": "/docs/compare/?release=13.11#13.11-1c2e4feda4684710", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "705aaa1822357f1336ac8304f7902ccf", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复使用类型转换表达式的 plpgsql DO 块中的会话生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c3ea3cbabb1b503e9bb6ce56d5da94d3"], "statement_hash": "353fdddb07921a8ca30313599e0673ccbd0f39628f60b0afefe9a80d76dd56de"}, "url": "/docs/compare/?release=12.15#12.15-bcb00c62a4dd170b", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}]}, {"id": "15.3-3b81e66a7cc458ae", "cves": [], "html": "<p>加强将 Perl 列表结构转换为多维 SQL 数组时的数组维度检查（Tom Lane）<a href=\"https://postgr.es/c/ce9a1a3ea\">§</a></p>\n<p>当子列表的嵌套不一致，使得数据不能表示值的矩形数组时， <span>plperl</span> 可能会出现异常行为。此类情况现在会产生错误，但之前可能导致崩溃或产生垃圾输出。</p>", "text": "加强将 Perl 列表结构转换为多维 SQL 数组时的数组维度检查（Tom Lane）§ 当子列表的嵌套不一致，使得数据不能表示值的矩形数组时， plperl 可能会出现异常行为。此类情况现在会产生错误，但之前可能导致崩溃或产生垃圾输出。", "title": "加强将 Perl 列表结构转换为多维 SQL 数组时的数组维度检查", "commits": ["ce9a1a3ea"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "396677ff23660a09426a90ec60ea0d2ce6b25aa6597f26ce48502254c3580c35", "section_path": ["变更"], "commit_groups": [["1e868bb6c", "900a8d526", "ce9a1a3ea", "ea96fbe77", "ee24b5e79", "f47004add"]], "identity_text": "Tighten array dimensionality checks when converting Perl list structures to multi-dimensional SQL arrays (Tom Lane) plperl could misbehave when the nesting of sub-lists is inconsistent so that the data does not represent a rectangular array of values. Such cases now produce errors, but previously they could result in a crash or garbage output.", "commit_aliases": ["1e868bb6c", "900a8d526", "ce9a1a3ea", "ea96fbe77", "ee24b5e79", "f47004add"], "source_commits": ["ce9a1a3ea"], "source_entry_id": "15.3/changes/063", "db_id": "fb2d744da3f5304014a988e104b80496", "patch_ids": ["414ef7c71e42d4640e338d7dad288ebc"], "statement_hash": "d061dcd7fe5760e01715dd8a5d5cdb6cee65a282161509cefc12fa671b0f2f98", "relations": [{"rule": 2, "type": "equivalent", "target": "38c76c71eb737e182e04201d28e92596", "evidence": {"same_day": true, "patch_ids": ["414ef7c71e42d4640e338d7dad288ebc"], "statement_hash": "d061dcd7fe5760e01715dd8a5d5cdb6cee65a282161509cefc12fa671b0f2f98"}}, {"rule": 2, "type": "equivalent", "target": "60cdd891ff196eb453c0752b2704e756", "evidence": {"same_day": true, "patch_ids": ["414ef7c71e42d4640e338d7dad288ebc"], "statement_hash": "d061dcd7fe5760e01715dd8a5d5cdb6cee65a282161509cefc12fa671b0f2f98"}}, {"rule": 2, "type": "equivalent", "target": "746b0b3b13f0d362e6f35bf5b402cdc7", "evidence": {"same_day": true, "patch_ids": ["414ef7c71e42d4640e338d7dad288ebc"], "statement_hash": "d061dcd7fe5760e01715dd8a5d5cdb6cee65a282161509cefc12fa671b0f2f98"}}, {"rule": 2, "type": "equivalent", "target": "d9c9cef75d3c5750167ae60905617177", "evidence": {"same_day": true, "patch_ids": ["414ef7c71e42d4640e338d7dad288ebc"], "statement_hash": "d061dcd7fe5760e01715dd8a5d5cdb6cee65a282161509cefc12fa671b0f2f98"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d9c9cef75d3c5750167ae60905617177", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "加强将 Perl 列表结构转换为多维 SQL 数组时的数组维度检查", "evidence": {"same_day": true, "patch_ids": ["414ef7c71e42d4640e338d7dad288ebc"], "statement_hash": "d061dcd7fe5760e01715dd8a5d5cdb6cee65a282161509cefc12fa671b0f2f98"}, "url": "/docs/compare/?release=14.8#14.8-e9a9c444ae1b15b7", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "38c76c71eb737e182e04201d28e92596", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "加强将 Perl 列表结构转换为多维 SQL 数组时的数组维度检查", "evidence": {"same_day": true, "patch_ids": ["414ef7c71e42d4640e338d7dad288ebc"], "statement_hash": "d061dcd7fe5760e01715dd8a5d5cdb6cee65a282161509cefc12fa671b0f2f98"}, "url": "/docs/compare/?release=13.11#13.11-68eda5cff16b56aa", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "746b0b3b13f0d362e6f35bf5b402cdc7", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "加强将 Perl 列表结构转换为多维 SQL 数组时的数组维度检查", "evidence": {"same_day": true, "patch_ids": ["414ef7c71e42d4640e338d7dad288ebc"], "statement_hash": "d061dcd7fe5760e01715dd8a5d5cdb6cee65a282161509cefc12fa671b0f2f98"}, "url": "/docs/compare/?release=12.15#12.15-ad0ffc6ce2204972", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "60cdd891ff196eb453c0752b2704e756", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "加强将 Perl 列表结构转换为多维 SQL 数组时的数组维度检查", "evidence": {"same_day": true, "patch_ids": ["414ef7c71e42d4640e338d7dad288ebc"], "statement_hash": "d061dcd7fe5760e01715dd8a5d5cdb6cee65a282161509cefc12fa671b0f2f98"}, "url": "/docs/compare/?release=11.20#11.20-3a79743c1bc1c4f5", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-566113c5c54382cd", "cves": [], "html": "<p>加强将 Python 列表结构转换为多维 SQL 数组时的数组维度检查（Tom Lane）<a href=\"https://postgr.es/c/b7001c6b6\">§</a> <a href=\"https://postgr.es/c/512c55522\">§</a></p>\n<p>在处理空子列表，或子列表嵌套不一致使得数据不能表示值的矩形数组时， <span>plpython</span> 可能会出现异常行为。前者应该产生空输出数组，后者应产生错误。但某些情况下会导致崩溃，另一些情况下会产生意外输出。</p>", "text": "加强将 Python 列表结构转换为多维 SQL 数组时的数组维度检查（Tom Lane）§ § 在处理空子列表，或子列表嵌套不一致使得数据不能表示值的矩形数组时， plpython 可能会出现异常行为。前者应该产生空输出数组，后者应产生错误。但某些情况下会导致崩溃，另一些情况下会产生意外输出。", "title": "加强将 Python 列表结构转换为多维 SQL 数组时的数组维度检查", "commits": ["512c55522", "b7001c6b6"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "01e390785f70ca385bb7e9fbf76086559f6fbab36a47012051e294a8b0233178", "section_path": ["变更"], "commit_groups": [["0553528e7", "0e6354ed9", "9d517339e", "aa7e5e404", "b7001c6b6", "b7fcf3824"], ["512c55522", "7dcd9998c", "81eaaf65e", "a1d9aacc4", "b7c6af375", "ff9203f46"]], "identity_text": "Tighten array dimensionality checks when converting Python list structures to multi-dimensional SQL arrays (Tom Lane) plpython could misbehave when dealing with empty sub-lists, or when the nesting of sub-lists is inconsistent so that the data does not represent a rectangular array of values. The former should result in an empty output array, and the latter in an error. But some cases resulted in a crash, and others in unexpected output.", "commit_aliases": ["0553528e7", "0e6354ed9", "512c55522", "7dcd9998c", "81eaaf65e", "9d517339e", "a1d9aacc4", "aa7e5e404", "b7001c6b6", "b7c6af375", "b7fcf3824", "ff9203f46"], "source_commits": ["512c55522", "b7001c6b6"], "source_entry_id": "15.3/changes/064", "db_id": "8dc23b668405b808b8d9104e60bae464", "patch_ids": ["26cb80d36db71612f1b4b6acee65573c", "baf1123e3c5c3f72d4e016d6f782bb74"], "statement_hash": "879e74450a50e6b26f4daab653ea71b98e1f30881428ab7c4e4d87e065bda091", "relations": [{"rule": 2, "type": "equivalent", "target": "75c40d6a2f809e4d78e89fc38264c906", "evidence": {"same_day": true, "patch_ids": ["26cb80d36db71612f1b4b6acee65573c", "baf1123e3c5c3f72d4e016d6f782bb74"], "statement_hash": "879e74450a50e6b26f4daab653ea71b98e1f30881428ab7c4e4d87e065bda091"}}, {"rule": 2, "type": "equivalent", "target": "9f6cc9522d9982daee0a0f26a282a8fb", "evidence": {"same_day": true, "patch_ids": ["26cb80d36db71612f1b4b6acee65573c", "baf1123e3c5c3f72d4e016d6f782bb74"], "statement_hash": "879e74450a50e6b26f4daab653ea71b98e1f30881428ab7c4e4d87e065bda091"}}, {"rule": 2, "type": "equivalent", "target": "ea0869f2324d54e836393b7e25d7fe4e", "evidence": {"same_day": true, "patch_ids": ["26cb80d36db71612f1b4b6acee65573c", "baf1123e3c5c3f72d4e016d6f782bb74"], "statement_hash": "879e74450a50e6b26f4daab653ea71b98e1f30881428ab7c4e4d87e065bda091"}}, {"rule": 2, "type": "equivalent", "target": "f6e564a53025bb8a309fc980ee51a77f", "evidence": {"same_day": true, "patch_ids": ["26cb80d36db71612f1b4b6acee65573c", "baf1123e3c5c3f72d4e016d6f782bb74"], "statement_hash": "879e74450a50e6b26f4daab653ea71b98e1f30881428ab7c4e4d87e065bda091"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "75c40d6a2f809e4d78e89fc38264c906", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "加强将 Python 列表结构转换为多维 SQL 数组时的数组维度检查", "evidence": {"same_day": true, "patch_ids": ["26cb80d36db71612f1b4b6acee65573c", "baf1123e3c5c3f72d4e016d6f782bb74"], "statement_hash": "879e74450a50e6b26f4daab653ea71b98e1f30881428ab7c4e4d87e065bda091"}, "url": "/docs/compare/?release=14.8#14.8-6c7637fd74abb4bf", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "f6e564a53025bb8a309fc980ee51a77f", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "加强将 Python 列表结构转换为多维 SQL 数组时的数组维度检查", "evidence": {"same_day": true, "patch_ids": ["26cb80d36db71612f1b4b6acee65573c", "baf1123e3c5c3f72d4e016d6f782bb74"], "statement_hash": "879e74450a50e6b26f4daab653ea71b98e1f30881428ab7c4e4d87e065bda091"}, "url": "/docs/compare/?release=13.11#13.11-5263e64c45ebf578", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "ea0869f2324d54e836393b7e25d7fe4e", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "加强将 Python 列表结构转换为多维 SQL 数组时的数组维度检查", "evidence": {"same_day": true, "patch_ids": ["26cb80d36db71612f1b4b6acee65573c", "baf1123e3c5c3f72d4e016d6f782bb74"], "statement_hash": "879e74450a50e6b26f4daab653ea71b98e1f30881428ab7c4e4d87e065bda091"}, "url": "/docs/compare/?release=12.15#12.15-8958961cd3aa046a", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "9f6cc9522d9982daee0a0f26a282a8fb", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "加强将 Python 列表结构转换为多维 SQL 数组时的数组维度检查", "evidence": {"same_day": true, "patch_ids": ["26cb80d36db71612f1b4b6acee65573c", "baf1123e3c5c3f72d4e016d6f782bb74"], "statement_hash": "879e74450a50e6b26f4daab653ea71b98e1f30881428ab7c4e4d87e065bda091"}, "url": "/docs/compare/?release=11.20#11.20-662f992cf5d6e7a8", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-f3472e1dc206d3b4", "cves": [], "html": "<p>修复 <span>plpython</span> 中异常栈的展开（Xing Guo）<a href=\"https://postgr.es/c/825ebc984\">§</a></p>\n<p>某些罕见的失败情况可能在未清理 PG_TRY 异常栈的情况下返回，如果在下一个栈层级被展开之前引发另一个错误，则有崩溃风险。</p>", "text": "修复 plpython 中异常栈的展开（Xing Guo）§ 某些罕见的失败情况可能在未清理 PG_TRY 异常栈的情况下返回，如果在下一个栈层级被展开之前引发另一个错误，则有崩溃风险。", "title": "修复 plpython 中异常栈的展开", "commits": ["825ebc984"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "e48f7de023446dc5a4fec4e427578b876062298a6a7dff871c69424f37cdfa12", "section_path": ["变更"], "commit_groups": [["0af386b0f", "24964394a", "52c9cf323", "57d005170", "800531846", "825ebc984"]], "identity_text": "Fix unwinding of exception stack in plpython (Xing Guo) Some rare failure cases could return without cleaning up the PG_TRY exception stack, risking a crash if another error was raised before the next stack level was unwound.", "commit_aliases": ["0af386b0f", "24964394a", "52c9cf323", "57d005170", "800531846", "825ebc984"], "source_commits": ["825ebc984"], "source_entry_id": "15.3/changes/065", "db_id": "14766548d1e2a90645f0b86a83ff226c", "patch_ids": ["1bea2046b5ebc17be9b88badb1cf3e86"], "statement_hash": "c740153bc20659f2cccb019c89ee5f1433355f3d68bf103c6a8d8d8cb0a577bd", "relations": [{"rule": 2, "type": "equivalent", "target": "0ce5d9003df7eaeca9b77f7ac8462933", "evidence": {"same_day": true, "patch_ids": ["1bea2046b5ebc17be9b88badb1cf3e86"], "statement_hash": "c740153bc20659f2cccb019c89ee5f1433355f3d68bf103c6a8d8d8cb0a577bd"}}, {"rule": 2, "type": "equivalent", "target": "0fe429e351fda7a60790e873d8310c40", "evidence": {"same_day": true, "patch_ids": ["1bea2046b5ebc17be9b88badb1cf3e86"], "statement_hash": "c740153bc20659f2cccb019c89ee5f1433355f3d68bf103c6a8d8d8cb0a577bd"}}, {"rule": 2, "type": "equivalent", "target": "2710ca4bc6414fb413b76a621b8bfd1d", "evidence": {"same_day": true, "patch_ids": ["1bea2046b5ebc17be9b88badb1cf3e86"], "statement_hash": "c740153bc20659f2cccb019c89ee5f1433355f3d68bf103c6a8d8d8cb0a577bd"}}, {"rule": 2, "type": "equivalent", "target": "c4b98b08bc10237fec53b1cb2dc53575", "evidence": {"same_day": true, "patch_ids": ["1bea2046b5ebc17be9b88badb1cf3e86"], "statement_hash": "c740153bc20659f2cccb019c89ee5f1433355f3d68bf103c6a8d8d8cb0a577bd"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c4b98b08bc10237fec53b1cb2dc53575", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复 plpython 中异常栈的展开", "evidence": {"same_day": true, "patch_ids": ["1bea2046b5ebc17be9b88badb1cf3e86"], "statement_hash": "c740153bc20659f2cccb019c89ee5f1433355f3d68bf103c6a8d8d8cb0a577bd"}, "url": "/docs/compare/?release=14.8#14.8-f49d68d718c6b800", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "0fe429e351fda7a60790e873d8310c40", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复 plpython 中异常栈的展开", "evidence": {"same_day": true, "patch_ids": ["1bea2046b5ebc17be9b88badb1cf3e86"], "statement_hash": "c740153bc20659f2cccb019c89ee5f1433355f3d68bf103c6a8d8d8cb0a577bd"}, "url": "/docs/compare/?release=13.11#13.11-2dc3e868b13d91a8", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "0ce5d9003df7eaeca9b77f7ac8462933", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复 plpython 中异常栈的展开", "evidence": {"same_day": true, "patch_ids": ["1bea2046b5ebc17be9b88badb1cf3e86"], "statement_hash": "c740153bc20659f2cccb019c89ee5f1433355f3d68bf103c6a8d8d8cb0a577bd"}, "url": "/docs/compare/?release=12.15#12.15-a7cd04ff42684ef5", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "2710ca4bc6414fb413b76a621b8bfd1d", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复 plpython 中异常栈的展开", "evidence": {"same_day": true, "patch_ids": ["1bea2046b5ebc17be9b88badb1cf3e86"], "statement_hash": "c740153bc20659f2cccb019c89ee5f1433355f3d68bf103c6a8d8d8cb0a577bd"}, "url": "/docs/compare/?release=11.20#11.20-a1b175f3e0a80f82", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-aabe7c9f6743f933", "cves": [], "html": "<p>修复 <span>libpq</span> 的 <code>PQconnectPoll()</code> 中不一致的 GSS 加密错误处理（Michael Paquier）<a href=\"https://postgr.es/c/4493256c5\">§</a></p>\n<p>当 <code>gssencmode</code> 设置为 <code>require</code> 时，GSS 初始化失败后连接未被标记为已断开。使其立即失败，与 TLS 加密的等效情况长期以来的行为一致。</p>", "text": "修复 libpq 的 PQconnectPoll() 中不一致的 GSS 加密错误处理（Michael Paquier）§ 当 gssencmode 设置为 require 时，GSS 初始化失败后连接未被标记为已断开。使其立即失败，与 TLS 加密的等效情况长期以来的行为一致。", "title": "修复 libpq 的 PQconnectPoll() 中不一致的 GSS 加密错误处理", "commits": ["4493256c5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "6ed5340c4d68606c0e57651171b7ba6da45f690da964fb770dc6977fababff77", "section_path": ["变更"], "commit_groups": [["2bc36a56c", "4493256c5", "7e319231c", "96bef4374", "e0a09d4e3"]], "identity_text": "Fix inconsistent GSS-encryption error handling in libpq's PQconnectPoll() (Michael Paquier) With gssencmode set to require, the connection was not marked dead after a GSS initialization failure. Make it fail immediately, as the equivalent case for TLS encryption has long done.", "commit_aliases": ["2bc36a56c", "4493256c5", "7e319231c", "96bef4374", "e0a09d4e3"], "source_commits": ["4493256c5"], "source_entry_id": "15.3/changes/066", "db_id": "af9abe8b7361b1c6f01b73eac14cc3b0", "patch_ids": ["6c936dbbb93d08f93ae57e061f6c2f3e"], "statement_hash": "bc4d6db6ea1ea9d7967530875e4945ddb4e869a2bba4d42b7dbd745d7f7b1b9c", "relations": [{"rule": 2, "type": "equivalent", "target": "b77cd3f0e94512adc69e8ed962fd0ab3", "evidence": {"same_day": true, "patch_ids": ["6c936dbbb93d08f93ae57e061f6c2f3e"], "statement_hash": "bc4d6db6ea1ea9d7967530875e4945ddb4e869a2bba4d42b7dbd745d7f7b1b9c"}}, {"rule": 2, "type": "equivalent", "target": "bac11d6a4a69b6d9f56d2564cb91d91c", "evidence": {"same_day": true, "patch_ids": ["6c936dbbb93d08f93ae57e061f6c2f3e"], "statement_hash": "bc4d6db6ea1ea9d7967530875e4945ddb4e869a2bba4d42b7dbd745d7f7b1b9c"}}, {"rule": 2, "type": "equivalent", "target": "ed19cc4d8009215db1d5dd727b61da2e", "evidence": {"same_day": true, "patch_ids": ["6c936dbbb93d08f93ae57e061f6c2f3e"], "statement_hash": "bc4d6db6ea1ea9d7967530875e4945ddb4e869a2bba4d42b7dbd745d7f7b1b9c"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b77cd3f0e94512adc69e8ed962fd0ab3", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复 libpq 的 PQconnectPoll() 中不一致的 GSS 加密错误处理", "evidence": {"same_day": true, "patch_ids": ["6c936dbbb93d08f93ae57e061f6c2f3e"], "statement_hash": "bc4d6db6ea1ea9d7967530875e4945ddb4e869a2bba4d42b7dbd745d7f7b1b9c"}, "url": "/docs/compare/?release=14.8#14.8-c70fe8da2a2c8739", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "ed19cc4d8009215db1d5dd727b61da2e", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复 libpq 的 PQconnectPoll() 中不一致的 GSS 加密错误处理", "evidence": {"same_day": true, "patch_ids": ["6c936dbbb93d08f93ae57e061f6c2f3e"], "statement_hash": "bc4d6db6ea1ea9d7967530875e4945ddb4e869a2bba4d42b7dbd745d7f7b1b9c"}, "url": "/docs/compare/?release=13.11#13.11-b5def319806f3c1f", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "bac11d6a4a69b6d9f56d2564cb91d91c", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复 libpq 的 PQconnectPoll() 中不一致的 GSS 加密错误处理", "evidence": {"same_day": true, "patch_ids": ["6c936dbbb93d08f93ae57e061f6c2f3e"], "statement_hash": "bc4d6db6ea1ea9d7967530875e4945ddb4e869a2bba4d42b7dbd745d7f7b1b9c"}, "url": "/docs/compare/?release=12.15#12.15-43aaba2afc8dcb25", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}]}, {"id": "15.3-fe79692e0996ae89", "cves": [], "html": "<p>修复使用 <code>-C ORACLE</code> 选项构建的 <span>ecpg</span> 程序中可能的数据损坏（Kyotaro Horiguchi）<a href=\"https://postgr.es/c/8c746be44\">§</a></p>\n<p>当 <code>ecpg_get_data()</code> 被调用时 <code>varcharsize</code> 设置为零，它可能会将终止零字符写入前一个字段的最后一个字节，从而截断该字段中的数据。</p>", "text": "修复使用 -C ORACLE 选项构建的 ecpg 程序中可能的数据损坏（Kyotaro Horiguchi）§ 当 ecpg_get_data() 被调用时 varcharsize 设置为零，它可能会将终止零字符写入前一个字段的最后一个字节，从而截断该字段中的数据。", "title": "修复使用 -C ORACLE 选项构建的 ecpg 程序中可能的数据损坏", "commits": ["8c746be44"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "1e086616c7a803938ff199d353f40fe67b3db2acdd8f06ec7704a7613b88df71", "section_path": ["变更"], "commit_groups": [["02f076454", "8c746be44", "9eb44bb04", "a28bd7713", "e9e457d22", "f18029084"], ["dbd25dd0b"]], "identity_text": "Fix possible data corruption in ecpg programs built with the -C ORACLE option (Kyotaro Horiguchi) When ecpg_get_data() is called with varcharsize set to zero, it could write a terminating zero character into the last byte of the preceding field, truncating the data in that field.", "commit_aliases": ["02f076454", "8c746be44", "9eb44bb04", "a28bd7713", "dbd25dd0b", "e9e457d22", "f18029084"], "source_commits": ["8c746be44", "dbd25dd0b"], "source_entry_id": "15.3/changes/067", "db_id": "ddf8891789304a26804930bfe47e8c3d", "patch_ids": ["376f7465865bb0d7de6ed644fd9ab345", "be975e39a4b01b37f5ee54cf99183e7a"], "statement_hash": "5d981896dca5553cb369c82805306e5067383d5a039c735c3c33aed2b0393bd4", "relations": [{"rule": 2, "type": "equivalent", "target": "2823ead750dad8b481c234daa7c60916", "evidence": {"same_day": true, "patch_ids": ["376f7465865bb0d7de6ed644fd9ab345", "be975e39a4b01b37f5ee54cf99183e7a"], "statement_hash": "5d981896dca5553cb369c82805306e5067383d5a039c735c3c33aed2b0393bd4"}}, {"rule": 2, "type": "equivalent", "target": "5f907c91d611a2c2698e2d0d7b750115", "evidence": {"same_day": true, "patch_ids": ["376f7465865bb0d7de6ed644fd9ab345", "be975e39a4b01b37f5ee54cf99183e7a"], "statement_hash": "5d981896dca5553cb369c82805306e5067383d5a039c735c3c33aed2b0393bd4"}}, {"rule": 2, "type": "equivalent", "target": "811f2b2296f121f84e688cf7df27f4cd", "evidence": {"same_day": true, "patch_ids": ["376f7465865bb0d7de6ed644fd9ab345", "be975e39a4b01b37f5ee54cf99183e7a"], "statement_hash": "5d981896dca5553cb369c82805306e5067383d5a039c735c3c33aed2b0393bd4"}}, {"rule": 2, "type": "equivalent", "target": "b0a7fff01d44957d00a80c532d42c119", "evidence": {"same_day": true, "patch_ids": ["376f7465865bb0d7de6ed644fd9ab345", "be975e39a4b01b37f5ee54cf99183e7a"], "statement_hash": "5d981896dca5553cb369c82805306e5067383d5a039c735c3c33aed2b0393bd4"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "811f2b2296f121f84e688cf7df27f4cd", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复使用 -C ORACLE 选项构建的 ecpg 程序中可能的数据损坏", "evidence": {"same_day": true, "patch_ids": ["376f7465865bb0d7de6ed644fd9ab345", "be975e39a4b01b37f5ee54cf99183e7a"], "statement_hash": "5d981896dca5553cb369c82805306e5067383d5a039c735c3c33aed2b0393bd4"}, "url": "/docs/compare/?release=14.8#14.8-e2122c3065f90af6", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "b0a7fff01d44957d00a80c532d42c119", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复使用 -C ORACLE 选项构建的 ecpg 程序中可能的数据损坏", "evidence": {"same_day": true, "patch_ids": ["376f7465865bb0d7de6ed644fd9ab345", "be975e39a4b01b37f5ee54cf99183e7a"], "statement_hash": "5d981896dca5553cb369c82805306e5067383d5a039c735c3c33aed2b0393bd4"}, "url": "/docs/compare/?release=13.11#13.11-7245f55d067e09a1", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "5f907c91d611a2c2698e2d0d7b750115", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复使用 -C ORACLE 选项构建的 ecpg 程序中可能的数据损坏", "evidence": {"same_day": true, "patch_ids": ["376f7465865bb0d7de6ed644fd9ab345", "be975e39a4b01b37f5ee54cf99183e7a"], "statement_hash": "5d981896dca5553cb369c82805306e5067383d5a039c735c3c33aed2b0393bd4"}, "url": "/docs/compare/?release=12.15#12.15-c968f314ec078cef", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "2823ead750dad8b481c234daa7c60916", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复使用 -C ORACLE 选项构建的 ecpg 程序中可能发生的数据损坏", "evidence": {"same_day": true, "patch_ids": ["376f7465865bb0d7de6ed644fd9ab345", "be975e39a4b01b37f5ee54cf99183e7a"], "statement_hash": "5d981896dca5553cb369c82805306e5067383d5a039c735c3c33aed2b0393bd4"}, "url": "/docs/compare/?release=11.20#11.20-9a8f933eb542b1c7", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-ae36ca9b4c782169", "cves": [], "html": "<p>修复 <span>pg_dump</span>，使得在枚举类型列上进行 hash 分区的分区表可以成功恢复（Tom Lane）<a href=\"https://postgr.es/c/2b216da1e\">§</a></p>\n<p>由于枚举值的 hash 码依赖于分配给枚举的 OID，在导出和恢复后它们通常是不同的，这意味着行往往需要进入与原来不同的分区。用户可以通过指定 <code>--load-via-partition-root</code> 选项来解决此问题；但由于不使用该选项几乎不可能成功，因此让 <span>pg_dump</span> 对此类表自动应用该选项。</p>\n<p>同时，修复 <span>pg_restore</span>，使其在使用 <code>--load-via-partition-root</code> 模式时不再尝试在恢复前 <code>TRUNCATE</code> 目标表。这避免了死锁和数据丢失的风险。</p>", "text": "修复 pg_dump，使得在枚举类型列上进行 hash 分区的分区表可以成功恢复（Tom Lane）§ 由于枚举值的 hash 码依赖于分配给枚举的 OID，在导出和恢复后它们通常是不同的，这意味着行往往需要进入与原来不同的分区。用户可以通过指定 --load-via-partition-root 选项来解决此问题；但由于不使用该选项几乎不可能成功，因此让 pg_dump 对此类表自动应用该选项。 同时，修复 pg_restore，使其在使用 --load-via-partition-root 模式时不再尝试在恢复前 TRUNCATE 目标表。这避免了死锁和数据丢失的风险。", "title": "修复 pg_dump，使得在枚举类型列上进行 hash 分区的分区表可以成功恢复", "commits": ["2b216da1e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "9a1e600e8b8e8b26f05671dc6fec188dbf982784bfcb3869ee3d0a0bb4823c3e", "section_path": ["变更"], "commit_groups": [["012ffb365", "2b216da1e", "5fc1ac151", "7e7c5b683", "8f83ce8c5", "bc8cd50fe"]], "identity_text": "Fix pg_dump so that partitioned tables that are hash-partitioned on an enum-type column can be restored successfully (Tom Lane) Since the hash codes for enum values depend on the OIDs assigned to the enum, they are typically different after a dump and restore, meaning that rows often need to go into a different partition than they were in originally. Users can work around that by specifying the --load-via-partition-root option; but since there is very little chance of success without that, teach pg_dump to apply it automatically to such tables. Also, fix pg_restore to not try to TRUNCATE target tables before restoring into them when --load-via-partition-root mode is used. This avoids a hazard of deadlocks and lost data.", "commit_aliases": ["012ffb365", "2b216da1e", "5fc1ac151", "7e7c5b683", "8f83ce8c5", "bc8cd50fe"], "source_commits": ["2b216da1e"], "source_entry_id": "15.3/changes/068", "db_id": "2408e80efd856908437361a63c6bded7", "patch_ids": ["ebf32534020c62ec89fba6e5d273adb5"], "statement_hash": "42d257126ddadeec8b3d71bb3a549b577f9243cc36ec005805ac246cbaad66da", "relations": [{"rule": 2, "type": "equivalent", "target": "0492dd43d4b9a94af64c22b84318ba69", "evidence": {"same_day": true, "patch_ids": ["ebf32534020c62ec89fba6e5d273adb5"], "statement_hash": "42d257126ddadeec8b3d71bb3a549b577f9243cc36ec005805ac246cbaad66da"}}, {"rule": 2, "type": "equivalent", "target": "8a77bce0b109d2a3a9a7670aa5b41b35", "evidence": {"same_day": true, "patch_ids": ["ebf32534020c62ec89fba6e5d273adb5"], "statement_hash": "42d257126ddadeec8b3d71bb3a549b577f9243cc36ec005805ac246cbaad66da"}}, {"rule": 2, "type": "equivalent", "target": "be0248aa7d69755c35ba0c88f182550b", "evidence": {"same_day": true, "patch_ids": ["ebf32534020c62ec89fba6e5d273adb5"], "statement_hash": "42d257126ddadeec8b3d71bb3a549b577f9243cc36ec005805ac246cbaad66da"}}, {"rule": 2, "type": "equivalent", "target": "e709b4a20ee3ab503bc60526a29c9b0b", "evidence": {"same_day": true, "patch_ids": ["ebf32534020c62ec89fba6e5d273adb5"], "statement_hash": "42d257126ddadeec8b3d71bb3a549b577f9243cc36ec005805ac246cbaad66da"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8a77bce0b109d2a3a9a7670aa5b41b35", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复 pg_dump，使得在枚举类型列上进行 hash 分区的分区表可以成功恢复", "evidence": {"same_day": true, "patch_ids": ["ebf32534020c62ec89fba6e5d273adb5"], "statement_hash": "42d257126ddadeec8b3d71bb3a549b577f9243cc36ec005805ac246cbaad66da"}, "url": "/docs/compare/?release=14.8#14.8-39c1aff51a2da3b9", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "be0248aa7d69755c35ba0c88f182550b", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复 pg_dump，使得在枚举类型列上进行 hash 分区的分区表可以成功恢复", "evidence": {"same_day": true, "patch_ids": ["ebf32534020c62ec89fba6e5d273adb5"], "statement_hash": "42d257126ddadeec8b3d71bb3a549b577f9243cc36ec005805ac246cbaad66da"}, "url": "/docs/compare/?release=13.11#13.11-01eaa97e8366e312", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "e709b4a20ee3ab503bc60526a29c9b0b", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复 pg_dump，使得在枚举类型列上进行 hash 分区的分区表可以成功恢复", "evidence": {"same_day": true, "patch_ids": ["ebf32534020c62ec89fba6e5d273adb5"], "statement_hash": "42d257126ddadeec8b3d71bb3a549b577f9243cc36ec005805ac246cbaad66da"}, "url": "/docs/compare/?release=12.15#12.15-c56a0f48e5230686", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "0492dd43d4b9a94af64c22b84318ba69", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复 pg_dump，使得在枚举类型列上进行 hash 分区的分区表可以成功恢复", "evidence": {"same_day": true, "patch_ids": ["ebf32534020c62ec89fba6e5d273adb5"], "statement_hash": "42d257126ddadeec8b3d71bb3a549b577f9243cc36ec005805ac246cbaad66da"}, "url": "/docs/compare/?release=11.20#11.20-fdf7ee3e89b6b14b", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-0e257891ab0a2378", "cves": [], "html": "<p>在 Windows 上正确检测不可定位的文件（Juan José Santamaría Flecha，Michael Paquier，Daniel Watzinger）<a href=\"https://postgr.es/c/5c3254946\">§</a> <a href=\"https://postgr.es/c/69b6032e0\">§</a></p>\n<p>此错误导致 <span>pg_dump</span> 写入管道或 <span>pg_restore</span> 从管道读取时出现异常行为。</p>", "text": "在 Windows 上正确检测不可定位的文件（Juan José Santamaría Flecha，Michael Paquier，Daniel Watzinger）§ § 此错误导致 pg_dump 写入管道或 pg_restore 从管道读取时出现异常行为。", "title": "在 Windows 上正确检测不可定位的文件", "commits": ["5c3254946", "69b6032e0"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "8ccfcd5053d8faaf74422c4c7535e100f8958f6f9a3c04711826325b2e5d40be", "section_path": ["变更"], "commit_groups": [["34105eea6", "5c3254946", "a923e2163"], ["69b6032e0", "765f5df72", "bbf18fe19"]], "identity_text": "Correctly detect non-seekable files on Windows (Juan José Santamaría Flecha, Michael Paquier, Daniel Watzinger) This bug led to misbehavior when pg_dump writes to a pipe or pg_restore reads from one.", "commit_aliases": ["34105eea6", "5c3254946", "69b6032e0", "765f5df72", "a923e2163", "bbf18fe19"], "source_commits": ["5c3254946", "69b6032e0"], "source_entry_id": "15.3/changes/069", "db_id": "582c687a61aaed1420441815dc0f932f", "patch_ids": ["177182f8973b179738972b12b5714058", "deb27be93dde8f01233cad286202bd61"], "statement_hash": "fa3eb7272e096c56ed55e13bffe0eda36fa708ecd3f6b34c293fad10e81dd9b3", "relations": [{"rule": 2, "type": "equivalent", "target": "a5cbb75c265f0ebb17f879a92642f503", "evidence": {"same_day": true, "patch_ids": ["177182f8973b179738972b12b5714058", "deb27be93dde8f01233cad286202bd61"], "statement_hash": "fa3eb7272e096c56ed55e13bffe0eda36fa708ecd3f6b34c293fad10e81dd9b3"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a5cbb75c265f0ebb17f879a92642f503", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在 Windows 上正确检测不可定位的文件", "evidence": {"same_day": true, "patch_ids": ["177182f8973b179738972b12b5714058", "deb27be93dde8f01233cad286202bd61"], "statement_hash": "fa3eb7272e096c56ed55e13bffe0eda36fa708ecd3f6b34c293fad10e81dd9b3"}, "url": "/docs/compare/?release=14.8#14.8-9d5d741c66766836", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-dc8a7e141a3e0cc5", "cves": [], "html": "<p>在 <span>pgbench</span> 的 <span>“<span>prepared</span>”</span> 模式下，在启动管线之前准备好管线中的所有命令（Álvaro Herrera）<a href=\"https://postgr.es/c/108a22bd1\">§</a></p>\n<p>这避免了当 pgbench 脚本尝试在管线内部启动可串行化事务时出现的失败。</p>", "text": "在 pgbench 的 “prepared” 模式下，在启动管线之前准备好管线中的所有命令（Álvaro Herrera）§ 这避免了当 pgbench 脚本尝试在管线内部启动可串行化事务时出现的失败。", "title": "在 pgbench 的 “prepared” 模式下，在启动管线之前准备好管线中的所有命令", "commits": ["108a22bd1"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "b5e3cfc64a3bfa16e5ee98c1e296eaed99db0332759dcca2b6bfb7f15940eaaa", "section_path": ["变更"], "commit_groups": [["038f586d5", "108a22bd1", "663e50e83"]], "identity_text": "In pgbench's prepared mode, prepare all the commands in a pipeline before starting the pipeline (Álvaro Herrera) This avoids a failure when a pgbench script tries to start a serializable transaction inside a pipeline.", "commit_aliases": ["038f586d5", "108a22bd1", "663e50e83"], "source_commits": ["108a22bd1"], "source_entry_id": "15.3/changes/070", "db_id": "85ae92f43ab457d931885ec1632dd7a6", "patch_ids": ["61c5c292d59c50f21573be64b138b306"], "statement_hash": "e3a03be3e769603d523aaf838417093d2a0d941ad1e97e74f7d03ebbaf53930e", "relations": [{"rule": 2, "type": "equivalent", "target": "9b8f29a5a72502082dd8ab1add0e2134", "evidence": {"same_day": true, "patch_ids": ["61c5c292d59c50f21573be64b138b306"], "statement_hash": "e3a03be3e769603d523aaf838417093d2a0d941ad1e97e74f7d03ebbaf53930e"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9b8f29a5a72502082dd8ab1add0e2134", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在 pgbench 的 “prepared” 模式下，在启动管线之前准备好管线中的所有命令", "evidence": {"same_day": true, "patch_ids": ["61c5c292d59c50f21573be64b138b306"], "statement_hash": "e3a03be3e769603d523aaf838417093d2a0d941ad1e97e74f7d03ebbaf53930e"}, "url": "/docs/compare/?release=14.8#14.8-f0b5e23d247711f3", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-50c95d174dbdd6f1", "cves": [], "html": "<p>在 <code>contrib/amcheck</code> 的堆检查代码中，正确处理 xmin 或 xmax 为零的元组（Robert Haas）<a href=\"https://postgr.es/c/701ec5557\">§</a> <a href=\"https://postgr.es/c/453f53821\">§</a></p>", "text": "在 contrib/amcheck 的堆检查代码中，正确处理 xmin 或 xmax 为零的元组（Robert Haas）§ §", "title": "在 contrib/amcheck 的堆检查代码中，正确处理 xmin 或 xmax 为零的元组", "commits": ["453f53821", "701ec5557"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "51c33f774932a15f7c6ebd88a8530a95f526b60e6633e9ed2c9e4f629fa56a7c", "section_path": ["变更"], "commit_groups": [["453f53821", "b7cea5882", "e3363cda9"], ["701ec5557", "8fd5aa76c", "e88754a19"]], "identity_text": "In contrib/amcheck's heap checking code, deal correctly with tuples having zero xmin or xmax (Robert Haas)", "commit_aliases": ["453f53821", "701ec5557", "8fd5aa76c", "b7cea5882", "e3363cda9", "e88754a19"], "source_commits": ["453f53821", "701ec5557"], "source_entry_id": "15.3/changes/071", "db_id": "cd8148d71c603f518435929959ad288a", "patch_ids": ["62fbb02677711e1ec29edb515ea410cb", "d16627d1802cb998d62a75c75f467f7f"], "statement_hash": "45eb197ee56412b420c3671e4d4ccc527d4e9fd5233e58c315f68fab286509d1", "relations": [{"rule": 2, "type": "equivalent", "target": "4f0b048356bdbd92c1597042681330ce", "evidence": {"same_day": true, "patch_ids": ["62fbb02677711e1ec29edb515ea410cb", "d16627d1802cb998d62a75c75f467f7f"], "statement_hash": "45eb197ee56412b420c3671e4d4ccc527d4e9fd5233e58c315f68fab286509d1"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f0b048356bdbd92c1597042681330ce", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在 contrib/amcheck 的堆检查代码中，正确处理 xmin 或 xmax 为零的元组", "evidence": {"same_day": true, "patch_ids": ["62fbb02677711e1ec29edb515ea410cb", "d16627d1802cb998d62a75c75f467f7f"], "statement_hash": "45eb197ee56412b420c3671e4d4ccc527d4e9fd5233e58c315f68fab286509d1"}, "url": "/docs/compare/?release=14.8#14.8-b5562f32def76e5a", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-34d070a2eb7978fa", "cves": [], "html": "<p>在 <code>contrib/amcheck</code> 中，合理处理看起来在纪元零之前的 xid（Andres Freund）<a href=\"https://postgr.es/c/e8a9750d0\">§</a></p>\n<p>在损坏的情况下，我们可能会看到一个回卷的 32 位 xid，看起来在第一个 xid 纪元之前。将这样的值提升为 64 位形式会产生一个远在未来的值，导致错误的报告。在此类情况下返回 FirstNormalFullTransactionId，以便行为合理正常。</p>", "text": "在 contrib/amcheck 中，合理处理看起来在纪元零之前的 xid（Andres Freund）§ 在损坏的情况下，我们可能会看到一个回卷的 32 位 xid，看起来在第一个 xid 纪元之前。将这样的值提升为 64 位形式会产生一个远在未来的值，导致错误的报告。在此类情况下返回 FirstNormalFullTransactionId，以便行为合理正常。", "title": "在 contrib/amcheck 中，合理处理看起来在纪元零之前的 xid", "commits": ["e8a9750d0"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "37d0b392db45b0c50e4e2f683c2c26b8124a7a7665f0fe579e3632b545e3aeaa", "section_path": ["变更"], "commit_groups": [["4f5d461e0", "b3a83055c", "e8a9750d0"]], "identity_text": "In contrib/amcheck, deal sanely with xids that appear to be before epoch zero (Andres Freund) In cases of corruption we might see a wrapped-around 32-bit xid that appears to be before the first xid epoch. Promoting such a value to 64-bit form produced a value far in the future, resulting in wrong reports. Return FirstNormalFullTransactionId in such cases so that things work reasonably sanely.", "commit_aliases": ["4f5d461e0", "b3a83055c", "e8a9750d0"], "source_commits": ["e8a9750d0"], "source_entry_id": "15.3/changes/072", "db_id": "7c8dbefd44a1786d1ade560b000ab995", "patch_ids": ["e86c51f28a9f6deb308dad259a580e6e"], "statement_hash": "8926546982d518c7786339442749789839da40ee7593278bf01c107d4a2f6225", "relations": [{"rule": 2, "type": "equivalent", "target": "b9534cab031ecf368fbc1f098e32a40d", "evidence": {"same_day": true, "patch_ids": ["e86c51f28a9f6deb308dad259a580e6e"], "statement_hash": "8926546982d518c7786339442749789839da40ee7593278bf01c107d4a2f6225"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b9534cab031ecf368fbc1f098e32a40d", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在 contrib/amcheck 中，合理处理看起来在纪元零之前的 xid", "evidence": {"same_day": true, "patch_ids": ["e86c51f28a9f6deb308dad259a580e6e"], "statement_hash": "8926546982d518c7786339442749789839da40ee7593278bf01c107d4a2f6225"}, "url": "/docs/compare/?release=14.8#14.8-965fdd20c850d50d", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-5d06d498b1b84b5b", "cves": [], "html": "<p>在 <code>contrib/basebackup_to_shell</code> 中，正确检测打开管道失败（Robert Haas）<a href=\"https://postgr.es/c/fa83e9e23\">§</a></p>", "text": "在 contrib/basebackup_to_shell 中，正确检测打开管道失败（Robert Haas）§", "title": "在 contrib/basebackup_to_shell 中，正确检测打开管道失败", "commits": ["fa83e9e23"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "69f04045a3410341dcf34ccad8c3ec242bb9ac21ea60323806c21456cf88a585", "section_path": ["变更"], "commit_groups": [["8e82db97b", "fa83e9e23"]], "identity_text": "In contrib/basebackup_to_shell, properly detect failure to open a pipe (Robert Haas)", "commit_aliases": ["8e82db97b", "fa83e9e23"], "source_commits": ["fa83e9e23"], "source_entry_id": "15.3/changes/073", "db_id": "7242b03088ff0f75636d602409745b1e", "patch_ids": ["54f5c9cc1a16a8b6f15848e62b172847"], "statement_hash": "90f84c53d5da3f64ad93074342ebfb86934abb9ba1d73fbf1a24d2bfe1c69c5a", "relations": [], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-3b8b58a02245da36", "cves": [], "html": "<p>在 <code>contrib/hstore_plpython</code> 中，如果要转换的 Python 值不是映射类型则避免崩溃（Dmitry Dolgov，Tom Lane）<a href=\"https://postgr.es/c/85ec8bcce\">§</a></p>\n<p>这应该产生一个错误，但 Python 3 更改了一些 API，导致检查出现异常行为，从而引发崩溃。</p>", "text": "在 contrib/hstore_plpython 中，如果要转换的 Python 值不是映射类型则避免崩溃（Dmitry Dolgov，Tom Lane）§ 这应该产生一个错误，但 Python 3 更改了一些 API，导致检查出现异常行为，从而引发崩溃。", "title": "在 contrib/hstore_plpython 中，如果要转换的 Python 值不是映射类型则避免崩溃", "commits": ["85ec8bcce"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "b8b4e897353348bccdab1a3d0569553475e516bc48ee74f2b1852356b93ec455", "section_path": ["变更"], "commit_groups": [["85ec8bcce", "c3c1097dc", "c74f88c40", "ce9662598", "de2dfa053", "df38157d9"]], "identity_text": "In contrib/hstore_plpython, avoid crashing if the Python value to be transformed isn't a mapping (Dmitry Dolgov, Tom Lane) This should give an error, but Python 3 changed some APIs in a way that caused the check to misbehave, allowing a crash to ensue.", "commit_aliases": ["85ec8bcce", "c3c1097dc", "c74f88c40", "ce9662598", "de2dfa053", "df38157d9"], "source_commits": ["85ec8bcce"], "source_entry_id": "15.3/changes/074", "db_id": "992b7e13fba4e41f7df154c0c4b25c24", "patch_ids": ["095283c4b873b4ceb491ef2fe7dc7654"], "statement_hash": "5b10abea459c49b76ae3de16bca071116b5dd05fd50089684aa9dec99ae352d3", "relations": [{"rule": 2, "type": "equivalent", "target": "0db4cf8b0eb5a79c52fd1a9fd6e54554", "evidence": {"same_day": true, "patch_ids": ["095283c4b873b4ceb491ef2fe7dc7654"], "statement_hash": "5b10abea459c49b76ae3de16bca071116b5dd05fd50089684aa9dec99ae352d3"}}, {"rule": 2, "type": "equivalent", "target": "13a7f4a85f6699077d90250137ae85a8", "evidence": {"same_day": true, "patch_ids": ["095283c4b873b4ceb491ef2fe7dc7654"], "statement_hash": "5b10abea459c49b76ae3de16bca071116b5dd05fd50089684aa9dec99ae352d3"}}, {"rule": 2, "type": "equivalent", "target": "848ea20db068591bca586198d7d96948", "evidence": {"same_day": true, "patch_ids": ["095283c4b873b4ceb491ef2fe7dc7654"], "statement_hash": "5b10abea459c49b76ae3de16bca071116b5dd05fd50089684aa9dec99ae352d3"}}, {"rule": 2, "type": "equivalent", "target": "c2caaccb98bf63451057e0fe60c6935a", "evidence": {"same_day": true, "patch_ids": ["095283c4b873b4ceb491ef2fe7dc7654"], "statement_hash": "5b10abea459c49b76ae3de16bca071116b5dd05fd50089684aa9dec99ae352d3"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0db4cf8b0eb5a79c52fd1a9fd6e54554", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在 contrib/hstore_plpython 中，如果要转换的 Python 值不是映射类型则避免崩溃", "evidence": {"same_day": true, "patch_ids": ["095283c4b873b4ceb491ef2fe7dc7654"], "statement_hash": "5b10abea459c49b76ae3de16bca071116b5dd05fd50089684aa9dec99ae352d3"}, "url": "/docs/compare/?release=14.8#14.8-c661ca2967fe62e3", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "c2caaccb98bf63451057e0fe60c6935a", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "在 contrib/hstore_plpython 中，如果要转换的 Python 值不是映射类型则避免崩溃", "evidence": {"same_day": true, "patch_ids": ["095283c4b873b4ceb491ef2fe7dc7654"], "statement_hash": "5b10abea459c49b76ae3de16bca071116b5dd05fd50089684aa9dec99ae352d3"}, "url": "/docs/compare/?release=13.11#13.11-62f7f422165982e8", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "13a7f4a85f6699077d90250137ae85a8", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "在 contrib/hstore_plpython 中，如果要转换的 Python 值不是映射类型则避免崩溃", "evidence": {"same_day": true, "patch_ids": ["095283c4b873b4ceb491ef2fe7dc7654"], "statement_hash": "5b10abea459c49b76ae3de16bca071116b5dd05fd50089684aa9dec99ae352d3"}, "url": "/docs/compare/?release=12.15#12.15-fa18c63a2c6d14b7", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "848ea20db068591bca586198d7d96948", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "在 contrib/hstore_plpython 中，如果要转换的 Python 值不是映射类型则避免崩溃", "evidence": {"same_day": true, "patch_ids": ["095283c4b873b4ceb491ef2fe7dc7654"], "statement_hash": "5b10abea459c49b76ae3de16bca071116b5dd05fd50089684aa9dec99ae352d3"}, "url": "/docs/compare/?release=11.20#11.20-3666bb6edf3448b0", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-df3db3947c56ed7a", "cves": [], "html": "<p>要求 <code>ltree</code> 列上 GiST 索引的 <code>siglen</code> 选项（如果指定）必须是 4 的倍数（Alexander Korotkov）<a href=\"https://postgr.es/c/214495dc5\">§</a></p>\n<p>其他值会导致对索引内容的未对齐访问，这在 Intel 兼容硬件上是无害的，但在某些其他架构上可能导致崩溃。</p>", "text": "要求 ltree 列上 GiST 索引的 siglen 选项（如果指定）必须是 4 的倍数（Alexander Korotkov）§ 其他值会导致对索引内容的未对齐访问，这在 Intel 兼容硬件上是无害的，但在某些其他架构上可能导致崩溃。", "title": "要求 ltree 列上 GiST 索引的 siglen 选项（如果指定）必须是 4 的倍数", "commits": ["214495dc5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "a6b1eb040bed29158f82176c5955001f18c5bde4e9054d558247a65e878cb221", "section_path": ["变更"], "commit_groups": [["214495dc5", "48c6825d0", "8bbd0cce9", "f4a4a18ec"]], "identity_text": "Require the siglen option of a GiST index on an ltree column, if specified, to be a multiple of 4 (Alexander Korotkov) Other values result in misaligned accesses to index content, which is harmless on Intel-compatible hardware but can cause a crash on some other architectures.", "commit_aliases": ["214495dc5", "48c6825d0", "8bbd0cce9", "f4a4a18ec"], "source_commits": ["214495dc5"], "source_entry_id": "15.3/changes/075", "db_id": "83ac63fac21637e7f6b933010d582997", "patch_ids": ["b737b382fc1cfd587c8e45d28d245d3f"], "statement_hash": "c076cf37825c4202b6b640d14d16b9c48fe2d293ab04129b1dd7a7716efd1200", "relations": [{"rule": 2, "type": "equivalent", "target": "0899c26b1f596d6567e0be6cf0b90a8d", "evidence": {"same_day": true, "patch_ids": ["b737b382fc1cfd587c8e45d28d245d3f"], "statement_hash": "c076cf37825c4202b6b640d14d16b9c48fe2d293ab04129b1dd7a7716efd1200"}}, {"rule": 2, "type": "equivalent", "target": "3c8b1a79474881779363baeb7bd10180", "evidence": {"same_day": true, "patch_ids": ["b737b382fc1cfd587c8e45d28d245d3f"], "statement_hash": "c076cf37825c4202b6b640d14d16b9c48fe2d293ab04129b1dd7a7716efd1200"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0899c26b1f596d6567e0be6cf0b90a8d", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "要求 ltree 列上 GiST 索引的 siglen 选项（如果指定）必须是 4 的倍数", "evidence": {"same_day": true, "patch_ids": ["b737b382fc1cfd587c8e45d28d245d3f"], "statement_hash": "c076cf37825c4202b6b640d14d16b9c48fe2d293ab04129b1dd7a7716efd1200"}, "url": "/docs/compare/?release=14.8#14.8-0c3f8e7e37fdeaea", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "3c8b1a79474881779363baeb7bd10180", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "要求 ltree 列上 GiST 索引的 siglen 选项（如果指定）必须是 4 的倍数", "evidence": {"same_day": true, "patch_ids": ["b737b382fc1cfd587c8e45d28d245d3f"], "statement_hash": "c076cf37825c4202b6b640d14d16b9c48fe2d293ab04129b1dd7a7716efd1200"}, "url": "/docs/compare/?release=13.11#13.11-39d39f0d76a26556", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}]}, {"id": "15.3-89d3b255c4f91153", "cves": [], "html": "<p>在 <code>contrib/pageinspect</code> 中，为 <code>gist_page_items()</code> 函数增加对错误输入的防御（Dmitry Koval）<a href=\"https://postgr.es/c/9d41ecfcd\">§</a></p>", "text": "在 contrib/pageinspect 中，为 gist_page_items() 函数增加对错误输入的防御（Dmitry Koval）§", "title": "在 contrib/pageinspect 中，为 gist_page_items() 函数增加对错误输入的防御", "commits": ["9d41ecfcd"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "be9007d71c720dc8754baa9ba3642ba97c24fba9f8b9e2bef5304caf26617417", "section_path": ["变更"], "commit_groups": [["5ad63eee1", "9d41ecfcd", "be753639d"]], "identity_text": "In contrib/pageinspect, add defenses against incorrect input for the gist_page_items() function (Dmitry Koval)", "commit_aliases": ["5ad63eee1", "9d41ecfcd", "be753639d"], "source_commits": ["9d41ecfcd"], "source_entry_id": "15.3/changes/076", "db_id": "eeb51ff124329f5decb255573b69ad2d", "patch_ids": ["a45a05d004bad155db0d4f034a82fcac"], "statement_hash": "5af4fd4b0975ca521b2dbdbea16483921d6e93cc4b48c737962540e63885fad7", "relations": [{"rule": 2, "type": "equivalent", "target": "d97ae289f54b31a33aba4f850df85924", "evidence": {"same_day": true, "patch_ids": ["a45a05d004bad155db0d4f034a82fcac"], "statement_hash": "5af4fd4b0975ca521b2dbdbea16483921d6e93cc4b48c737962540e63885fad7"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d97ae289f54b31a33aba4f850df85924", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在 contrib/pageinspect 中，为 gist_page_items() 函数增加对错误输入的防御", "evidence": {"same_day": true, "patch_ids": ["a45a05d004bad155db0d4f034a82fcac"], "statement_hash": "5af4fd4b0975ca521b2dbdbea16483921d6e93cc4b48c737962540e63885fad7"}, "url": "/docs/compare/?release=14.8#14.8-484a380e611db3db", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}]}, {"id": "15.3-897162a7e4359bd8", "cves": [], "html": "<p>修复 <code>contrib/pg_trgm</code> 在处理不可满足的正则表达式时的异常行为（Tom Lane）<a href=\"https://postgr.es/c/6170386c7\">§</a></p>\n<p>如 <code>$foo</code> 这样的正则表达式是合法的但不可满足；正则表达式编译器会识别到这一点并生成一个空的 NFA 图。尝试将这样的图优化为 pg_trgm GIN 或 GiST 索引限定条件时，会导致访问工作数组末尾之外的内容，可能导致崩溃。</p>", "text": "修复 contrib/pg_trgm 在处理不可满足的正则表达式时的异常行为（Tom Lane）§ 如 $foo 这样的正则表达式是合法的但不可满足；正则表达式编译器会识别到这一点并生成一个空的 NFA 图。尝试将这样的图优化为 pg_trgm GIN 或 GiST 索引限定条件时，会导致访问工作数组末尾之外的内容，可能导致崩溃。", "title": "修复 contrib/pg_trgm 在处理不可满足的正则表达式时的异常行为", "commits": ["6170386c7"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "ed8d99c84de43ddaa1e76bd5a6b5c41d217861c936d2564a108e4f765245bb73", "section_path": ["变更"], "commit_groups": [["1279414bc", "1925ac281", "6170386c7", "786528039", "b18327489", "bc436e4a9"]], "identity_text": "Fix misbehavior in contrib/pg_trgm with an unsatisfiable regular expression (Tom Lane) A regex such as $foo is legal but unsatisfiable; the regex compiler recognizes that and produces an empty NFA graph. Attempting to optimize such a graph into a pg_trgm GIN or GiST index qualification resulted in accessing off the end of a work array, possibly leading to crashes.", "commit_aliases": ["1279414bc", "1925ac281", "6170386c7", "786528039", "b18327489", "bc436e4a9"], "source_commits": ["6170386c7"], "source_entry_id": "15.3/changes/077", "db_id": "bbf22c145eaa955bcd5c1809ccdd1f0c", "patch_ids": ["3abf60e8088f7aa25077b7710c97fe19"], "statement_hash": "9c1455ff4261b1d807b8f16a3ac739c16e6820f0c5f4522d2eed9e4cbdc4cdfa", "relations": [{"rule": 2, "type": "equivalent", "target": "73bc398ceb04976b34068077063b9aca", "evidence": {"same_day": true, "patch_ids": ["3abf60e8088f7aa25077b7710c97fe19"], "statement_hash": "9c1455ff4261b1d807b8f16a3ac739c16e6820f0c5f4522d2eed9e4cbdc4cdfa"}}, {"rule": 2, "type": "equivalent", "target": "795d230becfd821f3b7c09701593ebef", "evidence": {"same_day": true, "patch_ids": ["3abf60e8088f7aa25077b7710c97fe19"], "statement_hash": "9c1455ff4261b1d807b8f16a3ac739c16e6820f0c5f4522d2eed9e4cbdc4cdfa"}}, {"rule": 2, "type": "equivalent", "target": "c0a132314f2f7f3c8dba63f2dc1c2e7e", "evidence": {"same_day": true, "patch_ids": ["3abf60e8088f7aa25077b7710c97fe19"], "statement_hash": "9c1455ff4261b1d807b8f16a3ac739c16e6820f0c5f4522d2eed9e4cbdc4cdfa"}}, {"rule": 2, "type": "equivalent", "target": "f2b7ac0e7acc7b717e267d00897fbea2", "evidence": {"same_day": true, "patch_ids": ["3abf60e8088f7aa25077b7710c97fe19"], "statement_hash": "9c1455ff4261b1d807b8f16a3ac739c16e6820f0c5f4522d2eed9e4cbdc4cdfa"}}], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f2b7ac0e7acc7b717e267d00897fbea2", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "修复 contrib/pg_trgm 在处理不可满足的正则表达式时的异常行为", "evidence": {"same_day": true, "patch_ids": ["3abf60e8088f7aa25077b7710c97fe19"], "statement_hash": "9c1455ff4261b1d807b8f16a3ac739c16e6820f0c5f4522d2eed9e4cbdc4cdfa"}, "url": "/docs/compare/?release=14.8#14.8-c00485b3d1d909fc", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "c0a132314f2f7f3c8dba63f2dc1c2e7e", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "修复 contrib/pg_trgm 在处理不可满足的正则表达式时的异常行为", "evidence": {"same_day": true, "patch_ids": ["3abf60e8088f7aa25077b7710c97fe19"], "statement_hash": "9c1455ff4261b1d807b8f16a3ac739c16e6820f0c5f4522d2eed9e4cbdc4cdfa"}, "url": "/docs/compare/?release=13.11#13.11-7086e8918f40736e", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "73bc398ceb04976b34068077063b9aca", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "修复 contrib/pg_trgm 在处理不可满足的正则表达式时的异常行为", "evidence": {"same_day": true, "patch_ids": ["3abf60e8088f7aa25077b7710c97fe19"], "statement_hash": "9c1455ff4261b1d807b8f16a3ac739c16e6820f0c5f4522d2eed9e4cbdc4cdfa"}, "url": "/docs/compare/?release=12.15#12.15-1c54196da3db7369", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "795d230becfd821f3b7c09701593ebef", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "修复 contrib/pg_trgm 在处理不可满足的正则表达式时的异常行为", "evidence": {"same_day": true, "patch_ids": ["3abf60e8088f7aa25077b7710c97fe19"], "statement_hash": "9c1455ff4261b1d807b8f16a3ac739c16e6820f0c5f4522d2eed9e4cbdc4cdfa"}, "url": "/docs/compare/?release=11.20#11.20-468d076d6a1277da", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-5a1bf2b26838920d", "cves": [], "html": "<p>修复 <code>contrib/postgres_fdw</code> 的 <code>application_name</code> 参数中转义序列的处理（Kyotaro Horiguchi，Michael Paquier）<a href=\"https://postgr.es/c/5bace41ab\">§</a></p>\n<p>扩展这些转义序列的代码在后台进程中执行时可能会失败，例如在自动分析外部表时。</p>", "text": "修复 contrib/postgres_fdw 的 application_name 参数中转义序列的处理（Kyotaro Horiguchi，Michael Paquier）§ 扩展这些转义序列的代码在后台进程中执行时可能会失败，例如在自动分析外部表时。", "title": "修复 contrib/postgres_fdw 的 application_name 参数中转义序列的处理", "commits": ["5bace41ab"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "a9b5ed021f2439eb372db02b5a5931b9b353160bbdbb8348340eda0efcf2ac8d", "section_path": ["变更"], "commit_groups": [["5bace41ab", "8427ce4c3"]], "identity_text": "Fix handling of escape sequences in contrib/postgres_fdw's application_name parameter (Kyotaro Horiguchi, Michael Paquier) The code to expand these could fail if executed in a background process, as for example during auto-analyze of a foreign table.", "commit_aliases": ["5bace41ab", "8427ce4c3"], "source_commits": ["5bace41ab"], "source_entry_id": "15.3/changes/078", "db_id": "8fd9713d87f31f7ff4b451158f3ef3d2", "patch_ids": ["8b0ad7031f71f7fe780fdc9467296321"], "statement_hash": "d090893681efaa63130ec364f42afdf45afb44bda407901cced343ce94cece72", "relations": [], "version": "15.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-3358f3ed997245d5", "cves": [], "html": "<p>在 <code>contrib/pg_walinspect</code> 中，限制 <code>pg_get_wal_records_info()</code> 的内存使用（Bharath Rupireddy）<a href=\"https://postgr.es/c/da32a99df\">§</a></p>", "text": "在 contrib/pg_walinspect 中，限制 pg_get_wal_records_info() 的内存使用（Bharath Rupireddy）§", "title": "在 contrib/pg_walinspect 中，限制 pg_get_wal_records_info() 的内存使用", "commits": ["da32a99df"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "5d55391c3e2b4193e307bad89fd2ce2be4257dc75d2bac97f2c13d284aa1059c", "section_path": ["变更"], "commit_groups": [["69e8c7cf1", "da32a99df"]], "identity_text": "In contrib/pg_walinspect, limit memory usage of pg_get_wal_records_info() (Bharath Rupireddy)", "commit_aliases": ["69e8c7cf1", "da32a99df"], "source_commits": ["da32a99df"], "source_entry_id": "15.3/changes/079", "db_id": "6fe6d83a501b3657d4551b56d3a6672f", "patch_ids": ["760a8716f6d66c0a2f248c085c2a4108"], "statement_hash": "dc862f578adc043151b93024a2b7f9d395f8160662c5c9e96d97663272244aff", "relations": [], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "15.3-9265906c7c137f74", "cves": [], "html": "<p>在使用 GNU 兼容的 <span>strip</span> 剥离静态库时使用 <code>--strip-unneeded</code> 选项（Tom Lane）<a href=\"https://postgr.es/c/a14afd3bd\">§</a></p>\n<p>之前，<code>make install-strip</code> 在这种情况下使用 <code>-x</code> 选项。此更改避免了 <span>llvm-strip</span> 的异常行为，同时也能产生稍小的输出。</p>", "text": "在使用 GNU 兼容的 strip 剥离静态库时使用 --strip-unneeded 选项（Tom Lane）§ 之前，make install-strip 在这种情况下使用 -x 选项。此更改避免了 llvm-strip 的异常行为，同时也能产生稍小的输出。", "title": "在使用 GNU 兼容的 strip 剥离静态库时使用 --strip-unneeded 选项", "commits": ["a14afd3bd"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "1b9f2167f044e26aaec21a4b0f598ffed1d4e9dfbb3a9e84389cdfb5f9cf5242", "section_path": ["变更"], "commit_groups": [["6d60b718c", "6dce37203", "a14afd3bd", "c976ccc9e", "e2e34dfff", "eab2d3147"]], "identity_text": "Use the --strip-unneeded option when stripping static libraries with GNU-compatible strip (Tom Lane) Previously, make install-strip used the -x option in this case. This change avoids misbehavior of llvm-strip, and gives slightly smaller output as well.", "commit_aliases": ["6d60b718c", "6dce37203", "a14afd3bd", "c976ccc9e", "e2e34dfff", "eab2d3147"], "source_commits": ["a14afd3bd"], "source_entry_id": "15.3/changes/080", "db_id": "3f98760a6384629fbf01a77c8bf3d692", "patch_ids": ["12a16cf6a455909d44e3f648b751cd35"], "statement_hash": "1a26acf2a47e53800cdae34e305a712625c54b9f4d0bb76146280eefb3436a12", "relations": [{"rule": 2, "type": "equivalent", "target": "54d311eebf11472f4b45ea80a717945c", "evidence": {"same_day": true, "patch_ids": ["12a16cf6a455909d44e3f648b751cd35"], "statement_hash": "1a26acf2a47e53800cdae34e305a712625c54b9f4d0bb76146280eefb3436a12"}}, {"rule": 2, "type": "equivalent", "target": "54f594dd84033f747a8755d0a7515c35", "evidence": {"same_day": true, "patch_ids": ["12a16cf6a455909d44e3f648b751cd35"], "statement_hash": "1a26acf2a47e53800cdae34e305a712625c54b9f4d0bb76146280eefb3436a12"}}, {"rule": 2, "type": "equivalent", "target": "7b8642b9296c173c2f215248f949a577", "evidence": {"same_day": true, "patch_ids": ["12a16cf6a455909d44e3f648b751cd35"], "statement_hash": "1a26acf2a47e53800cdae34e305a712625c54b9f4d0bb76146280eefb3436a12"}}, {"rule": 2, "type": "equivalent", "target": "e4ce17b235c36dbe2d9ea864445a619b", "evidence": {"same_day": true, "patch_ids": ["12a16cf6a455909d44e3f648b751cd35"], "statement_hash": "1a26acf2a47e53800cdae34e305a712625c54b9f4d0bb76146280eefb3436a12"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "54f594dd84033f747a8755d0a7515c35", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在使用 GNU 兼容的 strip 剥离静态库时使用 --strip-unneeded 选项", "evidence": {"same_day": true, "patch_ids": ["12a16cf6a455909d44e3f648b751cd35"], "statement_hash": "1a26acf2a47e53800cdae34e305a712625c54b9f4d0bb76146280eefb3436a12"}, "url": "/docs/compare/?release=14.8#14.8-dde7a70a8e05cfe5", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "7b8642b9296c173c2f215248f949a577", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "在使用 GNU 兼容的 strip 剥离静态库时使用 --strip-unneeded 选项", "evidence": {"same_day": true, "patch_ids": ["12a16cf6a455909d44e3f648b751cd35"], "statement_hash": "1a26acf2a47e53800cdae34e305a712625c54b9f4d0bb76146280eefb3436a12"}, "url": "/docs/compare/?release=13.11#13.11-8bbb71d838237ab5", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "e4ce17b235c36dbe2d9ea864445a619b", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "在使用 GNU 兼容的 strip 剥离静态库时使用 --strip-unneeded 选项", "evidence": {"same_day": true, "patch_ids": ["12a16cf6a455909d44e3f648b751cd35"], "statement_hash": "1a26acf2a47e53800cdae34e305a712625c54b9f4d0bb76146280eefb3436a12"}, "url": "/docs/compare/?release=12.15#12.15-df3ccb51f02774d0", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "54d311eebf11472f4b45ea80a717945c", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "使用与 GNU 兼容的 strip 剥离静态库中的符号时，使用 --strip-unneeded 选项", "evidence": {"same_day": true, "patch_ids": ["12a16cf6a455909d44e3f648b751cd35"], "statement_hash": "1a26acf2a47e53800cdae34e305a712625c54b9f4d0bb76146280eefb3436a12"}, "url": "/docs/compare/?release=11.20#11.20-6b9257768cfd8479", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-02c33d4f5a7c635e", "cves": [], "html": "<p>停止推荐自动下载 DTD 文件用于构建文档，并实际禁用该功能（Aleksander Alekseev，Peter Eisentraut，Tom Lane）<a href=\"https://postgr.es/c/2ee703c9d\">§</a></p>\n<p>现在似乎不再可能在没有本地安装 DocBook DTD 文件的情况下构建 SGML 文档。之前 <span>xsltproc</span> 可以从 sourceforge.net 即时下载这些文件；但 sourceforge.net 现在只允许 HTTPS 访问，而没有常见版本的 <span>xsltproc</span> 支持该协议。因此，移除了我们文档中建议这种做法是可能或有用的部分，改为在构建配方中添加 <span>xsltproc</span> 的 <code>--nonet</code> 选项。</p>", "text": "停止推荐自动下载 DTD 文件用于构建文档，并实际禁用该功能（Aleksander Alekseev，Peter Eisentraut，Tom Lane）§ 现在似乎不再可能在没有本地安装 DocBook DTD 文件的情况下构建 SGML 文档。之前 xsltproc 可以从 sourceforge.net 即时下载这些文件；但 sourceforge.net 现在只允许 HTTPS 访问，而没有常见版本的 xsltproc 支持该协议。因此，移除了我们文档中建议这种做法是可能或有用的部分，改为在构建配方中添加 xsltproc 的 --nonet 选项。", "title": "停止推荐自动下载 DTD 文件用于构建文档，并实际禁用该功能", "commits": ["2ee703c9d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "1721c5f4b3c0ce492055916315f33667e4bf00982829e9792e72d30aee1cc694", "section_path": ["变更"], "commit_groups": [["11f1f9f4f", "2ee703c9d", "36a646d99", "7f8778fcf", "969509c3f", "c7b608600"]], "identity_text": "Stop recommending auto-download of DTD files for building the documentation, and indeed disable it (Aleksander Alekseev, Peter Eisentraut, Tom Lane) It appears no longer possible to build the SGML documentation without a local installation of the DocBook DTD files. Formerly xsltproc could download those files on-the-fly from sourceforge.net; but sourceforge.net now permits only HTTPS access, and no common version of xsltproc supports that. Hence, remove the bits of our documentation suggesting that that's possible or useful, and instead add xsltproc's --nonet option to the build recipes.", "commit_aliases": ["11f1f9f4f", "2ee703c9d", "36a646d99", "7f8778fcf", "969509c3f", "c7b608600"], "source_commits": ["2ee703c9d"], "source_entry_id": "15.3/changes/081", "db_id": "1ab07f193e5d80881f5e9a4f1bf93adc", "patch_ids": ["ae752604d631e7ce1e3e2ccdb26d3b89"], "statement_hash": "6452ec7d7f9c254ad7018520ea3b65e4fd3972608d9eaea13fc8108d6c7f8851", "relations": [{"rule": 2, "type": "equivalent", "target": "3dae03fd0c119873e52b3bfe3f431413", "evidence": {"same_day": true, "patch_ids": ["ae752604d631e7ce1e3e2ccdb26d3b89"], "statement_hash": "6452ec7d7f9c254ad7018520ea3b65e4fd3972608d9eaea13fc8108d6c7f8851"}}, {"rule": 2, "type": "equivalent", "target": "dd21b66d31b58006f0343f4196207aa1", "evidence": {"same_day": true, "patch_ids": ["ae752604d631e7ce1e3e2ccdb26d3b89"], "statement_hash": "6452ec7d7f9c254ad7018520ea3b65e4fd3972608d9eaea13fc8108d6c7f8851"}}, {"rule": 2, "type": "equivalent", "target": "ea5dbf2775ee18965bef16de9ecea541", "evidence": {"same_day": true, "patch_ids": ["ae752604d631e7ce1e3e2ccdb26d3b89"], "statement_hash": "6452ec7d7f9c254ad7018520ea3b65e4fd3972608d9eaea13fc8108d6c7f8851"}}, {"rule": 2, "type": "equivalent", "target": "f962f99044a5ba93a81c61620ec96e3f", "evidence": {"same_day": true, "patch_ids": ["ae752604d631e7ce1e3e2ccdb26d3b89"], "statement_hash": "6452ec7d7f9c254ad7018520ea3b65e4fd3972608d9eaea13fc8108d6c7f8851"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3dae03fd0c119873e52b3bfe3f431413", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "停止推荐自动下载 DTD 文件用于构建文档，并实际禁用该功能", "evidence": {"same_day": true, "patch_ids": ["ae752604d631e7ce1e3e2ccdb26d3b89"], "statement_hash": "6452ec7d7f9c254ad7018520ea3b65e4fd3972608d9eaea13fc8108d6c7f8851"}, "url": "/docs/compare/?release=14.8#14.8-cb855796788ecd43", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "dd21b66d31b58006f0343f4196207aa1", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "停止推荐自动下载 DTD 文件用于构建文档，并实际禁用该功能", "evidence": {"same_day": true, "patch_ids": ["ae752604d631e7ce1e3e2ccdb26d3b89"], "statement_hash": "6452ec7d7f9c254ad7018520ea3b65e4fd3972608d9eaea13fc8108d6c7f8851"}, "url": "/docs/compare/?release=13.11#13.11-b7962617006fe24f", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "f962f99044a5ba93a81c61620ec96e3f", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "停止推荐自动下载 DTD 文件用于构建文档，并实际禁用该功能", "evidence": {"same_day": true, "patch_ids": ["ae752604d631e7ce1e3e2ccdb26d3b89"], "statement_hash": "6452ec7d7f9c254ad7018520ea3b65e4fd3972608d9eaea13fc8108d6c7f8851"}, "url": "/docs/compare/?release=12.15#12.15-82df4df652609576", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "ea5dbf2775ee18965bef16de9ecea541", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "停止推荐自动下载 DTD 文件用于构建文档，并实际禁用该功能", "evidence": {"same_day": true, "patch_ids": ["ae752604d631e7ce1e3e2ccdb26d3b89"], "statement_hash": "6452ec7d7f9c254ad7018520ea3b65e4fd3972608d9eaea13fc8108d6c7f8851"}, "url": "/docs/compare/?release=11.20#11.20-11903854c7be686f", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-78829489e1c9e87d", "cves": [], "html": "<p>在 PGXS 构建中运行 TAP 测试时，为临时 <code>portlock</code> 目录使用更合理的位置（Peter Eisentraut）<a href=\"https://postgr.es/c/3d37476f5\">§</a></p>\n<p>将其放置在构建目录下的 <code>tmp_check</code> 中。使用之前的代码，PGXS 构建会尝试将其放置在安装目录中，而该目录不一定是可写的。</p>", "text": "在 PGXS 构建中运行 TAP 测试时，为临时 portlock 目录使用更合理的位置（Peter Eisentraut）§ 将其放置在构建目录下的 tmp_check 中。使用之前的代码，PGXS 构建会尝试将其放置在安装目录中，而该目录不一定是可写的。", "title": "在 PGXS 构建中运行 TAP 测试时，为临时 portlock 目录使用更合理的位置", "commits": ["3d37476f5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "50639fcbe57da9c63b8e40d37aecc51ae31ffcb07c02400ee662dc9931501597", "section_path": ["变更"], "commit_groups": [["14bb2e76c", "3d37476f5", "5d42a9751", "670494477", "b189f71e5", "e07022500"]], "identity_text": "When running TAP tests in PGXS builds, use a saner location for the temporary portlock directory (Peter Eisentraut) Place it under tmp_check in the build directory. With the previous coding, a PGXS build would try to place it in the installation directory, which is not necessarily writable.", "commit_aliases": ["14bb2e76c", "3d37476f5", "5d42a9751", "670494477", "b189f71e5", "e07022500"], "source_commits": ["3d37476f5"], "source_entry_id": "15.3/changes/082", "db_id": "980a2513dc783946f9d4333b0c3f5eeb", "patch_ids": ["350cf2e2c624a7337ebe64331b202948"], "statement_hash": "5d101f6a234aa77d3461e581f9fa945c7f723debd2e02aea1c3e9a4c4b47663c", "relations": [{"rule": 2, "type": "equivalent", "target": "5b3452899b3be9a0d1de836cffae1fda", "evidence": {"same_day": true, "patch_ids": ["350cf2e2c624a7337ebe64331b202948"], "statement_hash": "5d101f6a234aa77d3461e581f9fa945c7f723debd2e02aea1c3e9a4c4b47663c"}}, {"rule": 2, "type": "equivalent", "target": "a88c03c8b57854e567c39a9753eb1855", "evidence": {"same_day": true, "patch_ids": ["350cf2e2c624a7337ebe64331b202948"], "statement_hash": "5d101f6a234aa77d3461e581f9fa945c7f723debd2e02aea1c3e9a4c4b47663c"}}, {"rule": 2, "type": "equivalent", "target": "b777b3eae12fc806a5a7a31ea9ca71cf", "evidence": {"same_day": true, "patch_ids": ["350cf2e2c624a7337ebe64331b202948"], "statement_hash": "5d101f6a234aa77d3461e581f9fa945c7f723debd2e02aea1c3e9a4c4b47663c"}}, {"rule": 2, "type": "equivalent", "target": "f833a48dd40e3c6530ffb6778f510792", "evidence": {"same_day": true, "patch_ids": ["350cf2e2c624a7337ebe64331b202948"], "statement_hash": "5d101f6a234aa77d3461e581f9fa945c7f723debd2e02aea1c3e9a4c4b47663c"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f833a48dd40e3c6530ffb6778f510792", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "在 PGXS 构建中运行 TAP 测试时，为临时 portlock 目录使用更合理的位置", "evidence": {"same_day": true, "patch_ids": ["350cf2e2c624a7337ebe64331b202948"], "statement_hash": "5d101f6a234aa77d3461e581f9fa945c7f723debd2e02aea1c3e9a4c4b47663c"}, "url": "/docs/compare/?release=14.8#14.8-4512568f8dfbf31f", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "a88c03c8b57854e567c39a9753eb1855", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "在 PGXS 构建中运行 TAP 测试时，为临时 portlock 目录使用更合理的位置", "evidence": {"same_day": true, "patch_ids": ["350cf2e2c624a7337ebe64331b202948"], "statement_hash": "5d101f6a234aa77d3461e581f9fa945c7f723debd2e02aea1c3e9a4c4b47663c"}, "url": "/docs/compare/?release=13.11#13.11-e2c383b90f6adc5e", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "5b3452899b3be9a0d1de836cffae1fda", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "在 PGXS 构建中运行 TAP 测试时，为临时 portlock 目录使用更合理的位置", "evidence": {"same_day": true, "patch_ids": ["350cf2e2c624a7337ebe64331b202948"], "statement_hash": "5d101f6a234aa77d3461e581f9fa945c7f723debd2e02aea1c3e9a4c4b47663c"}, "url": "/docs/compare/?release=12.15#12.15-5d0e8e4152374599", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "b777b3eae12fc806a5a7a31ea9ca71cf", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "在 PGXS 构建中运行 TAP 测试时，为临时 portlock 目录使用更合理的位置", "evidence": {"same_day": true, "patch_ids": ["350cf2e2c624a7337ebe64331b202948"], "statement_hash": "5d101f6a234aa77d3461e581f9fa945c7f723debd2e02aea1c3e9a4c4b47663c"}, "url": "/docs/compare/?release=11.20#11.20-4c5c2889f6c8741e", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}, {"id": "15.3-9cec2bc4e6a6b193", "cves": [], "html": "<p>将时区数据文件更新到 <span>tzdata</span> 版本 2023c，包含埃及、格陵兰、摩洛哥和巴勒斯坦的夏令时法规变更。（Tom Lane）<a href=\"https://postgr.es/c/62b22caa5\">§</a></p>\n<p>在使用莫斯科时间时，Europe/Kirov 和 Europe/Volgograd 现在使用缩写 MSK/MSD 而不是数字缩写，以与其他使用莫斯科时间的时区保持一致。此外，America/Yellowknife 不再与 America/Edmonton 不同；这影响该地区 1948 年之前的一些时间戳。</p>", "text": "将时区数据文件更新到 tzdata 版本 2023c，包含埃及、格陵兰、摩洛哥和巴勒斯坦的夏令时法规变更。（Tom Lane）§ 在使用莫斯科时间时，Europe/Kirov 和 Europe/Volgograd 现在使用缩写 MSK/MSD 而不是数字缩写，以与其他使用莫斯科时间的时区保持一致。此外，America/Yellowknife 不再与 America/Edmonton 不同；这影响该地区 1948 年之前的一些时间戳。", "title": "将时区数据文件更新到 tzdata 版本 2023c，包含埃及、格陵兰、摩洛哥和巴勒斯坦的夏令时法规变更。", "commits": ["62b22caa5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.3/#ZH-AUTO-RELEASE-15-SECT2-30", "source_hash": "a5dcad1a5f3187bb1d5740a2899ed93728b19237f1ede5bb1ba10a3c459949ff", "section_path": ["变更"], "commit_groups": [["2ad35cf06", "4ddee4d9d", "62b22caa5", "7228f2f81", "87d8ec3e4", "b79b36f26"]], "identity_text": "Update time zone data files to tzdata release 2023c for DST law changes in Egypt, Greenland, Morocco, and Palestine. (Tom Lane) When observing Moscow time, Europe/Kirov and Europe/Volgograd now use the abbreviations MSK/MSD instead of numeric abbreviations, for consistency with other timezones observing Moscow time. Also, America/Yellowknife is no longer distinct from America/Edmonton; this affects some pre-1948 timestamps in that area.", "commit_aliases": ["2ad35cf06", "4ddee4d9d", "62b22caa5", "7228f2f81", "87d8ec3e4", "b79b36f26"], "source_commits": ["62b22caa5"], "source_entry_id": "15.3/changes/083", "db_id": "a5866a6dfbf21d9c33fa546f4ddcbb04", "patch_ids": ["aefd5be331873944e6970308a638082a"], "statement_hash": "0c9a56e9ff262e527f90e8585a8d8ab745bcb805922107d95e4d8e71698d7614", "relations": [{"rule": 2, "type": "equivalent", "target": "10be16deda7a3a586a3117289d8b0b06", "evidence": {"same_day": true, "patch_ids": ["aefd5be331873944e6970308a638082a"]}}, {"rule": 2, "type": "equivalent", "target": "360789e56cf7d2c4170c359a8391cd59", "evidence": {"same_day": true, "patch_ids": ["aefd5be331873944e6970308a638082a"], "statement_hash": "0c9a56e9ff262e527f90e8585a8d8ab745bcb805922107d95e4d8e71698d7614"}}, {"rule": 2, "type": "equivalent", "target": "a75851e9f042420ee45e8f1723a55d95", "evidence": {"same_day": true, "patch_ids": ["aefd5be331873944e6970308a638082a"], "statement_hash": "0c9a56e9ff262e527f90e8585a8d8ab745bcb805922107d95e4d8e71698d7614"}}, {"rule": 2, "type": "equivalent", "target": "c7c1d0132ad2134c3b86c9166800e77b", "evidence": {"same_day": true, "patch_ids": ["aefd5be331873944e6970308a638082a"], "statement_hash": "0c9a56e9ff262e527f90e8585a8d8ab745bcb805922107d95e4d8e71698d7614"}}], "version": "15.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c7c1d0132ad2134c3b86c9166800e77b", "kind": "equivalent", "version": "14.8", "label": "14.8", "title": "将时区数据文件更新到 tzdata 版本 2023c，包含埃及、格陵兰、摩洛哥和巴勒斯坦的夏令时法规变更。", "evidence": {"same_day": true, "patch_ids": ["aefd5be331873944e6970308a638082a"], "statement_hash": "0c9a56e9ff262e527f90e8585a8d8ab745bcb805922107d95e4d8e71698d7614"}, "url": "/docs/compare/?release=14.8#14.8-e4329476e6fe2494", "source_url": "/docs/release/14.8/#ZH-AUTO-RELEASE-14-SECT2-30"}, {"db_id": "360789e56cf7d2c4170c359a8391cd59", "kind": "equivalent", "version": "13.11", "label": "13.11", "title": "将时区数据文件更新到 tzdata 版本 2023c，包含埃及、格陵兰、摩洛哥和巴勒斯坦的夏令时法规变更。", "evidence": {"same_day": true, "patch_ids": ["aefd5be331873944e6970308a638082a"], "statement_hash": "0c9a56e9ff262e527f90e8585a8d8ab745bcb805922107d95e4d8e71698d7614"}, "url": "/docs/compare/?release=13.11#13.11-de2b6e53b98afe3b", "source_url": "/docs/release/13.11/#id-1.11.6.18.5"}, {"db_id": "a75851e9f042420ee45e8f1723a55d95", "kind": "equivalent", "version": "12.15", "label": "12.15", "title": "将时区数据文件更新到 tzdata 版本 2023c，包含埃及、格陵兰、摩洛哥和巴勒斯坦的夏令时法规变更。", "evidence": {"same_day": true, "patch_ids": ["aefd5be331873944e6970308a638082a"], "statement_hash": "0c9a56e9ff262e527f90e8585a8d8ab745bcb805922107d95e4d8e71698d7614"}, "url": "/docs/compare/?release=12.15#12.15-679c662d64b0e13d", "source_url": "/docs/release/12.15/#id-1.11.6.13.5"}, {"db_id": "10be16deda7a3a586a3117289d8b0b06", "kind": "equivalent", "version": "11.20", "label": "11.20", "title": "将时区数据文件更新到 tzdata 2023c 版，以反映埃及、格陵兰、摩洛哥和巴勒斯坦的夏令时法规变更。", "evidence": {"same_day": true, "patch_ids": ["aefd5be331873944e6970308a638082a"]}, "url": "/docs/compare/?release=11.20#11.20-2a135cc7fba17b76", "source_url": "/docs/release/11.20/#id-1.11.6.7.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 83}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 41}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 40}], "total": 83, "release_count": 1, "cross_major": false, "cve_count": 2, "cves": [{"id": "CVE-2023-2454", "url": "https://www.postgresql.org/support/security/CVE-2023-2454/", "fixed": {"11": "11.20", "12": "12.15", "13": "13.11", "14": "14.8", "15": "15.3"}, "score": 7.2, "title": "防止 CREATE SCHEMA 绕过 search_path 的更改", "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "affected": {"11": "11", "12": "12", "13": "13", "14": "14", "15": "15"}, "component": "core server", "published": {"11": "2023-05-11", "12": "2023-05-11", "13": "2023-05-11", "14": "2023-05-11", "15": "2023-05-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "This enabled an attacker having database-level CREATE privilege to execute arbitrary code as the bootstrap superuser. Database owners have that right by default, and explicit grants may extend it to other users.\n\nThe PostgreSQL project thanks Alexander Lakhin for reporting this problem.", "first_published": "2023-05-11", "fixed_version": "15.3"}, {"id": "CVE-2023-2455", "url": "https://www.postgresql.org/support/security/CVE-2023-2455/", "fixed": {"11": "11.20", "12": "12.15", "13": "13.11", "14": "14.8", "15": "15.3"}, "score": 4.2, "title": "在内联集合返回函数后正确执行行级安全策略", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "affected": {"11": "11", "12": "12", "13": "13", "14": "14", "15": "15"}, "component": "core server", "published": {"11": "2023-05-11", "12": "2023-05-11", "13": "2023-05-11", "14": "2023-05-11", "15": "2023-05-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "While CVE-2016-2193 fixed most interaction between row security and user ID changes, it missed a scenario involving function inlining. This leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLE s. Applying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy.\n\nThe PostgreSQL project thanks Wolfgang Walther for reporting this problem.", "first_published": "2023-05-11", "fixed_version": "15.3"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 83, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}