{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2024-05-09", "build": "12.19", "major": "12", "minor": 19, "manual": "12", "status": "stable", "doc_git": "", "version": "12.19", "eol_date": "2024-11-21", "date_text": "2024-05-09", "supported": false, "manual_url": "/docs/12/release-12-19.html", "source_url": "/docs/release/12.19/", "entry_count": 35, "placeholder": false, "content_hash": "229b37a70017bc70dfd283b3b90b6ed7cdab013f65b439b5f65edeed5216bb45", "manual_build": "12.22", "source_as_of": "", "changes_count": 35, "doc_loaded_at": "2026-09-26T02:56:41.471523", "migration_html": "<p>对于运行 12.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果是从早于 12.18 的版本升级，请参见<a href=\"/docs/12/release-12-18.html\" title=\"E.5. 发布版本 12.18\">第 E.5 节</a>。</p>", "compatibility_count": 0, "label": "12.19", "status_label": "历史版本", "eol": "2024-11-21", "age_days": 874, "support_days": -678}, "groups": [{"date": "2024-05-09", "build": "12.19", "major": "12", "minor": 19, "manual": "12", "status": "stable", "doc_git": "", "version": "12.19", "eol_date": "2024-11-21", "date_text": "2024-05-09", "supported": false, "manual_url": "/docs/12/release-12-19.html", "source_url": "/docs/release/12.19/", "entry_count": 35, "placeholder": false, "content_hash": "229b37a70017bc70dfd283b3b90b6ed7cdab013f65b439b5f65edeed5216bb45", "manual_build": "12.22", "source_as_of": "", "changes_count": 35, "doc_loaded_at": "2026-09-26T02:56:41.471523", "migration_html": "<p>对于运行 12.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果是从早于 12.18 的版本升级，请参见<a href=\"/docs/12/release-12-18.html\" title=\"E.5. 发布版本 12.18\">第 E.5 节</a>。</p>", "compatibility_count": 0, "label": "12.19", "status_label": "历史版本", "eol": "2024-11-21", "age_days": 874, "support_days": -678, "entries": [{"id": "12.19-ec2b64a5851f8b06", "cves": [], "html": "<p>修复从多个 <code>VALUES</code> 行 <code>INSERT</code> 到目标列为数组或复合类型上的域时的问题（Tom Lane）<a href=\"https://postgr.es/c/82c87af7a\">§</a></p>\n<p>这类情况会以数据类型不匹配的意外错误失败，或者插入可能导致奇怪结果的意外强制转换。</p>", "text": "修复从多个 VALUES 行 INSERT 到目标列为数组或复合类型上的域时的问题（Tom Lane）§ 这类情况会以数据类型不匹配的意外错误失败，或者插入可能导致奇怪结果的意外强制转换。", "title": "修复从多个 VALUES 行 INSERT 到目标列为数组或复合类型上的域时的问题", "commits": ["82c87af7a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "78f1b8a476dd5dda389f2af5c3ca763c681ee2b3ff8e16c9d9629356ec0382e7", "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": ["82c87af7a"], "source_entry_id": "12.19/changes/001", "db_id": "785ca9c7fc24a36b5111b0700e489e7a", "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": "9572f8110ded2a8d7803e002d11d40b0", "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": "12.19", "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": "9572f8110ded2a8d7803e002d11d40b0", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复从多个 VALUES 行 INSERT 到目标列为数组或复合类型上的域时的问题", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}, "url": "/docs/compare/?release=15.7#15.7-dd89857090ed0e99", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-171cac36b8b103da", "cves": [], "html": "<p>修复当表按布尔列分区且查询含有布尔 <code>IS NOT</code> 子句时，对 NULL 分区的不正确修剪（David Rowley）<a href=\"https://postgr.es/c/3ffcd24c2\">§</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": ["3ffcd24c2"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "81e06ff53d0ac3365c33222d1ded75ad5b92dbb51aeed8239354f9882ae8a2f5", "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": ["3ffcd24c2"], "source_entry_id": "12.19/changes/002", "db_id": "b91de14004a5f3f7b37a602664a2346e", "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": "cc683f011aab64292afebeb3e3e9850c", "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": "12.19", "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": "cc683f011aab64292afebeb3e3e9850c", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复当表按布尔列分区且查询含有布尔 IS NOT 子句时，对 NULL 分区的不正确修剪", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}, "url": "/docs/compare/?release=15.7#15.7-d93dc420de3341d7", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-baa828f55b63c4ce", "cves": [], "html": "<p>使 <code>ALTER FOREIGN TABLE SET SCHEMA</code> 将所拥有的序列移到新模式中（Tom Lane）<a href=\"https://postgr.es/c/a8b740868\">§</a></p>\n<p>将常规表移到新模式会导致该表所拥有的序列也被移到该模式中（连同索引和约束）。但对于外部表，这一点被遗漏了。</p>", "text": "使 ALTER FOREIGN TABLE SET SCHEMA 将所拥有的序列移到新模式中（Tom Lane）§ 将常规表移到新模式会导致该表所拥有的序列也被移到该模式中（连同索引和约束）。但对于外部表，这一点被遗漏了。", "title": "使 ALTER FOREIGN TABLE SET SCHEMA 将所拥有的序列移到新模式中", "commits": ["a8b740868"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "ccd27aaa16da2588ad1f9bef62b43737492fbc14ba80242a025edf219db8356a", "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": ["a8b740868"], "source_entry_id": "12.19/changes/003", "db_id": "48b7ba94dd733c6edc7495dbc1492c04", "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0", "relations": [{"rule": 2, "type": "equivalent", "target": "4be5419bd6b46edb6f7272280c3e507a", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}}, {"rule": 2, "type": "equivalent", "target": "769cae3d725b2bea33af3671538742b9", "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": "12.19", "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": "769cae3d725b2bea33af3671538742b9", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "使 ALTER FOREIGN TABLE SET SCHEMA 将所拥有的序列移到新模式中", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}, "url": "/docs/compare/?release=15.7#15.7-200c122f1723193b", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-3d95a4f1e9bda0ed", "cves": [], "html": "<p>修复 <code>EXPLAIN</code> 对位图堆扫描访问的堆页面的计数（Melanie Plageman）<a href=\"https://postgr.es/c/f3e4581ac\">§</a></p>\n<p>之前，不包含可见元组的堆页面不被计数；但计算位图索引扫描返回的所有页面似乎更一致。</p>", "text": "修复 EXPLAIN 对位图堆扫描访问的堆页面的计数（Melanie Plageman）§ 之前，不包含可见元组的堆页面不被计数；但计算位图索引扫描返回的所有页面似乎更一致。", "title": "修复 EXPLAIN 对位图堆扫描访问的堆页面的计数", "commits": ["f3e4581ac"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "033c7c01943ac6b5699f11534989162f4c7242ad09504acf8902de34bf31ac8c", "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": ["f3e4581ac"], "source_entry_id": "12.19/changes/004", "db_id": "a6781eb095c0575e3926a5f509629f7e", "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": "5d8b1aeb779ca0047404aae006b5aff8", "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": "12.19", "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": "5d8b1aeb779ca0047404aae006b5aff8", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复 EXPLAIN 对位图堆扫描访问的堆页面的计数", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}, "url": "/docs/compare/?release=15.7#15.7-8542c116b2fb8276", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-df96b0e59c03c393", "cves": [], "html": "<p>避免在移除孤立临时表时出现死锁（Mikhail Zhilin）<a href=\"https://postgr.es/c/f5d9212e5\">§</a></p>\n<p>如果创建临时表的会话在未移除该表的情况下崩溃，autovacuum 最终会尝试移除该孤立的表。然而，被分配了相同临时命名空间的新传入会话也会尝试这样做。如果临时表有依赖项（如拥有的序列），这两个清理尝试之间可能会产生死锁。</p>", "text": "避免在移除孤立临时表时出现死锁（Mikhail Zhilin）§ 如果创建临时表的会话在未移除该表的情况下崩溃，autovacuum 最终会尝试移除该孤立的表。然而，被分配了相同临时命名空间的新传入会话也会尝试这样做。如果临时表有依赖项（如拥有的序列），这两个清理尝试之间可能会产生死锁。", "title": "避免在移除孤立临时表时出现死锁", "commits": ["f5d9212e5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "00b9a79ed55796f67241c8014c6bf6be1fb6a2bd597b1919851694bf035c78e3", "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": ["f5d9212e5"], "source_entry_id": "12.19/changes/005", "db_id": "964b5974ae34a252057bb68172077f3b", "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": "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"}}, {"rule": 2, "type": "equivalent", "target": "fe708a1ceaa35d707899a2b3639c12ba", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}}], "version": "12.19", "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": "fe708a1ceaa35d707899a2b3639c12ba", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "避免在移除孤立临时表时出现死锁", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}, "url": "/docs/compare/?release=15.7#15.7-178852343a784d35", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-ee7edbaaeb1b4fc5", "cves": [], "html": "<p>避免在检查每个关系的冻结 XID 值时出现竞态条件（Noah Misch）<a href=\"https://postgr.es/c/f222349c4\">§</a></p>\n<p><code>VACUUM</code> 从每个关系的值计算每个数据库的冻结 XID 值时，可能会被另一个 <code>VACUUM</code> 对这些值的并发更新所混淆。</p>", "text": "避免在检查每个关系的冻结 XID 值时出现竞态条件（Noah Misch）§ VACUUM 从每个关系的值计算每个数据库的冻结 XID 值时，可能会被另一个 VACUUM 对这些值的并发更新所混淆。", "title": "避免在检查每个关系的冻结 XID 值时出现竞态条件", "commits": ["f222349c4"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "6d79ba2aa8b15f7f875ae6617162c68e345908552dd0410c87c0ce57f722e6f0", "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": ["f222349c4"], "source_entry_id": "12.19/changes/006", "db_id": "3d9f28ddfd2eb05755c08bb786cd6fd9", "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": "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"}}, {"rule": 2, "type": "equivalent", "target": "b6b2e184cf5ac50af437324df4b7fa3a", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}}], "version": "12.19", "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": "b6b2e184cf5ac50af437324df4b7fa3a", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "避免在检查每个关系的冻结 XID 值时出现竞态条件", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}, "url": "/docs/compare/?release=15.7#15.7-3d6adc0a11d543c2", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-d57efc2030cebeb4", "cves": [], "html": "<p>禁止在使用该表的外部 SQL 命令中将表转换为视图（Tom Lane）<a href=\"https://postgr.es/c/56d30fb10\">§</a></p>\n<p>这可以避免可能的崩溃。</p>", "text": "禁止在使用该表的外部 SQL 命令中将表转换为视图（Tom Lane）§ 这可以避免可能的崩溃。", "title": "禁止在使用该表的外部 SQL 命令中将表转换为视图", "commits": ["56d30fb10"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "0ddf4a05d8f8656b1f81505a292dec2e6898bee5c752bf3856c01d3cf22afb05", "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": ["56d30fb10"], "source_entry_id": "12.19/changes/007", "db_id": "6b49dac890f665fe1ea6667c5bea5aa8", "patch_ids": ["1927dffeaf6a13f58425a8f4ac03504e"], "statement_hash": "f70462682298f994593b1a46a3e560df6441eb215e899f5fe11cfe56baa9e391", "relations": [{"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"}}, {"rule": 2, "type": "equivalent", "target": "a93eefe6ff67a6064cdc7a0cc15a9961", "evidence": {"same_day": true, "patch_ids": ["1927dffeaf6a13f58425a8f4ac03504e"], "statement_hash": "f70462682298f994593b1a46a3e560df6441eb215e899f5fe11cfe56baa9e391"}}], "version": "12.19", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a93eefe6ff67a6064cdc7a0cc15a9961", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "禁止在使用该表的外部 SQL 命令内将表转换为视图", "evidence": {"same_day": true, "patch_ids": ["1927dffeaf6a13f58425a8f4ac03504e"], "statement_hash": "f70462682298f994593b1a46a3e560df6441eb215e899f5fe11cfe56baa9e391"}, "url": "/docs/compare/?release=15.7#15.7-0504fc84ba1ca51f", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-38af96fc2aaf3868", "cves": [], "html": "<p>确保从等价类生成的连接条件在正确的计划层级应用（Tom Lane）<a href=\"https://postgr.es/c/f502849d4\">§</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": ["f502849d4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "19dde19fde544d59d861356d822a30fa8678ef17f5c6939ebb8d2e66e75d33b6", "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": ["f502849d4"], "source_entry_id": "12.19/changes/008", "db_id": "658c63a7eef27926f18eca85f44a760d", "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": "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"}}, {"rule": 2, "type": "equivalent", "target": "c622b2e4abdaec72b7c705d5abf61eb0", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}}], "version": "12.19", "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": "c622b2e4abdaec72b7c705d5abf61eb0", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "确保从等价类生成的连接条件在正确的计划层级应用", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}, "url": "/docs/compare/?release=15.7#15.7-22e8e29f4c12ad32", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-f885a24ff8dcb03f", "cves": [], "html": "<p>避免在非移动窗口帧中不必要地使用移动聚合模式（Vallimaharajan G）<a href=\"https://postgr.es/c/25675c474\">§</a></p>\n<p>当普通聚合作为窗口函数使用，且窗口帧起始指定为 <code>UNBOUNDED PRECEDING</code> 时，帧的头部无法移动，因此我们不需要使用特殊的（且更昂贵的）移动聚合模式。这个优化一直是预期的，但由于编码错误从未被触发。</p>", "text": "避免在非移动窗口帧中不必要地使用移动聚合模式（Vallimaharajan G）§ 当普通聚合作为窗口函数使用，且窗口帧起始指定为 UNBOUNDED PRECEDING 时，帧的头部无法移动，因此我们不需要使用特殊的（且更昂贵的）移动聚合模式。这个优化一直是预期的，但由于编码错误从未被触发。", "title": "避免在非移动窗口帧中不必要地使用移动聚合模式", "commits": ["25675c474"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "3da59b3b3e19fe826aca237eada0c6d299a512fd18ebb8ecdbb8b605e66811a6", "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": ["25675c474"], "source_entry_id": "12.19/changes/009", "db_id": "8336fdf7b47048506e3166ce83a5ac54", "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": "bf991f789c2d125d6fee000622467111", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}}, {"rule": 2, "type": "equivalent", "target": "cac74bac165a12ad82398067235c2204", "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": "12.19", "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": "cac74bac165a12ad82398067235c2204", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "避免在非移动窗口帧中不必要地使用移动聚合模式", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}, "url": "/docs/compare/?release=15.7#15.7-5bd59c50ba56bf34", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-4fa5a5f2c77c3473", "cves": [], "html": "<p>避免在 GEQO 下规划按分区连接时使用已释放的数据（Tom Lane）<a href=\"https://postgr.es/c/cf807eba5\">§</a></p>\n<p>这通常会以崩溃或意外的错误消息告终。</p>", "text": "避免在 GEQO 下规划按分区连接时使用已释放的数据（Tom Lane）§ 这通常会以崩溃或意外的错误消息告终。", "title": "避免在 GEQO 下规划按分区连接时使用已释放的数据", "commits": ["cf807eba5"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "c27f005223bbcff2531dd0fb7f968ca1c8529c4958a5c22ce27bd7e853df1b71", "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": ["cf807eba5"], "source_entry_id": "12.19/changes/010", "db_id": "d2e09b93d7b8a33572885d7757e4b8b2", "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4", "relations": [{"rule": 2, "type": "equivalent", "target": "0d3074cad771d5db9fea1fd758e762a2", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}}, {"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": "f566d302f941aee4baf53034a6f28f36", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}}], "version": "12.19", "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": "0d3074cad771d5db9fea1fd758e762a2", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "避免在 GEQO 下规划按分区连接时使用已释放的数据", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}, "url": "/docs/compare/?release=15.7#15.7-768c63d0b2dacf7f", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-a7cb15ec680b6880", "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/94246405d\">§</a></p>", "text": "修复 “requested statistics kind X is not yet built” 错误消息中不正确报告的统计类型代码（David Rowley）§", "title": "修复 “requested statistics kind X is not yet built” 错误消息中不正确报告的统计类型代码", "commits": ["94246405d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "a5ecbc5e3f1c4dfe8a4d8f0bf33c55a75270c739822826d57a70d0385d50015a", "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": ["94246405d"], "source_entry_id": "12.19/changes/011", "db_id": "ac2a4c3f6aab6fcbeebd9f1123df5d98", "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": "96216a61cccc2166c588572e759eef6e", "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": "ea94ce14bbdae05e469124c184f01c03", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}}], "version": "12.19", "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": "96216a61cccc2166c588572e759eef6e", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复 “requested statistics kind X is not yet built” 错误消息中不正确报告的统计类型代码", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}, "url": "/docs/compare/?release=15.7#15.7-4cc07fc08b3f26d4", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-469263d163f6b829", "cves": [], "html": "<p>更加小心地处理 <code>FROM</code> 中返回 <code>RECORD</code> 的函数（Tom Lane）<a href=\"https://postgr.es/c/e0970862e\">§</a> <a href=\"https://postgr.es/c/466376c9f\">§</a></p>\n<p>此类函数调用的输出列必须由指定列名和数据类型的 <code>AS</code> 子句来定义。如果实际的函数输出值不匹配，应在运行时抛出错误。然而，某些代码路径会过早检查实际值，如果不符合预期可能会发出奇怪的错误或触发断言失败。</p>", "text": "更加小心地处理 FROM 中返回 RECORD 的函数（Tom Lane）§ § 此类函数调用的输出列必须由指定列名和数据类型的 AS 子句来定义。如果实际的函数输出值不匹配，应在运行时抛出错误。然而，某些代码路径会过早检查实际值，如果不符合预期可能会发出奇怪的错误或触发断言失败。", "title": "更加小心地处理 FROM 中返回 RECORD 的函数", "commits": ["466376c9f", "e0970862e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "ca18c9d7295b6f3665e71405d30afa00b83fa301b2ce1cd38cf91e510a89dc5c", "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": ["466376c9f", "e0970862e"], "source_entry_id": "12.19/changes/012", "db_id": "af397873d66e6409c512a0c15e4d45c7", "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147", "relations": [{"rule": 2, "type": "equivalent", "target": "65e810e8c912f8a884e9ddbc133c3d3a", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}}, {"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": "ba5546707dea053d6afe810f69e3a7d8", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}}], "version": "12.19", "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": "65e810e8c912f8a884e9ddbc133c3d3a", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "更加小心地处理 FROM 中返回 RECORD 的函数", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}, "url": "/docs/compare/?release=15.7#15.7-7bc83505f9f2bfed", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-dc898f149d6e82a6", "cves": [], "html": "<p>修复 SQL 语言过程的返回行类型混淆（Tom Lane）<a href=\"https://postgr.es/c/dc1503d5b\">§</a></p>\n<p>以 SQL 语言实现的返回单个复合类型列的过程会导致断言失败或核心转储。</p>", "text": "修复 SQL 语言过程的返回行类型混淆（Tom Lane）§ 以 SQL 语言实现的返回单个复合类型列的过程会导致断言失败或核心转储。", "title": "修复 SQL 语言过程的返回行类型混淆", "commits": ["dc1503d5b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "6923912fc7f297658728f334ebe43ade64a8532f0a041255598f5d4d42286572", "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": ["dc1503d5b"], "source_entry_id": "12.19/changes/013", "db_id": "eeade529b7fad1faa79eecdcd364518f", "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": "30f7289da67770943e16b25af0acfdb4", "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"}}], "version": "12.19", "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": "30f7289da67770943e16b25af0acfdb4", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复 SQL 语言过程的返回行类型混淆", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}, "url": "/docs/compare/?release=15.7#15.7-b4cbe468fe92e106", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-439d1088b0f5badb", "cves": [], "html": "<p>为一些递归函数增加保护性栈深度检查（Egor Chindyaskin）<a href=\"https://postgr.es/c/98bfb7558\">§</a></p>", "text": "为一些递归函数增加保护性栈深度检查（Egor Chindyaskin）§", "title": "为一些递归函数增加保护性栈深度检查", "commits": ["98bfb7558"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "4b72018e7fabb226de188653bde25ab970f0fa4e8e3b1675148531af80a91231", "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": ["98bfb7558", "d57b7cc33"], "source_entry_id": "12.19/changes/014", "db_id": "7664e328481b35b56d05cc9016d02ebc", "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": "45d96b7a15765eefff3b721838af3101", "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": "12.19", "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": "45d96b7a15765eefff3b721838af3101", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "为一些递归函数增加保护性栈深度检查", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}, "url": "/docs/compare/?release=15.7#15.7-58945555e92d562d", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-2aa330b6a50fb99e", "cves": [], "html": "<p>检测在 <code>timestamp</code> 上加减 <code>interval</code> 时的整数溢出（Joseph Koshakow）<a href=\"https://postgr.es/c/cb0ccefa0\">§</a></p>\n<p>某些应该导致超出范围错误的情况反而产生了不正确的结果。</p>", "text": "检测在 timestamp 上加减 interval 时的整数溢出（Joseph Koshakow）§ 某些应该导致超出范围错误的情况反而产生了不正确的结果。", "title": "检测在 timestamp 上加减 interval 时的整数溢出", "commits": ["cb0ccefa0"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "8d2f91303a26974e9939055d814077237b432fd82f5859647a93e1f628bf70c3", "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": ["cb0ccefa0"], "source_entry_id": "12.19/changes/015", "db_id": "5c05f2d00e0cb5b2f0c779fe379c11a9", "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee", "relations": [{"rule": 2, "type": "equivalent", "target": "26d4e765990af2b0549001fc5924723e", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}}, {"rule": 2, "type": "equivalent", "target": "527ac794f555a35f8c1d925520112bf4", "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": "12.19", "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": "26d4e765990af2b0549001fc5924723e", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "检测在 timestamp 上加减 interval 时的整数溢出", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}, "url": "/docs/compare/?release=15.7#15.7-1193db30b90424d3", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-66e4399a5efbde4f", "cves": [], "html": "<p>避免 <code>pg_get_expr()</code> 中的竞态条件（Tom Lane）<a href=\"https://postgr.es/c/f38903d1e\">§</a></p>\n<p>如果参数引用的关系被并发删除，函数的意图是返回 NULL，但有时会失败。</p>", "text": "避免 pg_get_expr() 中的竞态条件（Tom Lane）§ 如果参数引用的关系被并发删除，函数的意图是返回 NULL，但有时会失败。", "title": "避免 pg_get_expr() 中的竞态条件", "commits": ["f38903d1e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "5dee70cb1a9fc8b6f1fb547e2fe87d5a23f09acd2c58668a5886854079736632", "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": ["f38903d1e"], "source_entry_id": "12.19/changes/016", "db_id": "01829a0cebff87a2b9877a415f955076", "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093", "relations": [{"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": "b47222c52e1a95cbfda045c2adf1e9d6", "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": "12.19", "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": "b47222c52e1a95cbfda045c2adf1e9d6", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "避免 pg_get_expr() 中的竞态条件", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}, "url": "/docs/compare/?release=15.7#15.7-b8d97a20f9d1514a", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-688b760d38a92578", "cves": [], "html": "<p>修复 XID 状态函数中对旧事务 ID 的检测（Karina Litskevich）<a href=\"https://postgr.es/c/d44060cfc\">§</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": ["d44060cfc"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "7cac992f0c51e94afa8afd2630b89d381b62be3b01e74aabf17a1acdf55b6f91", "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": ["d44060cfc"], "source_entry_id": "12.19/changes/017", "db_id": "9dbf000510d705df3eb4946ac68db277", "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": "5eee06a351b6c00b15b91d6b37af4cf6", "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": "e2d96ff11a2aec2e068f73700b85e47f", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}}], "version": "12.19", "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": "5eee06a351b6c00b15b91d6b37af4cf6", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复 XID 状态函数中对旧事务 ID 的检测", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}, "url": "/docs/compare/?release=15.7#15.7-d3c32b77cd723569", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-4b485ae6e1c0d5f7", "cves": [], "html": "<p>修复在 <code>WaitEventSetWait</code> 中等待时抛出错误导致的文件描述符泄漏（Etsuro Fujita）<a href=\"https://postgr.es/c/0341d4b10\">§</a></p>", "text": "修复在 WaitEventSetWait 中等待时抛出错误导致的文件描述符泄漏（Etsuro Fujita）§", "title": "修复在 WaitEventSetWait 中等待时抛出错误导致的文件描述符泄漏", "commits": ["0341d4b10"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "8d53ea63662528123e606a6f2e03a10ada1b32d1fd8dbc9f11004babb3d59eaf", "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": ["0341d4b10"], "source_entry_id": "12.19/changes/018", "db_id": "78bcbb55c5e9bed242405fb795af1da1", "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0", "relations": [{"rule": 2, "type": "equivalent", "target": "7768f23a49446684d277b0278e25986b", "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": "12.19", "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": "7768f23a49446684d277b0278e25986b", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复在 WaitEventSetWait 中等待时抛出错误导致的文件描述符泄漏", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}, "url": "/docs/compare/?release=15.7#15.7-9128869d97dddb01", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-155a5cdb89a2a522", "cves": [], "html": "<p>如果在重建索引期间访问索引，则抛出错误（Tom Lane）<a href=\"https://postgr.es/c/c0b4dad38\">§</a></p>\n<p>之前这只是一个断言检查，现在将其提升为常规运行时错误。当重建索引的用户定义索引表达式尝试访问其自身的表时，这将提供一个更有针对性的错误消息。</p>", "text": "如果在重建索引期间访问索引，则抛出错误（Tom Lane）§ 之前这只是一个断言检查，现在将其提升为常规运行时错误。当重建索引的用户定义索引表达式尝试访问其自身的表时，这将提供一个更有针对性的错误消息。", "title": "如果在重建索引期间访问索引，则抛出错误", "commits": ["c0b4dad38"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "32730c740276d48154d2730be8e085e2b5a934a0e5b25b49a0497f29c8aaf81e", "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": ["c0b4dad38"], "source_entry_id": "12.19/changes/019", "db_id": "916e11cb6e1bf25bf03f2f333573a664", "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": "86a674fe90c8887224b1f43a41d7ac57", "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": "12.19", "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": "86a674fe90c8887224b1f43a41d7ac57", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "如果在重建索引期间访问索引，则抛出错误", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}, "url": "/docs/compare/?release=15.7#15.7-89b52c1d9f4922c0", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-7b516895526d4744", "cves": [], "html": "<p>确保对 <code>name</code> 列的仅索引扫描返回完整填充的值（David Rowley）<a href=\"https://postgr.es/c/e3f9dcabd\">§</a></p>\n<p>物理存储在索引中的值是被截断的，之前会将指向该值的指针返回给调用者。这在 valgrind 下测试时引发了告警。理论上可能导致崩溃，但尚未收到相关报告。</p>", "text": "确保对 name 列的仅索引扫描返回完整填充的值（David Rowley）§ 物理存储在索引中的值是被截断的，之前会将指向该值的指针返回给调用者。这在 valgrind 下测试时引发了告警。理论上可能导致崩溃，但尚未收到相关报告。", "title": "确保对 name 列的仅索引扫描返回完整填充的值", "commits": ["e3f9dcabd"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "97e26576ba97c0a14906556b83fb0f33dd7abbf47da78060aaa23ddc01b87bf9", "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": ["e3f9dcabd"], "source_entry_id": "12.19/changes/020", "db_id": "41491128cdf704c0cd44933a2dbb4643", "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": "4654544263ad70fa2f0e0c6f0e0f1c62", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}}, {"rule": 2, "type": "equivalent", "target": "660ca930472531ba9febe0a70aaf024f", "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": "12.19", "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": "660ca930472531ba9febe0a70aaf024f", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "确保对 name 列的仅索引扫描返回完整填充的值", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}, "url": "/docs/compare/?release=15.7#15.7-e5485c4bc801d3c4", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-8616553afe21c74b", "cves": [], "html": "<p>修复大于 4GB 的 DSM 分配时的崩溃（Heikki Linnakangas）<a href=\"https://postgr.es/c/95cc48ca0\">§</a></p>", "text": "修复大于 4GB 的 DSM 分配时的崩溃（Heikki Linnakangas）§", "title": "修复大于 4GB 的 DSM 分配时的崩溃", "commits": ["95cc48ca0"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "2e14c127fbf7c98e61627cbc91c26e5ae02870e19ff23dfd3d121301471eadbb", "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": ["95cc48ca0"], "source_entry_id": "12.19/changes/021", "db_id": "03edff6b9bfb77a9f54d4737b9f57428", "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f", "relations": [{"rule": 2, "type": "equivalent", "target": "76afece4826ada7aea8f90099e0048b7", "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": "12.19", "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": "76afece4826ada7aea8f90099e0048b7", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复大于 4GB 的 DSM 分配时的崩溃", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}, "url": "/docs/compare/?release=15.7#15.7-7c4e44a0b0eb2772", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-bdc16a7f67790087", "cves": [], "html": "<p>如果新服务器会话的客户端套接字无法被设置为非阻塞模式则断开连接（Heikki Linnakangas）<a href=\"https://postgr.es/c/df27d76d3\">§</a></p>\n<p>曾经在理论上可以使用阻塞模式的套接字来运行；但这在很长时间以来就已经不能完全工作了，所以在连接开始时失败而不是稍后出现异常行为。</p>", "text": "如果新服务器会话的客户端套接字无法被设置为非阻塞模式则断开连接（Heikki Linnakangas）§ 曾经在理论上可以使用阻塞模式的套接字来运行；但这在很长时间以来就已经不能完全工作了，所以在连接开始时失败而不是稍后出现异常行为。", "title": "如果新服务器会话的客户端套接字无法被设置为非阻塞模式则断开连接", "commits": ["df27d76d3"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "e56e1bf674bde527b66af81606bf75b287b9f8992121473b96f28509c90383ed", "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": ["df27d76d3"], "source_entry_id": "12.19/changes/022", "db_id": "3fa21d95a64d7da357df0a57ed7b4313", "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9", "relations": [{"rule": 2, "type": "equivalent", "target": "67cb3db3098a0ddd3a06bd864ad8ed9f", "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": "12.19", "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": "67cb3db3098a0ddd3a06bd864ad8ed9f", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "如果新服务器会话的客户端套接字无法被设置为非阻塞模式则断开连接", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}, "url": "/docs/compare/?release=15.7#15.7-1d6494ecd5db8ba7", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-91fb16124a8827ed", "cves": [], "html": "<p>修复 <span>OpenSSL</span> 3.0.0 及更高版本中不充分的错误报告（Heikki Linnakangas，Tom Lane）<a href=\"https://postgr.es/c/c42e5fdcf\">§</a></p>\n<p>通过 OpenSSL 传递的系统报告错误是用数字错误代码而非可读内容报告的。</p>", "text": "修复 OpenSSL 3.0.0 及更高版本中不充分的错误报告（Heikki Linnakangas，Tom Lane）§ 通过 OpenSSL 传递的系统报告错误是用数字错误代码而非可读内容报告的。", "title": "修复 OpenSSL 3.0.0 及更高版本中不充分的错误报告", "commits": ["c42e5fdcf"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "b3ca41a8f26dc687115bdb255f7c8d644d99f4ad42747a6f7dd3235d03b2fd9e", "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": ["c42e5fdcf"], "source_entry_id": "12.19/changes/023", "db_id": "2e696cc24cf68fce74add0abb916578f", "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170", "relations": [{"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": "7482d2f03b4d93af8d4e69351ab3c011", "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": "12.19", "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": "7482d2f03b4d93af8d4e69351ab3c011", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复 OpenSSL 3.0.0 及更高版本中不充分的错误报告", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}, "url": "/docs/compare/?release=15.7#15.7-918c3b054730b724", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-881c30772ea4f4c3", "cves": [], "html": "<p>避免在 <span>libpq</span> 和 <span>ecpglib</span> 中并发调用 <code>bindtextdomain()</code>（Tom Lane）<a href=\"https://postgr.es/c/9fb1396a9\">§</a> <a href=\"https://postgr.es/c/95e960e81\">§</a></p>\n<p>虽然 GNU <span>gettext</span> 的实现似乎可以处理并发调用，但 Windows 上可用的版本不行。</p>", "text": "避免在 libpq 和 ecpglib 中并发调用 bindtextdomain()（Tom Lane）§ § 虽然 GNU gettext 的实现似乎可以处理并发调用，但 Windows 上可用的版本不行。", "title": "避免在 libpq 和 ecpglib 中并发调用 bindtextdomain()", "commits": ["95e960e81", "9fb1396a9"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "d88cfdbec959d8adaf038776d315504a6593d734dde6784dca8e0018060220bc", "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": ["95e960e81", "9fb1396a9"], "source_entry_id": "12.19/changes/024", "db_id": "020ae6e6557897fda8dbd996943e4b70", "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299", "relations": [{"rule": 2, "type": "equivalent", "target": "3e1dddb1cc5022e09c0a3dfa625d2441", "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": "12.19", "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": "3e1dddb1cc5022e09c0a3dfa625d2441", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "避免在 libpq 和 ecpglib 中并发调用 bindtextdomain()", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}, "url": "/docs/compare/?release=15.7#15.7-c67649716b7293c9", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-72df46be3abba45c", "cves": [], "html": "<p>修复 <span>ecpg</span> 的预处理器在程序尝试重新定义在预处理器命令行上定义的宏时崩溃的问题（Tom Lane）<a href=\"https://postgr.es/c/2b6a74afe\">§</a> <a href=\"https://postgr.es/c/61dd815e0\">§</a> <a href=\"https://postgr.es/c/cd26f08e4\">§</a></p>", "text": "修复 ecpg 的预处理器在程序尝试重新定义在预处理器命令行上定义的宏时崩溃的问题（Tom Lane）§ § §", "title": "修复 ecpg 的预处理器在程序尝试重新定义在预处理器命令行上定义的宏时崩溃的问题", "commits": ["2b6a74afe", "61dd815e0", "cd26f08e4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "bec9c29cb21e4c34bddee60860d599f6e6b7d26b0127ceb0e914961703c6430e", "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": ["2b6a74afe", "61dd815e0", "cd26f08e4"], "source_entry_id": "12.19/changes/025", "db_id": "0e6720abff6c0ef3f4c15224636bbb48", "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": "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"}}, {"rule": 2, "type": "equivalent", "target": "be04f7fc33308b8f72d74759baddfb94", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}}], "version": "12.19", "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": "be04f7fc33308b8f72d74759baddfb94", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复 ecpg 的预处理器在程序尝试重新定义在预处理器命令行上定义的宏时崩溃的问题", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}, "url": "/docs/compare/?release=15.7#15.7-47e5d469c3efcff0", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-9afe1d20e2c69e77", "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/360d007e3\">§</a></p>", "text": "在 ecpg 中，避免发出错误的 “unsupported feature will be passed to server” 警告（Tom Lane）§", "title": "在 ecpg 中，避免发出错误的 “unsupported feature will be passed to server” 警告", "commits": ["360d007e3"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "7a3b9d42af9adce6a47cd4f9128c2377b58415ee3d1ddf411a528a83e800563a", "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": ["360d007e3"], "source_entry_id": "12.19/changes/026", "db_id": "1138816e8f083132125b9b33d04792f6", "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3", "relations": [{"rule": 2, "type": "equivalent", "target": "63065ce22d7ea10df435d0e1f2e03608", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}}, {"rule": 2, "type": "equivalent", "target": "6c2bfd92ba413160d17bab086884ee1b", "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": "12.19", "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": "6c2bfd92ba413160d17bab086884ee1b", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "在 ecpg 中，避免发出错误的 “unsupported feature will be passed to server” 警告", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}, "url": "/docs/compare/?release=15.7#15.7-3d935f2f2694d7ff", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-b1402d68b834639a", "cves": [], "html": "<p>确保 <span>ecpg</span> 的 <code>intoasc()</code> 函数的字符串结果正确以零结尾（Oleg Tselebrovskiy）<a href=\"https://postgr.es/c/771240f97\">§</a></p>", "text": "确保 ecpg 的 intoasc() 函数的字符串结果正确以零结尾（Oleg Tselebrovskiy）§", "title": "确保 ecpg 的 intoasc() 函数的字符串结果正确以零结尾", "commits": ["771240f97"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "5e834580c61b0b94f8afed22abcceca426a3b4563790877e9fe68ed61415607a", "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": ["771240f97"], "source_entry_id": "12.19/changes/027", "db_id": "0518c552ba162106bdffb1fa87e81562", "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489", "relations": [{"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"}}, {"rule": 2, "type": "equivalent", "target": "d380dd8966e5435fbf139b30b53c77e6", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}}], "version": "12.19", "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": "d380dd8966e5435fbf139b30b53c77e6", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "确保 ecpg 的 intoasc() 函数的字符串结果正确以零结尾", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}, "url": "/docs/compare/?release=15.7#15.7-93d7a61416ecd0bd", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-619afa0f4427f05d", "cves": [], "html": "<p>修复 <span>pg_dumpall</span>，使角色注释（如果存在）无论 <code>--no-role-passwords</code> 的设置如何都会被导出（Daniel Gustafsson，Álvaro Herrera）<a href=\"https://postgr.es/c/d82cb467b\">§</a> <a href=\"https://postgr.es/c/82c2192d9\">§</a></p>", "text": "修复 pg_dumpall，使角色注释（如果存在）无论 --no-role-passwords 的设置如何都会被导出（Daniel Gustafsson，Álvaro Herrera）§ §", "title": "修复 pg_dumpall，使角色注释（如果存在）无论 --no-role-passwords 的设置如何都会被导出", "commits": ["82c2192d9", "d82cb467b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "1eba93b838f26a6c75fda537a14355de72c6fce45db2c80a9499d3db0b141052", "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": ["82c2192d9", "d82cb467b"], "source_entry_id": "12.19/changes/028", "db_id": "7de7d17e0b0617e67a76e3f4dca7115e", "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": "d54e86de9796d7809701a97080c4ba9c", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}}, {"rule": 2, "type": "equivalent", "target": "fc40bcedbbb20bcccb87ee2cedae6617", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}}], "version": "12.19", "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": "fc40bcedbbb20bcccb87ee2cedae6617", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复 pg_dumpall，使角色注释（如果存在）无论 --no-role-passwords 的设置如何都会被导出", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}, "url": "/docs/compare/?release=15.7#15.7-c61e178ebda9e41e", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-8a92cb805eb2d4b1", "cves": [], "html": "<p>修复 <span>PL/pgSQL</span> 对表达式后跟单行注释（<code>--</code> 风格注释）的解析（Erik Wienhold，Tom Lane）<a href=\"https://postgr.es/c/5e9d8bed0\">§</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": ["5e9d8bed0"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "56367818f7715ecd0d723642b3ca686a9f4d8b45b98dc371ac788720941dcf83", "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": ["5e9d8bed0"], "source_entry_id": "12.19/changes/029", "db_id": "a3bbbdd3971b3d16453109574c10d69d", "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": "19eb28a039d3f1ebb2480d7cab86b200", "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": "12.19", "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": "19eb28a039d3f1ebb2480d7cab86b200", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复 PL/pgSQL 对表达式后跟单行注释（-- 风格注释）的解析", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}, "url": "/docs/compare/?release=15.7#15.7-0a6c5b378f4939dd", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-820898ebc71275dc", "cves": [], "html": "<p>在 <code>contrib/amcheck</code> 中，不要由于短头部与长头部值的差异而报告虚假的不匹配失败（Andrey Borodin，Michael Zhilin）<a href=\"https://postgr.es/c/d603e6744\">§</a> <a href=\"https://postgr.es/c/50f8611d0\">§</a></p>\n<p>堆元组或索引元组中的可变长度数据项可以有短头部或长头部，这取决于其创建时应用的压缩参数。将这些情况视为等价的，而不是在存在差异时报告错误。</p>", "text": "在 contrib/amcheck 中，不要由于短头部与长头部值的差异而报告虚假的不匹配失败（Andrey Borodin，Michael Zhilin）§ § 堆元组或索引元组中的可变长度数据项可以有短头部或长头部，这取决于其创建时应用的压缩参数。将这些情况视为等价的，而不是在存在差异时报告错误。", "title": "在 contrib/amcheck 中，不要由于短头部与长头部值的差异而报告虚假的不匹配失败", "commits": ["50f8611d0", "d603e6744"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "d57551c08ea79fef7287873fd1f1513bddfaf3843d419ef71b2c157bb0f40618", "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": ["50f8611d0", "d603e6744"], "source_entry_id": "12.19/changes/030", "db_id": "72d1b0830033e712160de1fd2ddb993a", "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": "8965aef979ee593f6535045c789d7fea", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}}, {"rule": 2, "type": "equivalent", "target": "8e974a7611d4dcc1be2d802a4ee40a82", "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": "12.19", "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": "8e974a7611d4dcc1be2d802a4ee40a82", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "在 contrib/amcheck 中，不要由于短头部与长头部值的差异而报告虚假的不匹配失败", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}, "url": "/docs/compare/?release=15.7#15.7-6ed57b76bedb3f77", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-9625888f623a6fda", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，避免发出按常量排序的请求（David Rowley）<a href=\"https://postgr.es/c/9301e0f41\">§</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": ["9301e0f41"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "195b00fa489b5e529eb6d7e887edaab7d8d60e0674d9146850c43d5b1e9d0fee", "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": ["9301e0f41"], "source_entry_id": "12.19/changes/031", "db_id": "a2bd7ba442bc35fa5af90756c17007d8", "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": "862902893dc9bd2c25a881795169e006", "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": "12.19", "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": "862902893dc9bd2c25a881795169e006", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "在 contrib/postgres_fdw 中，避免发出按常量排序的请求", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}, "url": "/docs/compare/?release=15.7#15.7-95baabc51e7c5b73", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-6f59b509ea470d07", "cves": [], "html": "<p>使 <code>contrib/postgres_fdw</code> 将远程会话的时区设置为 <code>GMT</code> 而不是 <code>UTC</code>（Tom Lane）<a href=\"https://postgr.es/c/ce1c30ece\">§</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": ["ce1c30ece"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "b8c7dfeef8714835d856895e5b580ccee4d2edbec34fe7ba33015ecc66af9404", "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": ["ce1c30ece"], "source_entry_id": "12.19/changes/032", "db_id": "6fc754f9cd55cd094f6a30f32819d1eb", "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": "6a0651089219e6b60b8be5355fc437a6", "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": "12.19", "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": "6a0651089219e6b60b8be5355fc437a6", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "使 contrib/postgres_fdw 将远程会话的时区设置为 GMT 而不是 UTC", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}, "url": "/docs/compare/?release=15.7#15.7-de56de507ef93706", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-ba3b152984e24a01", "cves": [], "html": "<p>在 <code>contrib/xml2</code> 中，避免使用在最近版本的 <span>libxml2</span> 中已弃用的库函数（Dmitry Koval）<a href=\"https://postgr.es/c/4b0e5d601\">§</a></p>", "text": "在 contrib/xml2 中，避免使用在最近版本的 libxml2 中已弃用的库函数（Dmitry Koval）§", "title": "在 contrib/xml2 中，避免使用在最近版本的 libxml2 中已弃用的库函数", "commits": ["4b0e5d601"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "249e731b368797df710188630cf1049bb855d18b111646c4186cfc2aa63bae3e", "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": ["4b0e5d601"], "source_entry_id": "12.19/changes/033", "db_id": "0bcb9460a48a0f61192644ede677e019", "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e", "relations": [{"rule": 2, "type": "equivalent", "target": "7655b2394b2d8b26f6159eb7da6fa5f1", "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": "12.19", "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": "7655b2394b2d8b26f6159eb7da6fa5f1", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "在 contrib/xml2 中，避免使用在较新版本的 libxml2 中已弃用的库函数", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}, "url": "/docs/compare/?release=15.7#15.7-0c44d8c63c4133ee", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-d97e139b99d00413", "cves": [], "html": "<p>修复与 LLVM 18 的不兼容性（Thomas Munro，Dmitry Dolgov）<a href=\"https://postgr.es/c/01b55203a\">§</a></p>", "text": "修复与 LLVM 18 的不兼容性（Thomas Munro，Dmitry Dolgov）§", "title": "修复与 LLVM 18 的不兼容性", "commits": ["01b55203a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "252192a342620407be9efd3a445bf711734e10708fef0a9158c872134f45db06", "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": ["01b55203a"], "source_entry_id": "12.19/changes/034", "db_id": "ae60d6e2fe584ca1f096870f5906c104", "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": "34bb891badb95e95c579de49a04bc72c", "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"}}], "version": "12.19", "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": "34bb891badb95e95c579de49a04bc72c", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "修复与 LLVM 18 的不兼容性", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}, "url": "/docs/compare/?release=15.7#15.7-7b6232136f8c9f58", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}, {"id": "12.19-18300bc70d33e78c", "cves": [], "html": "<p>允许 <code>make check</code> 在 <span>musl</span> C 库下工作（Thomas Munro，Bruce Momjian，Tom Lane）<a href=\"https://postgr.es/c/7124e7d52\">§</a></p>", "text": "允许 make check 在 musl C 库下工作（Thomas Munro，Bruce Momjian，Tom Lane）§", "title": "允许 make check 在 musl C 库下工作", "commits": ["7124e7d52"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.19/#id-1.11.6.9.6", "source_hash": "516727c32ed59631cd8d72d8468865b3ffd776c454e353a2f39c60508491d729", "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": ["7124e7d52"], "source_entry_id": "12.19/changes/035", "db_id": "249f4497ca17377423336ca6d8a30fa8", "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82", "relations": [{"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": "614b385e1aaa55b66b2ccb6647aa5d77", "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": "12.19", "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": "614b385e1aaa55b66b2ccb6647aa5d77", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "允许 make check 在 musl C 库下工作", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}, "url": "/docs/compare/?release=15.7#15.7-1f208194cee3206c", "source_url": "/docs/release/15.7/#ZH-AUTO-RELEASE-15-SECT2-22"}, {"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"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 35}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 15}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 20}], "total": 35, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 35, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}