{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2024-05-09", "build": "15.7", "major": "15", "minor": 7, "manual": "15", "status": "stable", "doc_git": "", "version": "15.7", "eol_date": "2027-11-11", "date_text": "2024-05-09", "supported": true, "manual_url": "/docs/15/release-15-7.html", "source_url": "/docs/release/15.7/", "entry_count": 52, "placeholder": false, "content_hash": "923f061b14865e0da3dec4c430a45be1cef7fd7aa9e0768238d4b4f98593b2db", "manual_build": "15.19", "source_as_of": "", "changes_count": 52, "doc_loaded_at": "2026-09-26T02:56:38.228564", "migration_html": "<p>对于运行 15.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，在系统视图 <code>pg_stats_ext</code> 和 <code>pg_stats_ext_exprs</code> 中发现了一个安全漏洞，可能允许已认证的数据库用户查看他们不应看到的数据。如果你的安装受此影响，请按照下面第一个变更日志条目中的步骤进行修复。</p>\n<p>此外，如果你从早于 15.6 的版本升级，请参见<a href=\"/docs/15/release-15-6.html\" title=\"E.14. 发布版本 15.6\">第 E.14 节</a>。</p>", "compatibility_count": 0, "label": "15.7", "status_label": "受支持版本", "eol": "2027-11-11", "age_days": 874, "support_days": 407}, "groups": [{"date": "2024-05-09", "build": "15.7", "major": "15", "minor": 7, "manual": "15", "status": "stable", "doc_git": "", "version": "15.7", "eol_date": "2027-11-11", "date_text": "2024-05-09", "supported": true, "manual_url": "/docs/15/release-15-7.html", "source_url": "/docs/release/15.7/", "entry_count": 52, "placeholder": false, "content_hash": "923f061b14865e0da3dec4c430a45be1cef7fd7aa9e0768238d4b4f98593b2db", "manual_build": "15.19", "source_as_of": "", "changes_count": 52, "doc_loaded_at": "2026-09-26T02:56:38.228564", "migration_html": "<p>对于运行 15.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，在系统视图 <code>pg_stats_ext</code> 和 <code>pg_stats_ext_exprs</code> 中发现了一个安全漏洞，可能允许已认证的数据库用户查看他们不应看到的数据。如果你的安装受此影响，请按照下面第一个变更日志条目中的步骤进行修复。</p>\n<p>此外，如果你从早于 15.6 的版本升级，请参见<a href=\"/docs/15/release-15-6.html\" title=\"E.14. 发布版本 15.6\">第 E.14 节</a>。</p>", "compatibility_count": 0, "label": "15.7", "status_label": "受支持版本", "eol": "2027-11-11", "age_days": 874, "support_days": 407, "entries": [{"id": "15.7-5c75daeed485b1fc", "cves": ["CVE-2024-4317"], "html": "<p>将 <code>pg_stats_ext</code> 和 <code>pg_stats_ext_exprs</code> 条目的可见性限制为表所有者（Nathan Bossart）<a href=\"https://postgr.es/c/9cc2b6289\">§</a></p>\n<p>这些视图未能隐藏涉及访问用户没有权限读取的列的表达式统计信息。视图列如 <code>most_common_vals</code> 可能暴露安全相关的数据。这里的潜在交互尚不完全清楚，因此为了安全起见，使这些视图中的行仅对关联表的所有者可见。</p>\n<p><span>PostgreSQL</span> 项目感谢 Lukas Fittl 报告此问题。（CVE-2024-4317）</p>\n<p>仅凭此修复本身只会修复新初始化的数据库集簇中的行为。如需在现有集簇中应用此更改，需要执行以下步骤：</p>\n<div>\n<ol type=\"1\">\n<li>\n<p>在 <span>PostgreSQL</span> 安装的 <em><code>share</code></em> 目录（通常位于类似 <code>/usr/share/postgresql/</code> 的位置）中找到 SQL 脚本 <code>fix-CVE-2024-4317.sql</code>。确保使用适合你的 <span>PostgreSQL</span> 主版本的脚本。如果未看到此文件，则说明你的版本不受影响（只有 v14–v16 受影响），或者你的小版本太旧，尚未包含此修复。</p>\n</li>\n<li>\n<p>在集簇的<span><em>每个</em></span>数据库中，以超级用户身份运行 <code>fix-CVE-2024-4317.sql</code> 脚本。在 <span>psql</span> 中，命令如下：</p>\n<pre>\\i /usr/share/postgresql/fix-CVE-2024-4317.sql\n</pre>\n<p>（根据需要调整文件路径）。任何错误可能表明你使用了错误版本的脚本。多次运行该脚本不会有害。</p>\n</li>\n<li>\n<p>不要忘记包含 <code>template0</code> 和 <code>template1</code> 数据库，否则以后创建的数据库仍然存在该漏洞。要修复 <code>template0</code>，你需要临时允许它接受连接。执行：</p>\n<pre>ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;\n</pre>\n<p>然后在修复 <code>template0</code> 后，执行以下命令撤销：</p>\n<pre>ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;\n</pre>\n</li>\n</ol>\n</div>", "text": "将 pg_stats_ext 和 pg_stats_ext_exprs 条目的可见性限制为表所有者（Nathan Bossart）§ 这些视图未能隐藏涉及访问用户没有权限读取的列的表达式统计信息。视图列如 most_common_vals 可能暴露安全相关的数据。这里的潜在交互尚不完全清楚，因此为了安全起见，使这些视图中的行仅对关联表的所有者可见。 PostgreSQL 项目感谢 Lukas Fittl 报告此问题。（CVE-2024-4317） 仅凭此修复本身只会修复新初始化的数据库集簇中的行为。如需在现有集簇中应用此更改，需要执行以下步骤： 在 PostgreSQL 安装的 share 目录（通常位于类似 /usr/share/postgresql/ 的位置）中找到 SQL 脚本 fix-CVE-2024-4317.sql。确保使用适合你的 PostgreSQL 主版本的脚本。如果未看到此文件，则说明你的版本不受影响（只有 v14–v16 受影响），或者你的小版本太旧，尚未包含此修复。 在集簇的每个数据库中，以超级用户身份运行 fix-CVE-2024-4317.sql 脚本。在 psql 中，命令如下： \\i /usr/share/postgresql/fix-CVE-2024-4317.sql （根据需要调整文件路径）。任何错误可能表明你使用了错误版本的脚本。多次运行该脚本不会有害。 不要忘记包含 template0 和 template1 数据库，否则以后创建的数据库仍然存在该漏洞。要修复 template0，你需要临时允许它接受连接。执行： ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; 然后在修复 template0 后，执行以下命令撤销： ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;", "title": "将 pg_stats_ext 和 pg_stats_ext_exprs 条目的可见性限制为表所有者", "commits": ["9cc2b6289"], "section": "变更", "category": "security", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "5de70baa845b127ae2d0e9db8827c4ee6768fe7993af603f9044e05a7ca97b64", "section_path": ["变更"], "commit_groups": [["2485a85e9", "521a7156a", "9cc2b6289", "c3425383b"]], "identity_text": "Restrict visibility of pg_stats_ext and pg_stats_ext_exprs entries to the table owner (Nathan Bossart) These views failed to hide statistics for expressions that involve columns the accessing user does not have permission to read. View columns such as most_common_vals might expose security-relevant data. The potential interactions here are not fully clear, so in the interest of erring on the side of safety, make rows in these views visible only to the owner of the associated table. The PostgreSQL Project thanks Lukas Fittl for reporting this problem. (CVE-2024-4317) By itself, this fix will only fix the behavior in newly initdb'd database clusters. If you wish to apply this change in an existing cluster, you will need to do the following: Find the SQL script fix-CVE-2024-4317.sql in the share directory of the PostgreSQL installation (typically located someplace like /usr/share/postgresql/). Be sure to use the script appropriate to your PostgreSQL major version. If you do not see this file, either your version is not vulnerable (only v14–v16 are affected) or your minor version is too old to have the fix. In each database of the cluster, run the fix-CVE-2024-4317.sql script as superuser. In psql this would look like \\i /usr/share/postgresql/fix-CVE-2024-4317.sql (adjust the file path as appropriate). Any error probably indicates that you've used the wrong script version. It will not hurt to run the script more than once. Do not forget to include the template0 and template1 databases, or the vulnerability will still exist in databases you create later. To fix template0, you'll need to temporarily make it accept connections. Do that with ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; and then after fixing template0, undo it with ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;", "commit_aliases": ["2485a85e9", "521a7156a", "9cc2b6289", "c3425383b"], "source_commits": ["9cc2b6289"], "source_entry_id": "15.7/changes/001", "db_id": "84a8953b51412042ec07b0d78eece0e9", "patch_ids": ["6112a304723b494f198b6a84afff2476"], "statement_hash": "d9e2bc5f8099546e9c06073bb0b5853189d0d36a75b2ac4135b58882bf089ffe", "relations": [{"rule": 2, "type": "equivalent", "target": "8aeaa5fcfd3b568f4c8890ce678a196d", "evidence": {"same_day": true, "patch_ids": ["6112a304723b494f198b6a84afff2476"], "statement_hash": "d9e2bc5f8099546e9c06073bb0b5853189d0d36a75b2ac4135b58882bf089ffe"}}, {"rule": 2, "type": "equivalent", "target": "b7aa0a955b482fd7c397bd9c8f57fad4", "evidence": {"same_day": true, "patch_ids": ["6112a304723b494f198b6a84afff2476"], "statement_hash": "d9e2bc5f8099546e9c06073bb0b5853189d0d36a75b2ac4135b58882bf089ffe"}}], "version": "15.7", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "b7aa0a955b482fd7c397bd9c8f57fad4", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "将 pg_stats_ext 和 pg_stats_ext_exprs 条目的可见性限制为表所有者", "evidence": {"same_day": true, "patch_ids": ["6112a304723b494f198b6a84afff2476"], "statement_hash": "d9e2bc5f8099546e9c06073bb0b5853189d0d36a75b2ac4135b58882bf089ffe"}, "url": "/docs/compare/?release=16.3#16.3-933035d2b392d978", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "8aeaa5fcfd3b568f4c8890ce678a196d", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "将 pg_stats_ext 和 pg_stats_ext_exprs 条目的可见性限制为表所有者", "evidence": {"same_day": true, "patch_ids": ["6112a304723b494f198b6a84afff2476"], "statement_hash": "d9e2bc5f8099546e9c06073bb0b5853189d0d36a75b2ac4135b58882bf089ffe"}, "url": "/docs/compare/?release=14.12#14.12-8bc43ac4b7f05ccd", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}]}, {"id": "15.7-dd89857090ed0e99", "cves": [], "html": "<p>修复从多个 <code>VALUES</code> 行 <code>INSERT</code> 到目标列为数组或复合类型上的域时的问题（Tom Lane）<a href=\"https://postgr.es/c/7c61d2342\">§</a></p>\n<p>这类情况会以数据类型不匹配的意外错误失败，或者插入可能导致奇怪结果的意外强制转换。</p>", "text": "修复从多个 VALUES 行 INSERT 到目标列为数组或复合类型上的域时的问题（Tom Lane）§ 这类情况会以数据类型不匹配的意外错误失败，或者插入可能导致奇怪结果的意外强制转换。", "title": "修复从多个 VALUES 行 INSERT 到目标列为数组或复合类型上的域时的问题", "commits": ["7c61d2342"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "4bd7ce533021abccca2d4572d0e65154436d7ca816dc1f08d309f47b8a04f181", "section_path": ["变更"], "commit_groups": [["0200398dd", "3621ffd9f", "52898c63e", "7c61d2342", "82c87af7a", "b4a71cf65"]], "identity_text": "Fix INSERT from multiple VALUES rows into a target column that is a domain over an array or composite type (Tom Lane) Such cases would either fail with surprising complaints about mismatched datatypes, or insert unexpected coercions that could lead to odd results.", "commit_aliases": ["0200398dd", "3621ffd9f", "52898c63e", "7c61d2342", "82c87af7a", "b4a71cf65"], "source_commits": ["7c61d2342"], "source_entry_id": "15.7/changes/002", "db_id": "9572f8110ded2a8d7803e002d11d40b0", "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e", "relations": [{"rule": 2, "type": "equivalent", "target": "2e9ef20c90089aeec3983b9a721fdae0", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}}, {"rule": 2, "type": "equivalent", "target": "6caa1c3d45d32ad75defa51d23487ce7", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}}, {"rule": 2, "type": "equivalent", "target": "785ca9c7fc24a36b5111b0700e489e7a", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}}, {"rule": 2, "type": "equivalent", "target": "e47bd53c9d8fac9564005be446d56944", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e9ef20c90089aeec3983b9a721fdae0", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复从多个 VALUES 行 INSERT 到目标列为数组或复合类型上的域时的问题", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}, "url": "/docs/compare/?release=16.3#16.3-544aa5578d1043f9", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "6caa1c3d45d32ad75defa51d23487ce7", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复从多个 VALUES 行 INSERT 到目标列为数组或复合类型上的域时的问题", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}, "url": "/docs/compare/?release=14.12#14.12-a3754239b6836d9c", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "e47bd53c9d8fac9564005be446d56944", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复从多个 VALUES 行 INSERT 到目标列为数组或复合类型上的域时的问题", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}, "url": "/docs/compare/?release=13.15#13.15-6e8813730e378dc5", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "785ca9c7fc24a36b5111b0700e489e7a", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复从多个 VALUES 行 INSERT 到目标列为数组或复合类型上的域时的问题", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}, "url": "/docs/compare/?release=12.19#12.19-ec2b64a5851f8b06", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-da6e4af9965c94b4", "cves": [], "html": "<p>要求对带有 <code>DO NOTHING</code> 子句的 <code>MERGE</code> 的目标表具有 <code>SELECT</code> 权限（Álvaro Herrera）<a href=\"https://postgr.es/c/90ad85db6\">§</a></p>\n<p>在所有实际情况中都需要 <code>SELECT</code> 权限，但即使查询不读取目标表的任何列也要求该权限。这避免了 <code>MERGE</code> 完全不需要任何权限的边缘情况，即使它是一个不做任何事情的命令，这也是不可取的。</p>", "text": "要求对带有 DO NOTHING 子句的 MERGE 的目标表具有 SELECT 权限（Álvaro Herrera）§ 在所有实际情况中都需要 SELECT 权限，但即使查询不读取目标表的任何列也要求该权限。这避免了 MERGE 完全不需要任何权限的边缘情况，即使它是一个不做任何事情的命令，这也是不可取的。", "title": "要求对带有 DO NOTHING 子句的 MERGE 的目标表具有 SELECT 权限", "commits": ["90ad85db6"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "81bb09a21ce238da51ff982c3e210e991539635043e506e58a5c74da36218f1d", "section_path": ["变更"], "commit_groups": [["4989ce726", "90ad85db6", "a3f5d2056"]], "identity_text": "Require SELECT privilege on the target table for MERGE with a DO NOTHING clause (Álvaro Herrera) SELECT privilege would be required in all practical cases anyway, but require it even if the query reads no columns of the target table. This avoids an edge case in which MERGE would require no privileges whatever, which seems undesirable even when it's a do-nothing command.", "commit_aliases": ["4989ce726", "90ad85db6", "a3f5d2056"], "source_commits": ["90ad85db6"], "source_entry_id": "15.7/changes/003", "db_id": "c135686f7de13523292a84ad3358ed67", "patch_ids": ["886aec5de95b79e1a8f9c6440c151364"], "statement_hash": "efbf92be0f9b25eb21bbfe5a3e92865d80c193c74a720a4294dd737932493484", "relations": [{"rule": 2, "type": "equivalent", "target": "450596be3bd04cd0a1cb71ed2f497f9b", "evidence": {"same_day": true, "patch_ids": ["886aec5de95b79e1a8f9c6440c151364"], "statement_hash": "efbf92be0f9b25eb21bbfe5a3e92865d80c193c74a720a4294dd737932493484"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "450596be3bd04cd0a1cb71ed2f497f9b", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "要求对带有 DO NOTHING 子句的 MERGE 的目标表具有 SELECT 权限", "evidence": {"same_day": true, "patch_ids": ["886aec5de95b79e1a8f9c6440c151364"], "statement_hash": "efbf92be0f9b25eb21bbfe5a3e92865d80c193c74a720a4294dd737932493484"}, "url": "/docs/compare/?release=16.3#16.3-432b931f8c9cb2e0", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}]}, {"id": "15.7-5854279a6ef46025", "cves": [], "html": "<p>修复 <code>MERGE</code> 中对自修改元组的处理（Dean Rasheed）<a href=\"https://postgr.es/c/b5c645d2a\">§</a></p>\n<p>如果目标行与多个源行连接，按照 SQL 标准的要求抛出错误。（之前的代码在涉及并发更新时可能会静默忽略此条件。）此外，如果目标行已被当前事务中的后续命令更新（由于 <code>BEFORE</code> 触发器或查询中使用的易变函数），则抛出一个不会产生误导的错误。</p>", "text": "修复 MERGE 中对自修改元组的处理（Dean Rasheed）§ 如果目标行与多个源行连接，按照 SQL 标准的要求抛出错误。（之前的代码在涉及并发更新时可能会静默忽略此条件。）此外，如果目标行已被当前事务中的后续命令更新（由于 BEFORE 触发器或查询中使用的易变函数），则抛出一个不会产生误导的错误。", "title": "修复 MERGE 中对自修改元组的处理", "commits": ["b5c645d2a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "ef4189e8573e80d8a2c08eef67faee58439a8aa4206b2e5197a7d8da94bf4da5", "section_path": ["变更"], "commit_groups": [["29ef1dd19", "b5c645d2a", "dd73d10ad"]], "identity_text": "Fix handling of self-modified tuples in MERGE (Dean Rasheed) Throw an error if a target row joins to more than one source row, as required by the SQL standard. (The previous coding could silently ignore this condition if a concurrent update was involved.) Also, throw a non-misleading error if a target row is already updated by a later command in the current transaction, thanks to a BEFORE trigger or a volatile function used in the query.", "commit_aliases": ["29ef1dd19", "b5c645d2a", "dd73d10ad"], "source_commits": ["b5c645d2a"], "source_entry_id": "15.7/changes/004", "db_id": "bda335ede07f3a467d7903ac22792872", "patch_ids": ["8bbdd07738f409f97607565aa4c5dd98"], "statement_hash": "f6b13dc66d404ac05176baa1adf7632d11aff11091df21a1569ee62af88a16cb", "relations": [{"rule": 2, "type": "equivalent", "target": "e006280aed6391a9161ac0519b24bdd3", "evidence": {"same_day": true, "patch_ids": ["8bbdd07738f409f97607565aa4c5dd98"], "statement_hash": "f6b13dc66d404ac05176baa1adf7632d11aff11091df21a1569ee62af88a16cb"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e006280aed6391a9161ac0519b24bdd3", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 MERGE 中对自修改元组的处理", "evidence": {"same_day": true, "patch_ids": ["8bbdd07738f409f97607565aa4c5dd98"], "statement_hash": "f6b13dc66d404ac05176baa1adf7632d11aff11091df21a1569ee62af88a16cb"}, "url": "/docs/compare/?release=16.3#16.3-fcd9d541fb9cc705", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}]}, {"id": "15.7-d93dc420de3341d7", "cves": [], "html": "<p>修复当表按布尔列分区且查询含有布尔 <code>IS NOT</code> 子句时，对 NULL 分区的不正确修剪（David Rowley）<a href=\"https://postgr.es/c/1b3495e29\">§</a></p>\n<p>NULL 值满足诸如 <code><em><code>boolcol</code></em> IS NOT FALSE</code> 之类的子句，因此修剪掉包含 NULL 的分区会产生不正确的结果。</p>", "text": "修复当表按布尔列分区且查询含有布尔 IS NOT 子句时，对 NULL 分区的不正确修剪（David Rowley）§ NULL 值满足诸如 boolcol IS NOT FALSE 之类的子句，因此修剪掉包含 NULL 的分区会产生不正确的结果。", "title": "修复当表按布尔列分区且查询含有布尔 IS NOT 子句时，对 NULL 分区的不正确修剪", "commits": ["1b3495e29"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "1ca8820883feb0891b26deeb84a1177e3d5db87477f42c402f2220511dccad4a", "section_path": ["变更"], "commit_groups": [["1b3495e29", "3850fcca6", "3ffcd24c2", "4c2369ac5", "f9c8f7ccd", "fb95cc72b"]], "identity_text": "Fix incorrect pruning of NULL partition when a table is partitioned on a boolean column and the query has a boolean IS NOT clause (David Rowley) A NULL value satisfies a clause such as boolcol IS NOT FALSE, so pruning away a partition containing NULLs yielded incorrect answers.", "commit_aliases": ["1b3495e29", "3850fcca6", "3ffcd24c2", "4c2369ac5", "f9c8f7ccd", "fb95cc72b"], "source_commits": ["1b3495e29"], "source_entry_id": "15.7/changes/005", "db_id": "cc683f011aab64292afebeb3e3e9850c", "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0", "relations": [{"rule": 2, "type": "equivalent", "target": "08fddef803675f53f6ab18fcd1a67874", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}}, {"rule": 2, "type": "equivalent", "target": "40cf15bbd1e4575dd686e322afac06bb", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}}, {"rule": 2, "type": "equivalent", "target": "b91de14004a5f3f7b37a602664a2346e", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}}, {"rule": 2, "type": "equivalent", "target": "fe409d3dafe4377bcd95a6e1456b7ae8", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "08fddef803675f53f6ab18fcd1a67874", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复当表按布尔列分区且查询含有布尔 IS NOT 子句时，对 NULL 分区的不正确修剪", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}, "url": "/docs/compare/?release=16.3#16.3-b98f74061eb703b1", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "fe409d3dafe4377bcd95a6e1456b7ae8", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复当表按布尔列分区且查询含有布尔 IS NOT 子句时，对 NULL 分区的不正确修剪", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}, "url": "/docs/compare/?release=14.12#14.12-76ebf9d45748b41f", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "40cf15bbd1e4575dd686e322afac06bb", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复当表按布尔列分区且查询含有布尔 IS NOT 子句时，对 NULL 分区的不正确修剪", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}, "url": "/docs/compare/?release=13.15#13.15-256b603ee7dfe7c4", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "b91de14004a5f3f7b37a602664a2346e", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复当表按布尔列分区且查询含有布尔 IS NOT 子句时，对 NULL 分区的不正确修剪", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}, "url": "/docs/compare/?release=12.19#12.19-171cac36b8b103da", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-200c122f1723193b", "cves": [], "html": "<p>使 <code>ALTER FOREIGN TABLE SET SCHEMA</code> 将所拥有的序列移到新模式中（Tom Lane）<a href=\"https://postgr.es/c/b48eda4e5\">§</a></p>\n<p>将常规表移到新模式会导致该表所拥有的序列也被移到该模式中（连同索引和约束）。但对于外部表，这一点被遗漏了。</p>", "text": "使 ALTER FOREIGN TABLE SET SCHEMA 将所拥有的序列移到新模式中（Tom Lane）§ 将常规表移到新模式会导致该表所拥有的序列也被移到该模式中（连同索引和约束）。但对于外部表，这一点被遗漏了。", "title": "使 ALTER FOREIGN TABLE SET SCHEMA 将所拥有的序列移到新模式中", "commits": ["b48eda4e5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "3f5ebbd087ac3c5e4d6558d75e5e153f555f5bd5defadf1971984e5a4c732b4c", "section_path": ["变更"], "commit_groups": [["66bbad581", "7445f0928", "97de2a159", "a8b740868", "b48eda4e5", "fad3b5b5a"]], "identity_text": "Make ALTER FOREIGN TABLE SET SCHEMA move any owned sequences into the new schema (Tom Lane) Moving a regular table to a new schema causes any sequences owned by the table to be moved to that schema too (along with indexes and constraints). This was overlooked for foreign tables, however.", "commit_aliases": ["66bbad581", "7445f0928", "97de2a159", "a8b740868", "b48eda4e5", "fad3b5b5a"], "source_commits": ["b48eda4e5"], "source_entry_id": "15.7/changes/006", "db_id": "769cae3d725b2bea33af3671538742b9", "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0", "relations": [{"rule": 2, "type": "equivalent", "target": "48b7ba94dd733c6edc7495dbc1492c04", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}}, {"rule": 2, "type": "equivalent", "target": "4be5419bd6b46edb6f7272280c3e507a", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}}, {"rule": 2, "type": "equivalent", "target": "dba8e3cd638b09b5c3afb8d28ba19920", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}}, {"rule": 2, "type": "equivalent", "target": "f590d69638ed5977544b4db5bcbfa763", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f590d69638ed5977544b4db5bcbfa763", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "使 ALTER FOREIGN TABLE SET SCHEMA 将所拥有的序列移到新模式中", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}, "url": "/docs/compare/?release=16.3#16.3-730b9768abe0a66f", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "4be5419bd6b46edb6f7272280c3e507a", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "使 ALTER FOREIGN TABLE SET SCHEMA 将所拥有的序列移到新模式中", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}, "url": "/docs/compare/?release=14.12#14.12-193dd46beec02441", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "dba8e3cd638b09b5c3afb8d28ba19920", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "使 ALTER FOREIGN TABLE SET SCHEMA 将所拥有的序列移到新模式中", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}, "url": "/docs/compare/?release=13.15#13.15-c22ecbe930e84c47", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "48b7ba94dd733c6edc7495dbc1492c04", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "使 ALTER FOREIGN TABLE SET SCHEMA 将所拥有的序列移到新模式中", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}, "url": "/docs/compare/?release=12.19#12.19-baa828f55b63c4ce", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-1674e6a71aeb43ec", "cves": [], "html": "<p>使 <code>ALTER TABLE ... ADD COLUMN</code> 创建的标识/serial 序列与其所属表具有相同的持久性（Peter Eisentraut）<a href=\"https://postgr.es/c/d17a3a4c6\">§</a></p>\n<p><code>CREATE UNLOGGED TABLE</code> 会使所拥有的序列也成为不记录 WAL 的。<code>ALTER TABLE</code> 遗漏了这一考虑，导致添加的标识列会有一个日志序列，这看起来毫无意义。</p>", "text": "使 ALTER TABLE ... ADD COLUMN 创建的标识/serial 序列与其所属表具有相同的持久性（Peter Eisentraut）§ CREATE UNLOGGED TABLE 会使所拥有的序列也成为不记录 WAL 的。ALTER TABLE 遗漏了这一考虑，导致添加的标识列会有一个日志序列，这看起来毫无意义。", "title": "使 ALTER TABLE ... ADD COLUMN 创建的标识/serial 序列与其所属表具有相同的持久性", "commits": ["d17a3a4c6"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "a116a8ba7f0d7789444c1304505cfbaa929baea3c46ac7a3f96822722fa28589", "section_path": ["变更"], "commit_groups": [["6743c5ae6", "86d2b434c", "d17a3a4c6"]], "identity_text": "Make ALTER TABLE ... ADD COLUMN create identity/serial sequences with the same persistence as their owning tables (Peter Eisentraut) CREATE UNLOGGED TABLE will make any owned sequences be unlogged too. ALTER TABLE missed that consideration, so that an added identity column would have a logged sequence, which seems pointless.", "commit_aliases": ["6743c5ae6", "86d2b434c", "d17a3a4c6"], "source_commits": ["d17a3a4c6"], "source_entry_id": "15.7/changes/007", "db_id": "65769f4bf1837e3deef300df99a8d77e", "patch_ids": ["df06fa817a43a06ef1ede6b7c8b81a24"], "statement_hash": "d49ab48c6326f764be1e41f4fca2b7115db7407832e18aa857ae0b335e5f8fa9", "relations": [{"rule": 2, "type": "equivalent", "target": "d56b89a58d04060d81ad01e869df5f12", "evidence": {"same_day": true, "patch_ids": ["df06fa817a43a06ef1ede6b7c8b81a24"], "statement_hash": "d49ab48c6326f764be1e41f4fca2b7115db7407832e18aa857ae0b335e5f8fa9"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d56b89a58d04060d81ad01e869df5f12", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "使 ALTER TABLE ... ADD COLUMN 创建的标识/serial 序列与其所属表具有相同的持久性", "evidence": {"same_day": true, "patch_ids": ["df06fa817a43a06ef1ede6b7c8b81a24"], "statement_hash": "d49ab48c6326f764be1e41f4fca2b7115db7407832e18aa857ae0b335e5f8fa9"}, "url": "/docs/compare/?release=16.3#16.3-c6a3719eb1550bb4", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}]}, {"id": "15.7-1076dd4fb781cc5e", "cves": [], "html": "<p>改进当存在依赖的函数或发布时 <code>ALTER TABLE ... ALTER COLUMN TYPE</code> 的错误消息（Tom Lane）<a href=\"https://postgr.es/c/5f4a1a0a7\">§</a> <a href=\"https://postgr.es/c/9b41d1d63\">§</a></p>", "text": "改进当存在依赖的函数或发布时 ALTER TABLE ... ALTER COLUMN TYPE 的错误消息（Tom Lane）§ §", "title": "改进当存在依赖的函数或发布时 ALTER TABLE ... ALTER COLUMN TYPE 的错误消息", "commits": ["5f4a1a0a7", "9b41d1d63"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "803e4d00ce759d882f952390882997700d5057578c5c673532e377b6f901aa6c", "section_path": ["变更"], "commit_groups": [["11d40a44b", "5f4a1a0a7", "91e7115b1"], ["42b041243", "617a23927", "9b41d1d63", "b19255ca6"]], "identity_text": "Improve ALTER TABLE ... ALTER COLUMN TYPE's error message when there is a dependent function or publication (Tom Lane)", "commit_aliases": ["11d40a44b", "42b041243", "5f4a1a0a7", "617a23927", "91e7115b1", "9b41d1d63", "b19255ca6"], "source_commits": ["5f4a1a0a7", "9b41d1d63"], "source_entry_id": "15.7/changes/008", "db_id": "20a595d91e64d219ea46dcff505ca264", "patch_ids": ["11963ca629d1711f9e0aa5009f9bd3f3", "2b38fd6d4730d8bf1e24faccbb9f7d86"], "statement_hash": "086b4a3824530f7df113a2ca0a2718bcefcf101f0770077deaaa640fafd3189c", "relations": [{"rule": 2, "type": "equivalent", "target": "345bf2f91ccbfadd199e3c5e645d7ca5", "evidence": {"same_day": true, "patch_ids": ["11963ca629d1711f9e0aa5009f9bd3f3", "2b38fd6d4730d8bf1e24faccbb9f7d86"], "statement_hash": "086b4a3824530f7df113a2ca0a2718bcefcf101f0770077deaaa640fafd3189c"}}, {"rule": 2, "type": "equivalent", "target": "c877a1a4507fb7e4229ef2443979f14c", "evidence": {"same_day": true, "patch_ids": ["11963ca629d1711f9e0aa5009f9bd3f3", "2b38fd6d4730d8bf1e24faccbb9f7d86"], "statement_hash": "086b4a3824530f7df113a2ca0a2718bcefcf101f0770077deaaa640fafd3189c"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c877a1a4507fb7e4229ef2443979f14c", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "改进当存在依赖的函数或发布时 ALTER TABLE ... ALTER COLUMN TYPE 的错误消息", "evidence": {"same_day": true, "patch_ids": ["11963ca629d1711f9e0aa5009f9bd3f3", "2b38fd6d4730d8bf1e24faccbb9f7d86"], "statement_hash": "086b4a3824530f7df113a2ca0a2718bcefcf101f0770077deaaa640fafd3189c"}, "url": "/docs/compare/?release=16.3#16.3-7f6e002db2c9c433", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "345bf2f91ccbfadd199e3c5e645d7ca5", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "改进当存在依赖的函数或发布时 ALTER TABLE ... ALTER COLUMN TYPE 的错误消息", "evidence": {"same_day": true, "patch_ids": ["11963ca629d1711f9e0aa5009f9bd3f3", "2b38fd6d4730d8bf1e24faccbb9f7d86"], "statement_hash": "086b4a3824530f7df113a2ca0a2718bcefcf101f0770077deaaa640fafd3189c"}, "url": "/docs/compare/?release=14.12#14.12-f1369013a84cd195", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}]}, {"id": "15.7-51cc3011853d6ac0", "cves": [], "html": "<p>在 <code>CREATE DATABASE</code> 中，以大小写不敏感的方式识别策略关键字，以与其他选项保持一致（Tomas Vondra）<a href=\"https://postgr.es/c/276b7888f\">§</a></p>", "text": "在 CREATE DATABASE 中，以大小写不敏感的方式识别策略关键字，以与其他选项保持一致（Tomas Vondra）§", "title": "在 CREATE DATABASE 中，以大小写不敏感的方式识别策略关键字，以与其他选项保持一致", "commits": ["276b7888f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "5324ecfd309ed89903103c749d3652bd9799b5ed02cca0ab2dd580e8cd306dc7", "section_path": ["变更"], "commit_groups": [["276b7888f", "8c239ee15", "9e6faeb32"]], "identity_text": "In CREATE DATABASE, recognize strategy keywords case-insensitively for consistency with other options (Tomas Vondra)", "commit_aliases": ["276b7888f", "8c239ee15", "9e6faeb32"], "source_commits": ["276b7888f"], "source_entry_id": "15.7/changes/009", "db_id": "91cdf1b956fac8893d38b8fec0c4de8c", "patch_ids": ["9a873a9c61d5bf9de79b86795971e3fa"], "statement_hash": "975a1df5b3e57f85e1e4f019c9961515553a8b0468e23bf8ebd35c67374cd824", "relations": [{"rule": 2, "type": "equivalent", "target": "0031aa7e16fa49735ad74aed96996ccd", "evidence": {"same_day": true, "patch_ids": ["9a873a9c61d5bf9de79b86795971e3fa"], "statement_hash": "975a1df5b3e57f85e1e4f019c9961515553a8b0468e23bf8ebd35c67374cd824"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0031aa7e16fa49735ad74aed96996ccd", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "在 CREATE DATABASE 中，以大小写不敏感的方式识别策略关键字，以与其他选项保持一致", "evidence": {"same_day": true, "patch_ids": ["9a873a9c61d5bf9de79b86795971e3fa"], "statement_hash": "975a1df5b3e57f85e1e4f019c9961515553a8b0468e23bf8ebd35c67374cd824"}, "url": "/docs/compare/?release=16.3#16.3-24e29400e27c33c3", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}]}, {"id": "15.7-8542c116b2fb8276", "cves": [], "html": "<p>修复 <code>EXPLAIN</code> 对位图堆扫描访问的堆页面的计数（Melanie Plageman）<a href=\"https://postgr.es/c/d3d95f583\">§</a></p>\n<p>之前，不包含可见元组的堆页面不被计数；但计算位图索引扫描返回的所有页面似乎更一致。</p>", "text": "修复 EXPLAIN 对位图堆扫描访问的堆页面的计数（Melanie Plageman）§ 之前，不包含可见元组的堆页面不被计数；但计算位图索引扫描返回的所有页面似乎更一致。", "title": "修复 EXPLAIN 对位图堆扫描访问的堆页面的计数", "commits": ["d3d95f583"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "47158d872ab02a846b996a88b857a449da2acac652fbf9715fe10d74f0245d3f", "section_path": ["变更"], "commit_groups": [["0960ae196", "1f4eb7342", "262757b73", "992189a3e", "d3d95f583", "f3e4581ac"]], "identity_text": "Fix EXPLAIN's counting of heap pages accessed by a bitmap heap scan (Melanie Plageman) Previously, heap pages that contain no visible tuples were not counted; but it seems more consistent to count all pages returned by the bitmap index scan.", "commit_aliases": ["0960ae196", "1f4eb7342", "262757b73", "992189a3e", "d3d95f583", "f3e4581ac"], "source_commits": ["d3d95f583"], "source_entry_id": "15.7/changes/010", "db_id": "5d8b1aeb779ca0047404aae006b5aff8", "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365", "relations": [{"rule": 2, "type": "equivalent", "target": "1e131317b75bec3af2685bf463b52c95", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}}, {"rule": 2, "type": "equivalent", "target": "55b97633d2336c4182f273c534c4403c", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}}, {"rule": 2, "type": "equivalent", "target": "a6781eb095c0575e3926a5f509629f7e", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}}, {"rule": 2, "type": "equivalent", "target": "e29ae7de221052c247dd975fc7572378", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e131317b75bec3af2685bf463b52c95", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 EXPLAIN 对位图堆扫描访问的堆页面的计数", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}, "url": "/docs/compare/?release=16.3#16.3-f9fbf726e413d526", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "55b97633d2336c4182f273c534c4403c", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复 EXPLAIN 对位图堆扫描访问的堆页面的计数", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}, "url": "/docs/compare/?release=14.12#14.12-9ac1a0bebef1e748", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "e29ae7de221052c247dd975fc7572378", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复 EXPLAIN 对位图堆扫描访问的堆页面的计数", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}, "url": "/docs/compare/?release=13.15#13.15-b577df214260669a", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "a6781eb095c0575e3926a5f509629f7e", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复 EXPLAIN 对位图堆扫描访问的堆页面的计数", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}, "url": "/docs/compare/?release=12.19#12.19-3d95a4f1e9bda0ed", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-fb99ca4d0b9d1006", "cves": [], "html": "<p>修复 <code>EXPLAIN</code> 对 <code>MERGE</code> 中子计划的输出（Dean Rasheed）<a href=\"https://postgr.es/c/89ee14a2f\">§</a></p>\n<p><code>EXPLAIN</code> 有时无法正确显示引用计划树其他部分中变量的子计划参数。</p>", "text": "修复 EXPLAIN 对 MERGE 中子计划的输出（Dean Rasheed）§ EXPLAIN 有时无法正确显示引用计划树其他部分中变量的子计划参数。", "title": "修复 EXPLAIN 对 MERGE 中子计划的输出", "commits": ["89ee14a2f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "1a857fff9349d7b4f514371390be70c3ade3f493ebfc113d8c1296688a8c7d03", "section_path": ["变更"], "commit_groups": [["33e729c51", "34c854b93", "89ee14a2f"]], "identity_text": "Fix EXPLAIN's output for subplans in MERGE (Dean Rasheed) EXPLAIN would sometimes fail to properly display subplan Params referencing variables in other parts of the plan tree.", "commit_aliases": ["33e729c51", "34c854b93", "89ee14a2f"], "source_commits": ["89ee14a2f"], "source_entry_id": "15.7/changes/011", "db_id": "5162898e1d2930e370711e9fe970d79d", "patch_ids": ["46a600e26e5824cb2b13e1186a752671"], "statement_hash": "c9d65ddff6ac35245b5178bc0e7945c3b776d3099320cd839c53c147101c3f2e", "relations": [{"rule": 2, "type": "equivalent", "target": "6c73a135ff93ad0a276ecb0e6da44eea", "evidence": {"same_day": true, "patch_ids": ["46a600e26e5824cb2b13e1186a752671"], "statement_hash": "c9d65ddff6ac35245b5178bc0e7945c3b776d3099320cd839c53c147101c3f2e"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6c73a135ff93ad0a276ecb0e6da44eea", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 EXPLAIN 对 MERGE 中子计划的输出", "evidence": {"same_day": true, "patch_ids": ["46a600e26e5824cb2b13e1186a752671"], "statement_hash": "c9d65ddff6ac35245b5178bc0e7945c3b776d3099320cd839c53c147101c3f2e"}, "url": "/docs/compare/?release=16.3#16.3-ed9ab561b9146d93", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}]}, {"id": "15.7-178852343a784d35", "cves": [], "html": "<p>避免在移除孤立临时表时出现死锁（Mikhail Zhilin）<a href=\"https://postgr.es/c/4fb56a734\">§</a></p>\n<p>如果创建临时表的会话在未移除该表的情况下崩溃，autovacuum 最终会尝试移除该孤立的表。然而，被分配了相同临时命名空间的新传入会话也会尝试这样做。如果临时表有依赖项（如拥有的序列），这两个清理尝试之间可能会产生死锁。</p>", "text": "避免在移除孤立临时表时出现死锁（Mikhail Zhilin）§ 如果创建临时表的会话在未移除该表的情况下崩溃，autovacuum 最终会尝试移除该孤立的表。然而，被分配了相同临时命名空间的新传入会话也会尝试这样做。如果临时表有依赖项（如拥有的序列），这两个清理尝试之间可能会产生死锁。", "title": "避免在移除孤立临时表时出现死锁", "commits": ["4fb56a734"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "94e899f10612045ff334b6a23cfbe797926b152e32c7c2053ad694ae1c94d519", "section_path": ["变更"], "commit_groups": [["4afc2c219", "4fb56a734", "6faca9ae2", "ca392df8d", "cbfbb14bd", "f5d9212e5"]], "identity_text": "Avoid deadlock during removal of orphaned temporary tables (Mikhail Zhilin) If the session that creates a temporary table crashes without removing the table, autovacuum will eventually try to remove the orphaned table. However, an incoming session that's been assigned the same temporary namespace will do that too. If a temporary table has a dependency (such as an owned sequence) then a deadlock could result between these two cleanup attempts.", "commit_aliases": ["4afc2c219", "4fb56a734", "6faca9ae2", "ca392df8d", "cbfbb14bd", "f5d9212e5"], "source_commits": ["4fb56a734"], "source_entry_id": "15.7/changes/012", "db_id": "fe708a1ceaa35d707899a2b3639c12ba", "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a", "relations": [{"rule": 2, "type": "equivalent", "target": "10db092e696e45f9d81a413968b84f80", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}}, {"rule": 2, "type": "equivalent", "target": "964b5974ae34a252057bb68172077f3b", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}}, {"rule": 2, "type": "equivalent", "target": "a0720dc32a33a298317c6bc4c4d54695", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}}, {"rule": 2, "type": "equivalent", "target": "a51b29547fb0a3c6e4c7e03971f30b2a", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a51b29547fb0a3c6e4c7e03971f30b2a", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "避免在移除孤立临时表时出现死锁", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}, "url": "/docs/compare/?release=16.3#16.3-5468b62e569aaa42", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "a0720dc32a33a298317c6bc4c4d54695", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "避免在移除孤立临时表时出现死锁", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}, "url": "/docs/compare/?release=14.12#14.12-dd3d8b7400eb4629", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "10db092e696e45f9d81a413968b84f80", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "避免在移除孤立临时表时出现死锁", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}, "url": "/docs/compare/?release=13.15#13.15-876d2219530d8093", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "964b5974ae34a252057bb68172077f3b", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "避免在移除孤立临时表时出现死锁", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}, "url": "/docs/compare/?release=12.19#12.19-df96b0e59c03c393", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-3d6adc0a11d543c2", "cves": [], "html": "<p>避免在检查每个关系的冻结 XID 值时出现竞态条件（Noah Misch）<a href=\"https://postgr.es/c/7c5915c4b\">§</a></p>\n<p><code>VACUUM</code> 从每个关系的值计算每个数据库的冻结 XID 值时，可能会被另一个 <code>VACUUM</code> 对这些值的并发更新所混淆。</p>", "text": "避免在检查每个关系的冻结 XID 值时出现竞态条件（Noah Misch）§ VACUUM 从每个关系的值计算每个数据库的冻结 XID 值时，可能会被另一个 VACUUM 对这些值的并发更新所混淆。", "title": "避免在检查每个关系的冻结 XID 值时出现竞态条件", "commits": ["7c5915c4b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "b6a4c7f42965124cfa4a4f2fdafae342185fd28b4e9ef28487f1559f5573f194", "section_path": ["变更"], "commit_groups": [["2ca19aa81", "70cadfba0", "7c5915c4b", "92685c389", "f222349c4", "f65ab862e"]], "identity_text": "Avoid race condition while examining per-relation frozen-XID values (Noah Misch) VACUUM's computation of per-database frozen-XID values from per-relation values could get confused by a concurrent update of those values by another VACUUM.", "commit_aliases": ["2ca19aa81", "70cadfba0", "7c5915c4b", "92685c389", "f222349c4", "f65ab862e"], "source_commits": ["7c5915c4b"], "source_entry_id": "15.7/changes/013", "db_id": "b6b2e184cf5ac50af437324df4b7fa3a", "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e", "relations": [{"rule": 2, "type": "equivalent", "target": "13e273c9f4378a389d69634bdd78108c", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}}, {"rule": 2, "type": "equivalent", "target": "3d9f28ddfd2eb05755c08bb786cd6fd9", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}}, {"rule": 2, "type": "equivalent", "target": "809daebba1356e23f547ac4b3b41a780", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}}, {"rule": 2, "type": "equivalent", "target": "a4d682d73353370cf3daca302e5cf890", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a4d682d73353370cf3daca302e5cf890", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "避免在检查每个关系的冻结 XID 值时出现竞态条件", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}, "url": "/docs/compare/?release=16.3#16.3-64f8786e84c48e8f", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "13e273c9f4378a389d69634bdd78108c", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "避免在检查每个关系的冻结 XID 值时出现竞态条件", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}, "url": "/docs/compare/?release=14.12#14.12-d4f38d1f08369e91", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "809daebba1356e23f547ac4b3b41a780", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "避免在检查每个关系的冻结 XID 值时出现竞态条件", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}, "url": "/docs/compare/?release=13.15#13.15-6f84d98eb4c86235", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "3d9f28ddfd2eb05755c08bb786cd6fd9", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "避免在检查每个关系的冻结 XID 值时出现竞态条件", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}, "url": "/docs/compare/?release=12.19#12.19-ee7edbaaeb1b4fc5", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-e733d3d66db0bf63", "cves": [], "html": "<p>修复并行 vacuum 的缓冲区使用报告（Anthonin Bonnefoy）<a href=\"https://postgr.es/c/faba2f8f3\">§</a></p>\n<p>并行工作进程执行的缓冲区访问没有被计入 <code>VERBOSE</code> 模式下报告的统计信息中。</p>", "text": "修复并行 vacuum 的缓冲区使用报告（Anthonin Bonnefoy）§ 并行工作进程执行的缓冲区访问没有被计入 VERBOSE 模式下报告的统计信息中。", "title": "修复并行 vacuum 的缓冲区使用报告", "commits": ["faba2f8f3"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "23b973ed51928bf680ae56d80182f54b14862eb530a9ecb5947a24e0aa536ba3", "section_path": ["变更"], "commit_groups": [["5cd72cc0c", "f199436c1", "faba2f8f3"]], "identity_text": "Fix buffer usage reporting for parallel vacuuming (Anthonin Bonnefoy) Buffer accesses performed by parallel workers were not getting counted in the statistics reported in VERBOSE mode.", "commit_aliases": ["5cd72cc0c", "f199436c1", "faba2f8f3"], "source_commits": ["faba2f8f3"], "source_entry_id": "15.7/changes/014", "db_id": "7d2c3492c14a872d43f8df29cce589c1", "patch_ids": ["3641d1ebeaa28c676612fe5da95ce6a7"], "statement_hash": "3cec309c3dbf10a0f5b360dc128a33611c2d55c7434cbe4c3184ef054d1c563b", "relations": [{"rule": 2, "type": "equivalent", "target": "7611b4b99caad046fa6087941fdb5b24", "evidence": {"same_day": true, "patch_ids": ["3641d1ebeaa28c676612fe5da95ce6a7"], "statement_hash": "3cec309c3dbf10a0f5b360dc128a33611c2d55c7434cbe4c3184ef054d1c563b"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7611b4b99caad046fa6087941fdb5b24", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复并行 vacuum 的缓冲区使用报告", "evidence": {"same_day": true, "patch_ids": ["3641d1ebeaa28c676612fe5da95ce6a7"], "statement_hash": "3cec309c3dbf10a0f5b360dc128a33611c2d55c7434cbe4c3184ef054d1c563b"}, "url": "/docs/compare/?release=16.3#16.3-3cde0e2bfb000367", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}]}, {"id": "15.7-0504fc84ba1ca51f", "cves": [], "html": "<p>禁止在使用该表的外部 SQL 命令内将表转换为视图（Tom Lane）<a href=\"https://postgr.es/c/bf379b555\">§</a></p>\n<p>这避免了可能的崩溃。</p>", "text": "禁止在使用该表的外部 SQL 命令内将表转换为视图（Tom Lane）§ 这避免了可能的崩溃。", "title": "禁止在使用该表的外部 SQL 命令内将表转换为视图", "commits": ["bf379b555"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "e3aee572ede05be508315c6923f6d7b52a454a067096195684264746e450560c", "section_path": ["变更"], "commit_groups": [["1ee22d1e8", "51189f98a", "56d30fb10", "bf379b555"]], "identity_text": "Disallow converting a table to a view within an outer SQL command that is using that table (Tom Lane) This avoids possible crashes.", "commit_aliases": ["1ee22d1e8", "51189f98a", "56d30fb10", "bf379b555"], "source_commits": ["bf379b555"], "source_entry_id": "15.7/changes/015", "db_id": "a93eefe6ff67a6064cdc7a0cc15a9961", "patch_ids": ["1927dffeaf6a13f58425a8f4ac03504e"], "statement_hash": "f70462682298f994593b1a46a3e560df6441eb215e899f5fe11cfe56baa9e391", "relations": [{"rule": 2, "type": "equivalent", "target": "6b49dac890f665fe1ea6667c5bea5aa8", "evidence": {"same_day": true, "patch_ids": ["1927dffeaf6a13f58425a8f4ac03504e"], "statement_hash": "f70462682298f994593b1a46a3e560df6441eb215e899f5fe11cfe56baa9e391"}}, {"rule": 2, "type": "equivalent", "target": "8af18255133e20e702c292d4a08aceb6", "evidence": {"same_day": true, "patch_ids": ["1927dffeaf6a13f58425a8f4ac03504e"], "statement_hash": "f70462682298f994593b1a46a3e560df6441eb215e899f5fe11cfe56baa9e391"}}, {"rule": 2, "type": "equivalent", "target": "98a2f15bd92d2bcd2a3a9147a7871fdb", "evidence": {"same_day": true, "patch_ids": ["1927dffeaf6a13f58425a8f4ac03504e"], "statement_hash": "f70462682298f994593b1a46a3e560df6441eb215e899f5fe11cfe56baa9e391"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "98a2f15bd92d2bcd2a3a9147a7871fdb", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "禁止在使用该表的外部 SQL 命令内将表转换为视图", "evidence": {"same_day": true, "patch_ids": ["1927dffeaf6a13f58425a8f4ac03504e"], "statement_hash": "f70462682298f994593b1a46a3e560df6441eb215e899f5fe11cfe56baa9e391"}, "url": "/docs/compare/?release=14.12#14.12-0504fc84ba1ca51f", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "8af18255133e20e702c292d4a08aceb6", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "禁止在使用该表的外部 SQL 命令中将表转换为视图", "evidence": {"same_day": true, "patch_ids": ["1927dffeaf6a13f58425a8f4ac03504e"], "statement_hash": "f70462682298f994593b1a46a3e560df6441eb215e899f5fe11cfe56baa9e391"}, "url": "/docs/compare/?release=13.15#13.15-b0b5f6bccc9acc9c", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "6b49dac890f665fe1ea6667c5bea5aa8", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "禁止在使用该表的外部 SQL 命令中将表转换为视图", "evidence": {"same_day": true, "patch_ids": ["1927dffeaf6a13f58425a8f4ac03504e"], "statement_hash": "f70462682298f994593b1a46a3e560df6441eb215e899f5fe11cfe56baa9e391"}, "url": "/docs/compare/?release=12.19#12.19-d57efc2030cebeb4", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-22e8e29f4c12ad32", "cves": [], "html": "<p>确保从等价类生成的连接条件在正确的计划层级应用（Tom Lane）<a href=\"https://postgr.es/c/5aacfa64e\">§</a></p>\n<p>在 <span>PostgreSQL</span> 16 之前的版本中，生成的条件可能在外连接下方被评估，而实际上应在外连接上方（之后）评估，导致不正确的查询结果。所有版本在考虑连接到具有部分 <code>SELECT</code> 分支中连接列为常量输出的 <code>UNION ALL</code> 树时都有类似的隐患。</p>", "text": "确保从等价类生成的连接条件在正确的计划层级应用（Tom Lane）§ 在 PostgreSQL 16 之前的版本中，生成的条件可能在外连接下方被评估，而实际上应在外连接上方（之后）评估，导致不正确的查询结果。所有版本在考虑连接到具有部分 SELECT 分支中连接列为常量输出的 UNION ALL 树时都有类似的隐患。", "title": "确保从等价类生成的连接条件在正确的计划层级应用", "commits": ["5aacfa64e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "af26cea4111c13070a6af9ab01fde21c941b90dcb9003c5708d173b4d3eeca3b", "section_path": ["变更"], "commit_groups": [["03107b4ed", "5aacfa64e", "91800af13", "ab2402268", "d9e4ee74f", "f502849d4"]], "identity_text": "Ensure that join conditions generated from equivalence classes are applied at the correct plan level (Tom Lane) In versions before PostgreSQL 16, it was possible for generated conditions to be evaluated below outer joins when they should be evaluated above (after) the outer join, leading to incorrect query results. All versions have a similar hazard when considering joins to UNION ALL trees that have constant outputs for the join column in some SELECT arms.", "commit_aliases": ["03107b4ed", "5aacfa64e", "91800af13", "ab2402268", "d9e4ee74f", "f502849d4"], "source_commits": ["5aacfa64e"], "source_entry_id": "15.7/changes/016", "db_id": "c622b2e4abdaec72b7c705d5abf61eb0", "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f", "relations": [{"rule": 2, "type": "equivalent", "target": "3fc24704e6a654b4fd0f280d874a1eec", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}}, {"rule": 2, "type": "equivalent", "target": "658c63a7eef27926f18eca85f44a760d", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}}, {"rule": 2, "type": "equivalent", "target": "7353821ce1638b590672d6e885ea72f1", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}}, {"rule": 2, "type": "equivalent", "target": "bd63c9d1ec0c6ccfbab694b9888bd6cf", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bd63c9d1ec0c6ccfbab694b9888bd6cf", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "确保从等价类生成的连接条件在正确的计划层级应用", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}, "url": "/docs/compare/?release=16.3#16.3-d024cce96976efd0", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "3fc24704e6a654b4fd0f280d874a1eec", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "确保从等价类生成的连接条件在正确的计划层级应用", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}, "url": "/docs/compare/?release=14.12#14.12-7f2ba0b3f6da6eeb", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "7353821ce1638b590672d6e885ea72f1", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "确保从等价类生成的连接条件在正确的计划层级应用", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}, "url": "/docs/compare/?release=13.15#13.15-e8521d5a8d200d78", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "658c63a7eef27926f18eca85f44a760d", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "确保从等价类生成的连接条件在正确的计划层级应用", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}, "url": "/docs/compare/?release=12.19#12.19-38af96fc2aaf3868", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-50c4c3834e4f097b", "cves": [], "html": "<p>防止某些窗口函数的可能不正确的优化（David Rowley）<a href=\"https://postgr.es/c/9d36b883b\">§</a></p>\n<p>禁用对带有非常量参数的 <code>ntile()</code> 和 <code>count()</code> 的<span>“<span>运行条件</span>”</span>优化。这避免了子查询可能导致的异常行为，通常会产生诸如 <span>“<span>WindowFunc not found in subplan target lists</span>”</span> 之类的错误。</p>", "text": "防止某些窗口函数的可能不正确的优化（David Rowley）§ 禁用对带有非常量参数的 ntile() 和 count() 的“运行条件”优化。这避免了子查询可能导致的异常行为，通常会产生诸如 “WindowFunc not found in subplan target lists” 之类的错误。", "title": "防止某些窗口函数的可能不正确的优化", "commits": ["9d36b883b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "75427e59846d71960c4536aa937f607e175b10551b4660c8f6fb5c3a66cf3cd5", "section_path": ["变更"], "commit_groups": [["7e5d20bbd", "9d36b883b"]], "identity_text": "Prevent potentially-incorrect optimization of some window functions (David Rowley) Disable run condition optimization of ntile() and count() with non-constant arguments. This avoids possible misbehavior with sub-selects, typically leading to errors like WindowFunc not found in subplan target lists.", "commit_aliases": ["7e5d20bbd", "9d36b883b"], "source_commits": ["7e5d20bbd"], "source_entry_id": "15.7/changes/017", "db_id": "5334fcd37d70b5396d38cdc3641234bf", "patch_ids": ["80af7016a4f87dfebafbf96511919c00"], "statement_hash": "115fbf68fbfa58ad7d6fd25e8a560cd8a1326988f405017fbac6ff94b1c0ec48", "relations": [{"rule": 2, "type": "equivalent", "target": "f3fed149d5b61494b9c48d780d9debe1", "evidence": {"same_day": true, "patch_ids": ["80af7016a4f87dfebafbf96511919c00"], "statement_hash": "115fbf68fbfa58ad7d6fd25e8a560cd8a1326988f405017fbac6ff94b1c0ec48"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f3fed149d5b61494b9c48d780d9debe1", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "防止某些窗口函数的可能不正确的优化", "evidence": {"same_day": true, "patch_ids": ["80af7016a4f87dfebafbf96511919c00"], "statement_hash": "115fbf68fbfa58ad7d6fd25e8a560cd8a1326988f405017fbac6ff94b1c0ec48"}, "url": "/docs/compare/?release=16.3#16.3-50c4c3834e4f097b", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}]}, {"id": "15.7-5bd59c50ba56bf34", "cves": [], "html": "<p>避免在非移动窗口帧中不必要地使用移动聚合模式（Vallimaharajan G）<a href=\"https://postgr.es/c/03561a6c7\">§</a></p>\n<p>当普通聚合作为窗口函数使用，且窗口帧起始指定为 <code>UNBOUNDED PRECEDING</code> 时，帧的头部无法移动，因此我们不需要使用特殊的（且更昂贵的）移动聚合模式。这个优化一直是预期的，但由于编码错误从未被触发。</p>", "text": "避免在非移动窗口帧中不必要地使用移动聚合模式（Vallimaharajan G）§ 当普通聚合作为窗口函数使用，且窗口帧起始指定为 UNBOUNDED PRECEDING 时，帧的头部无法移动，因此我们不需要使用特殊的（且更昂贵的）移动聚合模式。这个优化一直是预期的，但由于编码错误从未被触发。", "title": "避免在非移动窗口帧中不必要地使用移动聚合模式", "commits": ["03561a6c7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "37e45ebff4123c9b90635ca28d24e329f78d479534d0638a1cf7a15168c5ac72", "section_path": ["变更"], "commit_groups": [["03561a6c7", "0d30e48c2", "25675c474", "a767cdc84", "a94f51a7b", "de3c5b187"]], "identity_text": "Avoid unnecessary use of moving-aggregate mode with a non-moving window frame (Vallimaharajan G) When a plain aggregate is used as a window function, and the window frame start is specified as UNBOUNDED PRECEDING, the frame's head cannot move so we do not need to use the special (and more expensive) moving-aggregate mode. This optimization was intended all along, but due to a coding error it never triggered.", "commit_aliases": ["03561a6c7", "0d30e48c2", "25675c474", "a767cdc84", "a94f51a7b", "de3c5b187"], "source_commits": ["03561a6c7"], "source_entry_id": "15.7/changes/018", "db_id": "cac74bac165a12ad82398067235c2204", "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde", "relations": [{"rule": 2, "type": "equivalent", "target": "6e5d17d552d55b32c183c979462a22aa", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}}, {"rule": 2, "type": "equivalent", "target": "8336fdf7b47048506e3166ce83a5ac54", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}}, {"rule": 2, "type": "equivalent", "target": "bf991f789c2d125d6fee000622467111", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}}, {"rule": 2, "type": "equivalent", "target": "d00b710d360a1db439f86ca9d0837cfc", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6e5d17d552d55b32c183c979462a22aa", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "避免在非移动窗口帧中不必要地使用移动聚合模式", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}, "url": "/docs/compare/?release=16.3#16.3-8265df4a254b21bc", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "d00b710d360a1db439f86ca9d0837cfc", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "避免在非移动窗口帧中不必要地使用移动聚合模式", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}, "url": "/docs/compare/?release=14.12#14.12-b0d248b556564306", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "bf991f789c2d125d6fee000622467111", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "避免在非移动窗口帧中不必要地使用移动聚合模式", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}, "url": "/docs/compare/?release=13.15#13.15-7abdd63cbda6763b", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "8336fdf7b47048506e3166ce83a5ac54", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "避免在非移动窗口帧中不必要地使用移动聚合模式", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}, "url": "/docs/compare/?release=12.19#12.19-f885a24ff8dcb03f", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-768c63d0b2dacf7f", "cves": [], "html": "<p>避免在 GEQO 下规划按分区连接时使用已释放的数据（Tom Lane）<a href=\"https://postgr.es/c/37bbe3d3a\">§</a></p>\n<p>这通常会以崩溃或意外的错误消息告终。</p>", "text": "避免在 GEQO 下规划按分区连接时使用已释放的数据（Tom Lane）§ 这通常会以崩溃或意外的错误消息告终。", "title": "避免在 GEQO 下规划按分区连接时使用已释放的数据", "commits": ["37bbe3d3a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "c341f2eac29917e35e5ee90ff66b80cf8bb6cd644eacb0a1d592d17731ebd02b", "section_path": ["变更"], "commit_groups": [["37bbe3d3a", "9061fd23c", "a6b2a51e1", "cbeb45527", "cf807eba5", "ef0333e67"]], "identity_text": "Avoid use of already-freed data while planning partition-wise joins under GEQO (Tom Lane) This would typically end in a crash or unexpected error message.", "commit_aliases": ["37bbe3d3a", "9061fd23c", "a6b2a51e1", "cbeb45527", "cf807eba5", "ef0333e67"], "source_commits": ["37bbe3d3a"], "source_entry_id": "15.7/changes/019", "db_id": "0d3074cad771d5db9fea1fd758e762a2", "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4", "relations": [{"rule": 2, "type": "equivalent", "target": "3dd3e41288a97f5ade642248609f3e48", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}}, {"rule": 2, "type": "equivalent", "target": "81d8ad265d4f8152f8d294828e2b3653", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}}, {"rule": 2, "type": "equivalent", "target": "d2e09b93d7b8a33572885d7757e4b8b2", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}}, {"rule": 2, "type": "equivalent", "target": "f566d302f941aee4baf53034a6f28f36", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3dd3e41288a97f5ade642248609f3e48", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "避免在 GEQO 下规划按分区连接时使用已释放的数据", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}, "url": "/docs/compare/?release=16.3#16.3-faa46a51e132171b", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "81d8ad265d4f8152f8d294828e2b3653", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "避免在 GEQO 下规划按分区连接时使用已释放的数据", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}, "url": "/docs/compare/?release=14.12#14.12-96760e4ceef8c129", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "f566d302f941aee4baf53034a6f28f36", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "避免在 GEQO 下规划按分区连接时使用已释放的数据", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}, "url": "/docs/compare/?release=13.15#13.15-00e114a6a75f068b", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "d2e09b93d7b8a33572885d7757e4b8b2", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "避免在 GEQO 下规划按分区连接时使用已释放的数据", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}, "url": "/docs/compare/?release=12.19#12.19-4fa5a5f2c77c3473", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-34144e747d3c9456", "cves": [], "html": "<p>避免在 Memoize 中释放仍在使用的数据（Tender Wang，Andrei Lepikhov）<a href=\"https://postgr.es/c/74530804f\">§</a></p>\n<p>在生产构建中，此错误通常不会造成任何问题，因为被释放的数据在被使用之前极有可能不会被覆盖。</p>", "text": "避免在 Memoize 中释放仍在使用的数据（Tender Wang，Andrei Lepikhov）§ 在生产构建中，此错误通常不会造成任何问题，因为被释放的数据在被使用之前极有可能不会被覆盖。", "title": "避免在 Memoize 中释放仍在使用的数据", "commits": ["74530804f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "49c796a4da40848abe5da407b933bfb2670b802971220247bfe0ad407cb61276", "section_path": ["变更"], "commit_groups": [["348233cb1", "72b8507db", "74530804f", "e62984647"]], "identity_text": "Avoid freeing still-in-use data in Memoize (Tender Wang, Andrei Lepikhov) In production builds this error frequently didn't cause any problems, as the freed data would most likely not get overwritten before it was used.", "commit_aliases": ["348233cb1", "72b8507db", "74530804f", "e62984647"], "source_commits": ["74530804f"], "source_entry_id": "15.7/changes/020", "db_id": "8b1db8996368dc4bc20d19b739216bba", "patch_ids": ["6da87f6363264d33dbd62a11d866d767"], "statement_hash": "d998352c48f7bb752cce49e8a1a32a2d7a5cf9ca03ee50a73b4b83b6f5c5000a", "relations": [{"rule": 2, "type": "equivalent", "target": "0e736c31d9f2cec4e84dc6ab634f14a9", "evidence": {"same_day": true, "patch_ids": ["6da87f6363264d33dbd62a11d866d767"], "statement_hash": "d998352c48f7bb752cce49e8a1a32a2d7a5cf9ca03ee50a73b4b83b6f5c5000a"}}, {"rule": 2, "type": "equivalent", "target": "130f3a5d336f8992c1f178ef3f1ebb92", "evidence": {"same_day": true, "patch_ids": ["6da87f6363264d33dbd62a11d866d767"], "statement_hash": "d998352c48f7bb752cce49e8a1a32a2d7a5cf9ca03ee50a73b4b83b6f5c5000a"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "130f3a5d336f8992c1f178ef3f1ebb92", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "避免在 Memoize 中释放仍在使用的数据", "evidence": {"same_day": true, "patch_ids": ["6da87f6363264d33dbd62a11d866d767"], "statement_hash": "d998352c48f7bb752cce49e8a1a32a2d7a5cf9ca03ee50a73b4b83b6f5c5000a"}, "url": "/docs/compare/?release=16.3#16.3-f7de5aa2ac15a29e", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "0e736c31d9f2cec4e84dc6ab634f14a9", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "避免在 Memoize 中释放仍在使用的数据", "evidence": {"same_day": true, "patch_ids": ["6da87f6363264d33dbd62a11d866d767"], "statement_hash": "d998352c48f7bb752cce49e8a1a32a2d7a5cf9ca03ee50a73b4b83b6f5c5000a"}, "url": "/docs/compare/?release=14.12#14.12-6a542da4177cb40b", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}]}, {"id": "15.7-4cc07fc08b3f26d4", "cves": [], "html": "<p>修复 <span>“<span>requested statistics kind <em><code>X</code></em> is not yet built</span>”</span> 错误消息中不正确报告的统计类型代码（David Rowley）<a href=\"https://postgr.es/c/164fe7a6e\">§</a></p>", "text": "修复 “requested statistics kind X is not yet built” 错误消息中不正确报告的统计类型代码（David Rowley）§", "title": "修复 “requested statistics kind X is not yet built” 错误消息中不正确报告的统计类型代码", "commits": ["164fe7a6e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "04e2def2f4c98bc3b821eb65e3ad64619b04bc2664f200e07f056c2103e5e21a", "section_path": ["变更"], "commit_groups": [["0c2dda109", "164fe7a6e", "421dfb41a", "94246405d", "a37a3e2b3", "ac7e6a01c"]], "identity_text": "Fix incorrectly-reported statistics kind codes in requested statistics kind X is not yet built error messages (David Rowley)", "commit_aliases": ["0c2dda109", "164fe7a6e", "421dfb41a", "94246405d", "a37a3e2b3", "ac7e6a01c"], "source_commits": ["164fe7a6e"], "source_entry_id": "15.7/changes/021", "db_id": "96216a61cccc2166c588572e759eef6e", "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b", "relations": [{"rule": 2, "type": "equivalent", "target": "3bae63f86b462faa8a56f1c4af14c978", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}}, {"rule": 2, "type": "equivalent", "target": "a7c91504aaffc16f12a040830840c4b5", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}}, {"rule": 2, "type": "equivalent", "target": "ac2a4c3f6aab6fcbeebd9f1123df5d98", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}}, {"rule": 2, "type": "equivalent", "target": "ea94ce14bbdae05e469124c184f01c03", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3bae63f86b462faa8a56f1c4af14c978", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 “requested statistics kind X is not yet built” 错误消息中不正确报告的统计类型代码", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}, "url": "/docs/compare/?release=16.3#16.3-49c5210a71e06032", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "ea94ce14bbdae05e469124c184f01c03", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复 “requested statistics kind X is not yet built” 错误消息中不正确报告的统计类型代码", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}, "url": "/docs/compare/?release=14.12#14.12-797bcd1e14baa92e", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "a7c91504aaffc16f12a040830840c4b5", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复 “requested statistics kind X is not yet built” 错误消息中不正确报告的统计类型代码", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}, "url": "/docs/compare/?release=13.15#13.15-48e3af890f45a200", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "ac2a4c3f6aab6fcbeebd9f1123df5d98", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复 “requested statistics kind X is not yet built” 错误消息中不正确报告的统计类型代码", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}, "url": "/docs/compare/?release=12.19#12.19-a7cb15ec680b6880", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-7bc83505f9f2bfed", "cves": [], "html": "<p>更加小心地处理 <code>FROM</code> 中返回 <code>RECORD</code> 的函数（Tom Lane）<a href=\"https://postgr.es/c/09989ba84\">§</a> <a href=\"https://postgr.es/c/3b671dcf5\">§</a></p>\n<p>此类函数调用的输出列必须由指定列名和数据类型的 <code>AS</code> 子句来定义。如果实际的函数输出值不匹配，应在运行时抛出错误。然而，某些代码路径会过早检查实际值，如果不符合预期可能会发出奇怪的错误或触发断言失败。</p>", "text": "更加小心地处理 FROM 中返回 RECORD 的函数（Tom Lane）§ § 此类函数调用的输出列必须由指定列名和数据类型的 AS 子句来定义。如果实际的函数输出值不匹配，应在运行时抛出错误。然而，某些代码路径会过早检查实际值，如果不符合预期可能会发出奇怪的错误或触发断言失败。", "title": "更加小心地处理 FROM 中返回 RECORD 的函数", "commits": ["09989ba84", "3b671dcf5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "3c90b8f8ea116be75bc755f20e0193deaad35d3372a19e815373dfe59a6c000b", "section_path": ["变更"], "commit_groups": [["09989ba84", "78e81e14d", "b6e21cef7", "cc1eb6a3c", "e0970862e", "e0df80828"], ["1b3029be5", "2ed8f9a01", "3b671dcf5", "466376c9f", "a595c3075", "d769f9d97"]], "identity_text": "Be more careful with RECORD-returning functions in FROM (Tom Lane) The output columns of such a function call must be defined by an AS clause that specifies the column names and data types. If the actual function output value doesn't match that, an error is supposed to be thrown at runtime. However, some code paths would examine the actual value prematurely, and potentially issue strange errors or suffer assertion failures if it doesn't match expectations.", "commit_aliases": ["09989ba84", "1b3029be5", "2ed8f9a01", "3b671dcf5", "466376c9f", "78e81e14d", "a595c3075", "b6e21cef7", "cc1eb6a3c", "d769f9d97", "e0970862e", "e0df80828"], "source_commits": ["09989ba84", "3b671dcf5"], "source_entry_id": "15.7/changes/022", "db_id": "65e810e8c912f8a884e9ddbc133c3d3a", "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147", "relations": [{"rule": 2, "type": "equivalent", "target": "7f97214ef7881e110459fdb50a9c792a", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}}, {"rule": 2, "type": "equivalent", "target": "ac65ec3b85e1e3074b66b144e5a07c7f", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}}, {"rule": 2, "type": "equivalent", "target": "af397873d66e6409c512a0c15e4d45c7", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}}, {"rule": 2, "type": "equivalent", "target": "ba5546707dea053d6afe810f69e3a7d8", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7f97214ef7881e110459fdb50a9c792a", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "更加小心地处理 FROM 中返回 RECORD 的函数", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}, "url": "/docs/compare/?release=16.3#16.3-8bbad756138ac4e2", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "ac65ec3b85e1e3074b66b144e5a07c7f", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "更加小心地处理 FROM 中返回 RECORD 的函数", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}, "url": "/docs/compare/?release=14.12#14.12-ff77d629a9941b32", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "ba5546707dea053d6afe810f69e3a7d8", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "更加小心地处理 FROM 中返回 RECORD 的函数", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}, "url": "/docs/compare/?release=13.15#13.15-e8c4fd4fbca2483f", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "af397873d66e6409c512a0c15e4d45c7", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "更加小心地处理 FROM 中返回 RECORD 的函数", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}, "url": "/docs/compare/?release=12.19#12.19-469263d163f6b829", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-b4cbe468fe92e106", "cves": [], "html": "<p>修复 SQL 语言过程的返回行类型混淆（Tom Lane）<a href=\"https://postgr.es/c/6f66fadad\">§</a></p>\n<p>以 SQL 语言实现的返回单个复合类型列的过程会导致断言失败或核心转储。</p>", "text": "修复 SQL 语言过程的返回行类型混淆（Tom Lane）§ 以 SQL 语言实现的返回单个复合类型列的过程会导致断言失败或核心转储。", "title": "修复 SQL 语言过程的返回行类型混淆", "commits": ["6f66fadad"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "ca565ab7352e069b8d18dc78b2cc1d76c64b58f8fde091f8ce3e844b9ef10b3b", "section_path": ["变更"], "commit_groups": [["28184f039", "40d1bdeb7", "649bbba11", "6ee3261e9", "6f66fadad", "dc1503d5b"]], "identity_text": "Fix confusion about the return rowtype of SQL-language procedures (Tom Lane) A procedure implemented in SQL language that returns a single composite-type column would cause an assertion failure or core dump.", "commit_aliases": ["28184f039", "40d1bdeb7", "649bbba11", "6ee3261e9", "6f66fadad", "dc1503d5b"], "source_commits": ["6f66fadad"], "source_entry_id": "15.7/changes/023", "db_id": "30f7289da67770943e16b25af0acfdb4", "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb", "relations": [{"rule": 2, "type": "equivalent", "target": "023c54df706ee17ccaa4c565805fd806", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}}, {"rule": 2, "type": "equivalent", "target": "9d8d6ce7a5f9b71970a05f5179b6ea8c", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}}, {"rule": 2, "type": "equivalent", "target": "a22f286d39d214d58842d7debd01428c", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}}, {"rule": 2, "type": "equivalent", "target": "eeade529b7fad1faa79eecdcd364518f", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d8d6ce7a5f9b71970a05f5179b6ea8c", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 SQL 语言过程的返回行类型混淆", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}, "url": "/docs/compare/?release=16.3#16.3-a8d3e266822511f9", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "a22f286d39d214d58842d7debd01428c", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复 SQL 语言过程的返回行类型混淆", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}, "url": "/docs/compare/?release=14.12#14.12-f60bfd7284b1281f", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "023c54df706ee17ccaa4c565805fd806", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复 SQL 语言过程的返回行类型混淆", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}, "url": "/docs/compare/?release=13.15#13.15-2de9a9de6e63c87e", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "eeade529b7fad1faa79eecdcd364518f", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复 SQL 语言过程的返回行类型混淆", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}, "url": "/docs/compare/?release=12.19#12.19-dc898f149d6e82a6", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-58945555e92d562d", "cves": [], "html": "<p>为一些递归函数增加保护性栈深度检查（Egor Chindyaskin）<a href=\"https://postgr.es/c/84788ee5b\">§</a></p>", "text": "为一些递归函数增加保护性栈深度检查（Egor Chindyaskin）§", "title": "为一些递归函数增加保护性栈深度检查", "commits": ["84788ee5b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "2110c05fb724347b2b456f279d892e9583051235093259e505c2cbf3d48e58ed", "section_path": ["变更"], "commit_groups": [["445c7e38f", "75bcba6cb", "760767182", "84788ee5b", "84cc1a552", "98bfb7558"], ["d57b7cc33"]], "identity_text": "Add protective stack depth checks to some recursive functions (Egor Chindyaskin)", "commit_aliases": ["445c7e38f", "75bcba6cb", "760767182", "84788ee5b", "84cc1a552", "98bfb7558", "d57b7cc33"], "source_commits": ["84788ee5b", "d57b7cc33"], "source_entry_id": "15.7/changes/024", "db_id": "45d96b7a15765eefff3b721838af3101", "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087", "relations": [{"rule": 2, "type": "equivalent", "target": "1d23b5afbc92952e63524ff5c1221926", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}}, {"rule": 2, "type": "equivalent", "target": "44579864c4fd5794d253e0f553b944e8", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}}, {"rule": 2, "type": "equivalent", "target": "7664e328481b35b56d05cc9016d02ebc", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}}, {"rule": 2, "type": "equivalent", "target": "a9ab03208a61be7974c97b0dc7795038", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "44579864c4fd5794d253e0f553b944e8", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "为一些递归函数增加保护性栈深度检查", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}, "url": "/docs/compare/?release=16.3#16.3-b7ccbd5caf4b49f0", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "1d23b5afbc92952e63524ff5c1221926", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "为一些递归函数增加保护性栈深度检查", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}, "url": "/docs/compare/?release=14.12#14.12-6517417c90f082f1", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "a9ab03208a61be7974c97b0dc7795038", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "为一些递归函数增加保护性栈深度检查", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}, "url": "/docs/compare/?release=13.15#13.15-d44b0dc0a090aa0f", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "7664e328481b35b56d05cc9016d02ebc", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "为一些递归函数增加保护性栈深度检查", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}, "url": "/docs/compare/?release=12.19#12.19-439d1088b0f5badb", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-018f962a93d967a7", "cves": [], "html": "<p>修复 <code>date_bin()</code> 中的舍入错误和溢出隐患（Moaaz Assali）<a href=\"https://postgr.es/c/db8855b66\">§</a></p>\n<p>在源时间戳在原点时间戳之前且两者差值恰好是步长的整数倍的情况下，代码错误地仍然减去了步长。此外，检测了一些会产生不正确结果的整数溢出情况。</p>", "text": "修复 date_bin() 中的舍入错误和溢出隐患（Moaaz Assali）§ 在源时间戳在原点时间戳之前且两者差值恰好是步长的整数倍的情况下，代码错误地仍然减去了步长。此外，检测了一些会产生不正确结果的整数溢出情况。", "title": "修复 date_bin() 中的舍入错误和溢出隐患", "commits": ["db8855b66"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "56a3e1aeac2b2d77c479c6abba2abb01310a1f2ffa848aa180e5318a28367ea9", "section_path": ["变更"], "commit_groups": [["17db5436e", "d163fdbfe", "db8855b66", "fe3b1b575"]], "identity_text": "Fix mis-rounding and overflow hazards in date_bin() (Moaaz Assali) In the case where the source timestamp is before the origin timestamp and their difference is already an exact multiple of the stride, the code incorrectly subtracted the stride anyway. Also, detect some integer-overflow cases that would have produced incorrect results.", "commit_aliases": ["17db5436e", "d163fdbfe", "db8855b66", "fe3b1b575"], "source_commits": ["db8855b66"], "source_entry_id": "15.7/changes/025", "db_id": "bbf5e73ad8e3ec3dff692406019f71e8", "patch_ids": ["a829ce6d346e41468fb2fe68d1195cc1"], "statement_hash": "d6973ada9a997897943dae11d116074ffad4dcaaea8524e2da6d7cf64ccc78c6", "relations": [{"rule": 2, "type": "equivalent", "target": "654e10146afc642f0526a3a2b8fe7411", "evidence": {"same_day": true, "patch_ids": ["a829ce6d346e41468fb2fe68d1195cc1"], "statement_hash": "d6973ada9a997897943dae11d116074ffad4dcaaea8524e2da6d7cf64ccc78c6"}}, {"rule": 2, "type": "equivalent", "target": "f800645737ac5e7eefac85ec0744854d", "evidence": {"same_day": true, "patch_ids": ["a829ce6d346e41468fb2fe68d1195cc1"], "statement_hash": "d6973ada9a997897943dae11d116074ffad4dcaaea8524e2da6d7cf64ccc78c6"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "654e10146afc642f0526a3a2b8fe7411", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 date_bin() 中的舍入错误和溢出隐患", "evidence": {"same_day": true, "patch_ids": ["a829ce6d346e41468fb2fe68d1195cc1"], "statement_hash": "d6973ada9a997897943dae11d116074ffad4dcaaea8524e2da6d7cf64ccc78c6"}, "url": "/docs/compare/?release=16.3#16.3-f8909402e5edd063", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "f800645737ac5e7eefac85ec0744854d", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复 date_bin() 中的舍入错误和溢出隐患", "evidence": {"same_day": true, "patch_ids": ["a829ce6d346e41468fb2fe68d1195cc1"], "statement_hash": "d6973ada9a997897943dae11d116074ffad4dcaaea8524e2da6d7cf64ccc78c6"}, "url": "/docs/compare/?release=14.12#14.12-b20fec6c65e1c681", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}]}, {"id": "15.7-1193db30b90424d3", "cves": [], "html": "<p>检测在 <code>timestamp</code> 上加减 <code>interval</code> 时的整数溢出（Joseph Koshakow）<a href=\"https://postgr.es/c/e6e3ee5b7\">§</a></p>\n<p>某些应该导致超出范围错误的情况反而产生了不正确的结果。</p>", "text": "检测在 timestamp 上加减 interval 时的整数溢出（Joseph Koshakow）§ 某些应该导致超出范围错误的情况反而产生了不正确的结果。", "title": "检测在 timestamp 上加减 interval 时的整数溢出", "commits": ["e6e3ee5b7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "9ea777254e8e1091161062c61d4f85b100c1285353f468dd31d125a3297eff01", "section_path": ["变更"], "commit_groups": [["1748379b6", "3752e3d21", "4019285c0", "440b6251b", "cb0ccefa0", "e6e3ee5b7"]], "identity_text": "Detect integer overflow when adding or subtracting an interval to/from a timestamp (Joseph Koshakow) Some cases that should cause an out-of-range error produced an incorrect result instead.", "commit_aliases": ["1748379b6", "3752e3d21", "4019285c0", "440b6251b", "cb0ccefa0", "e6e3ee5b7"], "source_commits": ["e6e3ee5b7"], "source_entry_id": "15.7/changes/026", "db_id": "26d4e765990af2b0549001fc5924723e", "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee", "relations": [{"rule": 2, "type": "equivalent", "target": "527ac794f555a35f8c1d925520112bf4", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}}, {"rule": 2, "type": "equivalent", "target": "5c05f2d00e0cb5b2f0c779fe379c11a9", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}}, {"rule": 2, "type": "equivalent", "target": "7b4a352125e2617a9dd0d345502056d6", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}}, {"rule": 2, "type": "equivalent", "target": "df6178817f19dc48b3fed6a672e63792", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "527ac794f555a35f8c1d925520112bf4", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "检测在 timestamp 上加减 interval 时的整数溢出", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}, "url": "/docs/compare/?release=16.3#16.3-ec96482addb1d831", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "7b4a352125e2617a9dd0d345502056d6", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "检测在 timestamp 上加减 interval 时的整数溢出", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}, "url": "/docs/compare/?release=14.12#14.12-d2187459b6f8f1ef", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "df6178817f19dc48b3fed6a672e63792", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "检测在 timestamp 上加减 interval 时的整数溢出", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}, "url": "/docs/compare/?release=13.15#13.15-520d2042c108e42d", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "5c05f2d00e0cb5b2f0c779fe379c11a9", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "检测在 timestamp 上加减 interval 时的整数溢出", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}, "url": "/docs/compare/?release=12.19#12.19-2aa330b6a50fb99e", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-b8d97a20f9d1514a", "cves": [], "html": "<p>避免 <code>pg_get_expr()</code> 中的竞态条件（Tom Lane）<a href=\"https://postgr.es/c/26c89d105\">§</a></p>\n<p>如果参数引用的关系被并发删除，函数的意图是返回 NULL，但有时会失败。</p>", "text": "避免 pg_get_expr() 中的竞态条件（Tom Lane）§ 如果参数引用的关系被并发删除，函数的意图是返回 NULL，但有时会失败。", "title": "避免 pg_get_expr() 中的竞态条件", "commits": ["26c89d105"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "3d6df4b94f2225a1a380841ff072cb7841dfd590ac92a63821552dc8e48c81ca", "section_path": ["变更"], "commit_groups": [["26c89d105", "4eb261165", "ce571434a", "ceb224b62", "d21690edb", "f38903d1e"]], "identity_text": "Avoid race condition in pg_get_expr() (Tom Lane) If the relation referenced by the argument is dropped concurrently, the function's intention is to return NULL, but sometimes it failed instead.", "commit_aliases": ["26c89d105", "4eb261165", "ce571434a", "ceb224b62", "d21690edb", "f38903d1e"], "source_commits": ["26c89d105"], "source_entry_id": "15.7/changes/027", "db_id": "b47222c52e1a95cbfda045c2adf1e9d6", "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093", "relations": [{"rule": 2, "type": "equivalent", "target": "01829a0cebff87a2b9877a415f955076", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}}, {"rule": 2, "type": "equivalent", "target": "1d7446d118275bf962c1aa3c48308a97", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}}, {"rule": 2, "type": "equivalent", "target": "29630007fa96642d778f6eafaab40d43", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}}, {"rule": 2, "type": "equivalent", "target": "b57f7c4322343dc2c18818a94bb79ae4", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b57f7c4322343dc2c18818a94bb79ae4", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "避免 pg_get_expr() 中的竞态条件", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}, "url": "/docs/compare/?release=16.3#16.3-3a03ba9e5ef84abb", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "29630007fa96642d778f6eafaab40d43", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "避免 pg_get_expr() 中的竞态条件", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}, "url": "/docs/compare/?release=14.12#14.12-3c0a35e3885a4a42", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "1d7446d118275bf962c1aa3c48308a97", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "避免 pg_get_expr() 中的竞态条件", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}, "url": "/docs/compare/?release=13.15#13.15-9333974e583b3430", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "01829a0cebff87a2b9877a415f955076", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "避免 pg_get_expr() 中的竞态条件", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}, "url": "/docs/compare/?release=12.19#12.19-66e4399a5efbde4f", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-d3c32b77cd723569", "cves": [], "html": "<p>修复 XID 状态函数中对旧事务 ID 的检测（Karina Litskevich）<a href=\"https://postgr.es/c/503299b7f\">§</a></p>\n<p>距今超过 2<sup>31</sup> 个事务的事务 ID 可能被误识别为近期的，导致 <code>pg_xact_status()</code> 或 <code>txid_status()</code> 出现异常行为。</p>", "text": "修复 XID 状态函数中对旧事务 ID 的检测（Karina Litskevich）§ 距今超过 231 个事务的事务 ID 可能被误识别为近期的，导致 pg_xact_status() 或 txid_status() 出现异常行为。", "title": "修复 XID 状态函数中对旧事务 ID 的检测", "commits": ["503299b7f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "841231f08e2eaa34ee4baec16b7275d4fa2581e70e50728cdc9272be63f5a784", "section_path": ["变更"], "commit_groups": [["165d921c9", "18388291a", "4efaf4b09", "503299b7f", "d44060cfc", "e3e05adde"]], "identity_text": "Fix detection of old transaction IDs in XID status functions (Karina Litskevich) Transaction IDs more than 231 transactions in the past could be misidentified as recent, leading to misbehavior of pg_xact_status() or txid_status().", "commit_aliases": ["165d921c9", "18388291a", "4efaf4b09", "503299b7f", "d44060cfc", "e3e05adde"], "source_commits": ["503299b7f"], "source_entry_id": "15.7/changes/028", "db_id": "5eee06a351b6c00b15b91d6b37af4cf6", "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7", "relations": [{"rule": 2, "type": "equivalent", "target": "4667ab209ab68826bbebc6b12d17825c", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}}, {"rule": 2, "type": "equivalent", "target": "6221a068baafdd4d23191bd4bd3a63a9", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}}, {"rule": 2, "type": "equivalent", "target": "9dbf000510d705df3eb4946ac68db277", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}}, {"rule": 2, "type": "equivalent", "target": "e2d96ff11a2aec2e068f73700b85e47f", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6221a068baafdd4d23191bd4bd3a63a9", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 XID 状态函数中对旧事务 ID 的检测", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}, "url": "/docs/compare/?release=16.3#16.3-bec01cae9f9cae3a", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "4667ab209ab68826bbebc6b12d17825c", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复 XID 状态函数中对旧事务 ID 的检测", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}, "url": "/docs/compare/?release=14.12#14.12-aac367a87741e2d8", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "e2d96ff11a2aec2e068f73700b85e47f", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复 XID 状态函数中对旧事务 ID 的检测", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}, "url": "/docs/compare/?release=13.15#13.15-d5bbda003d57f1df", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "9dbf000510d705df3eb4946ac68db277", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复 XID 状态函数中对旧事务 ID 的检测", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}, "url": "/docs/compare/?release=12.19#12.19-688b760d38a92578", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-f1032232c997570d", "cves": [], "html": "<p>确保表的空闲空间映射不会返回超出表末尾的页面（Ronan Dunklau）<a href=\"https://postgr.es/c/7c490a18b\">§</a></p>\n<p>由于空闲空间映射不写入 WAL 日志，在涉及操作系统崩溃、副本提升或 PITR 恢复的边缘情况下这是可能的。结果将会是 <span>“<span>could not read block</span>”</span> 错误。</p>", "text": "确保表的空闲空间映射不会返回超出表末尾的页面（Ronan Dunklau）§ 由于空闲空间映射不写入 WAL 日志，在涉及操作系统崩溃、副本提升或 PITR 恢复的边缘情况下这是可能的。结果将会是 “could not read block” 错误。", "title": "确保表的空闲空间映射不会返回超出表末尾的页面", "commits": ["7c490a18b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "94394ec14e1934e14d4caba00adbbfae06505ec93cc3ae2eee65da0fc8c1c3b6", "section_path": ["变更"], "commit_groups": [["08059fc04", "4e62ba21a", "7c490a18b", "935829743"]], "identity_text": "Ensure that a table's freespace map won't return a page that's past the end of the table (Ronan Dunklau) Because the freespace map isn't WAL-logged, this was possible in edge cases involving an OS crash, a replica promote, or a PITR restore. The result would be a could not read block error.", "commit_aliases": ["08059fc04", "4e62ba21a", "7c490a18b", "935829743"], "source_commits": ["7c490a18b"], "source_entry_id": "15.7/changes/029", "db_id": "2a18d5a4ea97e0008f801cf9ec5590fd", "patch_ids": ["7a12243c9ab1bc8c1cf036737173a4ea"], "statement_hash": "3a36d267f75151d1edf256e9ecb51b94aeb3f84c157b3d89aa05bf1315b43f44", "relations": [{"rule": 2, "type": "equivalent", "target": "26a2ca6303e6bec26d3473c170ea09a5", "evidence": {"same_day": true, "patch_ids": ["7a12243c9ab1bc8c1cf036737173a4ea"], "statement_hash": "3a36d267f75151d1edf256e9ecb51b94aeb3f84c157b3d89aa05bf1315b43f44"}}, {"rule": 2, "type": "equivalent", "target": "a2716472ea4cf7b0c1e262387761b35c", "evidence": {"same_day": true, "patch_ids": ["7a12243c9ab1bc8c1cf036737173a4ea"], "statement_hash": "3a36d267f75151d1edf256e9ecb51b94aeb3f84c157b3d89aa05bf1315b43f44"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2716472ea4cf7b0c1e262387761b35c", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "确保表的空闲空间映射不会返回超出表末尾的页面", "evidence": {"same_day": true, "patch_ids": ["7a12243c9ab1bc8c1cf036737173a4ea"], "statement_hash": "3a36d267f75151d1edf256e9ecb51b94aeb3f84c157b3d89aa05bf1315b43f44"}, "url": "/docs/compare/?release=16.3#16.3-7a59e76501ffa7be", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "26a2ca6303e6bec26d3473c170ea09a5", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "确保表的空闲空间映射不会返回超出表末尾的页面", "evidence": {"same_day": true, "patch_ids": ["7a12243c9ab1bc8c1cf036737173a4ea"], "statement_hash": "3a36d267f75151d1edf256e9ecb51b94aeb3f84c157b3d89aa05bf1315b43f44"}, "url": "/docs/compare/?release=14.12#14.12-ac62795d7416ea57", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}]}, {"id": "15.7-9128869d97dddb01", "cves": [], "html": "<p>修复在 <code>WaitEventSetWait</code> 中等待时抛出错误导致的文件描述符泄漏（Etsuro Fujita）<a href=\"https://postgr.es/c/e79ceafe9\">§</a></p>", "text": "修复在 WaitEventSetWait 中等待时抛出错误导致的文件描述符泄漏（Etsuro Fujita）§", "title": "修复在 WaitEventSetWait 中等待时抛出错误导致的文件描述符泄漏", "commits": ["e79ceafe9"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "dc63c0e76709bf8cf08d4dbdab49e794bbcb17e5ae1554444983dd21e3555b0c", "section_path": ["变更"], "commit_groups": [["01b01a77f", "0341d4b10", "b714bc40c", "b82dca2a5", "e79ceafe9"]], "identity_text": "Fix file descriptor leakage when an error is thrown while waiting in WaitEventSetWait (Etsuro Fujita)", "commit_aliases": ["01b01a77f", "0341d4b10", "b714bc40c", "b82dca2a5", "e79ceafe9"], "source_commits": ["b82dca2a5"], "source_entry_id": "15.7/changes/030", "db_id": "7768f23a49446684d277b0278e25986b", "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0", "relations": [{"rule": 2, "type": "equivalent", "target": "78bcbb55c5e9bed242405fb795af1da1", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}}, {"rule": 2, "type": "equivalent", "target": "b88ca1e556524e31d3984e16397439c8", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}}, {"rule": 2, "type": "equivalent", "target": "d1ab8b9b8d40b8ece83be454cc0595f6", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}}, {"rule": 2, "type": "equivalent", "target": "ed31a0bf33064d172fe981af82657777", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b88ca1e556524e31d3984e16397439c8", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复在 WaitEventSetWait 中等待时抛出错误导致的文件描述符泄漏", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}, "url": "/docs/compare/?release=16.3#16.3-9128869d97dddb01", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "ed31a0bf33064d172fe981af82657777", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复在 WaitEventSetWait 中等待时抛出错误导致的文件描述符泄漏", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}, "url": "/docs/compare/?release=14.12#14.12-9128869d97dddb01", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "d1ab8b9b8d40b8ece83be454cc0595f6", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复在 WaitEventSetWait 中等待时抛出错误导致的文件描述符泄漏", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}, "url": "/docs/compare/?release=13.15#13.15-f02de15274dfb282", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "78bcbb55c5e9bed242405fb795af1da1", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复在 WaitEventSetWait 中等待时抛出错误导致的文件描述符泄漏", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}, "url": "/docs/compare/?release=12.19#12.19-4b485ae6e1c0d5f7", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-2d830088156b1bcd", "cves": [], "html": "<p>避免在 FDW 实现了异步追加但未为 Append 计划节点配置任何等待条件时损坏异常栈（Alexander Pyhalov）<a href=\"https://postgr.es/c/f6f61a4bd\">§</a></p>", "text": "避免在 FDW 实现了异步追加但未为 Append 计划节点配置任何等待条件时损坏异常栈（Alexander Pyhalov）§", "title": "避免在 FDW 实现了异步追加但未为 Append 计划节点配置任何等待条件时损坏异常栈", "commits": ["f6f61a4bd"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "deaf97a9ddf271721dacd95e3a9e4def0fcbfa2731ece6aede98e301347e8e86", "section_path": ["变更"], "commit_groups": [["3f96d113f", "e10ca95ff", "f6f61a4bd"]], "identity_text": "Avoid corrupting exception stack if an FDW implements async append but doesn't configure any wait conditions for the Append plan node to wait for (Alexander Pyhalov)", "commit_aliases": ["3f96d113f", "e10ca95ff", "f6f61a4bd"], "source_commits": ["3f96d113f"], "source_entry_id": "15.7/changes/031", "db_id": "4236f7199e21cc09ec1388f8731848ce", "patch_ids": ["56418eb9d39b3440d4e97d3f080e9c2c"], "statement_hash": "43029665e189b5b690fe19896604db54b8a2cfcf30ae0b9d6e1010b771a5566c", "relations": [{"rule": 2, "type": "equivalent", "target": "5bafecf925d9d8e8e9a003859619c257", "evidence": {"same_day": true, "patch_ids": ["56418eb9d39b3440d4e97d3f080e9c2c"], "statement_hash": "43029665e189b5b690fe19896604db54b8a2cfcf30ae0b9d6e1010b771a5566c"}}, {"rule": 2, "type": "equivalent", "target": "748553bb599b0a6dda441dd8959c3247", "evidence": {"same_day": true, "patch_ids": ["56418eb9d39b3440d4e97d3f080e9c2c"], "statement_hash": "43029665e189b5b690fe19896604db54b8a2cfcf30ae0b9d6e1010b771a5566c"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "748553bb599b0a6dda441dd8959c3247", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "避免在 FDW 实现了异步追加但未为 Append 计划节点配置任何等待条件时损坏异常栈", "evidence": {"same_day": true, "patch_ids": ["56418eb9d39b3440d4e97d3f080e9c2c"], "statement_hash": "43029665e189b5b690fe19896604db54b8a2cfcf30ae0b9d6e1010b771a5566c"}, "url": "/docs/compare/?release=16.3#16.3-2d830088156b1bcd", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "5bafecf925d9d8e8e9a003859619c257", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "避免在 FDW 实现了异步追加但未为 Append 计划节点配置任何等待条件时损坏异常栈", "evidence": {"same_day": true, "patch_ids": ["56418eb9d39b3440d4e97d3f080e9c2c"], "statement_hash": "43029665e189b5b690fe19896604db54b8a2cfcf30ae0b9d6e1010b771a5566c"}, "url": "/docs/compare/?release=14.12#14.12-2d830088156b1bcd", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}]}, {"id": "15.7-89b52c1d9f4922c0", "cves": [], "html": "<p>如果在重建索引期间访问索引，则抛出错误（Tom Lane）<a href=\"https://postgr.es/c/940489b46\">§</a></p>\n<p>之前这只是一个断言检查，现在将其提升为常规运行时错误。当重建索引的用户定义索引表达式尝试访问其自身的表时，这将提供一个更有针对性的错误消息。</p>", "text": "如果在重建索引期间访问索引，则抛出错误（Tom Lane）§ 之前这只是一个断言检查，现在将其提升为常规运行时错误。当重建索引的用户定义索引表达式尝试访问其自身的表时，这将提供一个更有针对性的错误消息。", "title": "如果在重建索引期间访问索引，则抛出错误", "commits": ["940489b46"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "1fe02fb6070e2904b277b7232d39e387d1d7a43324cece385b358e6ad8face21", "section_path": ["变更"], "commit_groups": [["09f09884c", "43cca9de9", "8c785d354", "940489b46", "c0b4dad38", "f5a465f1a"]], "identity_text": "Throw an error if an index is accessed while it is being reindexed (Tom Lane) Previously this was just an assertion check, but promote it into a regular runtime error. This will provide a more on-point error message when reindexing a user-defined index expression that attempts to access its own table.", "commit_aliases": ["09f09884c", "43cca9de9", "8c785d354", "940489b46", "c0b4dad38", "f5a465f1a"], "source_commits": ["940489b46"], "source_entry_id": "15.7/changes/032", "db_id": "86a674fe90c8887224b1f43a41d7ac57", "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb", "relations": [{"rule": 2, "type": "equivalent", "target": "2906070307670fde5b3b107c009eb158", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}}, {"rule": 2, "type": "equivalent", "target": "2f57619b35a3040957bcd649a116ab81", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}}, {"rule": 2, "type": "equivalent", "target": "916e11cb6e1bf25bf03f2f333573a664", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}}, {"rule": 2, "type": "equivalent", "target": "98f29fd5e6bef9b92f2166dedef0e4b0", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2906070307670fde5b3b107c009eb158", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "如果在重建索引期间访问索引，则抛出错误", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}, "url": "/docs/compare/?release=16.3#16.3-136e6040676dc366", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "98f29fd5e6bef9b92f2166dedef0e4b0", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "如果在重建索引期间访问索引，则抛出错误", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}, "url": "/docs/compare/?release=14.12#14.12-504b067c1a2bf361", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "2f57619b35a3040957bcd649a116ab81", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "如果在重建索引期间访问索引，则抛出错误", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}, "url": "/docs/compare/?release=13.15#13.15-9ca69df4161fa52b", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "916e11cb6e1bf25bf03f2f333573a664", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "如果在重建索引期间访问索引，则抛出错误", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}, "url": "/docs/compare/?release=12.19#12.19-155a5cdb89a2a522", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-e5485c4bc801d3c4", "cves": [], "html": "<p>确保对 <code>name</code> 列的仅索引扫描返回完整填充的值（David Rowley）<a href=\"https://postgr.es/c/52f21f928\">§</a></p>\n<p>物理存储在索引中的值是被截断的，之前会将指向该值的指针返回给调用者。这在 valgrind 下测试时引发了告警。理论上可能导致崩溃，但尚未收到相关报告。</p>", "text": "确保对 name 列的仅索引扫描返回完整填充的值（David Rowley）§ 物理存储在索引中的值是被截断的，之前会将指向该值的指针返回给调用者。这在 valgrind 下测试时引发了告警。理论上可能导致崩溃，但尚未收到相关报告。", "title": "确保对 name 列的仅索引扫描返回完整填充的值", "commits": ["52f21f928"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "db59ab48a9acf315abdb4cf0a9589cfcbf6e848398829ef0532a194f636a7739", "section_path": ["变更"], "commit_groups": [["0a34bcd0c", "52f21f928", "68d358545", "a63224be4", "e3f9dcabd", "e6b0efc65"]], "identity_text": "Ensure that index-only scans on name columns return a fully-padded value (David Rowley) The value physically stored in the index is truncated, and previously a pointer to that value was returned to callers. This provoked complaints when testing under valgrind. In theory it could result in crashes, though none have been reported.", "commit_aliases": ["0a34bcd0c", "52f21f928", "68d358545", "a63224be4", "e3f9dcabd", "e6b0efc65"], "source_commits": ["52f21f928"], "source_entry_id": "15.7/changes/033", "db_id": "660ca930472531ba9febe0a70aaf024f", "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1", "relations": [{"rule": 2, "type": "equivalent", "target": "2bce141ed26b333d9cbc5cdf4d037345", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}}, {"rule": 2, "type": "equivalent", "target": "41491128cdf704c0cd44933a2dbb4643", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}}, {"rule": 2, "type": "equivalent", "target": "4654544263ad70fa2f0e0c6f0e0f1c62", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}}, {"rule": 2, "type": "equivalent", "target": "df0087f410eb0958c51f1c793783a932", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4654544263ad70fa2f0e0c6f0e0f1c62", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "确保对 name 列的仅索引扫描返回完整填充的值", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}, "url": "/docs/compare/?release=16.3#16.3-81bd8ae03e520280", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "df0087f410eb0958c51f1c793783a932", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "确保对 name 列的仅索引扫描返回完整填充的值", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}, "url": "/docs/compare/?release=14.12#14.12-6fa8d7d19947a304", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "2bce141ed26b333d9cbc5cdf4d037345", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "确保对 name 列的仅索引扫描返回完整填充的值", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}, "url": "/docs/compare/?release=13.15#13.15-acc0b08234f2f9bb", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "41491128cdf704c0cd44933a2dbb4643", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "确保对 name 列的仅索引扫描返回完整填充的值", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}, "url": "/docs/compare/?release=12.19#12.19-7b516895526d4744", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-59aee19602c0d4d4", "cves": [], "html": "<p>修复逻辑复制中判断是否需要表同步操作时的竞态条件（Vignesh C）<a href=\"https://postgr.es/c/28a8cc457\">§</a></p>\n<p>在订阅者确定哪些表需要同步时到达的失效事件会被遗忘，因此新需要同步的表可能不会被及时处理。</p>", "text": "修复逻辑复制中判断是否需要表同步操作时的竞态条件（Vignesh C）§ 在订阅者确定哪些表需要同步时到达的失效事件会被遗忘，因此新需要同步的表可能不会被及时处理。", "title": "修复逻辑复制中判断是否需要表同步操作时的竞态条件", "commits": ["28a8cc457"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "8cd652c37db2943860b48d585708ba90744be030c4d56c86bab4dfe9b3bc3342", "section_path": ["变更"], "commit_groups": [["28a8cc457", "a9155efc7", "aa79bde72"]], "identity_text": "Fix race condition in deciding whether a table sync operation is needed in logical replication (Vignesh C) An invalidation event arriving while a subscriber identifies which tables need to be synced would be forgotten about, so that any tables newly in need of syncing might not get processed in a timely fashion.", "commit_aliases": ["28a8cc457", "a9155efc7", "aa79bde72"], "source_commits": ["28a8cc457"], "source_entry_id": "15.7/changes/034", "db_id": "4b4be3e853b2da56b9606908b6a1c167", "patch_ids": ["3b1ce97ed359e044e2d753a327e46fcb"], "statement_hash": "6d77ac28128a8f79663532bd98f4c88a22108fd6e0b118319fd3281e191567fb", "relations": [{"rule": 2, "type": "equivalent", "target": "e555043a52290cceb8abbfa396bdbd2e", "evidence": {"same_day": true, "patch_ids": ["3b1ce97ed359e044e2d753a327e46fcb"], "statement_hash": "6d77ac28128a8f79663532bd98f4c88a22108fd6e0b118319fd3281e191567fb"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e555043a52290cceb8abbfa396bdbd2e", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复逻辑复制中判断是否需要表同步操作时的竞态条件", "evidence": {"same_day": true, "patch_ids": ["3b1ce97ed359e044e2d753a327e46fcb"], "statement_hash": "6d77ac28128a8f79663532bd98f4c88a22108fd6e0b118319fd3281e191567fb"}, "url": "/docs/compare/?release=16.3#16.3-2a8083c87a0f64f5", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}]}, {"id": "15.7-7c4e44a0b0eb2772", "cves": [], "html": "<p>修复大于 4GB 的 DSM 分配时的崩溃（Heikki Linnakangas）<a href=\"https://postgr.es/c/d46c26961\">§</a></p>", "text": "修复大于 4GB 的 DSM 分配时的崩溃（Heikki Linnakangas）§", "title": "修复大于 4GB 的 DSM 分配时的崩溃", "commits": ["d46c26961"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "f33738995f0280b92ca63c1e0adc736dfb75cefcb006464c9fce7f224b5a3cd2", "section_path": ["变更"], "commit_groups": [["95cc48ca0", "9b8550fbd", "d46c26961", "e92375692", "f2f09b825", "fbf9a7ac4"]], "identity_text": "Fix crash with DSM allocations larger than 4GB (Heikki Linnakangas)", "commit_aliases": ["95cc48ca0", "9b8550fbd", "d46c26961", "e92375692", "f2f09b825", "fbf9a7ac4"], "source_commits": ["d46c26961"], "source_entry_id": "15.7/changes/035", "db_id": "76afece4826ada7aea8f90099e0048b7", "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f", "relations": [{"rule": 2, "type": "equivalent", "target": "03edff6b9bfb77a9f54d4737b9f57428", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}}, {"rule": 2, "type": "equivalent", "target": "b4a3776a249d9c82bc0d2dbce863c2f5", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}}, {"rule": 2, "type": "equivalent", "target": "bc75f3b207e7f34c6c51abc541e72983", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}}, {"rule": 2, "type": "equivalent", "target": "f9161266e6e03d6738b33b19d50bf537", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bc75f3b207e7f34c6c51abc541e72983", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复大于 4GB 的 DSM 分配时的崩溃", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}, "url": "/docs/compare/?release=16.3#16.3-c2d07d0866a2621e", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "f9161266e6e03d6738b33b19d50bf537", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复大于 4GB 的 DSM 分配时的崩溃", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}, "url": "/docs/compare/?release=14.12#14.12-47aa06591c6c9ea9", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "b4a3776a249d9c82bc0d2dbce863c2f5", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复大于 4GB 的 DSM 分配时的崩溃", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}, "url": "/docs/compare/?release=13.15#13.15-a676ee7e09e424c6", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "03edff6b9bfb77a9f54d4737b9f57428", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复大于 4GB 的 DSM 分配时的崩溃", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}, "url": "/docs/compare/?release=12.19#12.19-8616553afe21c74b", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-1d6494ecd5db8ba7", "cves": [], "html": "<p>如果新服务器会话的客户端套接字无法被设置为非阻塞模式则断开连接（Heikki Linnakangas）<a href=\"https://postgr.es/c/4fce5f970\">§</a></p>\n<p>曾经在理论上可以使用阻塞模式的套接字来运行；但这在很长时间以来就已经不能完全工作了，所以在连接开始时失败而不是稍后出现异常行为。</p>", "text": "如果新服务器会话的客户端套接字无法被设置为非阻塞模式则断开连接（Heikki Linnakangas）§ 曾经在理论上可以使用阻塞模式的套接字来运行；但这在很长时间以来就已经不能完全工作了，所以在连接开始时失败而不是稍后出现异常行为。", "title": "如果新服务器会话的客户端套接字无法被设置为非阻塞模式则断开连接", "commits": ["4fce5f970"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "16f52ffe4e6d9c8d19c888f0a553f7608a5e1e4031a1bc632e9a968918846479", "section_path": ["变更"], "commit_groups": [["4fce5f970", "539e328b1", "ad5cd55e6", "bf1f593e8", "df27d76d3", "f8c5317d0"]], "identity_text": "Disconnect if a new server session's client socket cannot be put into non-blocking mode (Heikki Linnakangas) It was once theoretically possible for us to operate with a socket that's in blocking mode; but that hasn't worked fully in a long time, so fail at connection start rather than misbehave later.", "commit_aliases": ["4fce5f970", "539e328b1", "ad5cd55e6", "bf1f593e8", "df27d76d3", "f8c5317d0"], "source_commits": ["4fce5f970"], "source_entry_id": "15.7/changes/036", "db_id": "67cb3db3098a0ddd3a06bd864ad8ed9f", "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9", "relations": [{"rule": 2, "type": "equivalent", "target": "3fa21d95a64d7da357df0a57ed7b4313", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}}, {"rule": 2, "type": "equivalent", "target": "9d6cb7367dfe91e259ac493d2c795520", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}}, {"rule": 2, "type": "equivalent", "target": "d4109ee994ac42bcc100909640b1ce97", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}}, {"rule": 2, "type": "equivalent", "target": "f86abd0fade2e9f96a2ee321c30a78f3", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d6cb7367dfe91e259ac493d2c795520", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "如果新服务器会话的客户端套接字无法被设置为非阻塞模式则断开连接", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}, "url": "/docs/compare/?release=16.3#16.3-a5370acb23dba951", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "f86abd0fade2e9f96a2ee321c30a78f3", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "如果新服务器会话的客户端套接字无法被设置为非阻塞模式则断开连接", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}, "url": "/docs/compare/?release=14.12#14.12-358e6984cfa530e4", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "d4109ee994ac42bcc100909640b1ce97", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "如果新服务器会话的客户端套接字无法被设置为非阻塞模式则断开连接", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}, "url": "/docs/compare/?release=13.15#13.15-811d9428eff2be8c", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "3fa21d95a64d7da357df0a57ed7b4313", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "如果新服务器会话的客户端套接字无法被设置为非阻塞模式则断开连接", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}, "url": "/docs/compare/?release=12.19#12.19-bdc16a7f67790087", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-918c3b054730b724", "cves": [], "html": "<p>修复 <span>OpenSSL</span> 3.0.0 及更高版本中不充分的错误报告（Heikki Linnakangas，Tom Lane）<a href=\"https://postgr.es/c/0fe82e45c\">§</a></p>\n<p>通过 OpenSSL 传递的系统报告错误是用数字错误代码而非可读内容报告的。</p>", "text": "修复 OpenSSL 3.0.0 及更高版本中不充分的错误报告（Heikki Linnakangas，Tom Lane）§ 通过 OpenSSL 传递的系统报告错误是用数字错误代码而非可读内容报告的。", "title": "修复 OpenSSL 3.0.0 及更高版本中不充分的错误报告", "commits": ["0fe82e45c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "a7cbf3d04a5561d6059c919a8fe330489ac415a2fafa2b89a654f53714fa11fb", "section_path": ["变更"], "commit_groups": [["0fe82e45c", "453c46873", "473babd42", "6a2c80e95", "9fbe07275", "c42e5fdcf"]], "identity_text": "Fix inadequate error reporting with OpenSSL 3.0.0 and later (Heikki Linnakangas, Tom Lane) System-reported errors passed through by OpenSSL were reported with a numeric error code rather than anything readable.", "commit_aliases": ["0fe82e45c", "453c46873", "473babd42", "6a2c80e95", "9fbe07275", "c42e5fdcf"], "source_commits": ["0fe82e45c"], "source_entry_id": "15.7/changes/037", "db_id": "7482d2f03b4d93af8d4e69351ab3c011", "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170", "relations": [{"rule": 2, "type": "equivalent", "target": "2e696cc24cf68fce74add0abb916578f", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}}, {"rule": 2, "type": "equivalent", "target": "5d7eef23a693443c9287d998aca48068", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}}, {"rule": 2, "type": "equivalent", "target": "5ddb2b6c559086be4803430f5d1b3311", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}}, {"rule": 2, "type": "equivalent", "target": "c1c12c230519acd4c4770a358669d2fe", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5d7eef23a693443c9287d998aca48068", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 OpenSSL 3.0.0 及更高版本中不充分的错误报告", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}, "url": "/docs/compare/?release=16.3#16.3-a2626c347a5273b0", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "5ddb2b6c559086be4803430f5d1b3311", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复 OpenSSL 3.0.0 及更高版本中不充分的错误报告", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}, "url": "/docs/compare/?release=14.12#14.12-50138a16932bc4a4", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "c1c12c230519acd4c4770a358669d2fe", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复 OpenSSL 3.0.0 及更高版本中不充分的错误报告", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}, "url": "/docs/compare/?release=13.15#13.15-5935e98d63652af5", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "2e696cc24cf68fce74add0abb916578f", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复 OpenSSL 3.0.0 及更高版本中不充分的错误报告", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}, "url": "/docs/compare/?release=12.19#12.19-91fb16124a8827ed", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-c67649716b7293c9", "cves": [], "html": "<p>避免在 <span>libpq</span> 和 <span>ecpglib</span> 中并发调用 <code>bindtextdomain()</code>（Tom Lane）<a href=\"https://postgr.es/c/806f98951\">§</a> <a href=\"https://postgr.es/c/9f041b041\">§</a></p>\n<p>虽然 GNU <span>gettext</span> 的实现似乎可以处理并发调用，但 Windows 上可用的版本不行。</p>", "text": "避免在 libpq 和 ecpglib 中并发调用 bindtextdomain()（Tom Lane）§ § 虽然 GNU gettext 的实现似乎可以处理并发调用，但 Windows 上可用的版本不行。", "title": "避免在 libpq 和 ecpglib 中并发调用 bindtextdomain()", "commits": ["806f98951", "9f041b041"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "c3e7b89aa28884e59194e9a08516044fadae24480376ef1a7bcc95fb9f278ac6", "section_path": ["变更"], "commit_groups": [["0028b55bc", "67f8cf0f0", "7d7cc7fd6", "9440d23a0", "95e960e81", "9f041b041"], ["52afe5632", "806f98951", "8c5da20db", "8ead39e38", "9fb1396a9", "a584d03ce"]], "identity_text": "Avoid concurrent calls to bindtextdomain() in libpq and ecpglib (Tom Lane) Although GNU gettext's implementation seems to be fine with concurrent calls, the version available on Windows is not.", "commit_aliases": ["0028b55bc", "52afe5632", "67f8cf0f0", "7d7cc7fd6", "806f98951", "8c5da20db", "8ead39e38", "9440d23a0", "95e960e81", "9f041b041", "9fb1396a9", "a584d03ce"], "source_commits": ["806f98951", "9f041b041"], "source_entry_id": "15.7/changes/038", "db_id": "3e1dddb1cc5022e09c0a3dfa625d2441", "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299", "relations": [{"rule": 2, "type": "equivalent", "target": "020ae6e6557897fda8dbd996943e4b70", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}}, {"rule": 2, "type": "equivalent", "target": "4d8ea9f401c26d5f9ebf6459c3b35003", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}}, {"rule": 2, "type": "equivalent", "target": "db382aa39ae4dc4b0b48ccf3bf323893", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}}, {"rule": 2, "type": "equivalent", "target": "f8e877c1a20090dc633e5fddb24ad161", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "db382aa39ae4dc4b0b48ccf3bf323893", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "避免在 libpq 和 ecpglib 中并发调用 bindtextdomain()", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}, "url": "/docs/compare/?release=16.3#16.3-fae4e65da6594741", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "f8e877c1a20090dc633e5fddb24ad161", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "避免在 libpq 和 ecpglib 中并发调用 bindtextdomain()", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}, "url": "/docs/compare/?release=14.12#14.12-d9a4249b40ec948d", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "4d8ea9f401c26d5f9ebf6459c3b35003", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "避免在 libpq 和 ecpglib 中并发调用 bindtextdomain()", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}, "url": "/docs/compare/?release=13.15#13.15-17a350521c10d165", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "020ae6e6557897fda8dbd996943e4b70", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "避免在 libpq 和 ecpglib 中并发调用 bindtextdomain()", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}, "url": "/docs/compare/?release=12.19#12.19-881c30772ea4f4c3", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-47e5d469c3efcff0", "cves": [], "html": "<p>修复 <span>ecpg</span> 的预处理器在程序尝试重新定义在预处理器命令行上定义的宏时崩溃的问题（Tom Lane）<a href=\"https://postgr.es/c/25f937217\">§</a> <a href=\"https://postgr.es/c/1e7b1b026\">§</a> <a href=\"https://postgr.es/c/f7e891748\">§</a></p>", "text": "修复 ecpg 的预处理器在程序尝试重新定义在预处理器命令行上定义的宏时崩溃的问题（Tom Lane）§ § §", "title": "修复 ecpg 的预处理器在程序尝试重新定义在预处理器命令行上定义的宏时崩溃的问题", "commits": ["1e7b1b026", "25f937217", "f7e891748"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "d85a1e81d67cb0f3b9ec1a409df00408391155336907bfcb3182d8d0e142ac0c", "section_path": ["变更"], "commit_groups": [["0018f0af5", "1e7b1b026", "481597fc6", "61dd815e0", "df66319f7"], ["02531e8ca", "25f937217", "2b6a74afe", "392e6e9e6", "463164639", "6f0cef935"], ["c6bfeab42", "cd26f08e4", "dd3fddc85", "de84608e2", "f7e891748"]], "identity_text": "Fix crash in ecpg's preprocessor if the program tries to redefine a macro that was defined on the preprocessor command line (Tom Lane)", "commit_aliases": ["0018f0af5", "02531e8ca", "1e7b1b026", "25f937217", "2b6a74afe", "392e6e9e6", "463164639", "481597fc6", "61dd815e0", "6f0cef935", "c6bfeab42", "cd26f08e4", "dd3fddc85", "de84608e2", "df66319f7", "f7e891748"], "source_commits": ["1e7b1b026", "25f937217", "f7e891748"], "source_entry_id": "15.7/changes/039", "db_id": "be04f7fc33308b8f72d74759baddfb94", "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107", "relations": [{"rule": 2, "type": "equivalent", "target": "02c9a16368c86c03712f32da9adcb624", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}}, {"rule": 2, "type": "equivalent", "target": "0e6720abff6c0ef3f4c15224636bbb48", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}}, {"rule": 2, "type": "equivalent", "target": "6b927098aeebf93b0ab6901d290a9a3f", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}}, {"rule": 2, "type": "equivalent", "target": "b3dd139801a56ec4438f41c808d46504", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6b927098aeebf93b0ab6901d290a9a3f", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 ecpg 的预处理器在程序尝试重新定义在预处理器命令行上定义的宏时崩溃的问题", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}, "url": "/docs/compare/?release=16.3#16.3-8baf2edd2c955047", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "b3dd139801a56ec4438f41c808d46504", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复 ecpg 的预处理器在程序尝试重新定义在预处理器命令行上定义的宏时崩溃的问题", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}, "url": "/docs/compare/?release=14.12#14.12-9ef0006c35969f22", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "02c9a16368c86c03712f32da9adcb624", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复 ecpg 的预处理器在程序尝试重新定义在预处理器命令行上定义的宏时崩溃的问题", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}, "url": "/docs/compare/?release=13.15#13.15-86435ef5e795ee27", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "0e6720abff6c0ef3f4c15224636bbb48", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复 ecpg 的预处理器在程序尝试重新定义在预处理器命令行上定义的宏时崩溃的问题", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}, "url": "/docs/compare/?release=12.19#12.19-72df46be3abba45c", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-3d935f2f2694d7ff", "cves": [], "html": "<p>在 <span>ecpg</span> 中，避免发出错误的 <span>“<span>unsupported feature will be passed to server</span>”</span> 警告（Tom Lane）<a href=\"https://postgr.es/c/f159f1814\">§</a></p>", "text": "在 ecpg 中，避免发出错误的 “unsupported feature will be passed to server” 警告（Tom Lane）§", "title": "在 ecpg 中，避免发出错误的 “unsupported feature will be passed to server” 警告", "commits": ["f159f1814"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "b31ec781421c639eab92ea4e9ef5941c01c59545694f164c199d2803f7abec52", "section_path": ["变更"], "commit_groups": [["096a761d6", "118558e6d", "360d007e3", "5ba29e945", "d3167ed3f", "f159f1814"]], "identity_text": "In ecpg, avoid issuing false unsupported feature will be passed to server warnings (Tom Lane)", "commit_aliases": ["096a761d6", "118558e6d", "360d007e3", "5ba29e945", "d3167ed3f", "f159f1814"], "source_commits": ["f159f1814"], "source_entry_id": "15.7/changes/040", "db_id": "6c2bfd92ba413160d17bab086884ee1b", "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3", "relations": [{"rule": 2, "type": "equivalent", "target": "1138816e8f083132125b9b33d04792f6", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}}, {"rule": 2, "type": "equivalent", "target": "63065ce22d7ea10df435d0e1f2e03608", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}}, {"rule": 2, "type": "equivalent", "target": "7b766169d5525931a22b6c9edc396215", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}}, {"rule": 2, "type": "equivalent", "target": "920c1e2131427bb9b57492137cc40c9f", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "920c1e2131427bb9b57492137cc40c9f", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "在 ecpg 中，避免发出错误的 “unsupported feature will be passed to server” 警告", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}, "url": "/docs/compare/?release=16.3#16.3-abde39c9ab91d9c0", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "63065ce22d7ea10df435d0e1f2e03608", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "在 ecpg 中，避免发出错误的 “unsupported feature will be passed to server” 警告", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}, "url": "/docs/compare/?release=14.12#14.12-c0521153c103b580", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "7b766169d5525931a22b6c9edc396215", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "在 ecpg 中，避免发出错误的 “unsupported feature will be passed to server” 警告", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}, "url": "/docs/compare/?release=13.15#13.15-f27db5d9ab14139f", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "1138816e8f083132125b9b33d04792f6", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "在 ecpg 中，避免发出错误的 “unsupported feature will be passed to server” 警告", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}, "url": "/docs/compare/?release=12.19#12.19-9afe1d20e2c69e77", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-93d7a61416ecd0bd", "cves": [], "html": "<p>确保 <span>ecpg</span> 的 <code>intoasc()</code> 函数的字符串结果正确以零结尾（Oleg Tselebrovskiy）<a href=\"https://postgr.es/c/b5cb6022b\">§</a></p>", "text": "确保 ecpg 的 intoasc() 函数的字符串结果正确以零结尾（Oleg Tselebrovskiy）§", "title": "确保 ecpg 的 intoasc() 函数的字符串结果正确以零结尾", "commits": ["b5cb6022b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "6f0f369ffa1478c7a0e142612bc961e5d2e062a6c1dbc7f357971329beb1aecf", "section_path": ["变更"], "commit_groups": [["771240f97", "88e03d055", "a05bb9add", "b5cb6022b", "c031ce97b", "e77a1c58e"]], "identity_text": "Ensure that the string result of ecpg's intoasc() function is correctly zero-terminated (Oleg Tselebrovskiy)", "commit_aliases": ["771240f97", "88e03d055", "a05bb9add", "b5cb6022b", "c031ce97b", "e77a1c58e"], "source_commits": ["b5cb6022b"], "source_entry_id": "15.7/changes/041", "db_id": "d380dd8966e5435fbf139b30b53c77e6", "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489", "relations": [{"rule": 2, "type": "equivalent", "target": "0518c552ba162106bdffb1fa87e81562", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}}, {"rule": 2, "type": "equivalent", "target": "492a6a9008038217a974383265692fb4", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}}, {"rule": 2, "type": "equivalent", "target": "9e116c1a7808fc2acdac3c765dc3aeb8", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}}, {"rule": 2, "type": "equivalent", "target": "b2c6f640647cdad0c363caaf72d2d8d3", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2c6f640647cdad0c363caaf72d2d8d3", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "确保 ecpg 的 intoasc() 函数的字符串结果正确以零结尾", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}, "url": "/docs/compare/?release=16.3#16.3-6ff031e5a237bc60", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "492a6a9008038217a974383265692fb4", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "确保 ecpg 的 intoasc() 函数的字符串结果正确以零结尾", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}, "url": "/docs/compare/?release=14.12#14.12-6c5495fd0788a6fa", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "9e116c1a7808fc2acdac3c765dc3aeb8", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "确保 ecpg 的 intoasc() 函数的字符串结果正确以零结尾", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}, "url": "/docs/compare/?release=13.15#13.15-f6da4c8ae0455782", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "0518c552ba162106bdffb1fa87e81562", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "确保 ecpg 的 intoasc() 函数的字符串结果正确以零结尾", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}, "url": "/docs/compare/?release=12.19#12.19-b1402d68b834639a", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-ad92ad288033cde3", "cves": [], "html": "<p>在 <span>psql</span> 中，避免在查询被取消后泄漏查询结果（Tom Lane）<a href=\"https://postgr.es/c/4f1d33d70\">§</a></p>\n<p>这仅在取消由 <code>\\;</code> 分隔符组成的查询字符串中的非最后一个查询时发生。</p>", "text": "在 psql 中，避免在查询被取消后泄漏查询结果（Tom Lane）§ 这仅在取消由 \\; 分隔符组成的查询字符串中的非最后一个查询时发生。", "title": "在 psql 中，避免在查询被取消后泄漏查询结果", "commits": ["4f1d33d70"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "4bf975f0e4099f57885ee1941a634bb8523ccf2fcec82e11f5d69db3a314089d", "section_path": ["变更"], "commit_groups": [["4f1d33d70", "a85e3ba1c", "f463de59d"]], "identity_text": "In psql, avoid leaking a query result after the query is cancelled (Tom Lane) This happened only when cancelling a non-last query in a query string made with \\; separators.", "commit_aliases": ["4f1d33d70", "a85e3ba1c", "f463de59d"], "source_commits": ["4f1d33d70"], "source_entry_id": "15.7/changes/042", "db_id": "a367f834102ea0bc1c88a942c402a6af", "patch_ids": ["f83306b2a107c1c7a1c9c5f6dba60bcf"], "statement_hash": "d24151604a43b3316397d414bfa0c71caed1574db99df923bfb284aad7df0e63", "relations": [{"rule": 2, "type": "equivalent", "target": "41847bf7b6469b99446fd49167b3d5ea", "evidence": {"same_day": true, "patch_ids": ["f83306b2a107c1c7a1c9c5f6dba60bcf"], "statement_hash": "d24151604a43b3316397d414bfa0c71caed1574db99df923bfb284aad7df0e63"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "41847bf7b6469b99446fd49167b3d5ea", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "在 psql 中，避免在查询被取消后泄漏查询结果", "evidence": {"same_day": true, "patch_ids": ["f83306b2a107c1c7a1c9c5f6dba60bcf"], "statement_hash": "d24151604a43b3316397d414bfa0c71caed1574db99df923bfb284aad7df0e63"}, "url": "/docs/compare/?release=16.3#16.3-35da3eb4bc2325b2", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}]}, {"id": "15.7-c61e178ebda9e41e", "cves": [], "html": "<p>修复 <span>pg_dumpall</span>，使角色注释（如果存在）无论 <code>--no-role-passwords</code> 的设置如何都会被导出（Daniel Gustafsson，Álvaro Herrera）<a href=\"https://postgr.es/c/12128be62\">§</a></p>", "text": "修复 pg_dumpall，使角色注释（如果存在）无论 --no-role-passwords 的设置如何都会被导出（Daniel Gustafsson，Álvaro Herrera）§", "title": "修复 pg_dumpall，使角色注释（如果存在）无论 --no-role-passwords 的设置如何都会被导出", "commits": ["12128be62"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "a65594958a56fb4b351ed2d3ad50499fea5c01ff24abf505ec79d2d1af4f362b", "section_path": ["变更"], "commit_groups": [["12128be62", "5863bacb8", "7e65ad197", "affc46b76", "be01c8c34", "d82cb467b"], ["6ebd43725", "82c2192d9", "d5c6affb8"]], "identity_text": "Fix pg_dumpall so that role comments, if present, will be dumped regardless of the setting of --no-role-passwords (Daniel Gustafsson, Álvaro Herrera)", "commit_aliases": ["12128be62", "5863bacb8", "6ebd43725", "7e65ad197", "82c2192d9", "affc46b76", "be01c8c34", "d5c6affb8", "d82cb467b"], "source_commits": ["12128be62", "6ebd43725"], "source_entry_id": "15.7/changes/043", "db_id": "fc40bcedbbb20bcccb87ee2cedae6617", "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598", "relations": [{"rule": 2, "type": "equivalent", "target": "24b6a7a900b126a85d75993c75a397de", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}}, {"rule": 2, "type": "equivalent", "target": "3e03f2de747ef7335af699c286da655e", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}}, {"rule": 2, "type": "equivalent", "target": "7de7d17e0b0617e67a76e3f4dca7115e", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}}, {"rule": 2, "type": "equivalent", "target": "d54e86de9796d7809701a97080c4ba9c", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "24b6a7a900b126a85d75993c75a397de", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 pg_dumpall，使角色注释（如果存在）无论 --no-role-passwords 的设置如何都会被导出", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}, "url": "/docs/compare/?release=16.3#16.3-4a18784e32597b16", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "d54e86de9796d7809701a97080c4ba9c", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复 pg_dumpall，使角色注释（如果存在）无论 --no-role-passwords 的设置如何都会被导出", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}, "url": "/docs/compare/?release=14.12#14.12-a2a42e741ab3efed", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "3e03f2de747ef7335af699c286da655e", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复 pg_dumpall，使角色注释（如果存在）无论 --no-role-passwords 的设置如何都会被导出", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}, "url": "/docs/compare/?release=13.15#13.15-e2426a1a0b99a288", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "7de7d17e0b0617e67a76e3f4dca7115e", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复 pg_dumpall，使角色注释（如果存在）无论 --no-role-passwords 的设置如何都会被导出", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}, "url": "/docs/compare/?release=12.19#12.19-619afa0f4427f05d", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-376d87dfdc0dbdec", "cves": [], "html": "<p>在 <span>pg_basebackup</span>、 <span>pg_checksums</span> 和 <span>pg_rewind</span> 中跳过名为 <code>.DS_Store</code> 的文件（Daniel Gustafsson）<a href=\"https://postgr.es/c/29f005238\">§</a></p>\n<p>这避免了在 macOS 上的问题，因为 Finder 可能会创建此类文件。</p>", "text": "在 pg_basebackup、 pg_checksums 和 pg_rewind 中跳过名为 .DS_Store 的文件（Daniel Gustafsson）§ 这避免了在 macOS 上的问题，因为 Finder 可能会创建此类文件。", "title": "在 pg_basebackup、 pg_checksums 和 pg_rewind 中跳过名为 .DS_Store 的文件", "commits": ["29f005238"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "cbd31a7fe07dd229b8fbfab9aba9c304eb0adcd1281089c397c86d85e111663f", "section_path": ["变更"], "commit_groups": [["103235888", "29f005238", "c1fc502f5"]], "identity_text": "Skip files named .DS_Store in pg_basebackup, pg_checksums, and pg_rewind (Daniel Gustafsson) This avoids problems on macOS, where the Finder may create such files.", "commit_aliases": ["103235888", "29f005238", "c1fc502f5"], "source_commits": ["29f005238"], "source_entry_id": "15.7/changes/044", "db_id": "85ea7ca3a876ad64be245fc7771db67c", "patch_ids": ["6678ac648d79f766ed7216ea5b0d8046"], "statement_hash": "f5acc7d3b51606dd24ce55e0fc41b4d4303d75258c9b72e1bbecbfc133cc7fff", "relations": [{"rule": 2, "type": "equivalent", "target": "736825dfdc65a4c7785fa55e27ebbf9b", "evidence": {"same_day": true, "patch_ids": ["6678ac648d79f766ed7216ea5b0d8046"], "statement_hash": "f5acc7d3b51606dd24ce55e0fc41b4d4303d75258c9b72e1bbecbfc133cc7fff"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "736825dfdc65a4c7785fa55e27ebbf9b", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "在 pg_basebackup、 pg_checksums 和 pg_rewind 中跳过名为 .DS_Store 的文件", "evidence": {"same_day": true, "patch_ids": ["6678ac648d79f766ed7216ea5b0d8046"], "statement_hash": "f5acc7d3b51606dd24ce55e0fc41b4d4303d75258c9b72e1bbecbfc133cc7fff"}, "url": "/docs/compare/?release=16.3#16.3-2fd63386f10a6291", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}]}, {"id": "15.7-0a6c5b378f4939dd", "cves": [], "html": "<p>修复 <span>PL/pgSQL</span> 对表达式后跟单行注释（<code>--</code> 风格注释）的解析（Erik Wienhold，Tom Lane）<a href=\"https://postgr.es/c/d85db0a8e\">§</a></p>\n<p>此错误导致当此类注释跟在 <span>PL/pgSQL</span> <code>CASE</code> 语句中的 <code>WHEN</code> 表达式之后时会出现解析错误。</p>", "text": "修复 PL/pgSQL 对表达式后跟单行注释（-- 风格注释）的解析（Erik Wienhold，Tom Lane）§ 此错误导致当此类注释跟在 PL/pgSQL CASE 语句中的 WHEN 表达式之后时会出现解析错误。", "title": "修复 PL/pgSQL 对表达式后跟单行注释（-- 风格注释）的解析", "commits": ["d85db0a8e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "94df1a4765f890ef13abb3b0f91db553f2a7d5436e446bb11b4c5cb1fa1d0916", "section_path": ["变更"], "commit_groups": [["48f216dc6", "5392dd3d2", "5e9d8bed0", "d85db0a8e", "dc5824a06", "f5cee411a"]], "identity_text": "Fix PL/pgSQL's parsing of single-line comments (---style comments) following expressions (Erik Wienhold, Tom Lane) This mistake caused parse errors if such a comment followed a WHEN expression in a PL/pgSQL CASE statement.", "commit_aliases": ["48f216dc6", "5392dd3d2", "5e9d8bed0", "d85db0a8e", "dc5824a06", "f5cee411a"], "source_commits": ["d85db0a8e"], "source_entry_id": "15.7/changes/045", "db_id": "19eb28a039d3f1ebb2480d7cab86b200", "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43", "relations": [{"rule": 2, "type": "equivalent", "target": "147255f0824b533d5ab04ab9cfb4609d", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}}, {"rule": 2, "type": "equivalent", "target": "a3bbbdd3971b3d16453109574c10d69d", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}}, {"rule": 2, "type": "equivalent", "target": "c47b554c98b63fab58c8250e00df86d5", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}}, {"rule": 2, "type": "equivalent", "target": "f970dac8fb9834a39acf82b093642459", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "147255f0824b533d5ab04ab9cfb4609d", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 PL/pgSQL 对表达式后跟单行注释（-- 风格注释）的解析", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}, "url": "/docs/compare/?release=16.3#16.3-ffdbd3405dc69153", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "f970dac8fb9834a39acf82b093642459", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复 PL/pgSQL 对表达式后跟单行注释（-- 风格注释）的解析", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}, "url": "/docs/compare/?release=14.12#14.12-15c5e7548a7e815e", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "c47b554c98b63fab58c8250e00df86d5", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复 PL/pgSQL 对表达式后跟单行注释（-- 风格注释）的解析", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}, "url": "/docs/compare/?release=13.15#13.15-7ad2179003324345", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "a3bbbdd3971b3d16453109574c10d69d", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复 PL/pgSQL 对表达式后跟单行注释（-- 风格注释）的解析", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}, "url": "/docs/compare/?release=12.19#12.19-8a92cb805eb2d4b1", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-6ed57b76bedb3f77", "cves": [], "html": "<p>在 <code>contrib/amcheck</code> 中，不要由于短头部与长头部值的差异而报告虚假的不匹配失败（Andrey Borodin，Michael Zhilin）<a href=\"https://postgr.es/c/0d466bce9\">§</a> <a href=\"https://postgr.es/c/54e6184db\">§</a></p>\n<p>堆元组或索引元组中的可变长度数据项可以有短头部或长头部，这取决于其创建时应用的压缩参数。将这些情况视为等价的，而不是在存在差异时报告错误。</p>", "text": "在 contrib/amcheck 中，不要由于短头部与长头部值的差异而报告虚假的不匹配失败（Andrey Borodin，Michael Zhilin）§ § 堆元组或索引元组中的可变长度数据项可以有短头部或长头部，这取决于其创建时应用的压缩参数。将这些情况视为等价的，而不是在存在差异时报告错误。", "title": "在 contrib/amcheck 中，不要由于短头部与长头部值的差异而报告虚假的不匹配失败", "commits": ["0d466bce9", "54e6184db"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "41bff75a668273a4c8abb45ec0c17c951633e5827e372a0b23a4d48f5bb0c62a", "section_path": ["变更"], "commit_groups": [["0d466bce9", "3676b846b", "4e8529da4", "5cc1f2626", "b1fe8efdf", "d603e6744"], ["50f8611d0", "54e6184db", "5df5d9cd7", "a6ddb8ad0", "ab65dfb0f", "e2c241416"]], "identity_text": "In contrib/amcheck, don't report false match failures due to short- versus long-header values (Andrey Borodin, Michael Zhilin) A variable-length datum in a heap tuple or index tuple could have either a short or a long header, depending on compression parameters that applied when it was made. Treat these cases as equivalent rather than complaining if there's a difference.", "commit_aliases": ["0d466bce9", "3676b846b", "4e8529da4", "50f8611d0", "54e6184db", "5cc1f2626", "5df5d9cd7", "a6ddb8ad0", "ab65dfb0f", "b1fe8efdf", "d603e6744", "e2c241416"], "source_commits": ["0d466bce9", "54e6184db"], "source_entry_id": "15.7/changes/046", "db_id": "8e974a7611d4dcc1be2d802a4ee40a82", "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2", "relations": [{"rule": 2, "type": "equivalent", "target": "53dceea6c6aaabe219d0e6ae24233a3e", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}}, {"rule": 2, "type": "equivalent", "target": "72d1b0830033e712160de1fd2ddb993a", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}}, {"rule": 2, "type": "equivalent", "target": "8965aef979ee593f6535045c789d7fea", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}}, {"rule": 2, "type": "equivalent", "target": "f1caa7b4d1dfa36396963a715a0724ae", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8965aef979ee593f6535045c789d7fea", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "在 contrib/amcheck 中，不要由于短头部与长头部值的差异而报告虚假的不匹配失败", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}, "url": "/docs/compare/?release=16.3#16.3-e4148c1581f18ace", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "53dceea6c6aaabe219d0e6ae24233a3e", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "在 contrib/amcheck 中，不要由于短头部与长头部值的差异而报告虚假的不匹配失败", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}, "url": "/docs/compare/?release=14.12#14.12-0ab4e0b2c9fa9d22", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "f1caa7b4d1dfa36396963a715a0724ae", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "在 contrib/amcheck 中，不要由于短头部与长头部值的差异而报告虚假的不匹配失败", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}, "url": "/docs/compare/?release=13.15#13.15-1ce866815ee8b870", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "72d1b0830033e712160de1fd2ddb993a", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "在 contrib/amcheck 中，不要由于短头部与长头部值的差异而报告虚假的不匹配失败", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}, "url": "/docs/compare/?release=12.19#12.19-820898ebc71275dc", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-3ba3cff9b8409b31", "cves": [], "html": "<p>修复 BRIN 输出函数中的错误（Tomas Vondra）<a href=\"https://postgr.es/c/3cd413511\">§</a></p>\n<p>这些输出函数仅用于在 <code>contrib/pageinspect</code> 中显示索引条目，因此这些错误在实际中影响有限。</p>", "text": "修复 BRIN 输出函数中的错误（Tomas Vondra）§ 这些输出函数仅用于在 contrib/pageinspect 中显示索引条目，因此这些错误在实际中影响有限。", "title": "修复 BRIN 输出函数中的错误", "commits": ["3cd413511"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "fd505c6974e3128022235e677dfc367188238f1727c74b74ee7dff2a2fb6bffd", "section_path": ["变更"], "commit_groups": [["2f20ced1e", "3cd413511", "ad23af83d", "ccd8f0fa1"], ["8cea358b1", "bb616ed3e"]], "identity_text": "Fix bugs in BRIN output functions (Tomas Vondra) These output functions are only used for displaying index entries in contrib/pageinspect, so the errors are of limited practical concern.", "commit_aliases": ["2f20ced1e", "3cd413511", "8cea358b1", "ad23af83d", "bb616ed3e", "ccd8f0fa1"], "source_commits": ["3cd413511", "bb616ed3e"], "source_entry_id": "15.7/changes/047", "db_id": "04ff4d043f194178e3972237e7f8408d", "patch_ids": ["8734b5343fcb5b3e329f9aa4521e123d", "b234ff7fc13cbf072cd9eecf5cafb0a1"], "statement_hash": "6209e7647555f3f3811f47278d7b842c1d62b73cb43c8b28042fe46ae77f85d7", "relations": [{"rule": 2, "type": "equivalent", "target": "1f3ae268c8dc4b8675957fbb100ccec2", "evidence": {"same_day": true, "patch_ids": ["8734b5343fcb5b3e329f9aa4521e123d", "b234ff7fc13cbf072cd9eecf5cafb0a1"], "statement_hash": "6209e7647555f3f3811f47278d7b842c1d62b73cb43c8b28042fe46ae77f85d7"}}, {"rule": 2, "type": "equivalent", "target": "b93a05a9e45388d4281053cd153d332f", "evidence": {"same_day": true, "patch_ids": ["8734b5343fcb5b3e329f9aa4521e123d", "b234ff7fc13cbf072cd9eecf5cafb0a1"], "statement_hash": "6209e7647555f3f3811f47278d7b842c1d62b73cb43c8b28042fe46ae77f85d7"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1f3ae268c8dc4b8675957fbb100ccec2", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复 BRIN 输出函数中的错误", "evidence": {"same_day": true, "patch_ids": ["8734b5343fcb5b3e329f9aa4521e123d", "b234ff7fc13cbf072cd9eecf5cafb0a1"], "statement_hash": "6209e7647555f3f3811f47278d7b842c1d62b73cb43c8b28042fe46ae77f85d7"}, "url": "/docs/compare/?release=16.3#16.3-ea28af88a8ffc172", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "b93a05a9e45388d4281053cd153d332f", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复 BRIN 输出函数中的错误", "evidence": {"same_day": true, "patch_ids": ["8734b5343fcb5b3e329f9aa4521e123d", "b234ff7fc13cbf072cd9eecf5cafb0a1"], "statement_hash": "6209e7647555f3f3811f47278d7b842c1d62b73cb43c8b28042fe46ae77f85d7"}, "url": "/docs/compare/?release=14.12#14.12-ca24d4760b5491b0", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}]}, {"id": "15.7-95baabc51e7c5b73", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，避免发出按常量排序的请求（David Rowley）<a href=\"https://postgr.es/c/ab64b275a\">§</a></p>\n<p>这可能发生在涉及 <code>UNION ALL</code> 和常量输出子查询的情况下。按常量排序当然是无用的，但还有被远程服务器误解的风险，导致 <span>“<span>ORDER BY position <em><code>N</code></em> is not in select list</span>”</span> 错误。</p>", "text": "在 contrib/postgres_fdw 中，避免发出按常量排序的请求（David Rowley）§ 这可能发生在涉及 UNION ALL 和常量输出子查询的情况下。按常量排序当然是无用的，但还有被远程服务器误解的风险，导致 “ORDER BY position N is not in select list” 错误。", "title": "在 contrib/postgres_fdw 中，避免发出按常量排序的请求", "commits": ["ab64b275a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "c4e21c498082ed32b57a9025e95c81ea347bf47a89e6af798afe6fde486d6ee4", "section_path": ["变更"], "commit_groups": [["20b85b3da", "628c3f2e1", "6a9e2cb2b", "9301e0f41", "ab64b275a", "c399248b3"]], "identity_text": "In contrib/postgres_fdw, avoid emitting requests to sort by a constant (David Rowley) This could occur in cases involving UNION ALL with constant-emitting subqueries. Sorting by a constant is useless of course, but it also risks being misinterpreted by the remote server, leading to ORDER BY position N is not in select list errors.", "commit_aliases": ["20b85b3da", "628c3f2e1", "6a9e2cb2b", "9301e0f41", "ab64b275a", "c399248b3"], "source_commits": ["ab64b275a"], "source_entry_id": "15.7/changes/048", "db_id": "862902893dc9bd2c25a881795169e006", "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2", "relations": [{"rule": 2, "type": "equivalent", "target": "6e2e48e2c92785211fcb512bdb30ed23", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}}, {"rule": 2, "type": "equivalent", "target": "707f65347a4b38b7b64b36d701b93664", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}}, {"rule": 2, "type": "equivalent", "target": "a2bd7ba442bc35fa5af90756c17007d8", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}}, {"rule": 2, "type": "equivalent", "target": "a3d1c8dec9febc76cd93ebdeb18859eb", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a3d1c8dec9febc76cd93ebdeb18859eb", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "在 contrib/postgres_fdw 中，避免发出按常量排序的请求", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}, "url": "/docs/compare/?release=16.3#16.3-47fa546097a45ce7", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "6e2e48e2c92785211fcb512bdb30ed23", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "在 contrib/postgres_fdw 中，避免发出按常量排序的请求", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}, "url": "/docs/compare/?release=14.12#14.12-030046262b5b4f96", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "707f65347a4b38b7b64b36d701b93664", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "在 contrib/postgres_fdw 中，避免发出按常量排序的请求", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}, "url": "/docs/compare/?release=13.15#13.15-9be7af3319acb128", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "a2bd7ba442bc35fa5af90756c17007d8", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "在 contrib/postgres_fdw 中，避免发出按常量排序的请求", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}, "url": "/docs/compare/?release=12.19#12.19-9625888f623a6fda", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-de56de507ef93706", "cves": [], "html": "<p>使 <code>contrib/postgres_fdw</code> 将远程会话的时区设置为 <code>GMT</code> 而不是 <code>UTC</code>（Tom Lane）<a href=\"https://postgr.es/c/6c85e3359\">§</a></p>\n<p>在实际用途中这应该产生相同的结果。然而，<code>GMT</code> 由服务器中的硬编码代码识别，而 <code>UTC</code> 则从时区数据库中查找。因此在远程服务器的时区数据库缺少条目的不太可能的情况下，旧代码可能失败。</p>", "text": "使 contrib/postgres_fdw 将远程会话的时区设置为 GMT 而不是 UTC（Tom Lane）§ 在实际用途中这应该产生相同的结果。然而，GMT 由服务器中的硬编码代码识别，而 UTC 则从时区数据库中查找。因此在远程服务器的时区数据库缺少条目的不太可能的情况下，旧代码可能失败。", "title": "使 contrib/postgres_fdw 将远程会话的时区设置为 GMT 而不是 UTC", "commits": ["6c85e3359"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "fbd1d23bad3b89ff7667511a7afa05504c7ffa00d35178eb4b0e1a167d5199a2", "section_path": ["变更"], "commit_groups": [["0e56b2b94", "3ed6e1698", "6c85e3359", "75929b6cf", "a3021aafc", "ce1c30ece"]], "identity_text": "Make contrib/postgres_fdw set the remote session's time zone to GMT not UTC (Tom Lane) This should have the same results for practical purposes. However, GMT is recognized by hard-wired code in the server, while UTC is looked up in the timezone database. So the old code could fail in the unlikely event that the remote server's timezone database is missing entries.", "commit_aliases": ["0e56b2b94", "3ed6e1698", "6c85e3359", "75929b6cf", "a3021aafc", "ce1c30ece"], "source_commits": ["6c85e3359"], "source_entry_id": "15.7/changes/049", "db_id": "6a0651089219e6b60b8be5355fc437a6", "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3", "relations": [{"rule": 2, "type": "equivalent", "target": "2179c32ed8dd548cfb4c6b3814286a77", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}}, {"rule": 2, "type": "equivalent", "target": "419ef5885ac8a664405d22acc9e51b98", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}}, {"rule": 2, "type": "equivalent", "target": "6fc754f9cd55cd094f6a30f32819d1eb", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}}, {"rule": 2, "type": "equivalent", "target": "a990d24d44f7867423a4483f53d749e3", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "419ef5885ac8a664405d22acc9e51b98", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "使 contrib/postgres_fdw 将远程会话的时区设置为 GMT 而不是 UTC", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}, "url": "/docs/compare/?release=16.3#16.3-5f50552544943722", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "a990d24d44f7867423a4483f53d749e3", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "使 contrib/postgres_fdw 将远程会话的时区设置为 GMT 而不是 UTC", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}, "url": "/docs/compare/?release=14.12#14.12-c561ece69e927e55", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "2179c32ed8dd548cfb4c6b3814286a77", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "使 contrib/postgres_fdw 将远程会话的时区设置为 GMT 而不是 UTC", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}, "url": "/docs/compare/?release=13.15#13.15-d9ef80bf9e503e9c", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "6fc754f9cd55cd094f6a30f32819d1eb", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "使 contrib/postgres_fdw 将远程会话的时区设置为 GMT 而不是 UTC", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}, "url": "/docs/compare/?release=12.19#12.19-6f59b509ea470d07", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-0c44d8c63c4133ee", "cves": [], "html": "<p>在 <code>contrib/xml2</code> 中，避免使用在较新版本的 <span>libxml2</span> 中已弃用的库函数（Dmitry Koval）<a href=\"https://postgr.es/c/7c93f31de\">§</a></p>", "text": "在 contrib/xml2 中，避免使用在较新版本的 libxml2 中已弃用的库函数（Dmitry Koval）§", "title": "在 contrib/xml2 中，避免使用在较新版本的 libxml2 中已弃用的库函数", "commits": ["7c93f31de"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "e359da987d6ec68fff5d2918287980aed162c4ee0c5cf53e25b2db1bfe8f0b6c", "section_path": ["变更"], "commit_groups": [["4b0e5d601", "689ba4f1c", "6fa5e67e8", "7c93f31de", "bb418aeee"]], "identity_text": "In contrib/xml2, avoid use of library functions that have been deprecated in recent versions of libxml2 (Dmitry Koval)", "commit_aliases": ["4b0e5d601", "689ba4f1c", "6fa5e67e8", "7c93f31de", "bb418aeee"], "source_commits": ["689ba4f1c"], "source_entry_id": "15.7/changes/050", "db_id": "7655b2394b2d8b26f6159eb7da6fa5f1", "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e", "relations": [{"rule": 2, "type": "equivalent", "target": "0bcb9460a48a0f61192644ede677e019", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}}, {"rule": 2, "type": "equivalent", "target": "81ee994d03931a7b198f921157f9bbe1", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}}, {"rule": 2, "type": "equivalent", "target": "cb901205a3693e9499be0e4a77f84a63", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}}, {"rule": 2, "type": "equivalent", "target": "e0ecb12734b0cefa7ef5e5d6781106f2", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cb901205a3693e9499be0e4a77f84a63", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "在 contrib/xml2 中，避免使用在较新版本的 libxml2 中已弃用的库函数", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}, "url": "/docs/compare/?release=16.3#16.3-0c44d8c63c4133ee", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "81ee994d03931a7b198f921157f9bbe1", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "在 contrib/xml2 中，避免使用在较新版本的 libxml2 中已弃用的库函数", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}, "url": "/docs/compare/?release=14.12#14.12-0c44d8c63c4133ee", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "e0ecb12734b0cefa7ef5e5d6781106f2", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "在 contrib/xml2 中，避免使用在最近版本的 libxml2 中已弃用的库函数", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}, "url": "/docs/compare/?release=13.15#13.15-f7010fbae4b9407f", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "0bcb9460a48a0f61192644ede677e019", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "在 contrib/xml2 中，避免使用在最近版本的 libxml2 中已弃用的库函数", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}, "url": "/docs/compare/?release=12.19#12.19-ba3b152984e24a01", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-7b6232136f8c9f58", "cves": [], "html": "<p>修复与 LLVM 18 的不兼容性（Thomas Munro，Dmitry Dolgov）<a href=\"https://postgr.es/c/74992929a\">§</a></p>", "text": "修复与 LLVM 18 的不兼容性（Thomas Munro，Dmitry Dolgov）§", "title": "修复与 LLVM 18 的不兼容性", "commits": ["74992929a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "c1daba80993f11219e37f4117ca7abed8b69d9b68011d02d0ce15109f00a98ec", "section_path": ["变更"], "commit_groups": [["01b55203a", "4f90750b5", "53c8d6c9f", "74992929a", "7fe32eaa4", "bf1cfe77e"]], "identity_text": "Fix incompatibility with LLVM 18 (Thomas Munro, Dmitry Dolgov)", "commit_aliases": ["01b55203a", "4f90750b5", "53c8d6c9f", "74992929a", "7fe32eaa4", "bf1cfe77e"], "source_commits": ["74992929a"], "source_entry_id": "15.7/changes/051", "db_id": "34bb891badb95e95c579de49a04bc72c", "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772", "relations": [{"rule": 2, "type": "equivalent", "target": "04dc0eaac3a719f9c581e84f59027710", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}}, {"rule": 2, "type": "equivalent", "target": "645ccec8e97dd0947fde4c5dce156141", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}}, {"rule": 2, "type": "equivalent", "target": "a03de54544ea53bab790da1072686f7e", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}}, {"rule": 2, "type": "equivalent", "target": "ae60d6e2fe584ca1f096870f5906c104", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}}], "version": "15.7", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "04dc0eaac3a719f9c581e84f59027710", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "修复与 LLVM 18 的不兼容性", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}, "url": "/docs/compare/?release=16.3#16.3-327357d5baf67111", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "a03de54544ea53bab790da1072686f7e", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "修复与 LLVM 18 的不兼容性", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}, "url": "/docs/compare/?release=14.12#14.12-fe9134bf213542dd", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "645ccec8e97dd0947fde4c5dce156141", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "修复与 LLVM 18 的不兼容性", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}, "url": "/docs/compare/?release=13.15#13.15-ab90094fab426a70", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "ae60d6e2fe584ca1f096870f5906c104", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "修复与 LLVM 18 的不兼容性", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}, "url": "/docs/compare/?release=12.19#12.19-d97e139b99d00413", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "15.7-1f208194cee3206c", "cves": [], "html": "<p>允许 <code>make check</code> 在 <span>musl</span> C 库下工作（Thomas Munro，Bruce Momjian，Tom Lane）<a href=\"https://postgr.es/c/3c3f4fd74\">§</a></p>", "text": "允许 make check 在 musl C 库下工作（Thomas Munro，Bruce Momjian，Tom Lane）§", "title": "允许 make check 在 musl C 库下工作", "commits": ["3c3f4fd74"], "section": "变更", "category": "improvement", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22", "source_hash": "ad924411e51036e651bf825ac853d9165ec75e74283cf512b610ef11e40f94c1", "section_path": ["变更"], "commit_groups": [["243e99532", "3c3f4fd74", "7124e7d52", "7651fd387", "8a92b70c1", "d82605bcd"]], "identity_text": "Allow make check to work with the musl C library (Thomas Munro, Bruce Momjian, Tom Lane)", "commit_aliases": ["243e99532", "3c3f4fd74", "7124e7d52", "7651fd387", "8a92b70c1", "d82605bcd"], "source_commits": ["3c3f4fd74"], "source_entry_id": "15.7/changes/052", "db_id": "614b385e1aaa55b66b2ccb6647aa5d77", "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82", "relations": [{"rule": 2, "type": "equivalent", "target": "249f4497ca17377423336ca6d8a30fa8", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}}, {"rule": 2, "type": "equivalent", "target": "354394f51cf61be086b6ffe69e668dd3", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}}, {"rule": 2, "type": "equivalent", "target": "4be7cee7e9515b4547d6856a88812274", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}}, {"rule": 2, "type": "equivalent", "target": "e68b85c41ba477e0f8c5a3106e5bc69d", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}}], "version": "15.7", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4be7cee7e9515b4547d6856a88812274", "kind": "equivalent", "version": "16.3", "label": "16.3", "title": "允许 make check 在 musl C 库下工作", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}, "url": "/docs/compare/?release=16.3#16.3-5eacab78ed6be1a0", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES"}, {"db_id": "e68b85c41ba477e0f8c5a3106e5bc69d", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "允许 make check 在 musl C 库下工作", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}, "url": "/docs/compare/?release=14.12#14.12-e5f02358be8c1ef9", "source_url": "/docs/release/14.12/#ZH-AUTO-RELEASE-14-SECT2-22"}, {"db_id": "354394f51cf61be086b6ffe69e668dd3", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "允许 make check 在 musl C 库下工作", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}, "url": "/docs/compare/?release=13.15#13.15-7f8d5f14dd0b076e", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "249f4497ca17377423336ca6d8a30fa8", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "允许 make check 在 musl C 库下工作", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}, "url": "/docs/compare/?release=12.19#12.19-18300bc70d33e78c", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 52}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 23}, {"key": "security", "label": "安全相关", "count": 1}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 28}], "total": 52, "release_count": 1, "cross_major": false, "cve_count": 1, "cves": [{"id": "CVE-2024-4317", "url": "https://www.postgresql.org/support/security/CVE-2024-4317/", "fixed": {"14": "14.12", "15": "15.7", "16": "16.3"}, "score": 3.1, "title": "将 pg_stats_ext 和 pg_stats_ext_exprs 条目的可见性限制为表所有者", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-4317", "affected": {"14": "14", "15": "15", "16": "16"}, "component": "core server", "published": {"14": "2024-05-09", "15": "2024-05-09", "16": "2024-05-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL built-in views pg_stats_ext and pg_stats_ext_exprs allows an unprivileged database user to read most common values and other statistics from CREATE STATISTICS commands of other users. The most common values may reveal column values the eavesdropper could not otherwise read or results of functions they cannot execute. Installing an unaffected version only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after installing that version. Current PostgreSQL installations will remain vulnerable until they follow the instructions in the release notes, which are provided as a convenience in the below section. Within major versions 14-16, minor versions before PostgreSQL 16.3, 15.7, and 14.12 are affected. Versions before PostgreSQL 14 are unaffected.\n\nThis fix only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after this fix is applied. If you have a current PostgreSQL installation and are concerned about this issue, please use the following remediation steps to fix the issue:\n\nFrom the above URLs, you can click the URL that says \"raw\" to download a version that you can copy and paste.\n\nBe sure to use the script appropriate to your PostgreSQL major version. If you do not see this file, either your version is not vulnerable (only PostgreSQL 14, 15, and 16 are affected) or your minor version is too old to have the fix.\n\n\\i /usr/share/postgresql/fix-CVE-2024-4317.sql\n\nALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;\n\nAfter executing the fix-CVE-2024-4317.sql script in template0 and template1 , you should revoke the ability for template0 to accept connections. You can do this with the following command:\n\nALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;\n\nThe PostgreSQL project thanks Lukas Fittl for reporting this problem.", "affected_ranges": [{"from": "14", "until": "14.12"}, {"from": "15", "until": "15.7"}, {"from": "16", "until": "16.3"}], "first_published": "2024-05-09", "fixed_version": "15.7"}], "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"}