{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2022-05-12", "build": "14.3", "major": "14", "minor": 3, "manual": "14", "status": "stable", "doc_git": "", "version": "14.3", "eol_date": "2026-11-12", "date_text": "2022-05-12", "supported": true, "manual_url": "/docs/14/release-14-3.html", "source_url": "/docs/release/14.3/", "entry_count": 52, "placeholder": false, "content_hash": "bd522472d48cac6c1a1a63b0a9442cbb426132a6277894dfcf892bfde52bf5b2", "manual_build": "14.24", "source_as_of": "", "changes_count": 52, "doc_loaded_at": "2026-09-26T02:56:39.341991", "migration_html": "<p>对于运行 14.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果存在任何 <code>ltree</code> 类型列上的 GiST 索引（由 <code>contrib/ltree</code> 扩展提供），建议在更新后重建这些索引。请参见下面的第二个变更日志条目。</p>\n<p>此外，如果是从早于 14.2 的版本升级，请参见<a href=\"/docs/14/release-14-2.html\" title=\"E.23. 发布版本 14.2\">第 E.23 节</a>。</p>", "compatibility_count": 0, "label": "14.3", "status_label": "受支持版本", "eol": "2026-11-12", "age_days": 1602, "support_days": 43}, "groups": [{"date": "2022-05-12", "build": "14.3", "major": "14", "minor": 3, "manual": "14", "status": "stable", "doc_git": "", "version": "14.3", "eol_date": "2026-11-12", "date_text": "2022-05-12", "supported": true, "manual_url": "/docs/14/release-14-3.html", "source_url": "/docs/release/14.3/", "entry_count": 52, "placeholder": false, "content_hash": "bd522472d48cac6c1a1a63b0a9442cbb426132a6277894dfcf892bfde52bf5b2", "manual_build": "14.24", "source_as_of": "", "changes_count": 52, "doc_loaded_at": "2026-09-26T02:56:39.341991", "migration_html": "<p>对于运行 14.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果存在任何 <code>ltree</code> 类型列上的 GiST 索引（由 <code>contrib/ltree</code> 扩展提供），建议在更新后重建这些索引。请参见下面的第二个变更日志条目。</p>\n<p>此外，如果是从早于 14.2 的版本升级，请参见<a href=\"/docs/14/release-14-2.html\" title=\"E.23. 发布版本 14.2\">第 E.23 节</a>。</p>", "compatibility_count": 0, "label": "14.3", "status_label": "受支持版本", "eol": "2026-11-12", "age_days": 1602, "support_days": 43, "entries": [{"id": "14.3-a23393de94e369b8", "cves": ["CVE-2022-1552"], "html": "<p>将更多操作限制在<span>“<span>安全受限操作</span>”</span>沙箱内（Sergey Shinderuk，Noah Misch）<a href=\"https://postgr.es/c/ab49ce7c3\">§</a> <a href=\"https://postgr.es/c/677a49478\">§</a></p>\n<p>自动清理、<code>CLUSTER</code>、<code>CREATE INDEX</code>、<code>REINDEX</code>、<code>REFRESH MATERIALIZED VIEW</code> 和 <span>pg_amcheck</span> 激活<span>“<span>安全受限操作</span>”</span>保护机制的时间过晚，甚至在某些代码路径中根本没有激活。在数据库中拥有创建非临时对象权限的用户可以定义一个对象，当自动清理下次处理该对象时，或者当某个超级用户对其运行上述受影响的命令时，该对象会以超级用户权限执行任意 SQL 代码。</p>\n<p><span>PostgreSQL</span> 项目感谢 Alexander Lakhin 报告此问题。（CVE-2022-1552）</p>", "text": "将更多操作限制在“安全受限操作”沙箱内（Sergey Shinderuk，Noah Misch）§ § 自动清理、CLUSTER、CREATE INDEX、REINDEX、REFRESH MATERIALIZED VIEW 和 pg_amcheck 激活“安全受限操作”保护机制的时间过晚，甚至在某些代码路径中根本没有激活。在数据库中拥有创建非临时对象权限的用户可以定义一个对象，当自动清理下次处理该对象时，或者当某个超级用户对其运行上述受影响的命令时，该对象会以超级用户权限执行任意 SQL 代码。 PostgreSQL 项目感谢 Alexander Lakhin 报告此问题。（CVE-2022-1552）", "title": "将更多操作限制在“安全受限操作”沙箱内", "commits": ["677a49478", "ab49ce7c3"], "section": "变更", "category": "security", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "817c191cf723ff57dd3947b41cdc5487abc58344cc4ce242537fd75efdc138a8", "section_path": ["变更"], "commit_groups": [["0abc1a059", "34ff15660", "677a49478", "880511cb0", "88743d581", "f26d57028"], ["35edcc0ce", "48ca2904c", "7f098f7b5", "a117cebd6", "ab49ce7c3", "ef792f785"]], "identity_text": "Confine additional operations within security restricted operation sandboxes (Sergey Shinderuk, Noah Misch) Autovacuum, CLUSTER, CREATE INDEX, REINDEX, REFRESH MATERIALIZED VIEW, and pg_amcheck activated the security restricted operation protection mechanism too late, or even not at all in some code paths. A user having permission to create non-temporary objects within a database could define an object that would execute arbitrary SQL code with superuser permissions the next time that autovacuum processed the object, or that some superuser ran one of the affected commands against it. The PostgreSQL Project thanks Alexander Lakhin for reporting this problem. (CVE-2022-1552)", "commit_aliases": ["0abc1a059", "34ff15660", "35edcc0ce", "48ca2904c", "677a49478", "7f098f7b5", "880511cb0", "88743d581", "a117cebd6", "ab49ce7c3", "ef792f785", "f26d57028"], "source_commits": ["677a49478", "ab49ce7c3"], "source_entry_id": "14.3/changes/001", "db_id": "7c535db7e63d3466361dd5ae7cb611e7", "patch_ids": ["30beed43c541f07f5687c6a461848d9b", "89023da045b10033fa8ce30b0b27a2d9"], "statement_hash": "e96f9d058511f8acf5b59744b34caebec829f29fa7411d4c5b3636fdde9a5e93", "relations": [{"rule": 2, "type": "equivalent", "target": "1ac54926400c94d0acb3b2bb0d1cb714", "evidence": {"same_day": true, "patch_ids": ["30beed43c541f07f5687c6a461848d9b", "89023da045b10033fa8ce30b0b27a2d9"], "statement_hash": "e96f9d058511f8acf5b59744b34caebec829f29fa7411d4c5b3636fdde9a5e93"}}, {"rule": 2, "type": "equivalent", "target": "670752f6faecb1221ddd1f4e1948ef86", "evidence": {"same_day": true, "patch_ids": ["30beed43c541f07f5687c6a461848d9b", "89023da045b10033fa8ce30b0b27a2d9"], "statement_hash": "e96f9d058511f8acf5b59744b34caebec829f29fa7411d4c5b3636fdde9a5e93"}}, {"rule": 2, "type": "equivalent", "target": "a5b83ef3758e795df0c7a6b30e6a53c7", "evidence": {"same_day": true, "patch_ids": ["30beed43c541f07f5687c6a461848d9b", "89023da045b10033fa8ce30b0b27a2d9"], "statement_hash": "e96f9d058511f8acf5b59744b34caebec829f29fa7411d4c5b3636fdde9a5e93"}}, {"rule": 2, "type": "equivalent", "target": "aae3e4d08f49bbe829bd6f85df92c72f", "evidence": {"same_day": true, "patch_ids": ["30beed43c541f07f5687c6a461848d9b", "89023da045b10033fa8ce30b0b27a2d9"], "statement_hash": "e96f9d058511f8acf5b59744b34caebec829f29fa7411d4c5b3636fdde9a5e93"}}], "version": "14.3", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "a5b83ef3758e795df0c7a6b30e6a53c7", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "将更多操作限制在“安全受限操作”沙箱内", "evidence": {"same_day": true, "patch_ids": ["30beed43c541f07f5687c6a461848d9b", "89023da045b10033fa8ce30b0b27a2d9"], "statement_hash": "e96f9d058511f8acf5b59744b34caebec829f29fa7411d4c5b3636fdde9a5e93"}, "url": "/docs/compare/?release=13.7#13.7-7c751a4817cbcd26", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "aae3e4d08f49bbe829bd6f85df92c72f", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "将更多操作限制在“安全受限操作”沙箱内", "evidence": {"same_day": true, "patch_ids": ["30beed43c541f07f5687c6a461848d9b", "89023da045b10033fa8ce30b0b27a2d9"], "statement_hash": "e96f9d058511f8acf5b59744b34caebec829f29fa7411d4c5b3636fdde9a5e93"}, "url": "/docs/compare/?release=12.11#12.11-3bd03835132773e3", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "670752f6faecb1221ddd1f4e1948ef86", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "将更多操作限制在“安全受限操作”沙箱内", "evidence": {"same_day": true, "patch_ids": ["30beed43c541f07f5687c6a461848d9b", "89023da045b10033fa8ce30b0b27a2d9"], "statement_hash": "e96f9d058511f8acf5b59744b34caebec829f29fa7411d4c5b3636fdde9a5e93"}, "url": "/docs/compare/?release=11.16#11.16-cc5eedf7a8bed7a1", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "1ac54926400c94d0acb3b2bb0d1cb714", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "将更多操作限制在“安全受限操作”沙箱内", "evidence": {"same_day": true, "patch_ids": ["30beed43c541f07f5687c6a461848d9b", "89023da045b10033fa8ce30b0b27a2d9"], "statement_hash": "e96f9d058511f8acf5b59744b34caebec829f29fa7411d4c5b3636fdde9a5e93"}, "url": "/docs/compare/?release=10.21#10.21-cc5eedf7a8bed7a1", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-4b14cc4ff864294c", "cves": [], "html": "<p>修复 <code>gist_ltree_ops</code> 索引的默认签名长度（Tomas Vondra，Alexander Korotkov）<a href=\"https://postgr.es/c/7d30f59da\">§</a></p>\n<p>在升级该操作符类以支持操作符类参数的过程中，<code>ltree</code> 列上 GiST 索引的默认签名长度（hash 大小）被意外更改了。如果在未先将 <code>ltree</code> 扩展升级到版本 1.2 的情况下对此类索引执行了任何操作，则这些操作假定签名长度为 28 字节，而非预期的 8 字节。这意味着此类索引很可能已经损坏。为了安全起见，我们建议在安装此更新后重建所有 <code>ltree</code> 列上的 GiST 索引。（注意，<code>ltree[]</code> 列上的 GiST 索引，即 <code>ltree</code> 数组，不受影响。）</p>", "text": "修复 gist_ltree_ops 索引的默认签名长度（Tomas Vondra，Alexander Korotkov）§ 在升级该操作符类以支持操作符类参数的过程中，ltree 列上 GiST 索引的默认签名长度（hash 大小）被意外更改了。如果在未先将 ltree 扩展升级到版本 1.2 的情况下对此类索引执行了任何操作，则这些操作假定签名长度为 28 字节，而非预期的 8 字节。这意味着此类索引很可能已经损坏。为了安全起见，我们建议在安装此更新后重建所有 ltree 列上的 GiST 索引。（注意，ltree[] 列上的 GiST 索引，即 ltree 数组，不受影响。）", "title": "修复 gist_ltree_ops 索引的默认签名长度", "commits": ["7d30f59da"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "4df715053fdf6b661ca01d05474f77d7d09fa665e2966a188881291c94bae1d9", "section_path": ["变更"], "commit_groups": [["7d30f59da", "7e74aafc4", "bad202c61"]], "identity_text": "Fix default signature length for gist_ltree_ops indexes (Tomas Vondra, Alexander Korotkov) The default signature length (hash size) for GiST indexes on ltree columns was accidentally changed while upgrading that operator class to support operator class parameters. If any operations had been done on such an index without first upgrading the ltree extension to version 1.2, they were done assuming that the signature length was 28 bytes rather than the intended 8. This means it is very likely that such indexes are now corrupt. For safety we recommend re-indexing all GiST indexes on ltree columns after installing this update. (Note that GiST indexes on ltree[] columns, that is arrays of ltree, are not affected.)", "commit_aliases": ["7d30f59da", "7e74aafc4", "bad202c61"], "source_commits": ["7d30f59da"], "source_entry_id": "14.3/changes/002", "db_id": "8c074325f29e8e8c0c5ba7185df461bb", "patch_ids": ["425f1508986bb5be11f9fca64683d444"], "statement_hash": "1cd153f9ffe8d87f32d728790c0d0cc4a70fa1f8a451412db0af883b2d67e66d", "relations": [{"rule": 2, "type": "equivalent", "target": "9c551d4ad026f0394adba9611491e6f2", "evidence": {"same_day": true, "patch_ids": ["425f1508986bb5be11f9fca64683d444"], "statement_hash": "1cd153f9ffe8d87f32d728790c0d0cc4a70fa1f8a451412db0af883b2d67e66d"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9c551d4ad026f0394adba9611491e6f2", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复 gist_ltree_ops 索引的默认签名长度", "evidence": {"same_day": true, "patch_ids": ["425f1508986bb5be11f9fca64683d444"], "statement_hash": "1cd153f9ffe8d87f32d728790c0d0cc4a70fa1f8a451412db0af883b2d67e66d"}, "url": "/docs/compare/?release=13.7#13.7-df3c90fa3e053575", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}]}, {"id": "14.3-0b10ee57de8f9ebf", "cves": [], "html": "<p>停止将查询提供的列别名用于引用普通表的整行变量的列（Tom Lane）<a href=\"https://postgr.es/c/1d072bd20\">§</a></p>\n<p>整行变量（例如在 <code>SELECT</code> 列表顶层以外的上下文中的 <code>tbl.*</code>）产生的元组中的列名，现在始终为关联的命名复合类型的列名（如果有的话）。之前我们曾尝试使其跟踪已应用于该变量所引用的 <code>FROM</code> 条目的任何列别名。但这在语义上是有问题的，因为这样变量的输出实际上根本不是它声称的复合类型。之前处理这种不一致性的尝试产生了糟糕的结果，甚至包括在磁盘上存储不可读的数据，因此放弃了整个想法。</p>\n<p>在需要重新标记这些列的情况下，一种变通方法是引入一个额外的子 <code>SELECT</code> 层级，使整行变量引用子 <code>SELECT</code> 的输出而非普通表。这样变量一开始就是 <code>record</code> 类型，就不存在这个问题了。</p>", "text": "停止将查询提供的列别名用于引用普通表的整行变量的列（Tom Lane）§ 整行变量（例如在 SELECT 列表顶层以外的上下文中的 tbl.*）产生的元组中的列名，现在始终为关联的命名复合类型的列名（如果有的话）。之前我们曾尝试使其跟踪已应用于该变量所引用的 FROM 条目的任何列别名。但这在语义上是有问题的，因为这样变量的输出实际上根本不是它声称的复合类型。之前处理这种不一致性的尝试产生了糟糕的结果，甚至包括在磁盘上存储不可读的数据，因此放弃了整个想法。 在需要重新标记这些列的情况下，一种变通方法是引入一个额外的子 SELECT 层级，使整行变量引用子 SELECT 的输出而非普通表。这样变量一开始就是 record 类型，就不存在这个问题了。", "title": "停止将查询提供的列别名用于引用普通表的整行变量的列", "commits": ["1d072bd20"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "6b69387938a41a8690e5c7ffb0aa82060e134c82e6d2447d2936b28b9daea002", "section_path": ["变更"], "commit_groups": [["13b54d1e0", "1d072bd20", "1f5ef5ae0", "205214c8b", "5e144cc89", "ec62cb0aa"]], "identity_text": "Stop using query-provided column aliases for the columns of whole-row variables that refer to plain tables (Tom Lane) The column names in tuples produced by a whole-row variable (such as tbl.* in contexts other than the top level of a SELECT list) are now always those of the associated named composite type, if there is one. We'd previously attempted to make them track any column aliases that had been applied to the FROM entry the variable refers to. But that's semantically dubious, because really then the output of the variable is not at all of the composite type it claims to be. Previous attempts to deal with that inconsistency had bad results up to and including storing unreadable data on disk, so just give up on the whole idea. In cases where it's important to be able to relabel such columns, a workaround is to introduce an extra level of sub-SELECT, so that the whole-row variable is referring to the sub-SELECT's output and not to a plain table. Then the variable is of type record to begin with and there's no issue.", "commit_aliases": ["13b54d1e0", "1d072bd20", "1f5ef5ae0", "205214c8b", "5e144cc89", "ec62cb0aa"], "source_commits": ["1d072bd20"], "source_entry_id": "14.3/changes/003", "db_id": "969748cc25edeaff75f516b082da57e6", "patch_ids": ["73e95b142713ae8370b71d093e0175b8"], "statement_hash": "076f7fe9f3f66c54083bec7a655caec7bf6ef6a6221003bf933444156d11078b", "relations": [{"rule": 2, "type": "equivalent", "target": "50113dceb9fd7e3fb916ee60adbc2109", "evidence": {"same_day": true, "patch_ids": ["73e95b142713ae8370b71d093e0175b8"], "statement_hash": "076f7fe9f3f66c54083bec7a655caec7bf6ef6a6221003bf933444156d11078b"}}, {"rule": 2, "type": "equivalent", "target": "6069c464fb5744df216dbddd8922e7d4", "evidence": {"same_day": true, "patch_ids": ["73e95b142713ae8370b71d093e0175b8"], "statement_hash": "076f7fe9f3f66c54083bec7a655caec7bf6ef6a6221003bf933444156d11078b"}}, {"rule": 2, "type": "equivalent", "target": "8a901fa7a440b29b299f8e2ca29061b7", "evidence": {"same_day": true, "patch_ids": ["73e95b142713ae8370b71d093e0175b8"], "statement_hash": "076f7fe9f3f66c54083bec7a655caec7bf6ef6a6221003bf933444156d11078b"}}, {"rule": 2, "type": "equivalent", "target": "e604c10edd4a506923f4816cc6e383ec", "evidence": {"same_day": true, "patch_ids": ["73e95b142713ae8370b71d093e0175b8"], "statement_hash": "076f7fe9f3f66c54083bec7a655caec7bf6ef6a6221003bf933444156d11078b"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e604c10edd4a506923f4816cc6e383ec", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "停止将查询提供的列别名用于引用普通表的整行变量的列", "evidence": {"same_day": true, "patch_ids": ["73e95b142713ae8370b71d093e0175b8"], "statement_hash": "076f7fe9f3f66c54083bec7a655caec7bf6ef6a6221003bf933444156d11078b"}, "url": "/docs/compare/?release=13.7#13.7-26632bd248f9cfc9", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "6069c464fb5744df216dbddd8922e7d4", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "停止将查询提供的列别名用于引用普通表的整行变量的列", "evidence": {"same_day": true, "patch_ids": ["73e95b142713ae8370b71d093e0175b8"], "statement_hash": "076f7fe9f3f66c54083bec7a655caec7bf6ef6a6221003bf933444156d11078b"}, "url": "/docs/compare/?release=12.11#12.11-2c6dd5678610603a", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "8a901fa7a440b29b299f8e2ca29061b7", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "停止将查询提供的列别名用于引用普通表的整行变量的列", "evidence": {"same_day": true, "patch_ids": ["73e95b142713ae8370b71d093e0175b8"], "statement_hash": "076f7fe9f3f66c54083bec7a655caec7bf6ef6a6221003bf933444156d11078b"}, "url": "/docs/compare/?release=11.16#11.16-e98e47a0677bc818", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "50113dceb9fd7e3fb916ee60adbc2109", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "停止将查询提供的列别名用于引用普通表的整行变量的列", "evidence": {"same_day": true, "patch_ids": ["73e95b142713ae8370b71d093e0175b8"], "statement_hash": "076f7fe9f3f66c54083bec7a655caec7bf6ef6a6221003bf933444156d11078b"}, "url": "/docs/compare/?release=10.21#10.21-e98e47a0677bc818", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-da688f1a000f3cd4", "cves": [], "html": "<p>修复从间隔值中提取 epoch 值时的不正确舍入（Peter Eisentraut）<a href=\"https://postgr.es/c/7a8d8219c\">§</a></p>\n<p>新的基于 <code>numeric</code> 的 <code>EXTRACT()</code> 代码未能产生与旧的基于 <code>float</code> 的代码等效的结果，原因是意外地将 <code>DAYS_PER_YEAR</code> 值截断为整数。</p>", "text": "修复从间隔值中提取 epoch 值时的不正确舍入（Peter Eisentraut）§ 新的基于 numeric 的 EXTRACT() 代码未能产生与旧的基于 float 的代码等效的结果，原因是意外地将 DAYS_PER_YEAR 值截断为整数。", "title": "修复从间隔值中提取 epoch 值时的不正确舍入", "commits": ["7a8d8219c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "d595fc0329c5d493b4effc0858c12425c9125b1086f8c9432fca06dfc15c625f", "section_path": ["变更"], "commit_groups": [["7a8d8219c", "f2a2bf66c"]], "identity_text": "Fix incorrect roundoff when extracting epoch values from intervals (Peter Eisentraut) The new numeric-based code for EXTRACT() failed to yield results equivalent to the old float-based code, as a result of accidentally truncating the DAYS_PER_YEAR value to an integer.", "commit_aliases": ["7a8d8219c", "f2a2bf66c"], "source_commits": ["7a8d8219c"], "source_entry_id": "14.3/changes/004", "db_id": "5af65fd860b9d327106d4469fa29157a", "patch_ids": ["0a20d9700925950bc071829e1f5b5e5e"], "statement_hash": "3a89738b5159b82fd73f27d562e7a35081fe12a590d96a1c98ac7c862517d341", "relations": [], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-4bed76854ab4458f", "cves": [], "html": "<p>防御 <code>pg_stat_get_replication_slot(NULL)</code>（Andres Freund）<a href=\"https://postgr.es/c/c1a0d7d1c\">§</a></p>\n<p>这个函数在系统目录数据中应该标记为 strict，但在 v14 中并没有，因此改为添加运行时检查。</p>", "text": "防御 pg_stat_get_replication_slot(NULL)（Andres Freund）§ 这个函数在系统目录数据中应该标记为 strict，但在 v14 中并没有，因此改为添加运行时检查。", "title": "防御 pg_stat_get_replication_slot(NULL)", "commits": ["c1a0d7d1c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "db674cee10fea16949bca77aca7038c15bbbbabef1131d47e1d4bf1f430de888", "section_path": ["变更"], "commit_groups": [["43a7dc96e", "c1a0d7d1c"]], "identity_text": "Defend against pg_stat_get_replication_slot(NULL) (Andres Freund) This function should be marked strict in the catalog data, but it was not in v14, so add a run-time check instead.", "commit_aliases": ["43a7dc96e", "c1a0d7d1c"], "source_commits": ["c1a0d7d1c"], "source_entry_id": "14.3/changes/005", "db_id": "c44f31ebd989b9eb85c512779c24f34d", "patch_ids": ["803a165b02caf390f02a6f2542de60c0"], "statement_hash": "c690fc9bc0707f1a99e71966ed0028c18e96d246d7a4d6d050aa4c62e981b8a4", "relations": [], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-ddd5fbca25fa8477", "cves": [], "html": "<p>修复 <code>table_to_xmlschema()</code> 及相关函数中 <code>timestamptz</code> 和 <code>timetz</code> 类型的不正确输出（Renan Soares Lopes）<a href=\"https://postgr.es/c/ae8ec7feb\">§</a></p>\n<p>这些类型的 xmlschema 输出包含了格式错误的正则表达式。</p>", "text": "修复 table_to_xmlschema() 及相关函数中 timestamptz 和 timetz 类型的不正确输出（Renan Soares Lopes）§ 这些类型的 xmlschema 输出包含了格式错误的正则表达式。", "title": "修复 table_to_xmlschema() 及相关函数中 timestamptz 和 timetz 类型的不正确输出", "commits": ["ae8ec7feb"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "b66260be36f29da41576e21d3b637895d237a58c40b01308fb1d8f21d9534815", "section_path": ["变更"], "commit_groups": [["068739fb4", "840729fd1", "84f3ecdaa", "88ae77588", "ae8ec7feb", "e6fd4a3da"]], "identity_text": "Fix incorrect output for types timestamptz and timetz in table_to_xmlschema() and allied functions (Renan Soares Lopes) The xmlschema output for these types included a malformed regular expression.", "commit_aliases": ["068739fb4", "840729fd1", "84f3ecdaa", "88ae77588", "ae8ec7feb", "e6fd4a3da"], "source_commits": ["ae8ec7feb"], "source_entry_id": "14.3/changes/006", "db_id": "d8f0644985f5ea7f13e738a7c833da64", "patch_ids": ["ee3fa63ff0f53ff1e2df3d279ace5e53"], "statement_hash": "0b698a0060535155a18203271ac4d82a836a6e3b5b7f1b6c0110098f6882c766", "relations": [{"rule": 2, "type": "equivalent", "target": "8431c7c2370d34325416722917ede31c", "evidence": {"same_day": true, "patch_ids": ["ee3fa63ff0f53ff1e2df3d279ace5e53"], "statement_hash": "0b698a0060535155a18203271ac4d82a836a6e3b5b7f1b6c0110098f6882c766"}}, {"rule": 2, "type": "equivalent", "target": "a13f3240245934b132260a24490e7277", "evidence": {"same_day": true, "patch_ids": ["ee3fa63ff0f53ff1e2df3d279ace5e53"], "statement_hash": "0b698a0060535155a18203271ac4d82a836a6e3b5b7f1b6c0110098f6882c766"}}, {"rule": 2, "type": "equivalent", "target": "cc636bb0e6243df1c5f2fca898a67312", "evidence": {"same_day": true, "patch_ids": ["ee3fa63ff0f53ff1e2df3d279ace5e53"], "statement_hash": "0b698a0060535155a18203271ac4d82a836a6e3b5b7f1b6c0110098f6882c766"}}, {"rule": 2, "type": "equivalent", "target": "de93d3abf896b187c9efb28d02ee9afa", "evidence": {"same_day": true, "patch_ids": ["ee3fa63ff0f53ff1e2df3d279ace5e53"], "statement_hash": "0b698a0060535155a18203271ac4d82a836a6e3b5b7f1b6c0110098f6882c766"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a13f3240245934b132260a24490e7277", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复 table_to_xmlschema() 及相关函数中 timestamptz 和 timetz 类型的不正确输出", "evidence": {"same_day": true, "patch_ids": ["ee3fa63ff0f53ff1e2df3d279ace5e53"], "statement_hash": "0b698a0060535155a18203271ac4d82a836a6e3b5b7f1b6c0110098f6882c766"}, "url": "/docs/compare/?release=13.7#13.7-f23c634fbff6a135", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "cc636bb0e6243df1c5f2fca898a67312", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复 table_to_xmlschema() 及相关函数中 timestamptz 和 timetz 类型的不正确输出", "evidence": {"same_day": true, "patch_ids": ["ee3fa63ff0f53ff1e2df3d279ace5e53"], "statement_hash": "0b698a0060535155a18203271ac4d82a836a6e3b5b7f1b6c0110098f6882c766"}, "url": "/docs/compare/?release=12.11#12.11-a34ad631cde543a1", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "8431c7c2370d34325416722917ede31c", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复 table_to_xmlschema() 及相关函数中 timestamptz 和 timetz 类型的不正确输出", "evidence": {"same_day": true, "patch_ids": ["ee3fa63ff0f53ff1e2df3d279ace5e53"], "statement_hash": "0b698a0060535155a18203271ac4d82a836a6e3b5b7f1b6c0110098f6882c766"}, "url": "/docs/compare/?release=11.16#11.16-990ad49e6155242e", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "de93d3abf896b187c9efb28d02ee9afa", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复 table_to_xmlschema() 及相关函数中 timestamptz 和 timetz 类型的不正确输出", "evidence": {"same_day": true, "patch_ids": ["ee3fa63ff0f53ff1e2df3d279ace5e53"], "statement_hash": "0b698a0060535155a18203271ac4d82a836a6e3b5b7f1b6c0110098f6882c766"}, "url": "/docs/compare/?release=10.21#10.21-990ad49e6155242e", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-cebece1bb097e355", "cves": [], "html": "<p>避免解析器在处理零列的 <code>VALUES</code> 子句时发生核心转储（Tom Lane）<a href=\"https://postgr.es/c/ab2f78392\">§</a></p>", "text": "避免解析器在处理零列的 VALUES 子句时发生核心转储（Tom Lane）§", "title": "避免解析器在处理零列的 VALUES 子句时发生核心转储", "commits": ["ab2f78392"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "0cf5f6b0d71f1ffd4172b450845993fb287ca172ac39bb87cfc61fff97e54bc6", "section_path": ["变更"], "commit_groups": [["4eabaffca", "539f8c563", "90e52884e", "91a3a74c6", "ab2f78392", "fe20afaee"]], "identity_text": "Avoid core dump in parser for a VALUES clause with zero columns (Tom Lane)", "commit_aliases": ["4eabaffca", "539f8c563", "90e52884e", "91a3a74c6", "ab2f78392", "fe20afaee"], "source_commits": ["ab2f78392"], "source_entry_id": "14.3/changes/007", "db_id": "399a07b8582a635f588993d56e7f3983", "patch_ids": ["1d4aa3b4331673e8ad7e3d5ebe77894a"], "statement_hash": "235e2c1f113de1334ebc574b76fcbc06e2eba86562782a031663e671dcd878f4", "relations": [{"rule": 2, "type": "equivalent", "target": "7a1d51545592f7744cfd3ea29d95c887", "evidence": {"same_day": true, "patch_ids": ["1d4aa3b4331673e8ad7e3d5ebe77894a"], "statement_hash": "235e2c1f113de1334ebc574b76fcbc06e2eba86562782a031663e671dcd878f4"}}, {"rule": 2, "type": "equivalent", "target": "89acd29803e8cbb389616a17123abf12", "evidence": {"same_day": true, "patch_ids": ["1d4aa3b4331673e8ad7e3d5ebe77894a"], "statement_hash": "235e2c1f113de1334ebc574b76fcbc06e2eba86562782a031663e671dcd878f4"}}, {"rule": 2, "type": "equivalent", "target": "ea5846b5805f89f205a3cb35ea04f01b", "evidence": {"same_day": true, "patch_ids": ["1d4aa3b4331673e8ad7e3d5ebe77894a"], "statement_hash": "235e2c1f113de1334ebc574b76fcbc06e2eba86562782a031663e671dcd878f4"}}, {"rule": 2, "type": "equivalent", "target": "ecdc57b965639be2a94482f578332144", "evidence": {"same_day": true, "patch_ids": ["1d4aa3b4331673e8ad7e3d5ebe77894a"], "statement_hash": "235e2c1f113de1334ebc574b76fcbc06e2eba86562782a031663e671dcd878f4"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "89acd29803e8cbb389616a17123abf12", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "避免解析器在处理零列的 VALUES 子句时发生核心转储", "evidence": {"same_day": true, "patch_ids": ["1d4aa3b4331673e8ad7e3d5ebe77894a"], "statement_hash": "235e2c1f113de1334ebc574b76fcbc06e2eba86562782a031663e671dcd878f4"}, "url": "/docs/compare/?release=13.7#13.7-a23dbadc1d425b27", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "ecdc57b965639be2a94482f578332144", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "避免解析器在处理零列的 VALUES 子句时发生核心转储", "evidence": {"same_day": true, "patch_ids": ["1d4aa3b4331673e8ad7e3d5ebe77894a"], "statement_hash": "235e2c1f113de1334ebc574b76fcbc06e2eba86562782a031663e671dcd878f4"}, "url": "/docs/compare/?release=12.11#12.11-bbda885258fb1bdf", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "7a1d51545592f7744cfd3ea29d95c887", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "避免解析器在处理零列的 VALUES 子句时发生核心转储", "evidence": {"same_day": true, "patch_ids": ["1d4aa3b4331673e8ad7e3d5ebe77894a"], "statement_hash": "235e2c1f113de1334ebc574b76fcbc06e2eba86562782a031663e671dcd878f4"}, "url": "/docs/compare/?release=11.16#11.16-0c06e5e1ae652414", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "ea5846b5805f89f205a3cb35ea04f01b", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "避免解析器在处理零列的 VALUES 子句时发生核心转储", "evidence": {"same_day": true, "patch_ids": ["1d4aa3b4331673e8ad7e3d5ebe77894a"], "statement_hash": "235e2c1f113de1334ebc574b76fcbc06e2eba86562782a031663e671dcd878f4"}, "url": "/docs/compare/?release=10.21#10.21-0c06e5e1ae652414", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-38e0898588843e93", "cves": [], "html": "<p>修复当 Result 计划节点直接出现在 Append 节点下方时的规划器失败（Etsuro Fujita）<a href=\"https://postgr.es/c/ebb790241\">§</a></p>\n<p>最近添加的用于支持异步远程查询的代码未能处理这种情况，导致崩溃或关于无法识别节点类型的错误。</p>", "text": "修复当 Result 计划节点直接出现在 Append 节点下方时的规划器失败（Etsuro Fujita）§ 最近添加的用于支持异步远程查询的代码未能处理这种情况，导致崩溃或关于无法识别节点类型的错误。", "title": "修复当 Result 计划节点直接出现在 Append 节点下方时的规划器失败", "commits": ["ebb790241"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "5f670224460b9ce246e7d0d632aa0582a0290790f7a55b3646098cb532391650", "section_path": ["变更"], "commit_groups": [["5c854e7a2", "ebb790241"]], "identity_text": "Fix planner failure when a Result plan node appears immediately underneath an Append node (Etsuro Fujita) Recently-added code to support asynchronous remote queries failed to handle this case, leading to crashes or errors about unrecognized node types.", "commit_aliases": ["5c854e7a2", "ebb790241"], "source_commits": ["ebb790241"], "source_entry_id": "14.3/changes/008", "db_id": "dd9a22c8cd4994cef10435870bae64ec", "patch_ids": ["7dd5da34a65ef50b76b973c548ce99a1"], "statement_hash": "167329c9581d6acd95116024525b222dad99307df4c788e0cde07d1dd269c3e1", "relations": [], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-916baed10c57bfd7", "cves": [], "html": "<p>修复当查询使用 <code>SEARCH</code> 或 <code>CYCLE</code> 特性且包含重复 CTE 名称时的规划器失败（Tom Lane，Kyotaro Horiguchi）<a href=\"https://postgr.es/c/dff6c77fa\">§</a></p>\n<p>当递归 <code>WITH</code> 查询的名称在其内部被重复使用时，规划器可能崩溃或报告奇怪的错误，例如 <span>“<span>could not find attribute 2 in subquery targetlist</span>”</span>。</p>", "text": "修复当查询使用 SEARCH 或 CYCLE 特性且包含重复 CTE 名称时的规划器失败（Tom Lane，Kyotaro Horiguchi）§ 当递归 WITH 查询的名称在其内部被重复使用时，规划器可能崩溃或报告奇怪的错误，例如 “could not find attribute 2 in subquery targetlist”。", "title": "修复当查询使用 SEARCH 或 CYCLE 特性且包含重复 CTE 名称时的规划器失败", "commits": ["dff6c77fa"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "253a88286602813f5c054244df817d0dbbb0b385033b469ef4c546a5d75fc7f6", "section_path": ["变更"], "commit_groups": [["dff6c77fa", "f819020d4"]], "identity_text": "Fix planner failure if a query using SEARCH or CYCLE features contains a duplicate CTE name (Tom Lane, Kyotaro Horiguchi) When the name of the recursive WITH query is re-used within itself, the planner could crash or report odd errors such as could not find attribute 2 in subquery targetlist.", "commit_aliases": ["dff6c77fa", "f819020d4"], "source_commits": ["dff6c77fa"], "source_entry_id": "14.3/changes/009", "db_id": "d1ec0af3a6319be54779a0664f5bc05c", "patch_ids": ["22609649ff357c367b4a54dbe4785a7f"], "statement_hash": "1bb2da816cb0f053a08f190c14e6c43e4476a46407d30cf66accf68f257c5bc8", "relations": [], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-bf88ad7aa945f3f6", "cves": [], "html": "<p>修复引用外层查询级别的 <code>GROUPING()</code> 构造的规划器错误（Richard Guo，Tom Lane）<a href=\"https://postgr.es/c/48b6035f0\">§</a></p>", "text": "修复引用外层查询级别的 GROUPING() 构造的规划器错误（Richard Guo，Tom Lane）§", "title": "修复引用外层查询级别的 GROUPING() 构造的规划器错误", "commits": ["48b6035f0"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "5be8a12994479754a3f40a484ea3006d1751b4fcdc2b141195f4b6d79113796d", "section_path": ["变更"], "commit_groups": [["2591ee8ec", "2afa031ac", "48b6035f0", "5de244196", "69c88e2fb", "dfefe38fb"]], "identity_text": "Fix planner errors for GROUPING() constructs that reference outer query levels (Richard Guo, Tom Lane)", "commit_aliases": ["2591ee8ec", "2afa031ac", "48b6035f0", "5de244196", "69c88e2fb", "dfefe38fb"], "source_commits": ["48b6035f0"], "source_entry_id": "14.3/changes/010", "db_id": "b8e4a307d615db776e0cc68a728f1205", "patch_ids": ["895aae79c8a50fe997dd20d7dbf563ec"], "statement_hash": "068d9983be7f89629196ba2583fdc9d7cbf57e0767a035a81f1be468300b46e9", "relations": [{"rule": 2, "type": "equivalent", "target": "2ca934b4db390844f7a472a975c60ddb", "evidence": {"same_day": true, "patch_ids": ["895aae79c8a50fe997dd20d7dbf563ec"], "statement_hash": "068d9983be7f89629196ba2583fdc9d7cbf57e0767a035a81f1be468300b46e9"}}, {"rule": 2, "type": "equivalent", "target": "386ddf2bbb16a07e9660e3025d749f49", "evidence": {"same_day": true, "patch_ids": ["895aae79c8a50fe997dd20d7dbf563ec"], "statement_hash": "068d9983be7f89629196ba2583fdc9d7cbf57e0767a035a81f1be468300b46e9"}}, {"rule": 2, "type": "equivalent", "target": "9f846d4b1ade0e38644b44a656481903", "evidence": {"same_day": true, "patch_ids": ["895aae79c8a50fe997dd20d7dbf563ec"], "statement_hash": "068d9983be7f89629196ba2583fdc9d7cbf57e0767a035a81f1be468300b46e9"}}, {"rule": 2, "type": "equivalent", "target": "b7d4012a01e5b568d9248e6ab7392672", "evidence": {"same_day": true, "patch_ids": ["895aae79c8a50fe997dd20d7dbf563ec"], "statement_hash": "068d9983be7f89629196ba2583fdc9d7cbf57e0767a035a81f1be468300b46e9"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "386ddf2bbb16a07e9660e3025d749f49", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复引用外层查询级别的 GROUPING() 构造的规划器错误", "evidence": {"same_day": true, "patch_ids": ["895aae79c8a50fe997dd20d7dbf563ec"], "statement_hash": "068d9983be7f89629196ba2583fdc9d7cbf57e0767a035a81f1be468300b46e9"}, "url": "/docs/compare/?release=13.7#13.7-9dc139eb0b7a8849", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "9f846d4b1ade0e38644b44a656481903", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复引用外层查询级别的 GROUPING() 构造的规划器错误", "evidence": {"same_day": true, "patch_ids": ["895aae79c8a50fe997dd20d7dbf563ec"], "statement_hash": "068d9983be7f89629196ba2583fdc9d7cbf57e0767a035a81f1be468300b46e9"}, "url": "/docs/compare/?release=12.11#12.11-44e126f786a9682a", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "b7d4012a01e5b568d9248e6ab7392672", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复引用外层查询级别的 GROUPING() 构造的规划器错误", "evidence": {"same_day": true, "patch_ids": ["895aae79c8a50fe997dd20d7dbf563ec"], "statement_hash": "068d9983be7f89629196ba2583fdc9d7cbf57e0767a035a81f1be468300b46e9"}, "url": "/docs/compare/?release=11.16#11.16-54568bf34e4d0d2c", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "2ca934b4db390844f7a472a975c60ddb", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复引用外层查询级别的 GROUPING() 构造的规划器错误", "evidence": {"same_day": true, "patch_ids": ["895aae79c8a50fe997dd20d7dbf563ec"], "statement_hash": "068d9983be7f89629196ba2583fdc9d7cbf57e0767a035a81f1be468300b46e9"}, "url": "/docs/compare/?release=10.21#10.21-54568bf34e4d0d2c", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-489835e8667c2fae", "cves": [], "html": "<p>修复具有可返回列和不可返回列的索引上的仅索引扫描计划生成（Tom Lane）<a href=\"https://postgr.es/c/277e744ae\">§</a></p>\n<p>之前的代码会尝试读取不可返回列以及可返回列。这基本上是无害的，因为它实际上并没有对错误的值做任何处理，但它违反了最近添加的拒绝此类计划的错误检查。</p>", "text": "修复具有可返回列和不可返回列的索引上的仅索引扫描计划生成（Tom Lane）§ 之前的代码会尝试读取不可返回列以及可返回列。这基本上是无害的，因为它实际上并没有对错误的值做任何处理，但它违反了最近添加的拒绝此类计划的错误检查。", "title": "修复具有可返回列和不可返回列的索引上的仅索引扫描计划生成", "commits": ["277e744ae"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "beea4d421452701af87a0c56835e5423622762f07e3366c6ab4b722dfc2cd1f5", "section_path": ["变更"], "commit_groups": [["0778b24ce", "14ee565f3", "277e744ae", "32e801676", "b6f869bee", "e5691cc91"]], "identity_text": "Fix plan generation for index-only scans on indexes with both returnable and non-returnable columns (Tom Lane) The previous coding could try to read non-returnable columns in addition to the returnable ones. This was fairly harmless because it didn't actually do anything with the bogus values, but it fell foul of a recently-added error check that rejected such a plan.", "commit_aliases": ["0778b24ce", "14ee565f3", "277e744ae", "32e801676", "b6f869bee", "e5691cc91"], "source_commits": ["277e744ae"], "source_entry_id": "14.3/changes/011", "db_id": "27a8bf4c09c5ea2d76fb7f98c7ccd2b2", "patch_ids": ["f05f0c5d161778c651730b867834ad6c"], "statement_hash": "69c32c07229c0c53698643c37d964f6d7d84daacf3ea8868714c94195b9ba372", "relations": [{"rule": 2, "type": "equivalent", "target": "1b0812852c836d4e66b06f7612514190", "evidence": {"same_day": true, "patch_ids": ["f05f0c5d161778c651730b867834ad6c"], "statement_hash": "69c32c07229c0c53698643c37d964f6d7d84daacf3ea8868714c94195b9ba372"}}, {"rule": 2, "type": "equivalent", "target": "4f83aeb5cff810bc4a104b3a0c9f2ac4", "evidence": {"same_day": true, "patch_ids": ["f05f0c5d161778c651730b867834ad6c"], "statement_hash": "69c32c07229c0c53698643c37d964f6d7d84daacf3ea8868714c94195b9ba372"}}, {"rule": 2, "type": "equivalent", "target": "8706c720624356138c9ddaea3cb34215", "evidence": {"same_day": true, "patch_ids": ["f05f0c5d161778c651730b867834ad6c"], "statement_hash": "69c32c07229c0c53698643c37d964f6d7d84daacf3ea8868714c94195b9ba372"}}, {"rule": 2, "type": "equivalent", "target": "e9ad0f812c136b8ccc25549130b5b91b", "evidence": {"same_day": true, "patch_ids": ["f05f0c5d161778c651730b867834ad6c"], "statement_hash": "69c32c07229c0c53698643c37d964f6d7d84daacf3ea8868714c94195b9ba372"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8706c720624356138c9ddaea3cb34215", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复具有可返回列和不可返回列的索引上的仅索引扫描计划生成", "evidence": {"same_day": true, "patch_ids": ["f05f0c5d161778c651730b867834ad6c"], "statement_hash": "69c32c07229c0c53698643c37d964f6d7d84daacf3ea8868714c94195b9ba372"}, "url": "/docs/compare/?release=13.7#13.7-15f44c8cc63b0578", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "4f83aeb5cff810bc4a104b3a0c9f2ac4", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复具有可返回列和不可返回列的索引上的仅索引扫描计划生成", "evidence": {"same_day": true, "patch_ids": ["f05f0c5d161778c651730b867834ad6c"], "statement_hash": "69c32c07229c0c53698643c37d964f6d7d84daacf3ea8868714c94195b9ba372"}, "url": "/docs/compare/?release=12.11#12.11-203c04fd55d9fe6a", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "1b0812852c836d4e66b06f7612514190", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复具有可返回列和不可返回列的索引上的仅索引扫描计划生成", "evidence": {"same_day": true, "patch_ids": ["f05f0c5d161778c651730b867834ad6c"], "statement_hash": "69c32c07229c0c53698643c37d964f6d7d84daacf3ea8868714c94195b9ba372"}, "url": "/docs/compare/?release=11.16#11.16-4306229ab7c048f6", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "e9ad0f812c136b8ccc25549130b5b91b", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复具有可返回列和不可返回列的索引上的仅索引扫描计划生成", "evidence": {"same_day": true, "patch_ids": ["f05f0c5d161778c651730b867834ad6c"], "statement_hash": "69c32c07229c0c53698643c37d964f6d7d84daacf3ea8868714c94195b9ba372"}, "url": "/docs/compare/?release=10.21#10.21-4306229ab7c048f6", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-c09fbe521f15ebe6", "cves": [], "html": "<p>避免在 EvalPlanQual 期间尝试锁定过时元组时访问不再被固定的共享缓冲区（Tom Lane）<a href=\"https://postgr.es/c/c590e514a\">§</a></p>\n<p>代码会在释放其 pin 之后再访问该缓冲区几次。理论上，另一个进程可能在 pin 被释放后立即回收该缓冲区（或者更可能是尝试对其空闲空间进行碎片整理），这很可能导致无法找到元组的较新版本。</p>", "text": "避免在 EvalPlanQual 期间尝试锁定过时元组时访问不再被固定的共享缓冲区（Tom Lane）§ 代码会在释放其 pin 之后再访问该缓冲区几次。理论上，另一个进程可能在 pin 被释放后立即回收该缓冲区（或者更可能是尝试对其空闲空间进行碎片整理），这很可能导致无法找到元组的较新版本。", "title": "避免在 EvalPlanQual 期间尝试锁定过时元组时访问不再被固定的共享缓冲区", "commits": ["c590e514a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "897df12477402c117de293ee90717cff64e6ebbcbfdf1d21c19ef30c0e18828f", "section_path": ["变更"], "commit_groups": [["44096c31e", "7b7ed046c", "c590e514a", "e0ed20d0b"]], "identity_text": "Avoid accessing a no-longer-pinned shared buffer while attempting to lock an outdated tuple during EvalPlanQual (Tom Lane) The code would touch the buffer a couple more times after releasing its pin. In theory another process could recycle the buffer (or more likely, try to defragment its free space) as soon as the pin is gone, probably leading to failure to find the newer version of the tuple.", "commit_aliases": ["44096c31e", "7b7ed046c", "c590e514a", "e0ed20d0b"], "source_commits": ["c590e514a"], "source_entry_id": "14.3/changes/012", "db_id": "bceb364ad0e7e97713f78c0cbef3aa20", "patch_ids": ["963dc8bca8c81b58484406954f1264a3"], "statement_hash": "d79e2936778e835c2173199b788d8c0beefe8c8838af3d8acb671ae5c690235c", "relations": [{"rule": 2, "type": "equivalent", "target": "4afaf7cea38a16b9514e5c3df614b073", "evidence": {"same_day": true, "patch_ids": ["963dc8bca8c81b58484406954f1264a3"], "statement_hash": "d79e2936778e835c2173199b788d8c0beefe8c8838af3d8acb671ae5c690235c"}}, {"rule": 2, "type": "equivalent", "target": "4f7eb15e2bfaffd2e80fdc412d38692f", "evidence": {"same_day": true, "patch_ids": ["963dc8bca8c81b58484406954f1264a3"], "statement_hash": "d79e2936778e835c2173199b788d8c0beefe8c8838af3d8acb671ae5c690235c"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f7eb15e2bfaffd2e80fdc412d38692f", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "避免在 EvalPlanQual 期间尝试锁定过时元组时访问不再被固定的共享缓冲区", "evidence": {"same_day": true, "patch_ids": ["963dc8bca8c81b58484406954f1264a3"], "statement_hash": "d79e2936778e835c2173199b788d8c0beefe8c8838af3d8acb671ae5c690235c"}, "url": "/docs/compare/?release=13.7#13.7-8f9979f60c3d2998", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "4afaf7cea38a16b9514e5c3df614b073", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "避免在 EvalPlanQual 期间尝试锁定过时元组时访问不再被固定的共享缓冲区", "evidence": {"same_day": true, "patch_ids": ["963dc8bca8c81b58484406954f1264a3"], "statement_hash": "d79e2936778e835c2173199b788d8c0beefe8c8838af3d8acb671ae5c690235c"}, "url": "/docs/compare/?release=12.11#12.11-4cfde300fbe83c9c", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}]}, {"id": "14.3-88ea6eb77fb41d9d", "cves": [], "html": "<p>修复正在执行重新排序的 IndexScan 节点中的查询生命周期内存泄漏（Aliaksandr Kalenik）<a href=\"https://postgr.es/c/c76665edc\">§</a></p>", "text": "修复正在执行重新排序的 IndexScan 节点中的查询生命周期内存泄漏（Aliaksandr Kalenik）§", "title": "修复正在执行重新排序的 IndexScan 节点中的查询生命周期内存泄漏", "commits": ["c76665edc"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "b1e5a33b1af5e3fc304d96d35ab8c061c7aa14a8cec8bc7f35db983bae0d169c", "section_path": ["变更"], "commit_groups": [["0d554775b", "2e9033a54", "3f74daa8d", "7a12a9e3c", "ac2303aa0", "c76665edc"]], "identity_text": "Fix query-lifespan memory leak in an IndexScan node that is performing reordering (Aliaksandr Kalenik)", "commit_aliases": ["0d554775b", "2e9033a54", "3f74daa8d", "7a12a9e3c", "ac2303aa0", "c76665edc"], "source_commits": ["c76665edc"], "source_entry_id": "14.3/changes/013", "db_id": "67e54ee90f61b5ba4f10c442bccd81e7", "patch_ids": ["9cf0ef0843729535ecc47c7563d0f8f3"], "statement_hash": "bb2869647998c700f76b62d86ada7faee68fa2561d4f6b4dd4d33ba16485306c", "relations": [{"rule": 2, "type": "equivalent", "target": "5e20fe6d76ddabf53f4be2f89d20e818", "evidence": {"same_day": true, "patch_ids": ["9cf0ef0843729535ecc47c7563d0f8f3"], "statement_hash": "bb2869647998c700f76b62d86ada7faee68fa2561d4f6b4dd4d33ba16485306c"}}, {"rule": 2, "type": "equivalent", "target": "8b428e03a852b24df2398da6fce496f9", "evidence": {"same_day": true, "patch_ids": ["9cf0ef0843729535ecc47c7563d0f8f3"], "statement_hash": "bb2869647998c700f76b62d86ada7faee68fa2561d4f6b4dd4d33ba16485306c"}}, {"rule": 2, "type": "equivalent", "target": "c4dc002e8eff145c0a822b7c88deaea8", "evidence": {"same_day": true, "patch_ids": ["9cf0ef0843729535ecc47c7563d0f8f3"], "statement_hash": "bb2869647998c700f76b62d86ada7faee68fa2561d4f6b4dd4d33ba16485306c"}}, {"rule": 2, "type": "equivalent", "target": "e754f05172c47425f13728c730c2b6cb", "evidence": {"same_day": true, "patch_ids": ["9cf0ef0843729535ecc47c7563d0f8f3"], "statement_hash": "bb2869647998c700f76b62d86ada7faee68fa2561d4f6b4dd4d33ba16485306c"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e754f05172c47425f13728c730c2b6cb", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复正在执行重新排序的 IndexScan 节点中的查询生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": ["9cf0ef0843729535ecc47c7563d0f8f3"], "statement_hash": "bb2869647998c700f76b62d86ada7faee68fa2561d4f6b4dd4d33ba16485306c"}, "url": "/docs/compare/?release=13.7#13.7-eea350e990077f35", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "5e20fe6d76ddabf53f4be2f89d20e818", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复正在执行重新排序的 IndexScan 节点中的查询生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": ["9cf0ef0843729535ecc47c7563d0f8f3"], "statement_hash": "bb2869647998c700f76b62d86ada7faee68fa2561d4f6b4dd4d33ba16485306c"}, "url": "/docs/compare/?release=12.11#12.11-eb0eaa83057dd926", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "c4dc002e8eff145c0a822b7c88deaea8", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复正在执行重新排序的 IndexScan 节点中的查询生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": ["9cf0ef0843729535ecc47c7563d0f8f3"], "statement_hash": "bb2869647998c700f76b62d86ada7faee68fa2561d4f6b4dd4d33ba16485306c"}, "url": "/docs/compare/?release=11.16#11.16-5a1d65af0b07877d", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "8b428e03a852b24df2398da6fce496f9", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复正在执行重新排序的 IndexScan 节点中的查询生命周期内存泄漏", "evidence": {"same_day": true, "patch_ids": ["9cf0ef0843729535ecc47c7563d0f8f3"], "statement_hash": "bb2869647998c700f76b62d86ada7faee68fa2561d4f6b4dd4d33ba16485306c"}, "url": "/docs/compare/?release=10.21#10.21-5a1d65af0b07877d", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-bcdb5c5736ea9b79", "cves": [], "html": "<p>修复 <code>ALTER FUNCTION</code> 使其支持在同一命令中同时更改函数的并行属性及其 <code>SET</code> 变量列表（Tom Lane）<a href=\"https://postgr.es/c/08a9e7a8c\">§</a></p>\n<p>如果同一命令还更新了函数的 <code>SET</code> 子句，则并行属性的更改会丢失。</p>", "text": "修复 ALTER FUNCTION 使其支持在同一命令中同时更改函数的并行属性及其 SET 变量列表（Tom Lane）§ 如果同一命令还更新了函数的 SET 子句，则并行属性的更改会丢失。", "title": "修复 ALTER FUNCTION 使其支持在同一命令中同时更改函数的并行属性及其 SET 变量列表", "commits": ["08a9e7a8c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "993eb552f24cf9d8c1e3a6e21f710e7eceb2b023837187e0fb4b7a128e69c02d", "section_path": ["变更"], "commit_groups": [["08a9e7a8c", "344a225cb", "409bcfda6", "481a99811", "9130f8cbb", "f583633bc"]], "identity_text": "Fix ALTER FUNCTION to support changing a function's parallelism property and its SET-variable list in the same command (Tom Lane) The parallelism property change was lost if the same command also updated the function's SET clause.", "commit_aliases": ["08a9e7a8c", "344a225cb", "409bcfda6", "481a99811", "9130f8cbb", "f583633bc"], "source_commits": ["08a9e7a8c"], "source_entry_id": "14.3/changes/014", "db_id": "b3f80d8f2c2f7007193f906952927ade", "patch_ids": ["75b91ef9a22cca08dd625ead6b491f33"], "statement_hash": "efe70f12c08d3944b26c979a7827d252d81dce978e1899c6e0722871bf653360", "relations": [{"rule": 2, "type": "equivalent", "target": "00c230d34a27b573997b0dc1960f3741", "evidence": {"same_day": true, "patch_ids": ["75b91ef9a22cca08dd625ead6b491f33"], "statement_hash": "efe70f12c08d3944b26c979a7827d252d81dce978e1899c6e0722871bf653360"}}, {"rule": 2, "type": "equivalent", "target": "55b4f7dc72645a632f0c793d8c481f41", "evidence": {"same_day": true, "patch_ids": ["75b91ef9a22cca08dd625ead6b491f33"], "statement_hash": "efe70f12c08d3944b26c979a7827d252d81dce978e1899c6e0722871bf653360"}}, {"rule": 2, "type": "equivalent", "target": "975fdb3cf8d525dbaf4ca3fcbc3b2405", "evidence": {"same_day": true, "patch_ids": ["75b91ef9a22cca08dd625ead6b491f33"], "statement_hash": "efe70f12c08d3944b26c979a7827d252d81dce978e1899c6e0722871bf653360"}}, {"rule": 2, "type": "equivalent", "target": "da5a5a8908a29a381ee33d3c5f06e62c", "evidence": {"same_day": true, "patch_ids": ["75b91ef9a22cca08dd625ead6b491f33"], "statement_hash": "efe70f12c08d3944b26c979a7827d252d81dce978e1899c6e0722871bf653360"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "975fdb3cf8d525dbaf4ca3fcbc3b2405", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复 ALTER FUNCTION 使其支持在同一命令中同时更改函数的并行属性及其 SET 变量列表", "evidence": {"same_day": true, "patch_ids": ["75b91ef9a22cca08dd625ead6b491f33"], "statement_hash": "efe70f12c08d3944b26c979a7827d252d81dce978e1899c6e0722871bf653360"}, "url": "/docs/compare/?release=13.7#13.7-98a1bd07b8159af5", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "da5a5a8908a29a381ee33d3c5f06e62c", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复 ALTER FUNCTION 使其支持在同一命令中同时更改函数的并行属性及其 SET 变量列表", "evidence": {"same_day": true, "patch_ids": ["75b91ef9a22cca08dd625ead6b491f33"], "statement_hash": "efe70f12c08d3944b26c979a7827d252d81dce978e1899c6e0722871bf653360"}, "url": "/docs/compare/?release=12.11#12.11-3ae4483938d0c9be", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "55b4f7dc72645a632f0c793d8c481f41", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复 ALTER FUNCTION 使其支持在同一命令中同时更改函数的并行属性及其 SET 变量列表", "evidence": {"same_day": true, "patch_ids": ["75b91ef9a22cca08dd625ead6b491f33"], "statement_hash": "efe70f12c08d3944b26c979a7827d252d81dce978e1899c6e0722871bf653360"}, "url": "/docs/compare/?release=11.16#11.16-03a41d6793f32fe2", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "00c230d34a27b573997b0dc1960f3741", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复 ALTER FUNCTION 使其支持在同一命令中同时更改函数的并行属性及其 SET 变量列表", "evidence": {"same_day": true, "patch_ids": ["75b91ef9a22cca08dd625ead6b491f33"], "statement_hash": "efe70f12c08d3944b26c979a7827d252d81dce978e1899c6e0722871bf653360"}, "url": "/docs/compare/?release=10.21#10.21-03a41d6793f32fe2", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-7f0155746cb44250", "cves": [], "html": "<p>收紧约束<span>“<span>拥有的</span>”</span>索引的查找（Tom Lane，Japin Li）<a href=\"https://postgr.es/c/8dcd1c356\">§</a></p>\n<p>某些代码路径将外键约束所依赖的索引误认为唯一约束或主键约束所拥有的索引，导致在对具有外键约束的表执行某些 <code>ALTER TABLE</code> 操作时出现奇怪的错误。</p>", "text": "收紧约束“拥有的”索引的查找（Tom Lane，Japin Li）§ 某些代码路径将外键约束所依赖的索引误认为唯一约束或主键约束所拥有的索引，导致在对具有外键约束的表执行某些 ALTER TABLE 操作时出现奇怪的错误。", "title": "收紧约束“拥有的”索引的查找", "commits": ["8dcd1c356"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "986ce54e9a005cc065537d407e1375df6d89c84e6e5b88e8336cb0b71f555c78", "section_path": ["变更"], "commit_groups": [["641f3dffc", "8dcd1c356"]], "identity_text": "Tighten lookup of the index owned by a constraint (Tom Lane, Japin Li) Some code paths mistook the index depended on by a foreign key constraint for one owned by a unique or primary key constraint, resulting in odd errors during certain ALTER TABLE operations on tables having foreign key constraints.", "commit_aliases": ["641f3dffc", "8dcd1c356"], "source_commits": ["8dcd1c356"], "source_entry_id": "14.3/changes/015", "db_id": "6d197a54a3bdf30518a616d33202f1ec", "patch_ids": ["c7bf4ec474c302ee5418c09ef8f84354"], "statement_hash": "c657d9100ffb743d9aa59411eafaad62eb57a03051e72ed5022474cdc7cc55c3", "relations": [], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-d0f336bd4c6ec2b5", "cves": [], "html": "<p>修复尝试修改表的系统列时产生的虚假错误（Tom Lane）<a href=\"https://postgr.es/c/e805735a8\">§</a></p>\n<p>系统应该告诉你不能这样做，但有时它会报告 <span>“<span>no owned sequence found</span>”</span>。</p>", "text": "修复尝试修改表的系统列时产生的虚假错误（Tom Lane）§ 系统应该告诉你不能这样做，但有时它会报告 “no owned sequence found”。", "title": "修复尝试修改表的系统列时产生的虚假错误", "commits": ["e805735a8"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "1e5563f87435eb1622ecd8ec7ece20c02a5cbd68f57858d1d66c1c7eca595cb9", "section_path": ["变更"], "commit_groups": [["0795da869", "36d4efe77", "69cefb3fb", "e805735a8"]], "identity_text": "Fix bogus errors from attempts to alter system columns of tables (Tom Lane) The system should just tell you that you can't do it, but sometimes it would report no owned sequence found instead.", "commit_aliases": ["0795da869", "36d4efe77", "69cefb3fb", "e805735a8"], "source_commits": ["e805735a8"], "source_entry_id": "14.3/changes/016", "db_id": "f2304ea8823d7d4619678c05992a0c42", "patch_ids": ["0075b415ba109a42ad865648b0098e59"], "statement_hash": "6cf37fb43592f2d2cb84f8007ecf1bc131f42d95ba2767fee76006369ef13f7d", "relations": [{"rule": 2, "type": "equivalent", "target": "69809cbbfc46c5af9e9e182495de80b7", "evidence": {"same_day": true, "patch_ids": ["0075b415ba109a42ad865648b0098e59"], "statement_hash": "6cf37fb43592f2d2cb84f8007ecf1bc131f42d95ba2767fee76006369ef13f7d"}}, {"rule": 2, "type": "equivalent", "target": "ef9e1f537e8d284e574236fa072b7fe6", "evidence": {"same_day": true, "patch_ids": ["0075b415ba109a42ad865648b0098e59"], "statement_hash": "6cf37fb43592f2d2cb84f8007ecf1bc131f42d95ba2767fee76006369ef13f7d"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ef9e1f537e8d284e574236fa072b7fe6", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复尝试修改表的系统列时产生的虚假错误", "evidence": {"same_day": true, "patch_ids": ["0075b415ba109a42ad865648b0098e59"], "statement_hash": "6cf37fb43592f2d2cb84f8007ecf1bc131f42d95ba2767fee76006369ef13f7d"}, "url": "/docs/compare/?release=13.7#13.7-1d330498de481aed", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "69809cbbfc46c5af9e9e182495de80b7", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复尝试修改表的系统列时产生的虚假错误", "evidence": {"same_day": true, "patch_ids": ["0075b415ba109a42ad865648b0098e59"], "statement_hash": "6cf37fb43592f2d2cb84f8007ecf1bc131f42d95ba2767fee76006369ef13f7d"}, "url": "/docs/compare/?release=12.11#12.11-9028416fc7fefe23", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}]}, {"id": "14.3-2c8715e3c1588e6b", "cves": [], "html": "<p>修复使用前导键为表达式的索引进行 <code>CLUSTER</code> 时表行的错误排序（Peter Geoghegan，Thomas Munro）<a href=\"https://postgr.es/c/e4521841a\">§</a></p>\n<p>表会使用正确的数据重建，但其顺序与索引顺序关系不大。</p>", "text": "修复使用前导键为表达式的索引进行 CLUSTER 时表行的错误排序（Peter Geoghegan，Thomas Munro）§ 表会使用正确的数据重建，但其顺序与索引顺序关系不大。", "title": "修复使用前导键为表达式的索引进行 CLUSTER 时表行的错误排序", "commits": ["e4521841a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "94e4aa66c3550c6b583dc8c97b6b86e5ec8785e5b560cc9082e71177a6a12630", "section_path": ["变更"], "commit_groups": [["1272630a2", "5487585e3", "8ab0ebb9a", "a903895b3", "adb2d84fc", "e4521841a"]], "identity_text": "Fix mis-sorting of table rows when CLUSTERing using an index whose leading key is an expression (Peter Geoghegan, Thomas Munro) The table would be rebuilt with the correct data, but in an order having little to do with the index order.", "commit_aliases": ["1272630a2", "5487585e3", "8ab0ebb9a", "a903895b3", "adb2d84fc", "e4521841a"], "source_commits": ["e4521841a"], "source_entry_id": "14.3/changes/017", "db_id": "9ef5206aa477e4189e0fc1416397a897", "patch_ids": ["beb8b29b6b7a279fd9c643c75dfec048"], "statement_hash": "c89ead64dcfa64fe0cc30d999a82b58716a4655d95bb47ffcb27f728c59a83ca", "relations": [{"rule": 2, "type": "equivalent", "target": "00d8cc4d2df09875b843bd1510c7912c", "evidence": {"same_day": true, "patch_ids": ["beb8b29b6b7a279fd9c643c75dfec048"], "statement_hash": "c89ead64dcfa64fe0cc30d999a82b58716a4655d95bb47ffcb27f728c59a83ca"}}, {"rule": 2, "type": "equivalent", "target": "12527d4d3cfb55406276951c18a2d33e", "evidence": {"same_day": true, "patch_ids": ["beb8b29b6b7a279fd9c643c75dfec048"], "statement_hash": "c89ead64dcfa64fe0cc30d999a82b58716a4655d95bb47ffcb27f728c59a83ca"}}, {"rule": 2, "type": "equivalent", "target": "18154cd75fda1ba65fa17913f5ebe458", "evidence": {"same_day": true, "patch_ids": ["beb8b29b6b7a279fd9c643c75dfec048"], "statement_hash": "c89ead64dcfa64fe0cc30d999a82b58716a4655d95bb47ffcb27f728c59a83ca"}}, {"rule": 2, "type": "equivalent", "target": "eeadfde9c6478270c9cc562840a40f6b", "evidence": {"same_day": true, "patch_ids": ["beb8b29b6b7a279fd9c643c75dfec048"], "statement_hash": "c89ead64dcfa64fe0cc30d999a82b58716a4655d95bb47ffcb27f728c59a83ca"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "eeadfde9c6478270c9cc562840a40f6b", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复使用前导键为表达式的索引进行 CLUSTER 时表行的错误排序", "evidence": {"same_day": true, "patch_ids": ["beb8b29b6b7a279fd9c643c75dfec048"], "statement_hash": "c89ead64dcfa64fe0cc30d999a82b58716a4655d95bb47ffcb27f728c59a83ca"}, "url": "/docs/compare/?release=13.7#13.7-c19c6dc51403a951", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "18154cd75fda1ba65fa17913f5ebe458", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复使用前导键为表达式的索引进行 CLUSTER 时表行的错误排序", "evidence": {"same_day": true, "patch_ids": ["beb8b29b6b7a279fd9c643c75dfec048"], "statement_hash": "c89ead64dcfa64fe0cc30d999a82b58716a4655d95bb47ffcb27f728c59a83ca"}, "url": "/docs/compare/?release=12.11#12.11-a09e04543c50e358", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "12527d4d3cfb55406276951c18a2d33e", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复使用前导键为表达式的索引进行 CLUSTER 时表行的错误排序", "evidence": {"same_day": true, "patch_ids": ["beb8b29b6b7a279fd9c643c75dfec048"], "statement_hash": "c89ead64dcfa64fe0cc30d999a82b58716a4655d95bb47ffcb27f728c59a83ca"}, "url": "/docs/compare/?release=11.16#11.16-06053beedb5eda2e", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "00d8cc4d2df09875b843bd1510c7912c", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复使用前导键为表达式的索引进行 CLUSTER 时表行的错误排序", "evidence": {"same_day": true, "patch_ids": ["beb8b29b6b7a279fd9c643c75dfec048"], "statement_hash": "c89ead64dcfa64fe0cc30d999a82b58716a4655d95bb47ffcb27f728c59a83ca"}, "url": "/docs/compare/?release=10.21#10.21-06053beedb5eda2e", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-5f4b7070d51842f1", "cves": [], "html": "<p>防止在排序 GiST 索引构建后不久发生系统崩溃时的数据丢失（Heikki Linnakangas）<a href=\"https://postgr.es/c/7d80e93fb\">§</a></p>\n<p>使用排序方式构建 GiST 索引的代码路径在完成时忽略了对文件进行 <code>fsync</code>。如果操作系统在此后不久崩溃，这可能导致索引损坏。</p>", "text": "防止在排序 GiST 索引构建后不久发生系统崩溃时的数据丢失（Heikki Linnakangas）§ 使用排序方式构建 GiST 索引的代码路径在完成时忽略了对文件进行 fsync。如果操作系统在此后不久崩溃，这可能导致索引损坏。", "title": "防止在排序 GiST 索引构建后不久发生系统崩溃时的数据丢失", "commits": ["7d80e93fb"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "1d78df8d576b5e3976b101865fa2ca8bdefb9833ec2dd20ea502ce2e71fac8e7", "section_path": ["变更"], "commit_groups": [["6c46e8a5d", "7d80e93fb"]], "identity_text": "Prevent data loss if a system crash occurs shortly after a sorted GiST index build (Heikki Linnakangas) The code path for building GiST indexes using sorting neglected to fsync the file upon completion. This could result in a corrupted index if the operating system crashed shortly later.", "commit_aliases": ["6c46e8a5d", "7d80e93fb"], "source_commits": ["7d80e93fb"], "source_entry_id": "14.3/changes/018", "db_id": "ecf9e6bb3cc26c1ffde595abec7913a0", "patch_ids": ["6a3568a6b3c73a12a22302ccf32145d8"], "statement_hash": "53b2c8c2747056d3a96a59062e5b05a4ffbe7c8586197376cf70199c78d01889", "relations": [], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-d56eb7394d63ca60", "cves": [], "html": "<p>修复删除分区索引时可能出现的死锁风险（Jimmy Yih，Gaurab Dey，Tom Lane）<a href=\"https://postgr.es/c/05ccf974c\">§</a></p>\n<p>确保以标准顺序（先父后子，先表后索引）获取所需的表锁和索引锁。之前 <code>DROP INDEX</code> 的代码处理方式不同，因此可能与按标准顺序获取这些锁的并发查询发生死锁。</p>", "text": "修复删除分区索引时可能出现的死锁风险（Jimmy Yih，Gaurab Dey，Tom Lane）§ 确保以标准顺序（先父后子，先表后索引）获取所需的表锁和索引锁。之前 DROP INDEX 的代码处理方式不同，因此可能与按标准顺序获取这些锁的并发查询发生死锁。", "title": "修复删除分区索引时可能出现的死锁风险", "commits": ["05ccf974c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "1ef8d8a8bcd664c42afbc106c6e6f680ca380f7ca001ccf91bc4085d47dc0edf", "section_path": ["变更"], "commit_groups": [["05ccf974c", "2241e5ced", "7b6ec8653", "b8ae17fd9", "d8d378d51"]], "identity_text": "Fix risk of deadlock failures while dropping a partitioned index (Jimmy Yih, Gaurab Dey, Tom Lane) Ensure that the required table and index locks are taken in the standard order (parents before children, tables before indexes). The previous coding for DROP INDEX did it differently, and so could deadlock against concurrent queries taking these locks in the standard order.", "commit_aliases": ["05ccf974c", "2241e5ced", "7b6ec8653", "b8ae17fd9", "d8d378d51"], "source_commits": ["05ccf974c"], "source_entry_id": "14.3/changes/019", "db_id": "3aec595afaf7bc055a2975cf7975e3fd", "patch_ids": ["6e62620cb97c728a8ce331b7d96728b8"], "statement_hash": "99e39419d2ab6456f6bfd6db8909744c427cd250d536272c94f97ddd776ae55c", "relations": [{"rule": 2, "type": "equivalent", "target": "62d0248f75578eb1c9352da468f3e804", "evidence": {"same_day": true, "patch_ids": ["6e62620cb97c728a8ce331b7d96728b8"], "statement_hash": "99e39419d2ab6456f6bfd6db8909744c427cd250d536272c94f97ddd776ae55c"}}, {"rule": 2, "type": "equivalent", "target": "d8a218ac20fa28ac23114a490445cf68", "evidence": {"same_day": true, "patch_ids": ["6e62620cb97c728a8ce331b7d96728b8"], "statement_hash": "99e39419d2ab6456f6bfd6db8909744c427cd250d536272c94f97ddd776ae55c"}}, {"rule": 2, "type": "equivalent", "target": "d93a211ad39b252bdeaca6f1d1da5779", "evidence": {"same_day": true, "patch_ids": ["6e62620cb97c728a8ce331b7d96728b8"], "statement_hash": "99e39419d2ab6456f6bfd6db8909744c427cd250d536272c94f97ddd776ae55c"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d8a218ac20fa28ac23114a490445cf68", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复删除分区索引时可能出现的死锁风险", "evidence": {"same_day": true, "patch_ids": ["6e62620cb97c728a8ce331b7d96728b8"], "statement_hash": "99e39419d2ab6456f6bfd6db8909744c427cd250d536272c94f97ddd776ae55c"}, "url": "/docs/compare/?release=13.7#13.7-b7f8cef792190b43", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "62d0248f75578eb1c9352da468f3e804", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复删除分区索引时可能出现的死锁风险", "evidence": {"same_day": true, "patch_ids": ["6e62620cb97c728a8ce331b7d96728b8"], "statement_hash": "99e39419d2ab6456f6bfd6db8909744c427cd250d536272c94f97ddd776ae55c"}, "url": "/docs/compare/?release=12.11#12.11-c439dbedaacb94fd", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "d93a211ad39b252bdeaca6f1d1da5779", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复删除分区索引时可能出现的死锁风险", "evidence": {"same_day": true, "patch_ids": ["6e62620cb97c728a8ce331b7d96728b8"], "statement_hash": "99e39419d2ab6456f6bfd6db8909744c427cd250d536272c94f97ddd776ae55c"}, "url": "/docs/compare/?release=11.16#11.16-454a39eea60db949", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}]}, {"id": "14.3-0b899d7af1ebf2eb", "cves": [], "html": "<p>修复 <code>DROP TABLESPACE</code> 与检查点之间的竞态条件（Nathan Bossart）<a href=\"https://postgr.es/c/26e007939\">§</a></p>\n<p>由 <code>DROP TABLESPACE</code> 强制执行的检查点有时无法从表空间目录中删除所有失效文件，导致虚假的 <span>“<span>tablespace is not empty</span>”</span> 错误。</p>", "text": "修复 DROP TABLESPACE 与检查点之间的竞态条件（Nathan Bossart）§ 由 DROP TABLESPACE 强制执行的检查点有时无法从表空间目录中删除所有失效文件，导致虚假的 “tablespace is not empty” 错误。", "title": "修复 DROP TABLESPACE 与检查点之间的竞态条件", "commits": ["26e007939"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "3ecf1f56cb39b0c06bc7a42db76b298f0b1ef9cad2b65973b486fcb9b4c45c45", "section_path": ["变更"], "commit_groups": [["26e007939", "46d9bfb0a", "51e760e5a", "c918f07dd", "ca522c60a", "fe197872c"]], "identity_text": "Fix race condition between DROP TABLESPACE and checkpointing (Nathan Bossart) The checkpoint forced by DROP TABLESPACE could sometimes fail to remove all dead files from the tablespace's directory, leading to a bogus tablespace is not empty error.", "commit_aliases": ["26e007939", "46d9bfb0a", "51e760e5a", "c918f07dd", "ca522c60a", "fe197872c"], "source_commits": ["26e007939"], "source_entry_id": "14.3/changes/020", "db_id": "fd6b9e4d47ee95e4622eecb9cf4feb20", "patch_ids": ["386ae80e6ad0d0afa551c86aa53a9604"], "statement_hash": "820bce9f2666ab0a13baead5fb3257b7ce9ca9a96ef2eef787376c110f8335d9", "relations": [{"rule": 2, "type": "equivalent", "target": "2bf6b91c631648150e4e43e26aa33c6e", "evidence": {"same_day": true, "patch_ids": ["386ae80e6ad0d0afa551c86aa53a9604"], "statement_hash": "820bce9f2666ab0a13baead5fb3257b7ce9ca9a96ef2eef787376c110f8335d9"}}, {"rule": 2, "type": "equivalent", "target": "818608b6ca9b6d0f3b5aa4e8dc7491e0", "evidence": {"same_day": true, "patch_ids": ["386ae80e6ad0d0afa551c86aa53a9604"], "statement_hash": "820bce9f2666ab0a13baead5fb3257b7ce9ca9a96ef2eef787376c110f8335d9"}}, {"rule": 2, "type": "equivalent", "target": "922f046161bfcd509b36802c54926083", "evidence": {"same_day": true, "patch_ids": ["386ae80e6ad0d0afa551c86aa53a9604"], "statement_hash": "820bce9f2666ab0a13baead5fb3257b7ce9ca9a96ef2eef787376c110f8335d9"}}, {"rule": 2, "type": "equivalent", "target": "cf4d21840304d304aff136d3ea88a7d0", "evidence": {"same_day": true, "patch_ids": ["386ae80e6ad0d0afa551c86aa53a9604"], "statement_hash": "820bce9f2666ab0a13baead5fb3257b7ce9ca9a96ef2eef787376c110f8335d9"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "818608b6ca9b6d0f3b5aa4e8dc7491e0", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复 DROP TABLESPACE 与检查点之间的竞态条件", "evidence": {"same_day": true, "patch_ids": ["386ae80e6ad0d0afa551c86aa53a9604"], "statement_hash": "820bce9f2666ab0a13baead5fb3257b7ce9ca9a96ef2eef787376c110f8335d9"}, "url": "/docs/compare/?release=13.7#13.7-340c862841bb984d", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "2bf6b91c631648150e4e43e26aa33c6e", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复 DROP TABLESPACE 与检查点之间的竞态条件", "evidence": {"same_day": true, "patch_ids": ["386ae80e6ad0d0afa551c86aa53a9604"], "statement_hash": "820bce9f2666ab0a13baead5fb3257b7ce9ca9a96ef2eef787376c110f8335d9"}, "url": "/docs/compare/?release=12.11#12.11-1b954988c27be5ff", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "922f046161bfcd509b36802c54926083", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复 DROP TABLESPACE 与检查点之间的竞态条件", "evidence": {"same_day": true, "patch_ids": ["386ae80e6ad0d0afa551c86aa53a9604"], "statement_hash": "820bce9f2666ab0a13baead5fb3257b7ce9ca9a96ef2eef787376c110f8335d9"}, "url": "/docs/compare/?release=11.16#11.16-d46c0bc12aa84fc0", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "cf4d21840304d304aff136d3ea88a7d0", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复 DROP TABLESPACE 与检查点之间的竞态条件", "evidence": {"same_day": true, "patch_ids": ["386ae80e6ad0d0afa551c86aa53a9604"], "statement_hash": "820bce9f2666ab0a13baead5fb3257b7ce9ca9a96ef2eef787376c110f8335d9"}, "url": "/docs/compare/?release=10.21#10.21-d46c0bc12aa84fc0", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-84d93ac7003937a6", "cves": [], "html": "<p>修复与检查点重叠的 <code>TRUNCATE</code> 命令之后崩溃恢复中可能出现的问题（Kyotaro Horiguchi，Heikki Linnakangas，Robert Haas）<a href=\"https://postgr.es/c/bbace5697\">§</a> <a href=\"https://postgr.es/c/10520f434\">§</a></p>\n<p><code>TRUNCATE</code> 必须确保在允许检查点完成之前，表的磁盘文件已被截断。否则，从该检查点开始的重放可能会在本应已移除的页面中发现意外数据，从而可能导致重放失败。</p>", "text": "修复与检查点重叠的 TRUNCATE 命令之后崩溃恢复中可能出现的问题（Kyotaro Horiguchi，Heikki Linnakangas，Robert Haas）§ § TRUNCATE 必须确保在允许检查点完成之前，表的磁盘文件已被截断。否则，从该检查点开始的重放可能会在本应已移除的页面中发现意外数据，从而可能导致重放失败。", "title": "修复与检查点重叠的 TRUNCATE 命令之后崩溃恢复中可能出现的问题", "commits": ["10520f434", "bbace5697"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "07e15f0360230632dce76ca1bb66da3e9301258439fb0b1be486114b87b7b0ba", "section_path": ["变更"], "commit_groups": [["10520f434", "48b398943", "6270ee445", "68e605b9e", "d18c913b7"], ["118f1a332", "1ce14b6b2", "3821d66a7", "412ad7a55", "57f618310", "bbace5697"]], "identity_text": "Fix possible trouble in crash recovery after a TRUNCATE command that overlaps a checkpoint (Kyotaro Horiguchi, Heikki Linnakangas, Robert Haas) TRUNCATE must ensure that the table's disk file is truncated before the checkpoint is allowed to complete. Otherwise, replay starting from that checkpoint might find unexpected data in the supposedly-removed pages, possibly causing replay failure.", "commit_aliases": ["10520f434", "118f1a332", "1ce14b6b2", "3821d66a7", "412ad7a55", "48b398943", "57f618310", "6270ee445", "68e605b9e", "bbace5697", "d18c913b7"], "source_commits": ["10520f434", "bbace5697"], "source_entry_id": "14.3/changes/021", "db_id": "434938212b1ae0ed20e3bd7a775dd600", "patch_ids": ["72a805773d6fe91e21c26ed7a937344e", "ec79c5affdaa35cd40768a8a31343e9e"], "statement_hash": "4fb673c0344e5759880af5596c8bd841a554900c63fc6306a6bc92c4c3859e6b", "relations": [{"rule": 2, "type": "equivalent", "target": "00aede7f60516464bd0e281bb684e25d", "evidence": {"same_day": true, "patch_ids": ["72a805773d6fe91e21c26ed7a937344e", "ec79c5affdaa35cd40768a8a31343e9e"], "statement_hash": "4fb673c0344e5759880af5596c8bd841a554900c63fc6306a6bc92c4c3859e6b"}}, {"rule": 2, "type": "equivalent", "target": "6828b4b16c705355b907fdd960ed2bf3", "evidence": {"same_day": true, "patch_ids": ["72a805773d6fe91e21c26ed7a937344e", "ec79c5affdaa35cd40768a8a31343e9e"], "statement_hash": "4fb673c0344e5759880af5596c8bd841a554900c63fc6306a6bc92c4c3859e6b"}}, {"rule": 2, "type": "equivalent", "target": "85baf415d072880c35de92cf6a4c9275", "evidence": {"same_day": true, "patch_ids": ["72a805773d6fe91e21c26ed7a937344e", "ec79c5affdaa35cd40768a8a31343e9e"], "statement_hash": "4fb673c0344e5759880af5596c8bd841a554900c63fc6306a6bc92c4c3859e6b"}}, {"rule": 2, "type": "equivalent", "target": "bc54b7976f06d5a469cb25f3721c8355", "evidence": {"same_day": true, "patch_ids": ["72a805773d6fe91e21c26ed7a937344e", "ec79c5affdaa35cd40768a8a31343e9e"], "statement_hash": "4fb673c0344e5759880af5596c8bd841a554900c63fc6306a6bc92c4c3859e6b"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6828b4b16c705355b907fdd960ed2bf3", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复与检查点重叠的 TRUNCATE 命令之后崩溃恢复中可能出现的问题", "evidence": {"same_day": true, "patch_ids": ["72a805773d6fe91e21c26ed7a937344e", "ec79c5affdaa35cd40768a8a31343e9e"], "statement_hash": "4fb673c0344e5759880af5596c8bd841a554900c63fc6306a6bc92c4c3859e6b"}, "url": "/docs/compare/?release=13.7#13.7-7d023ebe4999c3f3", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "85baf415d072880c35de92cf6a4c9275", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复与检查点重叠的 TRUNCATE 命令之后崩溃恢复中可能出现的问题", "evidence": {"same_day": true, "patch_ids": ["72a805773d6fe91e21c26ed7a937344e", "ec79c5affdaa35cd40768a8a31343e9e"], "statement_hash": "4fb673c0344e5759880af5596c8bd841a554900c63fc6306a6bc92c4c3859e6b"}, "url": "/docs/compare/?release=12.11#12.11-f0a66f75f1134727", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "00aede7f60516464bd0e281bb684e25d", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复与检查点重叠的 TRUNCATE 命令之后崩溃恢复中可能出现的问题", "evidence": {"same_day": true, "patch_ids": ["72a805773d6fe91e21c26ed7a937344e", "ec79c5affdaa35cd40768a8a31343e9e"], "statement_hash": "4fb673c0344e5759880af5596c8bd841a554900c63fc6306a6bc92c4c3859e6b"}, "url": "/docs/compare/?release=11.16#11.16-f7cf2cc6ed176c44", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "bc54b7976f06d5a469cb25f3721c8355", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复与检查点重叠的 TRUNCATE 命令之后崩溃恢复中可能出现的问题", "evidence": {"same_day": true, "patch_ids": ["72a805773d6fe91e21c26ed7a937344e", "ec79c5affdaa35cd40768a8a31343e9e"], "statement_hash": "4fb673c0344e5759880af5596c8bd841a554900c63fc6306a6bc92c4c3859e6b"}, "url": "/docs/compare/?release=10.21#10.21-f7cf2cc6ed176c44", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-180c178af2d9ff42", "cves": [], "html": "<p>修复临时对象清理期间不安全的 toast 数据访问（Andres Freund）<a href=\"https://postgr.es/c/7bbfe5994\">§</a></p>\n<p>服务器进程退出期间的临时对象删除可能会失败并显示 <span>“<span>FATAL: cannot fetch toast data without an active snapshot</span>”</span>。这通常是无害的，因为下次使用该临时模式时会成功清理。</p>", "text": "修复临时对象清理期间不安全的 toast 数据访问（Andres Freund）§ 服务器进程退出期间的临时对象删除可能会失败并显示 “FATAL: cannot fetch toast data without an active snapshot”。这通常是无害的，因为下次使用该临时模式时会成功清理。", "title": "修复临时对象清理期间不安全的 toast 数据访问", "commits": ["7bbfe5994"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "68fbec2df86737d16dc83e2f932b506b2da06a3389aceb137f92ddc5eed6a70a", "section_path": ["变更"], "commit_groups": [["0033fc63f", "3faa21bb7", "7bbfe5994", "7c38ef2a5", "c2551483e", "cebc54b90"]], "identity_text": "Fix unsafe toast-data accesses during temporary object cleanup (Andres Freund) Temporary-object deletion during server process exit could fail with FATAL: cannot fetch toast data without an active snapshot. This was usually harmless since the next use of that temporary schema would clean up successfully.", "commit_aliases": ["0033fc63f", "3faa21bb7", "7bbfe5994", "7c38ef2a5", "c2551483e", "cebc54b90"], "source_commits": ["7bbfe5994"], "source_entry_id": "14.3/changes/022", "db_id": "1de9775a50fcc38cb20f848f22f0c990", "patch_ids": ["26c8eced86f6a3a6ca54273b5b528cb5"], "statement_hash": "d68a03834adaf6467c3f014833d53caeae4a45aa56d4c32aad2fec7fce33789f", "relations": [{"rule": 2, "type": "equivalent", "target": "032efc6442217e5375f6d528eb22bb61", "evidence": {"same_day": true, "patch_ids": ["26c8eced86f6a3a6ca54273b5b528cb5"], "statement_hash": "d68a03834adaf6467c3f014833d53caeae4a45aa56d4c32aad2fec7fce33789f"}}, {"rule": 2, "type": "equivalent", "target": "7fe45e5fb801a18a0572d9b1f633fcfe", "evidence": {"same_day": true, "patch_ids": ["26c8eced86f6a3a6ca54273b5b528cb5"], "statement_hash": "d68a03834adaf6467c3f014833d53caeae4a45aa56d4c32aad2fec7fce33789f"}}, {"rule": 2, "type": "equivalent", "target": "8a604d943f999d3621ddd702ae5361bd", "evidence": {"same_day": true, "patch_ids": ["26c8eced86f6a3a6ca54273b5b528cb5"], "statement_hash": "d68a03834adaf6467c3f014833d53caeae4a45aa56d4c32aad2fec7fce33789f"}}, {"rule": 2, "type": "equivalent", "target": "e09ae6f09ca06e58a50e74ead9e74406", "evidence": {"same_day": true, "patch_ids": ["26c8eced86f6a3a6ca54273b5b528cb5"], "statement_hash": "d68a03834adaf6467c3f014833d53caeae4a45aa56d4c32aad2fec7fce33789f"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fe45e5fb801a18a0572d9b1f633fcfe", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复临时对象清理期间不安全的 toast 数据访问", "evidence": {"same_day": true, "patch_ids": ["26c8eced86f6a3a6ca54273b5b528cb5"], "statement_hash": "d68a03834adaf6467c3f014833d53caeae4a45aa56d4c32aad2fec7fce33789f"}, "url": "/docs/compare/?release=13.7#13.7-de75fc488eada203", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "e09ae6f09ca06e58a50e74ead9e74406", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复临时对象清理期间不安全的 toast 数据访问", "evidence": {"same_day": true, "patch_ids": ["26c8eced86f6a3a6ca54273b5b528cb5"], "statement_hash": "d68a03834adaf6467c3f014833d53caeae4a45aa56d4c32aad2fec7fce33789f"}, "url": "/docs/compare/?release=12.11#12.11-5241c5c0dfa9c25e", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "032efc6442217e5375f6d528eb22bb61", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复临时对象清理期间不安全的 toast 数据访问", "evidence": {"same_day": true, "patch_ids": ["26c8eced86f6a3a6ca54273b5b528cb5"], "statement_hash": "d68a03834adaf6467c3f014833d53caeae4a45aa56d4c32aad2fec7fce33789f"}, "url": "/docs/compare/?release=11.16#11.16-601d0017587bdac9", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "8a604d943f999d3621ddd702ae5361bd", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复临时对象清理期间不安全的 toast 数据访问", "evidence": {"same_day": true, "patch_ids": ["26c8eced86f6a3a6ca54273b5b528cb5"], "statement_hash": "d68a03834adaf6467c3f014833d53caeae4a45aa56d4c32aad2fec7fce33789f"}, "url": "/docs/compare/?release=10.21#10.21-601d0017587bdac9", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-6791a37279e3851b", "cves": [], "html": "<p>重新允许下划线作为自定义参数名的第一个字符（Japin Li）<a href=\"https://postgr.es/c/dd7c05979\">§</a></p>\n<p>这种名称在 v14 中被无意中禁止了。</p>", "text": "重新允许下划线作为自定义参数名的第一个字符（Japin Li）§ 这种名称在 v14 中被无意中禁止了。", "title": "重新允许下划线作为自定义参数名的第一个字符", "commits": ["dd7c05979"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "92a5e67393fa0bf08ce620c2181c0cc2979a8c6b941f19e9c41aba2c359062a7", "section_path": ["变更"], "commit_groups": [["bd74c4037", "dd7c05979"]], "identity_text": "Re-allow underscore as the first character in a custom parameter name (Japin Li) Such names were unintentionally disallowed in v14.", "commit_aliases": ["bd74c4037", "dd7c05979"], "source_commits": ["dd7c05979"], "source_entry_id": "14.3/changes/023", "db_id": "d09084b8221a14c89ea7e5e1b00642b6", "patch_ids": ["bb3e6deff0f3e1765a1d4514867025c3"], "statement_hash": "d8a0955910c8b7805d37718c95bdc886c44efed549161285e3b8fadefde3e8c4", "relations": [], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-2a81c8db8e59b793", "cves": [], "html": "<p>为 <code>compute_query_id</code> 参数增加 <code>regress</code> 选项（Michael Paquier）<a href=\"https://postgr.es/c/627c79a1e\">§</a></p>\n<p>这旨在方便测试，允许计算查询 ID 但不在 <code>EXPLAIN</code> 输出中显示。</p>", "text": "为 compute_query_id 参数增加 regress 选项（Michael Paquier）§ 这旨在方便测试，允许计算查询 ID 但不在 EXPLAIN 输出中显示。", "title": "为 compute_query_id 参数增加 regress 选项", "commits": ["627c79a1e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "b3053312d0ba28346711b166a5d44c46c54a5308e5666503d20cd8be25b5cccc", "section_path": ["变更"], "commit_groups": [["627c79a1e", "ebf6c5249"]], "identity_text": "Add regress option for the compute_query_id parameter (Michael Paquier) This is intended to facilitate testing, by allowing query IDs to be computed but not shown in EXPLAIN output.", "commit_aliases": ["627c79a1e", "ebf6c5249"], "source_commits": ["627c79a1e"], "source_entry_id": "14.3/changes/024", "db_id": "13653ffb2fdd94e53b5c59aa4baa761b", "patch_ids": ["96667cdbd1c0c69dbd7d54e7d4e5075e"], "statement_hash": "474e2a03835c9e2589cd0707fb51d0d3e721653ae7127897933d34d7bc543b59", "relations": [], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-1f83e4ce172a5625", "cves": [], "html": "<p>改进 RegisterSyncRequest 中的等待逻辑（Thomas Munro）<a href=\"https://postgr.es/c/1396b5c6e\">§</a></p>\n<p>如果检查点进程同步请求队列空间不足（这在实际系统中很少见，但在使用非常小的缓冲池进行测试时很常见），我们会等待其排空。在等待期间，我们应该将其报告为等待事件以便用户了解情况，并且还应该监视 postmaster 是否已终止，否则如果检查点进程已经退出，循环可能永远不会终止。</p>", "text": "改进 RegisterSyncRequest 中的等待逻辑（Thomas Munro）§ 如果检查点进程同步请求队列空间不足（这在实际系统中很少见，但在使用非常小的缓冲池进行测试时很常见），我们会等待其排空。在等待期间，我们应该将其报告为等待事件以便用户了解情况，并且还应该监视 postmaster 是否已终止，否则如果检查点进程已经退出，循环可能永远不会终止。", "title": "改进 RegisterSyncRequest 中的等待逻辑", "commits": ["1396b5c6e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "611f4655191ddac89f21585c1c784f64401ef4773c0a34055b6f50148aabb128", "section_path": ["变更"], "commit_groups": [["1396b5c6e", "3390ef1b7", "368ffdeee", "cfdb303be"]], "identity_text": "Improve wait logic in RegisterSyncRequest (Thomas Munro) If we run out of space in the checkpointer sync request queue (which is hopefully rare on real systems, but is common when testing with a very small buffer pool), we wait for it to drain. While waiting, we should report that as a wait event so that users know what is going on, and also watch for postmaster death, since otherwise the loop might never terminate if the checkpointer has already exited.", "commit_aliases": ["1396b5c6e", "3390ef1b7", "368ffdeee", "cfdb303be"], "source_commits": ["1396b5c6e"], "source_entry_id": "14.3/changes/025", "db_id": "66edf7fd9bc7ac6ac3bf7370ef47246f", "patch_ids": ["46e0a416007f6b4cf10784401f9bb8c1"], "statement_hash": "6e15a12c633408194a7ef1ba841934d022706173260452535c1da77108e1c3ea", "relations": [{"rule": 2, "type": "equivalent", "target": "665bdc3277aa51e51724742aecb12435", "evidence": {"same_day": true, "patch_ids": ["46e0a416007f6b4cf10784401f9bb8c1"], "statement_hash": "6e15a12c633408194a7ef1ba841934d022706173260452535c1da77108e1c3ea"}}, {"rule": 2, "type": "equivalent", "target": "bf212a65b2fd693ae19befc18338f6c1", "evidence": {"same_day": true, "patch_ids": ["46e0a416007f6b4cf10784401f9bb8c1"], "statement_hash": "6e15a12c633408194a7ef1ba841934d022706173260452535c1da77108e1c3ea"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bf212a65b2fd693ae19befc18338f6c1", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "改进 RegisterSyncRequest 中的等待逻辑", "evidence": {"same_day": true, "patch_ids": ["46e0a416007f6b4cf10784401f9bb8c1"], "statement_hash": "6e15a12c633408194a7ef1ba841934d022706173260452535c1da77108e1c3ea"}, "url": "/docs/compare/?release=13.7#13.7-68d39c4fa71c5adc", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "665bdc3277aa51e51724742aecb12435", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "改进 RegisterSyncRequest 中的等待逻辑", "evidence": {"same_day": true, "patch_ids": ["46e0a416007f6b4cf10784401f9bb8c1"], "statement_hash": "6e15a12c633408194a7ef1ba841934d022706173260452535c1da77108e1c3ea"}, "url": "/docs/compare/?release=12.11#12.11-a4c5f5fded4ca26b", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}]}, {"id": "14.3-a0f7204acbc5bae3", "cves": [], "html": "<p>当检查点进程在写入之间等待时响应 latch 事件唤醒（Thomas Munro）<a href=\"https://postgr.es/c/78c0f85e4\">§</a> <a href=\"https://postgr.es/c/ea70f6945\">§</a></p>\n<p>这改善了对后端发送同步请求的响应能力。此变更还为这些等待创建了一个合适的等待事件类别。</p>", "text": "当检查点进程在写入之间等待时响应 latch 事件唤醒（Thomas Munro）§ § 这改善了对后端发送同步请求的响应能力。此变更还为这些等待创建了一个合适的等待事件类别。", "title": "当检查点进程在写入之间等待时响应 latch 事件唤醒", "commits": ["78c0f85e4", "ea70f6945"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "aaeedbc016e7e78069cee02fa8be29d2602e4b84a5d7f4eb45881c2cef6dd32b", "section_path": ["变更"], "commit_groups": [["501c66c81", "ea70f6945"], ["5e6368b42", "78c0f85e4"]], "identity_text": "Wake up for latch events when the checkpointer is waiting between writes (Thomas Munro) This improves responsiveness to backends sending sync requests. The change also creates a proper wait event class for these waits.", "commit_aliases": ["501c66c81", "5e6368b42", "78c0f85e4", "ea70f6945"], "source_commits": ["78c0f85e4", "ea70f6945"], "source_entry_id": "14.3/changes/026", "db_id": "ecad2544dcd93db89fa3e2ddc83135af", "patch_ids": ["78ef30d053c474b686cfd46ca993b052", "d36898176e0a50262738a28e781ba943"], "statement_hash": "7b558ee68060801eef2992482bd97ed700b168d0e5a2d1ea7505156d76f3df8e", "relations": [], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-67de1df9ca9c590c", "cves": [], "html": "<p>修复当存在缺失的 WAL 续接记录时，备库提升期间出现的 <span>“<span>PANIC: xlog flush request is not satisfied</span>”</span> 失败（Sami Imseih）<a href=\"https://postgr.es/c/caaeb88ff\">§</a></p>", "text": "修复当存在缺失的 WAL 续接记录时，备库提升期间出现的 “PANIC: xlog flush request is not satisfied” 失败（Sami Imseih）§", "title": "修复当存在缺失的 WAL 续接记录时，备库提升期间出现的 “PANIC: xlog flush request is not satisfied” 失败", "commits": ["caaeb88ff"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "d4cda539c135d571114822f1ccba9456b448b831fbb127c29e0d5aab64d5ec86", "section_path": ["变更"], "commit_groups": [["199cd7b59", "98eb3e06c", "9ade3c09a", "9d92582ab", "c714ebd0e", "caaeb88ff"]], "identity_text": "Fix PANIC: xlog flush request is not satisfied failure during standby promotion when there is a missing WAL continuation record (Sami Imseih)", "commit_aliases": ["199cd7b59", "98eb3e06c", "9ade3c09a", "9d92582ab", "c714ebd0e", "caaeb88ff"], "source_commits": ["caaeb88ff"], "source_entry_id": "14.3/changes/027", "db_id": "efed42fc416ec8b749584b57596f52e1", "patch_ids": ["d7366202c2ac6174b1562618eed0022c"], "statement_hash": "dec3ba5ab3cc03a148a8eb03d352a62214c1a3a2b0b6b184984ef06882a33553", "relations": [{"rule": 2, "type": "equivalent", "target": "4616f6f989728145ab6c6ddc011d81bd", "evidence": {"same_day": true, "patch_ids": ["d7366202c2ac6174b1562618eed0022c"], "statement_hash": "dec3ba5ab3cc03a148a8eb03d352a62214c1a3a2b0b6b184984ef06882a33553"}}, {"rule": 2, "type": "equivalent", "target": "584a81401b973825070db064f4c5ffed", "evidence": {"same_day": true, "patch_ids": ["d7366202c2ac6174b1562618eed0022c"], "statement_hash": "dec3ba5ab3cc03a148a8eb03d352a62214c1a3a2b0b6b184984ef06882a33553"}}, {"rule": 2, "type": "equivalent", "target": "bf04d49f808aa1ddd6d6de22354000eb", "evidence": {"same_day": true, "patch_ids": ["d7366202c2ac6174b1562618eed0022c"], "statement_hash": "dec3ba5ab3cc03a148a8eb03d352a62214c1a3a2b0b6b184984ef06882a33553"}}, {"rule": 2, "type": "equivalent", "target": "e912bf1a48b6907073e2fd8968bbc3a9", "evidence": {"same_day": true, "patch_ids": ["d7366202c2ac6174b1562618eed0022c"], "statement_hash": "dec3ba5ab3cc03a148a8eb03d352a62214c1a3a2b0b6b184984ef06882a33553"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4616f6f989728145ab6c6ddc011d81bd", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复当存在缺失的 WAL 续接记录时，备库提升期间出现的 “PANIC: xlog flush request is not satisfied” 失败", "evidence": {"same_day": true, "patch_ids": ["d7366202c2ac6174b1562618eed0022c"], "statement_hash": "dec3ba5ab3cc03a148a8eb03d352a62214c1a3a2b0b6b184984ef06882a33553"}, "url": "/docs/compare/?release=13.7#13.7-f3fabf8f11d45a79", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "584a81401b973825070db064f4c5ffed", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复当存在缺失的 WAL 续接记录时，备库提升期间出现的 “PANIC: xlog flush request is not satisfied” 失败", "evidence": {"same_day": true, "patch_ids": ["d7366202c2ac6174b1562618eed0022c"], "statement_hash": "dec3ba5ab3cc03a148a8eb03d352a62214c1a3a2b0b6b184984ef06882a33553"}, "url": "/docs/compare/?release=12.11#12.11-a981739bfb0bdb1f", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "bf04d49f808aa1ddd6d6de22354000eb", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复当存在缺失的 WAL 续接记录时，备库提升期间出现的 “PANIC: xlog flush request is not satisfied” 失败", "evidence": {"same_day": true, "patch_ids": ["d7366202c2ac6174b1562618eed0022c"], "statement_hash": "dec3ba5ab3cc03a148a8eb03d352a62214c1a3a2b0b6b184984ef06882a33553"}, "url": "/docs/compare/?release=11.16#11.16-f3ac08d06f4d3f00", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "e912bf1a48b6907073e2fd8968bbc3a9", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复当存在缺失的 WAL 续接记录时，备库提升期间出现的 “PANIC: xlog flush request is not satisfied” 失败", "evidence": {"same_day": true, "patch_ids": ["d7366202c2ac6174b1562618eed0022c"], "statement_hash": "dec3ba5ab3cc03a148a8eb03d352a62214c1a3a2b0b6b184984ef06882a33553"}, "url": "/docs/compare/?release=10.21#10.21-f3ac08d06f4d3f00", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-e3d892048c4eb17c", "cves": [], "html": "<p>修复热备冲突处理中可能出现的自死锁问题（Andres Freund）<a href=\"https://postgr.es/c/9ab3b2bdb\">§</a> <a href=\"https://postgr.es/c/f74496dd6\">§</a> <a href=\"https://postgr.es/c/5ab8e8014\">§</a></p>\n<p>在不利的时序条件下，WAL 应用进程可能在等待其他进程释放缓冲区锁时卡住。</p>", "text": "修复热备冲突处理中可能出现的自死锁问题（Andres Freund）§ § § 在不利的时序条件下，WAL 应用进程可能在等待其他进程释放缓冲区锁时卡住。", "title": "修复热备冲突处理中可能出现的自死锁问题", "commits": ["5ab8e8014", "9ab3b2bdb", "f74496dd6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "7cfacdd9b9f40c221181ba12cc6bc417663feb93b63419466bd0b89143e77f5d", "section_path": ["变更"], "commit_groups": [["0446d3bf3", "25d5494e2", "a5ede1391", "b1f35a36e", "f74496dd6"], ["2adb8debe", "5ab8e8014", "5c8b14a71", "90abe1e17", "e8a0cf9b2"], ["57c5ad168", "8f1537d10", "9ab3b2bdb", "9cda785b4", "cbc47ad7e", "edfc03ec9"]], "identity_text": "Fix possibility of self-deadlock in hot standby conflict handling (Andres Freund) With unlucky timing, the WAL-applying process could get stuck while waiting for some other process to release a buffer lock.", "commit_aliases": ["0446d3bf3", "25d5494e2", "2adb8debe", "57c5ad168", "5ab8e8014", "5c8b14a71", "8f1537d10", "90abe1e17", "9ab3b2bdb", "9cda785b4", "a5ede1391", "b1f35a36e", "cbc47ad7e", "e8a0cf9b2", "edfc03ec9", "f74496dd6"], "source_commits": ["5ab8e8014", "9ab3b2bdb", "f74496dd6"], "source_entry_id": "14.3/changes/028", "db_id": "9917635a38b20d66db9f32a624027fdc", "patch_ids": ["3ae1cebdc882ce86c9a9663ee9119370", "c987d4f0bef2ed1a878ce690db4a3580", "eec58c9f45ac6d4e8fa18aaf0b176062"], "statement_hash": "19df3615567e3172b048f5f3d28c721d1edc9a0b102de72d3ae1c105016dd225", "relations": [{"rule": 2, "type": "equivalent", "target": "7c662f5bf745a4d32c2bd4d67e7dcddd", "evidence": {"same_day": true, "patch_ids": ["3ae1cebdc882ce86c9a9663ee9119370", "c987d4f0bef2ed1a878ce690db4a3580", "eec58c9f45ac6d4e8fa18aaf0b176062"], "statement_hash": "19df3615567e3172b048f5f3d28c721d1edc9a0b102de72d3ae1c105016dd225"}}, {"rule": 2, "type": "equivalent", "target": "8326850f199485395083b431edd51d72", "evidence": {"same_day": true, "patch_ids": ["3ae1cebdc882ce86c9a9663ee9119370", "c987d4f0bef2ed1a878ce690db4a3580", "eec58c9f45ac6d4e8fa18aaf0b176062"], "statement_hash": "19df3615567e3172b048f5f3d28c721d1edc9a0b102de72d3ae1c105016dd225"}}, {"rule": 2, "type": "equivalent", "target": "bfe754562d7efef753ac505f1ce64640", "evidence": {"same_day": true, "patch_ids": ["3ae1cebdc882ce86c9a9663ee9119370", "c987d4f0bef2ed1a878ce690db4a3580", "eec58c9f45ac6d4e8fa18aaf0b176062"], "statement_hash": "19df3615567e3172b048f5f3d28c721d1edc9a0b102de72d3ae1c105016dd225"}}, {"rule": 2, "type": "equivalent", "target": "cbd21a3d7d5f7b9494e7b9ea5f925594", "evidence": {"same_day": true, "patch_ids": ["3ae1cebdc882ce86c9a9663ee9119370", "c987d4f0bef2ed1a878ce690db4a3580", "eec58c9f45ac6d4e8fa18aaf0b176062"], "statement_hash": "19df3615567e3172b048f5f3d28c721d1edc9a0b102de72d3ae1c105016dd225"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cbd21a3d7d5f7b9494e7b9ea5f925594", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复热备冲突处理中可能出现的自死锁问题", "evidence": {"same_day": true, "patch_ids": ["3ae1cebdc882ce86c9a9663ee9119370", "c987d4f0bef2ed1a878ce690db4a3580", "eec58c9f45ac6d4e8fa18aaf0b176062"], "statement_hash": "19df3615567e3172b048f5f3d28c721d1edc9a0b102de72d3ae1c105016dd225"}, "url": "/docs/compare/?release=13.7#13.7-68e9a1cfd8eb8d19", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "8326850f199485395083b431edd51d72", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复热备冲突处理中可能出现的自死锁问题", "evidence": {"same_day": true, "patch_ids": ["3ae1cebdc882ce86c9a9663ee9119370", "c987d4f0bef2ed1a878ce690db4a3580", "eec58c9f45ac6d4e8fa18aaf0b176062"], "statement_hash": "19df3615567e3172b048f5f3d28c721d1edc9a0b102de72d3ae1c105016dd225"}, "url": "/docs/compare/?release=12.11#12.11-d5cf271c00b45f44", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "bfe754562d7efef753ac505f1ce64640", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复热备冲突处理中可能出现的自死锁问题", "evidence": {"same_day": true, "patch_ids": ["3ae1cebdc882ce86c9a9663ee9119370", "c987d4f0bef2ed1a878ce690db4a3580", "eec58c9f45ac6d4e8fa18aaf0b176062"], "statement_hash": "19df3615567e3172b048f5f3d28c721d1edc9a0b102de72d3ae1c105016dd225"}, "url": "/docs/compare/?release=11.16#11.16-4d748db5db165b63", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "7c662f5bf745a4d32c2bd4d67e7dcddd", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复热备冲突处理中可能出现的自死锁问题", "evidence": {"same_day": true, "patch_ids": ["3ae1cebdc882ce86c9a9663ee9119370", "c987d4f0bef2ed1a878ce690db4a3580", "eec58c9f45ac6d4e8fa18aaf0b176062"], "statement_hash": "19df3615567e3172b048f5f3d28c721d1edc9a0b102de72d3ae1c105016dd225"}, "url": "/docs/compare/?release=10.21#10.21-4d748db5db165b63", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-a31d4cecc569a54d", "cves": [], "html": "<p>修复通过逻辑复制发布变更时可能错误识别正确祖先关系的问题（Tomas Vondra，Hou zj，Amit Kapila）<a href=\"https://postgr.es/c/677a1dc0c\">§</a></p>\n<p>如果启用了 <code>publish_via_partition_root</code>，并且有多个发布命名了当前被修改关系的不同祖先，则可能选择了错误的祖先来报告变更。</p>", "text": "修复通过逻辑复制发布变更时可能错误识别正确祖先关系的问题（Tomas Vondra，Hou zj，Amit Kapila）§ 如果启用了 publish_via_partition_root，并且有多个发布命名了当前被修改关系的不同祖先，则可能选择了错误的祖先来报告变更。", "title": "修复通过逻辑复制发布变更时可能错误识别正确祖先关系的问题", "commits": ["677a1dc0c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "a1285fc52be863d130c2021bcedfe87219b73e1b18ab92acd04ea1bbb3588c18", "section_path": ["变更"], "commit_groups": [["27fafee72", "677a1dc0c", "c91f71b9d"]], "identity_text": "Fix possible mis-identification of the correct ancestor relation to publish logical replication changes through (Tomas Vondra, Hou zj, Amit Kapila) If publish_via_partition_root is enabled, and there are multiple publications naming different ancestors of the currently-modified relation, the wrong ancestor might be chosen for reporting the change.", "commit_aliases": ["27fafee72", "677a1dc0c", "c91f71b9d"], "source_commits": ["677a1dc0c"], "source_entry_id": "14.3/changes/029", "db_id": "21393bed96486b6627e1d99b2b46999e", "patch_ids": ["734bffcb9430922c46e35eb13e9f9ff9"], "statement_hash": "47eaa08448a18c1ffdbb54659997dca29fdf8639cdd2d2c17fb75eab6024509b", "relations": [{"rule": 2, "type": "equivalent", "target": "a11db9c0139af270168b7134c908b2b1", "evidence": {"same_day": true, "patch_ids": ["734bffcb9430922c46e35eb13e9f9ff9"], "statement_hash": "47eaa08448a18c1ffdbb54659997dca29fdf8639cdd2d2c17fb75eab6024509b"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a11db9c0139af270168b7134c908b2b1", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复通过逻辑复制发布变更时可能错误识别正确祖先关系的问题", "evidence": {"same_day": true, "patch_ids": ["734bffcb9430922c46e35eb13e9f9ff9"], "statement_hash": "47eaa08448a18c1ffdbb54659997dca29fdf8639cdd2d2c17fb75eab6024509b"}, "url": "/docs/compare/?release=13.7#13.7-0df9d4ae5a52837b", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}]}, {"id": "14.3-93ffe1cf73218ab0", "cves": [], "html": "<p>确保逻辑复制应用工作进程即使在达到 <code>max_sync_workers_per_subscription</code> 限制时也能重启（Amit Kapila）<a href=\"https://postgr.es/c/c9dea58e2\">§</a></p>\n<p>限制检查的错误编码导致重启的工作进程立即退出，使得工作进程数量少于应有的数量。</p>", "text": "确保逻辑复制应用工作进程即使在达到 max_sync_workers_per_subscription 限制时也能重启（Amit Kapila）§ 限制检查的错误编码导致重启的工作进程立即退出，使得工作进程数量少于应有的数量。", "title": "确保逻辑复制应用工作进程即使在达到 max_sync_workers_per_subscription 限制时也能重启", "commits": ["c9dea58e2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "6d7b807f5200ce62b53da85ebb0c71b39090660649d0e3ce75c604a1bf79550b", "section_path": ["变更"], "commit_groups": [["59348fbde", "82d4a17a1", "a90de822e", "be46985be", "c9dea58e2", "dd4ab6fd6"]], "identity_text": "Ensure that logical replication apply workers can be restarted even when we're up against the max_sync_workers_per_subscription limit (Amit Kapila) Faulty coding of the limit check caused a restarted worker to exit immediately, leaving fewer workers than there should be.", "commit_aliases": ["59348fbde", "82d4a17a1", "a90de822e", "be46985be", "c9dea58e2", "dd4ab6fd6"], "source_commits": ["c9dea58e2"], "source_entry_id": "14.3/changes/030", "db_id": "d4225ea6fb86c887ba568cca78d6125a", "patch_ids": ["561261d9082b5d0459ff5d89d6c93d8a"], "statement_hash": "207014b7edd7ff2728e5b44fc727fdcbd375add4bad184d028de0b84c36747bd", "relations": [{"rule": 2, "type": "equivalent", "target": "4d77101a0dcfa5ea847fb5373636fcc1", "evidence": {"same_day": true, "patch_ids": ["561261d9082b5d0459ff5d89d6c93d8a"], "statement_hash": "207014b7edd7ff2728e5b44fc727fdcbd375add4bad184d028de0b84c36747bd"}}, {"rule": 2, "type": "equivalent", "target": "65dc9f700963dfd29d410cfed4b78859", "evidence": {"same_day": true, "patch_ids": ["561261d9082b5d0459ff5d89d6c93d8a"], "statement_hash": "207014b7edd7ff2728e5b44fc727fdcbd375add4bad184d028de0b84c36747bd"}}, {"rule": 2, "type": "equivalent", "target": "6cb0508f0a9e0afafb73a70f702a7705", "evidence": {"same_day": true, "patch_ids": ["561261d9082b5d0459ff5d89d6c93d8a"], "statement_hash": "207014b7edd7ff2728e5b44fc727fdcbd375add4bad184d028de0b84c36747bd"}}, {"rule": 2, "type": "equivalent", "target": "c8faa35f51a3c0ace4a4fc31fc4be4fa", "evidence": {"same_day": true, "patch_ids": ["561261d9082b5d0459ff5d89d6c93d8a"], "statement_hash": "207014b7edd7ff2728e5b44fc727fdcbd375add4bad184d028de0b84c36747bd"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "65dc9f700963dfd29d410cfed4b78859", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "确保逻辑复制应用工作进程即使在达到 max_sync_workers_per_subscription 限制时也能重启", "evidence": {"same_day": true, "patch_ids": ["561261d9082b5d0459ff5d89d6c93d8a"], "statement_hash": "207014b7edd7ff2728e5b44fc727fdcbd375add4bad184d028de0b84c36747bd"}, "url": "/docs/compare/?release=13.7#13.7-076443b51e6de81b", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "4d77101a0dcfa5ea847fb5373636fcc1", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "确保逻辑复制应用工作进程即使在达到 max_sync_workers_per_subscription 限制时也能重启", "evidence": {"same_day": true, "patch_ids": ["561261d9082b5d0459ff5d89d6c93d8a"], "statement_hash": "207014b7edd7ff2728e5b44fc727fdcbd375add4bad184d028de0b84c36747bd"}, "url": "/docs/compare/?release=12.11#12.11-6dc41deb32f0c4ba", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "c8faa35f51a3c0ace4a4fc31fc4be4fa", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "确保逻辑复制应用工作进程即使在达到 max_sync_workers_per_subscription 限制时也能重启", "evidence": {"same_day": true, "patch_ids": ["561261d9082b5d0459ff5d89d6c93d8a"], "statement_hash": "207014b7edd7ff2728e5b44fc727fdcbd375add4bad184d028de0b84c36747bd"}, "url": "/docs/compare/?release=11.16#11.16-08576c864b54941e", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "6cb0508f0a9e0afafb73a70f702a7705", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "确保逻辑复制应用工作进程即使在达到 max_sync_workers_per_subscription 限制时也能重启", "evidence": {"same_day": true, "patch_ids": ["561261d9082b5d0459ff5d89d6c93d8a"], "statement_hash": "207014b7edd7ff2728e5b44fc727fdcbd375add4bad184d028de0b84c36747bd"}, "url": "/docs/compare/?release=10.21#10.21-08576c864b54941e", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-1969eb606850e557", "cves": [], "html": "<p>在更新的 WAL 日志中包含未更改的副本标识键列（如果它们以行外方式存储）（Dilip Kumar，Amit Kapila）<a href=\"https://postgr.es/c/04645bbca\">§</a></p>\n<p>否则订阅者无法看到这些值，并且将无法复制该更新。</p>", "text": "在更新的 WAL 日志中包含未更改的副本标识键列（如果它们以行外方式存储）（Dilip Kumar，Amit Kapila）§ 否则订阅者无法看到这些值，并且将无法复制该更新。", "title": "在更新的 WAL 日志中包含未更改的副本标识键列（如果它们以行外方式存储）", "commits": ["04645bbca"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "fdfbfed5cd132634e0d9cdca8ea10cbec3d6ac86bc87025de77ba78d22d9c1ca", "section_path": ["变更"], "commit_groups": [["04645bbca", "1cd5802ac", "5e01001ff", "b5e060473", "caa231be9", "ce349cf17"]], "identity_text": "Include unchanged replica identity key columns in the WAL log for an update, if they are stored out-of-line (Dilip Kumar, Amit Kapila) Otherwise subscribers cannot see the values and will fail to replicate the update.", "commit_aliases": ["04645bbca", "1cd5802ac", "5e01001ff", "b5e060473", "caa231be9", "ce349cf17"], "source_commits": ["04645bbca"], "source_entry_id": "14.3/changes/031", "db_id": "d788e8137114d6bd76da60ed58066080", "patch_ids": ["b2780ab671c5f1c7f301a12c222edd0c"], "statement_hash": "9bc9aa05fa13870cfff1ba36ad448452ead9698c9994699a261d92c2ae40e84e", "relations": [{"rule": 2, "type": "equivalent", "target": "07858b021e0e853308156789e418cd2a", "evidence": {"same_day": true, "patch_ids": ["b2780ab671c5f1c7f301a12c222edd0c"], "statement_hash": "9bc9aa05fa13870cfff1ba36ad448452ead9698c9994699a261d92c2ae40e84e"}}, {"rule": 2, "type": "equivalent", "target": "9a94d67ddddbd742c503f9c8324b18e4", "evidence": {"same_day": true, "patch_ids": ["b2780ab671c5f1c7f301a12c222edd0c"], "statement_hash": "9bc9aa05fa13870cfff1ba36ad448452ead9698c9994699a261d92c2ae40e84e"}}, {"rule": 2, "type": "equivalent", "target": "bf5d4be3e90daa1d7d78f997c974599d", "evidence": {"same_day": true, "patch_ids": ["b2780ab671c5f1c7f301a12c222edd0c"], "statement_hash": "9bc9aa05fa13870cfff1ba36ad448452ead9698c9994699a261d92c2ae40e84e"}}, {"rule": 2, "type": "equivalent", "target": "e91345693e41d6a01bb1111c14f73dcb", "evidence": {"same_day": true, "patch_ids": ["b2780ab671c5f1c7f301a12c222edd0c"], "statement_hash": "9bc9aa05fa13870cfff1ba36ad448452ead9698c9994699a261d92c2ae40e84e"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9a94d67ddddbd742c503f9c8324b18e4", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "在更新的 WAL 日志中包含未更改的副本标识键列（如果它们以行外方式存储）", "evidence": {"same_day": true, "patch_ids": ["b2780ab671c5f1c7f301a12c222edd0c"], "statement_hash": "9bc9aa05fa13870cfff1ba36ad448452ead9698c9994699a261d92c2ae40e84e"}, "url": "/docs/compare/?release=13.7#13.7-74763003b2707c52", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "bf5d4be3e90daa1d7d78f997c974599d", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "在更新的 WAL 日志中包含未更改的副本标识键列（如果它们以行外方式存储）", "evidence": {"same_day": true, "patch_ids": ["b2780ab671c5f1c7f301a12c222edd0c"], "statement_hash": "9bc9aa05fa13870cfff1ba36ad448452ead9698c9994699a261d92c2ae40e84e"}, "url": "/docs/compare/?release=12.11#12.11-8cdc19f514753e90", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "07858b021e0e853308156789e418cd2a", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "在更新的 WAL 日志中包含未更改的副本标识键列（如果它们以行外方式存储）", "evidence": {"same_day": true, "patch_ids": ["b2780ab671c5f1c7f301a12c222edd0c"], "statement_hash": "9bc9aa05fa13870cfff1ba36ad448452ead9698c9994699a261d92c2ae40e84e"}, "url": "/docs/compare/?release=11.16#11.16-c214b6a229b96154", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "e91345693e41d6a01bb1111c14f73dcb", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "在更新的 WAL 日志中包含未更改的副本标识键列（如果它们以行外方式存储）", "evidence": {"same_day": true, "patch_ids": ["b2780ab671c5f1c7f301a12c222edd0c"], "statement_hash": "9bc9aa05fa13870cfff1ba36ad448452ead9698c9994699a261d92c2ae40e84e"}, "url": "/docs/compare/?release=10.21#10.21-c214b6a229b96154", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-6a66ef768080de2b", "cves": [], "html": "<p>正确处理不支持在 <span>ps(1)</span> 中修改服务器进程显示的平台（Andrew Dunstan）<a href=\"https://postgr.es/c/3f7a59c59\">§</a></p>\n<p>这样的平台很少（唯一受支持的是 Cygwin），所以我们未能注意到重构引入了潜在的内存覆盖问题。</p>", "text": "正确处理不支持在 ps(1) 中修改服务器进程显示的平台（Andrew Dunstan）§ 这样的平台很少（唯一受支持的是 Cygwin），所以我们未能注意到重构引入了潜在的内存覆盖问题。", "title": "正确处理不支持在 ps(1) 中修改服务器进程显示的平台", "commits": ["3f7a59c59"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "55d244379df4bd352c49507fceae4eaa3c0122101b715be40dfd624f40704ba8", "section_path": ["变更"], "commit_groups": [["0fb6954aa", "3f7a59c59", "9016a2a3d"]], "identity_text": "Cope correctly with platforms that have no support for altering the server process's display in ps(1) (Andrew Dunstan) Few platforms are like this (the only supported one is Cygwin), so we'd managed not to notice that refactoring introduced a potential memory clobber.", "commit_aliases": ["0fb6954aa", "3f7a59c59", "9016a2a3d"], "source_commits": ["3f7a59c59"], "source_entry_id": "14.3/changes/032", "db_id": "ccd4be25c2fcbabd0a3d631bbf746371", "patch_ids": ["a394bea248916dfe044423489ee85068"], "statement_hash": "90389f7e3c89e6f2477cae43dec4f96f16fe5137cb48070225e6e2d848b8fdd0", "relations": [{"rule": 2, "type": "equivalent", "target": "b15b4a1a7796351246e4e897a487e7fa", "evidence": {"same_day": true, "patch_ids": ["a394bea248916dfe044423489ee85068"], "statement_hash": "90389f7e3c89e6f2477cae43dec4f96f16fe5137cb48070225e6e2d848b8fdd0"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b15b4a1a7796351246e4e897a487e7fa", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "正确处理不支持在 ps(1) 中修改服务器进程显示的平台", "evidence": {"same_day": true, "patch_ids": ["a394bea248916dfe044423489ee85068"], "statement_hash": "90389f7e3c89e6f2477cae43dec4f96f16fe5137cb48070225e6e2d848b8fdd0"}, "url": "/docs/compare/?release=13.7#13.7-08d770fa949bbfe5", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}]}, {"id": "14.3-b98a792a3a0c83f0", "cves": [], "html": "<p>使服务器在面对错过的定时器中断时更加健壮（Michael Harris，Tom Lane）<a href=\"https://postgr.es/c/2e211c166\">§</a></p>\n<p>v14 中添加的一项优化意味着，如果服务器进程以某种方式错过了定时器中断，它将永远不会再向内核请求新的定时器中断，从而在该会话的剩余时间内破坏超时检测。这似乎过于脆弱，因此增加了一个恢复路径。</p>", "text": "使服务器在面对错过的定时器中断时更加健壮（Michael Harris，Tom Lane）§ v14 中添加的一项优化意味着，如果服务器进程以某种方式错过了定时器中断，它将永远不会再向内核请求新的定时器中断，从而在该会话的剩余时间内破坏超时检测。这似乎过于脆弱，因此增加了一个恢复路径。", "title": "使服务器在面对错过的定时器中断时更加健壮", "commits": ["2e211c166"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "4d9ddb5882fcef97db3f01acbbaae5f19a1bded3d7177a9cb4b7bbafde2b6a52", "section_path": ["变更"], "commit_groups": [["2e211c166", "d37776e45"]], "identity_text": "Make the server more robust against missed timer interrupts (Michael Harris, Tom Lane) An optimization added in v14 meant that if a server process somehow missed a timer interrupt, it would never again ask the kernel for another one, thus breaking timeout detection for the remainder of the session. This seems unduly fragile, so add a recovery path.", "commit_aliases": ["2e211c166", "d37776e45"], "source_commits": ["2e211c166"], "source_entry_id": "14.3/changes/033", "db_id": "7f095c555c7a93aded6f67faae468077", "patch_ids": ["092ea99c861a7deaced22f50b3679999"], "statement_hash": "389b581d6232a4e425e3088531ba996dc45da45275ec72a6764691fbb1ae594c", "relations": [], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-d861627a634d055a", "cves": [], "html": "<p>禁止在 PL/Perl 函数编译期间执行 SPI 函数（Tom Lane）<a href=\"https://postgr.es/c/ac910bb23\">§</a></p>\n<p>可以让 Perl 在 PL/Perl 函数编译期间执行用户定义的代码。但是，这类代码不应该尝试通过 SPI 调用 SQL 操作。那样做会导致崩溃，即使不崩溃也是一个安全隐患，因为我们确实不希望在函数验证期间执行代码。增加了一个检查以给出更友好的错误消息。</p>", "text": "禁止在 PL/Perl 函数编译期间执行 SPI 函数（Tom Lane）§ 可以让 Perl 在 PL/Perl 函数编译期间执行用户定义的代码。但是，这类代码不应该尝试通过 SPI 调用 SQL 操作。那样做会导致崩溃，即使不崩溃也是一个安全隐患，因为我们确实不希望在函数验证期间执行代码。增加了一个检查以给出更友好的错误消息。", "title": "禁止在 PL/Perl 函数编译期间执行 SPI 函数", "commits": ["ac910bb23"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "f9be92be28e20035d04df2fefae793e86d66423574df3f692729c1fa910b1623", "section_path": ["变更"], "commit_groups": [["0f7b62f29", "31befa6be", "4936747c4", "638300fef", "9b2d762a2", "ac910bb23"]], "identity_text": "Disallow execution of SPI functions during PL/Perl function compilation (Tom Lane) Perl can be convinced to execute user-defined code during compilation of a PL/Perl function. However, it's not okay for such code to try to invoke SQL operations via SPI. That results in a crash, and if it didn't crash it would be a security hazard, because we really don't want code execution during function validation. Put in a check to give a friendlier error message instead.", "commit_aliases": ["0f7b62f29", "31befa6be", "4936747c4", "638300fef", "9b2d762a2", "ac910bb23"], "source_commits": ["ac910bb23"], "source_entry_id": "14.3/changes/034", "db_id": "81e7823dbdbf09d737aff84f180d06e4", "patch_ids": ["2186991ab188d506d8112dda5b368d35"], "statement_hash": "b7ec6b2f1b4477fc029413efa316e769c6f2039060f1da925b6b8fd2b845aa38", "relations": [{"rule": 2, "type": "equivalent", "target": "1a769f4c529fcb545534198ce41903c3", "evidence": {"same_day": true, "patch_ids": ["2186991ab188d506d8112dda5b368d35"], "statement_hash": "b7ec6b2f1b4477fc029413efa316e769c6f2039060f1da925b6b8fd2b845aa38"}}, {"rule": 2, "type": "equivalent", "target": "66a04bbfc201325edeb1e8fe449982c6", "evidence": {"same_day": true, "patch_ids": ["2186991ab188d506d8112dda5b368d35"], "statement_hash": "b7ec6b2f1b4477fc029413efa316e769c6f2039060f1da925b6b8fd2b845aa38"}}, {"rule": 2, "type": "equivalent", "target": "708c5ef046b16665e0cf6c92805f5d03", "evidence": {"same_day": true, "patch_ids": ["2186991ab188d506d8112dda5b368d35"], "statement_hash": "b7ec6b2f1b4477fc029413efa316e769c6f2039060f1da925b6b8fd2b845aa38"}}, {"rule": 2, "type": "equivalent", "target": "9a37b80a76e4afc35be9feda8bc2f008", "evidence": {"same_day": true, "patch_ids": ["2186991ab188d506d8112dda5b368d35"], "statement_hash": "b7ec6b2f1b4477fc029413efa316e769c6f2039060f1da925b6b8fd2b845aa38"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1a769f4c529fcb545534198ce41903c3", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "禁止在 PL/Perl 函数编译期间执行 SPI 函数", "evidence": {"same_day": true, "patch_ids": ["2186991ab188d506d8112dda5b368d35"], "statement_hash": "b7ec6b2f1b4477fc029413efa316e769c6f2039060f1da925b6b8fd2b845aa38"}, "url": "/docs/compare/?release=13.7#13.7-0088434181bc2fc0", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "9a37b80a76e4afc35be9feda8bc2f008", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "禁止在 PL/Perl 函数编译期间执行 SPI 函数", "evidence": {"same_day": true, "patch_ids": ["2186991ab188d506d8112dda5b368d35"], "statement_hash": "b7ec6b2f1b4477fc029413efa316e769c6f2039060f1da925b6b8fd2b845aa38"}, "url": "/docs/compare/?release=12.11#12.11-819ab4d7947c42d8", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "66a04bbfc201325edeb1e8fe449982c6", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "禁止在 PL/Perl 函数编译期间执行 SPI 函数", "evidence": {"same_day": true, "patch_ids": ["2186991ab188d506d8112dda5b368d35"], "statement_hash": "b7ec6b2f1b4477fc029413efa316e769c6f2039060f1da925b6b8fd2b845aa38"}, "url": "/docs/compare/?release=11.16#11.16-20cc24a6196e88f8", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "708c5ef046b16665e0cf6c92805f5d03", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "禁止在 PL/Perl 函数编译期间执行 SPI 函数", "evidence": {"same_day": true, "patch_ids": ["2186991ab188d506d8112dda5b368d35"], "statement_hash": "b7ec6b2f1b4477fc029413efa316e769c6f2039060f1da925b6b8fd2b845aa38"}, "url": "/docs/compare/?release=10.21#10.21-20cc24a6196e88f8", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-4bc7b47733ef0ca8", "cves": [], "html": "<p>使 <span>libpq</span> 接受 root 拥有的 SSL 私钥文件（David Steele）<a href=\"https://postgr.es/c/2a1f84636\">§</a> <a href=\"https://postgr.es/c/402279afe\">§</a></p>\n<p>此变更使 <span>libpq</span> 对 SSL 密钥文件的安全所有权和权限规则与服务器自 9.6 版本以来使用的规则同步。即，在当前规则的基础上，还允许密钥文件由 root 拥有且权限为 <code>rw-r-----</code> 或更严格的情况。这对于密钥文件的系统级管理很有帮助。</p>", "text": "使 libpq 接受 root 拥有的 SSL 私钥文件（David Steele）§ § 此变更使 libpq 对 SSL 密钥文件的安全所有权和权限规则与服务器自 9.6 版本以来使用的规则同步。即，在当前规则的基础上，还允许密钥文件由 root 拥有且权限为 rw-r----- 或更严格的情况。这对于密钥文件的系统级管理很有帮助。", "title": "使 libpq 接受 root 拥有的 SSL 私钥文件", "commits": ["2a1f84636", "402279afe"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "3fb35eb85128ce90abe28f262f394b2482cea166525274e630898b044ff48ec3", "section_path": ["变更"], "commit_groups": [["143043191", "402279afe", "878e64d0f", "a6bd1f0ee", "fb1d7f451", "fcaf7d725"], ["2a1f84636", "5bb3d91ea", "6599d8f12", "72918ea86", "9050999ef"], ["50f03473e"], ["a59c79564"]], "identity_text": "Make libpq accept root-owned SSL private key files (David Steele) This change synchronizes libpq's rules for safe ownership and permissions of SSL key files with the rules the server has used since release 9.6. Namely, in addition to the current rules, allow the case where the key file is owned by root and has permissions rw-r----- or less. This is helpful for system-wide management of key files.", "commit_aliases": ["143043191", "2a1f84636", "402279afe", "50f03473e", "5bb3d91ea", "6599d8f12", "72918ea86", "878e64d0f", "9050999ef", "a59c79564", "a6bd1f0ee", "fb1d7f451", "fcaf7d725"], "source_commits": ["2a1f84636", "402279afe", "50f03473e", "a59c79564"], "source_entry_id": "14.3/changes/035", "db_id": "e027c8413edea6b94c95551d13a261d2", "patch_ids": ["5d05ee0842f79cbe3cfb9448688fb812", "68d311af4ee0c128c2582385b06ad7b9", "7a858a06ccfd41824b5d7ec039bb3595", "dc4641b31b9656a9152c8355c58af8df"], "statement_hash": "b507cd40632afc389ac978ecb04756fbab6daceddacee509046469d44d7ca7aa", "relations": [{"rule": 2, "type": "equivalent", "target": "40efbc1afccb6d2965c0a4782377380a", "evidence": {"same_day": true, "patch_ids": ["5d05ee0842f79cbe3cfb9448688fb812", "68d311af4ee0c128c2582385b06ad7b9", "7a858a06ccfd41824b5d7ec039bb3595", "dc4641b31b9656a9152c8355c58af8df"], "statement_hash": "b507cd40632afc389ac978ecb04756fbab6daceddacee509046469d44d7ca7aa"}}, {"rule": 2, "type": "equivalent", "target": "5b3dfc4baa8d9d9a88e4eeb631f14a6c", "evidence": {"same_day": true, "patch_ids": ["5d05ee0842f79cbe3cfb9448688fb812", "68d311af4ee0c128c2582385b06ad7b9", "7a858a06ccfd41824b5d7ec039bb3595", "dc4641b31b9656a9152c8355c58af8df"], "statement_hash": "b507cd40632afc389ac978ecb04756fbab6daceddacee509046469d44d7ca7aa"}}, {"rule": 2, "type": "equivalent", "target": "8f893be62e4b71ecdda4e240472971d4", "evidence": {"same_day": true, "patch_ids": ["5d05ee0842f79cbe3cfb9448688fb812", "68d311af4ee0c128c2582385b06ad7b9", "7a858a06ccfd41824b5d7ec039bb3595", "dc4641b31b9656a9152c8355c58af8df"], "statement_hash": "b507cd40632afc389ac978ecb04756fbab6daceddacee509046469d44d7ca7aa"}}, {"rule": 2, "type": "equivalent", "target": "d59b8f6bb4b86a6add76e3338d32c559", "evidence": {"same_day": true, "patch_ids": ["5d05ee0842f79cbe3cfb9448688fb812", "68d311af4ee0c128c2582385b06ad7b9", "7a858a06ccfd41824b5d7ec039bb3595", "dc4641b31b9656a9152c8355c58af8df"], "statement_hash": "b507cd40632afc389ac978ecb04756fbab6daceddacee509046469d44d7ca7aa"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5b3dfc4baa8d9d9a88e4eeb631f14a6c", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "使 libpq 接受 root 拥有的 SSL 私钥文件", "evidence": {"same_day": true, "patch_ids": ["5d05ee0842f79cbe3cfb9448688fb812", "68d311af4ee0c128c2582385b06ad7b9", "7a858a06ccfd41824b5d7ec039bb3595", "dc4641b31b9656a9152c8355c58af8df"], "statement_hash": "b507cd40632afc389ac978ecb04756fbab6daceddacee509046469d44d7ca7aa"}, "url": "/docs/compare/?release=13.7#13.7-297b099bb3862120", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "40efbc1afccb6d2965c0a4782377380a", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "使 libpq 接受 root 拥有的 SSL 私钥文件", "evidence": {"same_day": true, "patch_ids": ["5d05ee0842f79cbe3cfb9448688fb812", "68d311af4ee0c128c2582385b06ad7b9", "7a858a06ccfd41824b5d7ec039bb3595", "dc4641b31b9656a9152c8355c58af8df"], "statement_hash": "b507cd40632afc389ac978ecb04756fbab6daceddacee509046469d44d7ca7aa"}, "url": "/docs/compare/?release=12.11#12.11-dca1831c91e956a7", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "8f893be62e4b71ecdda4e240472971d4", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "使 libpq 接受 root 拥有的 SSL 私钥文件", "evidence": {"same_day": true, "patch_ids": ["5d05ee0842f79cbe3cfb9448688fb812", "68d311af4ee0c128c2582385b06ad7b9", "7a858a06ccfd41824b5d7ec039bb3595", "dc4641b31b9656a9152c8355c58af8df"], "statement_hash": "b507cd40632afc389ac978ecb04756fbab6daceddacee509046469d44d7ca7aa"}, "url": "/docs/compare/?release=11.16#11.16-bfde73d549cb6897", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "d59b8f6bb4b86a6add76e3338d32c559", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "使 libpq 接受 root 拥有的 SSL 私钥文件", "evidence": {"same_day": true, "patch_ids": ["5d05ee0842f79cbe3cfb9448688fb812", "68d311af4ee0c128c2582385b06ad7b9", "7a858a06ccfd41824b5d7ec039bb3595", "dc4641b31b9656a9152c8355c58af8df"], "statement_hash": "b507cd40632afc389ac978ecb04756fbab6daceddacee509046469d44d7ca7aa"}, "url": "/docs/compare/?release=10.21#10.21-bfde73d549cb6897", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-418c572ee4949b03", "cves": [], "html": "<p>修复 <span>libpq</span> 的 <code>PQisBusy()</code> 函数在连接失败后的行为（Tom Lane）<a href=\"https://postgr.es/c/ae27b1acc\">§</a></p>\n<p>如果检测到写入失败，<code>PQisBusy()</code> 总是返回 true，这是不正确的：我们希望输入处理继续正常进行，直到读取完服务器可用的所有内容。此错误的实际影响是，使用 <span>libpq</span> 异步查询 API 的应用程序通常只有在 <code>PQconsumeInput()</code> 返回硬失败时才能检测到连接丢失。通过此修复，连接丢失通常将通过错误 <code>PGresult</code> 对象报告，这对大多数应用程序来说是更清晰的行为。</p>", "text": "修复 libpq 的 PQisBusy() 函数在连接失败后的行为（Tom Lane）§ 如果检测到写入失败，PQisBusy() 总是返回 true，这是不正确的：我们希望输入处理继续正常进行，直到读取完服务器可用的所有内容。此错误的实际影响是，使用 libpq 异步查询 API 的应用程序通常只有在 PQconsumeInput() 返回硬失败时才能检测到连接丢失。通过此修复，连接丢失通常将通过错误 PGresult 对象报告，这对大多数应用程序来说是更清晰的行为。", "title": "修复 libpq 的 PQisBusy() 函数在连接失败后的行为", "commits": ["ae27b1acc"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "536886f9a175c3f9677ebab127535087718bbeec8b9789a98817f8af6a1e9b1e", "section_path": ["变更"], "commit_groups": [["335fa5a26", "51ee561f5", "ae27b1acc", "c9d35dc7f"]], "identity_text": "Fix behavior of libpq's PQisBusy() function after a connection failure (Tom Lane) If we'd detected a write failure, PQisBusy() would always return true, which is the wrong thing: we want input processing to carry on normally until we've read whatever is available from the server. The practical effect of this error is that applications using libpq's async-query API would typically detect connection loss only when PQconsumeInput() returns a hard failure. With this fix, a connection loss will normally be reported via an error PGresult object, which is a much cleaner behavior for most applications.", "commit_aliases": ["335fa5a26", "51ee561f5", "ae27b1acc", "c9d35dc7f"], "source_commits": ["ae27b1acc"], "source_entry_id": "14.3/changes/036", "db_id": "022b2116f45c97726ec90abee8dae1af", "patch_ids": ["5ac4a8bfc75e2f7d87015075cc2548b3"], "statement_hash": "4b8835958294f6659746862e3e8b10aa464dd75008fe6a3434bfc9f00ad65abf", "relations": [{"rule": 2, "type": "equivalent", "target": "8e084b4c05a2b12c332ad29db292a5a7", "evidence": {"same_day": true, "patch_ids": ["5ac4a8bfc75e2f7d87015075cc2548b3"], "statement_hash": "4b8835958294f6659746862e3e8b10aa464dd75008fe6a3434bfc9f00ad65abf"}}, {"rule": 2, "type": "equivalent", "target": "e7b981700d5e8dd671442064771b06e8", "evidence": {"same_day": true, "patch_ids": ["5ac4a8bfc75e2f7d87015075cc2548b3"], "statement_hash": "4b8835958294f6659746862e3e8b10aa464dd75008fe6a3434bfc9f00ad65abf"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8e084b4c05a2b12c332ad29db292a5a7", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复 libpq 的 PQisBusy() 函数在连接失败后的行为", "evidence": {"same_day": true, "patch_ids": ["5ac4a8bfc75e2f7d87015075cc2548b3"], "statement_hash": "4b8835958294f6659746862e3e8b10aa464dd75008fe6a3434bfc9f00ad65abf"}, "url": "/docs/compare/?release=13.7#13.7-82a8a572221d2d68", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "e7b981700d5e8dd671442064771b06e8", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复 libpq 的 PQisBusy() 函数在连接失败后的行为", "evidence": {"same_day": true, "patch_ids": ["5ac4a8bfc75e2f7d87015075cc2548b3"], "statement_hash": "4b8835958294f6659746862e3e8b10aa464dd75008fe6a3434bfc9f00ad65abf"}, "url": "/docs/compare/?release=12.11#12.11-ede91b669e542335", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}]}, {"id": "14.3-7fe3d1df5b201ba3", "cves": [], "html": "<p>重新允许在 <span>psql</span>、<span>pg_dump</span> 和 <span>pg_amcheck</span> 中使用 <em><code>database</code></em>.<em><code>schema</code></em>.<em><code>table</code></em> 模式（Mark Dilger）<a href=\"https://postgr.es/c/4a66300ac\">§</a> <a href=\"https://postgr.es/c/75a006bee\">§</a></p>\n<p>v14 之前的版本会静默忽略包含多个点号的模式中除 <em><code>schema</code></em> 和 <em><code>table</code></em> 之外的所有部分。v14 中的重构意外地破坏了该用法。现在恢复了该功能，但如果第一部分不是当前数据库的名称，则会报错。</p>", "text": "重新允许在 psql、pg_dump 和 pg_amcheck 中使用 database.schema.table 模式（Mark Dilger）§ § v14 之前的版本会静默忽略包含多个点号的模式中除 schema 和 table 之外的所有部分。v14 中的重构意外地破坏了该用法。现在恢复了该功能，但如果第一部分不是当前数据库的名称，则会报错。", "title": "重新允许在 psql、pg_dump 和 pg_amcheck 中使用 database.schema.table 模式", "commits": ["4a66300ac", "75a006bee"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "c7d92ccdd0e061b418f307ab2793ff6662e4f4aac0a3bc67710b3a81d5a013e6", "section_path": ["变更"], "commit_groups": [["4a66300ac", "d2d354797"], ["75a006bee", "a66e722cc"]], "identity_text": "Re-allow database.schema.table patterns in psql, pg_dump, and pg_amcheck (Mark Dilger) Versions before v14 silently ignored all but the schema and table fragments of a pattern containing more than one dot. Refactoring in v14 accidentally broke that use-case. Reinstate it, but now complain if the first fragment is not the name of the current database.", "commit_aliases": ["4a66300ac", "75a006bee", "a66e722cc", "d2d354797"], "source_commits": ["4a66300ac", "75a006bee"], "source_entry_id": "14.3/changes/037", "db_id": "c6e221aeb833ef9bbef1298f7d5d184a", "patch_ids": ["06023ae859dfab0cd4f53f017fd2c07e", "41185b572c059050d064cea7c2324bc2"], "statement_hash": "f1e78aebbd34139a78eea5f8e2a9bcf651f97a6295e40297f3d7cd0c92a2e30e", "relations": [], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-d026366bb6adde15", "cves": [], "html": "<p>使 <span>pg_ctl</span> 在等待停止/重启/提升操作时重新检查 postmaster 是否仍然存活（Tom Lane）<a href=\"https://postgr.es/c/1e8c5cf7c\">§</a></p>\n<p><span>pg_ctl</span> 会在发送停止或提升信号时作为副作用验证 postmaster 是否存活，但之后它只是简单地等待磁盘上的状态变化。如果 postmaster 非正常终止且未删除其 PID 文件或更新控制文件， <span>pg_ctl</span> 将一直等到超时。现在改为每隔一段时间重新检查 postmaster 进程是否仍然存在。</p>", "text": "使 pg_ctl 在等待停止/重启/提升操作时重新检查 postmaster 是否仍然存活（Tom Lane）§ pg_ctl 会在发送停止或提升信号时作为副作用验证 postmaster 是否存活，但之后它只是简单地等待磁盘上的状态变化。如果 postmaster 非正常终止且未删除其 PID 文件或更新控制文件， pg_ctl 将一直等到超时。现在改为每隔一段时间重新检查 postmaster 进程是否仍然存在。", "title": "使 pg_ctl 在等待停止/重启/提升操作时重新检查 postmaster 是否仍然存活", "commits": ["1e8c5cf7c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "c0682dc92f4b2368f548dc9754112ae1705af55bdd7d9c63ea157c185855f89e", "section_path": ["变更"], "commit_groups": [["1e8c5cf7c", "34523933b", "61c20a5ea", "69cc15c31", "a745b9365", "d0e1fd958"]], "identity_text": "Make pg_ctl recheck postmaster aliveness while waiting for stop/restart/promote actions (Tom Lane) pg_ctl would verify that the postmaster is alive as a side-effect of sending the stop or promote signal, but then it just naively waited to see the on-disk state change. If the postmaster died uncleanly without having removed its PID file or updated the control file, pg_ctl would wait until timeout. Instead make it recheck every so often that the postmaster process is still there.", "commit_aliases": ["1e8c5cf7c", "34523933b", "61c20a5ea", "69cc15c31", "a745b9365", "d0e1fd958"], "source_commits": ["1e8c5cf7c"], "source_entry_id": "14.3/changes/038", "db_id": "c7a94a5f0922f7af615dda1c9d643669", "patch_ids": ["0bb132275b9eba5fcdda1fbd544ef5e9"], "statement_hash": "2be54ada8e5bc704427ebc6389811723ded88977581679b61761d562f50240da", "relations": [{"rule": 2, "type": "equivalent", "target": "34e228fe7feaf05f81e9c42f38121b9d", "evidence": {"same_day": true, "patch_ids": ["0bb132275b9eba5fcdda1fbd544ef5e9"], "statement_hash": "2be54ada8e5bc704427ebc6389811723ded88977581679b61761d562f50240da"}}, {"rule": 2, "type": "equivalent", "target": "4dfa47cd00fd62c8e09003015eead70b", "evidence": {"same_day": true, "patch_ids": ["0bb132275b9eba5fcdda1fbd544ef5e9"], "statement_hash": "2be54ada8e5bc704427ebc6389811723ded88977581679b61761d562f50240da"}}, {"rule": 2, "type": "equivalent", "target": "90cf21300bd071aadc57d55aebd19b4c", "evidence": {"same_day": true, "patch_ids": ["0bb132275b9eba5fcdda1fbd544ef5e9"], "statement_hash": "2be54ada8e5bc704427ebc6389811723ded88977581679b61761d562f50240da"}}, {"rule": 2, "type": "equivalent", "target": "9bc45a590ac3fb2d68c48c532cc62b14", "evidence": {"same_day": true, "patch_ids": ["0bb132275b9eba5fcdda1fbd544ef5e9"], "statement_hash": "2be54ada8e5bc704427ebc6389811723ded88977581679b61761d562f50240da"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4dfa47cd00fd62c8e09003015eead70b", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "使 pg_ctl 在等待停止/重启/提升操作时重新检查 postmaster 是否仍然存活", "evidence": {"same_day": true, "patch_ids": ["0bb132275b9eba5fcdda1fbd544ef5e9"], "statement_hash": "2be54ada8e5bc704427ebc6389811723ded88977581679b61761d562f50240da"}, "url": "/docs/compare/?release=13.7#13.7-c4dcfd3502a7107a", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "9bc45a590ac3fb2d68c48c532cc62b14", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "使 pg_ctl 在等待停止/重启/提升操作时重新检查 postmaster 是否仍然存活", "evidence": {"same_day": true, "patch_ids": ["0bb132275b9eba5fcdda1fbd544ef5e9"], "statement_hash": "2be54ada8e5bc704427ebc6389811723ded88977581679b61761d562f50240da"}, "url": "/docs/compare/?release=12.11#12.11-57b7c908c94fa0ec", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "90cf21300bd071aadc57d55aebd19b4c", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "使 pg_ctl 在等待停止/重启/提升操作时重新检查 postmaster 是否仍然存活", "evidence": {"same_day": true, "patch_ids": ["0bb132275b9eba5fcdda1fbd544ef5e9"], "statement_hash": "2be54ada8e5bc704427ebc6389811723ded88977581679b61761d562f50240da"}, "url": "/docs/compare/?release=11.16#11.16-b0b2521e22265bc1", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "34e228fe7feaf05f81e9c42f38121b9d", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "使 pg_ctl 在等待停止/重启/提升操作时重新检查 postmaster 是否仍然存活", "evidence": {"same_day": true, "patch_ids": ["0bb132275b9eba5fcdda1fbd544ef5e9"], "statement_hash": "2be54ada8e5bc704427ebc6389811723ded88977581679b61761d562f50240da"}, "url": "/docs/compare/?release=10.21#10.21-b0b2521e22265bc1", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-d605260bcffbd76f", "cves": [], "html": "<p>修复 <span>pg_waldump</span> 中的错误处理（Kyotaro Horiguchi，Andres Freund）<a href=\"https://postgr.es/c/9ff7fd906\">§</a> <a href=\"https://postgr.es/c/6839aa7a6\">§</a></p>\n<p>在尝试读取 WAL 文件以确定 WAL 段大小时， <span>pg_waldump</span> 会为文件过短的情况报告不正确的错误。此外，此错误消息及相关错误消息中报告的文件名可能是垃圾值。</p>", "text": "修复 pg_waldump 中的错误处理（Kyotaro Horiguchi，Andres Freund）§ § 在尝试读取 WAL 文件以确定 WAL 段大小时， pg_waldump 会为文件过短的情况报告不正确的错误。此外，此错误消息及相关错误消息中报告的文件名可能是垃圾值。", "title": "修复 pg_waldump 中的错误处理", "commits": ["6839aa7a6", "9ff7fd906"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "a895e43efaf7d55350cf3ae0cb44a4eb054022621e9d4ce7878fb7821a370d5e", "section_path": ["变更"], "commit_groups": [["0b1020a96", "51c341656", "5407241a8", "9ff7fd906", "cd83cb953"], ["264d28492", "344d89abf", "5ebd262dc", "6839aa7a6", "7d935bdf7"]], "identity_text": "Fix error handling in pg_waldump (Kyotaro Horiguchi, Andres Freund) While trying to read a WAL file to determine the WAL segment size, pg_waldump would report an incorrect error for the case of a too-short file. In addition, the file name reported in this and related error messages could be garbage.", "commit_aliases": ["0b1020a96", "264d28492", "344d89abf", "51c341656", "5407241a8", "5ebd262dc", "6839aa7a6", "7d935bdf7", "9ff7fd906", "cd83cb953"], "source_commits": ["6839aa7a6", "9ff7fd906"], "source_entry_id": "14.3/changes/039", "db_id": "867f2d88d0460a093fd991b9ce78ed56", "patch_ids": ["095b1d385e0e0816c29d0898b5f49da3", "1065a2b8ff3c053438c283781c258fad"], "statement_hash": "1aa4730866ec2f79ebc8e6357544c58ea0603bed69bcd00ef417c5e93b08b413", "relations": [{"rule": 2, "type": "equivalent", "target": "719ec32d683fde3303b6e02d07e86839", "evidence": {"same_day": true, "patch_ids": ["095b1d385e0e0816c29d0898b5f49da3", "1065a2b8ff3c053438c283781c258fad"], "statement_hash": "1aa4730866ec2f79ebc8e6357544c58ea0603bed69bcd00ef417c5e93b08b413"}}, {"rule": 2, "type": "equivalent", "target": "8721860a4d9262ff26da7fd8e4d4fa59", "evidence": {"same_day": true, "patch_ids": ["095b1d385e0e0816c29d0898b5f49da3", "1065a2b8ff3c053438c283781c258fad"], "statement_hash": "1aa4730866ec2f79ebc8e6357544c58ea0603bed69bcd00ef417c5e93b08b413"}}, {"rule": 2, "type": "equivalent", "target": "f4eb8320018c5e6ac1be52a5970e77d6", "evidence": {"same_day": true, "patch_ids": ["095b1d385e0e0816c29d0898b5f49da3", "1065a2b8ff3c053438c283781c258fad"], "statement_hash": "1aa4730866ec2f79ebc8e6357544c58ea0603bed69bcd00ef417c5e93b08b413"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f4eb8320018c5e6ac1be52a5970e77d6", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复 pg_waldump 中的错误处理", "evidence": {"same_day": true, "patch_ids": ["095b1d385e0e0816c29d0898b5f49da3", "1065a2b8ff3c053438c283781c258fad"], "statement_hash": "1aa4730866ec2f79ebc8e6357544c58ea0603bed69bcd00ef417c5e93b08b413"}, "url": "/docs/compare/?release=13.7#13.7-014395f2752bce59", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "719ec32d683fde3303b6e02d07e86839", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复 pg_waldump 中的错误处理", "evidence": {"same_day": true, "patch_ids": ["095b1d385e0e0816c29d0898b5f49da3", "1065a2b8ff3c053438c283781c258fad"], "statement_hash": "1aa4730866ec2f79ebc8e6357544c58ea0603bed69bcd00ef417c5e93b08b413"}, "url": "/docs/compare/?release=12.11#12.11-5b5a77dca7d6b9d9", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "8721860a4d9262ff26da7fd8e4d4fa59", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复 pg_waldump 中的错误处理", "evidence": {"same_day": true, "patch_ids": ["095b1d385e0e0816c29d0898b5f49da3", "1065a2b8ff3c053438c283781c258fad"], "statement_hash": "1aa4730866ec2f79ebc8e6357544c58ea0603bed69bcd00ef417c5e93b08b413"}, "url": "/docs/compare/?release=11.16#11.16-3850ecb7eb9020e4", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}]}, {"id": "14.3-73e8847f0bbbd8ec", "cves": [], "html": "<p>确保 <code>contrib/pageinspect</code> 函数能够处理全零页面（Michael Paquier）<a href=\"https://postgr.es/c/df6bbe73b\">§</a></p>\n<p>这是一个合理的边界情况，但该模块大多未做准备。安排返回 null 或不返回行，视情况而定；这比抛出错误更有用。</p>", "text": "确保 contrib/pageinspect 函数能够处理全零页面（Michael Paquier）§ 这是一个合理的边界情况，但该模块大多未做准备。安排返回 null 或不返回行，视情况而定；这比抛出错误更有用。", "title": "确保 contrib/pageinspect 函数能够处理全零页面", "commits": ["df6bbe73b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "bf31c0addee22197eaefa161c6ba0c0de496e4933f388fbe6c42c4ac7dd2efcb", "section_path": ["变更"], "commit_groups": [["12d32b7bc", "2275d044d", "5378d55cb", "79fed072b", "cd4868a57", "df6bbe73b"]], "identity_text": "Ensure that contrib/pageinspect functions cope with all-zero pages (Michael Paquier) This is a legitimate edge case, but the module was mostly unprepared for it. Arrange to return nulls, or no rows, as appropriate; that seems more useful than raising an error.", "commit_aliases": ["12d32b7bc", "2275d044d", "5378d55cb", "79fed072b", "cd4868a57", "df6bbe73b"], "source_commits": ["df6bbe73b"], "source_entry_id": "14.3/changes/040", "db_id": "6191ffd8e15d53d8989da3a4601b97f4", "patch_ids": ["8ab33d6259c498b53cea69b3ebad4f8b"], "statement_hash": "08ccc5cbe2611baffc6749b8e9ccc5b5ffbaf7dae210a0d3e944e42fd5a39c14", "relations": [{"rule": 2, "type": "equivalent", "target": "ac629facc0ab6d2ce561818a9622e876", "evidence": {"same_day": true, "patch_ids": ["8ab33d6259c498b53cea69b3ebad4f8b"], "statement_hash": "08ccc5cbe2611baffc6749b8e9ccc5b5ffbaf7dae210a0d3e944e42fd5a39c14"}}, {"rule": 2, "type": "equivalent", "target": "bfe0b6dd19d5cc9a5935136923c14453", "evidence": {"same_day": true, "patch_ids": ["8ab33d6259c498b53cea69b3ebad4f8b"], "statement_hash": "08ccc5cbe2611baffc6749b8e9ccc5b5ffbaf7dae210a0d3e944e42fd5a39c14"}}, {"rule": 2, "type": "equivalent", "target": "e551302d98b39d821362609674fcc686", "evidence": {"same_day": true, "patch_ids": ["8ab33d6259c498b53cea69b3ebad4f8b"], "statement_hash": "08ccc5cbe2611baffc6749b8e9ccc5b5ffbaf7dae210a0d3e944e42fd5a39c14"}}, {"rule": 2, "type": "equivalent", "target": "fa0abcafe43664b59c9c2d2232e9842f", "evidence": {"same_day": true, "patch_ids": ["8ab33d6259c498b53cea69b3ebad4f8b"], "statement_hash": "08ccc5cbe2611baffc6749b8e9ccc5b5ffbaf7dae210a0d3e944e42fd5a39c14"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bfe0b6dd19d5cc9a5935136923c14453", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "确保 contrib/pageinspect 函数能够处理全零页面", "evidence": {"same_day": true, "patch_ids": ["8ab33d6259c498b53cea69b3ebad4f8b"], "statement_hash": "08ccc5cbe2611baffc6749b8e9ccc5b5ffbaf7dae210a0d3e944e42fd5a39c14"}, "url": "/docs/compare/?release=13.7#13.7-6a5b3a08c8e30123", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "ac629facc0ab6d2ce561818a9622e876", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "确保 contrib/pageinspect 函数能够处理全零页面", "evidence": {"same_day": true, "patch_ids": ["8ab33d6259c498b53cea69b3ebad4f8b"], "statement_hash": "08ccc5cbe2611baffc6749b8e9ccc5b5ffbaf7dae210a0d3e944e42fd5a39c14"}, "url": "/docs/compare/?release=12.11#12.11-7ceeb7a6a550aad4", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "fa0abcafe43664b59c9c2d2232e9842f", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "确保 contrib/pageinspect 函数能够处理全零页面", "evidence": {"same_day": true, "patch_ids": ["8ab33d6259c498b53cea69b3ebad4f8b"], "statement_hash": "08ccc5cbe2611baffc6749b8e9ccc5b5ffbaf7dae210a0d3e944e42fd5a39c14"}, "url": "/docs/compare/?release=11.16#11.16-0aee1aa24169d35b", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "e551302d98b39d821362609674fcc686", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "确保 contrib/pageinspect 函数能够处理全零页面", "evidence": {"same_day": true, "patch_ids": ["8ab33d6259c498b53cea69b3ebad4f8b"], "statement_hash": "08ccc5cbe2611baffc6749b8e9ccc5b5ffbaf7dae210a0d3e944e42fd5a39c14"}, "url": "/docs/compare/?release=10.21#10.21-0aee1aa24169d35b", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-3c9236b5f498c8a3", "cves": [], "html": "<p>在 <code>contrib/pageinspect</code> 中，增加对不正确页面<span>“<span>特殊空间</span>”</span>内容的防御，收紧对正确页面大小的检查，并增加一些缺失的索引类型正确性检查（Michael Paquier，Justin Pryzby，Julien Rouhaud）<a href=\"https://postgr.es/c/27d384441\">§</a> <a href=\"https://postgr.es/c/b61e6214c\">§</a> <a href=\"https://postgr.es/c/dc5b3bdae\">§</a></p>\n<p>这些变更减少了该模块在处理错误数据时崩溃的可能性。</p>", "text": "在 contrib/pageinspect 中，增加对不正确页面“特殊空间”内容的防御，收紧对正确页面大小的检查，并增加一些缺失的索引类型正确性检查（Michael Paquier，Justin Pryzby，Julien Rouhaud）§ § § 这些变更减少了该模块在处理错误数据时崩溃的可能性。", "title": "在 contrib/pageinspect 中，增加对不正确页面“特殊空间”内容的防御，收紧对正确页面大小的检查，并增加一些缺失的索引类型正确性检查", "commits": ["27d384441", "b61e6214c", "dc5b3bdae"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "e807ee7a60d6a2e31112c4076a49280170cdccd42c8d9508c68df622484bff18", "section_path": ["变更"], "commit_groups": [["028a3c6b1", "07e343513", "09c97746d", "4477dcb20", "5cb770210", "dc5b3bdae"], ["076f4d953", "2389ee8dd", "af8a8eb54", "b61e6214c", "c42b88932", "d3a9b83c3"], ["1a2fdf86a", "27d384441", "291e517a4", "3d4d6dee0", "5ca2aa2f2", "ab80b0fbb"]], "identity_text": "In contrib/pageinspect, add defenses against incorrect page special space contents, tighten checks for correct page size, and add some missing checks that an index is of the expected type (Michael Paquier, Justin Pryzby, Julien Rouhaud) These changes make it less likely that the module will crash on bad data.", "commit_aliases": ["028a3c6b1", "076f4d953", "07e343513", "09c97746d", "1a2fdf86a", "2389ee8dd", "27d384441", "291e517a4", "3d4d6dee0", "4477dcb20", "5ca2aa2f2", "5cb770210", "ab80b0fbb", "af8a8eb54", "b61e6214c", "c42b88932", "d3a9b83c3", "dc5b3bdae"], "source_commits": ["27d384441", "b61e6214c", "dc5b3bdae"], "source_entry_id": "14.3/changes/041", "db_id": "060ab6b486e576912a33b8a5be3d7986", "patch_ids": ["855b42a8ad9959693aceacf1b2362adc", "8da000940707720fb4b10a212601a0ba", "9ca66143dff59768c448fa29d63f61b8"], "statement_hash": "cf0bdd9de5ad84c3863df965f58afa5ab618fd97a1fcb6164b363778ddf70aa1", "relations": [{"rule": 2, "type": "equivalent", "target": "098e6bf95bd71cfb98640d7744439858", "evidence": {"same_day": true, "patch_ids": ["855b42a8ad9959693aceacf1b2362adc", "8da000940707720fb4b10a212601a0ba", "9ca66143dff59768c448fa29d63f61b8"], "statement_hash": "cf0bdd9de5ad84c3863df965f58afa5ab618fd97a1fcb6164b363778ddf70aa1"}}, {"rule": 2, "type": "equivalent", "target": "b78c4305db7549066a102a9ff77dc776", "evidence": {"same_day": true, "patch_ids": ["855b42a8ad9959693aceacf1b2362adc", "8da000940707720fb4b10a212601a0ba", "9ca66143dff59768c448fa29d63f61b8"], "statement_hash": "cf0bdd9de5ad84c3863df965f58afa5ab618fd97a1fcb6164b363778ddf70aa1"}}, {"rule": 2, "type": "equivalent", "target": "dde9027e9aa0573fa1221a6edbd691cb", "evidence": {"same_day": true, "patch_ids": ["855b42a8ad9959693aceacf1b2362adc", "8da000940707720fb4b10a212601a0ba", "9ca66143dff59768c448fa29d63f61b8"], "statement_hash": "cf0bdd9de5ad84c3863df965f58afa5ab618fd97a1fcb6164b363778ddf70aa1"}}, {"rule": 2, "type": "equivalent", "target": "f3ec0de8907ed8bd48aa2e24d2ff9051", "evidence": {"same_day": true, "patch_ids": ["855b42a8ad9959693aceacf1b2362adc", "8da000940707720fb4b10a212601a0ba", "9ca66143dff59768c448fa29d63f61b8"], "statement_hash": "cf0bdd9de5ad84c3863df965f58afa5ab618fd97a1fcb6164b363778ddf70aa1"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f3ec0de8907ed8bd48aa2e24d2ff9051", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "在 contrib/pageinspect 中，增加对不正确页面“特殊空间”内容的防御，收紧对正确页面大小的检查，并增加一些缺失的索引类型正确性检查", "evidence": {"same_day": true, "patch_ids": ["855b42a8ad9959693aceacf1b2362adc", "8da000940707720fb4b10a212601a0ba", "9ca66143dff59768c448fa29d63f61b8"], "statement_hash": "cf0bdd9de5ad84c3863df965f58afa5ab618fd97a1fcb6164b363778ddf70aa1"}, "url": "/docs/compare/?release=13.7#13.7-f0da7fa66068ee81", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "dde9027e9aa0573fa1221a6edbd691cb", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "在 contrib/pageinspect 中，增加对不正确页面“特殊空间”内容的防御，收紧对正确页面大小的检查，并增加一些缺失的索引类型正确性检查", "evidence": {"same_day": true, "patch_ids": ["855b42a8ad9959693aceacf1b2362adc", "8da000940707720fb4b10a212601a0ba", "9ca66143dff59768c448fa29d63f61b8"], "statement_hash": "cf0bdd9de5ad84c3863df965f58afa5ab618fd97a1fcb6164b363778ddf70aa1"}, "url": "/docs/compare/?release=12.11#12.11-517cbd25e017e26a", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "098e6bf95bd71cfb98640d7744439858", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "在 contrib/pageinspect 中，增加对不正确页面“特殊空间”内容的防御，收紧对正确页面大小的检查，并增加一些缺失的索引类型正确性检查", "evidence": {"same_day": true, "patch_ids": ["855b42a8ad9959693aceacf1b2362adc", "8da000940707720fb4b10a212601a0ba", "9ca66143dff59768c448fa29d63f61b8"], "statement_hash": "cf0bdd9de5ad84c3863df965f58afa5ab618fd97a1fcb6164b363778ddf70aa1"}, "url": "/docs/compare/?release=11.16#11.16-d95c03b3654d08f6", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "b78c4305db7549066a102a9ff77dc776", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "在 contrib/pageinspect 中，增加对不正确页面“特殊空间”内容的防御，收紧对正确页面大小的检查，并增加一些缺失的索引类型正确性检查", "evidence": {"same_day": true, "patch_ids": ["855b42a8ad9959693aceacf1b2362adc", "8da000940707720fb4b10a212601a0ba", "9ca66143dff59768c448fa29d63f61b8"], "statement_hash": "cf0bdd9de5ad84c3863df965f58afa5ab618fd97a1fcb6164b363778ddf70aa1"}, "url": "/docs/compare/?release=10.21#10.21-d95c03b3654d08f6", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-8d45436c5f80584a", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，当外部表上存在 <code>BEFORE INSERT ... FOR EACH ROW</code> 触发器时禁用批量插入（Etsuro Fujita）<a href=\"https://postgr.es/c/89d349b0a\">§</a></p>\n<p>这样的触发器可能会查询它所在的表，并期望看到之前插入的行。在批量插入时，这些行可能还不可见，因此禁用该功能以避免意外行为。</p>", "text": "在 contrib/postgres_fdw 中，当外部表上存在 BEFORE INSERT ... FOR EACH ROW 触发器时禁用批量插入（Etsuro Fujita）§ 这样的触发器可能会查询它所在的表，并期望看到之前插入的行。在批量插入时，这些行可能还不可见，因此禁用该功能以避免意外行为。", "title": "在 contrib/postgres_fdw 中，当外部表上存在 BEFORE INSERT ... FOR EACH ROW 触发器时禁用批量插入", "commits": ["89d349b0a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "2cb54e510355b744d8b8b91fdee33945cd559eff395e15f7656e13e30fd69926", "section_path": ["变更"], "commit_groups": [["4eea2202b", "89d349b0a"]], "identity_text": "In contrib/postgres_fdw, disable batch insertion when BEFORE INSERT ... FOR EACH ROW triggers exist on the foreign table (Etsuro Fujita) Such a trigger might query the table it's on and expect to see previously-inserted rows. With batch insertion, those rows might not be visible yet, so disable the feature to avoid unexpected behavior.", "commit_aliases": ["4eea2202b", "89d349b0a"], "source_commits": ["89d349b0a"], "source_entry_id": "14.3/changes/042", "db_id": "94d788068b28bb7930b4403bf603ac95", "patch_ids": ["be11498beaa85bb8822c3a5392f6fbb5"], "statement_hash": "4944aa3985ada1c83c4441fce8db8600eb2b0bb85be308a53efc35446c0a7ee3", "relations": [], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-b9c8663e58947d88", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，在请求远程排序查询之前验证 <code>ORDER BY</code> 子句是否可以安全传送，并在必要时包含 <code>USING</code> 子句（Ronan Dunklau）<a href=\"https://postgr.es/c/9f9489aa2\">§</a></p>\n<p>此修复防止了远程服务器可能按与我们意图不同的顺序排序的情况。虽然有时这只是表面问题，但如果远程数据被用作本地执行的合并连接的输入，则可能产生完全错误的结果。</p>", "text": "在 contrib/postgres_fdw 中，在请求远程排序查询之前验证 ORDER BY 子句是否可以安全传送，并在必要时包含 USING 子句（Ronan Dunklau）§ 此修复防止了远程服务器可能按与我们意图不同的顺序排序的情况。虽然有时这只是表面问题，但如果远程数据被用作本地执行的合并连接的输入，则可能产生完全错误的结果。", "title": "在 contrib/postgres_fdw 中，在请求远程排序查询之前验证 ORDER BY 子句是否可以安全传送，并在必要时包含 USING 子句", "commits": ["9f9489aa2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "11f30db7da0169919016c1bc0c3d4b1e08f4abcac178cf28fb4956703ec13734", "section_path": ["变更"], "commit_groups": [["728fc0f9a", "79df1d20c", "989d3e4a2", "9f9489aa2", "b9eb0412f", "f3dd9fe1d"]], "identity_text": "In contrib/postgres_fdw, verify that ORDER BY clauses are safe to ship before requesting a remotely-ordered query, and include a USING clause if necessary (Ronan Dunklau) This fix prevents situations where the remote server might sort in a different order than we intend. While sometimes that would be only cosmetic, it could produce thoroughly wrong results if the remote data is used as input for a locally-performed merge join.", "commit_aliases": ["728fc0f9a", "79df1d20c", "989d3e4a2", "9f9489aa2", "b9eb0412f", "f3dd9fe1d"], "source_commits": ["9f9489aa2"], "source_entry_id": "14.3/changes/043", "db_id": "0a310b1d6edafdd573a1fa8c9864b4fc", "patch_ids": ["c602880703239f008be80868c7e5e14b"], "statement_hash": "e04a05f9174546572536f14d030fc54061c8ef18b84c673e9796dbfbda598b6f", "relations": [{"rule": 2, "type": "equivalent", "target": "3a5681320ca0fff47d6360af1bffaa6b", "evidence": {"same_day": true, "patch_ids": ["c602880703239f008be80868c7e5e14b"], "statement_hash": "e04a05f9174546572536f14d030fc54061c8ef18b84c673e9796dbfbda598b6f"}}, {"rule": 2, "type": "equivalent", "target": "4d12d497d451885c60889308c95c0823", "evidence": {"same_day": true, "patch_ids": ["c602880703239f008be80868c7e5e14b"], "statement_hash": "e04a05f9174546572536f14d030fc54061c8ef18b84c673e9796dbfbda598b6f"}}, {"rule": 2, "type": "equivalent", "target": "b840abba475c1568c0a88b3a8610386f", "evidence": {"same_day": true, "patch_ids": ["c602880703239f008be80868c7e5e14b"], "statement_hash": "e04a05f9174546572536f14d030fc54061c8ef18b84c673e9796dbfbda598b6f"}}, {"rule": 2, "type": "equivalent", "target": "eaca980b6aa1c3fc4733353accc0ad86", "evidence": {"same_day": true, "patch_ids": ["c602880703239f008be80868c7e5e14b"], "statement_hash": "e04a05f9174546572536f14d030fc54061c8ef18b84c673e9796dbfbda598b6f"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4d12d497d451885c60889308c95c0823", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "在 contrib/postgres_fdw 中，在请求远程排序查询之前验证 ORDER BY 子句是否可以安全传送，并在必要时包含 USING 子句", "evidence": {"same_day": true, "patch_ids": ["c602880703239f008be80868c7e5e14b"], "statement_hash": "e04a05f9174546572536f14d030fc54061c8ef18b84c673e9796dbfbda598b6f"}, "url": "/docs/compare/?release=13.7#13.7-37691f3afe89cc39", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "b840abba475c1568c0a88b3a8610386f", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "在 contrib/postgres_fdw 中，在请求远程排序查询之前验证 ORDER BY 子句是否可以安全传送，并在必要时包含 USING 子句", "evidence": {"same_day": true, "patch_ids": ["c602880703239f008be80868c7e5e14b"], "statement_hash": "e04a05f9174546572536f14d030fc54061c8ef18b84c673e9796dbfbda598b6f"}, "url": "/docs/compare/?release=12.11#12.11-cca701d7ed235a61", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "3a5681320ca0fff47d6360af1bffaa6b", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "在 contrib/postgres_fdw 中，在请求远程排序查询之前验证 ORDER BY 子句是否可以安全传送，并在必要时包含 USING 子句", "evidence": {"same_day": true, "patch_ids": ["c602880703239f008be80868c7e5e14b"], "statement_hash": "e04a05f9174546572536f14d030fc54061c8ef18b84c673e9796dbfbda598b6f"}, "url": "/docs/compare/?release=11.16#11.16-c0f49ecd4f77bed1", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "eaca980b6aa1c3fc4733353accc0ad86", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "在 contrib/postgres_fdw 中，在请求远程排序查询之前验证 ORDER BY 子句是否可以安全传送，并在必要时包含 USING 子句", "evidence": {"same_day": true, "patch_ids": ["c602880703239f008be80868c7e5e14b"], "statement_hash": "e04a05f9174546572536f14d030fc54061c8ef18b84c673e9796dbfbda598b6f"}, "url": "/docs/compare/?release=10.21#10.21-c0f49ecd4f77bed1", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-859c16fd0edf11f8", "cves": [], "html": "<p>修复 <span>configure</span> 以处理具有 <code>sys/epoll.h</code> 但没有 <code>sys/signalfd.h</code> 的平台（Tom Lane）<a href=\"https://postgr.es/c/c23461a22\">§</a></p>", "text": "修复 configure 以处理具有 sys/epoll.h 但没有 sys/signalfd.h 的平台（Tom Lane）§", "title": "修复 configure 以处理具有 sys/epoll.h 但没有 sys/signalfd.h 的平台", "commits": ["c23461a22"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "58794135c020fcfab55306ab12459790915287a8af25eb57e81fd1eefa231b26", "section_path": ["变更"], "commit_groups": [["c23461a22", "c5f5b4dd4"]], "identity_text": "Fix configure to handle platforms that have sys/epoll.h but not sys/signalfd.h (Tom Lane)", "commit_aliases": ["c23461a22", "c5f5b4dd4"], "source_commits": ["c23461a22"], "source_entry_id": "14.3/changes/044", "db_id": "5e11a39ec78186a835f3a38191f5ec61", "patch_ids": ["aaf0592c758c60364c0b5f8f67a53493"], "statement_hash": "4bc4905ae3a9857c9559ec2e280c3d53c5c4db8b67265a7238f8e87b908402f8", "relations": [], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-47a72e7b39c3bb96", "cves": [], "html": "<p>更新 <acronym>JIT</acronym> 代码以支持 LLVM 14（Thomas Munro）<a href=\"https://postgr.es/c/d9f7ad54e\">§</a></p>", "text": "更新 JIT 代码以支持 LLVM 14（Thomas Munro）§", "title": "更新 JIT 代码以支持 LLVM 14", "commits": ["d9f7ad54e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "a136aa70cbec98f36476720c3c25cb1e2262c64827985f244dba2182a859cc84", "section_path": ["变更"], "commit_groups": [["45a469eb2", "5610411ac", "986d24042", "d9f7ad54e"], ["807fee1a3"], ["a56e7b660"], ["e6a760020"]], "identity_text": "Update JIT code to work with LLVM 14 (Thomas Munro)", "commit_aliases": ["45a469eb2", "5610411ac", "807fee1a3", "986d24042", "a56e7b660", "d9f7ad54e", "e6a760020"], "source_commits": ["807fee1a3", "a56e7b660", "d9f7ad54e", "e6a760020"], "source_entry_id": "14.3/changes/045", "db_id": "6dbca2ccbeb3d820e4f3c61ff3127fbf", "patch_ids": ["2bfa44b3cc8e5dd9ebcd44dd6ad7329f", "bbf5e53e6f226749d3a8e07211bb1f80", "ce2e178820b06375db5e23d8738920ac", "fb4f51c19adfa0e5c36b68d562bd59b9"], "statement_hash": "8fa29fee1dffd922edb7b94688ad3332eae78aa2483f617577894d9e7b61f0fd", "relations": [{"rule": 2, "type": "equivalent", "target": "9bc3515338a3cb1c7cb330415a6fd1b7", "evidence": {"same_day": true, "patch_ids": ["2bfa44b3cc8e5dd9ebcd44dd6ad7329f", "bbf5e53e6f226749d3a8e07211bb1f80", "ce2e178820b06375db5e23d8738920ac", "fb4f51c19adfa0e5c36b68d562bd59b9"], "statement_hash": "8fa29fee1dffd922edb7b94688ad3332eae78aa2483f617577894d9e7b61f0fd"}}, {"rule": 2, "type": "equivalent", "target": "9cad89e55bd9cb67c762c6445ec42106", "evidence": {"same_day": true, "patch_ids": ["2bfa44b3cc8e5dd9ebcd44dd6ad7329f", "bbf5e53e6f226749d3a8e07211bb1f80", "ce2e178820b06375db5e23d8738920ac", "fb4f51c19adfa0e5c36b68d562bd59b9"], "statement_hash": "8fa29fee1dffd922edb7b94688ad3332eae78aa2483f617577894d9e7b61f0fd"}}, {"rule": 2, "type": "equivalent", "target": "bbc59affca8ba7468f63e5c50e11ac84", "evidence": {"same_day": true, "patch_ids": ["2bfa44b3cc8e5dd9ebcd44dd6ad7329f", "bbf5e53e6f226749d3a8e07211bb1f80", "ce2e178820b06375db5e23d8738920ac", "fb4f51c19adfa0e5c36b68d562bd59b9"], "statement_hash": "8fa29fee1dffd922edb7b94688ad3332eae78aa2483f617577894d9e7b61f0fd"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9bc3515338a3cb1c7cb330415a6fd1b7", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "更新 JIT 代码以支持 LLVM 14", "evidence": {"same_day": true, "patch_ids": ["2bfa44b3cc8e5dd9ebcd44dd6ad7329f", "bbf5e53e6f226749d3a8e07211bb1f80", "ce2e178820b06375db5e23d8738920ac", "fb4f51c19adfa0e5c36b68d562bd59b9"], "statement_hash": "8fa29fee1dffd922edb7b94688ad3332eae78aa2483f617577894d9e7b61f0fd"}, "url": "/docs/compare/?release=13.7#13.7-c2d663cf361b5759", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "bbc59affca8ba7468f63e5c50e11ac84", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "更新 JIT 代码以支持 LLVM 14", "evidence": {"same_day": true, "patch_ids": ["2bfa44b3cc8e5dd9ebcd44dd6ad7329f", "bbf5e53e6f226749d3a8e07211bb1f80", "ce2e178820b06375db5e23d8738920ac", "fb4f51c19adfa0e5c36b68d562bd59b9"], "statement_hash": "8fa29fee1dffd922edb7b94688ad3332eae78aa2483f617577894d9e7b61f0fd"}, "url": "/docs/compare/?release=12.11#12.11-122fe568dd4607b1", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "9cad89e55bd9cb67c762c6445ec42106", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "更新 JIT 代码以支持 LLVM 14", "evidence": {"same_day": true, "patch_ids": ["2bfa44b3cc8e5dd9ebcd44dd6ad7329f", "bbf5e53e6f226749d3a8e07211bb1f80", "ce2e178820b06375db5e23d8738920ac", "fb4f51c19adfa0e5c36b68d562bd59b9"], "statement_hash": "8fa29fee1dffd922edb7b94688ad3332eae78aa2483f617577894d9e7b61f0fd"}, "url": "/docs/compare/?release=11.16#11.16-c9ead05878eb77db", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}]}, {"id": "14.3-cc9c7d2bfe015357", "cves": [], "html": "<p>清理在 <span>clang</span> 的 <code>-fsanitize=undefined</code> 检查下出现的各种失败（Tom Lane，Andres Freund，Zhihong Yu）<a href=\"https://postgr.es/c/b0bc196e5\">§</a> <a href=\"https://postgr.es/c/5c9d17e94\">§</a> <a href=\"https://postgr.es/c/81045e1e1\">§</a> <a href=\"https://postgr.es/c/89a94c24a\">§</a> <a href=\"https://postgr.es/c/e52e9bd57\">§</a></p>\n<p>这些变更大多只是为了形式上符合 C 和 POSIX 标准的字面要求，不太可能对生产构建产生任何影响。</p>", "text": "清理在 clang 的 -fsanitize=undefined 检查下出现的各种失败（Tom Lane，Andres Freund，Zhihong Yu）§ § § § § 这些变更大多只是为了形式上符合 C 和 POSIX 标准的字面要求，不太可能对生产构建产生任何影响。", "title": "清理在 clang 的 -fsanitize=undefined 检查下出现的各种失败", "commits": ["5c9d17e94", "81045e1e1", "89a94c24a", "b0bc196e5", "e52e9bd57"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "dd9e795afe6d737479efeee227a17095d0bf15caa5b8d9ede1336b08a0aa9bc6", "section_path": ["变更"], "commit_groups": [["0fbdfaf79", "18c04d157", "4b0696b36", "566e1c04d", "5c9d17e94", "97031f440"], ["1a027e6b7", "46ab07ffd", "b0bc196e5", "cfbe87bd6", "f2087e26e", "f727b6ea8"], ["1c6bb380e", "2121d5809", "5f4615b9d", "8014c61eb", "89a94c24a", "c5b60a68c"], ["2a9193726", "6a767bc2e", "7c163aa93", "a77dddb42", "e52e9bd57", "e71c76fca"], ["3ac7d0241", "61a007fee", "81045e1e1", "c0f99bb52"]], "identity_text": "Clean up assorted failures under clang's -fsanitize=undefined checks (Tom Lane, Andres Freund, Zhihong Yu) Most of these changes are just for pro-forma compliance with the letter of the C and POSIX standards, and are unlikely to have any effect on production builds.", "commit_aliases": ["0fbdfaf79", "18c04d157", "1a027e6b7", "1c6bb380e", "2121d5809", "2a9193726", "3ac7d0241", "46ab07ffd", "4b0696b36", "566e1c04d", "5c9d17e94", "5f4615b9d", "61a007fee", "6a767bc2e", "7c163aa93", "8014c61eb", "81045e1e1", "89a94c24a", "97031f440", "a77dddb42", "b0bc196e5", "c0f99bb52", "c5b60a68c", "cfbe87bd6", "e52e9bd57", "e71c76fca", "f2087e26e", "f727b6ea8"], "source_commits": ["5c9d17e94", "81045e1e1", "89a94c24a", "b0bc196e5", "e52e9bd57"], "source_entry_id": "14.3/changes/046", "db_id": "1ba55827f92e2c6ea9cfec3ca73ab12e", "patch_ids": ["0dd69d275262fc3d302f27360b63a26c", "514b7f83036bed711e93847ee1c74e69", "a5d5c23b7c291f9aca560a4677539954", "d652e4a690a1042c68db92842349e02a", "e1ef61bbc9a0f163bdf871952d35854e"], "statement_hash": "3063fef579ae04837c00c7570d88dad4b63ae2ff5269f5125c2da91f1ac70942", "relations": [{"rule": 2, "type": "equivalent", "target": "353fc8fa668aded1c66902f54af68647", "evidence": {"same_day": true, "patch_ids": ["0dd69d275262fc3d302f27360b63a26c", "514b7f83036bed711e93847ee1c74e69", "a5d5c23b7c291f9aca560a4677539954", "d652e4a690a1042c68db92842349e02a", "e1ef61bbc9a0f163bdf871952d35854e"], "statement_hash": "3063fef579ae04837c00c7570d88dad4b63ae2ff5269f5125c2da91f1ac70942"}}, {"rule": 2, "type": "equivalent", "target": "a0790335ab7f1b0c63f65ceb5ab63a5c", "evidence": {"same_day": true, "patch_ids": ["0dd69d275262fc3d302f27360b63a26c", "514b7f83036bed711e93847ee1c74e69", "a5d5c23b7c291f9aca560a4677539954", "d652e4a690a1042c68db92842349e02a", "e1ef61bbc9a0f163bdf871952d35854e"], "statement_hash": "3063fef579ae04837c00c7570d88dad4b63ae2ff5269f5125c2da91f1ac70942"}}, {"rule": 2, "type": "equivalent", "target": "d228dc7accd64617730fb4fcbf8aae50", "evidence": {"same_day": true, "patch_ids": ["0dd69d275262fc3d302f27360b63a26c", "514b7f83036bed711e93847ee1c74e69", "a5d5c23b7c291f9aca560a4677539954", "d652e4a690a1042c68db92842349e02a", "e1ef61bbc9a0f163bdf871952d35854e"], "statement_hash": "3063fef579ae04837c00c7570d88dad4b63ae2ff5269f5125c2da91f1ac70942"}}, {"rule": 2, "type": "equivalent", "target": "f6600566bc0907e18a48fb7684eacda6", "evidence": {"same_day": true, "patch_ids": ["0dd69d275262fc3d302f27360b63a26c", "514b7f83036bed711e93847ee1c74e69", "a5d5c23b7c291f9aca560a4677539954", "d652e4a690a1042c68db92842349e02a", "e1ef61bbc9a0f163bdf871952d35854e"], "statement_hash": "3063fef579ae04837c00c7570d88dad4b63ae2ff5269f5125c2da91f1ac70942"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f6600566bc0907e18a48fb7684eacda6", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "清理在 clang 的 -fsanitize=undefined 检查下出现的各种失败", "evidence": {"same_day": true, "patch_ids": ["0dd69d275262fc3d302f27360b63a26c", "514b7f83036bed711e93847ee1c74e69", "a5d5c23b7c291f9aca560a4677539954", "d652e4a690a1042c68db92842349e02a", "e1ef61bbc9a0f163bdf871952d35854e"], "statement_hash": "3063fef579ae04837c00c7570d88dad4b63ae2ff5269f5125c2da91f1ac70942"}, "url": "/docs/compare/?release=13.7#13.7-38fb84e955f1b0fe", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "d228dc7accd64617730fb4fcbf8aae50", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "清理在 clang 的 -fsanitize=undefined 检查下出现的各种失败", "evidence": {"same_day": true, "patch_ids": ["0dd69d275262fc3d302f27360b63a26c", "514b7f83036bed711e93847ee1c74e69", "a5d5c23b7c291f9aca560a4677539954", "d652e4a690a1042c68db92842349e02a", "e1ef61bbc9a0f163bdf871952d35854e"], "statement_hash": "3063fef579ae04837c00c7570d88dad4b63ae2ff5269f5125c2da91f1ac70942"}, "url": "/docs/compare/?release=12.11#12.11-195a4e6ea629c9ef", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "a0790335ab7f1b0c63f65ceb5ab63a5c", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "清理在 clang 的 -fsanitize=undefined 检查下出现的各种失败", "evidence": {"same_day": true, "patch_ids": ["0dd69d275262fc3d302f27360b63a26c", "514b7f83036bed711e93847ee1c74e69", "a5d5c23b7c291f9aca560a4677539954", "d652e4a690a1042c68db92842349e02a", "e1ef61bbc9a0f163bdf871952d35854e"], "statement_hash": "3063fef579ae04837c00c7570d88dad4b63ae2ff5269f5125c2da91f1ac70942"}, "url": "/docs/compare/?release=11.16#11.16-4d9c19b5fc311dd7", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "353fc8fa668aded1c66902f54af68647", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "清理在 clang 的 -fsanitize=undefined 检查下出现的各种失败", "evidence": {"same_day": true, "patch_ids": ["0dd69d275262fc3d302f27360b63a26c", "514b7f83036bed711e93847ee1c74e69", "a5d5c23b7c291f9aca560a4677539954", "d652e4a690a1042c68db92842349e02a", "e1ef61bbc9a0f163bdf871952d35854e"], "statement_hash": "3063fef579ae04837c00c7570d88dad4b63ae2ff5269f5125c2da91f1ac70942"}, "url": "/docs/compare/?release=10.21#10.21-4d9c19b5fc311dd7", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-7ed546d76a603f66", "cves": [], "html": "<p>在不使用 OpenSSL 构建时，不要将 OpenSSL 依赖项添加到 <span>libpq</span> 的 <code>pkg-config</code> 文件中（Fabrice Fontaine）<a href=\"https://postgr.es/c/7a2789275\">§</a></p>", "text": "在不使用 OpenSSL 构建时，不要将 OpenSSL 依赖项添加到 libpq 的 pkg-config 文件中（Fabrice Fontaine）§", "title": "在不使用 OpenSSL 构建时，不要将 OpenSSL 依赖项添加到 libpq 的 pkg-config 文件中", "commits": ["7a2789275"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "d97151ffdd454f1ace496a655fcc52fbdbbbab33cb09078c8cb4e1a7bc83186d", "section_path": ["变更"], "commit_groups": [["465ab2429", "7a2789275"]], "identity_text": "Do not add OpenSSL dependencies to libpq's pkg-config file when building without OpenSSL (Fabrice Fontaine)", "commit_aliases": ["465ab2429", "7a2789275"], "source_commits": ["7a2789275"], "source_entry_id": "14.3/changes/047", "db_id": "d83d01a32baa74bae88128fd66a7b5ba", "patch_ids": ["f6cf73d165482452c25dd92f57bb4c68"], "statement_hash": "bd97179d7c26aaee240363ae726aeceaf17400fb9eea8d701ad7192b1eda7aa6", "relations": [], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "14.3-e20812ae73528fc9", "cves": [], "html": "<p>修复 PL/Perl 使其能在不支持嵌套在表达式中的语句的 C 编译器上构建（Tom Lane）<a href=\"https://postgr.es/c/e327291e4\">§</a></p>", "text": "修复 PL/Perl 使其能在不支持嵌套在表达式中的语句的 C 编译器上构建（Tom Lane）§", "title": "修复 PL/Perl 使其能在不支持嵌套在表达式中的语句的 C 编译器上构建", "commits": ["e327291e4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "23dadfc2e44b8e57278beb46867306c78f8ef3181ce521487cfc44f74e22bbe9", "section_path": ["变更"], "commit_groups": [["1a8b6f055", "3a6e3a890", "5ea3b99de", "d5c2a91e5", "e327291e4", "eba0f095c"]], "identity_text": "Fix PL/Perl so it builds on C compilers that don't support statements nested within expressions (Tom Lane)", "commit_aliases": ["1a8b6f055", "3a6e3a890", "5ea3b99de", "d5c2a91e5", "e327291e4", "eba0f095c"], "source_commits": ["e327291e4"], "source_entry_id": "14.3/changes/048", "db_id": "95fc5e39fc229c01b37b16cc4d19feb7", "patch_ids": ["d41acf7eaed2c10cc521af8bea1bac53"], "statement_hash": "3ae0b08f64ec20da1c034181096ebacdf0f2cbe6edb3b8b1e9a76b9773cb3ab7", "relations": [{"rule": 2, "type": "equivalent", "target": "6fafea750d6291d1e58805ed19286913", "evidence": {"same_day": true, "patch_ids": ["d41acf7eaed2c10cc521af8bea1bac53"], "statement_hash": "3ae0b08f64ec20da1c034181096ebacdf0f2cbe6edb3b8b1e9a76b9773cb3ab7"}}, {"rule": 2, "type": "equivalent", "target": "8526092f304acb2e40c18ccdadfd4900", "evidence": {"same_day": true, "patch_ids": ["d41acf7eaed2c10cc521af8bea1bac53"], "statement_hash": "3ae0b08f64ec20da1c034181096ebacdf0f2cbe6edb3b8b1e9a76b9773cb3ab7"}}, {"rule": 2, "type": "equivalent", "target": "96b56feff8862e295303f535aa5944ac", "evidence": {"same_day": true, "patch_ids": ["d41acf7eaed2c10cc521af8bea1bac53"], "statement_hash": "3ae0b08f64ec20da1c034181096ebacdf0f2cbe6edb3b8b1e9a76b9773cb3ab7"}}, {"rule": 2, "type": "equivalent", "target": "dfbd146779579adaf8b4852554ca08d6", "evidence": {"same_day": true, "patch_ids": ["d41acf7eaed2c10cc521af8bea1bac53"], "statement_hash": "3ae0b08f64ec20da1c034181096ebacdf0f2cbe6edb3b8b1e9a76b9773cb3ab7"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "96b56feff8862e295303f535aa5944ac", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复 PL/Perl 使其能在不支持嵌套在表达式中的语句的 C 编译器上构建", "evidence": {"same_day": true, "patch_ids": ["d41acf7eaed2c10cc521af8bea1bac53"], "statement_hash": "3ae0b08f64ec20da1c034181096ebacdf0f2cbe6edb3b8b1e9a76b9773cb3ab7"}, "url": "/docs/compare/?release=13.7#13.7-a40674cdee3d1d18", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "dfbd146779579adaf8b4852554ca08d6", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复 PL/Perl 使其能在不支持嵌套在表达式中的语句的 C 编译器上构建", "evidence": {"same_day": true, "patch_ids": ["d41acf7eaed2c10cc521af8bea1bac53"], "statement_hash": "3ae0b08f64ec20da1c034181096ebacdf0f2cbe6edb3b8b1e9a76b9773cb3ab7"}, "url": "/docs/compare/?release=12.11#12.11-f9c55ea5b95087d8", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "8526092f304acb2e40c18ccdadfd4900", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复 PL/Perl 使其能在不支持嵌套在表达式中的语句的 C 编译器上构建", "evidence": {"same_day": true, "patch_ids": ["d41acf7eaed2c10cc521af8bea1bac53"], "statement_hash": "3ae0b08f64ec20da1c034181096ebacdf0f2cbe6edb3b8b1e9a76b9773cb3ab7"}, "url": "/docs/compare/?release=11.16#11.16-3ce5bdb727e32a3c", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "6fafea750d6291d1e58805ed19286913", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复 PL/Perl 使其能在不支持嵌套在表达式中的语句的 C 编译器上构建", "evidence": {"same_day": true, "patch_ids": ["d41acf7eaed2c10cc521af8bea1bac53"], "statement_hash": "3ae0b08f64ec20da1c034181096ebacdf0f2cbe6edb3b8b1e9a76b9773cb3ab7"}, "url": "/docs/compare/?release=10.21#10.21-3ce5bdb727e32a3c", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-c8ab89c0f28e83c6", "cves": [], "html": "<p>修复在 Windows 上不使用 MSVC 构建时 <span>pg_dumpall</span> 可能的构建失败（Andres Freund）<a href=\"https://postgr.es/c/2d608c960\">§</a></p>", "text": "修复在 Windows 上不使用 MSVC 构建时 pg_dumpall 可能的构建失败（Andres Freund）§", "title": "修复在 Windows 上不使用 MSVC 构建时 pg_dumpall 可能的构建失败", "commits": ["2d608c960"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "68e04a24b60345598ed3e86bafb966461ddf30c602ef23ee3df177a8fab1ba93", "section_path": ["变更"], "commit_groups": [["083031aa9", "097786fbb", "2d608c960", "4553b960f", "cd1951ba0", "f183e23cc"]], "identity_text": "Fix possible build failure of pg_dumpall on Windows, when not using MSVC to build (Andres Freund)", "commit_aliases": ["083031aa9", "097786fbb", "2d608c960", "4553b960f", "cd1951ba0", "f183e23cc"], "source_commits": ["2d608c960"], "source_entry_id": "14.3/changes/049", "db_id": "136dec1ec7cc4cd6cd615874cc7d068d", "patch_ids": ["53eba1003de2950ed67dfbff031905c0"], "statement_hash": "ade62856fe2c126dc52f3359f370bd99b3166ff4a2a76cc2ec5b1addabd7a70c", "relations": [{"rule": 2, "type": "equivalent", "target": "7a559b3239971072b49defcf79e20758", "evidence": {"same_day": true, "patch_ids": ["53eba1003de2950ed67dfbff031905c0"], "statement_hash": "ade62856fe2c126dc52f3359f370bd99b3166ff4a2a76cc2ec5b1addabd7a70c"}}, {"rule": 2, "type": "equivalent", "target": "b135168dd83c102cae7007b575a5a268", "evidence": {"same_day": true, "patch_ids": ["53eba1003de2950ed67dfbff031905c0"], "statement_hash": "ade62856fe2c126dc52f3359f370bd99b3166ff4a2a76cc2ec5b1addabd7a70c"}}, {"rule": 2, "type": "equivalent", "target": "dd0986eb3f544ad27adf0fbc2b79d8d0", "evidence": {"same_day": true, "patch_ids": ["53eba1003de2950ed67dfbff031905c0"], "statement_hash": "ade62856fe2c126dc52f3359f370bd99b3166ff4a2a76cc2ec5b1addabd7a70c"}}, {"rule": 2, "type": "equivalent", "target": "ea09b650605ce0e5102cfb939e448aac", "evidence": {"same_day": true, "patch_ids": ["53eba1003de2950ed67dfbff031905c0"], "statement_hash": "ade62856fe2c126dc52f3359f370bd99b3166ff4a2a76cc2ec5b1addabd7a70c"}}], "version": "14.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b135168dd83c102cae7007b575a5a268", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "修复在 Windows 上不使用 MSVC 构建时 pg_dumpall 可能的构建失败", "evidence": {"same_day": true, "patch_ids": ["53eba1003de2950ed67dfbff031905c0"], "statement_hash": "ade62856fe2c126dc52f3359f370bd99b3166ff4a2a76cc2ec5b1addabd7a70c"}, "url": "/docs/compare/?release=13.7#13.7-21e3f1962bbc0d9b", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "dd0986eb3f544ad27adf0fbc2b79d8d0", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "修复在 Windows 上不使用 MSVC 构建时 pg_dumpall 可能的构建失败", "evidence": {"same_day": true, "patch_ids": ["53eba1003de2950ed67dfbff031905c0"], "statement_hash": "ade62856fe2c126dc52f3359f370bd99b3166ff4a2a76cc2ec5b1addabd7a70c"}, "url": "/docs/compare/?release=12.11#12.11-a9beb79d03d2529d", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "ea09b650605ce0e5102cfb939e448aac", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "修复在 Windows 上不使用 MSVC 构建时 pg_dumpall 可能的构建失败", "evidence": {"same_day": true, "patch_ids": ["53eba1003de2950ed67dfbff031905c0"], "statement_hash": "ade62856fe2c126dc52f3359f370bd99b3166ff4a2a76cc2ec5b1addabd7a70c"}, "url": "/docs/compare/?release=11.16#11.16-f517b6acdae5a3bd", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "7a559b3239971072b49defcf79e20758", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "修复在 Windows 上不使用 MSVC 构建时 pg_dumpall 可能的构建失败", "evidence": {"same_day": true, "patch_ids": ["53eba1003de2950ed67dfbff031905c0"], "statement_hash": "ade62856fe2c126dc52f3359f370bd99b3166ff4a2a76cc2ec5b1addabd7a70c"}, "url": "/docs/compare/?release=10.21#10.21-f517b6acdae5a3bd", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-81a042fc4b04b977", "cves": [], "html": "<p>在 Windows 构建中，使用 <span>gendef</span> 代替 <span>pexports</span> 来构建 DEF 文件（Andrew Dunstan）<a href=\"https://postgr.es/c/92f60f536\">§</a></p>\n<p>这使构建过程适应了最近的 MSys 工具链。</p>", "text": "在 Windows 构建中，使用 gendef 代替 pexports 来构建 DEF 文件（Andrew Dunstan）§ 这使构建过程适应了最近的 MSys 工具链。", "title": "在 Windows 构建中，使用 gendef 代替 pexports 来构建 DEF 文件", "commits": ["92f60f536"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "4471bae25be1671d5f0edd5ff05121cd7a3d3d16d662996b795d71d2854503b8", "section_path": ["变更"], "commit_groups": [["3a5034b5e", "622ab6a34", "64dd64807", "92f60f536", "a5eef80c2", "c76164ea0", "e2d104e19", "ea09a75e1", "eec7c640f"]], "identity_text": "In Windows builds, use gendef instead of pexports to build DEF files (Andrew Dunstan) This adapts the build process to work on recent MSys tool chains.", "commit_aliases": ["3a5034b5e", "622ab6a34", "64dd64807", "92f60f536", "a5eef80c2", "c76164ea0", "e2d104e19", "ea09a75e1", "eec7c640f"], "source_commits": ["92f60f536"], "source_entry_id": "14.3/changes/050", "db_id": "57262888cf6c5f577a5b3183ebff660b", "patch_ids": ["9764c0e504424a4795b055398b9ced43"], "statement_hash": "a0badcac28edbb02afb253aa37416e89ca737e75ff377504f5c3bb83c2edf481", "relations": [{"rule": 2, "type": "equivalent", "target": "38602682966155948dd26cd8216edbb9", "evidence": {"same_day": true, "patch_ids": ["9764c0e504424a4795b055398b9ced43"], "statement_hash": "a0badcac28edbb02afb253aa37416e89ca737e75ff377504f5c3bb83c2edf481"}}, {"rule": 2, "type": "equivalent", "target": "55e5a5f8857f60ac511eb488d2861179", "evidence": {"same_day": true, "patch_ids": ["9764c0e504424a4795b055398b9ced43"], "statement_hash": "a0badcac28edbb02afb253aa37416e89ca737e75ff377504f5c3bb83c2edf481"}}, {"rule": 2, "type": "equivalent", "target": "cc44da5011e0a29d2b43d6eb82ebb151", "evidence": {"same_day": true, "patch_ids": ["9764c0e504424a4795b055398b9ced43"], "statement_hash": "a0badcac28edbb02afb253aa37416e89ca737e75ff377504f5c3bb83c2edf481"}}, {"rule": 2, "type": "equivalent", "target": "d0633561b5bfb357c77b8a40fd8f5e25", "evidence": {"same_day": true, "patch_ids": ["9764c0e504424a4795b055398b9ced43"], "statement_hash": "a0badcac28edbb02afb253aa37416e89ca737e75ff377504f5c3bb83c2edf481"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d0633561b5bfb357c77b8a40fd8f5e25", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "在 Windows 构建中，使用 gendef 代替 pexports 来构建 DEF 文件", "evidence": {"same_day": true, "patch_ids": ["9764c0e504424a4795b055398b9ced43"], "statement_hash": "a0badcac28edbb02afb253aa37416e89ca737e75ff377504f5c3bb83c2edf481"}, "url": "/docs/compare/?release=13.7#13.7-2427c69aa60b6085", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "cc44da5011e0a29d2b43d6eb82ebb151", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "在 Windows 构建中，使用 gendef 代替 pexports 来构建 DEF 文件", "evidence": {"same_day": true, "patch_ids": ["9764c0e504424a4795b055398b9ced43"], "statement_hash": "a0badcac28edbb02afb253aa37416e89ca737e75ff377504f5c3bb83c2edf481"}, "url": "/docs/compare/?release=12.11#12.11-83962fae8e47a715", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "38602682966155948dd26cd8216edbb9", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "在 Windows 构建中，使用 gendef 代替 pexports 来构建 DEF 文件", "evidence": {"same_day": true, "patch_ids": ["9764c0e504424a4795b055398b9ced43"], "statement_hash": "a0badcac28edbb02afb253aa37416e89ca737e75ff377504f5c3bb83c2edf481"}, "url": "/docs/compare/?release=11.16#11.16-38a44190a83cd337", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "55e5a5f8857f60ac511eb488d2861179", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "在 Windows 构建中，使用 gendef 代替 pexports 来构建 DEF 文件", "evidence": {"same_day": true, "patch_ids": ["9764c0e504424a4795b055398b9ced43"], "statement_hash": "a0badcac28edbb02afb253aa37416e89ca737e75ff377504f5c3bb83c2edf481"}, "url": "/docs/compare/?release=10.21#10.21-38a44190a83cd337", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-051c3424c7635887", "cves": [], "html": "<p>防止在 MinGW 下构建的程序中对 shell 通配符模式进行额外展开（Andrew Dunstan）<a href=\"https://postgr.es/c/71f394667\">§</a></p>\n<p>出于某种原因，MinGW 提供的 C 库默认会展开程序命令行参数中的 shell 通配符字符。这令人困惑，尤其是因为在 MSVC 下不会发生这种情况，因此将其关闭。</p>", "text": "防止在 MinGW 下构建的程序中对 shell 通配符模式进行额外展开（Andrew Dunstan）§ 出于某种原因，MinGW 提供的 C 库默认会展开程序命令行参数中的 shell 通配符字符。这令人困惑，尤其是因为在 MSVC 下不会发生这种情况，因此将其关闭。", "title": "防止在 MinGW 下构建的程序中对 shell 通配符模式进行额外展开", "commits": ["71f394667"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "4c83855d6a047fe9bfe93a8bbb7a50fc564e46f792c1b49c8157a33f4f881251", "section_path": ["变更"], "commit_groups": [["01f2bc5af", "58887d58c", "71f394667", "b787c554c", "b90ce0dd7", "d9cede2c3"]], "identity_text": "Prevent extra expansion of shell wildcard patterns in programs built under MinGW (Andrew Dunstan) For some reason the C library provided by MinGW will expand shell wildcard characters in a program's command-line arguments by default. This is confusing, not least because it doesn't happen under MSVC, so turn it off.", "commit_aliases": ["01f2bc5af", "58887d58c", "71f394667", "b787c554c", "b90ce0dd7", "d9cede2c3"], "source_commits": ["71f394667"], "source_entry_id": "14.3/changes/051", "db_id": "f89d93baa0ca465846f88287eb623da7", "patch_ids": ["79ece83653c1ea395afa16ed15c15142"], "statement_hash": "6af4af0ec380777b31629826decb1af825d7143bed418cbd0ecc64b8c73857b7", "relations": [{"rule": 2, "type": "equivalent", "target": "24641f84a59b30379e129e690ef2b967", "evidence": {"same_day": true, "patch_ids": ["79ece83653c1ea395afa16ed15c15142"], "statement_hash": "6af4af0ec380777b31629826decb1af825d7143bed418cbd0ecc64b8c73857b7"}}, {"rule": 2, "type": "equivalent", "target": "3132fffa1766a85302e18428b852d9c1", "evidence": {"same_day": true, "patch_ids": ["79ece83653c1ea395afa16ed15c15142"], "statement_hash": "6af4af0ec380777b31629826decb1af825d7143bed418cbd0ecc64b8c73857b7"}}, {"rule": 2, "type": "equivalent", "target": "cb5bc30d2bb9bca6ad937c232ba3f3d3", "evidence": {"same_day": true, "patch_ids": ["79ece83653c1ea395afa16ed15c15142"], "statement_hash": "6af4af0ec380777b31629826decb1af825d7143bed418cbd0ecc64b8c73857b7"}}, {"rule": 2, "type": "equivalent", "target": "f4ddbc73c7844f2cbb2ee355f9e76775", "evidence": {"same_day": true, "patch_ids": ["79ece83653c1ea395afa16ed15c15142"], "statement_hash": "6af4af0ec380777b31629826decb1af825d7143bed418cbd0ecc64b8c73857b7"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "24641f84a59b30379e129e690ef2b967", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "防止在 MinGW 下构建的程序中对 shell 通配符模式进行额外展开", "evidence": {"same_day": true, "patch_ids": ["79ece83653c1ea395afa16ed15c15142"], "statement_hash": "6af4af0ec380777b31629826decb1af825d7143bed418cbd0ecc64b8c73857b7"}, "url": "/docs/compare/?release=13.7#13.7-193de4c12bd1c5bc", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "f4ddbc73c7844f2cbb2ee355f9e76775", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "防止在 MinGW 下构建的程序中对 shell 通配符模式进行额外展开", "evidence": {"same_day": true, "patch_ids": ["79ece83653c1ea395afa16ed15c15142"], "statement_hash": "6af4af0ec380777b31629826decb1af825d7143bed418cbd0ecc64b8c73857b7"}, "url": "/docs/compare/?release=12.11#12.11-4ad00e23c24660ab", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "3132fffa1766a85302e18428b852d9c1", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "防止在 MinGW 下构建的程序中对 shell 通配符模式进行额外展开", "evidence": {"same_day": true, "patch_ids": ["79ece83653c1ea395afa16ed15c15142"], "statement_hash": "6af4af0ec380777b31629826decb1af825d7143bed418cbd0ecc64b8c73857b7"}, "url": "/docs/compare/?release=11.16#11.16-6d6e197535142550", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "cb5bc30d2bb9bca6ad937c232ba3f3d3", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "防止在 MinGW 下构建的程序中对 shell 通配符模式进行额外展开", "evidence": {"same_day": true, "patch_ids": ["79ece83653c1ea395afa16ed15c15142"], "statement_hash": "6af4af0ec380777b31629826decb1af825d7143bed418cbd0ecc64b8c73857b7"}, "url": "/docs/compare/?release=10.21#10.21-6d6e197535142550", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}, {"id": "14.3-f0d1b98fe7331ec6", "cves": [], "html": "<p>将时区数据文件更新为 <span>tzdata</span> 2022a 版本，包含巴勒斯坦的夏令时规则变更，以及智利和乌克兰的历史修正。（Tom Lane）<a href=\"https://postgr.es/c/77ee14ed9\">§</a></p>", "text": "将时区数据文件更新为 tzdata 2022a 版本，包含巴勒斯坦的夏令时规则变更，以及智利和乌克兰的历史修正。（Tom Lane）§", "title": "将时区数据文件更新为 tzdata 2022a 版本，包含巴勒斯坦的夏令时规则变更，以及智利和乌克兰的历史修正。", "commits": ["77ee14ed9"], "section": "变更", "category": "improvement", "source_url": "/docs/release/14.3/#ZH-AUTO-RELEASE-14-SECT2-40", "source_hash": "214a881b17d7eb942f4db5fe723b60d89c6a8e79ef241bbaebd657f75977b2f7", "section_path": ["变更"], "commit_groups": [["2bb9f7501", "77ee14ed9", "ab3479bf5", "bc334ec9f", "da72ff09b", "e9735d1af"]], "identity_text": "Update time zone data files to tzdata release 2022a for DST law changes in Palestine, plus historical corrections for Chile and Ukraine. (Tom Lane)", "commit_aliases": ["2bb9f7501", "77ee14ed9", "ab3479bf5", "bc334ec9f", "da72ff09b", "e9735d1af"], "source_commits": ["77ee14ed9"], "source_entry_id": "14.3/changes/052", "db_id": "b1e39c9b8af63dee0774bd1afb5933d8", "patch_ids": ["afac83603605cad010e22cefc1e1d288"], "statement_hash": "bce26289d7f7c07546e4d6cc760b6fe5f21606c5e4b2ee68bc4bef5142a90032", "relations": [{"rule": 2, "type": "equivalent", "target": "39da68ea256e3f02b57d4a358143919b", "evidence": {"same_day": true, "patch_ids": ["afac83603605cad010e22cefc1e1d288"], "statement_hash": "bce26289d7f7c07546e4d6cc760b6fe5f21606c5e4b2ee68bc4bef5142a90032"}}, {"rule": 2, "type": "equivalent", "target": "488b0c51a051523d2d93074eff3f63d6", "evidence": {"same_day": true, "patch_ids": ["afac83603605cad010e22cefc1e1d288"]}}, {"rule": 2, "type": "equivalent", "target": "70f22e6f1a90f4854ab95213c75fb6cc", "evidence": {"same_day": true, "patch_ids": ["afac83603605cad010e22cefc1e1d288"]}}, {"rule": 2, "type": "equivalent", "target": "9f6b656c627674cf49a116215c8cad0f", "evidence": {"same_day": true, "patch_ids": ["afac83603605cad010e22cefc1e1d288"], "statement_hash": "bce26289d7f7c07546e4d6cc760b6fe5f21606c5e4b2ee68bc4bef5142a90032"}}], "version": "14.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9f6b656c627674cf49a116215c8cad0f", "kind": "equivalent", "version": "13.7", "label": "13.7", "title": "将时区数据文件更新为 tzdata 2022a 版本，包含巴勒斯坦的夏令时规则变更，以及智利和乌克兰的历史修正。", "evidence": {"same_day": true, "patch_ids": ["afac83603605cad010e22cefc1e1d288"], "statement_hash": "bce26289d7f7c07546e4d6cc760b6fe5f21606c5e4b2ee68bc4bef5142a90032"}, "url": "/docs/compare/?release=13.7#13.7-6acaf1c4d3653dec", "source_url": "/docs/release/13.7/#id-1.11.6.22.5"}, {"db_id": "39da68ea256e3f02b57d4a358143919b", "kind": "equivalent", "version": "12.11", "label": "12.11", "title": "将时区数据文件更新为 tzdata 2022a 版本，包含巴勒斯坦的夏令时规则变更，以及智利和乌克兰的历史修正。", "evidence": {"same_day": true, "patch_ids": ["afac83603605cad010e22cefc1e1d288"], "statement_hash": "bce26289d7f7c07546e4d6cc760b6fe5f21606c5e4b2ee68bc4bef5142a90032"}, "url": "/docs/compare/?release=12.11#12.11-f733876a271a1f8c", "source_url": "/docs/release/12.11/#id-1.11.6.17.5"}, {"db_id": "488b0c51a051523d2d93074eff3f63d6", "kind": "equivalent", "version": "11.16", "label": "11.16", "title": "将时区数据文件更新到 tzdata 2022a 版，以反映巴勒斯坦的夏令时法规变更，并修正智利和乌克兰的历史数据。", "evidence": {"same_day": true, "patch_ids": ["afac83603605cad010e22cefc1e1d288"]}, "url": "/docs/compare/?release=11.16#11.16-dcc627d2380a86cd", "source_url": "/docs/release/11.16/#id-1.11.6.11.5"}, {"db_id": "70f22e6f1a90f4854ab95213c75fb6cc", "kind": "equivalent", "version": "10.21", "label": "10.21", "title": "将时区数据文件更新到 tzdata 2022a 版，以反映巴勒斯坦的夏令时法规变更，并修正智利和乌克兰的历史数据。", "evidence": {"same_day": true, "patch_ids": ["afac83603605cad010e22cefc1e1d288"]}, "url": "/docs/compare/?release=10.21#10.21-dcc627d2380a86cd", "source_url": "/docs/release/10.21/#id-1.11.6.7.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 52}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 25}, {"key": "security", "label": "安全相关", "count": 1}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 26}], "total": 52, "release_count": 1, "cross_major": false, "cve_count": 1, "cves": [{"id": "CVE-2022-1552", "url": "https://www.postgresql.org/support/security/CVE-2022-1552/", "fixed": {"10": "10.21", "11": "11.16", "12": "12.11", "13": "13.7", "14": "14.3"}, "score": 8.8, "title": "将更多操作限制在“安全受限操作”沙箱内", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "14": "14"}, "component": "core server", "published": {"10": "2022-05-12", "11": "2022-05-12", "12": "2022-05-12", "13": "2022-05-12", "14": "2022-05-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Autovacuum, REINDEX , CREATE INDEX , REFRESH MATERIALIZED VIEW , CLUSTER , and pg_amcheck made incomplete efforts to operate safely when a privileged user is maintaining another user's objects. Those commands activated relevant protections too late or not at all. An attacker having permission to create non-temp objects in at least one schema could execute arbitrary SQL functions under a superuser identity.\n\nWhile promptly updating PostgreSQL is the best remediation for most users, a user unable to do that can work around the vulnerability by disabling autovacuum, not manually running the above commands, and not restoring from output of the pg_dump command. Performance may degrade quickly under this workaround. VACUUM is safe, and all commands are fine when a trusted user owns the target object.\n\nThe PostgreSQL project thanks Alexander Lakhin for reporting this problem.", "first_published": "2022-05-12", "fixed_version": "14.3"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 52, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}